c语言选择题,要详解。否则不采纳。

已定义c为字符型变量,下列语句中正确的是?A) c='97'; B)c="97";C) c=97; D)c='a';详解!

正确答案是CD

9的ascll码57 ( 0011 1001 ) 7的ascll码是55 ( 0011 0111 )

A,单引号里面的是字符,‘97’相当于给c变量赋值ASCLL码‘0011 1001 0011 0111’(两个ascll码的叠加)。而c是个char类型的变量只有一个字节,所以这个时候相当于给c赋值为字符‘7’,即ascll码的最后一段。
B,双引号里面的是字符串,属于一个字符数组{'9','7','\0'}所以这么赋值会报错。
C,用ascll码去赋值,正确。
D,用字符去赋值,正确。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-11
答案是c和D
字符常量是用单引号把一个字符括起来,没有'97'这种形式,所以选项A不对
用双引号括起来的一串字符是字符串常量,不能给字符型变量赋值,所以选项B不对
字符变量可以作为整型变量处理,语句c=97; 是指将ASCII值97的字符赋给c,即c中存放的是a
c='a'; 也是正确的语句,但如果是c="a"则不正确,因为"a"代表字符串常量追问

也可以选两个呀?

追答

这是一个c二级考试题,原题的D选项是c="a"; 所以只有一个答案C,但你的D选项给修改了,所以C和D都是正确的了。

第2个回答  2012-11-11
这样问问题没人解答的追问

咋的?