[工学]华北电力大学c经典题解资料.doc

上传人:sccc 文档编号:4532499 上传时间:2023-04-26 格式:DOC 页数:49 大小:421.50KB
返回 下载 相关 举报
[工学]华北电力大学c经典题解资料.doc_第1页
第1页 / 共49页
[工学]华北电力大学c经典题解资料.doc_第2页
第2页 / 共49页
[工学]华北电力大学c经典题解资料.doc_第3页
第3页 / 共49页
[工学]华北电力大学c经典题解资料.doc_第4页
第4页 / 共49页
[工学]华北电力大学c经典题解资料.doc_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《[工学]华北电力大学c经典题解资料.doc》由会员分享,可在线阅读,更多相关《[工学]华北电力大学c经典题解资料.doc(49页珍藏版)》请在三一办公上搜索。

1、第一章 C语言概述一、 选择题1、 C语言程序的基本单位是( )(A)函数(B)过程(C)子程序(D)子例程2、 下列各选项中,合法的C语言关键字是( )(A)integer(B)sin(C)string(D)void3、 下列选项中,是C语言提供的合法关键字是( )(A)swicth(B)cher(C)default(D)Case4、 C语言的程序一行写不下时,应该( )(A)用回车符换行(B)在任意一个空格处换行(C)用分号换行(D)用逗号换行5、 下列叙述不正确的是( )(A)在C程序中,%是只能用于整数运算的运算符(B)在C程序中,无论是整数还是实数,都能正确无误地表示(C)若a是实型

2、变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值。(D)在C程序中,语句之间必须用分号“;”分隔6、 在C程序中,可以作为用户标识符的一组标识符是( )(A)void define WORD(B)as_b3 _224 Else(C)Switch wer case(D)4b DO SIG7、 在C语言中,下列合法的字符常量是( )(A)039(B)x76(C)ab(D)o8、 C语言中定义了一个变量,该变量代表内存中的一个( )(A)区域(B)单元(C)地址(D)容量9、 已知字母a的ASCII码为97,则执行下列语句后输出为( )char a=a;a-;printf(“%d,%c”

3、,a+2-0,a+3-0);(A)a,c(B)a-运算不合法,故有语法错误(C)98,c(D)格式描述和输出项不匹配,输出无定值10、若ch为char型变量,k为int型变量,则执行下列语句后的输出为( )ch=a;k=12;printf(“%x,%o,”,ch,ch,k);printf(“k=%dn”,k);(A)因变量类型与格式描述符的类型不匹配,输出为定值(B)输出项与格式描述符个数不符,输出为0或不定值(C)61,141,k=%d(D)61,141,k=%1211、以下说法正确的是( )(A)C语言程序是从第一个定义的函数开始执行(B)在C语言程序中,要调用的函数必须在main()函数

4、中定义(C)C语言程序是从main()函数开始执行(D)C语言程序中的main()函数必须放在程序的开始部分12、以下叙述中不正确的是( )(A)在C程序中所有的变量必须先定义后使用(B)在程序中,aph和APH是两个不同的变量(C)若a和b类型相同,在执行了赋值语句a=b后,b中的值放入a中,b中的值不变(D)当输入数值时,对于整型变量只能输入整型值,对于实型值只能输入实型值13、以下选项中合法的用户标识符是( )(A)int(B)a#(C)5mem(D)_24314、以下选项中合法的C语言字符常量是( )(A)t(B)”A”(C)67(D)A15、以下选项中不正确的转义字符是( )(A)(

5、B)(C)020(D)016、C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符( )(A)必须为字母(B)必须为下划线(C)必须为字母或下划线(D)可以是字母、数字、下划线中任意一种二、 填空题1、 C语言中的标识符可分为_、_和预定义标识符3类。2、 在C语言程序中,用关键字_定义基本整型变量,用关键字_定义单精度实型变量,用关键字_定义字符型变量。3、 计算机中内存储器的最小存储单位是_,其中能容纳的数是_。4、 通常一个字节包含_个二进制位。在一个字节中能存放的最大(十进制)整数是_,最小(十进制)整数是_,它的二进制数的形式是_。5、 一个C语言程序的开发过程包括:编

6、辑、_、连接和运行4个步骤。6、 在C源程序中,可使用_和_两种方式进行注释。7、 在C语言中,输入操作时由库函数_完成,输出操作由库函数_完成。8、 若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为_。9、 若a、b和c均为int型变量,则计算表达式a=(b=4)+(c=2)后,a值为_,b值为_,c值为_。10、 字符串”ab034x79”的长度为_。第二章 运算符与表达式一、 选择题1、 以下程序的输出结果为( )#includevoid main( )int i=4,a;a=i+;printf(“a=%d,i=%d”,a,i);(A)a=4,i=4(B)a=5,i=4

