一道C语言选择题,求答案及解析,好评
float不能作为switch的括号里面的东西
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 举报,一经查实,本站将立刻删除。