19年3月二级C--字符型数据部分习题
1.char a=' \072 '; 表示的是ASCII中等于72的那个字符,即为" : "。
2.转义字符常量' \xx '可以把' \ '后面的数字转化为ASCII中对应的字符,' \72 '就是' : '。
3.C语言中,字符常量是以单引号括起来的单个字符,或为以" \ "与三位八进制数值或两位十六进制数值代替的单个字符。
4.以下程序段的输出结果是:
char s[]="\141\141abc\t"
printf ( %d\n' , str1en(s));
A.9 B.12 C.13 D. 14
题考的是对转义字符的理解,在C语言中规定:用反斜杠开头后面跟个字母代表一 个控制字符: 用入代表字符”\”, 用代表撇号字符:用反斜杠后面跟1到3个八进制数代表ASCII码为该八进制数的字符:用\x后面跟1到2个十六进制数代表ASCII码为该十六进制数的字符。
本题答案为A。
5.有以下程序
main( )
{ char a,b,c, *d;
a=’\’; b='\xbc ';
c=’\0xab' ; d="\0127" ;
printf( %c%c%c%c\n ,a, b,c, *d);
}
编译时出现错误,以下叙述中正确的是_
A.程序中只有a=' \ ' :语句不正确
B. b=' \xbc’,语句不正确
C.d="\0127" ;语句不正确
D.a='\’ ;和c=' \0xab' ;语句都不正确
本题的考查点是字符常量。
C中的字符常量是用单引号(即撇号)括起来的一个字符。如'a’、'x'、'D’、’?’、'$ ' 等都是字符常量。除了以上形式的字符常量外,C还允许用种特殊形式的字符常量, 就是以一个“\“开头的字符序列。 ’\ddd ' 表示1到3位8进制数所代表的字符,不足3位就在前面加0;’\xhh' 表示1到2位16进制数所代表的字符。而a=' \ ' 和c=' \0xab’是不正确的。
故本题答案为D。
6.转义字符常量是以一个反斜线开头后跟一个特定的字符,用来代表某个特定的ASCII字符,反斜线后直接跟数字表示八进制(八进制不用0开头)。
反斜杠后的十六进制数可以有小写字母x开头,不允许大写字母X,也不允许0x开头。
7.C语言中,没有字符串类型的常量和变量,只有字符型的常量和变量,我们可以通过定义字符型的数组和指针来得到字符串。
对于字符的比较,不可以用关系运算符,只能用字符串比较函数strcmp( )进行比较。字符串比较函数的比较规则是对两个字符串从左至右逐个字符比较,直到出现不同的字符或遇到' \0 '为止,对两个字符串并没有长度的限制。
无任何字符的字符串叫空串,用""表示空串的长度为零,它小于一切非空字符串。
8.两个连续的双引号,""也是一个字符串常量,称为空串,但要占用一个字符的存储空间来存放' \0 '。
9.在c语言中,转义字符' \0 '对应的ASCII码值为0,数字字符' 0 '对应的ASCII码值为48。
10.在c语言中没有转义字符' \c ',' \a '代表响铃,' \b'代表退格符,' \r '代表回车符。
11.在c语言中,不能用字符串常量对字符数组名进行整体赋值操作。
12.表达式9+' 0 '值是字符9的ASCII码。
13.语句printf ("%d\n”, str1en(" \t\“\nY' \065\08AB")),的输出结果是____。
A.7 B.8 C.9 D.6
本题的考查点是转义字符和str1en函数。
转义字符总是以一个反斜线开头后跟一个特定的字符,其中“\”后可跟1~3位八进制数或在“\”后跟字母x及1~2位十六进制数,用来代表某一个特定的ASCII字符。Strlen(s)计算出以s为起始地址的字符串的长度,并作为函数值返回。这一长度不包括串尾的结束标志\0'。所以只需计算ht、丫、小\n、Y、\065这些字符常量的长度之和,\08AB不符合要求。 每个转义字符代表一一个字符,所以输出长度为6。
故本题答案为D。