当前位置:文档之家› C语言复习(第八章 指针)

C语言复习(第八章 指针)

C语言复习(第八章 指针)
C语言复习(第八章 指针)

第八章指针

一.知识点

1.指针的概念

2.指针变量

3.指针与数组

4.指针与字符串

二.练习

㈠.填空题:

1.若有定义:char ch;

⑴使指针p可以指向变量ch的定义语句是char *p=&ch; 。

⑵使指针p指向变量ch的赋值语句是p=&ch; 。

⑶通过指针p给变量ch读入字符的scanf函数调用语句是scanf(“%c”,p);。

⑷通过指针p给变量ch赋字符的语句是*p=’a’; 。

⑸通过指针p输出ch中字符的语句是putchar(*p);或printf(“%c”,*p) 。

2.若有五个连续的int类型的存储单元并赋值10 20 30 40 50,且p和s的基类型皆为int,p已指向存储单元a[1]。

⑴通过指针p,给s赋值,使其指向最后一个存储单元a[4]的语句是s=p+3; 。

⑵在第(1)的基础上,用以移动指针s,使之指向中间的存储单元a[2]的表达式是s-=2 或s--,s-- 。

⑶已知k=2,指针s已指向中间的存储单元a[2],表达式*(s+k)的值是50 。

⑷指针s已指向存储单元a[2],不移动指针s,通过s引用存储单元a[3]的表达式是

*(s+1) 。

⑸指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是2 。

⑹若p指向存储单元a[0],则以下语句的输出结果是10 20 30 40 50 。

for(i=0;i<5;i++)printf(“%d”,*(p+i));printf(“\n”);

㈡.选择题:

1.若有定义:int x,*pb;则以下正确的赋值表达式是(A )。

A.pb=&x B.pb=x C.*pb=&x D.*pb=*x

2.以下程序的输出结果是(B )。

A.因变量无定义输出不定值B.0 C.-1 D.1

#include “stdio.h”

main()

{ printf(“%d\n”,NULL);}

3.已知指针p的指向如图8.1所示,则表达式*++p的值是(B )。

A.20 B.30 C.21 D.31

4.已知指针p的指向如图8.1所示,则表达式++*p的值是(C )。

A.20 B.30 C.21 D.31

5.以下程序的输出结果是(D )。

A.23 B.24 C.25 D.26

void prtv(int *x)

{ printf(“%d\n”,++*x);}

main()

{ int a=25;prtv(&a);}

相关主题
文本预览
相关文档 最新文档