1. 首页 > 数码 >

c语言选择题及答案解析_c语言的选择题及答案

一道C语言选择题,求答案及解析,好评

float不能作为switch的括号里面的东西

c语言选择题及答案解析_c语言的选择题及答案c语言选择题及答案解析_c语言的选择题及答案


switch括号里面的东西只能是整形

case里面不能是变量表达式和变量,所以d也不对

b应该是(int)x

所以选c

c语言选择题,详解

6、C(只要模式跟date1={2000,1,1},一样就可以)

总结下上面的答案。取多去少。。。。就是我的答案,我来浑水摸鱼的!哈

6.A

7.C

8.A

9.D

10.B

BDADA,我是查过书并上网查过资料的!

6、A 7、B8、C9、D10、B

CDADB

C语言的4个选择题,帮忙解释一下答案,谢谢!

1. 缓冲区中输入“2473”

while第一次循环:c=2,执行case 0;因为没有break,所以顺序执行case 1: putchar(c+4);【输出6】 仍然没有break ,继续执行case 2: putchar(c+4);break;【输出6】break跳出本次循环;

while第二次循环:c=4,执行case 2: putchar(c+4);break;【输出8】break跳出本次循环;

while第三次循环:c=7,执行default: putchar(c+2);break;【输出9】break跳出本次循环;

while第四次循环:c=3,执行case 1: putchar(c+4);【输出7】没有break ,继续执行case 2: putchar(c+4);break;【输出7】break跳出本次循环;

本题主重点是switch,case语句中如果case后没有break语句,则顺序执行,直至break跳出。

while循环结束,输出换行符,程序结束,后显示的就是668977.

2. 程序的意思是i的初始值为2,如果i的值为0,则输出i后i-1,直至i不为0,跳出循环,程序结束。因为i的初始值就不符合循环条件,所以执行次数为0。

本题的重点是for循环语句是先判断执行条件后执行循环。

3.程序的意思是i的初始值为0,如果x>8,则输出x,y后,x=x-1, i=i+1,y=i。

第一次 i=0 , x=10, y=10,

第二次 i=1, x=9, y=1

第三次,x=8,不符合循环条件,不执行循环体,跳出循环。

本题的重点是for循环语句的执行顺序:首先变量赋初值【第一个分号前的语句】然后判断循环条件【两个分号中间的语句】如果为假,跳出循环,反之执行循环体,后执行第二个分号后的语句,然后重新判断是否循环。

4. x为二维数组,其值如下:

x[0][0]=9, x[0][1]=8, x[0][2]=7

x[1][0]=6 ,x[1][1]=5, x[1][2]=4

x[2][0]=3, x[2][1]=2, x[2][2]=1

p[0]指向x[1][1]=5,p[1]顺序下推,指向x[1][2]=4,p[2]指向x[2][0]=3在循环中输出p[0]和p[2]

结果为5,3

本题关键在于在c语言中二维数组的值是按行连续存放的,而指针数组如果只给p[0]赋值。其他没有具体赋值,那么指针p[i]指向的地址是p[0]+指针类型所占的空间数×i,本题中数组和指针都为int,所以p[i]中i每加1就相当于沿数组行移动一个

1、输入:2 c=2 c-'2'=’0‘ 输出执行:case 0:

case 1: putchar(c+4);

case 2: putchar(c+4);break;

即遇到break为止。

输入: 4 c=4 c-'2'=’2‘ 输出执行: case 2: putchar(c+4);break;

输入: 7 c=7 c-'2'=’5‘ 输出执行: default: putchar(c+2);break;

输入: 3 c=3 c-'2'=’1‘ 输出执行: case 1: putchar(c+4);

case 2: putchar(c+4);break;

即:66 8 9 77

2、for(x;y;z)循环执行x,再判断是否满足y条件,满足则循环执行一次,再执行z;再判断y是否成立,直到y不成立了,循环结束。 这一题一开始i=2,不满足i= =0,所以就一次都不执行了。

3、 第一次循环: i=0,x=10,x>8,输出10 10 后,x=9,y=1,i=1

第二次循环: i=1,x=9,x>8,输出 9 1 后,x=8,y=2,i=2

第三次循环: i=2,x=8,x>8不成立,循环结束。

注:对于y=x++和z=++x,应遵循:前变后不变,自身都改变。即x=2时,y=x=2,x=3 ; x=3;z=x=3

4、p[0]=x[1][1]=5 p[2]=x[2][0]=3

具体有: x[0][0]=9, x[0][1]=8, x[0][2]=7

x[1][0]=6 ,x[1][1]=5, x[1][2]=4

x[2][0]=3, x[2][1]=2, x[2][2]=1

p[0]=a[1][1], p[1]=x[1][2], p[2]=x[2][0], 以此类推

第一题:当输入的不是回车时执行switch程序

c='2' c-'2'=0 从case 0开始执行到case 2:后的break语句 此时c='2'+4='6',输出字符6

连续两次输出'6'

再读入c='4', '4'-'2'=2,从case 2开始执行到后的break语句中止 此时c='4'+4='8',输出字符8

接着读入c='7','7'-'2'=5,后面没有相应的序号,所以执行default 输出字符9

再读入c='3', '3'-'2'=1,从case 0开始执行直到case 2后的break为此,即输出两个字符7

后读入回车,循环结束

