(1)串的长度是指()
A、串中所含不同字母的个数
B、串中所含字符的个数
C、串中所含不同字符的个数
D、串中所含非空格字符的个数
答案:B
解析:
串的长度定义为串中字符的数目,所以选项B为正确答案;
选项C不正确,因为串中可以含有相同的字符;
选项A不正确,因为串中可能含有相同的字母,而且也可能含有数字等其他非字母字符;
选项D不正确,因为空格也是一种字符,在计算长度时理应将其计算在内。
(2)设串 s1=’ABCDEFG’ , s2=’PQRST’ ,函数 con(x,y) 返回 x 和 y 串的连接串, subs(s, i, j) 返回串 s 的从序号 i 开始的 j 个字符组成的子串, len(s) 返回串 s 的长度,则 con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2)) 的结果串是?(本题序号从1开始。)
A、BCDEF
B、BCDEFG
C、BCPQRST
D、BCDEFEF
答案:D
解析:
len(s2)=5 //字符长度不包括“\0”
subs(s1, 2, len(s2)) //表示的是从第二个字符开始截取len(s2)个字符 ,即为BCDEF
subs(s1, len(s2), 2) //同理可得到EF
通过 con连接起来所以结果是BCDEFEF
需要注意的是:序号从1开始,Strlen取的是不包括'\0'的实际长度。
(3)若有以下程序
main( )
{
char c1,c2;
c1 =‘C’+‘8’-‘3’;
c2 =‘9’-‘0’;
printf("%c %d\n",c1,c2);
}
则程序的输出结果是
A、H'9'
B、H 9
C、F'9'
D、表达式不合法输出无定值
答案:B
解析:本题考查字符变量以及printf( )函数相关知识,字符变量c1被赋值为'C'+'8'-'3',
即ASSCII码的运算,67十54-49=72,即H;字符变量 c2被赋值为'9'-'0',但输出时,
需要注意的是c1以字符变量输出,而c2是以十进制整型变量输出。因此B选项正确。
知识点:(1)字符要加单引号,当数