二级c语言程序设计习题及解答ch13.docx

上传人:b****6 文档编号:4166604 上传时间:2022-11-28 格式:DOCX 页数:15 大小:105.05KB
下载 相关 举报
二级c语言程序设计习题及解答ch13.docx_第1页
第1页 / 共15页
二级c语言程序设计习题及解答ch13.docx_第2页
第2页 / 共15页
二级c语言程序设计习题及解答ch13.docx_第3页
第3页 / 共15页
二级c语言程序设计习题及解答ch13.docx_第4页
第4页 / 共15页
二级c语言程序设计习题及解答ch13.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

二级c语言程序设计习题及解答ch13.docx

《二级c语言程序设计习题及解答ch13.docx》由会员分享,可在线阅读,更多相关《二级c语言程序设计习题及解答ch13.docx(15页珍藏版)》请在冰豆网上搜索。

二级c语言程序设计习题及解答ch13.docx

二级c语言程序设计习题及解答ch13

12)计算机能直接执行的程序是(B )。

A)源程序 B)目标程序 C)汇编程序 D)可执行程序

 

13)以下叙述中正确的是(D)

 A)程序设计的任务就是编写程序代码并上机调试

 B)程序设计的任务就是确定所用数据结构

 C)程序设计的任务就是确定所用算法

 D)以上三种说法都不完整

例年真题:

   #include

   main()

   {

Int a;

A=5;           /*给A变量赋值5

A+=3;          再赋值后再加3*/

Printf(“%d”,a);

}

 

(11)以下叙述中正确的是( C )。

A)C 程序的基本组成单位是语句 B)C 程序中的每一行只能写一条语句

C)简单C 语句必须以分号结束 D)C 语句必须在一行内写完

 

(11)以下叙述中正确的是(C)

 A)C程序中的注释只能出现在程序的开始位置和语句的后面

 B)C程序书写格式严格,要求一行内只能写一个语句

 C)C程序书写格式自由,一个语句可以写在多行上

 D)用C语言编写的程序只能放在一个程序文件中

(12)以下选项中,能用作用户标识符的是(C)

A)void

B)8_8

C)_0_

D)unsigned

【解析】A:

关键字不可以B:

不以数字开头C:

正确D:

关键字

(13)以下选项中合法的标识符是(C)

A) 1-1B)1—1 C)-11 D)1—

【解析】A:

不以数字开头,出现非法字符-而不是_B:

不以数字开头,非法字符C:

正确D:

不以数字开头,出现非法字符

(14)以下选项中不合法的标识符是 (C)

 A)printB)FOR C)&a D)_00

 【解析】C:

出现非法字符&

(15)以下选项中,能用作数据常量的是 (D)

A)o115B) 0118C)1.5e1.5 D) 115L

【解析】A:

八进制以0开头而不是以o开头B:

八进制最大值为7,范围0-7C:

指数必须为整数D:

长整型正确

(13)以下选项中不能作为C 语言合法常量的是( A )。

A)'cd' B)0.1e+6C)"\a"D)'\011'

【解析】A:

字符常量只能有一个字符

(16)以下选项中不属于字符常量的是 (B)

 A)'C' B)"C" C)'\xCC0'D)'\072'

【解析】B:

字符常量以单引号作为标志,其为字符串

 

(14)表达式:

4-(9)%2的值是(B)

 A)0

 B)3

 C)4

 D)5

【解析】(9)%2=1(取余),4-1=3

 (14)设变量已正确定义并赋值,以下正确的表达式是 (C)

 A)x=y*5=x+z

 B)int(15.8%5)

 C)x=y+z+5,++y

 D)x=25%5.0

 【解析】A:

等号左边必须为变量,不可以为表达式,y*5是表达式B:

%只适用于整型变量D:

%只适用于整型变量

(15)若有定义语句:

int x=10;,则表达式x-=x+x的值为(B)

 A)-20

 B)-10

 C)0

 D)10

 【解析】先算右边得20,x-=20,则10-20=-10

(14)设有定义:

int x=2;,以下表达式中,值不为6的是 (D)

A) x*=x+1x=x*(x+1)

B) x++,2*x

C)x*=(1+x)

D)2*x,x+=2

 【解析】逗号表达式的最终结果看最后一个表达式,x+=2,结果为4

(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是 (A)

A)x=y==5;

B)x=n%2.5;

C)x+n=I

D)x=5=4+1;

          【解析】等号左边必为变量,不能为常量或数字排除C、D,%只能用于整数排除B

第三章输入输出

习题讲解

