资源描述
数组复习题一选择题1 若有以下定义语句:int a=1,2,3,4,5,6,7,8,9,10; 则值为5的表达式是:( ) a) a5 b) aa4 c) aa3 d) aa52 要求定义具有80个、char类型元素的一维数组,错误的定义语句是:( ) a) #define N 80 b) int N=80; char sN; char sN; c) #define N 40 d) char s40+40; char s2*N;3. 若有以下定义语句:int a10=1,2,3,4,5,6,7,8,9,10; 则对a数组元素正确的引用是:( ) a) a10 b) aa3-5 c) aa9 d) aa4+44. 若有以下定义语句: float a11=0,1,2,3,4,5,6,7,8,9,10; 则以下叙述中错误的是:( ) a) a数组在内存中占44个字节 b) a数组的最后一个元素为a10 c) a数组的第一个元素为a0 d) 以上定义语句给a数组所赋初值是整数,不能正确赋值5. 若有以下定义语句:double a5; int i=0; 能正确给a数组元素输入数据的语句是:( ) a) scanf(“%lf%lf%lf%lf%lf”,a); b) for(i=0;i=5;i+) scanf(“%lf”,a+i); c) while(i5) scanf(“%lf”,&ai+); d) while(i5) scanf(“%lf”,a+i);6. 以下关于数组的描述正确的是:( ) a) 数组的大小是固定的,但可以有不同数据类型的数组元素 b) 数组的大小是可变的,但所有数组元素的数据类型须相同c) 数组的大小是固定的,且所有数组元素的数据类型须相同d) 数组的大小是可变的,且可以有不同数据类型的数组元素7. 若有说明:int a10;,则对a数组元素引用不正确的是:( ) a) a5+5 b) a5.5 c) a10-10 d) a58. 执行int a 3=1,2,3,4,5,6,7;语句后,a10的值是:( ) a) 1 b) 3 c) 5 d) 49. 若有说明:int k 4=1,2,3,4,5,6,7,8,9,10,11;,则k数组的第一维长度是:( )a) 3 b) 2 c) 1 d) 无确定值10. 若有以下程序: void main() int k9=19,16,17,15,13,11,10,9, i=1,s=0; while(i9 & ki%3) s=s+ki+; printf(“%dn”,s);程序执行后的输出结果是:( )a) 33 b) 52 c) 101 d) 11011. 若有以下程序: void main() int m 3=1,3,2,4,5,7,6,8,9,10,11; int i,k=2; for(i=0;i3;i+) printf(“%d”,mki);程序执行后的输出结果是:( )a) 4 5 7 b) 2 7 9 c) 9 10 11 d) 6 8 912. 若有以下程序: void main() int a34=1,0,2,1,0,2,1,0,1,1,0,1; int i,j,sum=0; for(i=0;i=2;i+) for(j=0;j=i;j+) sum+=aij;程序执行后的输出结果是:( )a) 0 b) 4 c) 5 d) 3二填空题1以下是一个投标公司中标评分统计程序,数组r存有9个评委的打分,统计时,去掉其中的一个最高分和一个最低分,其他7个分数的平均分即是最后得分,请把程序补充完整:#include #include void main()float r9=8.9,7.6,9.1,8.5,8.6,8.3,9.0,8.4,8.7; float sum,ave,max,min; int i; clrscr(); _ 1_; for(i=0;i9;i+) sum+=_2_; max=min=r0; for(i=0;iri) min=ri; ave=_ 4_; printf(Average=%.2fn,ave);2. 以下程序的功能是从键盘上输入任意20个整数存放在a数组中,统计其中能被3或7整除的数的个数,并依次将这些数存入b数组中,请把程序补充完整。#include #include void main()int a20,b20; int i,j=0,n=0; clrscr(); for(i=0;i20;i+) scanf(%d,&ai); for(i=0;i20;i+) if(_ 1_ | ai%7=0) _2_=ai; n+; printf(Array b is:n); for(j=0;_3_;j+) printf(%5d,bj); printf(n); printf(n=%dn,n);3. 以下程序的功能是给一维数组a输入任意5个小于10的正整数,并输出经过5次逐位右移一位形成的方阵,请把程序补充完整。假设输入为:5 6 8 4 3,则输出的结果为: 3 5 6 8 4 4 3 5 6 8 8 4 3 5 6 6 8 4 3 5 5 6 8 4 3#include #include void main()int a5; int i,j,k,n; clrscr(); for(i=0;i5;i+) scanf(%d,&ai); for(n=1;n=0;j-) aj+1=aj; _2_; for(i=0;i5;i+) printf(%5d,ai); printf(n);
展开阅读全文