A.10,10 B.10,20 C.20,10 D.20,20
[D] 教师批改:D
8、若有以下的定义: int a[]={1,2,3,D,5,6,7,8,9,10},*p=a 则值为3的表达式是 A.p+=2,*(p++) B.p+=2,*++p C.p+=3,*p++ D.p+=2,++*p [D] 教师批改:A 9、若有以下定义和语句: int a[10]={1,2,3,D,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 A.*p B.a[10] C.*a D.a[p-a]
[A] 教师批改:B 10、若有以下定义和语句: int w[2][3],(*pw)[3];pw=w;
则对w数组元素的非法引用是_____。 A.*(w[0]+2) B.*(pw+1)[2] C.pw[0][0] D.*(pw[1]+2) [A] 教师批改:B 11、设有定义: struct sk{ int a; float b; }data,*p;
若有p=&data;,则对data中的a域的正确引用是____。 A.(*p).data.a B.(*p).a C.p->data.a D.p.data.a [D] 教师批改:B
12、设有如下定义: char *aa[2]={\则以下说法中正确的是
A.aa数组元素的值分别是\和\
B.aa是指针变量,它指向含有两个数组元素的字符型一维数组
C.aa数组的两个元素分别存放的是含有D个字符的一维字符数组的首地址
D.aa数组的两个元素中各自存放了字符'a'和'A'的地址
[B] 教师批改:D
13、以下c语言函数声明中,不正确的是: A.void fun (int x, int y); B.fun (int x, int y); C.int fun (int x,y); D.char *fun (char *s); [D] 教师批改:C 14、以下程序输出的值为? main()
{ int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; p=a;
printf(\ } A.1 B.9 C.10 D.0
[D] 教师批改:C 15、有以下程序 main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2; printf(\); }
程序运行后的输出结果是_____。 A)16 B)10 C)8 D)6
[B] 教师批改:B
16、若有语句:char *line[5];,以下叙述中正确的是( ) A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量
B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C)定义line是一个指针数组,语句中的*号称为间址运算符 D)定义line是一个指向字符型函数的指针 [A] 教师批改:A 17、有以下程序 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(\); }
程序运行后的输出结果是_____。 A)10 B)11
C)14 D)15
[C] 教师批改:C 18、有以下程序 prt(int *m,int n) { int i;
for(i=0;i int a[]={1,2,3,4,5},i; prt(a,5); for(i=0;i<5;i++) printf(\); } 程序运行后的输出结果是_____。 A)1,2,3,4,5, B)2,3,4,5,6, C)3,4,5,6,7, D)2,3,4,5,1, [B] 教师批改:B 19、有以下程序 #include {int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf(\); } 程序运行后的输出结果是_____。 A) 运行后报错 B) 6 6 C) 6 11 D) 5 10 [A] 教师批改:A 20、已有定义:int i,a[10],*p;,则合法的赋值语句是_____。A) p=100; B) p=a[5]; C) p=a[2]+2; D) p=a+2; [B] 教师批改:D 21、有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是_____。 A) 5 B) 6 C) 8 D) 9 [D] 教师批改:D 22、有以下程序 void sum(int *a) { a[0]=a[1];} main( ) { int aa[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\\n”,aa[0]); } 执行后的输出结果是_____。 A) 4 B) 3 C) 2 D) 1 [B] 教师批改:A 23、有以下程序 main() { int x[8]={8,7,6,5,0,0},*s; s=x+3 printf(\); } 执行后输出结果是_____。 A) 随机值 B) 0 C) 5 D) 6 [B] 教师批改:B 24、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int x[N]) { int i=0; while(i 在下划线处应填入的是_____。 A) x+i B)&x[i+1] C)x+(i++) D)&x[++i] [B] 教师批改:C 25、以下程序调用findmax函数返回数组中的最大值 findmax(int *a,int n) { int *p,*s; for(p=a,s=a; p-a { int x[5]={12,21,13,6,18}; printf(\(x,5)); } 在下划线处应填入的是_____。 A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s [C] 教师批改:B 26、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是_____。 A) &aa[0]+1 B) &aa[1] C) &aa[0]++ D) aa+1 [D] 教师批改:C 27、下列程序的输出结果是_____。 main() { char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(“%d”,*--p); } A) 非法 B)a[4]的地址 C)5 D)3 [C] 教师批改:C 28、下面程序的输出结果是_____。 main() { int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p; p=a; printf(“%d\\n”,*p+9); } A) 0 B) 1 C) 10 D) 9 [A] 教师批改:C 29、以下程序的输出结果是_____。 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\\n”,k); } A) 20 B) 21 C) 22 D)23 [B] 教师批改:B 30、以下函数返回a所指数组中最小的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j; for(i=j;i 在下划线处应填入的是_____。 A) i=p B) a[p]=a[i] C) p=j D) p=i [B] 教师批改:D 31、若已定义: int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用上_____。 A) a[p-a] B) *(&a[i]) C) p[i] D) a[10] [B] 教师批改:D 32、下列程序执行后的输出结果是_____。 void func(int *a,int b[]) { b[0]=*a+6; } main() { int a,b[5]; a=0; b[0]=3; func(&a,b); printf(\); } A) 6 B) 7 C) 8 D) 9 [A] 教师批改:A 33、若有以下调用语句,则不正确的fun函数的首部是_____。 main() { … int a[50],n; … fun(n, &a[9]); … } 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) [D] 教师批改:C 34、以下程序的输出结果是_____。 main( ) { char a[10]={?1?,?2?,?3?,?4?,?5?,?6?,?7?,?8?,?9?,0},*p; int i; i=8; p=a+i; printf(\,p-3); } A)6 B) 6789 C) ?6? D) 789 [C] 教师批改:B 35、下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是_____。 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(\,*a); } A) p>a B) *p>a[0] C) *p>*a[0] D) *p[0]> *a[0] [D] 教师批改:B 1 36、设有如下定义: int arr[]={6,7,8,9,10}; int * ptr; 则下列程序段的输出结果为_____。 ptr=arr; * (ptr+2)+=2; printf (\(ptr+2)); A) 8,10 B) 6,8 C) 7,9 D) 6,10 [C] 教师批改:D 37、若有以下定义和语句: 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] [D] 教师批改:B 38、若有以下的定义: 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 [C] 教师批改:A 39、若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是_____。 A) *p+6 B) *(p+6) C) *p+=5 D) p+5 [B] 教师批改:C 40、下列程序的输出结果是_____。 main( ) { int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf(\(p++)); printf(\); } A) 4 4 B) 2 2 C) 2 4 D) 4 6 [C] 教师批改:C 41、执行以下程序后,y的值是_____。 main ( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1];

