文档库 最新最全的文档下载
当前位置:文档库 › c代码复习题

c代码复习题

/*file02.c 程序的功能是:从键盘输入姓名,存入文件data02.txt中。如果文件该姓名已存在,
则显示文件已存在的相应信息;再次输入其他姓名,若文件中没有该姓名,则将其存入文件中,请填空。
例如输出:

*/
#include
#include
#include
void main()
{
FILE *fp;
int flag=0;
char name[20],data[20];
/*******************************************/
if((fp=fopen("data02.txt","w+"))==NULL)
/*******************************************/
{ printf("Cannot open file.\n");
exit(0);
}
do
{
printf("Enter name:");
/*******************************************/
gets(name);
/*******************************************/
if(strlen(name)==0)
break;
else strcat(name,"\n");
rewind(fp);
flag=1;
while(flag&&((fgets(data,20,fp)!=NULL)))
if(strcmp(data,name)==0)
flag=0;
if(flag)
/*******************************************/
fputs(name,fp);
/*******************************************/
else
printf("\tThis name has been existed!\n");
}while(ferror(fp)==0);
fclose(fp);
}




/*file01.c 程序的功能是:将给定的字符串、整数、浮点数写入文件f1.txt中,再用字符方式从此文本文件中逐个读入并显示在屏幕上,请填空。
例如输出:

*/
#include
void main()
{ char s[10]="Hello!";
int a=12345;
double f=98.76;
FILE *fp;
char ch;
/***************************************/
fp=fopen("f1.txt;","w+");
/***************************************/
fprintf(fp,"%s%d%f",s,a,f);
fclose(fp);
fp=fopen("f1.txt;","r+");


printf("\nThe result:");
/***************************************/
while(!feof(fp))
/***************************************/
{
ch=fgetc(fp);
putchar(ch);
}
/***************************************/
putchar('\n');
fclose(fp);
}




/****************************************************************************
给定程序中函数fun的功能是:将s数组所存字符串的正序和反序进行连接,
形成一个新串放在t数组中。请填空。
输入:abcd
输出:abcddcba
*********************************************************************************/
#include
#include