7、(C)a=4,i=5(D)a=5,i=52、 若已定义x和y为double类型,则表达式“x=1,y=x+3/2”值为( )(A)1(B)2(C)2.0(D)2.53、 已知字符A的ASCII码值为65,以下程序( )#includevoid main( )char a=A;int b=20;printf(%d,%o,(a=a+1,a+b,b),a+a-A,b);(A)表达式非法,输出零或不确定值(B)因输出项过多,无输出或输出不确定值(C)输出结果为20,142(D)输出结果为20,142,204、 对于条件表达式(M)?(a+):(a-),其中的表达式M等价于( )(A)M= =0(B)M

8、= =1(C)M!=0(D)M!=15、 若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为( )(x+y)%2+(int)a/(int)b(A)1.0(B)1(C)2.0(D)26、 若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( )x%=(n%=2)(A)0(B)1(C)2(D)37、 假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为( )(A)7(B)8(C)9(D)108、 下列程序的输出结果是( )#includevoid main( )double d=3.2;int x,y;x

9、=1.2;y=(x+3.8)/5.0;printf(“%dn”,d*y);(A)3(B)3.2(C)0(D)3.079、 设int x=1,y=1;表达式(!x|y-)的值是( )(A)0(B)1(C)2(D)-110、执行以下程序段后,c3的值为( )int c1=1,c2=2,c3;c3=1.0/c2*c1;(A)0(B)0.5(C)1(D)211、如下程序的运行结果是( )#includevoid main( )int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2);(A)3 4(B)4 2(C)4 3(D)3 312、能正确表示逻辑关系“a10或a0”

10、的C语言表达式是( )(A)a=10 or a=0|a=10 & a=10 | ab)&(n=cd)运算后,n的值为( )(A)0(B)1(C)2(D)315、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;则该程序运行后,m的值是( )(A)4(B)3(C)2(D)116、下列程序的输出结果是( )#includevoid main( )int a=0,b=0,c=0;if(+a0|+b0)+c;printf(“a=%d,b=%d,c=%d”,a,b,c);(A)a=0,b=0,c=0(B

11、)a=1,b=1,c=1(C)a=1,b=0,c=1(D)a=0,b=1,c=117、在C语言中,如果下面的变量都是int类型,则输出的结果是( )sum=pad=5;pad=sum+,pad+,+pad;printf(“%dn”,pad);(A)7(B)6(C)5(D)418、以下程序的输出结果是( )#includevoid main( )int i=010,j=10;printf(“%d,%dn”,+i,j-);(A)11,10(B)9,10(C)010,9(D)10,919、已知int i;float f;,正确的语句是( )(A)(int f)%i;(B) int (f)%i;(C)

12、 (int f%i);(D) (int) f%i;20、已知int a=4,b=5;,则执行表达式a=ab后,变量a的值为( )(A)0(B) 1(C) 4(D) 521、判断char类型数据c1是否为大写字母的最简单且正确的表达式为( )(A)A=c1=A)&(c1=A)AND(c1=A)&(c1=Z)二、 填空题1、 若i为int整型变量且赋值为6,则运算i+后表达式的值是_,变量i的值是_。2、 条件“20x30或x-100”的C语言表达式是_。3、 下面程序的输出结果是_。#includevoid main( )int x=023;printf(“%dn”,-x);4、 对以下数学式,

13、写出3个与a/c*b等价的C语言表达式_、_、_。5、 若a是int型变量,则执行表达式a=25/3%3后a的值为_。6、 若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_。7、 若有定义int m=5,y=2;则执行表达式y+=y-=m*=y后y的值为_。8、 已知int y;float x=-3;,执行语句y=x%2;后,变量y的值为_。第三章 基本语句一、 选择题1、 合法的C语言赋值语句是( )(A)a=b=58(B)k=int(a+b)(C)a=58,b=58(D)-i;2、 若变量已正确定义,以下程序段:x=5.16894;printf(“%fn”,(int)(x

14、*1000+0.5)/(float)1000);的输出结果是( )(A)输出格式说明与输出项不匹配,输出无定值(B)5.170000(C)5.168000(D)5.1690003、 若有以下程序段:int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%dn”,a,b,c);其输出结果是( )(A)3,0,-10(B)0,0,5(C)-10,3,-10(D)3,0,34、 若有以下程序段:#includevoid main()int a=2,b=5;printf(“a=%d,b=%dn”,a,b);( )(A)a=%2,b=%5(B)a=2,b=

