C语言程序设计 菏泽学院 黄复贤
1【单选题】
若定义pf为指向float类型变量f的指针,下列语句中__是正确的。
A、float f, *pf = f;
B、float f, *pf = &f;
C、float *pf = &f, f;
D、float f, *pf =0.0;
正确答案:B
2【单选题】
若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, ( )是正确的。
A、p2 = p1;
B、p2 = **p1;
C、p2 = &p1;
D、p2 = *p1;
正确答案:A
3【单选题】
若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于____。
A、p++
B、x++
C、*(p++)
D、&x++
正确答案:B
4【单选题】
下面程序的输出结果是( )。
#include
void fun (int *x, int *y)
{
printf(“%d%d”, *x,*y);
*x=3;*y=4;
}
int main(void)
{
int x=1,y=2;
fun(&x,&y);
printf(“%d%d”, x, y);
return 0;
}
A、2 1 3 4
B、1 2 1 2
C、1 2 3 4
D、2 1 1 2
正确答案:C
5【单选题】
执行下面程序段后,a的值为( )。
int *p,a=10,b=1;
p=&a;
a=*p+b;
A、12
B、11
C、10
D、编译错误
正确答案:B
6【单选题】
在说明语句“ int *f( );”中,标识符 f 代表是( )。
A、一个用于指向整型数据的指针变量
B、一个用于指向一维数组的行指针
C、一个用于指向函数的指针变量
D、一个返回值为指针型的函数名
正确答案:D
7【单选题】
int *p 的含义是
A、p是一个指针, 用来存放一个整型数
B、p是一个指针, 用来存放一个整型数据在内存中的地址
C、p是一个整型变量
D、以上都不对
正确答案:B
8【单选题】
下面程序运行后的输出结果是____。
#include
int main()
{
printf(“%d\n”, NULL);
return 0;
}
A、0
B、1
C、-1
D、NULL没定义,出错
正确答案:A
指针与数组
1【单选题】
根据声明int a[10], *p=a; ,下列表达式错误的是( )。
A、a[9]
B、p[5]
C、a++
D、*p++
正确答案:C
2【单选题】
设变量定义为 int a[2]={1,3}, *p=&a[0]+1;,则*p的值是( )。
A、2
B、3
C、4
D、&a[0]+1
正确答案:B
3【单选题】
下面程序的运行结果是()。
#include
int main(void)
{
int x[5] = { 2, 4, 6, 8, 10 }, *p, **pp;
p = x;
pp = &p;
printf(“%d ”, *(p++));
printf(”%d\n”, **pp);
return 0;
}
A、4 4
B、2 4
C、2 2
D、4 6
正确答案:B
4【单选题】
根据声明int (*p)[10], p是一个( )。
A、数组
B、指针
C、函数
D、数组的元素
正确答案:B
5【单选题】
假设scanf语句执行时输入ABCDE,能使puts(s)语句正确输出ABCDE字符串的程序段是__。
A、char s[5]={“ABCDE”}; puts(s);
B、char s[5]={‘A’, ‘B’, ‘C’, ‘D’, ‘E’}; puts(s);
C、char *s; scanf(“%s”, s); puts(s);
D、char *s; s=”ABCDE”; puts(s);
正确答案:D
6【单选题】
若有定义:int *p[3]; 则以下叙述中正确的是( )。
A、定义了一个基类型为int的指针变量p,该变量具有三个指针
B、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C、定义了一个名为*p的整型数组,该数组含有三个int类型元素
D、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
正确答案:B
7【单选题】
存在定义int a[10], x, *pa; , 若pa=&a[0], 下列的哪个选项和其他3个选项不是等价的?
A、x=*pa;
B、x=*(a+1);
C、x=*(pa+1);
D、x=a[1];
正确答案:A
8【单选题】
如果char cc[]=”12345″,sizeof(cc)的值应为( )。
A、2
B、5
C、6
D、1
正确答案:C