伙伴们帮我看一下 附带下说明啊!谢谢了 答案是1.A 2.B

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:17:54
1.已知ch是字符型变量,以下不正确的赋值语句是
A ch='a+b'; B ch='\0'; C ch='7'+'9'; D ch=5+9;

2.已知ch是字符型变量,以下正确的赋值语句是
A ch='123'; B ch='\xff'; C ch='\08'; D ch='\';

第一题、如果不确定是A。那你看下其他3个答案。
答案B:'\0'是字符串结尾符,所以正确。
答案C:理解char类型的本质,它实际上是1个长度为1个字节的变量,其值均为非负整数。所以char类型的字符之间是可以相互加减的,只要加减的结果还在0--255之内,依然可以作为char类型的值。(7和9非别对应55和57)。
之所以显示出来的东西不一样,那是因为编译器会根据数据类型进行不同的显示处理而已。
答案D:理解答案C,答案D也就理解了。

第二题.排除法。
答案A.显然不对,答案既不是字符也不是字符串
答案B.'\x'后面跟2个16进制数。代表这个16进制数的值对应的ASC码。
这是字符,如果数值要表示16进制的时候是用0x后面跟16进制数来表示的。
答案C.这个答案很奇怪,它在编译器里运行是正常的。不过我是在是想不出怎么解释这个东西。
答案D.这个就是错的。。没什么解释。要想吧字符的值赋成\,要用'\\'

虽然我不懂C++,但也说说我的看法吧
给字符型变量赋值格式是 变量名="\字符"
"\"后面是字符,而非数字,也不能有特殊符号
个人看法,不知道对不对

1.a+b代表的是字符串

2. \x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制A S C I I码值。

1、'a+b'是字符串(string),不是字符(char)。

2、'\xff'是指一个双字节字符,所以是正确的。