15、5(C)a=%d,b=%d(D)a=%d,b=%d5、 以下程序段:float a=3.1415;printf(“|%6.0f|n”,a);其输出结果是( )(A)|3.1415|(B)|3.0|(C)| 3|(D)|3.0|6、 若变量c定义为float类型,当从终端输入283.1900后按回车键,能给变量c赋以283.19的输入语句是( )(A)scanf(“%f”,c);(B)scanf(“%8.4f”,&c);(C)scanf(“%6.2f”,&c);(D)scanf(“%8f”,&c);7、 下面程序的输出结果是( )#includemain()int x=5,y=3;printf(

16、“%d”,y=x/y);(A)0(B)1(C)3(D)不确定的值8、 若变量已正确定义,下面程序段的输出结果是( )x=5.238794;printf(“%fn”,(int)(x*1000+0.5)/(float)1000);(A)5.239000(B)输出格式说明与输出项不匹配,输出无定值(C)5.238000(D)5.249、 下面的程序( )#includemain()int x=3,y=0,z=0;if(x=y+z) printf(“*”);else printf(“#”);(A)有语法错误不能通过编译(B)输出*(C)可以通过编译,但不能运行(D)输出#10、执行下面程序中的输出语句

17、后,a的值是( )#includemain()int a;printf(“%dn”,(a=3*5,a*4,a+5);(A)65(B)20(C)15(D)1011、以下程序实现将两个数对调的操作,请填空( )#includemain()int a,b;scanf(“%d%d”,&a,&b);a=a+b; b=a-b; a=_;(A)a+b(B)a-b(C)b*a(D)a/b12、若变量已正确说明,则以下程序段:a=2; b=3;printf(ab:”*a=%d”;”#b=%d”,a,b);( )(A)没有正确的输出格式控制(B)输出为:*a=2(C)输出为:#b=3(D)输出为:*a=2#b=3

