无忧首页企业系统我的无忧
无忧服务:
兼职活动培训
娱乐交友:
交友社区资讯
全职实习:
实习暑假寒假
微信号:school51
扫一下,立即关注
加关注
在线支付,立省10元
下载新版APP
===大学生成长生活平台===

2011年计算机等级二级C语言章节习题及答案(6)

2012-12-26来源/作者:卫凯点击次数:477

第7章 数组

一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)
7.1 若有说明 int a[3][4];则a数组元素的非法引用是
A)a[0][2*1]
B)a[1][3]
C)a[4-2][0]
D)a[0][4]
正确答案:D

7.2 在C语言中,引用数组元素时,其数组下标的数据类型允许是
A)整型常量
B)整型表达式
C)整型常量或整型表达式
D)任何类型的表达式
正确答案:C

7.3 执行下面的程序段后,变量k中的值为
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值
B)33
C)30
D)10
正确答案:A

7.4 定义如下变量和数组:
int k;
int a[3][3]={9,8,7,6,5,4,3,2,1};
则下面语句的输出结果是
for(k=0;k<3;k++)printf("%d",a[k][k]);
A)7 5 3
B)9 5 1
C)9 6 3
D)7 4 1
正确答案:B

7.5 下列程序执行后的输出结果是
main()
{ char arr[2][4];
strcpy(arr,"you");
strcpy(arr[1],"me");
arr[0][3]=′&′;
printf("%s\n",arr);
}
A)you&me
B)you
C)me
D)err
正确答案:A

7.6 设有数组定义: char array[]="China"; 则数组 array所占的空间为
A)4个字节
B)5个字节
C)6个字节
D)7个字节
正确答案:C

7.7 以下不正确的定义语句是
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 c1[]={′1′,′2′,′3′,′4′,′5′};
D)char c2[]={′\x10′,′\xa′,′\x8′};
正确答案:B

7.8 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是
A)2
B)3
C)4
D)无确定值
正确答案:B

7.9 对以下说明语句的正确理解是
int a[10]={6,7,8,9,10};
A)将5个初值依次赋给a[1]至a[5]
B)将5个初值依次赋给a[0]至a[4]
C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确
正确答案:B

7.10 若有说明:int a[][4]={0,0};则下面不正确的叙述是
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小
D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
正确答案:D

7.11 有以下程序
main()
{ char a[]={ ′a′, ′b′, ′c′,′d′, ′e′, ′f′, ′g′,′h′,′\0′};
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\b",i,j);
}
程序运行后的输出结果是
A)9,9
B)8,9
C)1,8
D)9,8
正确答案:D

7.12 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是
A)3
B)6
C)10
D)20
正确答案:D

7.13 以下能对二维数组c进行正确的初始化的语句是
A)int c[3][]={{3},{3},{4}};
B)int c[][3]={{3},{3},{4}};
C)int c[3][2]={{3},{3},{4},{5}};
D)int c[][3]={{3},{},{3}};
正确答案:B

7.14 在C语言中,一维数组的定义方法为
类型说明符 数组名
A)[常量表达式]
B)[整型常量]
C)[整型变量]
D)[整型常量]或[整型表达式]
正确答案:A

7.15 若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为 (假设a[0][0]位于数组的第一个位置上)
A)i*m+j
B)j*m+I
C)i*m+j-1
D)i*m+j+1
正确答案:A

7.16 下面程序输出的结果是
main()
{ int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d ",a[2-i][i]);
}
A)1 5 9
B)7 5 3
C)3 5 7
D)5 9 1
正确答案:B

7.17 以下不能对二维数组a进行正确初始化的语句是
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};
正确答案:C

7.18 阅读下面程序,则程序段的功能是
#include "stdio.h"
main()
{ int c[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i<7;i++)
{ t=c[i];j=i-1;
while(j>=0 && t>c[j])
{c[j+1]=c[j];j--;}
c[j+1]=t;
}
for(i=0;i<7;i++)
printf("%d ",c[i]);
putchar(′\n′);
}
A)对数组元素的升序排列
B)对数组元素的降序排列
C)对数组元素的倒序排列
D)对数组元素的随机排列
正确答案:B

7.19 下列选项中错误的说明语句是
A)char a[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B)char a[]={"toyou\0"};
C)char a[]="toyou\0";
D)char a[]=′toyou\0′;
正确答案:D

7.20 下述对C语言字符数组的描述中错误的是
A)字符数组的下标从0开始
B)字符数组中的字符串可以进行整体输入/输出
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)字符数组可以存放字符串
正确答案:C

7.21 阅读下列程序,则在执行后,程序的运行结果为
#include "stdio.h"
#include "string.h"
main()
{ char a[30]="nice to meet you!";
strcpy(a+strlen(a)/2,"you");
printf("%s\n",a);
}
A)nice to meet you you
B)nice to
C)meet you you
D)nice to you
正确答案:D

