第七章测试
1.
有以下程序
#include <stdio.h>
main()
{ int i, t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++)
printf("%d ",t[2-i][i]);
}
程序执行后的输出结果是( )。
A:
3 5 7
B:
7 5 3
C:
7 5 1
D:
3 6 9
答案:A
2.
以下错误的定义语句是( )。
A:
int x[][3]={1,2,3,4};
B:
int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C:
int x[][3]={{0},{1},{1,2,3}};
D:
int x[4][]= {{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
3.
以下叙述中正确的是( )。
A:
C语言本身没有提供对字符串进行整体操作的运算符
B:
两个字符串可以用关系运算符进行大小比较
C:
当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和
D:
函数调用strlen(s);会返回字符串s实际占用内存的大小(以字节为单位)
4.
以下叙述中正确的是( )。
A:
字符串常量"str1"的类型是:字符串数据类型
B:
字符数组的每个元素可存放一个字符,并且最后一个元素必须是字符
C:
有定义语句: char str1[] = "str1"; ,数组str1将包含4个元素
D:
下面的语句用赋初值方式来定义字符串,其中' '是必须的char str1[] = {'s', 't', 'r', '1', };
5.
以下叙述中正确的是( )。
A:
语句 char a[2] = {"A", "B"}; 是合法的,定义了一个包含两个字符的数组
B:
语句 int a[] = {0};是不合法的,遗漏了数组的大小
C:
语句int a[8] = {0}; 是合法的
D:
语句 char a[3]; a = "AB"; 是合法的,因为数组有三个字符空间的容量,可以保存两个字符
6.
以下叙述中正确的是( )。
A:
对于一维字符数组,不能使用字符串常量来赋初值
B:
语句 char str[10] = "string!"; 和 char str[10] = {"string!"}; 并不等价
C:
对于字符串常量 "string!",系统已自动在最后加入了'