等级考试指针习题.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(26 若已定义:
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]
(27 下列程序执行后的输出结果是
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 \n,b[0];
}
(29 下列程序执行后的输出结果是
A 3
B 6
C 9
D 随机数
main(
{ int a[3][3], *p,i;
p=&a[0][0];
for(i=0; i<9; i++ p[i]=i+1;
printf("%d \n",a[1][2];
}
(30 设有数组定义: char array [ ]="China"; 则数组 array所占的空间为
A 4个字节
B 5个字节
C 6个字节
D 7个字节
(31 下列程序的输出结果是
A 4
B 6
C 8
D 10
int b=2;
int func(int *a
{ b += *a; return(b;}
main(
{ int a=2, res=2;
res += func(&a;
printf("%d \n",res;
}
(39 若有以下调用语句,则不正确的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];
…
}
(41 请选出正确的程序段
A int *p;
B int *s, k;
scanf("%d",p; *s=100;
… …
C int *s, k;
D int *s, k;
char *p, c; char *p, c;
s=&k; s=&k;
p=&c; p=&c;
*p='a'; s=p;
… *s=1;
…
(42 已知指针p的指向如下图所示,则执行语句 *--p;后*p的值是
A 30
B 20
C 19
D 29
a[0] a[1] a[2] a[3] a[4]
10 20 30 40 50
注:p=&a[2]
(43 设已有定义: char *st="how are you"; 下列程序段中正确的是
A char a[11], *p; strcpy(p=a+1,&st[4];
B char a[11]; strcpy(++a, st;
C char a[11]; strcpy(a, st;
D char a[], *p; strcpy(p=&a[1],st+2;
(47 下列程序执行后的输出结果是
A 6
B 8
C 10
D 12
#define MA(x x*(x-1
main(
{ int a=1,b=2; printf("%d \n",MA(1+a+b;}
二填空题
(8 若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的
地址。
p和s是基类型为int的指针变量。
请对以下问题进行填空。
a[0] a[1] a[2] a[3] a[4]
22 33 44 55 66
1,若p已指向存储单元a[1]。
通过指针p,给s赋值,使s指向最后一个存储单元 a[4]的语句是 [8] 。
2,若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是 [9] 。
(9 下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。
int add(int x, int y, [10] z
{ [11] =x+y; }。