第九章测试1.
若有下列语句:
int a[4]={1,2,3,4},*p;
p=&a[2];
则*p的值是3
A:错 B:对
答案:B
2.
int *p;此时*是一个运算符号,表示间接访问p所指向的变量。
A:错 B:对 3.
有下列程序段,程序段运行后的输出结果是10( )。
int *p,n;
n=10; p=&n; n=*p+10;
printf("%d\n", *p);
A:错 B:对 4.
若有说明:int a=2,*p=&a,*q=p;,则以下非法的赋值语句是( )。
A:p=q B:q=a C:a=*q D:*p=*q 5.
变量的指针是指该变量的( )。
A:首地址 B:值 C:名 D:别名 6.
若已定义int a=5; 下列对(1)、(2)两个语句的正确解释是( )
(1) int *p=&a; (2) *p=a;
A:语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给p指的空间。 B:语句(1)和语句(2)语句都是把变量a的地址值赋给指针变量p。 C:语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给指针变量p。 D:语句(1)和语句(2)中的*p含义相同,都表示给指针变量p赋值。 7.
下列程序中,主函数调用findmax函数返回数组中的最大值。在下划线处应填入的是( )。
#include <stdio.h>
findmax( int *a, int n)
{
int *p, *s;
for (p=a, s=a; p-a<n; p++)
if(__________) s=p;
return (*s);
}
int main()
{
int x[5]={12,21,13,6,18};
printf("%d\n", findmax(x,5));
return 0;
}
A:a[p]>a[s] B:p>s C:*p>*s D:p-a>p-s 8.
有下列程序,程序运行后的输出结果是( )。
#include <stdio.h>
void fun( int *x,int *y);
int main()
{
int x=1,y=2;
fun(&y,&x);
printf("%d %d",x,y);
return 0;
}
void fun( int *x,int *y)
{
printf("%d%d",*x,*y);
*x=3;*y=4;
}
A:214 3 B:123 4
C:121 2
D:211 2
9.
有下列程序段,程序段运行后的输出结果是( )。
int t[]={0,1,2,3,4,5,6,7,8,9}, *p;
p=t;
printf("%d\n", *p+9);
A:10 B:0 C:1 D:9 10.
若有下列语句:
int a[4]={1,2,3,4},*p;
p=a;
则*p的值是3。
A:错 B:对