c语言的一些选择题 请大侠赐教....

已知字母"A"的ASCII码为十进制的65,下面程序输出正确的是: main() { char ch1, ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d, %c\n", ch1, ch2); } A) 67, D B) B, C C) 不确定的值 D) C, D 下面程序的输出是: main() { unsigned int a=32768; printf("a=%d\n",a); } A) a=32768 B) a=32767 C) a=-32768 D) a=-1 若有说明语句:char c='\101'; 则变量c: A) 包含一个字符 B) 包含两个字符 C) 包含三个字符 D) 说明不合法 以下叙述中不正确的是: A) 空字符串(即两个双引号连写)只占一个存储单元 B) 字符型常量可以放在字符型变量中 C) 字符型常量可以放在字符串变量中 D) 字符型常量可以与整数混合运算,而字符串常量不可以 设a=1,b=2,c=3,d=4,则表达式a<b?a:c<d?a:d的值是: A) 4 B) 3 C) 2 D) 1 若有以下定义: int a,b,c1,c2,x,y; 则正确的switch 语句是 A) switch(a+b); B) switch(a*a+b*b) { case 1:y=a+b;break; { case 3: case 2:y=a-b;break; case 1:y=a+b;break; } case 3:y=b-a;break; } C) switch a D) switch(a-b) { case c1:y=a-b;break; {default:y=a*b;break; case c2:y=a*d;break; case 3: default:x=a+b; case 4:x=a+b;break; } case 10: case 11:y=a-b;break; } 设a=1,b=2,c=3,d=4,则表达式: a<b?a:c<d?a:d 的结果为 A) 4 B) 3 C) 2 D) 1 语句:printf("%d",(a=2) && (b=-2));的输出结果是 A)无输出 B)结果不确定 C)-1 D)1

第1个回答  2019-04-15
1,选A。在128内,字符和数字是通用的。printf("%d,
%c\n",
ch1,
ch2);
%d就格式化成了数字,%c就格式化为了字符。
2,该题出的不好,不同字长的编译器,int的长度是不同的。现在32位上,输出还是32768.但经典的C语言其长度是-32768~32767,那么%d格式化32768后应该是-1
3,'\101'中,\为转义字符,整个代表一个
4,???
5,d。从左往右来就行了。a小于b吗?是,所以a,a又小于d吗,是,所以a
6,d
凡是a=2,返回都是1