全国计算机等级考试二级教程c语言程序设计课后答案.docx

上传人:b****8 文档编号:30090301 上传时间:2023-08-04 格式:DOCX 页数:21 大小:36.15KB
下载 相关 举报
全国计算机等级考试二级教程c语言程序设计课后答案.docx_第1页
第1页 / 共21页
全国计算机等级考试二级教程c语言程序设计课后答案.docx_第2页
第2页 / 共21页
全国计算机等级考试二级教程c语言程序设计课后答案.docx_第3页
第3页 / 共21页
全国计算机等级考试二级教程c语言程序设计课后答案.docx_第4页
第4页 / 共21页
全国计算机等级考试二级教程c语言程序设计课后答案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试二级教程c语言程序设计课后答案.docx

《全国计算机等级考试二级教程c语言程序设计课后答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级教程c语言程序设计课后答案.docx(21页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试二级教程c语言程序设计课后答案.docx

全国计算机等级考试二级教程c语言程序设计课后答案

第一章程序设计基本概念

1.1在TRUBOC环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______。

答案:

.exe1.2C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是_____。

答案:

.c.obj.exe1.3结构化程序由_____、_____、_____三种基本结构组成。

答案:

顺序、选择、循环

第二章C程序设计的初步知识

一、选择题2.1以下选项中正确的整型常量是A)12.B)-20C)1,000D)456答案:

B2.2以下选项中正确的实型常量是A)0B)3.1415C)0.329×10

(2)(10的2次方)D).871答案:

D2.3以下选项中不正确的实型常量是A)2.607E-1B)0.8103e2C)-77.77D)456e-2答案:

B2.4以下选项中不合法的用户标识符是A)abc.cB)fileC)MainD)PRINTF答案:

A2.5以下选项中不合法的用户标识符是A)_123B)printfC)A$D)Dim答案:

C2.6C语言中运算对象必需是整型的运算符是A)%B)/C)!

D)**答案:

A2.7可在C程序中用作用户标识符的一组标识符是A)voiddefineWORDB)as_b3_123IfC)For-abccaseD)2cDOSIG答案:

B2.8若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7;B)a=7+b+c,a++C)int(12.3%4)D)a=a+7=c+b答案:

B2.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。

答案:

B2.10以下叙述中正确的是A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。

B)C程序由主函数组成。

C)C程序由函数组成。

D)C程序由函数和过程组成。

答案:

C2.11TURBOC中int类型变量所占字节数是A)1B)2C)3D)4答案:

B2.12不合法的八进制数是A)0B)028C)077D)01答案:

B2.13不合法的十六进制数是A)oxffB)0XabcC)0x11D)0x19答案:

A

二、填空题2.14若k为int整型变量且赋值11。

请写出运算k++后表达式的值A)_____和变量的值B)_____。

答案:

11、122.15若x为double型变量,请写出运算x=3.2,++x后表达式的值A)_____和变量的值B)_____。

答案:

4.2、4.22.16函数体由符号____开始,用符号____结束。

函数体的前面是____部分,其后是____部分。

答案:

{、}、定义、执行2.17C语言中的标识符可分为____、____、和预定义标识符三类。

答案:

关键字、用户标识符2.18在C语言程序中,用关键字____定义基本整型量,用关键字____定义单精度实型变量,用关键字___定义双精度实型变量。

答案:

int、float、double2.19把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____。

答案:

floata1=1.0,a2=1.0;2.20C程序中定义的变量,代表内存中的一个____。

答案:

存储单元2.21表达式3.5+1/2的计算结果是____。

答案:

3.52.22对以下数学式,写出三个等价的C语言表达式____、____、____。

a×b——c答案:

a*b/c、a/c*b、b/c*a2.23表达式s=10应当读做“____”。

答案:

将10赋给变量s2.24计算机中内存储器的最小存储单位称____,其中能容纳的数是____。

答案:

位、0或12.25通常一个字节包含____个二进制位。

在一个字节中能存放的最大(十进制)整数是____,它的二进制数的形式是____;最小(十进制)整数是____,它的二进制数的形式是____。

答案:

8、255、11111111、-128、100000002.26当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是____、最小(十进制)整数是____,它的二进制数的形式是____。

答案:

65535、-32768、10000000000000002.27在C语言中整数可用____进制数、____进制数和____进制数三种数制表示。

答案:

十、八、十六

第三章、顺序结构

一、选择题3.1若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是A)a=b=c=100;B)d++;C)c+b;D)d=(c=22)-(b++);答案:

C3.2以下选项中不是C语句的是A){inti;i++;printf("%d\n",i);}B);C)a=5,c=10D){;}答案:

