二级c语言程序设计习题及解答ch1-3(2)

2019-01-19 10:35

two=a0/10; //取出十位 one=a;//取出个位 printf(\} 选择题

[3.1] 若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是( C ) A)a=b=c=d=100; B)d++; C)c+b; D)d=(c=22)-(b++); 【解析】C是表达式,无法完成赋值

[3.2] 以下选项中不是C语句的是( C )

A){int i; i++; printf(“%d\\n”,i);} B); C)a=5,c=10 D){ ; }

【解析】C是表达式,没有 ; 结尾,只有;的语句是空语句

[3.3] 以下合法的C语言赋值语句是( D )

A)a=b=58 B)k=int(a+b); C)a=58,b=58 D)--i;

【解析】语句必须以;结尾,B中强制类型转换的正确写法为k=(int)(a+b);

[3.4] 以下程序的输出结果是( C ) A)0 B)1 C)3 D)不确定的值 main( )

{ int x=10, y=3;

printf(“%d\\n”,y=x/y); }

【解析】除法并且两边都为整型,最后也是整型

[3.7] 若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( D ) 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;

[3.8] 若变量已正确定义,以下程序段的输出结果是( D ) A) 输出格式说明与输出项不区配,输出无定值 B)5.17 C)5.168 D)5.169 X=5.16894;

Printf(“ %f\\n”,(int)(x*1000+0.5)/(float)1000);

【解析】其上市四舍五入发,保留3位有效数字

[3.9] 若有以下程序段,c3中的值是( A ) A)0 B)1/2 C)0.5 D)1 int c1=1,c2=2,c3; c3=c1/c2;

【解析】不够除,商0

[3.10] 若有以下程序段,其输出结果是( B )

A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3

int a=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

printf(“ %d,%d,%d\\n”,a,b,c);

【解析】a-=a-5得a=5,赋值给c=5,后面将b赋值给a,a=0,b+3执行了,但是并没有改变b的值

辨析:

int a=0,b=0,c=0;

c=((a-=a-5),(a=b,b+3));

printf(\

【解析】a-=a-5得a=5,没有赋值给c,后面将b赋值给a,a=0,b+3执行后赋值给了c;因为逗号表达式永远是最后一个逗号后的值赋值给c,只是相差一个(),结果就不同了。

填空题

[3.21] 若有以下定义,请写出以下程序段中输出语句执行后的输出结果。 (1)-200,2500(2)i=-200,j=500 (3)i=-200 回车 j=2500

int i=-200,j=2500;

printf(“ (1) %d %d”,i,j);

printf(“ (2) i=%d,j=%d\\n” ,i,j); printf(“ (3) i=%d\\n j=%d\\n”,i,j);

[3.22] 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时 scanf(“ %d”,&i); scanf(“ %d”,&j); scanf(“ %d” ,&k);

当执行第一个输入语句,从键盘输入: 12.3 表示Enter键

则变量i、j、k的值分别是____12____、____0___、__0____。

【解析】因为只输入一个数,而且定义i为整型,所以会自动将12.3进行截断,变成12

[3.23] 复合语句在语法上被认为是 一条语名。空语句的形式是 ;

[3.24] C语句的最后用 ;结束。

[3.25] 以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234 时的三种可能的输入形式_____、_____、_____。

int k; float a; double x;

scanf(“ %d%f%lf”,&k,&a,&x); pirntf(“ k=%d,a=%f,x=%f\\n”,k,a,x);

以空格隔开输入

以回车隔开输入

回车和空格连用输入

编程题和改错题

[3.29] 以下程序多处有错。要按下面指定的形式输入数据和输出数据时,请对该程序做相应的修改。 main

{double a,b,c,s,v;

printf(input a,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); }

当程序执行时,屏幕的显示和要求输入形式如下:

input a,b,c:2.0 2.0 3.0 此处的2.0 2.0 3.0是用户输入的数据

a=2.000000,b=2.000000,c=3.000000 此处是要求的输出形式

s=4.000000,v=12.000000

代码改成如下: #include main()

{floata,b,c,s,v;

printf(\

scanf(\

s=a*b; /*计算长方形面积*/

v=a*b*c; /*计算长方体体积*/

printf(\ %f %f\\n\

printf(\ }

[3.30] 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

#include main() { int minute=560,hour; hour =minute/60; minute %=60; printf(\分钟=%d小时%d分钟 \\n\ }

[3.31] 编写程序,输入两个整数:1500和350,求出它们的商数和余数并进行输出。 #include main() { inta,b,result,redundancy; printf(\请输入两个整数:\\n\ scanf(\ result=a/b; redundancy=a%b;

printf(\商为:%d, 余数为:%d\\n\}

[3.32] 编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数后一位数,对小数点后第二位数进行四舍五入,最后输出结果。 #include main() {

double a,b,c,avg;

printf(\请输入三个双精度的小数:\\n\

scanf(\ avg=(a+b+c)/3;

printf(\四舍五入之前三个数的平均数为:%lf\\n\ avg *=10; avg +=0.5; avg =(int)avg; avg /=10;

printf(\四舍五入之后三个数的平均数为:%.1lf\\n\}

[3.33] 编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c, 把c中原来的值给 a。 #include main() { inta,b,c,t; printf(\请输入三个整数:\\n\ scanf(\ printf(\交换位之前,a=%d, b=%d, c=%d\\n\ t=c; c=b; b=a; a=t;

printf(\交换位之后,a=%d, b=%d, c=%d\\n\}


二级c语言程序设计习题及解答ch1-3(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:现代交换技术课后答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: