练习题-第六章_数组(有答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、填空题

1.在C语言中,二维数组元素在内存中的存放顺序是。

2.定义了二维数组:int array[4][5],该数组所占的内存空间为______字节。

3.假设有整型数组array[100][100],其中第66行,第66列元素array[66][66]在数

组中排列的位置(位置从1开始算起)为6566 。

4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的初值是

________。

5.下面的程序段的运行结果是____he_____。

char x[ ]=“the teacher”;

int i =0;

while(x[++i] != ’\0’)

if(x[i-1] = = ‘t’) printf(“%c”,x[i]);

二、单项选择题

1.下面程序( B )(每行程序前面的数字表示行号)。

1 main( )

2 { float a[10]={0.0};

3 int i;

4 for(i=0;i<3;i++) scanf(“%d”,&a[i]);

5 for(i=1;i<10;i++) a[0]=a[0]+a[i];

6 printf(“%f\n”,a[0]);

7 }

A)没有错误B)第2行有错误

C)第4行有错误D)第6行有错误

2.下面程序中有错误的行是(D)(每行程序前面的数字表示行号)。

1main( )

2{

3int a[3]={1};

4int i;

5scanf(“%d”,&a);

6for(i=1;i<3;i++) a[0]=a[0]+a[i];

7printf(“a[0]=%d\n”,a[0]);

}

A. 3

B. 6

C. 7

D. 5

3.以下不能对二维数组a进行正确初始化的语句是( C )。

A. int a[2][3] = {0};

B. int a[ ][3] = {{1,2},{0}};

C. int a[2][3] = {{1,2},{3,4},{5,6}};

D. int a[ ][3] = {1,2,3,4,5,6};

4.对两个数组a和b进行初始化

char a[ ] =“ABCDEF”;

char b[ ] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};

则以下叙述正确的是(D )。

A. a与b数组完全相同

B. a与b长度相同

C. a和b中都存放字符串

D. a数组比b数组长度长

5.判断字符串s1是否大于字符串s2,应当使用( D )。

A. if ( s1 > s2 )

B. if (strcmp (s1 , s2 ))

C. if ( strcmp (s2 , s1 ) > 0 )

D. if (strcmp (s1 , s2 ) > 0 )

6.当运行以下程序时,从键盘输入:AhaMA□Aha ↙(□代表空格,↙代表回车),

则下面程序的运行结果是( )。

#include “stdio.h”

main( )

{ char s[80], c = ‟a‟;

int i = 0;

scanf(“%s”,s);

while(s[i] != ‟\0‟)

{ if(s[i] = = c ) s[i] = s[i] - 32;

else if (s[i] = = c-32) s[i] = s[i] + 32;

i++;

}

puts(s);

}

A. ahAMa

B. AhAMa

C. AhAMa□ahA

D. ahAMa□ahA

7.下面程序段是输出两个字符串中对应相等的字符。请选择填空。

char x[]=“programming”;

char y[]=“Fortran”;

int i=0;

while(x[i]!= …\0‟&&y[i]!= …\0‟)

if(x[i]==y[i]) printf(“%c”, ( A ) );

else i++;

A. x[i++]

B. y[++i]

C. x[i]

D. y[i]

三、判断题

1.有二维数组int a[100][100],数组元素a[100][100]的存储位置为10001。( F )

2.为了增加程序的通用性,定义数组时,最好用变量说明其长度。如:int n; int arr[n];

( F )

3.字符个数多的字符串一定比字符个数少的字符串大。(F)

4.下面程序运行的结果为“OK!”。( F )

char s1[100] = {“abcde”}; char s2[100] = { “abcde” };

if(s1= = s2) printf( “ OK! ”) else printf(“No! ”);

四、填程序

1.设数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将

这些和存在数组b中,按每行3个元素的形式输出。请填空。

main( )

{ int a[10],b[10],i;

for(i=0;i<10;i++)

scanf(“%d”,&a[i]);

for( i=1 ;i<10;i++)

a[i]=a[i-1]+a[i];

for(i=1;i<10;i++)

{ printf(“%3d”,b[i]);

if(i%3 == 0) printf(“\n”);

}

}

2.下面程序的功能是求出矩阵x的右上三角元素之积。其中矩阵x的行、列数和元素值均

由键盘输入。请填空。

#define M 10

main( )

{ int x[M][M];

int n,i,j;

long s=1;

printf(“Enter a integer(<=10):\n”);

scanf(“%d”,&n);

printf(“Enter %d data on each line for the array x\n”,n);

for( i=0;i

for(j=0;j

scanf(“%d”,&x[i][j]);

for(i=0;i

for( j=i ;j

s*=x[i][j];

printf(“\n%ld\n”,s);

}

五、编程题:

1.利用顺序查找法从数组a的10个元素中对关键字m进行查找。要求从键盘输入数组元

素以及要查找的数据值。(顺序查找法的思路是:从第一个元素开始,从前向后依次与关键字比较,直到找到此元素或查找到数组尾部时结束。若找到,则查找成功;若直至最后一个元素都不相等,则查找失败。)

相关文档
最新文档