第七章测试1.
指针变量是把内存中另一个数据的()作为其值的变量。
A:
值
B:变量名C:
标识符
D:地址
答案:D
2.
有以下程序段,输出结果为()。
#include<stdio.h>
main()
{
int a[10]={11,32,43,25,16,71,24,23,80,44};
int *p=a;
int *s,;
s=p+2;
printf("%d,%d ",*p,*s);
}
A:
11,13
B:11,32
C:0,2
D:11,43
3.有以下程序段,输出结果为()。
#include<stdio.h>
main()
{
int a[10]={5,10,15,20,25,30,35,40,45,50};
int *p=a;
int *s, m;
s=p++;
m=*p++;
printf(“%d,%d,%d ”, *p, *s, m);
}
A:
5,10,15
B:10,15,11
C:15,5,10
D:5,10,11
4.有以下程序段,输出结果为()。
#include<stdio.h>
main()
{int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*p)[4]=a;
printf("%d\n",*p);
}
A:语法错误 B:1
有以下程序段,输出结果为()。
#include<stdio.h>
main()
{int a=10,*p,**q,***s;
p=&a;
q=&p;
s=&a;
printf("%d,%d,%d",*p,**q,***s);
}
A:
10,10,随机值
B:10,随机值,随机值
C:语法错误
D:10,10,10
在以下程序段的空白处填入(),能够正确输出teacher。
#include<stdio.h>
main()
{char *p[3]={"student","teacher","classroom"};
printf("%s", );
}
A:*p+7 B:*(p+1) C:*p+1 D:*p[1] 7.
在以下程序段的空白处填入(),能够使程序正确运行。
#include<stdio.h>
int sum(int x,int y)
{return x+y;
}
main()
{int a=3,b=5,c;
p=sum;
c=(*p)(a,b);
printf("%d",c);
}
A:int *p(int,int) B:int (*p)(int ,int); C:int (*p)() D:其余选项都不对 8.
有以下程序段,输出结果为()。
#include<stdio.h>
void swap(int *p1)
{int b=20;
p1=&b;
}
main()
{int a=10,*pa;
pa=&a;
swap(pa);
printf("%d,%d",a,*pa);
}
A:
20,20
B:20,10
C:10,10
D:10,20
有以下程序段,在空白处填入(),可以使程序正确运行。
#include<stdio.h>
int (int x,int y)
{if(x>y)return &x;
else return &y;
}
main()
{int a=3,b=5,*p;
p=f(a,b);
printf("%d",*p);
}
A:
*f
B:其余选项都不对
C:f
D:(*f)