全国计算机等级考试二级C语言课后习题.docx
- 文档编号:5755266
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:40
- 大小:56.32KB
全国计算机等级考试二级C语言课后习题.docx
《全国计算机等级考试二级C语言课后习题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言课后习题.docx(40页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级C语言课后习题
第二章C程序设计的初步知识
一、选择题
1.以下选项中正确的整型常量是()。
A.12.B.-20C.1,000D.456
2.以下选项中正确的实型常量是()。
A.0B.3.1415C.0.329×102D..871
3.以下选项中不正确的实型常量是()。
A.2.607E-1B.0.8103e2C.-77.77D.456e-2
4.以下选项中不合法的用户标识符是()。
A.abc.cB.fileC.MainD.PRINTF
5.以下选项中不合法的用户标识符是()。
A._123B.printfC.A$D.Dim
6.C语言中运算对象必须是整型的运算符是( )。
A.%B./C.!
D.**
7.可在C程序中用作用户标识符的一组标识符是()。
A.voiddefineWORDB.as_b3_123If
C.For-abccaseD.2cDOSIG
8.若变量已正确定义并赋值,符合C语言语法的表达式是()。
A.a=a+7;B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b
9.以下叙述中正确的是()。
A.a是实型变量,C允许进行赋值a=10,但可以这样说:
实型变量中允许存放整型值
B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
10.以下叙述中正确的是()。
A.在C程序中无论是整数还是实数,只要在允许的范围内部都能准确无误的表示
B.C程序由主函数组成
C.C程序由若干函数组成
D.C程序中只允许包含一个函数
11.VC6.0中int类型变量所占字节数是()。
A.1B.2C.3D.4
12.合法的八进制数是()。
A.0B.028C.-077D.01.0
13.不合法的十六进制数是()。
A.oxffB.0XabcC.0x11D.0x19
二、填空题
14.若k为int型变量且赋值11。
请写出运算k++后表达式的值________和变量k的值_______。
15.若x为double型变量,请写出运算x=3.2,++x后表达式的值______和变量x的值_____。
16.函数体由符号_____开始,到符号______结束。
函数体内的前面是_______部分,后面是________部分。
17.C语言中的标识符可分为_________、__________和预定义标识符三类。
18.在C语言程序中,用关键字__________定义基本整型变量,用关键字_________定义单精度实型变量,用关键字__________定义双精度实型变量。
19.把a1、a2定义成双精度实型变量,并赋初值1的定义语句是______________。
20.C程序中定义的变量,代表内存中的一个_________________。
21.表达式3.5+1/2的计算结果是___________。
22.对数学式
,写出三个等价的C语言表达式__________、__________、________。
23.表达式s=10应当读作_______________。
三、上机改错题
24.请指出以下C程序的错误所在:
#includestdio.h;
main();/*mainfunction*/
floatr,s;/*/*risradius*/,/*sisareaofcircular*/*/
r=5.0;
s=3.14159*r*r;
printf(“%f\n”,s)
25.请指出以下C程序的错误所在:
main/*mainfunction*/
{floata,b,c,v;/*a,b,caresides,visvolumeofcube*/
a=2.0;b=3.0;c=4.0
v=a*b*c;
printf(“%f\n”,v)
}
第三章顺序结构
一、选择题
1.若a、b、c、d都是int型变量且初值为0,以下选项中不正确的赋值语句是()。
A.a=b=c=100;B.d++;C.c+b;D.d=(c=32)-(b++);
2.下列选项中不是C语句的是()。
A.{inti;i++;printf(“%d\n”,i);}B.;
C.a=5,c=10D.{;}
3.合法的C语言赋值语句是()。
A.a=b=58B.k=int(a+b);C.a=58,b=58D.--i;
4.有以下程序:
#include
main()
{intx=10,y=3;
printf(“%d\n”,y=x/y);
}
执行后的输出结果是()。
A.0B.1C.3D.不确定的值
5.若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是()。
A.read(a,b,c);B.scanf(“%d%d%d”,a,b,c);
C.scanf(“%D%D%D”,&a,%b,%c);D.scanf(“%d%d%d”,&a,&b,&c);
6.若变量已正确定义为float型,要通过输入语句:
scanf(“%f%f%f”,&a,&b,&c);给a赋值11.0,b赋值22.0,c赋值33.0,不正确的输入形式是()。
A.11回车22回车33B.11.0,22.0,33.0
C.11.0回车22.033.0D.1122回车33
7.若变量a、b、t已正确定义,要将a和b值的数进行交换,以下选项中不正确的语句组是()。
A.a=a+b,b=a-b,a=a-b;B.t=a,a=b,b=t;
C.a=t;t=b;b=a;D.t=b;b=a;a=t;
8.若有正确定义语句:
doublex=5.16894;语句printf(“%f\n”,(int)(x*1000+0.5)/(double)1000);的输出结果是()。
A.输出格式说明与输出项不匹配,输出无定值B.5.170000
C.5.168000D.5.169000
9.若有以下程序段:
intc1=1,c2=2,c3;
c3=c1/c2;
printf(“%d\n”,c3);
执行后的输出结果是()。
A.0B.1/2C.0.5D.1
10.若有以下程序段:
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
执行后的输出结果是()。
A.3,0,-10B.0,0,5C.-10,3,-10D.3,0,3
二、填空题
11.若有以下定义,请写出以下程序段中输出语句执行后的输出结果________。
inti=-200,j=2500;
printf(“
(1)%d,%d”,i,j);
printf(“
(2)i=%d,j=%d\n”,i,j);
printf(“(3)i=%d\nj=%d\n”,i,j);
12.变量i、j、k已定义为int型并均有初值0,用以下语句进行输入时:
scanf(“%d”,&i);scanf(“%d”,&j);scanf(“%d”,&k);从键盘输入:
12.3回车则变量i、j、k的值分别是______、_______、_______。
13.复合语句在语法上被认为是__________________。
空语句的形式是_________________。
14.C语句的最后用__________结束。
15.以下程序段要求通过scanf语句给变量赋值,然后输出变量的值。
写出运行时给k输入100,给a输入15.81,给x输入1.89234时的三种可能的输入形式____________________、____________________________、___________________________________。
intk;
floata;
doublex;
scanf(“%d%f%lf”,&k,&a,&x);
printf(“k=%d,a=%f,x=%lf\n”,k,a,x);
三、编程题和改错题
16.以下程序多处有错。
若指定必须按下面的形式输入数据,并且必须按下面指定的形式输出数据,请对该程序做相应的修改。
main
{doublea,b,c,s,v;
printf(inputa,b,c:
\n);
scanf(“%d%d%d”,a,b,c);
s=a*b;
v=a*b*c;
printf(“%d%d%d”,a,b,c);
printf(“s=%f\n”,s,”v=%d\n”,v);
}
当程序执行时,屏幕的显示和要求输入形式如下:
inputa,b,c:
2.02.03.0
a=2.000000,b=2.000000,c=3.000000
s=4.000000,v=12.000000
17.编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。
18.编写程序,输入两个数:
1500和350,求出它们的商和余数并进行输出。
19.编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。
20.编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a、b、c。
第四章选择结构
一、选择题
1.下列运算符中优先级最高的运算符是()。
A.!
B.%C.-=D.&&
2.下列运算符中优先级最低的运算符是()。
A.||B.!
=C.<=D.+
3.为表示关系:
,应使用的C语言表达式是()。
A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=x)
C.(x>=y>=z)D.(x>=y)&(y>=z)
4.设a、b和c都是int型变量,且a=3,b=4,c=5,则以下表达式中值为0的表达式是()。
A.a&&bB.a<=bC.a||b+c&&b-cD.!
((a
c||1)
5.有以下程序:
#include
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec+=1;
printf(“%d\n”,c);
}
程序的输出结果是()。
A.0B.1C.2D.3
6.有以下程序:
#include
main()
{intw=4,x=3,y=2,z=1;
printf(“%d\n”,(w w: z z: x)); } 程序的输出结果是()。 A.1B.2C.3D.4 7.有以下程序: #include main() {inta,b,s; scanf(“%d%d”,&a,&b); s=a; if(a s*=s; printf(“%d\n”,s); } 若执行以上程序时从键盘上输入3和4,则输出结果是()。 A.14B.16C.18D.20 8.有以下程序片段: y=-1; if(x! =0) if(x>0)y=1; elsey=0; 其能正确表示的数学函数关系是()。 A. B. C. D. 9.有以下程序: #include main() {intk=-3; if(k<=0)printf(“****\n”) elseprintf(“&&&&\n”); } 程序的输出结果是()。 A.输出####B.输出&&&&C.输出####&&&&D.有语法错不能通过编译 10.若a和b均是正整型变量,正确的switch语句是()。 A. switch(pow(a,2)+pow(b,2)) {case1: case3: y=a+b;break; case0: case5: y=a-b; } B. switch(a*a+b*b); {case3: case1: y=a+b;brek; case0: y=b-a;break; } C. switcha {default: x=a+b; case10: y=a-b;break; case11: x=a*d;break; } D. switch(a+b) {case10: x=a+b;break; case11: y=a-b;break; } 二、填空题 1.C语言中用___________表示逻辑值“真”,用_____________表示逻辑值“假”。 2.C语言中的关系运算符“! =”的优先级比“<=”________。 3.C语言中的逻辑运算符“&&”比“||”的优先级_________。 4.C语言中的关系运算符“==”比逻辑运算符“&&”的优先级_______。 5.C语言中逻辑运算符_________的优先级高于算术运算符。 6.将下列数学式改写成C语言的关系表达式或逻辑表达式: A)__________B)_________。 A)a=b或a 7.请写出以下程序的输出结果__________。 #include main() {inta=100; if(a>100)printf(“%d\n”,a>100); elseprintf(“%d\n”,a<=100); } 8.请写出以下表达式等价的表达式: A)__________B)_________。 A)! (x>0)B)! 0 9.当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为_______、_______、______。 if(a>c) b=a;a=c;c=b; 10.若变量已正确定义,以下语句段的输出结果是__________。 x=0;y=2;z=3; switch(x) {case0: switch(y==2) {case1: printf(“*”);break; case2: printf(“%”);break; } case1: switch(z) {case1: printf(“$”); case2: printf(“*”);break; default: printf(“#”); } } 三、编程题 1.若a的值小于100,请将以下选择结构改写成由switch语句构成的选择结构。 if(a<30)m=1; elseif(a<40)m=2; elseif(a<50)m=3; elseif(a<60)m=4; elsem=5; 2.编写程序,输入一个整数,打印出它是奇数还是偶数。 3.编写程序,输入a、b、c三个数,打印出最大者。 4.对于以下函数: 编写程序,要求输入x的值,输出对应y的值。 第五章循环结构 一、选择题 1.有以下程序段: intk,j,s; for(k=2;k<6;k++,k++) {s=1; for(j=k;j<6;j++)s+=j; } printf(“%d\n”,s); 程序段的输出结果是()。 A.9B.1C.11D.10 2.有以下程序段: inti,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4) m++; printf(“%d\n”,m); 程序段的输出结果是()。 A.12B.15C.20D.25 3.有以下程序段: intn=10; while(n>7) {n--; printf(“%d\n”,n); } 程序段的输出结果是()。 A.10B.9C.10D.9 9898 8787 76 4.有以下程序段: intx=3; do {printf(“%3d”,x-=2); }while(! (--x)); 程序段的输出结果是()。 A.1B.30C.1-2D.死循环 5.有以下程序: #include main() {inti,sum; for(i=1;i<6;i++) sum+=sum; printf(“%d\n”,sum); } 程序的输出结果是()。 A.15B.14C.不确定D.0 6.有以下程序: #include main() {inty=10; for(;y>0;y--) if(y%3==0) {printf(“%d”,--y);continue; } } 程序的输出结果是()。 A.741B.852C.963D.875421 7.有以下程序段: intx; for(x=3;x<6;x++) printf((x%2)? (“**%d”): (“##%d\n”),x); 程序段的输出结果是()。 A.**3B.##3C.##3D.**3##4 ##4**4**4##5**5 **5##5 8.有以下程序: #include main() {inti; for(i=1;i<=5;i++) {if(i%2)printf(“*”); elsecontinue; printf(“#”); } printf(“$\n”); } 程序的输出结果是()。 A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$ 9.以下叙述中正确的是()。 A.do-while语句构成的循环不能用其他语句构成的循环来代替 B.do-while语句构成的循环只能用break语句退出 C.有do-while语句构成循环时,只有在while后的表达式为非零时结束循环 D.有do-while语句构成循环时,只有在while后的表达式为零时结束循环 10.有以下程序: #include main() {intx,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.2870B.4284C.2668D.3981 二、填空题 1.当执行以下程序段后,i的值是________、j的值是_________、k的值是________。 inta,b,c,d,i,j,k; a=10; b=c=d=5; i=j=k=0; for(;a>b;++b)i++; while(a>++c)j++; dok++;while(a>d++); 2.以下程序段的输出结果是_________。 intk,n,m; n=10; m=1; k=1; while(k++<=n)m*=2; printf(“%d\n”,m); 3.以下程序的输出结果是__________。 #include main() {intx=2; while(x--); printf(“%d\n”,x); } 4.以下程序段的输出结果是_________。 inti=0,sum=1; do{sum+=i++;}while(i<5); printf(“%d\n”,sum); 5.有以下程序段: s=1.0; for(k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf(“%f\n”,s); 请填空,使下面的程序段的功能完全与之等同。 s=0.0; ___________; k=0; do {s=s+d; ___________; d=1.0/(k*(k+1)); }while(_______); printf(“%f\n”,s); 6.以下程序的功能是: 从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 请填空。 #include main() {floatx,amax,amin; scanf(“%f”,&x); amax=x; amin=x; while(_________) {if(x>amax)amax=x; if(_______)amin=x; scanf(“%f”,&x); } printf(“\namax=%f\namin=%f\n”,amax,amin); } 三、编程题 1.编写程序,求1-3+5-7+…-99+101的值 2.编写程序,求e的值, ①用for循环计算前50项。 ②用while循环,计算直到某一项的值小于10-6为止。 3.编写程序,打印以下图形: * *** ***** ******* ***** *** * 第六章字符型数据 一、选择题 1.C语言中的简单数据类型有()。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、实型、逻辑型D.整型、实型、逻辑型、字符型 2.C语言中,字符(char)型数据在微机内存中的存储形式是()。 A.反码B.补码C.EBCDIC码D.ASCII码 3.设有定义语句: chara=’\72’;,则变量a()。 A.包含1个字符B.包含2个字符C.包含3个字符D.定义不合法 4.C语言中,下列不合法的字符常量是()。 A.’\xff’B.’\65’C.’&’D.’\028’ 5.C语言中,下列不合法的字符串常量是()。 A.”\121”B.’y=’C.”\n\n”D.”ABCD\x6d” 6.判断char型变量c是否为大写字母的最简单且正确的表达式是()。 A.’A’<=c<=’Z’B.(c>=’A”)||(c<=’Z’) C.(‘A’<=c)AND(‘Z’>=c)D.(c>=’A”)&&(c<=’Z’) 7.有以下程序: #include main() {charc1=’A’,c2=’Y’; printf(“%d,%d\n”,c1,c2); } 程序的输出结果是()。 A.因输出格式不合法,无正确输出B.65,90 C.A,YD.65,89 8.有以下程序: #include main() {charx=’A’; x=(x>=’A’&&x<=’Z’)? (x+32): x; printf(“%c\n”,x); } 程序的输出结果是()。 A.AB.aC.ZD.z 9.有以下程序: #include main() {charch; ch=’A’+’5’-‘3’; printf(“%d,%c\n”,ch,ch);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 语言 课后 习题