C语言复习题数组

更新时间:2024-03-20 17:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言复习题_数组

一、填空

1、若定义char a[ ] = \则strlen(a)的值为 6 , sizeof(a)的值为 7 。 2、若定义char a[ ] = \则strlen(a)的值为 7 , sizeof(a)的值为 8 。

二、选择

1、设有数组定义:char array [ ]=\; 则数组 array所占的空间为(C)。

A、4个字节 B、5个字节 C、6个字节 D、7个字节 2、为了判断两个字符串s1和s2是否相等,应当使用(D)。

A、 if (s1= =s2) B、 if (s1=s2)

C、 if(strcpy(s1,s2)) D、 if (strcmp(sl,s2)==0) 3、下列描述中,合法的数组定义是 (D)。

A、int a[ ]={\ B、int a[5]={0,1,2,3,4,5}; C、char a={\ D、char a[ ]={0,1,2,3,4,5}; 4、若有定义int a[10]; ,则对数组a的引用正确的是(D)。

A、a[10] B、a[6、3] C、a(6) D、a[10-10] 5、以下对一维数组a的定义中正确的是(C)。 A、char a(10); B、int a[0、、100]; C、int a[5]; D、int k=10; int a[k]; 6、以下对一维数组的定义中不正确的是(B)。

A、 double x[5]={2、0,4、0,6、0,8、0,10、0}; B、 int y[5]={0,1,3,5,7,9};

C、 char ch1[ ]={'1', '2', '3', '4', '5'}; D、 char ch2[ ]={'\\x10', '\\xa', '\\x8'};

7、假定一个int型变量占用四个字节,若有定义:int x[10]={0,2,4}; 则数组x在内存中所占字节数是(D)。

A、 3 B、 6 C、 10 D、 40 8、若定义一个名为s且初值为\的字符数组,则下列定义错误的是(C)。 A、char s[ ]={’1','2','3','\\0 '}; B、char s[ ]={\

C、char s[ ]={\ D、char s[4]={'1','2','3'};

三、判断

1、int a[3]定义了一个整型数组, 它的3个元素是a[0], a[1]和a[2]。T 2、int a[3]定义了一个整型数组, 它的3个元素是a[1], a[2]和a[3]。F

3、在用字符数组来处理字符串时,应始终保证数组的长度大于字符串的实际长度。T 4、可以在定义数组时只给一部分数组元素赋值。T

5、对数组元素赋予的初值可以依次放在一对圆括号内。F

四、写出以下程序的运行结果 1、#include int main() { char s[9]=\ int v[4]={0,0,0,0},k,i; for(k=0;k<9;k++)

}

{ switch(s[k]) { case '1':i=0;break; case '2':i=1;break; case '3':i=2;break; case '4':i=3;break; } v[i]++; }

for(k=0;k<4;k++) printf(\return 0;

答:5 2 1 1

2、#include int main() { int i, j,n=1,a[12]; for (i=0;i<12;i++) { a[i]=n; n++; } n=0; for (i=0;i<3;i++) { for (j=1;j<=4;j++) { printf(\ n++; } printf(\ } return 0; } 答:

3、#include int main()

{ int i,j,k,n[3]; for(i=0;i<3;i++) n[i]=0; k=2; for(i=0;i

答:3

五、程序填空

1、下列程序的功能是输入N个实数,然后依次输出前l个实数和、前2个实数和、…、前N个实数和。填写程序中缺少的语句。 #define N 10 int main()

{ float f[N],sum=0.0; int i; for(i=0;i

{ ① ;

printf(\ }

return 0; }

答:①处应填写:sum=sum+f[i-1];

六、程序设计

1、编写程序,从一整型数组a的第一个元素开始,每三个元素求和并将和值存入到另一数组中(最后一组可以不足3个元素),最后输出所求的所有和值且每行输出5个值。 参考代码:

#include #define N 20 #define M N/3+1 int main() { int a[N],i,j=0,b[M]={0}; for(i=0;i

if((i+1)%3==0) j++; } if(N%3==0) j--; for(i=0;i<=j;i++) { printf(\ if((i+1)%5==0) printf(\ } return 0; }

2、输入10个整型数存入一维数组,输出值和下标都为奇数的元素个数。 参考代码:

#include int main() { int a[10],i,num=0; printf(\ for(i=0;i<10;i++) scanf(\ for(i=0;i<10;i++) if(i%2==1&&a[i]%2==1) num++; printf(\ return 0; }

3、已知两个升序序列,将它们合并成一个升序序列并输出。 参考代码:

#include int main() { int a[4]={1,3,5,7}; int b[5]={2,4,6,8,10}; int c[20],i=0,j=0,k=0; while(i<4&&j<5) if(a[i]

}

printf(\printf(\return 0;

本文来源:https://www.bwwdw.com/article/dlo8.html

Top