C3.3以下合法的C语言赋值语句是A)A=B=58B)k=int(a+b);C)a=58,b=58D)--i;答案:

D3.4以下程序的输出结果是A)0B)1C)3D)不确定的值main(){intx=10,y=3;printf("%d\n",y=x/y);}答案:

C3.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);答案:

D3.6若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是A)102233B)10.0,22.0,33.0C)10.022.033.0D)102233scanf("%f%f%f",&a,&b,&c);答案:

B3.7若变量以正确定义,要将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;答案:

C3.8若变量已正确定义,以下程序段的输出结果是A)输出格式说明与输出项不匹配,输出无定值B)5.17000C)5.168000D)5.169000

x=5.16894;printf("%f\n",(int)(x*1000+0.5)/(float)1000);

答案:

D3.9若有以下程序段,c3中的值是A)0B)1/2C)0.5D)1

intc1=1,c2=2,c3;c3=c1/c2;

答案:

A3.10若有以下程序段,其输出结果是A)0,0,-10B)0,0,5C)-10,3,-10D)3,3,-10

inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf("%d,%d,%d\n",a,b,c);

答案:

B3.11当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表Enter),则程序的输出结果是A)a=98,b=765,c=4321B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000D)a=98,b=765,c=4321.0

main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}

答案:

C3.12以下程序的输出结果是A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%d

main(){inta=2,b=5;printf("a=%%d,b=%%d\n",a,b);}

答案:

D3.13若int类型占两个字节,则以下程序段的输出是A)-1,-1B)-1,32767C)-1,32768D)-1,65535

inta=-1;printf("%d,%u\n",a,a);

答案:

D3.14以下程序段的输出是A)*496*B)*496*C)*000496*D)输出格式符不合法

intx=496;printf("*%-06d*\n",x);

答案:

A3.15以下程序段的输出是A)|3.1415|B)|3.0|C)|3|D)|3.|

floata=3.1415;printf("|%6.0f|\n",a);

答案:

C3.16以下程序段的输出是A)|2345.67800|B)|12345.6780|C)|12345.67800|D)|12345.678|printf("|%10.5f|\n",12345.678);

答案:

C3.17以下程序段的输出是A)*0000057.66*B)*57.66*C)*0000057.67*D)*57.67*floata=57.666;printf("*%010.2f*\n",a);

答案:

C3.18若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是A)scanf("%f",c);B)scanf("%8.4f",&c);C)scanf("%6.2f",&c);D)scanf("%8",&c);283.1900表示Enter键

答案:

由于印刷错误,本题没有正确答案。

改正意见:

把选项A改为:

scanf("%f",&c);或者把选项D改为:

scanf("%8f",&c);则可分别选择A或者D为正确答案。

3.19若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是(□代表空格)A)3.12□□9.0B)a=□□3.12b=□□□9C)a=3.12,b=9D)a=3.12□□,b=9□□□□scanf("a=%f,b=%f",&a,&b);表示Enter键答案:

C3.20以下程序的输出结果是A)98B)89C)66D)以上三个都不对

#include"math.h"main(){doublea=-3.0,b=2;printf("%3.0f%3.0f\n",pow(b,fabs(a)),pow(fabs(a),b));}

答案:

B

二、填空题3.21若有以下定义,请写出以下程序段中输出语句执行后的输出结果。

(1)____

(2)____(3)____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);

答案:

-2002500i=-200,j=2500i=-200j=25003.22变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);当执行第一个输入语句,从键盘输入:

12.3表示Enter键则变量i、j、k的值分别是____、____、____。

答案:

12、0、03.23复合语句在语法上被认为是____。

空语句的形式是____。

答案:

一条语句、;3.24C语句的最后用____结束。

答案:

;3.25以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。

写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式____、_____、____。

intk;floata;doublex;scanf("%d%f%lf",&k,&a,&x);printf("k=%d,a=%f,x=%f\n",k,a,x);

答案:

(1)10025.811.89234

(2)10025.811.89234(3)10025.811.892343.26以下程序段的输出结果是____。

intx=0177;printf("x=%3d,x=%6d,x=$%6o,x=%6x,x=%6u\n",x,x,x,x,x);

答案:

x=127,x=127,x=177,x=7f,x=1273.27以下程序段的输出结果是____。

intx=0177;printf("x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n",x,x,x,x,x);

答案:

27、x=127,x=127,x=$127,x=$000127,x=%06d

3.28以下程序段的输出结果是____。

doublea=513.789215;printf("a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\n",a,a,a,a);

答案:

a=513.789215,a=513.79,a=513.78921500,a=513.78921500

第四章、选择结构

一、选择题4.1下列运算符中优先级最高的运算符是A)!

B)%C)-=D)&&答案:

