《武汉大学C语言期末复习试题》由会员分享,可在线阅读,更多相关《武汉大学C语言期末复习试题(27页珍藏版)》请在人人文库网上搜索。
1、1,试卷共5个大题 单项选择题题(每题1分,共20分) 填空题(20分,每题2分) 阅读程序(20分,每题4分) 完成程序题(20分,每空2分) 程序编制题:(20分,每题10分,2,2,1、下列语句中符合C语言语法的赋值语句是 A) a=7+b+c=a+7; B) a=7+b+=a+7; C) a=7+b,b+,a+7 D) a=7+b,c=a+7,2、在C语言中,要求运算数必须是整型的运算符是 A) % B) / C) D),练 习,3、已知字母A的ASC码为十进制的65,下面程序的输出是 main() char ch1,ch2; ch1=A+5-3; ch2=A+6-3; printf(。
2、%d,%cn,ch1,ch2); A) 67,D B) B,C C) C,D D) 不确定的值,3,4、下面程序的输出是 main() int x=10,y=3; printf(%dn,y=x/y); A) 0 B) 1 C) 3 D) 不确定的值 5、 若执行下面的程序时从键盘上输入13和14,则输出是 main() int a,b; scanf(“%d%d”, A) 3 B) 4 C) 1 D) 2,4,7、下面程序的输出是 main() enum team my,your=4,his,her=his+10; printf(%d%d%d%dn,my,your,his,her); A) 0 。
3、1 2 3 B) 0 4 0 10 C) 0 4 5 15 D) 1 4 5 158、下面程序的输出是 main() int a=-1,b=4,k; k=(a+=0) A)求字符串的长度 B)比较两个字符串的大小 C)将字符串X复制到字符串Y D)将字符串X连接到字符串Y后面,5,10. 若fp是指向某文件的指针,且已读到该文件的末尾,则feof( fp)的返回是 A)EOF B)-1 C)非零值 D)NULL11. 根据下面的定义,能印出字母M的语句是 struct person char name9; int age; ; struct person class10=“john”,17,“。
4、paul”,19,“mary”,18,“adam”,16; A)printf(“%cn”,class3.name); B)printf(“%cn”,class3.name1); C)printf(“%cn”,class2.name1); D)printf(“%cn”,clsaa2.name0);12. 下面程序的输出是 main() int y=9; for(;y0;y-) if(y%3=0) printf(%d,-y); continue; A)741 B)852 C)963 D)875421,6,13. 下面程序的输出是 main() char x=040; printf(%dn,x=x1。
5、): A)100 B)160 C)120 D)64 14. 下面程序的输出是 main() struct cmplx int x; inf y;cnum2=1,3,2,7; printf(%dn,cnum0.y/cnum0.x*cnum1.x); A)0 B)1 C)3 D)6 15. 下面程序的输出是 fun3(int x) static int a=3; a+=x; return(a); main() int k=2,m=1,n; n=fun3(k); n=fun3(m); printf(%dn,n); A)3 B)4 C)6 D)9,7,16. 下面程序的输出是 main() int a。
6、34=1,3,5,7,9,11,13,15,17,19,21,23; int(*P)4=a,i,j,k=0; for(i=0;i3;i+) for(j=0;j2;j+) k=k+*(*(p+i)+j); printf(%dn,k); A)60 B)68 C)99 D)108 17.该程序有两个printf 语句, 如果第一个printf 语句输出的是194, 则第二个printf语句的输出结果是: main() int a10=1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(%xn,p); printf(%xn,p+9); A)203 B)204 C)1a4 D)1a6。
7、,8,18. 以下说法中正确的是 A)C语言程序总是从第一个的函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 19.执行下面的程序后, a的值为 main() int a,b; for (a=1,b=1;a=20) break; if(b%3=1) b+=3; continue; b-=5; A)7 B)8 C)9 D)10,9,20.以下程序段的输出结果是 int x=3; do printf(%3d,x-=2); while(!(-x); A)1 B)3 0 。
8、C)1-2 D)死循环 21. 设有以下定义: int a43=1,2,3,4,5,6,7,8,9,10,11,12; int (*ptr)3=a,*p=a; 则下列能够正确表示数组元素a12的表达式是 A)*(*ptr+1)2) B)*(*(p+5) C)(*ptr+1)+2 D)*(*(ptr+1)+2) 22.下列程序的输出结果是 main( ) char *p1, *p2, str50=xyz; p1=abcd; p2=ABCD; strcpy(str+2, strcat(p1+2,p2+1); printf(%s, str); A)xyabcAB B)abcABz C)ABabcz 。
9、D)xycdBCD,10,23. 执行以下程序后, y的值是 main ( ) int a=2,4,6,8,10, y=1, x, *p; p=,x=0.0,x amin,11,25.不能把字符串:Hello!赋给数组b的语句是 A)char b10=H,e,l,l,o,!; B)char b10;b=“Hello!”; C)char b10;strcpy(b,“Hello!”); D)char b10=“Hello!”;26.若有以下说明: int a12=1,2,3,4,5,6,7,8,9,10,11,12; char c=a,d, g; 则数值为4的表达式是 A)ag-c B)a4 C)。
10、ad-c D)ad-c27.若有以下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为6的表达式是 A)*p+6 B)*(p+6) C)*p+=5 D)p+528.若有以下说明: int w34o=0,1,2,4,5,8; int(*p)4=w; 则数值为4的表达式是 A)*w1+1 B)p+,*(p+1) C)w22 D)p11,12,29.若程序中有下面的说明和定义 struct abc int x;char y; struct abc s1,s2; 则会发生的情况是 A)编译出错 B)程序将顺利编译、连接、执行 C)能顺利通过编译、连接、但不能执行 D。
11、)能顺利通过编译但连接出错 30.下面程序输出数组中的最大值,由s指针指向该元素.则在if语句中的判断表达式应该是 main() int a10=6,7,2,9,1,10,5,8,4,3,*p,*s; for(p=a, s=a; p-a10; p+) if( ) s=p; printf(“The max:%d”,*s): 31.若想通过以下输入语句给a赋1,给b赋2,则输入数据的形式应该是: int a,b; scanf(a=%b,b=%d,p*s,a=1, b=2,13,32.若有定义和语句: char s10;s=“abcd”;printf(“%sn”,s); 则结果是:(以下u代表空格)。
12、 A)输出abcd B)输出a C)输出abcduuuuu D)编译不通过33.若有以下定义和语句: int u=010, v=0 x10, w=10; printf(“%d,%d,%dn,u,v,w); 则输出结果是: A)8,16,10 B)10,10,10 C)8,8,10 D)8,10,1034. 若有以下定义和语句 char c1=b,c2=e; printf(“%d,%cn”,c2-c1,c2-a+ A); 则输出结果是: A)2,M B)3,E C)2,E D) 输出结果不确定35. 若i, j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i-。
13、) for(j=0;j4;j+) . A)20 B)25 C)24 D)30,14,36.若有以下定义和语句: char *s1=“12345”,*s2=“1234”; printf(“%dn”,strlen(strcpy(s1,s2); 则输出结果是: A)4 B)5 C)9 D)1037.若有以下定义和语句: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则不能表示a数组元素的表达式是 A)*p B)a10 C)*a D)ap-a38.下面程序的输出是 main() char *s=121; int k=0, a=0, b=0; do k+; if(k%2=0) a。
14、=a+sk-0;continue; b=b+sk-0; a=a+sk-0; while (sk+1); printf(k=%d a=%d b=%dn,k,a,b); A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 D)k=2 a=2 b=3,15,39. 下面程序的输出是 main() unsigned a=32768; printf(“a=%dn”,a); A)a=32768 B)a=-32767 C)a=-32768 D)a=-140.若有以下定义: float x;int a,b; 则正确的switch 语句是 A)switch(x) B)switch。
15、(x) case1.0:printf(*n); case1,2:printf(*n); case2.0:printf(*n); case3:printf(*n); C)switch (a+b) D)switch (a+b); case 1:printf(n); case 1:printf(.*n); case 1+2:printf(*n); case 2:printf(*n);,16,41.以下程序输出的结果是 main() char w10=ABCD,EFGH,IJKL,MNOP,K; for (k=1;k3;k+) printf(%sn, A)34 B)36 C)37 D)38,17,44。
16、.以下程序的输出结果是 subl(char a,char b) char c; c=a;a=b;b=c; sub2(char* a,char b) char c; c=*a;*a=b;b=c; sub3(char* a,char*b) char c; c=*a;*a=*b;*b=c; main() char a,b; a=A;b=B;sub3(,egaugnaL,18,46. 下列程序运行结果是________________。 #include char* search(char * p, int n) return pn; void main() char * weekDay7= “Sun。
17、day”“,Monday”, Tuesday“,Wednesday“, Thursday“, Friday“, Saturday; char * pch = search(weekDay, 4); printf(%sn, pch);,Thursday,19,47. 下列程序运行结果是_______________________。 #include void main() struct AddrList char name12; char tele18; ; AddrList MyAL = Zhang,13908012345, Wang, 13808054321, Li, 010-123456。
18、78; printf(%s %sn, MyAL1.name, MyAL1.tele);,Wang 13808054321,20,48.下面程序的功能是打开文件D:test.txt,计算该文件中的字符数。请填空完善之。 #include void main() FILE * in; in = fopen( , r); char ch = fgetc(in); int nFileLength = 0; while ( ) ; ch = ; printf(nFileLength = %dn, nFileLength);,D:Test.txt,ch != EOF,nFileLength,fgetc(i。
19、n,21,49下面程序的功能是用从键盘上输入3个数,比较得出3个数中的最小 值、中间值、最大值。使用了交换函数swap。请填空完善之。 #include void swap(int *p1, int *p2) int hold = ; *p1 = *p2; *p2 = hold; void main() int max, min, mid; printf(Enter three numbers:); scanf(%d%d%d,p1,swap( float x=2, y=1, s=0; for(n=1;n=20;n+) ; t=x; ; ; printf(“the sum is :%fn”, s。
20、);,s+=x/y,x=x+y,y=t,23,51. 下列程序运行结果是_______________________。 #include int* Search(int (*ptr)3, int n) return *(ptr+n); void main() int scores3= 60,70,80, 61,71,81, 62,72,82, 63,73,83; int *ptr = Search(scores,2); printf(%dn,*(ptr+2);,82,24,52. 完成一个C程序的步骤:编辑、__________、连接、执行。 53. 在C语言中,文件的数据存放有两种形式,一。
21、种是二进制代码形式,另一种是____________形式。 54. C语言中的位运算符 申明的是一个 。 56. C语言中申明结构体的关键字是 。 57. 在switch语句中,运行____________语句时,将导致立即从该结构中退出,编译,ASCII,指向函数的指针,struct,按位异或,break,25,58. 下列程序运行结果是_______________________。 #include int f(int a) int b=0; static int c=3; a+; c+; b+; return(a+b+c); void main() int a=2,i,k=0; for。
22、(i=0;i2;i+) k+=f(a+); printf(%dn, k);,18,26,59. 下列程序运行结果是_______________________。 #include void main() int a=1,b; for(b=1;b=8) break; if(a%2=1) a+=5; continue; a-=3; printf(%dn, b);,4,27,60. 读入n(n0,再输出x在r中所对应的最小下标(下标从0开始,includestdio.h void main() int x, k, sub, count, n, r10; scanf(%d,rk,rk = x,break,sub。