好文档 - 专业文书写作范文服务资料分享网站

C语言习题四选择结构程序设计

天下 分享 时间: 加入收藏 我要投稿 点赞

习题四 选择结构程序设计

1. 设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是______。 A、if(x++); B、if(x>y && y!=0); C、if(x>0) x-- D、if(y<0) {;} else y++; else x++;

解析:本题考查的是if语句。if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。故本题答案选C。

2. 有以下程序 main() { int i;

for(i=1;i<=40;i++) { if(i++%5==0)

if(++i%8==0) printf (\ printf(\

执行后的输出结果是______。

A、5 B、24 C、32 D、40

解析:本题考查的是if语句的应用。在满足for 语句条件下,第一个if语句的条件是指i先对5取余后,

再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。故本题答案选C。

3. 在嵌套使用if语句时,C语言规定else总是______。

A、和之前与其具有相同缩进位置的if配对 B、和之前与其最近的if配对 C、和之前与其最近的且不带else的if配对 D、和之前的第一个if配对

解析:本题考查的是if语句的使用规则。在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对。故本题答案为C。

4. 有以下程序 main()

{ int i=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3)) printf(\程序运行后的输出结果是______。

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

解析:本题考查的是条件判断语句。本题中执行\i++==1&&(++j==3||k++==3)\时,先执行i++==1,由

于i++是先运算,后自加,所以表达式\i++==1\的值为真,其值为1,然后执行括号中的表达式,由于++j是先自加,后运算,所以表达式\++j==3\的值为真,根据短路原理,右边的表达式\k++==3\不再进行运算,直接得出括中表达的值为1,相与后整个表达式的值也为1,输出i,j,k时,由于未执行过k,所以它们的值分别为2,3,3。故本题的答案为D。

5.有以下程序: main() { int i;

for(i=0;i<3;i++) switch(i)

{case 0:printf(\ case 2:printf(\

default:printf(\程序运行后的输出结果是______。

A、022111 B、021021 C、000122 D、012

解析:此题考点是switch语句。switch语句执行完一个case后面的语句后,流程控制转移到下一个case继续执行。“case 常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。如果想在执行一个case分支后,使流程跳出switch结构,即终止switch语句的执行。可以用一个break语句来达到此目的。本题中没有使用break终止switch语句的执行。在此题中当i=0时,执行第一个case语句,因为它后面没有break,所以一直到执行完default语句结束,再执行下一循环。故本题答案为C。

6. 下列条件语句中,功能与其他语句不同的是______。 A、if(a) printf(\B、if(a==0) printf(\C、if (a!=0) printf(\D、if(a==0) printf(\

解析:此题考的是if语句中逻辑表达式值的判断。if(a)表示a值为真(即不等于0都为真)的话,就

输出x的值,否则输出y的值;if(a==0)表示如果a与0等值,即a不为真,就输出y的值,否则输出x的值,此与选项A等价;再看选项C,a不等于0,即为真,输出x,否则输出y,与前两个都同意;而选项D恰好与前几项的意思相反,它是a为0时,输出x,为真时输出y。故本题答案为D。

7.有以下程序 main()

{ char k; int i; for(i=1;i<3;i++) { scanf(\ switch(k)

{ case '0': printf(\ case '1': printf(\ }}

程序运行时,从键盘输入:01↙,程序执行后的输出结果是______。 A、another B、another C、another D、number number number number number

another number

解析:此题考点是switch语句。本题中没有使用break终止switch语句的执行,本题当k为0时,执行完case '0'后将继续执行case '1'。故本题答案为C。

8.以下4个选项,不能看作一条语句的是______。

A、{;} B、a=0,b=0,c=0; C、if(a>0); D、if(b==0)m=1;n=2;

解析:if语句是用来判定所给的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作

之一。在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“{}”将几个语句括起来成为一个复合语句。选项D中没有将两个操作语句括起来,不能看作一条语句。故本题答案为D。

9.以下程序的输出结果是______。 main()

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

if((++a<0)&&!(b--<=0))

printf(\ else

printf(\}

A、-1 1 B、0 1 C、1 0 D、0 0

解析:本题的考查点是if条件的判断。++a是先运算后使用,b--是先使用后运算。执行++a后,a值为0,不满足条件,所以a为0,b仍为1,接下去执行else语句,输出1 0。故本题答案为C。

10. 有以下程序 main() { int c;

while((c=getchar() )!='\\n') { switch(c-'2') {

case 0: case 1: putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3);

default:putchar(c+2);break; } }

}

A、668977 B、668966 C、66778777 D、6688766

解析:本题的考查点是switch()语句。getchar()函数是从键盘接受一个字符输入;当用户键入的字符不是回车符时,会进入一个多分支选择语句,根据表达式c-'2'的值进行分支选择;putchar()是在屏幕上打印一个字符,最后的结果应当为 668977。故本题答案为A。

11.有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是______。

A、if (c

else if (b

解析:本题的考查点是if语句。选项A,因为前面两个条件都不满足,所以执行最后一种操作,x=3;

选项B,a<3成立,执行第一种操作,x=3;选项C,a<3成立,执行第一种操作,x=3;a<2成立,执行第二种操作,此时x=2;a<1不成立,最后的不执行,所以执行此段程序后x=2;选项ф,a

12.以下关于逻辑运算符两侧运算对象的叙述中正确的是______ A、只能是整数0或1 B、只能是整数0或非0整数 C、可以是结构体类型的数据 D、可以是任意合法的表达式

解析:本题考查的是C语言运算符的基本应用。逻辑运算符两侧的运算对象不但可以是0和1,也可以是任意基本类型或指针类型的数据,还可以是任意合法表达式。故本题答案为D。

13. 若x是int型变量,且有下面的程序片段

for(x=3;x<6;x++) printf((x%2)?(\上面程序片段的输出结果是______。

① **3 ② ##3 ③ ##3 ④ **3##4 ##4 **4 **4##5 **5 **5 ##5

A、① B、② C、③ D、④

解析:本题的考查点是条件运算符。本题答案为D。

14.有以下计算公式

若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是______。 A、if(x>=0) y=sqrt(x); B、y=sqrt(x); else y=sqrt(-x); if(x<0) y=sqrt(-x); C、if(x>=0) y=sqrt(x); D、y=sqrt(x>=0?x:-x); if(x<0) y=sqrt(-x);

解析:题面公式的意思是当x大于或等于0,则y的值就取x的平方根,如果x的值小于0,则y的值就取x

的相反数的平方根。sqrt(number)用于返回函数参数的平方根,如果number的值为负数,则返回零。选项B的功能是取x(无论x的值为正、负还是零)的平方根赋值给y,然后再判断x是否小于0,如果小于0,则取x的相反数的平方根赋值给y。这显然不符合题面公式的意思,所以选项B的程序不能正确计算题面公式。故本题答案为B。

C语言习题四选择结构程序设计

习题四选择结构程序设计1.设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是______。A、if(x++);B、if(x>y&&y!=0);C、if(x>0)x--D、if(y<0){;}elsey++;el
推荐度:
点击下载文档文档为doc格式
41w831bt5a4mg6283nif6msol1o4w700uxg
领取福利

微信扫码领取福利

微信扫码分享