一、选择题1. 以下对一维整型数组a的正确说明是。
A.int a(10); B.int n=10, a[n];C.int n;scanf(“%d”,&n);int a[n]; D.#define SIZE 10 int a[SIZE]2. 若有说明:int a[10]; ,则对a数组元素的正确引用是。
A.a[10] B.a[3.5] C.a(5) D.a[10-10]4. 以下对二维数组a的正确说明是。
A.int a[3][ ]; B.float a(3,4);C.double a[ ][4]; D.float a(3)(4);5. 若有说明:int a[3][4]; 则对a数组元素的正确引用是。
A.a[3][4] B.a[1, 3] C.a[1+1][0] D.a(2)(1)6. 以下能对二维数组a进行正确初始化的语句是。
A.int a[2][ ]={{1, 0, 1}, {5, 2, 3}};B.int a[ ][3]={{1,2,3},{4,5,6}};C.int a[2][4]={{1,2,3},{4,5},{6}};D.int a[ ][3]={{1,0,1,0},{ },{1,1}};7. 下面程序段(每行代码前面的数字表示行号)。
1 int a[3]={3*0};2 int i3 for(i=0; i<3; i++) scanf(“%d”,&a[i]);4 for(i=1; i<3; i++) a[0]=a[0]+a[i];5 printf(“%d\n”,a[0]);A.第1行有错误B.第5行有错误C.第3行有错误D.没有错误8. 若有定义float x[4]={1.3, 2.4, 5.6},y=6; 则错误的语句是。
A.y=x[3]; B.y=x+1; C.y=x[2]+1 D.x[0]=y;9. 定义如下变量和数组:int k;int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是。
for(k=0; k<3; k++) printf(“%d”,a[k][2-k]);A.3 5 7 B.3 6 9 C.1 5 9 D.1 4 711. 下面是对数组s的初始化,其中错误的语句是。
A.char s[5]={“abc”}; B.char s[5]={‘a’, ‘b’, ‘c’}; C.char s[5]= “”; D.char s[5]= “abcde”;12. 下面程序段的运行结果是。
(□表示1个空格)char c[5]={'a','b','\0','c','\0'};printf("%s",c);A.'a''b' B.ab C.ab□c D.ab□13. 有两个字符数组a、b,则以下正确的输入格式是。
A.gets(a,b); B.scanf(“%s%s”,a,b);C.scanf(“%s%s”,&a,&b); D.gets(“a”),gets(“b”);14. 有字符数组a[80]和b[80],则正确的输出形式是。
A.puts(a,b); B.printf(“%s%s”,a[ ],b[ ]); C.putchar(a,b); D.puts(a); puts(b);15. 有下面的程序段,则。
char a[3],b[ ]="China";a=b;printf("%s",a);A.运行后将输出China B.运行后将输出Ch C.运行后将输出Chi D.编译出错18. 下面程序的运行结果是。
#include<stdio.h>int main(){char ch[7]={"12ab56"};int i,s=0;for(i=0;ch[i]>='0' && ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);return 0;}A.1 B.1256 C.12ab56 D.15 20. 下面程序的运行结果是。
#include<stdio.h>int main(){ char a[]="morning",t; int i,j=0;for(i=1;i<7;i++)if(a[j]<a[i]) j=i;t=a[j]; a[j]=a[7]; a[7]=t;puts(a);return 0;}A.mogninr B.mo C.morning D.mornin 答案:1. D2. D3. B4. C5. C6. B7. C8. B9. A 10. C11. D12. B 13. B 14. D 15. D 16. A 17. A 18. A 19. D 20. B二、填空题1. 若有定义float a[3][5];则a数组所含数组元素个数是,a数组所占的字节数是。
2. 若有定义:double x[3][5]; ,则x数组中行下标的下限为,列下表的上限为。
3. 假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是。
4. 若有定义:int a[3][4]={{1,2}, {0}, {4,6,8,10}}; 则初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。
5. 下面程序给a数组输入数据并以每行4个数据的形式输出。
请填空。
#include<stdio.h>#define N 20int main(){int a[N],i;for(i=0;i<N;i++) ;for(i=0;i<N;i++){if( )printf("%5d",a[i]);}printf("\n");return 0;}6. 下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。
#include<stdio.h>int main(){ int a[2][3]={{1,2,3},{4,5,6}};int b[3][2],i,j;printf("array a:\n");for(i=0;i<=1;i++){for(j=0; ;j++){printf("%5d",a[i][j]);;}printf("\n");}printf("array b:\n");for(i=0; ;i++){ for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}return 0;}7. 下面程序段的运行结果是。
int x[5], i;x[0]=1; x[1]=2;for(i=2;i<5;i++) x[i]=x[i-1]+x[i-2];for(i=2;i<5;i++) printf("%d",x[i]);8. 下面程序的运行结果是。
#include<stdio.h>int main(){ int a[5][5],i,j,n=1;for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=n++;printf("The result is:\n");for(i=0;i<5;i++){ for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");}return 0;}10. 下面程序的运行结果是。
#include<stdio.h>int main(){ int a[10]={7,3,5,2,9,1,0,6,8,4},i=0,j=9,t; while(i<j){t=a[i]; a[i]=a[j]; a[j]=t;i+=2; j-=2;}for(i=0;i<10;i+=2) printf("%d",a[i]);return 0;}12. 下面程序的功能是检查一个二维数组是否对称(即对所有i、j都有a[i][j]=a[j][i])。
请填空。
#include<stdio.h>int main(){int a[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};int i,j,found=0;for(j=0;j<4;j++)for( ; i<4; i++)if(a[j][i]!=a[i][j]){ ; break;}if(found==1) printf("No\n");else printf("Yes\n");return 0;}13. 设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。
请填空。
#include<stdio.h>int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};int k,s,i;float ave;for(k=s=i=0; i<10; i++){if(a[i]%2!=0) ;s+= ;k++;}if(k!=0){ave=s/k; printf("%d,%f\n",k,ave);}return 0;}14. 以下程序是将矩阵a、b的和存入矩阵c中并按矩阵形式输出。
请填空。
#include<stdio.h>int main(){int a[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};int b[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};int i,j,c[3][4];for(i=0;i<3;i++){for(j=0;j<4;j++){c[i][j]= ;printf("%3d",c[i][j]);};}return 0;}15. 以下程序段的功能是求数组num中小于零的数据之和。
请填空。
intnum[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90, -45,20};int sum=0,i;for(i=0;i<=19;i++)if( ) sum= ;printf("sum=%6d",sum);16. 以下程序段的功能是,运行后输出结果是。