发布时间 : 星期四 文章C语言课后习题更新完毕开始阅读7b219129854769eae009581b6bd97f192379bf49
习题5
一、选择题
1. 以下定义数组的语句中正确的是( )。 A)int a(10);
B)char str[];
D) #define SIZE 10; char str 1[SIZE],str[SIZE +2];
C)int n=5; int a[4][n];
2. 对两个数组a和b进行如下初始化: static char a[]=\static char b[]={'a','b','c','d'}; 则下列叙述正确的是( )。 A)a与b数组完全相同 C. a与b中都存放字符串
B)a数组比b数组长度长 D. a与b长度相同
3. 下列语句中,不正确的是( )。 A. static int a[2][3]={1,2,3,4,5,6}; C. static int a[][3]={{1},{4}};
B. static int a[2][3]={{1},{4,5}}; D. static int a[][]={{1,2,3},{4,5,6}};
4. 设有如下形式的字符数组定义: static char str[]=\
则执行下列语句后的输出结果为( )。 printf(“%d”, strlen(strcpy(str,\ A. 7
B) 5
C) 8
D) 9
5. 在下面给出的语句中,( )是对一维数组正确赋初值的语句。 A) int a[10]=\ C) int a[3]={1,2,3,4,5,10};
B) char a[ ]=\D) char a[3]=\
6. 已知对一维数组ns有如下说明: int ns[10];
要求使ns的所有元素都取值0。下面不正确的程序段是( )。 A) for(j=0;j<10;j++) ns[j]=0; B) ns[0]=0;
for(j=1;j<10;j++) ns[j]=n[j-1]; C) for(j=1;j<=10;j++) ns[j]=0;
D) ns[0]=ns[1]=ns[2]=ns[3]=ns[4]=ns[5]=ns[6]=ns[7]=ns[8]=ns[9]=0;
7. 有说明语句:int a[ ][4]={1,5,8,7,12,22,9,41,55,27};则数组a第1维的长度应该是( C A) 2
B) 3
C) 4
D) 5
8、下面程序运行后,其输出是()
#include
void main()
,static char s*30+=”abcdefg”; static char t[+=”abcd”; int i,j; i=0;
while(s*i+!=’\\0’) i++; j=0;
while(t*j+!=’\\0’) {s[i+j]=t[j]; j++;} s*i+j+=’\\0’; printf(“%s\\n”,s); }
A.abcdabcdefg B.abcdefg C.abcd D.abcdefgabcd
)。 9、下面程序运行后,其输出是()
#include
void main() { int a[4][4],i,j,k; for(i=0;i<4;i++) for(j=0;j<4;j++) a[i][j]=i+j; for(i=1;i<4;i++) for(j=i+1;j<4;j++) { k=a[i][j]; a[i][j]=a[j][i]; a[j][i]=k; }
for(i=0;i<4;i++) ,printf(“\\n”); for(j=0;j<4;j++) printf(“%d ”,a*i+*j+);- }
A. 0 1 2 3 B.0 1 2 3 C. 0 1 2 3 D.3 2 1 0 1 2 3 4 1 2 5 4 1 2 4 2 4 3 2 1 2 3 4 5 2 3 4 5 2 3 5 3 5 4 3 2 3 4 5 6 3 4 5 6 3 4 6 4 6 5 4 3
二、填空题
1. 任何一个数组的数组元素都具有相同的数绷名和___________。 2. 同一数组中,数组元素之间是通过___________来加以区分的。
3. 已知数组e定义为int e[ ][4]={{1,2,3,4},{5,6,7,8}};则e是一个_________行
_________列的二维数组,总共有___________个元素,最大行下标是___________,最大列下标是___________,其首行的各元素的值分别是___________。
4. 要使aa成为具有如下初始值的二维int型数组,则最简单的定义aa的语句是________。
10000 12000 12300 12340 12345
5. 执行下列语句序列后,数组str2中的字符串是___________。
char str1[ ]=\for(i=0;str2[i]=str1[i];i++);
6. 有说明语句:
int x[ ][4]={{1},{2},{3}};
那么元素x[1][1]的取值是___________。
7. 下面的语句显示输出3行3列数组a的主对角线上的所有元素,请补充完整。
for(i=________;i<______;________) ____________ printf(___________);
8. 下面的语句按行显式输出5行3列数组aa的所有元素,请补充完整。
for(i=_____;i<_____;_____) { for(j=_____;j<_____;______)