2010年计算机等级考试二级C语言一维数组与指针8
(41) 下列程序执行后的输出结果是
A) 6
B) 7
C) 8
D) 9
以下是引用片段: void func(int *a,int b[]) { b[0]=*a+6; } main() { int a,b[5]; a=0; b[0]=3; func(&a,b); printf("%d ,b[0]); } |
(42) 若有以下调用语句,则不正确的fun函数的首部是
A) void fun(int m, int x[]) B) void fun(int s, int h[41])
C) void fun(int p, int *s) D) void fun(int n, int a)
以下是引用片段: main() { … int a[50],n; … fun(n, &a[9]); … } |
(43) 以下程序的输出结果是
A)6
B) 6789
C) ’6’
D) 789
以下是引用片段: main( ) { char a[10]={’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,0},*p; int i; i=8; p=a+I; printf("%s ",p-3); } |
(44) 以下程序的运行结果是
A) 运行后报错
B) 6 6
C) 6 12
D) 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 ",*p,*q); } |
(45) 下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是
A) p>a
B) *p>a[0]
C) *p>*a[0]
D) *p[0]> *a[0]
以下是引用片段: main( ) { int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I; for(i=o;i<10;i++,p++) if(________) *a=*p; printf("%d",*a); } |
(46) 以下程序运行后,输出结果是
A) 10000
B) 10010
C) 00110
D) 10100
以下是引用片段: main() { int y=18,i=0,j,a[8]; do { a[i]=y%2; i++ y=y/2; } while(y>=1) for(j=i-1;j>=0;j--) printf("%d",a[j]; printf(" "); } |
(47) 设有如下定义:
int arr[]={6,7,8,9,10};
int * ptr;
则下列程序段的输出结果为
ptr=arr;
* (ptr+2)+=2;
printf ("%d,%d ",*ptr,*(ptr+2));
A) 8,10
B) 6,8
C) 7,9
D) 6,10
(48) 以下程序的输出结果是
以下是引用片段: main() { int i,k,a[10],p[3]: K=5; for (i=0;i<10;i++) a[i]=i; for (i=0;i<3;i++) p[i]=a[i*(i+1)]; for (i=0;i<3;i++) k+=p[i]*2; printf("%d ",k); } |
A) 20
B) 21
C) 22
D)23
(49) 若有以下定义和语句:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则不能表示a数组元素的表达式是
A) *p
B) a[10]
C) *a
D) a[p-a]
(50) 若有以下的定义:
int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a;
则值为3的表式是
A) p+=2, *(p++)
B) p+=2,*++p
C) p+=3, *kp++
D) p+=2,++*p