C语言部分问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 12:04:15
1.)以下选项中合法的C语言字符常量是:
A)'\t' B)"A" C)67 D)A
(第一题A项是转义字符,能算是常量吗?)

2.)为求出return语句返回计算100!的结果,此函数的类型说明应为:
A)int B)long C)unsigned long D)以上选项都不对
(此题答案选D,求原因,谢谢!)

3.)字符串"ab\034\\\x79"的长度为________.
(此题答案是"五个",求原因,要求具体解释,谢谢!)

4.)若有定义:char c='\010';则变量c中包含的字符个数为______.
(答案是"一个",请问是哪一个,为什么,谢谢!)

5.)请问"位运算"到底重要不重要?有必要学吗?Thanks!!

1:B,不是能不能的问题,是不可以。C就是这样规定的。霸道,它用了,别人就不能用。

2:100!是多少?除非自己写计算机代码,C本身的变量长度不够。就像:1000000000000000000000000000,你用什么类型表示?

3:5个字符分是'a','b','\034','\\','\x79'
'a','b'很明显
'\034'是一个8进制数,一般表示ascii码,这理是特殊字符。
'\\'表示\,因为\是转义符,所以为了表示本身,用'\\'来表示
\x79,是16进制数,ascii码是y

4:char c='\010' ascii码对应的是特殊字符。写不出来不好意思。

5:用到的时候在学,反正不难。

另外看你问的基本上都是\0什么的。
专门说下。
main()
{
int c=65;
char a='\0101'
printf("%c%c",c,a);
getch();
}
你会发现输出的是:AA
A的ascii码是65,所以当以字符输出C的时候,是A,而65的8进制是101,所以
char a='\0101'相当与char a='A'.(\0或者\,0可以省略。是八进制)

2. 100!结果超出了int ,long ,unsigned long所能表达的数量的上限
3. 5个字符分别是'a','b','\034','\\','\x79'
'a',&#