2022年C语言复习题有答案 .pdf
《2022年C语言复习题有答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言复习题有答案 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 一、填空题(每小题2 分,共 16 分)1在 C语言中,输入操作是由库函数scanf 完成的,输出函数是由库函数printf 完成的。2.执行下列语句后,a 的值是 -264 int a 12;a+=a-=a*a;3C 语言中的每条基本语句以;作为结束符,每条复合语句以作为结束符。4.下面的程序段中循环体的执行次数是3。a=10;b=0;dob+=2;a-=2+b;while(a=0);5.假定 a为一个整型数组名,则元素a4的字节地址为 a+16 。6.已知 int a23=3,2,1;则表达式“a00/a01/a02”的值是1。7.调用函数有返回值时,应在函数的返回值类型之前增加关键字
2、 return 。如果一个函数无返回值,定义它时函数类型应是void。8.设 int a1,b2c3,d;执行 d!(a十 b十 c)后,d 的结果是 0 9.若用数组名作为函数调用时的实参,则实际上传递给形参的是数组首元素的地址。10.设 x 为 int 型变量,请写出一个关系表达式(x%3=0)&(x%7=0),用以判断x 同时为 3 和 7 的倍数时,关系表达式的值为真。11.表达式(int)(double)(5/2)+2.5)的值是4 12.若变量 x、y 已定义为 int类型且 x 的值为 99,y 的值为 9,请将输出语句printf(x/y=%d ,x/y);补充完整,使其输出的
3、计算结果形式为:x/y=11 13.数组与函数参数联系密切,当用数组元素作函数参数时,这时属于值传递;当数组名作参数时,这时属于地址 传递,对形参的改变可影响到实参。14.算术表达式5x+8xy/8-xy 对应的 C 表达式为 _5*x+8*x*y/8-x*y_15.逗号表达式(x=4*5,x*5),x+25 的值为 _45_16int i=1,j=2;则表达式+i+j 的值为 _4_ 17.用关系表达式或逻辑表达式表示条件:年份Year 能被 4 整除,但不能被100 整除或者能被400 整除 _(year%4=0&year%100!=0)|year%400=0_ 18一个 c 程序有且仅有
4、一个main()函数。19C程序的基本单位是函数。20C语言中的标识符只能由三种字符组成,它们是字母,数字和下划线。21 若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为 5 500000 。a+(int)(b/3*(int)(a+c)/2)%4 22 若有定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为3.500000。(float)(a+b)/2+(int)x%(int)y 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 20 页 -2 23设 int a1,b 2,c,d,e;执行 c(一 a 十十)十(十
5、十 b)d(b 一一)+(十十 a)一 a;e(a(十十 b)一(b(一一 a);后,变量a、b、c、d、e 的结果分别是【2】【3】【2】【3】【0】24假设变量x,为整形变量,则执行下面语句后x 的直为 -14 .x=7;x+=x-=x+x;25以下程序的执行结果是 c=k 。#include main()char c=A+10;printf(c=%cn,c);二、选择题(每题2分,共 30 分)(1)若 x,y 均定义为int型,z 定义为 double 型,以下不合法的scanf 函数调用语句是(D).A)scanf(“%d%d1x,%1e”,&x,&y,&z);B)scanf(“%2
6、d*%d%1f”,&x,&y,&z);C)scanf(“%x%*d%o”,&x,&Y);D)scanf(“%x%o%6.2f”,&x,&y,&z);(2)以下关于C 语言的叙述中正确的是(B)A)C 语言中的注释不可以夹在变量名或关键字的中间B)C 语言中的变量可以在使用之前的任何位置进行定义C)在 C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C 语言的数值常量中夹带空格不影响常量值的正确表示(3)以下 C 语言用户标识符中,不合法的是(D)A)_1 B)AaBc C)a_b D)a-b(4)若有定义:double a=22;int i=0,k=18;,则不符合C 语言规定的
7、赋值语句是(C)A)a=a+,i+;B)i=(a+k)=(i+k);C)i=a%11;D)i!a;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 20 页 -3(5)有以下程序 include main()char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar();d=getchar();printf(“%c%c%c%cn”,a,b,c,d);当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)(C)12 34 则输出结果是A)1234 B)12 C)12 3 D)12 34(6)若 a是数值类型,则逻辑表达式(a=1)
8、|(a!=1)的值是(A)A)1 B)0 C)2 D)不知道a的值,不能确定(7)以下选项中与if(a=1)a=b;else a+;语句功能不同的switch 语句是(B)A)switch(a)case:a=b;break;default:a+;B)switch(a=1)case 0:a=b;break;case 1:a+;C)switch(a)default:a+;break;case 1:a=b;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 20 页 -4 D)switch(a=1)case 1:a=b;break;case 0:a+;(8)有如下嵌套的if 语句if(ab
9、)if(ac)k=a;else k=c;else if(bc)k=b;else k=c;以下选项中与上述if 语句等价的语句是(C)A)k(ab)?a:b;k(bc)?b:c;B)k(ab)?(bc)?a:b):(bc)?b:c);C)k(ab)?(a c)?a:c):(bc)?b:c);D)k(ab)?a:b;k=(a c)?a:c;(9)有以下程序 includestdio.hmain()in i,j,m=1;for(i=1;i 3;i+)for(j=3;j O;j-)if(i*j)3)break;m=i*j;printf(m=%d n,m);程序运行后的输出结果是(A)A)m=6 B)m
10、=2 C)m=4 D)m=5 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 20 页 -5(10)一个 c 程序的执行是从(A ).A main()函数开始,直到main()函数结束B第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束Dmain()函数开始,直到最后一个函数结束(11)有以下程序,其中k 的初值为八进制数#include main()int k011;printf(%dn,k+);程序运行后的输出结果是(D)A)12 B)11 C)10 D)9(12)一个 C语言程序是由(B)。A)一个主程序和若干子程序组成B)函数组成C)若干过程组成
11、D)若干子程序组成(13)以下关于return 语句的叙述中正确的是(B)A)一个自定义函数中必须有一条return 语句B)一个自定义函数中可以根据不同情况设置多条return 语句C)定义成void 类型的函数中可以有带返回值的return 语句D)没有 return 语句的自定义函数在执行结束时不能返回到调用处(14)下列选项中,能正确定义数组的语句是D A)int num0.2008;B)int num;C)int N=2008;int numN;D)#define N 2008 int numN;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 20 页 -6(15)设
12、char ch;以下正确的赋值语句是(B).A ch123;Bch xff;Cch 08;D ch”;(16)若有代数式3ae/bc,则不正确的C语言表达式是(C)A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3(17)设有定义double a10,*s=a;,以下能够代表数组元素a3 的是 B A)(*s)3 B)*(s+3)C)*s3 D)*s+3(18)以下正确的叙述是(D).A)在 C程序中,每行中只能写一条语句B)若 a 是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在 C程序中,无论是正数还是实数,都能被准确无误
13、的表示D)在 C程序中,%是只能用于正数运算的运算符(19)】在 C语言中,要求运算数必须是整形的运算符是(D).A)/B)+C)!=D)%(20)设 int n3;则 n 十十的结果是(B ),n 的结果是(C )。A)2 B)3 C)4 D)5(21)设有定义:int x=2;,以下表达式中,值不为6 的是(D)A)x*=x+1 B)x+,2*x C)x*=(1+x)D)2*x,x+=2(22)若有以下定义int x10,*pt=x;则对 x 数组元素的正确应用是(B)A)*&x10 B)*(x+3)C)*(pt+10)D)pt+3(23)设有说明:char w;int x;float y
14、;double z;则表达式 w*x+z-y 值的数据类型为(D)。A)float B)char C)itn D)double.(24)已有定义int x;float y;且执行 scanf(“%3d%3f”,&x,&y);语句时从第一列开始输入数据12345678,则 x 的值为(B),y 的值为(B)。(注:表示空格)【1】A)12345 B)123 C)45 D)345【2】A)无定植 B)45.000000 C)678.000000 D)123.000000 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 20 页 -7(25)已有如定义和输入语句,若要求a1,a2,c1
15、,c2的值分别为10,20,A 和 B,当从第一列开始输入数据时,正确的数据输入方式是(D)。(注:表示回车)int a1,a2;char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,%c2);A)1020AB B)10 20 AB C)10 20 AB D)1020AB(26)根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为(A).main()char ch1,ch2,ch3;输入语句printf(“%c%c%c”,&ch1,&ch2,&ch3);输入形式:A B C 输出形式:A B scanf(“%c%c%c”,&ch1,
16、&ch2,&ch3);scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);scabf(“%c%c%c”,&ch1,&ch2.&ch3);scanf(“%c%c”,&ch1,&ch2,&ch3);(27)设 X,Y 均为 FLOAT变量,则以下不合法的赋值语句是(B)A)+x;B)y=(x%2)/10;C)x*=y+8;D)x=y=10;(28)】有如下程序,对应正确的数据输入是()。#include main()float a,b;scanf(%f%f,&a,&b);printf(a=%f,b=%fn,a,b);A.2.04 5.56 B.2.01,5.67 C.A=2.04,B
17、=5.67 D.2.045.67 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 20 页 -8(29)巳知字母A的 ASCII 码是 65,以下程序的执行结果是()。#include main()char c1=A,C2=Y;printf(%d,%dn,c1,c2);A.A,Y B.65,65 C.65,90 D.65,89(30)以下程序的执行结果是().#include int i=010,j=10;printf(%d,%dn,+i,j-);A.11,10 B.9,10 C.010,9 D.10,9(31)为了避免嵌套的if-else语句的二义性,c 语言规定else 总是
18、与(C )组成配对关系。A)缩排位置相同的if B)在其之前末配对的if C)在其之前未配对的最近的if D)同一行上的if(32)当 a=1,b=3,c=5,d=4时,执行完下面一段程序后x 的值是(B).if(ab)if(cd)x=1;else if(ac)if(bd)x=2;else x=3;else x=6;else x=7;A)1 B)2 C)3 D)6(33)以下程序的执行结果是()。#include main()名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 20 页 -9 int sum,pad;sum=pad=5;pad=sum+;pad+;+pad;print
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言复习题有答案 2022 语言 复习题 答案
限制150内