《C语言概述 笔试题及答案.doc》由会员分享,可在线阅读,更多相关《C语言概述 笔试题及答案.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第一章C语言概述 笔试题 【题1.1-1.5】 ACDCB【题1.6】 函数【题1.7】 主函数(或:main函数)【题1.8】 【1】/*【2】*/【题1.9】 【1】scanf【2】printf第三章数据类型、运算符与表达式【题3.1-3.43】 ACBAB CCADB BABCD CDACC AADDB ADADA ABCAA DDBCC DDC【题3.44】 【1】1【2】2【题3.45】 【1】4【2】8【题3.46】 -16【题3.47】 -32768 32767【题3.48】 【1】单精度型(或:float)【2】双精度型(或:double)【题3.49】 【1】整型【2】字符
2、型【3】枚举类型【题3.50】 1【题3.51】 26【题3.52】 【1】12【2】4【题3.53】 【1】6【2】4【3】2【题3.54】 -60【题3.55】 2【题3.56】 【1】10【2】6【题3.57】 5.500000【题3.58】 3.500000【题3.59】 1【题3.60】 1【题3.61】 0【题3.62】 9【题3.63】 【1】字母【2】数字【3】下划线【题3.64】 f【题3.65】 X*(X*(X*(X*(X*(X*(5*X+3)-4)+2)+1)-6)+1)+10【题3.66】 8.000000【题3.67】 13.700000【题3.68】 整型(或:in
3、t)【题3.69】 双精度型(或:double)第四章最简单的C程序设计【题4.1-4.25】 DD(BC)DC DADA(BB) DDBDB DADAA BBBAD【题4.26】 i:dec=-4,oct=177774,hex=fffc,unsigned=65532【题4.27】 *3.140000,3.142*【题4.28】 c:dec=120,oct=170,hex=78,ASCII=x【题4.29】 *d(1)=-2*d(2)=-2*d(3)=-2*d(4)=177776*d(5)=177776*d(6)=177776*【题4.30】 *d(1)=-2*d(2)=-2*d(3)=-2*
4、d(4)=fffe*d(5)=fffe*d(6)=fffe*【题4.31】 *d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=3.500e+00*d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00*【题4.32】 x=1 y=2 *sum*=310 Squared is: 100【题4.33】 (1) 10(2) 10(表示空格)(3) 56.100000(4) 3.141600(5) 5.68100e+02(6) 3.14160e+00(7) 3.1416(8) 3.1416【题4.34】 (1) 123.456
5、000(2) 123.457(3) 123.4560(4) 8765.456700(5) 8765.457(6) 8765.4567(7) 8765.4567【题4.35】 【1】可以使同一输出语句中的输出宽度得以改变。【2】#1#2#3#4#5【题4.36】 【1】输出数据左对齐【2】12#12#3.141592600#3.141592600#【题4.37】 a=+00325x=+3.14159e+00【题4.38】 a=374a=0374a=fca=0xfc【题4.39】 (1) x=7281,x=7281,x=16161,x=1c71,x=7281(2) x=7281,x=7281,x=
6、$7281,x=$007281,x=%06d(3) x=+7281,x=+7281,x=+0007281(4) x=16161,x=016161(5) x=1c71,x=0x1c71【题4.40】 【1】b【2】b【3】b【题4.41】 【1】t=a【2】c=t【题4.42】 【1】32766【2】-1【3】65535【题4.43】 -14【题4.44】 不借助任何中间变量把a、b中的值进行交换。【题4.45】 【1】跳过对应的输入数据【2】当输入以下数据时:10203040将把10赋给a1,跳过20,把30赋给a2,把40赋给a3【题4.46】 【1】未指明变量k的地址【2】格式控制符与变量
7、类型不匹配scanf语句的正确形式应该是:scanf(“%f”,&k);第六章循环控制【题6.1-6.56】 CBAAD CBB(CA)(DC) BCAAC CCB(BC)(BC) (BD)BDDB DBBCACDCCD D(BC)BDC (CD)(CA)DBD CCCCB BBBBA A【题6.57】 【1】c!=n【2】c=0&c=9【题6.58】 【1】double【2】pi+1.0/(i*i)【题6.59】 【1】x1【2】x1/2-2【题6.60】 【1】r=m,m=n,n=r【2】m%n【题6.61】 sjhiu【题6.62】 s=254【题6.63】 5,5【题6.64】 36【
8、题6.65】 3【题6.66】 * *【题6.67】 a=-5【题6.68】 【1】i%3=2&i%5=3&i%7=2【2】j%5=0【题6.69】 【1】n%10【2】max=t【题6.70】 sum%4=0【题6.71】 【1】s%10【2】s/10【题6.72】 k=14 n=-1【题6.73】 x=1,y=20【题6.74】 1,3,7,15,31,63,【题6.75】 m=4 n=2【题6.76】 i=1e-6【题6.83】 sum=19【题6.84】 *#【题6.85】 * * * * #【题6.86】 【1】k+=2【2】j!=i&j!=k【题6.87】 【1】m=n【2】m【3
9、】m/=10【题6.88】 【1】m=0,i=1【2】m+=i【题6.89】 【1】100-i*5-j*2【2】k=0【题6.90】 【1】j=1【2】k=0&k=6【题6.91】 m=1【题6.92】 1,-2【题6.93】 * * * * * * * * * * * * *【题6.94】 # # # # # # *# # * *# * * *【题6.95】 2,3【题6.96】 8【题6.97】 【1】i=j【2】k!=i&k!=j【题6.98】 【1】k【2】k/10【3】continue【题6.99】 【1】break【2】i=11【题6.100】 【1】i=9【2】j%3!=0【题6
10、.101】 2 5 8 11 14【题6.102】 i=6,k=4【题6.103】 a=16 y=60【题6.104】 3 1 1【题6.105】 #include main()int day = 0, buy = 2;float sum = 0.0, ave;dosum += 0.8 * buy;day+;buy *= 2;while (buy = 100);ave = sum / day;printf(“%f”, ave);【题6.106】 #include main()int i;for (i=1; i100; i+)if (i * i % 10 = i | i * i % 100 =
11、i)printf(“%3d”, i);或:#include main()int i;for (i=1; i100; i+)if (i * i % 10 = i)printf(“%3d”, i);else if (i * i % 100 = i)printf(“%3d”, i);【题6.107】 #include main()int i, x, y, last = 1;printf(“Input x and y:”);scanf(“%d%d”, &x, &y);for (i=1; i=y; i+)last = last * x % 1000;printf(“nThe last 3 digits
12、of %d * * %d is: %dn”, x, y, last%1000);【题6.108】 #include main()int i, j;float g, sum, ave;for (i=1; i=6; i+)sum = 0;for (j=1; j=5; j+)scanf(“%f”, &g);sum += g;ave = sum / 5;printf(“No.%d ave=%5.2fn”, i, ave);键盘输入:95 70 73 67 6460 65 77 86 9071 93 63 80 9087 83 91 95 89100 93 89 92 8552 63 66 70 71运
13、行结果:No.1 ave=73.80No.2 ave=75.60No.3 ave=79.40No.4 ave=89.00No.5 ave=91.80No.6 ave=64.40第一章1.1选择题【题1.1】一个C程序的执行是从。A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最 后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束【题1.2】以下叙述正确的是。A) 在C程序中,main函数必须位于程序的最前面B) C程序的每行中只能写一条语句C) C语言本身没有输
14、入输出语句D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误【题1.3】以下叙述不正确的是。A) 一个C源程序可由一个或多个函数组成B) 一个C源程序必须包含一个main函数C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面【题1.4】C语言规定:在一个源程序中,main函数的位置。A) 必须在最开始B) 必须在系统调用的库函数的后面C) 可以任意D) 必须在最后【题1.5】一个C语言程序是由。A) 一个主程序和若干子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成1.2 填空题【题1.6】C源程序的基本单位是【】。【题1.7】一个C源程序至
15、少应包括一个【】。【题1.8】在一个C源程序中,注释部分两侧的分界符分别为【1】和【2】。【题1.9】在C语言中,输入操作是由库函数【1】完成的,输出操作是由库函数【2】完成的。第二章了解算法的概念,了解算法的特性(有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性)掌握算法的表示方法(流程图、N-S图),以后见了程序流程图和N-S图,能够读懂。最好自己可以画出程序的流程图和N-S图。掌握三种基本结构(顺序、选择、循环)第三章3.1选择题【题3.1】在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为。A) charintlong int=floatdouble
16、B) char=intlong int=floatdoubleC) charintlong int=float=doubleD) char=int=long int=floatdouble【题3.2】若x、i、j和k都是int型变量,则执行下面表达式后x的值为。x=(i=4,j=16,k=32)A)4B)16 C)32 D)52【题3.3】假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是。A)7B)8C)6D)2【题3.5】下列四个选项中,均是C语言关键字的选项是。A) auto enum includeB) switch typedef continueC) signed
17、 union scanfD) if structtype【题3.6】下面四个选项中,均不合法的用户标识符的选项是。A) AP_0doB) floatla0_AC) b-agotointD) _123tempINT【题3.7】C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母、数字和下划线中任一种字符【题3.11】下面四个选项中,均是合法浮点数的选项是。A) +1e+15e-9.403e2B) -.6012e-4-8e5C) 123e1.2e-.4+2e-1D) -e3.2345.e-0【题3.14】下面
18、正确的字符常量是。A)“c”B) C) WD) 【题3.20】若有代数式,则不正确的C语言表达式是。A) a/b/c*e*3B) 3*a*e/b/cC) 3*a*e/b*cD) a*e/c/b*3【题3.23】以下不正确的叙述是。A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,APH和aph是两个不同的变量C) 若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中而b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值【题3.24】以下正确的叙述是。A) 在C程序中,每行中只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10
19、,因此实型变量中允许存放整型数C) 在C程序中,无论是整数还是实数,都能被准确无误地表示D) 在C程序中,是只能用于整数运算的运算符【题3.26】已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6-3;后,c2中的值为。A)DB)68C)不确定的值D)C【题3.27】在C语言中,要求运算数必须是整型的运算符是。A)B)C)!D)【题3.31】若有定义:int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。 A)2.500000 B)2.750000C)3.500000 D)0.000000【题3.33】设变量a
20、是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为。A)intB)floatC)doubleD)不确定【题3.35】若有代数式,则正确的C语言表达式是。A) sqrt(fabs(pow(y,x)+log(y)B) sqrt(abs(pow(y,x)+log(y)C) sqrt(fabs(pow(x,y)+log(y)D) sqrt(abs(pow(x,y)+log(y)【题3.37】在C语言中,char型数据在内存中的存储形式是。A)补码B)反码C)原码D)ASCII码【题3.39】表达式18/4*sqrt(4.0)/8值的数据类型为。A)intB)floatC)doubl
21、eD)不确定【题3.42】若有以下定义,则能使值为3的表达式是。int k=7,x=12;A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)【题3.43】设以下变量均为int类型,则值不等于7的表达式是。A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)3.2填空题【题3.44】在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为【1】;一个int型数据在内存中所占的字节数为【2】。【题3.46】若有以下定义,则执行表达式y+=y-=
22、m*=y后的y值是【】。int m=5,y=2;【题3.48】在C语言中的实型变量分为两种类型,它们是【1】和【2】。【题3.50】若s是int型变量,且s=6,则下面表达式的值为【】。s%2+(s+1)%2【题3.51】若a是int型变量,则下面表达式的值为【】。(a=4*5,a*2),a+6【题3.52】若x和a均是int型变量,则执行表达式(1)后的x值为【1】,执行表达式(2)后的x值为【2】。(1)x=(a=4,6*2)(2)x=a=4,6*2【题3.53】若a、b和c均是int型变量,则执行下面表达式后,a值为【1】,b值为【2】,c值为【3】。a=(b=4)+(c=2)【题3.5
23、4】若a是int型变量,且a的初值为6,则执行下面表达式后a的值为【】。a+=a-=a*a【题3.55】若a是int型变量,则执行下面表达式后a的值为【】。a=25/3%3【题3.56】若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后x的值为【1】,n的值为【2】。x+=n+【题3.58】若有定义:int a=2,b=3; float x=3.5,y=2.5;则下面表达式的值为【】。(float)(a+b)/2+(int)x%(int)y【题3.60】若有定义:int x=3,y=2; float a=2.5,b=3.5;则下面表达式的值为【】。(x+y)%2+(int)a/
24、(int)b【题3.61】若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为【 】。x%=(n%=2)【题3.62】假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为【】。【题3.63】C语言中的标识符只能由三种字符组成,它们是【1】、【2】和【3】。【题3.67】若有定义:int e=1,f=4,g=2; float m=10.5,n=4.0,k;则执行赋值表达式k=(e+f)/g+sqrt(double)n)*1.2/g+m后k的值是【】。【题3.68】表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据
25、类型为【】。【题3.69】表达式pow(2.8,sqrt(double)(x)值的数据类型为【】。第四章4.1选择题【题4.1】putchar函数可以向终端输出一个。A) 整型变量表达式值B) 实型变量值C) 字符串D) 字符或字符型变量值【题4.3】printf函数中用到格式符5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式【1】;如果字符串长度小于5,则输出按方式【2】。A) 从左起输出该字串,右补空格B) 按原字符长从左向右全部输出C) 右对齐输出该字串,左补空格D) 输出错误信息【题4.12】已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为。m
26、ain()int a; float f;printf(“nInput number:”);输入语句printf(“nf=%f,a=%dn”,f,a);Input number:4.5 2A) scanf(“%d,%f”,&a,&f);B) scanf(“%f,%d”,&f,&a);C) scanf(“%d%f”,&a,&f);D) scanf(“%f%d”,&f,&a);【题4.15】阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是。main()int x; float y;printf(“enter x,y:”);输入语句输出语句输入形式enter x,y:2 3.4输出形式x+
27、y=5.40A) scanf(“%d,%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);B) scanf(“%d%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);C) scanf(“%d%f”,&x,&y);printf(“nx+y=%6.1f”,x+y);D) scanf(“%d%3.1f”,&x,&y);printf(“nx+y=%4.2f”,x+y);【题4.16】以下说法正确的是。A) 输入项可以为一实型常量,如scanf(“%f”,3.5);B) 只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C) 当输
28、入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D) 当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);【题4.17】根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确的形式应该为。main()char ch1,ch2,ch3;输入语句printf(“%c%c%c”,ch1,ch2,ch3);输入形式:A B C输出形式:A BA) scanf(“%c%c%c”,&ch1,&ch2,&ch3);B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);C) scanf(“%c %c %c”,&ch1,&ch2,
29、&ch3);D) scanf(“%c%c”,&ch1,&ch2,&ch3);【题4.18】有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是。A) 132B) 1,3,2C) a=1 b=3 c=2D) a=1,b=3,c=2【题4.22】若有以下定义,则正确的赋值语句是。int a,b; float x;A)a=1,b=2,B)b+;C)a=b=5D)b=int(x);【题4.24】设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是。A)x=10B)x=1
30、0C)x=10D)x=10 y=15 y=10 y=10 y=5 z=10 z=10 z=15 z=104.2填空题【题4.32】以下程序的输出结果为。main()int x=1,y=2;printf(“x=%d y=%d *sum*=%dn”,x,y,x+y);printf(“10 Squared is:%dn”,10*10);【题4.43】若x为int型变量,则执行以下语句后x的值是【】。x=7;x+=x-=x+x;【题4.44】若a和b均为int型变量,则以下语句的功能是【】。a+=b; b=a-b; a-=b;【题4.45】在scanf函数调用语句中,可以在格式字符和号之间加一星号,它
31、的作用是【1】;当输入以下数据:10 20 30 40(此处每个数据之间有两个空格),下面语句的执行结果是【2】。int a1,a2,a3;scanf(“%d%*d%d%d”,&a1,&a2,&a3);【题4.46】有一输入函数scanf(“%d”,k);其不能使float类型变量k得到正确数值的原因是【1】和【2】。第五章5.1选择题【题5.1】逻辑运算符两侧运算对象的数据类型。A) 只能是0或1B) 只能是0或非0正数C) 只能是整型或字符型数据D) 可以是任何类型的数据【题5.2】以下关于运算符优先顺序的描述中正确的是。A) 关系运算符算术运算符赋值运算符逻辑与运算符B) 逻辑与运算符关
32、系运算符算术运算符赋值运算符C) 赋值运算符逻辑与运算符关系运算符算术运算符D) 算术运算符关系运算符赋值运算符逻辑与运算符【题5.3】下列运算符中优先级最高的是。A)=1)&(x=200)&(x=1)|(x=200)|(x=1)&(x=200)&(x=1)|(x=200)|(x=210)【题5.6】判断char型变量ch是否为大写字母的正确表达式是。A)A=ch=A)&(ch=A)&(ch=Z)D)(A=ch)【题5.7】设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是。A) x&yB) x=yC) x|y+z&y-zD) !(x=y&chb)&(n=cd)后n
33、的值为。A)1B)2C)3D)4【题5.11】判断char型变量c1是否为小写字母的正确表达式是。A)a=c1=a)&(c1=c1)|(z=a)&(c1y&x!=y);B) if(x=y) x+=y;C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);D) if(xy)z=x; x=y; y=z;A)x=10,y=20,z=30B)x=20,y=30,z=30C)x=20,y=30,z=10D)x=20,y=30,z=20【题5.19】请阅读以下程序:main()int a=5,b=0,c=0;if(a=b+c)printf(“*n”);elsepri
34、ntf(“$n”);以下程序。A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出* D)输出$【题5.20】以下程序的运行结果是。main()int m=5;if(m+5)printf(“%dn”,m);elseprintf(“%dn”,m- -);A)4B)5C)6D)7【题5.21】当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是。if(ab)if(cd) x=1;elseif(ac)if(bd) x=2;else x=3;else x=6;else x=7;A)1B)2C)3D)6【题5.23】以下程序的输出结果是。main()int a=100,x=10,y
35、=20,ok1=5,ok2=0;if(xy)if(y!=10)if(!ok1)a=1;elseif(ok2)a=10;a=-1;printf(“%dn”,a);A)1B)0C)-1D)值不确定【题5.24】以下程序的输出结果是。main()int x=2,y=-1,z=2;if(xy)if(y12?x+10:x-12;printf(“%dn”,y);A)0B)22C)12D)10【题5.31】执行以下程序段后,变量a,b,c的值分别是。int x=10,y=9;int a,b,c;a=(-x=y+)?-x:+y;b=x+;c=y;A)a=9,b=9,c=9B)a=8,b=8,c=10C)a=9
36、,b=10,c=9D)a=1,b=11,c=10【题5.32】若w、x、y、z、m均为int型变量,则执行下面语句后的m值是。w=1; x=2; y=3; z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;A)1B)2C)3D)4【题5.33】若w1、x2、y3、z4,则条件表达式wx?w:ybc的值是【】。【题5.36】当a=5,b=4,c=2时,表达式ab!=c的值是【】。【题5.37】以下程序的运行结果是。#include void main(void)int x=1,y,z;x*=3+2;printf(“%dt”,x);x*=y=z=5;printf(“%dt”,x);x=y=