void fun (char *s, char *t)
{
int i, d;
d = strlen(s);
/************found************/
for (i=0; i/************found************/
for (i=0; i
t[2*d] = '\0';
}

void main() /*注意:请不要修改本行*/
{
char s[100], t[100];

gets(s);
fun(s, t);
puts(t);
}




/*从键盘输入10个同学的成绩,输出低于平均分的成绩,找出最高分并输出,找出最低分并输出。*/
#include
void main()
{
int a[10],max,min,s,i,t

;
s=0;
t=0;
min=100;
max=0;
for(i=0;i<10;i++)
{scanf("%d",&a[i]);
s=s+a[i];
if(maxmax=a[i];
if(min>a[i])
min=a[i];}
t=0.1*s;
printf("低于平均成绩:");
for(i=0;i<10;i++)
if(a[i]printf("%d ",a[i]);
printf("\n");
printf("max=%d min=%d",max,min);
}




/*从键盘输入10个同学的成绩,按降序输出成绩。*/
#include
void main()
{
int i,j,t,a[10];
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (i=0;i<9;i++)

for (j=0;j<9-i;j++)
if(a[j]printf("排序结果为:");
for (i=0;i<10;i++)
printf("%d ",a[i]);
}




/*从键盘上给一个5*5整型数组输入值,找出对角线上其值最的元素。*/
#include
void main()
{
int i,j,max,a[5][5];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
max=0;
for(i=0;i<5;i++)
if(maxmax=a[i][i];
printf("max=%d",max);
}???????????????????????????????????????????????程序有误



/*输入2个字符串,输出2个字符串中较短串的长度。*/
#include
#include
void main()
{
char a[10],b[10];
int i,j,t;
scanf("%s",a);
scanf("%s",b);
i=strlen(a);
j=strlen(b);
if(it=i;
else
t=j;
printf("%d",t);
}



/*****************************************************************************************
编程,程序的功能是:从键盘上循环输入某课程的平时、实习、测验和期末成绩,
按10%,20%,20%,50%的比例计算总评成绩。(输出宽度为5,小数点保留2位)
按指定格式输入输出
例如:
输入:86 78 85 90
输出: sum=86.20
*******************************************************************************************/
#include
void main()
{double sum;
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
sum=0.1*a+0.2*b+0.2*c+0.5*d;
printf("sum=%5.2f",sum);
}






/*功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。请编写fun函数。(不要更改主函数结构和语句)*/

#include "stdio.h"
int fun(int x[],int n)
{

/**********Program**********/
int min,i;
min=x[0];
for(i=0;i{if(min>x[i])
min=x[i];}
return min;

/********** End **********/

}

main()
{
int a[10],i,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%-3d",a[i]);
printf("\n");
min=fun(a,10);
printf("%d\n",min);

}





/*功能:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。请编写fun函数。
(不要更改主函数结构和语句)

说明:素数是仅能被1和自身整除的数)。

例如:7是素数,8不是素数。*/

#include


int fun(int n)
{

/**********Program**********/
int i;
for(i=2;iif(n%i==0)
return(0);
else
return(1);

/********** End **********/
}

main()
{
int m,flag;
printf("input an integer:");
scanf("%d",&m);
flag=fun(m);
if(flag)
printf("%d is a prime.\n",m);
else
printf("%d is not a prime.\n",m);
}




/*------------------------------------------------
【编写fun函数】
--------------------------------------------------

功能:从字符串s中删除指定的字符c,本函数中要删除的指定的字符为a。请编写fun函数。(不要更改主函数结构和语句)

-------------------------------------------------*/

#include
fun(char s[],char c)
{

/**********Program**********/
//如果字符串中字符不等于指定字符,就保留下来,不然就不保留下来。
int i, j;
for (j=i=0;s[i]!='\0';i++)
if (s[i]!=c)
{
s[j]=s[i];
j++;
}
s[j]='\0';

/********** End **********/

}

main()
{
static char str[]="turbo c and borland c++";
char c='a';
fun(str,c);
printf("str=%s\n",str);
}





/*------------------------------------------------
【编写fun函数】
--------------------------------------------------

功能:求1~n的累加和。请编写fun函数。(不要更改主函数结构和语句)

------------------------------------------------*/
#include
long int fun(int n)
{

/**********Program**********/
int i,sum;
sum=0;
for(i=0;isum=sum+i;
return(sum);



/********** End **********/

}

void main ()
{
int i;
printf("please input a number:");
scanf("%d",&i);
printf("sum=%ld\n",fun(i));
}




/*程序的功能是:计算一个英文句子中最长单词的长度(字母个数)max。假设该英文句子中只含有字母和空格,在空格之间连续的字母串称为单词,句子以'.'结束,请填空。
本例输出:max=5
*/
#include
main()
{ static char s[]={"you make me happy when days are grey."},*t;
int max=0,len=0;
t=s;
while(*t!='.')
{
while(((*t<='Z')&&(*t>='A'))||((*t<='z')&&(*t>='a'))) /*不太明白*/
{ len++;
t++;
}
if(maxmax=len;
len=0;
t++;
}
printf("max=%d",max);
}



/*程序的功能是:统计子串sub在母串中出现的次数,请填空。
例如输入:abcabsdefabc
abc
输出:2
*/
#include
#include
int count(char *p,char *q)
{ int m,n,k,num=0;
for(m=0;p[m];m++)
for(n=p[m],k=0;q[k]==p[n];k++,n++)
if(q[m]=='\0')
{ num++;break; }
return num;
}
void main()
{ char s[80],sub[80];
gets(s);
gets(sub);
printf("%d\n",count(s,sub));
}




/*程序的功能是:比较两个字符串是否相等,若相等则返回1,否则返回0,请填空并将程序补充完整。


例如输入:abcdef
abcdef
输出:两个字符串相等
输入:abcdefefg
abcdef
输出:两个字符串不相等
*/
#include
#include
int fun(char *s,char *t)
{ int m=0;
while(*(s+m)==*(t+m)&&(t+m)!='\0')
m++;
return(*(s+m)-*(t+m));
}
void main()
{
/******************************/
int j;
char a[10],b[10];
scanf("%s",a);
scanf("%s",b);

j=fun(a,b);
if(j==1)
printf("两个字符串相等");
else
printf("两个字符串不相等");


/******************************/
}




/*pstr01.c 程序的功能是:结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄,请填空。
例如输出:zhangping 20
*/
#include
struct man
{ char name[20];
int age;
}person[]={"liming",18,"wanghua",19,"zhangping",20};
void main()
{ struct man *p,*q;
int old=0;
/****************************/
p=person;
/****************************/
for(;p/****************************/
if(oldage)
{ q=p;old=p->age;}

/****************************/
printf("%s %d\n",q->name,old);
/****************************/
}




/*pstr02 程序的功能是:反向输出一个链表,请填空。
例如输入:10 20 30 40 50

输出:50 40 30 20 10

*/
#include
struct node
{ int data;
struct node *next;
};
void main()
{ struct node *ptr,*head,*tail;
int num,i;
/**************************************************/
tail=(struct node *)malloc(sizeof(struct node));
/**************************************************/
tail->next=NULL;
ptr=tail;
printf("\nplease input 5 data:\n");
for(i=0;i<=4;i++)
{
scanf("%d",&num);
ptr->data=num;
head=(struct node *)malloc(sizeof(struct node));
/**************************************************/
head->next=ptr;
/**************************************************/
ptr=head;
}
/**************************************************/
ptr=head->next;
/**************************************************/
while(ptr!=NULL)
{ printf("%d ",ptr->data);
ptr=ptr->next;
}
}



1.程序要求:
有一函数:

请编写程序,输入x值,输出y值。输入、输出均为整型,输出格式:y=...
输入:20
输出:y=49
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc401.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include"stdio.h"
void main()
{
int x,y;
scanf("%d",&x);
if(x<1) y=x;
else if(x<10) y=2*x-1;
else y=3*x-11;
printf("y=%d",y);
}




2.程序要求:
请编写程序,计算n!。
说明:从键盘输入正整数n,结果以实数形式输出,保

留2位小数。
输入:6
输出:720.00
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc402.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include
void main ()
{
int n,i;
double k=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
k=k*i;
}
printf("%.2f\n",k);
}




3. 程序要求:
请编写程序,计算

的值,结果z以实型数输出,保留2位小数。
输入:2.0,5.0
输出:2.22
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc403.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include
#include
void main ()
{
float x,y;
double z;
scanf("%f,%f",&x,&y);
z=(sqrt(x+y)/(sin(x)+cos(y)));
printf("%.2lf\n",z);
}




4. 程序要求:
请编写程序,从键盘输入某一年,判断该年是否为闰年。闰年的条件是:(1)能被4整除但不能被100整除。(2)能被400整除。符合任何一个条件就是闰年。输入年份为整型。
例如, 输入:2012
输出:yes
输入:2013
输出:no
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc404.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include
void main()
{
int year,leap;
scanf("%d",&year);
if((year%4==0 && year%100!=0)||(year%400==0))
leap=1;
else
leap=0;
if (leap)
printf("yes");
else
printf("no");
}





5. 程序要求:
请编写程序,用scanf输入圆半径r和高h,输出圆周长s,圆柱体积vz。要求:宏定义圆周率 ,取3.14159。
说明:输入数据间以空格隔开。每个输出占一行,以实型数形式输出,保留两位小数;
输入:2.0 3.5
输出:12.57
43.98
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc405.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include
#define pi 3.14159
void main()
{
double r,s,h,vz;
scanf("%lf %lf",&r,&h);
s=2*pi*r;
vz=pi*r*r*h;
printf("%.2f\n",s);
printf("%.2f",vz);
}




6. 程序要求:
有一

函数:

请编写程序,输入x值(整型),输出y值。y以实型数形式输出,保留两位小数。
输入:20
输出:59.16
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc406.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include"stdio.h"
#include"math.h"
void main()
{
int x;
double y;
scanf("%d",&x);
if(x<1) y=x-sin(1.0);
else if(x<10) y=2*x-sin(1.0);
else y=3*x-sin(1.0);
printf("%.2f",y);
}




7. 程序要求:
输入1~7之间的任意数字,程序输出相应的星期名称(英文单词)。输出英文字母均为小写字母。
输入:7
输出:sunday
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc407.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include"stdio.h"
void main()
{
int i;
scanf("%d",&i);
switch(i)
{
case 1: printf("monday\n");break;
case 2: printf("tuesday\n");break;
case 3: printf("wednesday\n");break;
case 4: printf("thursday\n");break;
case 5: printf("friday\n");break;
case 6: printf("saturday\n");break;
case 7: printf("sunday\n");break;
}
}





8. 程序要求:
请编写程序,从键盘输入百分制成绩,要求输出等级制成绩A、B、C、D。90~100分为A,80~89分为B,60~79分为C,1~59分为D。不考虑小数,输入为整数,输出为字符。
输入:65
输出:C
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc408.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include
void main()
{
int score,n;
scanf("%d",&score);
n=score/10;
switch(n)
{ case 10:
case 9:printf("A");break;
case 8:printf("B");break;
case 7:
case 6:printf("C");break;
default:printf("D");
}
}




9. 程序要求:
三个整数a、b、c,由键盘输入,输出其中最小的一个数。
说明:输入输出均为整型数据,输入的数据间用空格间隔。
输入:2 1 3
输出:1
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc409.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应

用程序,否则无法提交。
源程序:
#include"stdio.h"
void main()
{
int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
if(aelse d=b;
if(cprintf("%d",d);
}




10. 程序要求:
有一函数:
请编写程序,输入输出均为实型数据;输入x值,输出y值保留两位小数。
输入:-1.5
输出:0.50
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc410.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include"stdio.h"
void main()
{
float x,y;
scanf("%f",&x);
if(x<=0) y=3*x+5;
else if(x>0&&x<=1)
y=x+5;
else y=(-2)*x+8;
printf("%.2f",y);
}




11. 程序要求:
请编写程序,输入一个华氏温度,要求输出摄氏温度。公式为
。要求:输入为整型,输出为实型,保留两位小数。
输入:53
输出:11.67
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc411.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include"stdio.h"
void main()
{int f;
double c;
scanf("%d",&f);
c=5.0/9.0*(f-32);
printf("%.2f",c);
}



12. 程序要求:
求1×2+2×3+3×4+…n×(n+1),其中n从键盘输入。(不考虑溢出)输入输出均为整型。
输入:5
输出:70
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc412.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include
void main()
{
int m,n,sum=0;
scanf("%d",&n);
for(m=1;m<=n;m++)
sum=sum+m*(m+1);
printf("%d",sum);
}



13. 程序要求:
有一函数:
请编写程序,x,y均为整型,输入x值,输出y值。
输入:7
输出:20
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc413.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include"stdio.h"
void main()
{
int x,y;
scanf("%d",&x);
if(x<0) y=x*x+x-6;
else if(x>=0&&x<=10)
y=x*x-5*x+6;
else y=x*x-x-1;
printf("%d",y);
}



1. 程序要求:
请编写程序,从键盘上输入10个整数,放在数组中,要求计

算最大数和最小数的差。
说明:10个数用空格分隔。
输入: 8 3 10 34 1 22 7 9 12 23
输出: 33
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc501.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include "stdio.h"
main()
{ int a[10],i=0,min,max;
for (i=0;i<10;i++)
scanf("%d",&a[i]);
min=a[0];
max=a[0];
for (i=1;i<10;i++)
{if (a[i]if (a[i]>max) max=a[i];}
printf("%d",max-min);
}




2. 程序要求:
请编写程序,从键盘输入10个学生的成绩,统计及格(60分及其60分以上)的人数。
说明:成绩为整数,输入数据用空格分隔。
输入:90 54 88 72 45 60 65 78 97 90
输出:8
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc502.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include "stdio.h"
void main()
{ int a[10], count=0,i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(a[i]>=60) count++;
printf("%d ",count);
}




3. 程序要求:
请编写一个程序,求一维数组中10个学生的平均成绩,以实型数形式输出结果,保留两位小数。
输入:67 56 89 92 78 64 52 68 47 73
输出:aver=68.60
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc503.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include "stdio.h"
void main()
{
float ave;
int i,score[10],sum=0;
for(i=0;i<10;i++)
scanf("%d",&score[i]);
for(i=0;i<10;i++) sum+=score[i];
ave=sum/10.0;
printf("aver=%.2f\n",ave);
}




4. 程序要求:
编写程序:输入一个3x4的矩阵,求出其中值为最大的元素的值以及它在矩阵中的下标. max=…,row=…,colum=… (输出中间无空格)
输入:
2 5 8 7
9 8 7 5
5 74 10
输出:
max=74,row=2,colum=1
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc504.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include
#include
void main()
{ int i,j,row=0,colum=0,max;
int a[3][4]

;
for (i=0;i<3;i++)
for (j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
for(i=0;i<=3;i++)
for(j=0;j<=4;j++)
if (a[i][j]>max) {max=a[i][j];row=i;colum=j;}
printf("max=%d,row=%d,colum=%d\n",max,row,colum);
}




5. 程序要求:
3×3整型数组中,求“行号大于列号”元素之和。
说明:数组元素从键盘输入,数组元素间用空格分隔。输入输出均为整型数据。
输入:1 2 3 4 2 8 0 1 2
输出:5
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc505.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序;
#include "stdio.h"
main()
{ int a[3][3], sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i>j)
sum=sum+a[i][j];
printf("%d",sum);
}



6. 程序要求:
将字符串s中的数字字符放入d数组中,然后输出d中的字符串。字符串s通过键盘输入。例如,输入的字符串为abc123edf345gh;执行程序后输出123345。
说明:输入的字符串可能含有空格。
输入:xhj34jkln456
输出:34456
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc506.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include "stdio.h"
#include "string.h"
void main()
{ char a[100],d[100];
int i=0,j=0;
gets(a);
for (i=0;i{
if (a[i]>='0' && a[i]<='9') {d[j]=a[i];j++;}
d[j]='\0';
}
printf("%s",d);
}




7. 程序要求:
从键盘上输入一个字符串,放在数组中,要求将字符串中的大写字母转换成小写字母,小写字母转换成大写字母,非字母字符不变,并输出。
输入: ABC123def
输出: abc123DEF
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc507.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include"stdio.h"
#include"string.h"
void main()
{char a[80];
int i;
gets(a);
for(i=0;iif(a[i]>='A'&&a[i]<='Z')
a[i]=a[i]+32;
else if(a[i]>='a'&&a[i]<='z')
a[i]=a[i]-32;
puts(a);
}



8. 程序要求:
编写程序,输入两个字符串分别存入两个字符数组中,并比较大小将较大字符串输出。
输入:abc↙
xy↙
输出:xy
(注意

:请勿使用任何输入输出提示信息 )
说明:在VC环境中按下面的要求完成。
1、打开考生文件夹下源程序bc508.cpp。
2、完成后的程序至少需要运行一次,并得出正确结果。
3、请勿另存,请勿删除考生文件夹下的任何文件。
4、关闭所有打开的窗口,退出VC应用程序,否则无法提交。
源程序:
#include
#include
void main()
{char s1[80],s2[80];
gets(s1);
gets(s2);
if(strcmp(s1,s2)>=0) puts(s1);
else puts(s2);
}



9. 程序要求:
统计从键盘输入的字符串中大写字母的个数。输入的字符串可能包含空格。
输入: abGshXf
输出: 2
源程序:
#include "stdio.h"
#include "string.h"
void main()
{ char a[100];
int i,count=0;
gets(a);
for(i=0;iif (a[i]>='A' && a[i]<='Z') count++;
printf("%d",count);
}



10. 程序要求:
求4×4整型数组的主对角线元素的和。
说明:数组元素从键盘输入,数组元素间用空格分隔。输入输出均为整型。
输入:1 2 3 4 2 8 0 1 2 6 7 5 1 7 9 5
输出:21
源程序:
#include "stdio.h"
main()
{ int a[4][4], sum=0,i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
sum=sum+a[i][i];
printf("%d",sum);
}



1./*下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。*/

#include
void main()
{int n=0,c;
c=getchar();
/**********found**********/
while( c!='\n' )
{
/**********found**********/
if( c>='0'&&c<='9' )n++;
c=getchar();
}
printf("%d",n);
}



2./*输出一4*3数组中行列号和为3的元素*/
#include
#include
void main() /*注意:请不要修改或删除程序行*/
{ static char ss[4][3]={'A','a','f','c','B','d','e','b','C','g','f','D'};
int x,y,z;
/**********found**********/
for(x=0; x<=3; x++)
/**********found**********/
for(y=0; y<=2; y++)
{ z=x+y;
/**********found**********/
if(z==3)
printf("%c",ss[x][y]);
}

}



3.#include
int main()
{
char str[81],*p=str;
int len=0;
gets(p);
while(*p!='\0')
{
if(*p>='a'&&*p<='z')
len++;
p++;
}
printf("len=%d\n",len);
return 0;}



4./*输出数组中第一个与首元素相同的序号*/
#include "stdio.h"
void main()
{ int a[10],i,f=-1;
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
if(a[i]==a[0]) {f=i; break;}
printf("%d",f);

}



5./* 填空补全程序:从键盘输入一个六位数,然后输出百位数字是6的数据,
当输入的数据为0时结束循环。*/
#include
void main()
{ long int num;
scanf("%ld",&num);
do {
/**********found**********/
if(num/100%10==6) /* 或if(num%1000/100==6); */
printf("%ld\n",num);
scanf("%ld",&num);

}
/**********found**********/
while(!num==0); /* while ( num!=0 ); */
}

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

6.#include
#include
void main()
{ int a[2][4]={1,3,5,7,2,4,6,8},b[4][2];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<4;j++)
/**********found**********/
b[j][i]=a[i][j];

/**********found**********/
for(i=0;i<4;i++)
printf("%2d %2d\n",b[i][0],b[i][1]);
}
7.#include
#include

void main() /*注意:请不要修改或删除程序行*/
{ char a1[20],a2[20];
int l1,l2,num;
gets(a1);gets(a2);
/**********found**********/
l1=strlen(a1);
/**********found**********/
l2=strlen(a2);
/**********found**********/
num=(l1printf("%d",num);
}
8.#include "stdio.h"
void main()
{int i,j;
/**********found**********/
for(i=0;i<10;i++)
{j=i*10+6;
/**********found**********/
if(i%3!=0) continue;
printf("%d ",j);}
}
9.#include
#include

void main()/*注意:请不要修改或删除本行*/
{
int i;
int f[10]={1,1};
/**********found**********/
for(i=2;i<10;i++)
/**********found**********/
f[i]=f[i-2]+f[i-1];
/**********found**********/
for(i=0;i<10;i++)
{if(i%5==0) printf("\n");
printf("%6d",f[i]);
}
}
10./*请补全程序:该程序的功能是:求1+2!+3!+…+N!的和。*/
#include
void main()
{int i,n;
long s=0,t=1;
scanf("%d",&n);
/**********found**********/
for(i=1;i<=n;i++)
{
/**********found**********/
t=t*i;
/**********found**********/
s=s+t;
}
printf("1!+2!+3!...+%d!=%ld\n",n,s);
}
11.#include
void main()
{ int a,b,c,i;
a=c=0;
for(i=1;i<=10;i++)
{ scanf("%d",&b);
/**********found**********/
if(b%2==0)
a=a+b;
/**********found**********/
else c=c+b;
}
printf("偶数的和=%d\n",a);
printf("奇数的和=%d\n",c);
}
12.#include

void main() /*注意:请不要修改或删除本行*/
{ int i=1,j;

double score[4],sum=0;
double ratio[4]={0.1,0.2,0.2,0.5};
for(j=0; j<4; j++)
/**********found**********/
{scanf("%lf",&score[j]);
/**********found**********/
sum+=score[j] * ratio[j];
}
/**********found**********/
printf("sum=%.2lf\n", sum);




}
1.#include
#include

float avg(float *a,int n)
{ int i;
float avg;
/**********found**********/
avg=0.0;
/**********found**********/
for(i=0; iavg+=*a++;
/**********found**********/
avg/=n;
return avg;
}

void main() /*注意:请不要修改本行*/
{
float a[5]={1.0,3.0,4.0,5.0,7.0};
float average=avg(a,5);
printf("average=%.2f\n",average);
}
2.#include "stdio.h"
void dele(char *s)
{int n=0,i;
for(i=0;s[i];i++)
if(s[i]>='a'&&s[i]<='z')
s[n++]=s[i];
s[n]='\0';
}


void main()
{char s[80];
gets(s);
dele(s);
puts(s);
}
3.#include "stdio.h"
#include "string.h"
void fun(char *w, int m)
{char s,*p1,*p2;
/**********found**********/
p1=w;p2=w+m-1;
while(p1{s=*p1;*p1=*p2;*p2=s;
/**********found**********/
p1++ ;p2--; }
}
void main()
{char a[80];
gets(a);
/**********found**********/
fun(a,strlen(a));
puts(a);
}
4.#include "stdio.h"
#define M 10
void main()
{ int a[M],i,j,n;
for(i=0;in=M-1;
for(i=M-1;i>0;i--)
{ if (a[i]== a[i-1])
{
/**********found**********/
for(j= i ;j<=n;j++)
/**********found**********/
a[j-1]= a[j] ;
n--;
}
}
for(i=0;i<=n;i++)
/**********found**********/
printf("%3d", a[i]);
}
5./* 4202 补全判断是否素数的程序:*/
#include "stdio.h"
#include "math.h"
void main()
{
int n,i,flag,k;
do
/**********found**********/
scanf("%d",&n);
while(n<2); /*为了保证所读入的数是一个大于1的正整数*/
k=sqrt(n);
/**********found**********/
for(i=2,flag=1;i<=k&&flag;i++)
if(n%i==0) flag=0; /* flag为0表示此时的n不是素数,可终止循环*/
if(flag)
/**********found**********/
printf("yes");
else
printf("no");
}
6.#include "stdio.h"
void main()
{char s1[20]="xy",s2[]="ab12DFc3G",*t1=s1,*t2=s2;
while(*t1!='\0') t1++;
while(*t2!='\0')
{if(*t2>='0'&&*t2<='9')
{*t1=*t2;
t1++;}
t2++;
}
*t1='\0';
puts(s1);
}
7.#include "stdio.h"
#include "string.h"
void main()
{
char s[81], *p1, *p2;
int n;
gets(s);
n=strlen(s);
p1=s; p2=s+n-1 ;
while( p1{
if (*p1!= *p2) break;
else { p1++;p2--; }
}
if (p1else printf("YES\n");
}
8.# include
void main( )
{int a[10],i,j,k,t;
for(i=0;i<10;i++)
scanf("%d",a+i);
for(i=0;i<9;i++)
{ k=i;
for(j=i+1;j<10;j++)
/**********found**********/
if(*(a+j)<*(a+k)) k=j;
/**********found**********/
{ t=*(a+i); *(a+i)=*(a+k);*(a+k)=t;}
}
for(i=0;i<10;i++)
/**********found**********/
printf("%d ",*(a+i));
}
9.#include
#include

void fun (char *s, char *t)
{
int i, d;
d = strlen(s);
/************found************/

for (i=0; i/************found************/
for (i=0; i
t[2*d] = '\0';
}

void main() /*注意:请不要修改本行*/
{
char s[100], t[100];

scanf("%s", s);
fun(s, t);
printf("%s", t);
}
10.#include

#define N 9

void fun(int a[], int n)
{ int i, t, p;
/**********found**********/
p = (n%2==0) ? n/2 : n/2 + 1;
for (i=0; i{
t=a[i];
/**********found**********/
a[i] = a[p+i];
/**********found**********/
a[p+i] = t;
}
}

void main() /*注意:请不要修改本行*/
{
in

t b[N], i;
for(i=0; ifun(b, N);
for (i=0; iprintf("\n");
}
11.#include"stdio.h"
void main()
{FILE *fp;
int i;
char dat[20];
if((fp=fopen("LI.txt","r+"))==NULL)
printf("error!\n");
else for(i=0;i<20;i++)
{dat[i]=fgetc(fp);
printf("%c",dat[i]);}

fclose(fp);
printf("\n");}
12.#include
#define N 5
struct student
{
int id;
char name[20];
float score;
}stu1[N]={{101,"Li Ping",48},
{102,"Zhang Hua",92},
{103,"He Wei",78.5},
{104,"Zhao Pu",55},
{105,"Wu Kai",76}};
void main()/*注意:不要改动本行*/
{
int i,c=0;
float ave,s=0;
for(i=0;i{
/**********found**********/
s+=stu1[i].score;
/**********found**********/
if(stu1[i].score<60) c+=1;
}
/**********found**********/
ave=s/N;
printf("average=%6.2f\ncount=%2d\n",ave,c);
}
函数编程题:
1.求x的n次方的值,其中n是整数
#include
void main()
{
double xpower(float x,int n);
double r;
float x;
int n;
scanf("%f%d",&x,&n);
r=xpower(x,n);
printf("%f",r);
}
double xpower(float x,int n)
{
if(n==0)
return(1);
else
return(x*xpower(x,n-1));
}
2. 功能:调用函数fun判断一个三位数是否"水仙花数"。
在main函数中从键盘输入一个三位数,并输
出判断结果。请编写fun函数。
说明:所谓"水仙花数"是指一3位数,其各位数字立方和
等于该数本身。
例如:153是一个水仙花数,因为153=1+125+27。
#include

int fun(int n)
{
/**********Program**********/
int bw,sw,gw;
bw=n/100;sw=(n-bw*100)/10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1;
else return 0
/********** End **********/
}
void main()
{
int n,flag;
scanf("%d",&n);
flag=fun(n);
if(flag)
printf("%d 是水仙花数\n",n);
else
printf("%d 不是水仙花数\n",n);
}
3. 功能:编写程序, 求矩阵(3行3列)与2的乘积
例如:输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
200 400 600
800 1000 1200
1400 1600 1800
#include
void fun(int array[3][3])
{
/**********Program**********/
int i,j;
for(i=0; i < 3; i++)
for(j=0; j < 3; j++)
array[i][j]=array[i][j]*2;
/********** End **********/
}
main()
{
int i,j;
int array[3][3];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&array[i][j]);
}
fun(array);
for (i=0; i < 3; i++)
{
for (j=0; j < 3; j++)
printf("%6d",array[i][j]);
printf("\n");
}
}
4. 题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。
#include
#define N 3

int sum(int a[][N])
{
/**********Program**********/
int i,j,k=0;
for(i=0;ifor(j=N-1-i;jk=k+a[i][j];


return(k);
/********** End **********/
}
main()
{
int a[N][N],i,j;
for(i=0;i{
for(j=0;j{
scanf("%d",&a[i][j]);
}
printf("\n");
}
printf("sum=%5d\n",sum(a));
}
5. 功能:求两个整数的最大公约数
#include
int gcd(int n,int m)
{
/**********Program**********/
int r,t;
if(nr=n%m;
while(r!=0)
{ n=m;m=r;r=n%m;}
return(m);
/********** End **********/
}
main()
{
int n,m,result;
scanf("%d%d",&n,&m);
result=gcd(n,m);
printf("the gcd is %d\n",result);
}
6. 功能:编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数。
计算公式是: 组合数=m!/(n!*(m-n)!)。注意:m>n。
说明:函数fact(x)的功能是求x!。
#include
long fact(int x)
{
long y;
int i;
y=1;
for(i=1;i<=x;i++)
y=y*i;
return y;
}
main()
{
int m,n;
long zhsgs;
scanf("%d%d",&m,&n);
/**********Program**********/
zhsgs=fact(m)/(fact(n)*fact(m-n));
/********** End **********/
printf("%d\n",zhsgs);
}
7. 功能:编写函数用冒泡排序法对数组中的数据进行从小到大的排序。
#include
#include
void sort(int a[],int n)
{
/**********Program**********/
int i,j,t;
for(i=0;ifor(j=0;jif(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
/********** End **********/
}
void main()
{
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
8. 功能:从键盘为一个5×5整型数组输入数据,调用fun函数找出主对角线上元素的最小值。
#include "stdio.h"
int fun(int a[5][5])
{
/**********Program**********/
int i,vm;
vm=a[0][0];
for(i=1;i<5;i++)
if(vm>a[i][i])
vm=a[i][i];
return(vm);
/********** End **********/
}
void main( )
{
int i,j,vmin;
int array[5][5];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&array[i][j]);
vmin=fun(array);
printf("Min=%d",vmin);
}
9. 功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun()函数中输出。
#include
int fun(int a[3][3])
{
/**********Program**********/
int i;
float sum=1;
for(i=0;i<3;i++)
sum=sum*a[i][i];
return(sum);

/********** End **********/
}
void main()
{
int i,j,a[3][3],t;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
t=fun(a);
printf("%d",t);
}
10. 功能:从键盘为一维整型数组输入10个成绩,统计大于等于60分的成绩,并在main函数中输出。

输入:90 54 88 72 45 60 65 78 97 98
输出:total=8
#include
void main()
{
int a[10],m,i;
m=0;
scanf("%d",&a);
for(i=0;i<10;i++)
{if(a[i]>=60)
m++;
}
printf("%d",m);
}

相关文档