模拟题8-一维数组和指针_第1页
模拟题8-一维数组和指针_第2页
模拟题8-一维数组和指针_第3页
模拟题8-一维数组和指针_第4页
模拟题8-一维数组和指针_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第九部分:一维数组与指针一、选择题(1)有以下程序main( int a10=123,4,5,678,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; x<3; x+ y += px;printf("%dn",y;程序运行后的输出结果是A) 10B) 11C) 14D) 15(3)有以下程序void sort(int a,

2、int n int i, j ,t;for (i=0; ifor (j=i+1; jif (aimain(int aa10=12345,6,7,8,9,10, i;sort(aa+2, 5;for (i=0; i<10; 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)有以下程序void sum(int a口 a0

3、= 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 cl 口 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;printf

4、("%d %d %d %dn",a0,a1,b0,b1;程序运行后的输出结果是A) 3 5 53B) 5 3 3 5C) 35 35D) 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) 42B) 45C) 56D) 60(7)有以下程序void f(int *x,int *y int t; t=*x;*x=*y;*y=t;main( int a8=123,4,5,6,7,8

5、,i,*p,*q;p=a;q=&a7;while(pf(p,q;p+;q-; for(i=0;i<8;i+printf("%d,",ai;程序运行后的输出结果是A) 8,2,3,4,5,6, 7, 1 ,B) 5,6,7,8,1,2, 3, 4,C) 1, 2, 3, 4, 5, 6, 7, 8,D) 8, 7, 6, 5, 4, 3, 2, 1 ,(8以下叙述中错误的是A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出

6、“下标越界” 的出错信息D)可以通过赋初值的方式确定数组元素的个数(9)有以下程序#define N 20fun(int a,int n,int m int i,j;for(i=m;i>=n;i-ai+1=ai;main(int i,aN=123,4,5,6,7,8,9,10;fun(a,2,9;for(i=0;i<5;i+printf("%d",ai;程序运行后的输出结果是A) 10234B) 12344C) 12334D) 12234(10有以下程序prt(int *m,int n int i;for(i=0;i mi+; main( int a尸1,2,3

7、,4,5,i;prt(a,5;for(i=0;i<5;i+ printf("%d,",ai;(12有以下程序程序运行后的输出结果B.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;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

8、,1,1,1,1, , 1,int f(int a return a%2; main( int s8=1,3,5,2,4,6,i,d=0;for (i=0;f(si;i+ d+=si;printf("%dn",d;程序运行后的输出结果是A 9B 11C 19D 21(13设有定义语句int x6=2,4,6,8,5,7,*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是A for(i=0;i<6;i+ printf("%2d",*(p+;B for(i=0;i<6;i+ printf("%2d",*(p

9、+i;C for(i=0;i<6;i+ printf("%2d",*p+;D for(i=0;i<6;i+ printf("%2d",(*p+;(14有以下程序#includemain(int a尸123,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 6C 6 11D 5 10(15已有定义:int i,a10,*p;,则合法的赋值语句是A p=100;B p=a5;C p=a2+2;D p=a

10、+2;(16有以下程序main( int x=1,3,5,7,2,4,6,0),i,j,k;for(i=0;i<3;i+for (j=2;j>=i;j-if(xj+1>xj k=xj;xj=xj+1;xj+1=k;for(i=0;i<3;i+for(j=4;j<7-i;j+if(xj+1>xj k=xj;xj=xj+1;xj+1=k;for (i=0;i<3;i+for(j=4;j<7-i;j+if(xj>xj+1 k=xj;xj=xj+1;xj+1=k;for (i=0;i<8;i+ printf("%d",xi

11、;printf("n"程序运行后的输出结果是:A 75310246B 01234567C 76310462D13570246(17有以下程序段int a10=12345,6,7,8,9,10,*p=&a3,b;b=P5;b中的值是A 5B 6C 8D 9(18有以下程序void swap1(int c口 int t;t=c0;c0=c1;c1=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 ; swap2(b0,b1;printf( "%d %

12、d %d %d n",a0,a1,b0,b1;其输出结果是A 5 3 5 3C 3 5 3 5D 3 5 5 3(19有以下程序void sum(int *Aa0=a1;main( int aa10=1,2,3,4,5,6,7,8,9,10,i;for(i=2;i>=0;i- &nbsp; sum(&aai;printf( "%d n” ,aa0;执行后的输出结果是A 4B 3C 2D 1(20有以下程序void sort(int a,int n int i,j,t;for(i=0;ifor(j=i+2;jif(aimain( int aa10=1,2

13、,3,4,5,6,7,8,9,10,i;sort(aa,10;s=x+3for(i=0;i<10;i+ printf("%d ,aai;printf( " n"其输出结果是A 123,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 100Int num N;C int num0.100;D int N=100;int numN;(22有以下程序main( in

14、t p7=11,13,14,15,16,17,18,i=0,k=0;while(i<7&&pi%2k=k+pi;i+;printf("%d'n",k;执行后输出结果是A 58B 56C 45D 24(23有以下程序main( int x8=8,7,6,5,0,0,*s;printf("%dn",s2;执行后输出结果是A随机值B 0C 5D 6(24以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10void arrin(int xN int i=0;while(iscanf("%d&

15、quot;,;在下划线处应填入的是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;ifor(j=i+1,jif(ai main(int aa10=12345,6,7,8,9,10,i;sort(&aa3,5;for(i=o;i<10;i+ print( "%d,” ,aai;printf( ' n "程序运行后的输出结果是A) 1,2,3,4,5,6,7,8,9,10B 10,

16、9,8,7,6,5,4,3,2,1,C 1,2,3,8,7.6.5.4.9,10D 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;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;i<10;i+ s+=bi;printf( "%d n" ,s;程序运行后的输出结果是A 22B 10C 3

17、4D 30(27以下程序调用findmax函数返回数组中的最大值findmax(int *a,int n int *p,*s;for(p=a,s=a; p-aif ( s=P;return(*s;main( int x5=12,21,13,6,18;printf("%d'n",findmax(x,5;在下划线处应填入的是A p>sB *p>*sC ap>asD p-a>p-s(28若有定义:int aa 8;。则以下表达式中不能代表数组元aa1的地址的是A &aa0+1B &aa1C &aa0+D aa+1(29以下程

18、序的输出结果是f(int b口,int m,int n int i,s=0;for(i=m;ireturn s;main(int x,a尸1,2,345,6,7,8,9;x=f(a,3,7;printf("%d'n",x;A 10B 18C 8D 15(30假定int类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组x在内存中所占字节数是A 3B 6C 10D 20(31以下程序的输出结果是main( int i, a10;for(i=9;i>=0;i- ai=10-i;printf("%d%d% d,a2,a5,a8;A 258B

19、 741C 852D 369(32下列程序的输出结果是A非法B) a4的地址C) 5D) 3main( char a10=9,876,5,4,321,0,*p=a+5;printf("%d ,* -p;(33下面程序的输出结果是A 0B 1C 10D 9main( int a =1,2,3,4,5,6,7,8,9,0,*p;p=a;printf("%d n” ,*p+9;(34当调用函数时,实参是一个数组名,则向函数传送的是A数组的长度B数组的首地址C数组每一个元素的地址D数组每个元素中的值(35以下程序的输出结果是A 20B 21C 22main( int i, k, a

20、10, p3;k=5;for (i=0;i<10;i+ ai =i;for (i=0;i<3;i+ pi =ai *(i+1;for (i=0;i<3;i+ k+=pi *2;printf( "d n”,k;(36以下函数返回a所指数组中最小的值所在的下标值fun(int *a, int n int i,j=O,P;P=j;for(i=j;iif(aireturn(p;在下划线处应填入的是A i=pB ap=aiC p=jD p=i(37有如下说明int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为9的表达式是A *P+9B *(P+8C*P

21、+=9D P+8(38有如下程序main。 int n5=0,0,0,i,k=2;for(i=0;iprintf( "d n",nk;该程序的输出结果是A不确定的值B 2C 1D 0(39执行下面的程序段后,变量k中的值为A不定值B 33C 30D 10int k=3, s2;s0=k; k=s1*10;(40若已定义:int a尸0,123,4,5,6,7,8,9, *p=a,i;其中0WiW9,则对a数组元素不正确的引用上A ap-aB *(&aiC piD a10(41下列程序执行后的输出结果是A 6B 7C 8D 9void func(int *a,int

22、b口 b0=*a+6; main( int a,b5;a=0; b0=3;func(&a,b; printf("%d n,b0;(42若有以下调用语句,则不正确的fun函数的首部是A void fun(int m, int x口 B void fun(int s, int h41C void fun(int p, int *s D void fun(int n, int amain(int a50,n; fun(n, &a9; (43以下程序的输出结果是A6B 6789C '6'D 789 main( char a10=T,2 , '3'

23、; , '4' ,5 , '6' , '7' , '8' , '9' , 0, *p ;int i ;i=8 ;p=a+I;printf("%sn" , p-3 ;(44以下程序的运行结果是A运行后报错B 6 6C 6 12D 5 5#include "stdio.h"main(int a =1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ;int *p=a+5 , *q=NULL;* q=*(p+5 ;printf("%d %d n&

24、quot;, *p , *q ;(45下面程序把数组元素中的最大值放入a0中。则在if语句中的条件表达式应该是A p>aB *p>aC *p>*a0D *p0> *a0main( int a10=6, 7, 2, 9, 1, 10, 5, 8, 4, 3, *p=a, I;if(*a=*p;printf("%d" , *a ;(46以下程序运行后,输出结果是A 10000B10010C 00110D10100main( int y=18,i=0,j,a8;do ai=y%2; i+y=y while(y>=1for(j=i-1;j>=0;

25、j- printf("%d",aj;printf("n"(47设有如下定义:int arr=6,7,8,9,10;int * ptr;则下列程序段的输出结果为ptr=arr;* (ptr+2+=2;printf ("%d,%dn",*ptr,*(ptr+2;A 8,10B 6,8C 7,9D 6,10(48以下程序的输出结果是main( int i,k,a10,p3:K=5;for (i=0;i<10;i+ ai=i;for (i=0;i<3;i+ pi=ai*(i+1;for (i=0;i<3;i+ k+=pi*2

26、;printf("%d'n",k;A 20B 21C 22D23(49若有以下定义和语句:int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则不能表示a数组元素的表达式是A *pB a10C *aD ap-a(50若有以下的定义:int a尸123,4,5,6,7,88,9,10, *p=a;则值为3的表式是A p+=2, *(p+B p+=2,*+pD p+=2,+*p(51若有以下说明:int a10=12345,6,7,8,9,10,*p=a;则数值为6的表达式是A *p+6B *(p+6C *p+=5D p+5(52下面程序输出数组中的最大

27、值,由s指针指向该元素.main( int a10=6,7,2,9,1,10,5,8,4,3,*p,*s;flr(p=a, s=a; p-a<10; p+if(?s=p;printf("The max:%d”,*s:则在if语句中的判断表达式应该是A p>sB *p>*sC ap>asD p-a>p-s(53要求函数的功能是在一维数组中查找值;若找到则返回所在的下标值,否则返回0;数列放在到中。不能正确执行的函数是A) funa(int *a,int n,int x Bfunb(int *a,int n,int x *a=x;int k;while(an

28、!=xn-;for(k=1;k<=n;k+return n;if(ak=xreturn k;return 0; Cfunc(int a,int n,int x D fund(int a,int n,int x int *k; int k=0;a0=x;k=a+n;dowhile(*k!=x k-;k+;return k-n;while(kif(ak=xreturn k; else return 0; (54下列程序的输出结果是main( int a5=2,4,6,8,10,*P,* *k;p=a; k=&p;printf("%d”,*(p+; printf("

29、%dn",* *k; A 4 4B 2 2C 2 4D 4 6(55阅读下列程序:main( int n3,i,j,k;for(i=0;i 3;i+ > ni=0;k=2;for (i=0;i k;i+ >for (j=0;jk;j+ > nj=ni+1;printf("%dn",n1;下述程序运行后输出结果是A 2B 1C 0D 3(56执行以下程序后,y的值是main ( int a尸2,4,6,8,10;int y=1,x,*p;p=&a1;for(x=0;x<3;x+ y + = * (p + x;printf("

30、%dn",y; A 17B 18C 19D 20(57下面程序的输出是A 3B 4C 1D 2main( int a10=1,2,3,4,5,6,7,8,9,10,*p=a;printf("%dn",*(p+2;(58请读程序:#includef(in b, int n int i, r;r=1;for(i=0; i<=n; i+ r=r*bi;return r;main( int x, a= 2,3,4,5,6,7,8,9;x=f(a, 3;printf("%d'n",x;上面程序的输出结果是A 720B 120C 24D 6(

31、59请选出以下程序的输出结果#includefun(s, n1, n2int *s, n1, n2; int i, j, t;i=n1; j=n2;while(i t= *(s+i; *(s+i= *(s+j; *(s+j=t;i+; j-;main( int a10=1,2,3,4,5,6,7,8,9,0,i, *p=a;fun(p,0,3; fun(p,4,9; fun(p,0,9;for(i=0; i<10; i+ printf("%d", *(a+i;printf("n"A 0 9 87 6 543 21B 4 3 21 0 987 65C

32、 5 6 78 9 012 34D 0 9 87 6 512 34(60以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空。# includefindmax ( s , t , kint *s , t , *k; int p; for(p=0,*k=p;pif ( sp > s*k; main( int a10 , i , k ;for ( i=0 ; i<10 ; i + + scanf("%d",&ai;findmax ( a,10,&k ;printf ( "%d,%dn" , k , ak ;

33、 A k=pB *k=p-sC k=p-sD *k=p二、填空题:(1以下程序运行后的输出结果是1】。main( int p7=11,13,14,15,16,17,18;int i=0,j=0;while(i<7 && pi%2=1 j+=pi+;printf("%dn",j;(2以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。main( int i,a20,sum,count;sum=count=0;for(i=0;i<20;i+ scanf("%d",2;fro(i=0;i<20;i+ i

34、f(a>0 count+;sum+=【3;printf("sum=%d,count=%dn",sum,count;(3以下程序运行后的输出结果是 4】main( int i, n尸0,0,0。;for(i=1;i<=4;i+ ni=ni-1*2+1;printf("%d ,ni;(4若已定义:int a10, i; ,以下fun函数的功能是:在第一个循环中给前 10个数组元素 依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成 1、2、3、4、5、5、4、3、2、1。请填空。fun( int a in

35、t i;for(i=1; i<=10; i+【5】=i;for(i=0; i<5; i+6=ai;(5以下程序的输出结果是7】。main(int arr =30,25,20,15,10,5, *p=arr;P+;printf( "%d n”,*(p+3;(6若有以下定义,则不移动指针p,且通过指针p引用值为 98的数组元素的表达式是8。int w10=23,54,10,33,47,98,72,80,61, *p=w;(7以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于 平均分的学生成绩,用输入负数结束输入。请填空。main( float x1

36、000, sum=0.0 , ave , a ;int n=0 , i ;printf("Enter mark : n" ; scanf("%f" , &a;while(a>=0.0&& n<1000 sum+ 9; xn=10;n+; scanf("%f" , &a;ave= 【11】;printf("Output : n"printf("ave=%fn" , ave ;for (I=0;Iif 【12】 printf ("f n"

37、;,xI;(8下面程序输出的结果是【13】#define MAX 3int a MAX;main(fun1(; fun2( a ; printf("n"fun1( int k, t=0;for (k=0; k< MAX ; K+,t+ ak尸t+t;fun2(int b口 int k;for(k=0; k< NAX ; k+ printf("%d”, *(b+K;(9以下程序输出的是 【14】main( int a10=19,23,44,17,37,28,49,36, *p;p=a;printf("%dn",(p+=33;(10以下

38、fun函数的功能是:累加数组元数中的值.n为数组中元素的个数,累加的和彳1放入x所指的存储单元中,请填空.fun(int b ,int n, int *x int k, r=0;for(k=0;k 15 16 =r;(11若有以下定义和语句,则使指针p指向值为36的数组元素的表达式是【17】。int a10=19,23,44,17,37,28,49,36,*p;p=a;(12下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。请填空。fun(int x,int b口 int k=0,r;do r=x%

39、18;bk+=r;x/=【19; while(x; (13下面程序通过函数average计算数组中各元素的平均值,请填空.float average(int * pa,int n int i;float avg=0.0;for(i=0;i 【20 】;avg= 121;return avg; main( int i,a5=2,4,6,8,10;float mean;mean=average(a,5; printf("mean=%fn",mean;(14下面程序的输出是【22】。main( int a= 2,4,6, *prt=&a0, x=8,y,z;for(y=0; y<3; y+z=(*(prt+yprintf("%dn", z;(15下面程序的输出是【23】。main(int arr10,i,k=0;for( i=0; i<10; i+arri=i;for( i=1; i<4; i+k+=arri=i;printf( '%dn&q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论