C语言程序选择题。
有以下程序:#include<stdio.h>main(){chara,b,c,d;scanf("%c%c",&a,&b);c=getchar();d=getchar()...
有以下程序:
#include <stdio.h>
main()
{ char a,b,c,d;
scanf("% c% c",&a,&b);
c=getchar();
d=getchar();
printf("% c% c% c% c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)
12<CR>
34<CR>
则输出结果是( )
A)12
34
B)12
C)1234
D)12
3 展开
#include <stdio.h>
main()
{ char a,b,c,d;
scanf("% c% c",&a,&b);
c=getchar();
d=getchar();
printf("% c% c% c% c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)
12<CR>
34<CR>
则输出结果是( )
A)12
34
B)12
C)1234
D)12
3 展开
8个回答
展开全部
#include <stdio.h>
main()
{ char a,b,c,d;
scanf("% c% c",&a,&b); //1 2
c=getchar();//<CR>
d=getchar();//3
printf("% c% c% c% c\n",a,b,c,d); //输出12<CR>3 其它的被程序丢弃了
}
所以答案是D
更多追问追答
追问
为什么
scanf("% c% c",&a,&b);
c=getchar();
d=getchar();
语句中输入12后,是a得到1,b得到2。而不是a得到12,b得到?
追答
因为scanf("%c%c",&a,&b);这里的%c表示读字符,即一个字节一个字节的读入,1表示一个字符,2也是一个字符,即:一般情况,我们按键盘上一个键,就产生一个字符(特殊情况不考虑,只为说清问题),而我们键入的一连串的字符机器是按什么解释,就看程序代码如何写了。
展开全部
A错 不允许有连等于,(其实那个“=”是赋值号,把它右边的值赋给左边)
B错 因为已知y=3,所以y==1这个布尔判断即为False,把布尔值赋给整型(题目说x是int整型的),所以错。
C正确 将整型的x强制类型转换为单精度Float型,再赋给i正确的 因为i是float型的
D错 题目中i没有赋初值,不能用来计算 。
回答完毕!!
以上回答你满意么?
B错 因为已知y=3,所以y==1这个布尔判断即为False,把布尔值赋给整型(题目说x是int整型的),所以错。
C正确 将整型的x强制类型转换为单精度Float型,再赋给i正确的 因为i是float型的
D错 题目中i没有赋初值,不能用来计算 。
回答完毕!!
以上回答你满意么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你选D能得到老师的分。
但是实际你的代码运行不会是这样,全部都会出错,因为 你在%和c之间多了空格。
但是实际你的代码运行不会是这样,全部都会出错,因为 你在%和c之间多了空格。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案应该选A,
还记得char吧,
当用'abc'赋值时,表示一个字符,且是第一个字符,'a'
而当以"abc"赋值时,表示一个字符串,且实际存储形式是,"abc\0"
所以char
c='\72'实际上等价于char
c='\'
也就是只有一个字符.
明白不?呵呵,不懂再问.
还记得char吧,
当用'abc'赋值时,表示一个字符,且是第一个字符,'a'
而当以"abc"赋值时,表示一个字符串,且实际存储形式是,"abc\0"
所以char
c='\72'实际上等价于char
c='\'
也就是只有一个字符.
明白不?呵呵,不懂再问.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案是B``char定义的\要表达出来的话是\\所以char
c='\72'里面的\变得没意义`有意义的只有72所以是2个字符号
c='\72'里面的\变得没意义`有意义的只有72所以是2个字符号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询