资源描述
精品文档
C语言复习题_数组
一、填空
1、若定义char a[ ] = "\3Love\3"; 则strlen(a)的值为 6 , sizeof(a)的值为 7 。
2、若定义char a[ ] = "Hello!\n"; 则strlen(a)的值为 7 , sizeof(a)的值为 8 。
二、选择
1、设有数组定义:char array [ ]="China"; 则数组 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[ ]={"String"}; B、int a[5]={0,1,2,3,4,5};
C、char a={"String"}; 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且初值为"123"的字符数组,则下列定义错误的是(C)。
A、char s[ ]={’1','2','3','\0 '}; B、char s[ ]={"123"};
C、char s[ ]={"123\n"}; 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 <stdio.h>
int main()
{
char s[9]="12134211";
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("%d ",v[k]);
return 0;
}
答:5 2 1 1
2、#include <stdio.h>
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("%-4d", a[n]);
n++;
}
printf("\n");
}
return 0;
}
答:
3、#include <stdio.h>
int main()
{
int i,j,k,n[3];
for(i=0;i<3;i++)
n[i]=0;
k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++)
n[j]=n[i]+1;
printf("%d\n",n[1]);
return 0;
}
答:3
五、程序填空
1、下列程序的功能是输入N个实数,然后依次输出前l个实数和、前2个实数和、…、前N个实数和。填写程序中缺少的语句。
#define N 10
int main()
{ float f[N],sum=0.0; int i;
for(i=0;i<N;i++)
scanf("%f",&f[i]);
for(i=1;i<=N;i++)
{ ① ;
printf("sum of NO %2d---------%f\n",i,x);
}
return 0;
}
答:①处应填写:sum=sum+f[i-1];
六、程序设计
1、编写程序,从一整型数组a的第一个元素开始,每三个元素求和并将和值存入到另一数组中(最后一组可以不足3个元素),最后输出所求的所有和值且每行输出5个值。
参考代码:
#include <stdio.h>
#define N 20
#define M N/3+1
int main()
{
int a[N],i,j=0,b[M]={0};
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
{
b[j]=b[j]+a[i];
if((i+1)%3==0) j++;
}
if(N%3==0) j--;
for(i=0;i<=j;i++)
{
printf("%d ",b[i]);
if((i+1)%5==0) printf("\n");
}
return 0;
}
2、输入10个整型数存入一维数组,输出值和下标都为奇数的元素个数。
参考代码:
#include <stdio.h>
int main()
{
int a[10],i,num=0;
printf("enter array a:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(i%2==1&&a[i]%2==1) num++;
夏日的街头,吊带装、露背装、一步裙、迷你裙五彩缤纷、争妍斗艳。爱美的女孩们不仅在服饰搭配上费尽心机,饰品的选择也十分讲究。可惜在商店里买的项链、手链、手机挂坠等往往样式平淡无奇,还容易出现雷同现象。 printf("num=%d\n",num);
return 0;
(一)大学生的消费购买能力分析}
世界上的每一个国家和民族都有自己的饰品文化,将这些饰品汇集到一起再进行新的组合,便可以无穷繁衍下去,满足每一个人不同的个性需求。
3、已知两个升序序列,将它们合并成一个升序序列并输出。
精明的商家不失时机地打出“自己的饰品自己做”、“DIY(Do It Yourself)饰品、真我个性”的广告,推出“自制饰品”服务,吸引了不少喜欢标新立异、走在潮流前端的年轻女孩,成为上海的时尚消费市场。其市场现状特点具体表现为:参考代码:
#include <stdio.h>
3、消费“多样化”int main()
300-400元 16 32%{
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]<b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];
while(i<4)
c[k++]=a[i++];
while(j<5)
因此不难看出,自制饰品在校园里也大有市场所在。对于那些走在流行前端的女生来说,〝捕捉〞新事物便〝捕捉〞到了时尚与个性。 c[k++]=b[j++];
for(i=0;i<k;i++)
综上所述,DIY手工艺品市场致所以受到认可、欢迎的原因就在于此。我们认为:这一市场的消费需求的容量是极大的,具有很大的发展潜力,我们的这一创业项目具有成功的前提。 printf("%5d",c[i]);
printf("\n");
return 0;
}
精品文档
展开阅读全文