C语言习题

发布时间 : 星期日 文章C语言习题更新完毕开始阅读

case '*':r=x*y;break; case '/':r=x/y;break; }

printf(\

}

A.0.6 B.0.600000 C.15 D.8 (47)以下程序的运行结果是( )。

main() {int x,y,z; x=1;y=1;z=0; x=x||y&&z;

printf(\,%d\,x&&!y||z); }

A. 1,0 B. 0,1 (48)以下程序的运行结果是( )。

main() { int a,b,c;

int s,w=0,t=0; a=-1;b=3;c=3; if(c>0)s=a+b; if(a<=0) if(b>0)

w=a-b;

else if(c>0)w=b-a; else t=c;

printf(\}

A. 2,-4,0 B. 2,0,0 (49)下列程序段的运行结果是( )

int n=0; if (n++<3); printf(\

A. 2 B. 3 C. 4 (50)选择运行结果为4的表达式( )

A. int i=0, j=0,t;

t=(i=3,(++j)+i); printf(“%d”,t);

B. int i=1, j=0;

j=i=((i=3)*2);

C. int i=0, j=1;

i=(j==1)?(i=1):(i=3);

D. int i=1,j=1;

i+=j=2;

C.1,1 D.0,0 C. 5,0,0 D. 以上都不对

D.都不对

二、判断题

(1)else语句总是和靠它最近的尚未配对的if匹配。(√) (2)switch语句中一定有default分支 。(×) (3)case后只能跟常量,不能跟变量。(√) (4)if(表达式)语句1 else 语句2 结构中,如表达式为a>10,则else的条件隐含为a<10。

(×)

(5)可以用swicth结构实现的程序都可以使用if语句来实现。(√) (6)switch?case结构中条件表达式和常量表达式值可以为float类型。(×) (7)由float x=3e-6,y=3e-6;可得x==y的逻辑值为真。(×) (8)语句int a=2;if(a=3)b=1;执行后b的值是1。(√) (9)所有关系运算符的运算优先级相同。(×)

(10) switch后面园括号内的表达式的值和case后面的常量表达式都必须是整型或字符型,

不允许是浮点型。(√)

(11)两个变量交换数据时常使用一个工作变量。(√)

(12)switch语句的结束发生在break;语句的执行或者switch语句的“}”。( √) (13)逻辑运算符的运算优先级低于算术运算符的运算优先级。(×) (14)执行a=0;if(0);a=3;后a的值为3。(√)

(15) 假定变量a,b,c在说明时已赋初值,则if ((a=b;)>0) c=a;是正确的。 (×) (16)int i=20;switch(i/10){case 2:printf(\的输出结果为A。( × ) (17)在C程序中,条件运算符是一个三目运算符。(√)

(18)求解表达式max=(a>b)?a:b的步骤是,先求解条件表达式(a>b),再根据它的值将a或b

赋给max。(√)

(19)语句if(a>b) printf(\可以用条件表达式a>b?a:b取代。(×) (20)语句if(a>b) printf(\可以用语句 printf(\取代。

(√)

(21) 条件表达式x?'a':'b'中,若x=0时,表达式的值为'a'。(×) (22) 在C语言中,逗号既可以作为运算符,也可以作为分隔符。(√) (23) case语句后如果没有break,顺序向下执行。(√) (24) if (a=5)是允许的。(√)

(25) 在switch语句中,case后若是多个语句可不必用花括号括起来构成复合语句。(√) (26) 在逻辑运算符中,逻辑非运算符!的优先级最高。(√) (27) 在C语言中switch语句必须使用break语句。(×)

(28) if语句无论写在几行上,都是一个整体,属于同一个语句。(√) (29) 在if语句中,有if必须有else。(×)

(30) C语言编译系统在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”。(√) (31) 在if语句中,else前一个语句可不加\。(×)

(32) a=3,b=2,c=1 则关系表达式\的值为\真\。(√)

(33) 程序的基本结构中选择结构又叫分支结构,有单分支与多分支两种。(√)

(34) 在C语言的if语句中,用作判断的表达式为关系表达式、逻辑表达式或算术表达式。

(√)

(35) 关系表达式 a=b > c 等价于 a= =b >c。(×) (36) 逻辑表达式 'C'&&'d' 的值为1。(√)

(37) 已知x=43,ch='A',y=0;则表达式(x>y&&ch<'B'&&!y)的值为\假\。(×) (38) 若有条件表达式(x)?a++:b++;则表达式中(x)等价于(x!=0)。(√)

(39) 逻辑表达式4>2&&1||5<3-!0的值为1。(√) (40) 选择结构可以使用嵌套形式。(√)

(41) C语言提供的三种逻辑运算符的运算优先级相同。(×) (42) 条件运算符“?:”是C语言中唯一一个三目运算符。(√) (43) break只能用于switch语句中。(×)

(44) 逻辑运算符的运算对象的数据类型是任何类型的数据。(√) (45) 多分支语句switch(a)中表达式a的类型只能是整型或字符型。(√) (46) int a=0, b=13; 则执行 ++a||b--; a的值为 1,b的值为 13。(√)

(47) 判断char型变量ch是否为大写字母的正确表达式是:(‘A’<=ch)AND(‘Z’>=ch)。(×) (48) 在C语言中,if 语句可以单独使用。(√) (49) 在C程序中,判断逻辑值时,用“非0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。(√) (50) 逻辑型属于C语言的数据类型。(×)

第五章 循环结构程序设计

一、选择题

(1) 下面程序的运行结果是( )。

main(){ int x=3; do{printf(\ A. 死循环 B. 1 -2 C. 10 D. 1 (2) 下面程序的运行结果是( )。 main()

{int i,j,k,sum; for(i=2;i<7;i++) {sum=1;

for(j=i;j<7;j++) sum=sum+j; } printf(“%d”,sum); }

A. 48 B. 49 C. 1 D. 7 (3)以下不正确的描述是( )。

 A.break语句只能用于循环语句和switch语句。

B.在switch语句中,break语句的作用也可用continue语句来替代。

C.在循环语句中,使用continue语句是为了结束本次循环,而不是终止循环的执行。 D.在循环语句中,使用break语句是为了使流程跳出循环体,提前结束循环 (4)while(!x)中的条件表达式(!x)与下面条件( )等价。 A.x==0 B.x==1 C.x==0|| x==1 D.x!=0 (5)运行下面的程序,其输出是( )。 void main() {int i=1; while(i<19)

if(i++%5!=3) continue; else printf(“%d”,i); printf(“\\n”);

}

A.2 5 7 9 11 13 15 17 B.3 6 9 12 15 18 C.4 9 14 19 D.3 8 13 17 19 (6)下面程序运行后,其输出是( )。  void main() {int i; int n=2;

while(++n<20) {i=1; while(++i)

{if(n%i==0) break;

if(i==n-1) printf(“%d\\t”,n); }

printf(“\\n”); } }

A.2 5 7 9 13 17 19 B.3 5 7 11 13 17 19 C.2 3 5 7 11 13 17 19 (7)该程序的输出结果是( )。 m=37;n=13; while(m!=n) {

while(m>n) m=m-n; while(n>m) n-=m; }

printf(\ 输出结果为:

A. m=13 B. m=11 C. m=1 D. m=2 (8)下面这个程序的输出是( )。 #include void main() {

int y=10; while(y--);

printf(\ }

A. y=0 B. while构成死循环 C. y=1 D. y=-1 (9) 以下程序中,while循环的循环次数是( )。 void main() { int i=0;

while(i<10)

{ if(i<1) continue; if(i==5) break;

i++;

D.3 5 7 11 13 17 20

联系合同范文客服:xxxxx#qq.com(#替换为@)