C语言难题 5
1.在C语言中,合法的字符常数是?(A)'\091'(B)'\x5c'(C)'\34'(D)"\0"2.在C语言中,设int型占2字节,下列不正确的int型常数为?(A)...
1.在C语言中,合法的字符常数是?
(A)'\091'(B)'\x5c'(C)'\34'(D)"\0"
2.在C语言中,设int型占2字节,下列不正确的int型常数为?
(A)-32768(B)32768(C)0999(D)0xfa
3.下列不正确的转义字符是?
(A)'065'(B)'\" '(C)'\\'(D)'\0'
求好心人详细解答!好的话加分! 展开
(A)'\091'(B)'\x5c'(C)'\34'(D)"\0"
2.在C语言中,设int型占2字节,下列不正确的int型常数为?
(A)-32768(B)32768(C)0999(D)0xfa
3.下列不正确的转义字符是?
(A)'065'(B)'\" '(C)'\\'(D)'\0'
求好心人详细解答!好的话加分! 展开
2013-02-17
展开全部
追问
# include
int main (void)
{
char a = '\091';
char b = '\x5c';
char c = '\34';
printf("%c,%c,%c\n",a,b,c);
}
我在VC++6.0里面试的,都能够输出。输出结果为:
1,\,一个奇怪的东西
Press any key to continue
追答
第一个内存会泄露,因为非法初始化,字符型变量被截断,你打开VC的所有编译警告,会给你类似的警告 [Warning] multi-character character constant [-Wmultichar] 。我用VS2010 调试错误:testconst.exe 中的 0x77c920a7 (msvcr100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x00000031 时发生访问冲突
展开全部
1、D ,因为字符都是用' ' 而字符串用""
2、B, 你想一下1个字节时,所有的排列组合数为 2^8 表示的数值范围是[0,255],当为负数时[-128, 127],所以当为2个字节时,int类型有正数和负数之分,取值范围[-32768, 32767] , 当有符号时最大正数很容易理解,因为在计算机中最高位为0时表示正数,所以最大正数为: 0111 1111 1111 1111 这个就是2个字节的int最大的正整数。
3、A,转义字符就是以\开头的。没有\的肯定不对。
2、B, 你想一下1个字节时,所有的排列组合数为 2^8 表示的数值范围是[0,255],当为负数时[-128, 127],所以当为2个字节时,int类型有正数和负数之分,取值范围[-32768, 32767] , 当有符号时最大正数很容易理解,因为在计算机中最高位为0时表示正数,所以最大正数为: 0111 1111 1111 1111 这个就是2个字节的int最大的正整数。
3、A,转义字符就是以\开头的。没有\的肯定不对。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. 答案是C,首先说字符常量,就应该是单个字符,所以D排除,因为D用双引号表示是字符串,再看A和B,由于所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符。所以A和B错。
2.答案B,已经说了int占两个字节,那么能表示数据的范围应该是-32768—32767。
3.答案A,原因第1题已经说了,转义字符一定要有以\开头。
2.答案B,已经说了int占两个字节,那么能表示数据的范围应该是-32768—32767。
3.答案A,原因第1题已经说了,转义字符一定要有以\开头。
追问
第一题的答案写的是B,不懂为啥,其他2题懂了,谢谢指导!
追答
你可以编个程序试一试,这题这他妈的恶心,我觉得B和C都对的,这要看编译器了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、B
A:表示的8进制,9非法 D:是字符串
2、BC
一个字节占八位 那么题中所说的int型就是占16位了,因为最高位是符号位,所以 范围为-2^15到2^15-1 也就是-32768到32767这个范围,所以A是正确的.B是不正确的.
再看选项C,以0开头,表示是八进制数,八进制数用0~7表示,不会存在8和9这两个数字,所以C也是不正确的.
选项D 0x打头的表示十六进制数,可以用0~9和字母a~f表示,0xfa转为十进制后为250
3、A
转义字符 以 \ 开头的
A:表示的8进制,9非法 D:是字符串
2、BC
一个字节占八位 那么题中所说的int型就是占16位了,因为最高位是符号位,所以 范围为-2^15到2^15-1 也就是-32768到32767这个范围,所以A是正确的.B是不正确的.
再看选项C,以0开头,表示是八进制数,八进制数用0~7表示,不会存在8和9这两个数字,所以C也是不正确的.
选项D 0x打头的表示十六进制数,可以用0~9和字母a~f表示,0xfa转为十进制后为250
3、A
转义字符 以 \ 开头的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询