资源描述:
《一维数组与指针习题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
由于多维数组与指针我们还没有讲完,所以请大家练习一维数组与指针习题题目较多,最迟提交时间下次上机前---当场提交将获得%10的加分(以提交时间为准)请独立完成---严禁抄袭答案就在原题上写一、选择题 (1)有以下程序 main() {int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2; printf("%d ",*p+*q); } 程序运行后的输出结果是___B__。 A)16 B)10 C)8 D)6 (2)有以下程序 main() {int a[]={2,4,6,8,10},y=0,x,*p; p=&a[1]; for(x=1;x<3;x++) y+=p[x]; printf("%d ",y); } 程序运行后的输出结果是_C____。 A)10 B)11 C)14 D)15 (3)有以下程序 voidsort(int a[],int n) {int i,j,t; for(i=0;i=n;i--) a[i+1]=a[i]; } main() { inti,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf("%d",a[i]); } 程序运行后的输出结果是_C____。 A)10234B)12344C)12334D)12234(10)有以下程序 prt(int *m,int n) { inti; for(i=0;i main() {inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf("%d%d ",*p,*q); } 程序运行后的输出结果是_C____。 A)运行后报错 B)66 C)611 D)510 (15)已有定义:inti,a[10],*p;,则合法的赋值语句是_A____。 A)p=100; B)p=a[5]; C)p=a[2]+2; D)p=a+2; (16)有以下程序 main() {intx[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<8;i++)printf("%d",x[i]); printf(" "); } 程序运行后的输出结果是__A___。 A)75310246 B)01234567 C)76310462 D)13570246 (17)有以下程序段 inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是__D___。 A)5 B)6 C)8 D)9 (18)有以下程序 voidswap1(intc[]) {intt; t=c[0];c[0]=c[1];c[1]=t; } voidswap2(intc0,intc1) { intt; 9 t=c0;c0=c1;c1=t; } main() {inta[2]={3,5},b[2]={3,5}; swap1(A); swap2(b[0],b[1]); printf(“%d %d %d %d ”,a[0],a[1],b[0],b[1]); } 其输出结果是___B__。 A)5353 B) 5335 C)3535 D)3553 (19) 有以下程序 voidsum(int*A) {a[0]=a[1];} main() { intaa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--)&nb sp;sum(&aa[i]); printf(“%d ”,aa[0]); } 执行后的输出结果是_A____。 A)4 B)3 C)2 D)1 (20)有以下程序 voidsort(inta[],intn) { inti,j,t; for(i=0;i0) {count++; sum+= a; } } printf("sum=%d,count=%d ",sum,count); (3)以下程序运行后的输出结果是13715 main() { int i,n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf(“%d”,n[i]); } } (4)若已定义:int a[10],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[]) { int i; for(i=1;i<=10;i++) a[i-1]=i; for(i=0;i<5;i++) a[9-i]=a[i]; } (5)以下程序的输出结果是10。 main() { int arr[]={30,25,20,15,10,5}, *p=arr; p++; printf(“%d ”,*(p+3)); } (6)若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是p[5] int w[10]={23,54,10,33,47,98,72,80,61},9 *p=w; (7)以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。 main( ) { float x[1000], sum=0.0, ave, a; int n=0,i; printf("Entermark: ");scanf("%f",&a); while(a>=0.0&&n<1000) { sum+=a ; x[n]= a ; n++; scanf("%f",&a); } ave= sum/n ; printf("Output: "); printf("ave=%f ",ave); for(I=0;I