(13)阅读以下程序

 #include

 main()

 { int case;float printF;

   printf(“请输入2个数:

”);

   scanf(“%d%f”,&case,&pjrintF);

   printf(“%d%f\n”,case,printF);

 }

 该程序编译时产生错误,其出错原因是( A )

 A)定义语句出错,case是关键字,不能用作用户自定义标识符

 B)定义语句出错,printF不能用作用户自定义标识符

 C)定义语句无错,scanf不能作为输入函数使用

 D)定义语句无错,printf不能输出case的值

 

(16)有以下程序

 #include

 main()

 { int a=1,b=0;

   printf(“%d,”,b=a+b);

   printf(“%d\n”,a=2*b);

 }

 程序运行后的输出结果是 ( D )

 A)0,0

 B)1,0

 C)3,2

 D)1,2

【解析】b=a+b即b=1,a=2*b,a=2

(15)程序段:

int x=12;

doubley=3.141593; printf(“%d%8.6f”,x,y);的输出结果是 ( A )

A)123.141593

B)12

3.141593

C)12,3.141593

D)123.141593

 【解析】“%d%8.6f”原样输出,没有,也没有空格,所以x与y相连,小数总共8位,小数点之后6位

 

#include

main()

double a=123.456;

printf("%6.2f",a);

 

}

 结果:

123.46

例题:

int x;

x=11/3;

int y=5;

printf("%%d,%%%d\n",x,y);   结果是:

%d,%3

 【解析】"%%d,%%%d\n"原样输出,%%d中第一个%为转义字符,不是输出占位符,所以原样输出%d,然后%%转义只输出一个%,%d\n只有一个占位符,所以只输出x的值为3

[3.5] 若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是( D )

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

【解析】scanf中赋值必须用&(取地址符),即将输入的字符放在指定位置中

[3.6] 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是( B )

 

A)10          B)10.0,22.0,33.0      C)10.0         D)10   22

 22                                 22.033.0       33 

 33

 

scanf(“%f%f%f”,&a,&b,&c);

【解析】输入时可以空格可以回车,但是不可以出现, 

 

复合语句:

多个语句被{}括起来,当成一条语句来执行。

空语句:

最后的表示只有一个;

 

程序举例:

1。

编写一个程序,从键盘上输入两个数字,让后让他们互换一下。

#include

main()

{

int a,b;

printf("请输入两个数字:

");

scanf("%2d%3d",&a,&b);

printf("qian:

%d%d",a,b);

int c;

c=a,a=b,b=c;

printf("后:

%d%d",a,b);

 } 

2。

编写程序,对一个double型数据进行四舍五入运算。

要求保留两位有效数字。

123.4567

两种算法:

(1)

#include

main()

{

doublek=1234.4567;

k+=0.005;

printf("%7.2f",k);

}

(2)

#include

main()

{

doublek=1234.4567;

k*=100;

k+=0.5;

k=(int)k;

k/=100;

printf("%7.2f",k);

}

3。

编写程序,使从键盘中输入的三位数倒着输出。

 #include

main()

{

inta,three,two,one;

printf("请输入一个三位数:

");

scanf("%d",&a);

three=a/100;//取出百位

two=a%100/10;//取出十位

one=a%10;//取出个位

printf("%d%d%d",one,two,three);

}

 

选择题

[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的值

辨析:

inta=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,后面将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\nj=%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;floata;  doublex;

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

 

}

 

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

 

     inputa,b,c:

2.02.03.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("inputa,b,c:

\n");

scanf("%f%f%f",&a,&b,&c);

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

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

printf("%f%f%f\n",a,b,c);

printf("s=%f,v=%f\n",s,v);

}

 

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

 

#include

main()

{

intminute=560,hour;

hour=minute/60;

minute%=60;

printf("560分钟=%d小时%d分钟\n",hour,minute);

}

[3.31] 编写程序,输入两个整数:

1500和350,求出它们的商数和余数并进行输出。

#include

main()

{

inta,b,result,redundancy;

printf("请输入两个整数:

\n");

scanf("%d%d",&a,&b);

result=a/b;

redundancy=a%b;

printf("a/b商为:

%d,余数为:

%d\n",result,redundancy);

}

 

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

#include

main()

{

doublea,b,c,avg;

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

\n");

scanf("%lf%lf%lf",&a,&b,&c);

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

printf("四舍五入之前三个数的平均数为:

%lf\n",avg);

avg*=10;

avg+=0.5;

avg=(int)avg;

avg/=10;

printf("四舍五入之后三个数的平均数为:

%.1lf\n",avg);

}

 

[3.33] 编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c, 把c中原来的值给 a。

 #include

main()

{

inta,b,c,t;

printf("请输入三个整数:

\n");

scanf("%d%d%d",&a,&b,&c);

printf("交换位之前,a=%d,b=%d,c=%d\n",a,b,c);

t=c;

c=b;

b=a;

a=t;

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

}

 

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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