1、二级C语言教程章节测试9二级C语言教程章节测试9.一维数组与指针(一) 一、选择题(1)有以下程序main() int a10=1,2,3,4,5,6,7,8,9,10, *p=&a3, *q=p+2; printf(%dn, *p + *q);程序运行后的输出结果是_。A)16B)10C)8D)6(2)有以下程序main() int a=2,4,6,8,10, y=0, x, *p; p=&a1; for(x= 1; x3; x+) y += px; printf(%dn,y);程序运行后的输出结果是_。A)10B)11C)14D)15 (3)有以下程序void sort(int a, in
2、t n) int i, j ,t; for (i=0; in-1; i+) for (j=i+1; jn; j+) if (aiaj) t=ai; ai=aj; aj=t; main() int aa10=1,2,3,4,5,6,7,8,9,10, i; sort(aa+2, 5); for (i=0; i10; i+) printf(%d,aai); printf(n);程序运行后的输出结果是_。A)1,2,3,4,5,6,7,8,9,10,B)1,2,7,6,3,4,5,8,9,10,C)1,2,7,6,5,4,3,8,9,10,D)1,2,9,8,7,6,5,4,3,10, (4)有以下
3、程序void sum(int a) a0 = a-1+a1; main() int a10=1,2,3,4,5,6,7,8,9,10; sum(&a2); printf(%dn, a2);程序运行后的输出结果是_。A)6B)7C)5D)8 (5)有以下程序void swap1(int c0, int c1) int t ; t=c00; c00=c10; c10=t;void swap2(int *c0, int *c1) int t; t=*c0; *c0=*c1; *c1=t;main() int a2=3,5, b2=3,5; swap1(a, a+1); swap2(&b0, &b1)
4、; printf(%d %d %d %dn,a0,a1,b0,b1);程序运行后的输出结果是_。A)3 5 5 3B)5 3 3 5C)3 5 3 5D)5 3 5 3(6)有以下程序main() int p8=11,12,13,14,15,16,17,18,i=0,j=0; while(i+7) if(pi%2) j+=pi; printf(%dn,j);程序运行后的输出结果是_。A)42 B)45 C)56 D)60(7)有以下程序void f(int *x,int *y) int t; t=*x;*x=*y;*y=t;main() int a8=1,2,3,4,5,6,7,8,i,*p,
5、*q; p=a;q=&a7; while(pq) f(p,q); p+; q-; for(i=0;i=n;i-) ai+1=ai;main() int i,aN=1,2,3,4,5,6,7,8,9,10; fun(a,2,9); for(i=0;i5;i+) printf(%d,ai);程序运行后的输出结果是_。A)10234 B)12344 C)12334 D)12234(10)有以下程序prt(int *m,int n) int i; for(i=0;in;i+) mi+;main() int a=1,2,3,4,5,i; prt(a,5); for(i=0;i5;i+) printf(%
6、d,ai);程序运行后的输出结果是_。A)1,2,3,4,5, B)2,3,4,5,6,C)3,4,5,6,7, D)2,3,4,5,1,(11)有以下程序main() int a=1,2,3,4,5,6,7,8,9,0,*p; for(p=a;pa+10;p+) printf(%d,*p);程序运行后的输出结果是_。A)1,2,3,4,5,6,7,8,9,0,B)2,3,4,5,6,7,8,9,10,1,C)0,1,2,3,4,5,6,7,8,9,D)1,1,1,1,1,1,1,1,1,1,(12) 有以下程序 int f(int a) return a%2; main() int s8=1
7、,3,5,2,4,6,i,d=0; for (i=0;f(si);i+) d+=si; printf(%dn,d);程序运行后的输出结果是_。A) 9 B) 11 C) 19 D) 21 (13) 设有定义语句int x6=2,4,6,8,5,7,*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是_。A) for(i=0;i6;i+) printf(%2d,*(p+);B) for(i=0;i6;i+) printf(%2d,*(p+i);C) for(i=0;i6;i+) printf(%2d,*p+);D) for(i=0;i6;i+) printf(%2d,(*p)+
8、); (14) 有以下程序#include main()int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL; *q=*(p+5); printf(%d %dn,*p,*q);程序运行后的输出结果是_。A) 运行后报错 B) 6 6 C) 6 11 D) 5 10 (15) 已有定义:int i,a10,*p;,则合法的赋值语句是_。A) p=100; B) p=a5; C) p=a2+2; D) p=a+2;(16) 有以下程序main() int x=1,3,5,7,2,4,6,0,i,j,k;for(i=0;i=i;j-) if(xj+1xj)
9、k=xj;xj=xj+1;xj+1=k; for(i=0;i3;i+) for(j=4;jxj) k=xj;xj=xj+1;xj+1=k; for (i=0;i3;i+) for(j=4;jxj+1) k=xj;xj=xj+1;xj+1=k; for (i=0;i=0;i-) &nb sp; sum(&aai); printf(“%dn”,aa0);执行后的输出结果是_。A) 4 B) 3 C) 2 D) 1(20) 有以下程序void sort(int a,int n) int i,j,t; for(i=0;in-1;i+=2) for(j=i+2;jn;j+=2) if(aiaj) t=a
10、i;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa,10); for(i=0;i10;i+) printf(“%d”,aai); printf(“n”);其输出结果是_。A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1,C) 9,2,7,4,5,6,3,8,1,10, D) 1,10,3,8,5,6,7,4,9,2,转(21) 以下能正确定义一维数组的选项是_。A) int num ; B) #define N 100 Int num N;C) int num0.100; D)
11、 int N=100;int numN;(22) 有以下程序main()intp7=11,13,14,15,16,17,18,i=0,k=0;while(i7&pi%2)k=k+pi;i+;printf(%dn,k);执行后输出结果是_。A) 58B) 56C) 45D) 24(23) 有以下程序main()intx8=8,7,6,5,0,0,*s;s=x+3printf(%dn,s2);执行后输出结果是_。A) 随机值B) 0C) 5D) 6(24) 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N10void arrin(intxN)inti=0;while(
12、iN)scanf(%d, );在下划线处应填入的是_。A) x+iB)&xi+1C)x+(i+)D)&x+i(25) 以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序void sort(int a,int n) int i,j,t;for(i=0;in-1;i+for(j=i+1,jn;j+)if(aiaj) t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10,i;sort(&aa3,5);for(i=o;i10;i+) print(“%d,”,aai);printf(n”);程序运行后的输出结果是_。A)1,2,3,4
13、,5,6,7,8,9,10 B) 10,9,8,7,6,5,4,3,2,1,C) 1,2,3,8,7.6.5.4.9,10 D) 1,2,10,9,8,7,6,5,4,3(26) 以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。void reverse(int a ,int n) int i,t;for(i=0;in/2;i+) t=ai; ai=an-1-i;an-1-i=t;main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(“%dn”,s)
14、;程序运行后的输出结果是_。A) 22 B) 10C) 34D) 30(27) 以下程序调用findmax函数返回数组中的最大值findmax(int *a,int n) int *p,*s;for(p=a,s=a; p-as B) *p*s C) apas D) p-ap-s(28) 若有定义:int aa 8;。则以下表达式中不能代表数组元aa1的地址的是_。A) &aa0+1 B) &aa1 C) &aa0+ D) aa+1(29) 以下程序的输出结果是_。f(int b,int m,int n) int i,s=0;for(i=m;i=0;i-) ai=10-i;printf(“%d%
15、d%d”,a2,a5,a8);A) 258 B) 741C) 852 D) 369(32) 下列程序的输出结果是_。A) 非法 B)a4的地址 C)5 D)3main() char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5; printf(“%d”,*-p);(33) 下面程序的输出结果是_。A) 0 B) 1 C) 10 D) 9main() int a =1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(“%dn”,*p+9);(34) 当调用函数时,实参是一个数组名,则向函数传送的是_。A) 数组的长度 B) 数组的首地址C) 数组每一个元素的地
16、址 D) 数组每个元素中的值(35) 以下程序的输出结果是_。A) 20 B) 21C) 22D)23main() int i, k, a10, p3; k=5; for (i=0;i10;i+) ai =i; for (i=0;i3;i+) pi =ai *(i+1); for (i=0;i3;i+) k+=pi *2; printf(“%dn”,k);(36) 以下函数返回a所指数组中最小的值所在的下标值fun(int *a, int n) int i,j=0,p;p=j;for(i=j;in;i+)if(aiap)_;return(p);在下划线处应填入的是_。A) i=p B) ap=ai C) p=j D) p=i(37) 有如下说明int a10=1,2,3,4,5,6,7,8,9,10,*p=a;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1