7.22 现有如下程序段
#include "stdio.h"
main()
{ int k[30]={12,324,45,6,768,98,21,34,453,456};
int count=0,i=0;
while(k[i])
{ if(k[i]%2==0‖k[i]%5==0)
count++;
i++;
}
printf("%d,%d\n",count,i);
}
则程序段的输出结果为
A)7,8
B)8,8
C)7,10
D)8,10
正确答案:D

7.23 有如下定义语句:int aa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为
A)3,2
B)3,1
C)2,2
D)2,1
正确答案:C

7.24 现在有如下程序
#include "stdio.h"
main()
{ char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!=′\0′;i++)
if(s[i]!=′H′______)
s[j]=′\0′;
puts(s);
}
这个程序段的功能是删除输入的字符串中字符′H′,则空线上应当添入的是
A)s[j++]=s[i];j++;
B)s[j]=s[i++];j++;
C)s[j++]=s[i];
D)s[j]=s[i];
正确答案:C

7.25 以下二维数组c的定义形式是
A)int c[3][]
B)float c[3,4]
C)double c[3][4]
D)float c(3)(4)
正确答案:C

7.26 已知:int c[3][4];则对数组元素引用正确的是
A)c[1][4]
B)c[1.5][0]
C)c[1+0][0]
D)以上表达都错误
正确答案:C

7.27 若有以下语句,则正确的描述是
char a[]="toyou";
char b[]={′t′,′o′,′y′,′o′,′u′};
A)a数组和b数组的长度相同
B)a数组长度小于b数组长度
C)a数组长度大于b数组长度
D)a数组等价于b数组
正确答案:C

7.28 已知:char a[15],b[15]={"I love china"};则在程序中能将字符串I love china赋给数组a的正确语句是
A)a="I love china";
B)strcpy(b,a);
C)a=b;
D)strcpy(a,b);
正确答案:D

7.29 已知:char a[20]= "abc",b[20]= "defghi";则执行下列语句后的输出结果为
printf("%d",strlen(strcpy(a,b)));
A)11
B)6
C)5
D)以上答案都不正确
正确答案:B

7.30 阅读如下程序段,则程序在先后输入love和china后,输出结果是
#include
#include
main()
{ char a[30],b[30];
int k;
gets(a);
gets(b);
k=strcmp(a,b);
if(k>0) puts(a);
else if(k<0) puts(b);
}
A)love
B)china
C)lovechina
D)没有输出结果
正确答案:A

二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)
7.31 下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{ int k, p,s[]={1, -9, 7, 2, -10, 3};
for(p =0, k =p; p< 6; p++)
if(s[p]>s[k])【1】
printf("%d\n", k);
}
正确答案:k=p;

7.32 以下程序可把输入的十进制数以十六进制数的形式输出,请填空。
main()
{ char b[17]={"0123456789ABCDEF"};
int c[64],d,i=0,base=16;
long n;
printf("Enter a number:\n");scanf("%ld",&n);
do
{ c[i]=【2】;
i++;
n=n/base;
}while(n!=0);
printf("Transmite new base:\n");
for(--i;i>=0;--i)
{ d=c[i];
printf("%c",b【3】);
}
printf("\n");
}
正确答案: nºse [d]

7.33 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
删除后,数组中的内容应该是:
2 3 4 5 6 7 8 9 10。
请填空。
#include
#define N 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;iif(a[j-1]【4】a[i])
a[j++]=a[i];
【5】;
}
main()
{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;
printf("The original data :\n");
for(i=0; iprintf("=",a[i]);
n=fun(a,n);
printf("\nThe data after deleted :\n");
for(i=0; iprintf("=",a[i]);
printf("\n\n");
}
正确答案: != return j

7.34 下列程序的输出的结果是 【6】 , 【7】 。
main()
{ int i,j row,colum,m;
static int array[3][3]={{100,200,300},{28,72,-30}{-850,2,6}};
m=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(array[i][j]<m)
{ m=array[i][j];
colum=j;
row=i;
}
printf("%d,%d,%d\n",m,row,colum);
}
正确答案:-850,~2,0

7.35 下面程序是求出数组arr的两条对角线上元素之和,请填空。
#include "stdio.h"
main()
{ int arr[3][3]={2,3,4,8,3,2,7,9,8},a=0,b=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if( 【8】)
a=a+arr[i][j];
for(i=0;i<3;i++)
for( 【9】 ;j>=0;j--)
if( 【10】)
b=b+ arr[i][j];
printf("%d,%d\n",a,b);
}
正确答案:i==j j=2 i+j==2

编辑特别推荐:

2010年计算机等级考试二级C语言上机改错题考点总结

2010年计算机等级考试二级考试C语言考生经验分享

2010年计算机等级考试二级C语言题型分析与应试技巧

2010年计算机等考二级C语言学习常见的18种错误

2010年计算机等级考试二级C语言上机考试题型总结

全国计算机等级考试二级C上机考试必读





相关阅读



关于我们 | 联系我们 | 用户指南 | 网站地图 | 意见建议 | 会员注册 | 用户协议 | 隐私政策