所以答案是668977

第二题:因为2==0为假,不成立,逻辑值为0,不循环,所以为0

第一道题:

缓冲区里输入2437

while循环一次读出~

第一次读出‘2’

‘2’-’2‘ = 0;执行switch里面语句得出66

第二次读出4

’4‘-’2‘ = 2 执行switch语句读出8;

依次执行下去得出结果

第二题 i=2 。 i==0 因为2!=0 所以返回假 不执行循环 0次~

第三题

第一次X--,y 得出 10,10 以后x--编程9 y进入循环执行得1 在打印一次得到9,1

第四题 p = &x[1][1] 表明p指向1 执行两次 第一次执行p[0]也就是他的首地址p[1][1] 得到5

第二次p[2]就是p+2 后两个元素 也就是3~

C语言的几道选择题,求答案,谢谢

1.for(n=0,n<20;n++)控制循环执行( D )次。

A.19 B.21 C.22 D.20

解释:你看循环只要看n=0到n=19有多少次循环。

2.一个C语言源程序至少应包含一个( A )。

A.Main函数 B.用户自定义函数 C.语句 D.printf函数

解释:一个C语言函数必须有一个主函数(main函数)

3.设a=12,则a/=a+a;执行后,a值为(C )

A.13 B.1 C.0 D.0.5

解释:a+a=12+12=24;a/=a+a=24;

a/=24;a=a/24;

a=0;

4设有学生成绩的数组定义:float score[10];用循环for(i=0;i<10;i++)scanf( D);正确输入数值的写法为( D )

A.“%f”,score[i] B.“%f”,score C. “%f”,&score D. “%f”,&score[i]

解释:这是固定的写法。

5.设定义了指针变量pp:int pp,将变量a的地址赋给指针变量的正确写法为 ( C)

A.pp=a B.a=pp C.pp=&a D.&pp=a

解释:这也是固定的写法.

6.若有定义int i=1,则执行完循环while(i++<5)以后i的值为(A)

A.6 B.5 C.4 D.7

解释:当i等于5时,不执行循环语句。但是i还要执行i++,i=6;

1.for(n=0,n<20;n++)控制循环执行(b )次。

A.19 B.21 C.22 D.20

2.一个C语言源程序至少应包含一个( a )。

A.Main函数 B.用户自定义函数 C.语句 D.printf函数

3.设a=12,则a/=a+a;执行后,a值为(c )

A.13 B.1 C.0 D.0.5

4设有学生成绩的数组定义:float score[10];用循环for(i=0;i<10;i++)scanf( );正确输入数值的写法为( d )

A.“%f”,score[i] B.“%f”,score C. “%f”,&score D. “%f”,&score[i]

5.设定义了指针变量pp:int pp,将变量a的地址赋给指针变量的正确写法为( c )

A.pp=a B.a=pp C.pp=&a D.&pp=a

6.若有定义int i=1,则执行完循环while(i++<5)以后i的值为( a )

A.6 B.5 C.4 D.7

d,a,c,d,c,a

后一个是A,额,是后置++。

DA

CD

CA 上上那哥们讲的还是蛮好的,我就不具体的解释了。

C语言选择题(3道题),帮忙解答一下,谢谢!

3、答案C

其结果为1。说明:C中表达式运算过程中,只要遇到符点型数据就会按符点型数据进行运算,其结果也是符点型。sqrt()函数的返回值是double型,所以,整个运算结果也是double.

2、答案D

else if(x)

y=0;

y=-1;

从这里可以看出 y=-1; 是一条单独的语句,与前面的所有语句都没有关系,程序只要执行到这里y值必然会是-1,所以其输出结果是-1

1、答案D

b-=a; =》b=10-1=9;

while (b--<0); 先检查b<0? 然后运行b--:=》b>0 , b=9-1=8 这里我们也可以看出,类似a++,a--,等操作,只要用到了变量a,则++,--运算就会执行。

第一题 执行循环语句时,b-=a , 相当于 b=b-a为10-1=9,执行一次以后在判断能否满足条件执行下一次循环,判断语句为b--,即为b=b-1=8,因为8<0是假命题,逻辑值为0,不满足循环条件,退出循环。

第二题 答案应该是B吧 else是与上面近if 配对,在本题中即与if(!x)配对。 if(a

if(b!=0)

if(!x)

y=1;

else if(x)

y=0;

这是一个可以看做一个整体,因为if(a

printf("%d",y);

给点分值啊,这样解的没意思。这都要用笔算的

有一道C语言的选择题,希望能帮忙给出详细解答,谢谢了

struct s

{ int i;

struct s i2;

};

static struct s a[3]={1,&a[1],2,&a[2],3,&a[0]};

static struct s ptr;

ptr=&a[1];第5句相当于

static struct s a[3]={{1,&a[1]},{2,&a[2]},{3,&a[0]}};然后看答案

A.ptr->i++

ptr指向a[1]然后指向属性i 此时i=2

运行完这句时候才执行i++

B.ptr++->I

结构体中没有I这个属性

C.ptr->i

->的优先权大于指针 所以相当于(ptr->i)而i属性是int 不能用指针去修饰

D.++ptr->i

->的优先权大于++所以相当于++(ptr->i)

而使用这句之前使用了i+=1

所以此时a[1]的i=3

所以正确答案是D

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息