昆明理工大学C语言程序设计课后习题答案 下载本文

main()

{ int a,b,d=25; a=d/10%9; b=a+-1; printf(\A.6,1B.2,1 C.6,0 D.2,0 36.以下叙述中正确的是______。

A.调用printf函数时,必须要有输出项

B.使用putchar函数时,必须在之前包含头文件stdio.h

C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码 37.程序如下,下叙述中正确的是______。 #include main()

{ char a1='M',a2='m';printf(\A.程序输出大写字母M B.程序输出小写字母m

C.格式说明符不足,编译出错 D.程序运行时产生出错信息 38.以下程序运行时若输入:a<回车>,则叙述正确的是______。 #include main()

{ char c1='1',c2='2'; c1=getchar(); c2=getchar();putchar(c1); putchar(c2);} A.变量c1被赋予字符a,c2被赋予回车符 B.程序将等待用户输入第2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2 D.变量c1被赋予字符a,c2中将无确定值 39.设有定义:int a; float b;,执行scanf(\语句时,若从键盘输入:876

543.0,a和b的值分别是________。 A.876和543.0 B.87和6.0C.87和543.0D.76和543.0

40.若在定义语句:int a,b,c;之后,接着执行以下选项中的语句,则能正确执行的语句是

________。

A.scanf(\B.scanf(\

C.scanf(\D.scanf(\

41.已知字符'A'的ASCII码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句

printf(\后,输出结果是________。 A.A,B B.A,68C.65,66 D.65,68

42.程序段:int x=12; double y=3.141593;printf(\的输出结果是________。 A.12 3.141593 B.123.141593 C.12,3.141593 D.123.1415930 43.若要求从键盘读入含有空格字符的字符串,应使用函数________。 A.getc() B.gets() C.getchar() D.scanf()

44.有以下程序,其中%u表示按无符号整数输出,程序运行后的输出结果是______。 #include main()

{ unsignedintx=0xFFFF; printf(\A.-1 B.65535 C.32767 D.0XFFFF (三)、编程题

1.编写一个程序,从键盘输入圆的半径,计算并输出该圆的周长、面积和体积。 2.输入四个季度的销售额(整型),计算并输出各季度自年初起的累计销售额,计算并

输出第一季度外的三个季度的环比增长率(环比增长率是本期与相比上一期的增长率,针对本题目,即为本季度对上季度的增长率)。

3.从键盘输入四门课程的(整数)分数,输出成绩信息,计算并输出平均分数。要求输入输出有一定提示,输出的平均分数保留二位小数。

第3章选择结构

二、习题

(一)、是非题

1.关系运算符是双目运算符,其功能是将两个运算对象进行大小比较。

A.对 B.错

2.对于与运算“&&”,只有当两个运算对象都为真时运算结果才为真。

A.对 B.错

3.使用条件表达式可以构成各种各样的两路选择结构。

A.对 B.错

4.条件可以是任何类型的表达式,如逻辑型,关系型,数值型等,单个已赋过值的变量或常

量也可以作为表达式的特例。 A.对 B.错

5.else子句不能单独作为语句使用,它是if语句的一部分,必须与if配对使用。

A.对 B.错

6.C语言规定,else总是与它上面最远的if配对。

A.对 B.错 7.在switch语句中,每一个case后的常量表达式的值不能相同,因为选择结构中只允许一

个分支所对应的语句组被执行。 A.对 B.错 8.在执行switch选择结构时,从匹配表达式的相应case处入口,一直执行到break语句或

到达switch的末尾为止 A.对 B.错

9.在C语言中,运算符“=”与“==”的含义都是等于。

A.对 B.错

10.当进行比较的运算对象是字符型数据时,则按字符的ASCII码值从左到右逐个对应比较,

先大为大。

A.对 B.错

11.判断字符变量ch的值是否为数字字符的表达式为(ch>='0') && (ch<='9')。

A.对 B.错

12.条件运算符“?:”是C语言中唯一的一个三目运算符,该运算符可以嵌套使用。

A.对 B.错

13.在C语言中用0表示逻辑值“真”,用非0表示逻辑值“假”。

A.对 B.错

14.在C语言中,所有的逻辑运算符的优先级都一样。

A.对 B.错

15.在C语言中,逻辑运算符的优先级高于算术运算符和关系运算符。

A.对 B.错

16.数学表达式“|x|>4”对应的C语言表达式是“x<-4||x>4”。

A.对 B.错

17.与表达式“!(x>0)”等价的表达式是“x<=0”。

A.对 B.错

18.与表达式“!0”等价的表达式是“1”。

A.对 B.错

19.当a=1,b=2,c=3时,执行语句“if(a>c) b=a;a=c;c=b;”后,变量c中的值为3。

A.对 B.错 a=1,b=2,c=3; if(a>c) b=a; a=c; c=b; b=2

20.当a=1,b=2,c=3时,执行语句“if(a>c) {b=a;a=c;c=b;}”后,变量c中的值为2。

A.对 B.错 a=1,b=2,c=3; if(a>c)

{b=a;a=c;c=b;} C=3 二)、选择题

1.判断char型变量ch是否为小写字母的正确表达式是______。

A.'a'<=ch<='z' B.(ch>='a') & (ch<='z') C.(ch>='a') && (ch<='z') D.('a'<=ch) AND ('z'>=ch) 2.为表示关系100≥b≥0,应使用C语言表达式______。

A.(100>=b)&&(b>=0) B.(100>=b)and(b>=0) C.100>=b>=0 D.(100>=B)&&(B>=0)

3.以下运算符中优先级最高的运算符为______。

A.! B.&& C.!= D.%

4.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是______。

A.'x'&&'y' B.x<=y C.x||y+z&&y-z D.!((x

5.执行以下程序段后,x的值为______。

int a=14,b=15,x; char c='A';

x=(a&&b)&&(c<'B');

A.true B.1 C.false D.0 6.下列表达式中,______不是关系表达式。

A.x%2==0 B.!(x%2)

C.(x/2*2-x)==0 D.x%2!=0 7.执行以下程序后,输出的结果是______。

include \main()

{int a=2,b=-1,c=2;

if(a

A.0 B.1 C.2 D.3

8.执行以下程序后,输出的结果是______。

include \main()

{int w=4,x=3,y=2,z=1;

printf(\

A.4 B.2 C.1 D.3

9.执行以下程序段后,输出结果是______。

int a=3,b=5,c=7; if(a>b) a=b;c=a; if(c!=a) c=b;

printf(\

A.程序段有语法错误 B.3,5,3

C.3,5,5 D.3,5,7 10.下面程序段的输出结果是______。

int a=-1,b=4,k;

k=(a++<=0)&&(!b--<=0); printf(\

A.0,0,3 B.0,1,2 C.1,0,3 D.1,1,2

11.若有定义:float x=1.5;int a=1,b=3,c=2; ,则正确的switch语句是______。

A.switch(x) B.switch(int(x))

{case 1.0: printf(\

case 2.0: printf(\} }

C.switch(a+b) D.switch(a+b)

{case 1: printf(\

case 2+1: printf(\} }

12.下面程序段的输出结果是______。

int n='c';

switch(n++)// n先用,后自增(n=’c’)。 {default: printf(\case'a': case 'A': case 'b':

case 'B': printf(\

case 'c':

case 'C': printf(\case 'd':

case 'D': printf(\

A.passwarn B.passerror C.goodpasswarn D.pass 13.下述程序段的输出结果是_______。

int a=2,b=3,c=4,d=5; int m=2,n=2;

a=(m=a>b)&&(n=c>d)+5; printf(\

A.2,5 B.0,5 C.2,6 D.0,6 14.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是_______。

A.0 B.1 C.2 D.不能确定 15.已知int x=10,y=20,z=30;,以下语句执行后x,y,z的值是_______。

if(x>y)

z=x; x=y; y=z;

printf(\

A.10,20,30 B.20,30,20 C.20,30,10 D.20,30,30

16.当a=1,b=3,c=5,d=4,x=0时,执行完下面一段程序后x的值是_______。

if(a>b) if(cc) if(b

A.7 B.2 C.3 D.6 17.设变量a、b、c、d和y都已经正确定义并赋值,则以下if语句的所表示的含义是_______。

if(a

A.a

B.a

#inlude main()

{ int x=1,y=0,a=0,b=0; switch(x)

{ case 1: switch(y) { case 0: a++; break;