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
展开
 我来答
kaixingui2012
推荐于2017-11-26 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6061万
展开全部
#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也是一个字符,即:一般情况,我们按键盘上一个键,就产生一个字符(特殊情况不考虑,只为说清问题),而我们键入的一连串的字符机器是按什么解释,就看程序代码如何写了。
煞TAbd
2014-09-11 · TA获得超过120个赞
知道答主
回答量:162
采纳率:66%
帮助的人:49.5万
展开全部
A错 不允许有连等于,(其实那个“=”是赋值号,把它右边的值赋给左边)
B错 因为已知y=3,所以y==1这个布尔判断即为False,把布尔值赋给整型(题目说x是int整型的),所以错。
C正确 将整型的x强制类型转换为单精度Float型,再赋给i正确的 因为i是float型的
D错 题目中i没有赋初值,不能用来计算 。
回答完毕!!
以上回答你满意么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2014-09-11 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65773
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
你选D能得到老师的分。

但是实际你的代码运行不会是这样,全部都会出错,因为 你在%和c之间多了空格。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尉运南华荣
2020-05-13 · TA获得超过3794个赞
知道大有可为答主
回答量:3180
采纳率:26%
帮助的人:391万
展开全部
答案应该选A,
还记得char吧,
当用'abc'赋值时,表示一个字符,且是第一个字符,'a'
而当以"abc"赋值时,表示一个字符串,且实际存储形式是,"abc\0"
所以char
c='\72'实际上等价于char
c='\'
也就是只有一个字符.
明白不?呵呵,不懂再问.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黎泽崇运骏
2019-07-02 · TA获得超过3832个赞
知道大有可为答主
回答量:3067
采纳率:28%
帮助的人:220万
展开全部
答案是B``char定义的\要表达出来的话是\\所以char
c='\72'里面的\变得没意义`有意义的只有72所以是2个字符号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式