决战期末
【程序填空】if(x 功能:写一个函数,求一个字符串的if(x 长度,在main 函数中输入字if(y 符串,并输出其长度。 printf("%3d%3d%3d",x,y,z); wwjt(); len=length(.s.t.r); } void wwjt() .n..t l.e.n.g.t.h.(p) I N.+.+.;{ FILE *IN,*OUT; P.+.+.;int m,n; int i[2]; 【程序改错】IN=fopen("in.dat","r"); 功能:将一个字符串中的大写字母转if(IN==NULL) 换成小写字母。{ printf("Read FILE Error"); bool .(c.h..a.r.)fun(char *c) } fun= c;.(r.e..tu.r.n.*.c.).OUT=fopen("out.dat","w"); if(OUT==NULL) puts(*p);.(p.u..tc.h.a..r.(*.p.).).{ printf("Write FILE Error"); 【程序设计】} 功能:编写函数实现两个数据的交换,for(n=0;n<3;n++) 在主函数中输入任{ 意三个数据,调用函数对这三 for(m=0;m<2;m++) 个数据从大到小排序。{ fscanf(IN,"%d",&i[m]); ------------------------------------------------ } */ swap(&i[0],&i[1]); fprintf(OUT,"%d\n",i[0]); #include void wwjt(); } fclose(IN); void swap(int *a,int *b) fclose(OUT); { } /**********Program**********/ /*---------------------------------------------- --------- /********** End **********/ 【程序填空】 } 功能:输入 3 个数a,b,c,按从小到大main() 的顺序输出。 { int x,y,z; - scanf("%d%d%d",&x,&y,&z); i f( n.1.>.n.2.) swap(pointer1,pointer2); 1 if(n.1.>.n.3.) swap(pointer1,pointer3);main() if.(n.2.>.n.3.){ int i; void swap(.i n.t.*.p.1.,.i n..t.*p.2..)for (i=0;i { 【程序改错】vector[i]=rand(); 功能:将s所指字符串的反序和正序进 行连接形成一个新串放在printf("Vector[%d]=%6d\n",i,vector[i]); t 所指的数组中。} 例如:当s 所指的字符串的内容为i=fun(vector,VSIZE); "ABCD" 时,t 所指数组中printf("\nMininum: 的内容为"DCBAABCD" 。Vector[%d]=%6d\n",i,vector[i]); d = len(s);.(s..t.r.l e.n.(.s..) } wwjt(); for (i = 1.(i.=.0.).; i t[2*d] = '/0.'.(.‘.0..’.); { int i,t; 【程序设计】FILE *fp ; fp = fopen("out.dat", "w") ; 功能:把20 个随机数存入一个数组, for (i=0;i 最小值。其中确定最小值的下 标的操作在fun 函数中fprintf(fp,"Vector[%d]=%6d\n",i,vector[ 实现,请给出该函数的定义。 i]); } ------------------------------------------------ t=fun(vector,VSIZE); */ fprintf(fp,"\nMininum: Vector[%d]=%6d\n",t,vector[t]); #include #define VSIZE 20 } void wwjt(); /*---------------------------------------------- --------- int vector[VSIZE] ; 【程序填空】 功能:输出9*9 口诀。 int fun(int list[],int size) { for (i=1;i<10.;.i+.+.) /**********Program**********/ for(j=1;j<10.;.j+.+.) /********** End **********/ } printf("%d*%d=%- 3d",i,j .,.r e..s.u.l.t)..; 2 【程序改错】OUT=fopen("23.out","w"); 功能:以下程序把两个数按由大到小if(OUT==NULL) 的顺序输出来. { swap( int *p1,*p2).(.i n.t.t.).printf("Please Verify The Current Dir.. it May Be Changed"); scanf("%d%d",a,b.(&.a.,.&.b.).);} for(i=0;i<10;i++) printf("max=%d,min=%d\n",p,q( *p,*q { fscanf(IN,"%d",&iIN); )); dOUT=fun(iIN); 【程序设 计】fprintf(OUT,"%f\n",dOUT); 功能:求 1 到100 之间的偶数之积。} ------------------------------------------------ fclose(IN); */ fclose(OUT); } #include 【程序填空】 double fun(int m) 功能:将字母转换成密码,转换规则{ 是将当前字母变成其后的第四个字母,但W 变成A、X 变/**********Program**********/ 成 B、Y 变成 C、Z 变成D。小写字 母的转换规则同样。 /********** End **********/ w hile((c= g.e..tc.h..a.r.(.))!='\n') } if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) main() c=c+4 .....; { printf("ji=%f\n",fun(100)); if((c>'Z.'&.&.c<='Z'+4)||c>'z' ) wwjt(); 【程序改错】 } 功能:编写input()和output()函数输入, 输出5 个学生的数据记录。 void wwjt() #include { #define N 5 FILE *IN,*OUT; int iIN,i; struct student double dOUT; { IN=fopen("23.IN","r"); char num[6]; if(IN==NULL) char name[8]; { int score[4]; printf("Please Verify The Currernt } stu[N]; Dir..it May Be Changed"); } input(stu) 3 struct student stu[]; print(); { } /**********FOUND**********/ /*---------------------------------------------- int i;j; -- for(i=0;i 【程序设计】 { 功能:产生20 个[30,120]上的随机整数printf("\n please input %d 放入二维数组a[5][4] of %d\n",i+1,N); 中,求每行元素的和。 printf("num: "); ------------------------------------------------ scanf("%s",&stu[i].num); */ printf("name: "); scanf("%s",stu[i].name); #include "stdlib.h" for(j=0;j<3;j++) #include { void wwjt(); /**********FOUND**********/ void row_sum(int a[5][4],int b[5]) printf("score %d.",j); { scanf("%d",&stu[i].score[j]); /**********Program**********/ } printf("\n"); /********** End **********/ } } } main() print(stu) { struct student stu[]; void row_sum(); { int a[5][4],b[5],i,j; int i,j; for(i=0;i<5;i++) printf("\nNo. Name Sco1 Sco2 for(j=0;j<4;j++) Sco3\n"); a[i][j]=rand()%(120-30+1)+30; /**********FOUND**********/ for(i=0;i<5;i++) for(i=0;i<=N;i++) { { for(j=0;j<4;j++) printf("%5d",a[i][j]); printf("%-6s%-10s",stu[i].num,stu[i].na printf("\n"); me); } for(j=0;j<3;j++) row_sum(a,b); printf("%-8d",stu[i].score[j]); for(i=0;i<5;i++) printf("\n"); printf("%6d",b[i]); } printf("\n"); } wwjt(); } main() { input(); void wwjt() 4 { 行连接形成一个新串放在FILE *IN,*OUT; t 所指的数组中。 int m,n; Char fun(char*c)fun=c;return*c int i[5][4]; 【程序设计】 int o[5]; 功能:将字符串中的小写字母转换为IN=fopen("in.dat","r"); 对应的大写字母, if(IN==NULL) 其它字符不变。 { printf("Read FILE Error"); ------------------------------------------------ } */ OUT=fopen("out.dat","w"); if(OUT==NULL) #include "string.h" { #include printf("Write FILE Error"); void wwjt(); } for(m=0;m<5;m++) void change(char str[]) for(n=0;n<4;n++) { fscanf(IN,"%d",&i[m][n]); /**********Program**********/ row_sum(i,o); for(n=0;n<5;n++) /********** End **********/ fprintf(OUT,"%d\n",o[n]); } fclose(IN); fclose(OUT); main() } { /*---------------------------------------------- void change(); --------- char str[40]; 【程序填空】gets(str); 功能:在歌星大奖赛中,有10 个评委change(str); 为参赛的选手打分,分数为puts(str); 1~100 分。选手最后得分为:去wwjt(); 掉一个最高分和一个最低分} 后其余8 个分数的平均值。请 编写一个程序实现。void wwjt() scanf("%d".,&.s.c.o.r.e.);{ FILE *IN,*OUT; if( m..ax.<.s.c.o..re.max=score;char i[200]; IN=fopen("in.dat","r"); if.(m..in.>.s.c.o.r.e.)if(IN==NULL) { printf("Read FILE Error"); score:%d\n".,.(s..um..-m.a.x.-.m..in.)./.8.);} OUT=fopen("out.dat","w"); 【程序改错】 if(OUT==NULL) 功能:将s所指字符串的反序和正序进{ 5 printf("Write FILE Error"); { } *p=fun(p); fscanf(IN,"%s",i); /**********FOUND**********/ change(i); puts(*p); fprintf(OUT,"%s\n",i); p++; fclose(IN); } fclose(OUT); putchar('\n'); } } /*---------------------------------------------- /*---------------------------------------------- -- --------- 【程序设计】 【程序填空】功能:将字符串中的小写字母转换为-功能:考查字符串数组的应用。输出 对应的大写字母, 26 个英文字母。 其它字符不变。 for (i = 0; i < 26; .i+.+.)------------------------------------------------ */ string[i] = .‘A..’+..i.; #include "string.h" printf ("the arrary #include contains %s\n".,s..t.r.i n.g.);void wwjt(); 【程序改错】void change(char str[]) 功能:将一个字符串中的大写字母转{ 换成小写字母。/**********Program******** 例如:输入aSdFG输出为asdfg。/********** End **********/ } ------------------------------------------------- -----*/ main() { #include /**********FOUND**********/ char str[40]; bool fun(char *c) gets(str); { change(str); if(*c<='Z'&&*c>='A')*c-='A'-'a'; puts(str); /**********FOUND**********/ wwjt(); fun= c; } } void wwjt() main() { { FILE *IN,*OUT; /**********FOUND**********/ char i[200]; char s[81],p=s; IN=fopen("in.dat","r"); gets(s); if(IN==NULL) while(*p) { 6 printf("Read FILE Error"); 【程序设计】 } 功能:从键盘上输入任意实数x,求出OUT=fopen("out.dat","w"); 其所对应的函数值。 if(OUT==NULL) z=(x-4)的二次幂(x>4) { z=x 的八次幂(x>-4) printf("Write FILE Error"); z=z=4/(x*(x+1))(x>-10) } z=|x|+20(其他) fscanf(IN,"%s",i); change(i); ------------------------------------------------ fprintf(OUT,"%s\n",i); */ fclose(IN); fclose(OUT); #include } #include void wwjt(); /*---------------------------------------------- --------- float y(float x) 【程序填空】{ 功能:从读入的整数数据 中,统计大/**********Program**********/ 于零的整数个数和小于零的 整数个数。用输入零来结束输 /********** End **********/ 入,程序中用变量i 统计大于} 零的整数个数,用变量j 统计小 于零的整数个数。main() if(n>0)i=.i+.1..; { float x; if(n<0)j =..j+.1..; scanf("%f",&x); printf("y=%f\n",y(x)); wwjt(); scanf("%d",&.n.); } printf("i=%4d\n",i,j); } void wwjt() 【程序改错】{ 功能:实现交换两个整数的值。FILE *IN,*OUT; void fun (int a, b(.in.t.*.a.,.i.n.t.*b.)..int n; float i; t=a.t=.*.a.float o; IN=fopen("in.dat","r"); a=b;(*.a.=.*.b.)if(IN==NULL) { printf("Read FILE Error"); b=t;*.b.=.t. } { OUT=fopen("out.dat","w"); int a,b; if(OUT==NULL) printf("enter { 7 printf("Write FILE Error"); main() } { for(n=0;n<10;n++) int a,b; { printf("enter fscanf(IN,"%f",&i); a,b:");scanf("%d%d",&a,&b); o=y(i); fun(&a,&b); fprintf(OUT,"%f\n",o); printf("a=%d b=%d\n",a,b); } } fclose(IN); fclose(OUT); /*---------------------------------------------- } -- /*---------------------------------------------- 【程序设计】 --------- 功能:能计算从 1 开始到n 的自然数【程序填空】 中偶数的平方的和,n 由 功能:删除字符串中的数字字符。键盘输入,并在main()函数中输例如:输入字符串:48CTYP9E6,则出。(n 是偶数) 输出:CTYPE。------------------------------------------------ void fun .(c.h..a.r *.s..) */ else *s++=*.p.+.+.;#include void wwjt(); *.s.=..’.0..’; int fun(int n) { 【程序改错】/**********Program**********/ 功能:实现交换两个整数的值。 例如:给 a 和b 分别输入 3 和6 ,输/********** End **********/ 出为a=6 b=3 } ------------------------------------------------- -----*/ main() #include /**********FOUND**********/ int m; void fun (int a, b) printf("Enter m: "); { scanf("%d", &m); int t; printf("\nThe result is %d\n", fun(m)); /**********FOUND**********/ wwjt(); t=a; } /**********FOUND**********/ a=b; void wwjt() /**********FOUND**********/ { b=t; FILE *IN,*OUT; } int t; int o; 8 int c; IN=fopen("in.dat","r"); r eturn c;(.s.u.m..) if(IN==NULL) 【程序设计】 { 功能:把20个随机数存入一个数组,printf("Read FILE Error"); 然后输出该数组中的} 最大值。 OUT=fopen("out.dat","w"); if(OUT==NULL) ------------------------------------------------ { */ printf("Write FILE Error"); } #include for(c=1;c<=5;c++) #define VSIZE 20 { void wwjt(); fscanf(IN,"%d",&t); o=fun(t); int vector[VSIZE] ; fprintf(OUT,"%d\n",o); int fun(int list[],int size) } { fclose(IN); /**********Program**********/ fclose(OUT); } /********** End **********/ /*---------------------------------------------- } --------- main() 【程序填空】{ -功能:有五个学生,每个学生有 3 门int i; 课的成绩,从键盘输入以上数for (i=0;i 据(包括学生号,姓名,三门 { 课成绩),计算出平均成绩,vector[i]=rand(); 设原有的数据和计算出的平均 分数存放在磁盘文件"stud" printf("Vector[%d]=%6d\n",i,vector[i]); for(j=0;.j<.3.;j++)} i=fun(vector,VSIZE); sum+=stu[i]..s..co..r.e.[.j].;printf("\nMaxnum: Vector[%d]=%6d\n",i,vector[i]); for(i=0;i<5.;.i+.+.)wwjt(); if(fwrite(&stu[i],sizeof( .s.t.r u.c..t } void wwjt() student .......),1,fp)!=1) { 【程序改错】int i,t; ------------------------------------------------- FILE *fp ; 功能:计算数组 元素中值为正数的平fp = fopen("out.dat", "w") ; 均值(不包括0)。for (i=0;i 9 { ------------------------------------------------ */ fprintf(fp,"Vector[%d]=%6d\n",i,vector[ i]); #include } void wwjt(); t=fun(vector,VSIZE); fprintf(fp,"\nMaxnum: float Max=0; Vector[%d]=%6d\n",t,vector[t]); int J=0; fclose(fp) ; } float fun(float array[],int n) { /*---------------------------------------------- --------- /**********Program**********/ 【程序填空】 -功能:当输入“2,5”的时候输出为/********** End **********/ “2 5 5” for(i=0;i<= m.a.x..-1.;i++)} main( ) f[.1.]=1;{ float a[10],ave; f[i.]+.=.f[j];int i=0; for(i=0;i<10;i++) scanf("%f",&a[i]); 【程序改错】ave=fun(a,10); 功能:编写一个函数,该函数可以统printf("ave=%f\n",ave); 计一个长度为 3 的字符串在另printf("max=%f\n",Max); 一个字符串中出现的次数。 printf("Total:%d\n",J); for(i=0;i<=strlen(str);i++)( i=i+3) wwjt(); } ++i; ++n n=fun(str,substr); void wwjt() printf("n=%d\n",n); { 【程序设计】FILE *IN,*OUT; 功能:统计出若干个学生的平均成绩,float iIN[10],iOUT; 最高分以及得最高int iCOUNT; 分的人数。 IN=fopen("in.dat","r"); 例如:输入10名学生的成绩分别为92,if(IN==NULL) 87,68,56,92,{ 84,67,75,92,66,则输出printf("Please Verify The Currernt 平均成绩为77.9,Dir..it May Be Changed"); 最高分为92,得最高分的人数} 为3 人。OUT=fopen("out.dat","w"); if(OUT==NULL) 10 { #include printf("Please Verify The Current void wwjt(); Dir.. it May Be Changed"); } int fun(char s[]) { for(iCOUNT=0;iCOUNT<10;iCOUNT+ +) /**********Program**********/ fscanf(IN,"%f",&iIN[iCOUNT]); iOUT=fun(iIN,10); /********** End **********/ fprintf(OUT,"%f %f\n",iOUT,Max); fclose(IN); } fclose(OUT); } main() { /*---------------------------------------------- char str[]="Best wishes for you!"; --------- int k; 【程序填空】k=fun(str); 功能: 数组名作为函数参数,求平均printf("k=%d\n",k); 成绩。wwjt(); s+=a[i]; } av=s/5; return a; void wwjt() scanf("%f" ,&sco[i ]); { av=aver(sco); FILE *IN,*OUT; char sin[80]; 【程序改错】int iOUT,i; 功能:分 别统计输入的字符串中各元IN=fopen("in.dat","r"); 音字母(即:A、E、i、O、U)if(IN==NULL) 的个数。 { 注意:字母不分大、小写。printf("Please Verify The Currernt num[k]=0; Dir..it May Be Changed"); } if (i >0) OUT=fopen("out.dat","w"); if(OUT==NULL) { 【程序设计】printf("Please Verify The Current ------------------------------------------------- Dir.. It May Be Changed"); 功能:求一个给定字符串中的字母的} 个数。for(i=0;i<10;i++) { ------------------------------------------------ fscanf(IN,"%s",sin); */ iOUT=fun(sin); } 11 fprintf(OUT,"%d\n",iOUT); if(IN==NULL) fclose(IN); { fclose(OUT); printf("Read FILE Error"); } } OUT=fopen("out.dat","w"); /*---------------------------------------------- if(OUT==NULL) -- { 【程序设计】printf("Write FILE Error"); ------------------------------------------------- } - fscanf(IN,"%s",i); change(i); 功能:将字符串中的小写字母转换为 fprintf(OUT,"%s\n",i); 对应的大写字母,fclose(IN); 其它字符不变。 fclose(OUT); } ------------------------------------------------ */ /*---------------------------------------------- -- #include "string.h" 【程序设计】 #include void change(char str[]) 功能:将字符串中的小写字母转换为{ 对应的大写字母, /**********Program**********/ 其它字符不变。 /********** End **********/ ------------------------------------------------ } */ main() #include "string.h" { #include void change(); void wwjt(); char str[40]; gets(str); void change(char str[]) change(str); { puts(str); /**********Program**********/ wwjt(); } /********** End **********/ } void wwjt() { main() FILE *IN,*OUT; { char i[200]; void change(); IN=fopen("in.dat","r"); char str[40]; 12 gets(str); char string[256]; change(str); int i; puts(str); /***********SPACE***********/ wwjt(); for (i = 0; i < 26; 【?】) } /***********SPACE***********/ string[i] = 【?】; void wwjt() string[i] = '\0'; { /***********SPACE***********/ FILE *IN,*OUT; printf ("the arrary contains %s\n", char i[200]; 【?】); IN=fopen("in.dat","r"); } if(IN==NULL) { /*---------------------------------------------- printf("Read FILE Error"); -- } 【程序设计】 OUT=fopen("out.dat","w"); 功能:根据整型形参m,计算如下公if(OUT==NULL) 式的值: { y=1/5+1/6 +1/7 +1/8 +printf("Write FILE Error"); 1/9+1/10...+1/(m+5) } 例如:若m=9,则应输出:1.168229 fscanf(IN,"%s",i); change(i); ------------------------------------------------ fprintf(OUT,"%s\n",i); */ fclose(IN); fclose(OUT); #include } void wwjt(); /*---------------------------------------------- -------- double fun(int m) 【程序改错】{ 功能:将一个字符串中的大写字母转/**********Program********** 换成小写字母。 char fun(char *c) /********** End **********/ fun= c;return *c } main() 【程序填空】{ 功能:考查字符串数组的应用。输出int n; 26 个英文字母。printf("Enter n: "); scanf("%d", &n); ------------------------------------------------- printf("\nThe result is %1f\n", fun(n)); ------*/ wwjt(); } #include void main (void) void wwjt() { { 13 FILE *IN,*OUT; ------*/ int i ; int t; #include double o; void main (void) IN=fopen("in.dat","r"); { if(IN==NULL) char string[256]; { int i; printf("Read FILE Error"); /***********SPACE***********/ } for (i = 0; i < 26; 【?】) OUT=fopen("out.dat","w"); /***********SPACE***********/ if(OUT==NULL) string[i] = 【?】; { string[i] = '\0'; printf("Write FILE Error"); /***********SPACE***********/ } printf ("the arrary contains %s\n", for(i=0;i<5;i++) 【?】); { } fscanf(IN,"%d",&t); o=fun(t); /*---------------------------------------------- fprintf(OUT,"%f\n",o); -------- 【程序改错】 } 功能:将s 所指字符串的反序和正序进fclose(IN); 行连接形成一个新串放在fclose(OUT); t 所指的数组中。 } d = len(s); strlen[s] for (i = 1; i /*---------------------------------------------- -------- 【程序设计】 【程序改错】 功能:把20个随机数存入一个数组,功能:从键盘输入十个学生的成绩,然后输出该数组中的 统计最高分,最低分和平均分。最小值。其中确定最小值的下max 代表最高分,min 代表最低标的操作在fun 函数中分, avg代表平均分。 实现,请给出该函数的定义。 float a[8],min,max,avg; a[10] ------------------------------------------------ */ scanf("%f",a); &a[i] } #include max=min=avg=a[0]; #define VSIZE 20 void wwjt(); if(mina[i] 【程序填空】int vector[VSIZE] ; 功能:考查字符串数组的应用。输出 26 个英文字母。int fun(int list[],int size) { ------------------------------------------------- /**********Program**********/ 14 二年级C语言程序填空 题答题技巧 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128) 程序填空题答题技巧 程序填空题是计算机等级考试中的重点中度难点,占有的分值为30 分。做填空题时注意掌握答题技巧。 填空题的分类: (一)、数学题目 解题方法: 1.量赋初值,如果这个量以后用到的是加减运算,则赋初值0或者为是0.0;如果以后用到的是乘除运算,则赋初值为1或者是1.0; 2.循环条件的填空,分析表达式的规律,看表达式中的最后一项的值是否到了第m项或者是第n项,如果到了第m或者第n项,则在循环中的第二个表达式中用到的是i<=m或者是i<=n; 3.循环条件中如果用的是while 语句,则循环变量的初值应该在while 的外面定义和赋初值,在循环语句中必须给变量自加或者是自减。如果没有则一般填的是i++; 例子:int i=1; while(i<5){} (二)、字符串题目 1、循环的条件是判断该字符是否和结束符\0相等,如果相等,说明该字符串结束,否则说明没有结束,继续循环。While(s[i]!=’\0’) 2、把一个数字字符转变成对应的数值的格式是:ch=’1’-‘0’;把大写字母转变为小写字母 的格式:c h=c h+32 ;把小写字母转变为大写字母的格式为:ch=ch-32 ; 3、区分好字符数组中的指针和指针所指的值的关系。在循环语句中,当指针往后走一个位置的时候,用的是指针的自加,而不是指针所指的值的自加。 char ch[5]=”abcd” ; char * p; p=ch; p指向哪个字母?*p 代表什么?p指向下一个字母如何操作?p++还是(*p)++ 4、掌握字符数组中的函数的使用的格式。即:strlen(a)、strcmp(a,b)、strcpy(a,b) 、sizeof() 、strcat()的使用格式。注意里面的格式中使用的都是指针或数组名。 5、字符数组结束时都有一个结束符:‘\0’;在字符数组中的题目中的结束后要加上一个结束符。 (三)、结构体题目 结构体类型的题目 1、看清题目的意思。 2、定义结构体变量时的格式。 struct student *stu1 stu1->name struct student stu2 https://www.wendangku.net/doc/ac5215673.html, 3、结构体中成员的调用格式。结构体中的成员分为多种类型,调用结构体重的成员,使用的是“.”或者是“—>”运算符。得到结构体中学生分数,a— >score[i]。 4、如果返回的是结构体的话,函数的返回类型必须是结构体类型。调用函数的格式中,调用的若是结构体数组,则只用写结构体数组名。 (四)、函数题目(重点) 2012年计算机二级C语言程序填空题及答案解析精选 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ① ; b= ② ; a= ③ ; printf("a=%d,b=%d\n",a,b); } 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。#include double pi(long n) { double s=0.0; long i; for(i=1;i<=n;i++) s=s+ ① ; return( ② ); } 【3.3】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p if(s[p] ① ; } main() { int a[10],i,*k=&i; for(i=0;i<10;i++) scanf("%d",&a[i]); findmin(a,10,k); printf("%d,%d\n",*k,a[*k]); } 【3.4】下面程序的功能是计算1-3+5-7+ …… -99+101的值。 main() { int i,t=1,s=0; for(i=1;i<=101;i+=2) { ① ; s=s+t; ② ; } printf("%d\n",s); } 【3.5】有以下程序段: s=1.0; for(k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf("%f\n",s); 填空完成下述程序,使之与上述程序的功能完全相同。 s=0.0; ① ; k=0; do { s=s+d; ② ; d=1.0/(k*(k+1)); }while( ③ ); printf("%f\n",s); 【3.6】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ① ) { if(x>amax) amax=x; if( ② ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p C语言程序设计试题1 一、单项选择题 1.C语言规定,在一个源程序中main函数的位置______d___ 。 A.必须在最开始B.必须在最后 C.必须在预处理命令的后面D.可以在其他函数之前或之后 2.以下选项中,_________d__ 是C语言关键字 A.printf B.include C.fun D.default 3.已知有声明"int a=3,b=4,c;",则执行语句"c=1/2*(a+b);"后,c的值为____a_ 。 A.0 B.3 C.3.5 D.4 4.设指针变量占4个字节的内存空间,若有声明"char *p="123";int c;",则执行语句 "c=sizeof(p);"后,c的值为__d__ A.1 B.2 C.3 D.4 5.已知有声明"int a=3,b=4;",下列表达式中合法的是_d___。 A.a+b=7 B.a=|b| C.a=b=0 D.(a++)++ 6.已知有声明"char s[20]="Hello";",在程序运行过程中,若要想使数组s中的内容修改为"Good",则以下语句中能够实现此功能的是___d_。 A.s="Good"; B.s[20l="Good"; C.strcat(s,"Good"); D.strcpy(s,"Good"); 7.已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};",若需要引用值为12的数组元素,则下列选项中错误的是_a___ 。 A.*(a+2)+3 B.*(*(a+2)+3) C.*(a[2]+3) D.a[2][3] 8.已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为_b___ 。 A.3 B.3.0 C.3.89 D.4.0 9.已知有声明"int a=12,b=15,c;",则执行表达式"c=(a||(b-=a))"后,变量b和c的值分别为 __b__。 A.3,1 B.15,12 C.15,1 D.3,12 10.下面的函数定义正确的是_____d________ A)float fun (float x ; float y) {return x*y;} B)float fun (float x,y) {return x*y;} C)float fun (x,y) {int x,y;return x*y;} D)int fun (int x, int y) {return x*y;} 11.某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是_d___。 A.#define P 3.14; B.#define P(3.14) C.#define P=3.14; D.#define P 3.14 12.下列四个选项中,属于C语言关键字的是__c__ 。 A.Float B.single C.double D.real 13.已知某编译系统中signed int类型数据的长度是16位,该类型数据的最大值是_D___。 A.32767 B.32768 C.127 D.65535 程序填空 第1题 题目:求出二维数组中的最大元素值。 1). max_value(3,4,a) 2). array[][4] 3). max=array[i][j] 第2题 功能:数组名作为函数参数,求平均成绩。 1). a 2). av 3). &sco[i] 4). sco 第3题 题目:求数组中的最大值。 程序中有4个空,填空使程序完整。 1). &a[i] 2). a[i] 3). int x,int y 或 int y,int x 4). z 或 ( z ) 第4题 题目:找出数组中最大值和此元素的下标,数组元素的值由键盘输入。 1). a + i 或 &a[i] 2). p-a 或 -a+p 3). > 4). *s 第5题 功能:通过函数的递归调用计算阶乘。 1). power(n-1)*n 或 power( n - 1 ) * n 2). &n 3). y 第6题 题目:有5个学生,每个学生有3门课的成绩,从键盘上输入以上数据(包括学生的学号、姓名和3门课的成绩),计算出平均成绩,将原有数据和计算出来的平均成绩存放在磁盘文件“stu”中。 1). *fp 2). k/n 3). &a[i] 4). &b[i] 第7题 题目:下面程序的功能是:将一个字符串中下标为m的字符开始的全部字符复制成为另一个字符串。程序中有4个空,填空使程序完整。 1). char *p1 , *p2 ; 2). p1= str1 + m; 3). *p2++=*p1++; 或 *(p2++)=*(p1++); 4). strcopy(str1,str2,m); 第8题(10.0分)题号:422 题目:文件操作。 1). FILE 2). r 3). fclose(fp) 第9题 题目:输入学生成绩并显示。 1). i++ 或 ++i 或 i=i+1 2). &stu[i] 3). &stu[i] 4). printf 第10题 题目:输入数组,最大的与最后一个元素交换,最小的与第一个元素交换,输出数组。 1). i<9 或 9>i 2). min=p 3). l=*p 4). array[9]=k 第11题 题目:以下程序的功能是删除一个字符串中的所有数字字符。 1). s[i]!= 或 *(s+i)!= 2). || 3). s[j]=s[i] 4). delnum(item) 第12题(10.0分)题号:436 题目:输出两个整数中大的那个数,两个整数由键盘输入。 1). (int *) 2). p1 3). *p1 第13题 题目:以下程序的功能是删除字符串中的指定字符,字符串和要删除的字符均由键盘输入。 1). str 2). !='\0' 3). str[k]=str[i] 4). str[k]='\0' 第14题 题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。 C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后( #include 三、程序填空题 导读:在程斥填空题中,已经给出了程序的主干,读者首先要理解程序的思路, 再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步堂握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上己经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而白己编写程序乂不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 ttinclude for(i=0; i<10; i++) scanf &a[i]); findmin(a, 10, k); printf ("%d, %d\n", *k, a L*kJ); } 【3.4】下面程序的功能是计算1-3+5-7+……-99+101的值。 main() { int i, s=0: for(i=l; i<=101: i+=2) {①; s二s+t: ②; } printf ("%d\n", s); } [3.5]有以下程序段: s=l. 0; for(k=1: k<=n: k++) s=s+l. 0/(k*(k+1)); printf ("%f\n", s); 填空完成下述程斥,使之与上述程序的功能完全相同。 s=0. 0: ①; k=0; do { s二s+d; ②; d=1.0/(k*(k+l)); }while(③); printf ("%f\n", s); [3.6]下而程用的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main () ;、float x, amax, amin; scanf &x); amax=x: amin=x; #include } } #include 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ① ; b= ② ; a= ③ ; printf("a=%d,b=%d\n",a,b); } 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。#include double pi(long n) { double s=0.0; long i; for(i=1;i<=n;i++) s=s+ ① ; return( ② ); } 【3.3】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p if(s[p] ① ; } main() { int a[10],i,*k=&i; for(i=0;i<10;i++) scanf("%d",&a[i]); findmin(a,10,k); printf("%d,%d\n",*k,a[*k]); } 【3.4】下面程序的功能是计算1-3+5-7+ …… -99+101的值。 main() { int i,t=1,s=0; for(i=1;i<=101;i+=2) { ① ; s=s+t; ② ; } printf("%d\n",s); } 【3.5】有以下程序段: s=1.0; for(k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf("%f\n",s); 填空完成下述程序,使之与上述程序的功能完全相同。 s=0.0; ① ; k=0; do { s=s+d; ② ; d=1.0/(k*(k+1)); }while( ③ ); printf("%f\n",s); 【3.6】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ① ) { if(x>amax) amax=x; if( ② ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 【3.7】下面程序的功能是将形参x的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中。 fun(int x,int b[]) 面向对象程序设计期末综合练习二(填空题) 填空题 1.C++ 语言是在 _________语言的基础上发展起来的。 2.C++ 语言的编译单位是扩展名为 __________的 __________文件。 3.行尾使用注释的开始标记符为 __________ 。 4.多行注释的开始标记符和结束标记符分别为__________ 和 __________。 5.用于输出表达式值的标准输出流对象是_________。 6.用于从键盘上为变量输入值的标准输入流对象是________。 7.一个完整程序中必须有一个名为 ________的函数。 8.一个函数的函数体就是一条 _________语句。 9.当执行 cin 语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。 10.在 C++程序中包含一个头文件或程序文件的预编译命令为__________。 11.程序中的预处理命令是指以______字符开头的命令。 12.一条表达式语句必须以 ______ 作为结束符。 13.在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是 ________定义的头文件。 14.使用 #include 命令可以包含一个头文件,也可以包含一个______文件。 15.一个函数定义由 ________和 ________两部分组成。 16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 17. C++头文件和源程序文件的扩展名分别为______和 ______。 18.程序文件的编译错误分为 ________和 ________两类。 19.当使用 _______保留字作为函数类型时,该函数不返回任何值。 20.当函数参数表用 ______保留字表示时,则表示该参数表为空。 21 .从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______ 个参数。 22.当执行 cout 语句输出 endl 数据项时,将使 C++显示输出屏幕上的光标从当前位置移动到 ________的开始位置。 23.假定 x=5,y=6,则表达式 x++*++y 的值为 __________ 。 24.假定 x=5,y=6,则表达式x--*--y的值为__________。 25.假定 x=5,y=6,则执行表达式 y*=x++ 计算后, x 和 y 的值分别为 __________和 __________ 。 26.假定 x=5,y=6,则执行表达式 y+=x-- 计算后, x 和 y 的值分别为 __________和 __________ 。 27.C++ 常数 0x145 对应的十进制值为 __________。 28.C++ 常数 0345 对应的十进制值为 __________ 。 29.十进制常数 245 对应的十六进制的 C++表示为 __________。 30.十进制常数 245 对应的八进制的 C++表示为 __________ 。 31.signed char类型的值域范围是________至__________之间的整数。 32.int和float类型的数据分别占用_________和__________个字节。 33.float和double类型的数据分别占用_________和________个字节。 34.bool和char类型的数据分别占用_________和________个字节。 35.unsigned short int和int类型的长度分别为_________和________。 C语言程序设计试题(第1套) 一.单项选择题(30分,每题2分) 1.用C语言编写的代码程序______。 A、可立即执行 B、是一个源程序 C、经过编译即可执行 D、经过编译解释才能执行 2. C语言中用于结构化程序设计的三种基本结构是______。 A、顺序结构、选择结构、循环结构 B、if、switch、break C、for、while、do-while D、if、for、continue 3. 以下选项中合法的实型常数是______。 A、B、E-3 C、.2E0 D、 4. 假定x和y为double型,则表达式x=2,y=x+3/2的值是______。 A、B、3 C、D、 5. ch是字符型变量,下面不正确的赋值语句是______。 A、ch = 65; B、ch="a"; C、ch ='\ n'; D、ch= 9+ '0'; 6. 下列有关C语言程序书写格式的说法哪个是错误的 A、C程序的书写格式比较自由,一个语句可以占多行,一行也可以有多个语句。 B、C语句必须要有分号。 C、C语言程序的标识符必须使用小写字母。 D、用{ } 括起来的部分,通常表示了程序的某一层次结构,称为块。 7.下面程序段所表示的数学函数关系是______。 x= -1; if (a!=0) if (a>0) x=1; else x=0; -1 (a<0) 1 (a<0) A、x= 0 (a=0) B、x= -1 (a=0) 1 (a>0) 0 (a>0) 0 (a<0) -1 (a<0) C、x= -1 (a=0) D、x= 1 (a=0) 1 (a>0) 0 (a>0) 8. 以下关于do-while循环的不正确描述是______。 A) do-while的循环体至少执行一次 B) do-while的循环体可以是复合语句 C) 在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作 D) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 9. 以下程序执行后sum的值是______。 A) 15 B) 14 C) 不确定 D) 0 main() { int i , sum=0; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); } 10.若有说明语句:int a[][3]={1,2,3,4,5,6}; 则a数组第一维的大小是。 A. 1 B. 2 C.3 D. 无确定值 11. C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是______。 A、float型 B、long型 C、int型 D、double型 12.下面正确的函数定义形式为 A、double fun(int x;int y) B、double fun(int x,int y); C、double fun(int x,y) D、double fun(int x,int y) 13.以下程序运行后,输出结果是______。 #define ADD(x) x+x 三、程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include for(i=1;i<=n;i++) s=s+ ① ; return( ② ); } 【3.3】下面的程序的功能是求一维数组中的最小元素。findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p 计算机二级C语言题库之程序填空 找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1 #include <stdio.h> #include<math.h> void main() { int i,a,b,c; for(i=100;i<=999;i++) { a=i/100; _______1_______ // b=i%100/10; c=i%10; if (________2________) // a*a*a+b*b*b+c*c*c = = i printf("%d is a Armstrong number!\n",i); } } 输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。#include <stdio.h> void main() { int n,k=0; scanf("%d",&n); while( _____1_____ ){ // n!=0 k++; _____2_____; // n=n/10 } printf("%d\n",k); } 求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。 #include <stdio.h> #include <math.h> void main() { int n,s=0; scanf("%d",&n); ______ 1 ______ // if (n<0) n=-n; while(n!=0) { ______ 2 ______ // s+=n%10; n=n/10; } printf("%d\n",s); 一、填空共219题 第1题题号:422 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【1】 . Struct stud { char num[6]; int s[4]; double ave; } a,*p; 答案: 1). 22 第2题题号:533 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y); 答案: 1). 3 第3题题号:496 静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是 在【2】时进行的. 答案: 1). 编译 2). 函数调用 第4题题号:96 已知a=13,b=6, a&b的十进制数值为【1】. 答案: 1). 4 第5题题号:398 程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 答案: 1). 0 第6题题号:651 设w=5;w+= -2;则w的值为【1】. 答案: 1). 3 第7题题号:258 下面程序段的输出结果是【1】. int a=12; a=a&0377;pritnf("%d\n",a); 答案: 1). 12 第8题题号:457 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是【1】. 答案: 1). 1 第9题题号:402 设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的 二进制数是【1】. 答案: 1). 11110000 第10题题号:311 若所用变量均已正确定义,则执行下面程序段后的值是【1】. for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案: 1). YESYES 《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 2012-2013学年二学期C语言期末考试试卷(A卷)班级:___________学号:___________姓名:___________得分:___________ 题号一二三四五六七八九十成绩复核得分 阅卷 题目部分,(卷面共有24题,100分,各大题标有题量和总分) 一、填空题(24小题,共100分) 1. 以下程序的功能是计算下面函数的值。请填空。 #include 3. 已定义一个含有30个元素的数组s,函数fav1的功能是按顺序分别赋予各元素从2开始的偶数,函数fav2则按顺序每五个元素求一个平均值,并将该值存放在数组w中。请填空。 #define SIZE 30 fav1(float s[]) { int k,i; for(k=2,i=0;i 【程序填空】 功能:写一个函数,求一个字符串的长度,在main函数中输入字 符串,并输出其长度。 len=length(str...); I.nt length ........(p) N.++..; P.++..; 【程序改错】 功能:将一个字符串中的大写字母转换成小写字母。 bool (char) ......fun(char *c) fun= c;(return *c) .......... puts(*p);(putchar(*p)) ............. 【程序设计】 功能:编写函数实现两个数据的交换,在主函数中输入任 意三个数据,调用函数对这三个数据从大到小排序。 ------------------------------------------------*/ #include二年级C语言程序填空题答题技巧
2012年计算机二级C语言程序填空题及答案解析精选
C语言程序设计程序填空题库及答案
C语言程序设计试题1
C语言程序填空
C语言程序设计期末考试试题(含答案)
c语言程序填空题1
c语言程序填空题
二级C语言程序填空
C语言程序设计期末练习填空题.docx
C语言程序设计试题第1套(山东建筑大学)
c语言程序填空题(1)
计算机二级C语言题库之程序填空
大学计算机C语言程序设计(填空题)
C语言程序设计模拟试题1附答案
C语言练习题填空题1
c语言程序填空(含答案)