1.语句"printf("%d\n"strlen("ats\nol2\1\\"));"的输出结果是( )
①11
②10
③9
④8
【解】字符串中的字符可以是一般的普通字符,也可以是由反斜杠字符开头的转
义字符。在字符串"abs\no12\11\\" 中,有三个转义字符,它们是\n、\1、\\,
所以该字符串的有效字符个数是9。所以正确的回答是③。
2.函数调用“strcat(strcpy(strl,str2),str3)”的功能是( )
①将字符串strl复制到字符串str2中后再连接到字符串str3之后
②将字符串strl连接到字符串str2中后再复制到字符率str3之后
③将字符串str2复制到字符串strl中后再将字符串str3连接到字符串strl之后
④将字符串str2连接到字符率strl之后再将字符串strl复制到字符串str3中
【解】函数调用strcat(s1,s2)是将s2字符串复制连接到s1字符串之后,使s1字符
串变得更长。函数调用strcpy(s1,s2)是将s2字符串复制到s1,使s1字符串的内容
与s2字符串的内容相同。函数调用strcat(strcpy(strl,str2) ,str3) 是先执行
strcpy(strl,str2),然后再执行strcat(strl,str3),所以其功能是③.
3.设有如下定义,则正确的叙述为( )char x[]={"abcdefg"};char y[]={’
a’,’b’,’c’,’d’,’e’,’f’,’g’};
①数组x和数组y等价
②数组x和数组y长度相同
③数组X的长度大于数组y的长度
④数组X的长度小于数组y的长度
【解】不指定数组长度的字符数组定义,其所需要的字节数可由初始化中给出的值
的个数确定。字符数组可以用字符串初始化,也可用字符逐个给字符数组的元素初
始化。但用字符初始化时,尽管给出了字符串中的全部字符,还是不会自动有字符
率结束字符。但字符串初始化自动会含有字符串的结束标记符,字符串初始化所需
要的字节个数会比用同样多的字符初始化多1个字节。所以③才是正确的。
4.根据变量定义“static int b[5],a[][3]={1,2,3,4,5,6};”,b[4]=
( ),a=[1][2]
【解】系统规定,静态变量定义时,若末初始化,系统自动给定二进制代码全0的
值。所以态数组b的元素全为0,当然包括b[4]也为几静态数组a是二维数组,每行
有三个元素,在初始化中结出了六个初值,所以数组a有2行。由于数组的元素按
行顺序存储,并按行顺序初始化。前三个值是第一行,后三个1][2]是第二行的第
三列元素,也是a的最后一个元素,所以其值是6。
5.设有定义语句“static int a[3][4]={{1},{2},{3}};”则a[1][1]值为( ),
a[2]
[1]的值为( )。
【解】给二维数组初始化时,可按行给出初值,并且每行可以只给前面部分的元素
给出初值。系统规定,对哪些未给出初值的部分元素,系统自动置二进制代码全0
的值。由于定义语句只给a[0][0]给定初值1、a[1][0]给定初值2、a[2][0]给定初
值3。这样,其它元素都为0值。所以,a[1][1]=( )。0,a[2][1]=( )。
6.若在程序中用到“putchar( )”函数时,应在程序开头写上包含命令( ),
若在程序中用到“strlen( )”函数时,应在程序开头写上包含命令()。
【解】putchar()是系统提供的头文件stdio.h中定义的宏,所以程序要使用它,必
须写上包含命令:#include。函数strlen()是系统提供的字符串处理函数之一,字
符串处理函数的函数原型说明和它们用到的有关常量、数据结构等,在系统提供的
头文件tring.h中定义,所以使用该函数的程序应在程序开头写上包含命令
并include
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |