C语言课后习题 联系客服

发布时间 : 星期四 文章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<_____;______)