18、13、已知int a,b;,用语句scanf(“%d%d”,&a,&b);输入a,b值时,不能作为输入数据分隔符的是( )(A),(B)空格(C)回车(D)Tab键14、语句printf(“%d”,(a=2)&(b=-2);的输出结果是( )(A)无输出(B)结果不确定(C)-1(D)115、下述程序的输出结果是( )#includemain()printf(“%f”,2.5+1*7%2/4);(A)2.500000(B)2.750000(C)3.375000(D)3.00000016、根据定义和数据的输入方式,输入语句的正确形式是( )已有定义:float f1,f2;数据的输入方式:4.5

19、2 3.5(A)scanf(“%f,%f”,&f1,&f2);(B)scanf(“%f%f”,&f1,&f2);(C)scanf(“%3.2f%2.1f”,&f1,&f2);(D)scanf(“%3.2f,%2.1f”,&f1,&f2);二、 填空题1、 变量i、j、k均已定义为int类型并赋有初值0,用以下语句进行输入:scanf(“%d”,&i); scanf(“%d”,&j); scanf(“%d”,&k);当执行以上输入语句,从键盘输入(代表回车键);12.3 则变量i、j、k的值分别是_、_、_。2、 复合语句在语法上被认为是_,空语句的形式是_。3、 本题程序如下:#include

20、main()char c; int i;printf(“输入一个正整数(小于255):”);scanf(“%d”,&i);c=(char)i;printf(“%c的ASCII码为%dn”,c,i);从键盘输入97,执行结果为_。4、 以下程序的输出结果为_。#includemain()printf(“*%f,%4.3f*n”,3.14,3.1415); 第四章 选择结构一、 选择题1、 下列错误的语句是( )(A)if(ab) printf(“%d”,a);(B)if(&);a=m;(C)if(1) a=m; else a=n;(D)if(a0) ; else a=n;2、 读下列程序:#in

21、cludemain()float a,b,t;scanf(“%f,%f”,&a,&b);if(ab) t=a;a=b;b=t;printf(“%5.2f,%5.2f”,a,b);运行时从键盘输入3.8,-3.4,则正确的输入结果是( )(A)-3.40,-3.80(B)-3.40,3.80(C)-3.4,3.8(D)3.80,-3.403、 读下列程序:#includemain()int x,y;scanf(“%d”,&x);y=0;if(x=0) if(x0) y=0;else y=-1;printf(“%d”,y);运行时从键盘输入32,则输出结果是( )(A)0(B)-1(C)1(D)不

22、确定值4、 对下述程序,( )是正确的判断#includemain()int x,y;scanf(“%d,%d”,&x,&y);if(xy) x=y;y=x;elsex+;y+;printf(“%d,%d”,x,y);(A)有语法错误,不能通过编译(B)输入3和4,输出4和5(C)输入4和3,输出3和4(D)输入4和3,输出4和45、 以下程序的输出结果是( )#includemain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0: a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:

23、a+;b+;printf(“na=%d,b=%d”,a,b);(A)a=1,b=0(B)a=2,b=1(C)a=1,b=1(D)a=2,b=26、 为表示关系:xyz,应使用的C语言表达式是( )(A)(x=y)&(y=z)(B)(x=y)AND(y=z)(C)(x=y=z)(D)(x=y)&(y=z)7、 下列程序的输出结果是( )#includevoid main( )int a=2,b=-1,c=2;if(ab)if(b0) c=0;else c+=1;printf(“%dn”,c);(A)0(B)1(C)2(D)38、 以下程序的输出结果是( )#includemain()int w=

24、4,x=3,y=2,z=1;printf(“%dn”,(wx?w:z?z:x);(A)1(B)2(C)3(D)49、以下程序的运行结果是( )#includevoid main( )int k=2;switch(k)case 1:printf(“%d”,k+);break;case 2:printf(“%d”,k+); case 3:printf(“%d”,k+);break;case 4:printf(“%d”,k+);default:printf(“Fulln”); (A)1 3(B)2 3(C)2 2(D)3 210、语句printf(abrehiyboun);的输出结果是( )(A)a

25、brehiybou(B)abrehiybou(C)rehiyou(D)abrehiybou11、如下程序的输出结果是( )#includemain() int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+;case 2: a+;b+;printf(“a=%d,b=%dn”,a,b);(A)a=2,b=1(B)a=1,b=1(C)a=1,b=0(D)a=2,b=212、阅读以下程序:#includemain() int x;scanf(%d,&x);if(x-5) printf(%d,x);else printf(%d,x+);程序运行后,如果从键盘上输人

26、5,则输出结果是:( )(A)3(B)4(C)5(D)613、以下程序的输出结果是( )#includemain()int a=15,b=21,m=0;switch(a%3)case 0 : m+;break;case 1: m+;switch(b%2)default: m+;case 0: m+;break;printf(“%d”,m);(A)4(B)3(C)2(D)114、下列程序的输出结果是( )#includevoid main( )int a=-1,b=4,k;k=(+a0)&!(b-=0);printf(“%d%d%d”,k,a,b);(A)104(B)103(C)003(D)00

27、415、假定所有变量均已正确说明,下列程序段运行后x的值是( )a=b=c=0;x=35;if(!a) x-;else if(b);if(c) x=3;else x=4;(A)34(B)4(C)35(D)316、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为( )if(ab)if(cd) x=1;elseif(ac) if(b=0|b=0)&(a0|b=0&b=0)&(a0&b0)&(a+b0)18、以下程序的输出结果是( )#includemain()int a=-1,b=1,k;if(+a)0&!(b-=0)printf(“%d%dn”,a,b);elseprintf(“

28、%d%dn”,b,a);(A)-1 1(B) 0 1(C) 1 0(D) 0 019、设有说明语句“int a=1,b=0;”,则执行以下语句后,输出为( )switch(a)case 1:switch(b)case 0:printf(“*0*”);break;case 1:printf(“*1*”);break;case 2:printf(“*2*”);break;(A)*0*(B) *0*2*(C) *0*1*2*(D)有语法错误20、为了避免在嵌套的条件语句ifelse中产生二义性,C语言规定:else子句总是与( )配对(A)缩排位置相同的if(B)其之前最近的if(C)其之后最近的i

29、f(D)同一行上的if二、 填空题1、 请写出以下程序的输出结果_。#includemain()int a=100;if(a100)printf(“%d”,a100);elseprintf(“%d”,a0) (2)!03、 当a=1,b=2,c=3时,以下语句执行后a、b、c中的值分别为_、_、_。if(ac)b=a;a=c;c=b;4、 若变量已正确定义,以下语句段的输出结果是_。x=0;y=2;z=3;switch(x)case 0: switch(y= =2)case 1: printf(“*”);break;case 2: printf(“%”);break;case 1:switch

30、(x)case 1: printf(“$”);case 2: printf(“*”);break;default:printf(“#”);5、 若有定义:int a=10,b=9,c=8;,接着顺序执行下列语句后,变量b的值为_。c=(a-=(b-5);c=(a%11)+(b=3);6、 下列程序的输出结果是16.00,请填空。#includemain()int a=9,b=2;float x=_,y=1.1,z;z=a/2+b*x/y+1/2;printf(“%5.2f”,z);7、 若从键盘输入58,则以下程序输出的结果是_。#includemain()int a;scanf(%d,&a)

31、;if(a50) printf(%d,a);if(a40) printf(%d,a);if(a30) printf(%d,a);8、 以下程序输出的结果是_。#includemain()int a=5,b=4,c=3,d;d=(abc);printf(%dn,d);9、 以下程序输出的结果是_。#includemain()int x=10,y=20,t=0;if(x=y) t=x;x=y;y=t;printf(%d,%dn,x,y);10、设a、b、c为整型数,且a=2,b=3,c=4,则执行完语句a*=16+(b+)-(+c);后,a的值为_。11、设x、y、z均为int型变量,请写出描述“

32、x或y中至少有一个小于z“的表达式_。12、已知A=7.5,B=2,C=3.6,表达式AB&CA|AB的值为_。第五章 循环结构一、 选择题1、 设i和x都是int类型,则for循环语句( )for(i=0,x=0;ij共执行了( )次#includemain()int i=0,j=10,k=2,s=0;for(;)i+=k;if(ij)printf(“%d”,s);break;s+=i; (A)4(B)5(C)6(D)74、 以下程序的输出结果是( )#includemain()int i; for(i=1;i=5;i+) if(i%2)putchar(); putchar(#);(A)#(

33、B)#(C)#(D)#5、 以下程序的输出结果是( )#includemain()int k=0,m=0,i,j;for(i=0;i2;i+) for(j=0;j3;j+)k+;k-=j;m=i+j;printf(“k=%d,m=%d”,k,m);(A)k=0,m=3(B)k=0,m=5(C)k=1,m=3(D)k=1,m=56、 下列程序的输出结果是( )int i,j,m=0;for(i=1;i=15;i+=4) for(j=3;j=19;j+=4)m+;printf(“%d”,m);(A)12(B)15(C)20(D)257、 以下程序的输出结果是( )int x=3;doprintf(

34、“%d”,x-=2);while(!(-x);(A)1(B)3 0(C)1 -2(D)死循环8、以下程序的运行结果是( )#includevoid main( )int y=10;for(;y0;y-) if(y%3=0)printf(“%d”,-y);continue;(A)741(B)852(C)963(D)87543219、若x是int型变量,以下程序段的输出结果是( )for(x=3;x6;x+) printf(x%2)?(“*%d”):(“#%dn”),x);(A)*3(B)#3(C)#3(D)*3#4 #4 *4 *4#5 *5 *5 #510、如下程序的输出结果是( )#incl

35、udemain() int x,i; for(i=1;i=100;i+)x=i; if(+x%2=0)if(+x%3=0)if(+x%7=0)printf(“%d”,x); printf(“n”);(A)3981(B)4284(C)2668(D)287011、以下循环体的执行次数是:( )#includemain() int i,j; for(i=0,j=1;i=j+1;i+=2,j-) printf(“%dn”,i); (A)3(B)2(C)1(D)012、以下程序的输出结果是( )#includemain()int n=9; while(n6) n-;printf(“%d”,n);(A)9

36、87(B)876(C)8765(D)987613、有以下程序段int k=0;while(k=1) k+;while循环执行的次数是( )(A)无限次(B)有语法错,不能执行(C)一次也不执行(D)一次14、以下程序的输出结果是( )#include main() int i=0,a=0; while(i20) for(;) if(i%10)=0) break; else i-; i+=11; a+=i; printf(%dn,a);(A)21(B)32(C)33(D)1115、以下的for循环( )for(x=0,y=0;(y!=123)&(x4);x+);(A)死循环(B)循环次数不定(C

37、)循环执行4次(D) 循环执行3次16、语句while(!E);中的条件!E等价于( )(A)E=0(B)E!=1(C) E!=0(D) -E17、以下程序片段的执行结果是( )int x=23;doprintf(“%d”,x-);while(!x);(A)321(B) 23(C) 无输出(D) 死循环18、下面程序的输出结果是( )#includemain()int k,j,m; for(k=5;k=1;k-)m=0; for(j=k;j=5;j+)m=m+k*j; printf(“%d”,m);(A)124(B) 25(C) 36(D)1519、下面程序的输出结果是( )#includemain()int x=10,y=10,i; for(i=0;x8;y=+i)printf(“%d%d”,x-,y);(A)10 1 9 2(B)9 8 7 6(C)10 9 9 0(D)10 10 9 120、下面程序的输出结果是( )a=1;b=2;c=2;while(abc) t=a;a=b;b=t;c-;printf(“%d,%d,%d”,a,b,c);(A)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号