您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 药学 > C语言期末复习题和答案,C语言强化习题
C语言期末复习题1.构成C语言源程序的基本单位是____A.子程序B.过程C.文本D.函数D2.在一个C程序中,main()函数___A.必须出现在所有函数之前B.可以在任可地方出现C.必须出现在所有函数之后D.以上都不对B3.以下描述正确的是____A.最简单的C源程序可以不包括任何内容。B.编译程序对C源程序编译时不检查语法。C.C程序中没有输入输出语句。D.在C程序中,至少必须有一个main()函数。D4.C语言是一种_____化程序设计语言结构5.下面不正确的字符串常量是____A.’AB’B.”ab’ab”C.”a”D.”“A6.下面四个选项中均是合法的整型常量的是:______A.340,025,-11B.02,0x,03fC.-0X2A,985.768,4d2D.0X15,0X2,-760xA7.设有定义:inta=10;则表达式a+=a*=a的值是:____A.10B.100C.1000D.200D8.设有如下定义:inta=1,b=2,c=3,d=4,x=2,y=2;则表达式(x=ab)&&(y=cd)运算后,y的值为_______A.1B.2C.3D.4B9.能正确表示逻辑关系“a大于等于10或小于等于0”的C语言表达式是____A.a=10ora=0B.a=0|a=10C.a=10&&a=10D.a=10||a=0D10.设m是int型变量,则表达式(m=2*3,m+4),m*3的值是______1811.以下程序段执行后z的值是____intx,y,z;x=1;y=2;z=1.0/y*x答:012.以下程序段的输出结果是____main(){charm;m=’B’+32;printf(“%c\n”,m);}则输出的结果是:_____b13.表达式7/3*(int)3.14/(int)(1.2*(5+2.3))的数据类型为_____,表达式的值为_____整型014.计算下列表达式的值:设inta=3,b=4,c=5;floatk=3.6;(1)a/b*c0(2)a*b%c2(3)k/a+2*b9.20000(4)(int)(k+6/a*b)11(5)sizeof(a)2or4(6)a+=a*=a+b42(7)c%b-a/20(8)!(a*b-12)1(9)(a*b-2)==c+30(10)cba0,2,9.200000,11,2,42,2,1,0,015.若有以下语句组,则输出结果是____intx=0;if(x++0)printf(“%d”,--x);printf(“%d”,x++);A.-1B.1C.-1-1D.-10答:B16.以下程序的输出结果是:___main(){intx=3,y=0,z=0;if(x=y+z)printf(“****”);elseprintf(“####”);}A.有语法错误不能通过编译B.输出****C.通过编译,但不能通过连接D.输出####答案D17.以下程序的运行结果是:____main(){intx=1,y=1;switch(x){case1:switch(y){case0:printf(“yis0.\n”);break;case1:printf(yis1.\n”);break;default:printf(“yisunknown.\n”);break;}case2:printf(“Idothis.\n”);}}答案:yis1Idothis18.C语言中,while与do—while语句的主要区别是____A.do—while的循环体至少无条件执行一次。B.do-while允许从外部跳到循环体内。C.while循环体至少无条件执行一次。D.while的循环控制条件比do-while的严格。答案:A19.以下说法正确的是____A.C语言中不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出。C.do-while语句构成的循环,当while后圆括号内的表达式的值为非零时结束循环。D.do-while语句构成的循环,当while后圆括号内的表达式值为零时结束循环。答案D20.下面关于for语句的正确描述为:()A.for语句只能用于循环次数已经确定的情况B.for语句是先执行循环体语句,再判断表达式C.在for语句中,不能用break语句跳出循环体。D.在for语句的循环体语句中,可以包含多条语句,但必须用大括号括起来。答案:D21对于for(表达式1;;表达式3)可以理解为_____p84A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)答案B22.以下程序执行后,输出“#”号的个数是:_____main(){inti,j;for(i=1;i5;i++)for(j=2;j=i;j++)printf(“#”);}A.0B.4C.6D.7答案:C23.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为____for(i=0,j=10;i=j;i++,j--)k=i+j;A.9B.10C.11D.12答案B24以下程序输出的结果是:_____main(){inti;for(i=0;i3;i++)switch(i){case1:printf(“%d”,i);case2:printf(“%d”,i);default:printf(“%d”,i);}}答案:01112225.请填入一个整数,使以下程序段输出10个整数。for(i=0;i=___;printf(“%d\n”,i+=2));答案:1826编程序打印所有的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数。如:153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。(参考教材P92)27.打印出以下图案:****************(参考教材p95)28.以下描述正确的是____A.return语句是函数中不可缺少的语句B.函数中不可以有多条return语句C.函数中,return后面一定要有表达式。D.函数返回值一定要通过return语句返回。答案D29.一个函数返回值的类型取决于____A.定义函数时指定或缺省的函数类型B.调用该函数时临时指定C.调用该函数的主调函数的类型D.return语句中表达式的类型答案A30.以下叙述正确的是____A.一个源程序中只能有一条文件包含命令。B.预处理命令都必须以“#”开头C.预处理命令必须定义在程序的头部。D.以下是正确的宏定义:#defineIBM-PC答案:B31.以下程序的输出结果是____#include“stdio.h”intfun(inta,intb){returna+b;}voidmain(){intx=2,y=5,z=8,r;r=fun(fun(x,y),z);printf(“%d”,r);}A.12B.13C.14D.15答案:D32.以下程序的输出结果是____#includestdio.hintf(intn){if(n2)return(f(n-1)+f(n-2));elsereturn2;}voidmain(){printf(“%d\n”,f(3));}A.4B.6C.2D.8答案:A33.以下程序的输出结果是:_____voidmain(){inta,b,c;a=10;b=25;c=f(a,b);printf(“%d/%d=%d”,b,a,c);}f(intm,intn){return(n/m);}答案:25/10=21)以下符合C语言语法的实型常量是()A)1.2E0.5B)3.14.159EC).5E-3D)E15答案:C2)给出以下定义:charx[]=abcdefg;chary[]={'a','b','c','d','e','f','g'};则正确的叙述为()A)数组X和数组Y等价B)数组X的长度大于数组Y的长度C)数组x和数组Y的长度相同D)数组X的长度小于数组Y的长度答案:B3)不能把字符串:Hello!赋给数组b的语句是()A)charb[10]={'H','e','l','l','o','!'};B)charb[10];strcpy(b,Hello!);C)charb[10]=Hello!;D)charb[10];b=Hello!;答案:D4)若有以下说明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;则数值为4的表达式是()A)a[g-c]B)a[4]C)a['d'-'c']D)a['d'-c]答案:D5)设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()scanf(“%d”,pa);scanf(“%d”,a);scanf(“%d”,&pa);scanf(“%d”,*pa);6)若有以下函数调用语句fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是()A)3B)4C)5D)67)有以下程序voidfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,z);printf(%d,%d.%d,x,y,z);}输出结果是()A)30,20,10B)10,20,30C)456,567,678D)678,567,4568)定义如下变题和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是:()for(i=0;i3;i++)printf(%d,x[2-i]);A)159B)147C)357D)3699)以下程序运行后,输出结果是()intd=1;fun(intp){intd=5;d+=p++;printf(%d,d);}main(){inta=3;fun(a);d+=a++;printf(%d\n,d);}A)84B)99C)95D)4410)下面程序的输出是()A)3B)4C)6D)9fun3(intx){staticinta=3;a+=x;return(a);}main(){intk=2,m=1,n;n=fun3(k);n=fun3(m);printf(%d\n,n);}11)当调用函数时,实参是一个数组名,则向函数传送的是()A)数组的长度B)数组每一个元素的地址C)数组的首地址D)数组每个元素中的值12)以下程序voidsort(inta[],intn){inti,j,t;for(i=0;in-1;i++)for(j=i+1;jn;j++)if(aa[j]){t=a;a=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i10;i++)printf(%d,,aa);printf(\n);}程序运行后的输出结果是()。A)1,2,3,4,5,6,7,8,9,10,B)1,2,3,8,7,6,5,4,9,10,C)10,9,8,7,6,5,4,3,2,1,D)1,2,10,9,8,7,6,5,4,3,13)以下程序的输出结果是()intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i3;i++)j+=f(i);printf(%d\n,j);}A)4B)3C)2D)114)有程序段如下:voidreverse(inta[],intn){inti,t;for(i=0;in/2;i++){t=a;a=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i10;i++)s+=b;pri
本文标题:C语言期末复习题和答案,C语言强化习题
链接地址:https://www.777doc.com/doc-2908027 .html