第六章数组习题答案
一、单项选择题
1. C语言中,一维数组下标的最小值是( B )。
A)1 B) 0 C) 视说明语句而定 D) 无固定下限
2. 若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是( B )。
A)a[0][4] B) a[1][3] C) a[0][3] D) a[1][4]
3. 设有数组定义:char str[ ]=”China0”
A)4个 B) 5个 C) 6个 D) 7个
4. 若有定义语句:char str[ ]=”ab\n\012\\\n”;
则执行语句:printf(“%d”,strlen(str));后,输出结果是( A )。
A)3 B) 4 C) 6 D) 12
5. 下列描述中不正确的是( C )。
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值
6. 当用户要求输入的字符串中含有空格时,应使用的输入函数是( C )。
A)scanf( ) B)getchar( ) C) gets( ) D) getc( )
7. 有以下程序
#include
main( )
{
int i,x[3][2]={0};
for(i=0;i<3;i++)
scanf(“%d”,x[i]);
printf(“%3d%3d%3d\n”,x[0][0], x[0][1], x[1][0]);
}
程序运行后的输出结果是( )。
A)2 0 0 B) 2 0 4 C) 2 4 0 D) 2 4 6
8. 有以下程序
#include
#include
main( )
{ char p[20]={‘a’,’b’,’c’,’d’},q[ ]=”abc”,r[ ]=”abcde”;
strcpy(p+strlen(q),r);
strcat(p,q);
printf(“%d %d\n”,sizeof(p),strlen(p));
}
程序运行后的输出结果是( C )。
A)20 9 B) 9 9 C) 20 11 D) 11 11
9. 有以下程序
#include
#include
main( )
{ char p[20]={‘a’,’b’,’c’,’d’},q[ ]=”abc”,r[ ]=”abcde”;
strcat(p,r);
strcpy(p+strlen(q),q);
printf(“%d\n”, strlen(p));
}
程序运行后的输出结果是( B )。
A) 9 B) 6 C) 11 D) 7
10.有以下程序
#include
main( )
{ char s[ ]=”abcde”;
s+=2;
printf(“%d\n”,s[0]);
}
程序运行后的输出结果是( D )。
A)输出字符a的ASCII码 B) 输出字符c的ASCII码
C) 输出字符c D) 程序出错
二、填空题
1. 数组在内存中占一片连续的存储区,由 数组名 代表它的首地址。
2. C语言程序在执行过程中,不检查数组下标是否 越界 。
3. 若定义char str[20];则表示此数组有 20 个元素,其下标从 0 开始,最大为 19 。
4. 设有定义语句:int i=3,a[ ]={1,2,3,4};,则数组a 的类型是 整型 ;数组元素a[i]的值是 4 。
5. 设有定义:char s[5]={‘a’,’b’};,则s[1]中的字符是 ‘b’ ,s[2]中的字符是 ‘\0’ 。
6. 定义一个名为x整型二维数组,其大小为3×4,要求每行第一个元素为1,其余均是0,则定义语句是 int x[3][4]={{1},{1},{1}};
7. 以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,nu