A4.2下列运算符中优先级最低的运算符是A)||B)!

=C)<=D)+答案:

A4.3为表示关系x≥y≥z,应使用的C语言表达式是A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)答案:

A4.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)答案:

D4.5以下程序的输出结果是A)0B)1C)2D)3

main(){inta=2,b=-1,c=2;if(a

答案:

C4.6以下程序的输出结果是A)1B)2C)3D)4

main(){intw=4,x=3,y=2,z=1;printf("%d\n",(w

w:

z

z:

x));}

答案:

A4.7若执行以下程序时从键盘上输入3和4,则输出结果是A)14B)16C)18D)20

main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a

答案:

B4.8下面的程序片段所表示的数学函数关系是-1(x<0)A)y=0(x=0)1(x>0)

1(x<0)B)y=-1(x=0)0(x>0)

0(x<0)C)y=-1(x=0)1(x>0)

-1(x<0)D)y=1(x=0)0(x>0)

y=-1;if(x!

=0)y=1;if(x>0)y=1;elsey=0;

答案:

本题没有正确答案。

程序片段所表示的数学函数关系应该是0(x<0)y=0(x=0)1(x>0)4.9运行以下程序后,输出A)****B)&&&&C)####&&&&D)有语法错误不能通过编译

main(){intk=-3;if(k<=0)printf("****\n")elseprintf("&&&&\n");}

答案:

D4.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;break;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;}

答案:

没有正确答案。

如果C选项改为:

switch(a){default:

x=a+b;case10:

y=a-b;break;case11:

x=a*b;break;}则答案可以选择C

二、填空题4.11C语言中用____表示逻辑值“真”,用____表示逻辑值“假”。

答案:

非0、04.12C语言中的关系运算符按优先级别是____、____、____、____。

答案:

>、<、>=、<=、==、!

=4.13C语言中的逻辑运算符按优先级别是____、____、____。

答案:

、&&、||4.14C语言中的关系运算符和逻辑运算符的优先级别是____、____、____、____、____、____、____。

答案:

、<、>、==、!

=、&&、||4.15C语言中逻辑运算符____的优先级高于算术运算符。

答案:

4.16将下列数学式改写成C语言的关系表达式或逻辑表达式A)____B)____。

A)a=b或a4答案:

A)a==b||a4||x<-44.17请写出以下程序的输出结果____。

main(){inta=100;if(a>100)printf("%d\n",a>100);elseprintf("%d\n",a<=100);}

答案:

14.18请写出与以下表达式等价的表达式A)____B)____。

A)!

(x>0)B)!

0答案:

A)x<=0B)14.19当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为____、____、____。

if(a>c)b=a;a=c;c=b;

答案:

3、2、24.20若变量已正确定义,以下语句段的输出结果是____。

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("#");}}

答案:

*#

第五章、循环结构

一、选择题5.1以下程序段的输出结果是A)9B)1C)11D)10

intk,j,s;for(k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++)s+=j;}printf("%d\n",s);

答案:

D5.2以下程序段的输出结果是A)12B)15C)20D)25

inti,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);

答案:

C5.3以下程序段的输出结果是A)1098B)987C)10987D)9876

intn=10;while(n>7){n--;printf("%d\n",n);}

答案:

B5.4以下程序段的输出结果是A)1B)30C)1-2D)死循环

intx=3;do{printf("%3d",x-=2);}while(!

(--x));

答案:

C5.5以下程序段的输出结果是A)15B)14C)不确定D)0

main(){inti,sum;for(i=1;i<6;i++)sum+=sum;printf("%d\n",sum);}

答案:

C5.6以下程序段的输出结果是A)741B)852C)963D)875421

main(){inty=10;for(;y>0;y--)if(y%3==0){printf("%d",--y);continue;}}

答案:

B5.7若x是int型变量,以下程序段的输出结果是A)**3##4**5B)##3**4##5C)##3**4##5D)**3##4**5

for(x=3;x<6;x++)printf((x%2)?

("**%d")##%d\n"),x);

答案:

D5.8以下程序的输出结果是A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$

main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elsecontionue;printf("#");}printf("$\n");}

答案:

A5.9以下叙述正确的是A)do_while语句构成的循环不能用其它语句构成的循环来代替。

B)do_while语句构成的循环只能用break语句退出。

C)用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。

D)用do_while语句构成循环时,只有在while后的表达式为零时结束循环。

答案:

D5.10以下程序的输出结果是A)3981B)4284C)2668D)2870

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");}

答案:

D

二、填空题5.11当执行以下程序段后,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++);

答案:

5、4、65.12以下程序段的输出结果是____。

intk,n,m;n=10;m=1;k=1;while(k<=n)m*=2;printf("%d\n",m);

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

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1