内容正文:
编写说明:《计算机应用考纲百套卷》依据湖南省《计算机应用类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,共62份,第二部分是常考题训练卷,共18份,第三个部分是专业综合训练卷,参考历年计算机应用类专业真题试卷,编写了20份。
本试卷是《计算机应用考纲百套卷》的第51卷,知识点:①一维数组的定义;②一维数组的初始化及引用;③一维数组的应用;
湖南省《计算机应用考纲百套卷》
《计算机编程语言-C语言》
第51卷: 一维数组的定义及应用
知识点训练卷
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共20小题,每小题2分,共40分)
1.下列不能正确赋值的选项是( )
A.char *str1=“Gentlemen”;
B.char str2[ ]={‘L’,‘a’,‘d’,‘i’,‘e’,‘s’};
C.char str3[20];str3=“Gentlemen”;
D.char str4[20]=“Ladies”;
【答案】C
2.以下定义语句中,不正确的一项是( )
A.double a[5]={1.0,2.0,3.0,4.0,5.0};
B.int a[5]={0,1,2,3,4,5};
C.char c[ ]={‘1’,‘2’,‘3’,‘4’,‘5’};
D.char c[ ]={‘\x18’,‘\x3a’,‘\x18’};
【答案】B
3.设有定义:char a[ ]=“hunan”;,则数组a所占据的存储空间为( )个字节。
A.5 B.6 C.7 D.8
【答案】B
4.下列选项中,不能正确赋值的是( )
A.char a[ ]=“Hunan”;
B.char a[30]={“Hunan”};
C.char a[30];a=“Hunan”;
D.char a[30]={‘H’,‘u’,‘n’,‘a’,‘n’};
【答案】C
5.下列定义语句中,不正确的一项是( )
A.int a[5]={1}; B.int c[ ]={1,1,2,2,3,3};
C.int b[2+2]; D.int i=8,a[i];
【答案】D
6.在C语言中,引用数组元素时,其数组下标的数据类型允许是( )
A.整型常量 B.整型表达式
C.整型常量或整型表达式 D.任何类型的表达式
【答案】C
7.下列选项中,对一维整型数组a定义正确的语句是( )
A. int n;scanf(“%d”,&n);int a[n]; B.int n=12,a[n];
C. #define SIZE 10 D. int a(10);
int a[SIZE];
【答案】C
8.设有定义:int k[5];,则对k数组元素的正确引用的是( )
A.k[5] B.k[2.5] C.k(5) D.k[1+2]
【答案】D
9.下列数组定义语句中,不正确的一项是( )
A.char a[1]=’a’; B.auto char a[1]={0};
C.static char a[1]; D.char a[1];
【答案】D
10.下列选项中,叙述不正确的一项是( )
A.对于double类型的数组,不可以直接用数组名对数组整体输入或输出
B.可以通过赋初值的方式确定数组元素的个数
C.数组名代表的是数组所占存储区的首地址,其值不可改变
D.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
【答案】D
11.在Microsoft Visual C++ 2010中,设有定义:int x[10]={0,2,4};,则数组x在内存中所占的字节数为( )
A.3 B.10 C.12 D.40
【答案】D
12.设有定义:int a[8],则下列表达式中不能代表数组元素a[1]地址的是( )
A.&a[0]+1 B.&a[1] C.&a[0]++ D.a+1
【答案】C
13.下列关于C语言中数组的描述正确的一项是( )
A.数组的大小是固定的,但可以有不同类型的数组元素
B.数组的大小是固定的,所有数组元素的类型必须相同
C.数组的大小是可变的,但所有数组元素的类型必须相同
D.数组的大小是可变的,可以有不同类型的数组元素
【答案】B
14.设有定义:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;,则a数组元素值为4的表达式是( )
A.a[g-c] B.a[4] C.a[‘d’-‘c’] D.a[‘d’-c]
【答案】D
15.设有定义:float a[5]={1,2,3};,则下列描述正确的是( )
A.a并不代表数组的元素
B.定义此数组时不指定数组的长度,定义效果相同
C.数组含有3个元素
D.a[3]的值为3
【答案】A
16.设有定义:int cx[10];int *bin;bin=cx;,则下列对数组cx正确引用的是( )
A.bin+1; B.*(bin+3); C.**(bin+1)+3; D.*(*bin+2);
【答案】B
17.执行以下程序段的输出结果是( )
main()
{float a[3]={1.0,2.0,3.0};
printf("%d",sizeof(a));getch();}
A.3 B.8 C.12 D.24
【答案】C
18.执行以下程序段的输出结果是( )
main()
{int a[3]={1,2,3},i;
for(i=1;i<3;i++)
a[0]=a[0]+a[i];
printf("%d",a[0]);getch();}
A.1 B.2 C.5 D.6
【答案】D
19.设有定义:double x[10],*p=x;,如下能给数组x下标为6的元素读入数据的正确语句是( )
A.scanf("%f",&x[6]); B.scanf("%lf",*(x+6));
C.scanf("%lf",p+6); D.scanf("%lf",p[6]);
【答案】C
20. 如下函数的功效是:通过键盘输入数据,为数组中的所有元素赋值。在程序中下划线处应填入的是( )
#include <stdio.h>
#define N 10
void fun(int x[N])
{ int i=0;
while(i<N) scanf(“%d”,_______);}
A.x+i B.&x[i+1] C.x+(i++) D.&x[++i]
【答案】C
二、程序运行结果题(本题共6题,每题4分,共24分)
21. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
int main()
{int a[ ]={118,65,128};int i;
for(i=0;i<3;i++)
printf("%c",(a[i])&(a[i]-1)?'N':'Y');getch();}
【答案】NNY
22. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
main()
{int n=132,i=1,j,k,b[10];
while(n!=0)
{j=n%6;b[i]=j;
n=n/6;
i++;}
for(k=i-1;k>0;k--)
printf("%d",b[k]);
getch();}
【答案】340
23. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
main()
{int i,n[4]={1};
for(i=1;i<=3;i++)
{ n[i]=n[i-1]*2+1;
printf("%d",n[i]); }getch();}
【答案】3715
24. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
main( )
{int i, n[ ]={0,0,0,0,0};
for ( i=1; i<=2; i++ )
{n[i]=n[i-1]*3 + 1;
printf("%d",n[i]);}
printf("
");
printf("
");getch();}
【答案】14
25. 下列程序的运行结果是 (运行程序时从键盘输入ABCACC<回车>)
#include<stdio.h>
#include<conio.h>
main( )
{int c[3]={0}, k, i;
while ( (k=getchar() )!='
')
c[k-'A']++;
for (i=0; i<3; i++) printf("%d",c[i]); printf("
");
getch();}
【答案】213
26. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
main( )
{int n[2], i, j;
for ( i=0; i<2; i++ ) n[i]=0;
for ( i=0; i<2; i++ )
for ( j=0; j<2; j++ ) n[j]=n[i]+1;
printf("%d
",n[1]);
getch();}
【答案】3
三、程序填空题(本题共2题,每空4分,共24分)
27.下列程序的功能是:从键盘输入10个整数,输出这10个数中仅仅只出现1次的数。设输入:12 36 72 36 87 99 87 87 12 35,则输出:72 99 35。请填空。
#include<stdio.h>
#include<conio.h>
main()
{int a[10],i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
if(【1】&&a[i]==a[j])【2】;
if(【3】)
printf("%d ",a[i]);}
getch();}
【答案】①i!=j ②break ③j>=10
28.下列程序的功能是:从键盘输入M个整数,去掉其中最大的2个数和最小的2个数,求剩余数据的平均值。请填空。
#include<stdio.h>
#include<conio.h>
#define M 10
main()
{int a[M],sum=0,i,j,t;
for(i=0;i<M;i++)
scanf("%d",&a[i]);
for(i=0;i<M-1;i++)
for(j=0;j<【1】;j++)
if(【2】)
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<M;i++)
printf("%d ",a[i]);
for(i=2;i<M-2;i++)
sum+=a[i];
printf("
平均值为:%.1f
",【3】);
getch();}
【答案】①M-i-1 ②a[j]>a[j+1] ③(float)sum/(M-4)
四、程序改错题(本题共1题,每空4分,共12分)
29.下列程序的功能是:使用冒泡排序法求出由11个整数组成的中间值,并输出所有大于中间值的偶数。程序中有三处错误,请改正。
L1 #include<stdio.h>
L2 #include<conio.h>
L3 #define M 10
L4 main()
L5 {
L6 int i,j,temp,arry[11];
L7 for(i=0;i<11;i++)
L8 scanf("%d",&arry[i]);
L9 for(i=0;i<11;i++)
L10 for(j=0;j<10;j++)
L11 if(arry[j]>arry[j+1])
L12 {temp=arry[j];
L13 arry[j]=arry[j];
L14 arry[j+1]=temp;}
L15 printf("中间值%d
",arry[5]);
L16 for(i=0;i<5;i++)
L17 if(arry[i]%2!=0)
L18 printf("%d ",arry[i]);
L19 getch();}
【答案】
①L11 if(arry[j]<arry[j+1])
②L13 arry[j]=arry[j+1];
③L17 if(arry[i]%2==0)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:《计算机应用考纲百套卷》依据湖南省《计算机应用类专业知识考试标准》编写,本套试卷共100份,分为三个部分,第一部分是知识点训练卷,共62份,第二部分是常考题训练卷,共18份,第三个部分是专业综合训练卷,参考历年计算机应用类专业真题试卷,编写了20份。
本试卷是《计算机应用考纲百套卷》的第51卷,知识点:①一维数组的定义;②一维数组的初始化及引用;③一维数组的应用;
湖南省《计算机应用考纲百套卷》
《计算机编程语言-C语言》
第51卷: 一维数组的定义及应用
知识点训练卷
时间:45分钟 总分:100分
班级___________ 姓名__________ 学号__________ 成绩________
一、选择题(共20小题,每小题2分,共40分)
1.下列不能正确赋值的选项是( )
A.char *str1=“Gentlemen”;
B.char str2[ ]={‘L’,‘a’,‘d’,‘i’,‘e’,‘s’};
C.char str3[20];str3=“Gentlemen”;
D.char str4[20]=“Ladies”;
2.以下定义语句中,不正确的一项是( )
A.double a[5]={1.0,2.0,3.0,4.0,5.0};
B.int a[5]={0,1,2,3,4,5};
C.char c[ ]={‘1’,‘2’,‘3’,‘4’,‘5’};
D.char c[ ]={‘\x18’,‘\x3a’,‘\x18’};
3.设有定义:char a[ ]=“hunan”;,则数组a所占据的存储空间为( )个字节。
A.5 B.6 C.7 D.8
4.下列选项中,不能正确赋值的是( )
A.char a[ ]=“Hunan”;
B.char a[30]={“Hunan”};
C.char a[30];a=“Hunan”;
D.char a[30]={‘H’,‘u’,‘n’,‘a’,‘n’};
5.下列定义语句中,不正确的一项是( )
A.int a[5]={1}; B.int c[ ]={1,1,2,2,3,3};
C.int b[2+2]; D.int i=8,a[i];
6.在C语言中,引用数组元素时,其数组下标的数据类型允许是( )
A.整型常量 B.整型表达式
C.整型常量或整型表达式 D.任何类型的表达式
7.下列选项中,对一维整型数组a定义正确的语句是( )
A. int n;scanf(“%d”,&n);int a[n]; B.int n=12,a[n];
C. #define SIZE 10 D. int a(10);
int a[SIZE];
8.设有定义:int k[5];,则对k数组元素的正确引用的是( )
A.k[5] B.k[2.5] C.k(5) D.k[1+2]
9.下列数组定义语句中,不正确的一项是( )
A.char a[1]=’a’; B.auto char a[1]={0};
C.static char a[1]; D.char a[1];
10.下列选项中,叙述不正确的一项是( )
A.对于double类型的数组,不可以直接用数组名对数组整体输入或输出
B.可以通过赋初值的方式确定数组元素的个数
C.数组名代表的是数组所占存储区的首地址,其值不可改变
D.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
11.在Microsoft Visual C++ 2010中,设有定义:int x[10]={0,2,4};,则数组x在内存中所占的字节数为( )
A.3 B.10 C.12 D.40
12.设有定义:int a[8],则下列表达式中不能代表数组元素a[1]地址的是( )
A.&a[0]+1 B.&a[1] C.&a[0]++ D.a+1
13.下列关于C语言中数组的描述正确的一项是( )
A.数组的大小是固定的,但可以有不同类型的数组元素
B.数组的大小是固定的,所有数组元素的类型必须相同
C.数组的大小是可变的,但所有数组元素的类型必须相同
D.数组的大小是可变的,可以有不同类型的数组元素
14.设有定义:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;,则a数组元素值为4的表达式是( )
A.a[g-c] B.a[4] C.a[‘d’-‘c’] D.a[‘d’-c]
15.设有定义:float a[5]={1,2,3};,则下列描述正确的是( )
A.a并不代表数组的元素
B.定义此数组时不指定数组的长度,定义效果相同
C.数组含有3个元素
D.a[3]的值为3
16.设有定义:int cx[10];int *bin;bin=cx;,则下列对数组cx正确引用的是( )
A.bin+1; B.*(bin+3); C.**(bin+1)+3; D.*(*bin+2);
17.执行以下程序段的输出结果是( )
main()
{float a[3]={1.0,2.0,3.0};
printf("%d",sizeof(a));getch();}
A.3 B.8 C.12 D.24
18.执行以下程序段的输出结果是( )
main()
{int a[3]={1,2,3},i;
for(i=1;i<3;i++)
a[0]=a[0]+a[i];
printf("%d",a[0]);getch();}
A.1 B.2 C.5 D.6
19.设有定义:double x[10],*p=x;,如下能给数组x下标为6的元素读入数据的正确语句是( )
A.scanf("%f",&x[6]); B.scanf("%lf",*(x+6));
C.scanf("%lf",p+6); D.scanf("%lf",p[6]);
20. 如下函数的功效是:通过键盘输入数据,为数组中的所有元素赋值。在程序中下划线处应填入的是( )
#include <stdio.h>
#define N 10
void fun(int x[N])
{ int i=0;
while(i<N) scanf(“%d”,_______);}
A.x+i B.&x[i+1] C.x+(i++) D.&x[++i]
二、程序运行结果题(本题共6题,每题4分,共24分)
21. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
int main()
{int a[ ]={118,65,128};int i;
for(i=0;i<3;i++)
printf("%c",(a[i])&(a[i]-1)?'N':'Y');getch();}
22. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
main()
{int n=132,i=1,j,k,b[10];
while(n!=0)
{j=n%6;b[i]=j;
n=n/6;
i++;}
for(k=i-1;k>0;k--)
printf("%d",b[k]);
getch();}
23. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
main()
{int i,n[4]={1};
for(i=1;i<=3;i++)
{ n[i]=n[i-1]*2+1;
printf("%d",n[i]); }getch();}
24. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
main( )
{int i, n[ ]={0,0,0,0,0};
for ( i=1; i<=2; i++ )
{n[i]=n[i-1]*3 + 1;
printf("%d",n[i]);}
printf("
");
printf("
");getch();}
25. 下列程序的运行结果是 (运行程序时从键盘输入ABCACC<回车>)
#include<stdio.h>
#include<conio.h>
main( )
{int c[3]={0}, k, i;
while ( (k=getchar() )!='
')
c[k-'A']++;
for (i=0; i<3; i++) printf("%d",c[i]); printf("
");
getch();}
26. 下列程序的运行结果是
#include<stdio.h>
#include<conio.h>
main( )
{int n[2], i, j;
for ( i=0; i<2; i++ ) n[i]=0;
for ( i=0; i<2; i++ )
for ( j=0; j<2; j++ ) n[j]=n[i]+1;
printf("%d
",n[1]);
getch();}
三、程序填空题(本题共2题,每空4分,共24分)
27.下列程序的功能是:从键盘输入10个整数,输出这10个数中仅仅只出现1次的数。设输入:12 36 72 36 87 99 87 87 12 35,则输出:72 99 35。请填空。
#include<stdio.h>
#include<conio.h>
main()
{int a[10],i,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
if(【1】&&a[i]==a[j])【2】;
if(【3】)
printf("%d ",a[i]);}
getch();}
28.下列程序的功能是:从键盘输入M个整数,去掉其中最大的2个数和最小的2个数,求剩余数据的平均值。请填空。
#include<stdio.h>
#include<conio.h>
#define M 10
main()
{int a[M],sum=0,i,j,t;
for(i=0;i<M;i++)
scanf("%d",&a[i]);
for(i=0;i<M-1;i++)
for(j=0;j<【1】;j++)
if(【2】)
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<M;i++)
printf("%d ",a[i]);
for(i=2;i<M-2;i++)
sum+=a[i];
printf("
平均值为:%.1f
",【3】);
getch();}
四、程序改错题(本题共1题,每空4分,共12分)
29.下列程序的功能是:使用冒泡排序法求出由11个整数组成的中间值,并输出所有大于中间值的偶数。程序中有三处错误,请改正。
L1 #include<stdio.h>
L2 #include<conio.h>
L3 #define M 10
L4 main()
L5 {
L6 int i,j,temp,arry[11];
L7 for(i=0;i<11;i++)
L8 scanf("%d",&arry[i]);
L9 for(i=0;i<11;i++)
L10 for(j=0;j<10;j++)
L11 if(arry[j]>arry[j+1])
L12 {temp=arry[j];
L13 arry[j]=arry[j];
L14 arry[j+1]=temp;}
L15 printf("中间值%d
",arry[5]);
L16 for(i=0;i<5;i++)
L17 if(arry[i]%2!=0)
L18 printf("%d ",arry[i]);
L19 getch();}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$