C语言变量赋值二道题

来源:百度知道 编辑:UC知道 时间:2024/05/26 21:42:38
(1)以下能正确地定义整型变量a,b和c并为其赋初值5的语句是______.
A int a=b=c=5;
B int a,b,c=5;
C a=5,b=5,c=5;
D a=b=c=5;
书上明确写着:在变量说明中,不允许连续给多个变量赋初值。如下述说明是错误的:
int a=b=c=5必须写成int a=5,b=5,c=5; 但答案为什么是A?是书上错了吗?
(2)已知ch是字符型变量,下面不正确的赋值语句是_____。
A ch='a+b';
B ch='\0'; \0是什么啊?
C ch='7'+'9';
D ch=“\”; 这是啥?

(1)选A。你看得书可能有错误,在定义变量类型的时候直接赋值
int a=b=c=5;
这样赋值是可以的。但是不能这样写:
int a,b,c;
a=b=c=5;
这样就错了。也就是说在定义类型时直接赋值,可以出现“a=b=c=5”这种形式,否则不行,必须写成:
int a,b,c;
a=5;
b=5;
c=5;

(2)选D和A。因为A也不对,'a'+'b'才是a和b的ASCII码相加后的值,'a+b'则只能看成是一个字符串,一个字符串当然不能赋给一个字符变量,楼主可以上机试验一下,这种赋值是提示错误的。B是正确的,'\0'是一个字符,表示空操作,就是什么也不干。C也正确,'7'+'9'表示'7'和'9'的ASCII码相加后的值所对应的字符,应该是'p'。D就不说了,明显错误的。所以这道题如果不是楼主打错就应该是出错了。

第一题明显没有对的

第二题
'a+b'可以理解成256进制,赋值给ch的是最低8位的'b'。注意字符常量的类型是int,你在''里最多可以写4个字符(转义算一个字符)。比如'1234'相当于0x31323334
'\0' 这就是0
D首先""就不对 "\"这样就更不对了

1> A
排除法就可以知道了。
B只给c赋值了a,b没有
C和D没有定义

2> D

2>A:'a+b'是指a和b的ASCII相加的值
B:'\0'表示结束符或空字符
C:是'7'的ASCII加上‘9’的ASCII
D:是两个字符是一个字符串‘\’和‘\0’

这么久的题目了..我来纠正下吧