C语言—指针习题-.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言—指针习题-.pdf》由会员分享,可在线阅读,更多相关《C语言—指针习题-.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 8 章 指针二、习题(一)、是非题1.运算符“*”有时是单目运算符,有时又可能是双目运算符。A.对B.错2.取地址运算符“&”与指针运算符“*”的优先级相同,结合方向为自右向左。A.对B.错3.指针变量的类型不是该变量本身的类型,而是它所指向的变量的类型。A.对B.错4.指针变量不可以作为函数的参数。A.对B.错5.&b 指的是变量b 的地址所存放的值。A.对B.错6.语句 int*p;定义了一个指针变量p,其值是整型的。A.对B.错7.语句“int *p;”中*p 的含义为取值。/定义指针变量A.对B.错8.一个变量的地址就称为该变量的“指针”。A.对B.错9.语句 int i,*p=&
2、i;是正确的C定义。A.对B.错10.变量的指针,其含义是指该变量的一个标志。A.对B.错11.void 类型的指针不指向某种类型的数据,所以没有意义。A.对B.错12.表达式*p+的运算顺序为先自增后取值。A.对B.错13.C 语言中,执行表达式(*p)+后 p 的指向改变了。A.对B.错14.两个指针相加没有意义。A.对B.错15.若有定义:int*p1,*p2,m=3,n;,则 p1=&m;p2=p1;是正确的赋值语句。A.对B.错16.已知 int a4,*p;,则语句p=&a;是正确的。/p=a;A.对B.错17.char*name5 定义了一个一维指针数组,它有5 个元素,每个元素
3、都是指向字符数据的指针型数据。A.对B.错18.*(&aij)与 aij的含义相同。A.对B.错19.若有定义:int(*p)4;,则标示符p 是一个指针,它指向一个含有四个整型元素的一维数组。A.对B.错20.设有以下定义:char*c2=12,34;,表示 c 数组的两个元素中分别存放了字符串12 和34 的首地址。A.对B.错(二)、选择题1.变量的指针,其含义是指该变量的_。A.值B.地址C.名D.一个标志2.下面能正确进行字符串赋值操作的是_。A.char s5=ABCDE;B.char s5=A,B,C,D,E;C.char*s;s=ABCDE;D.char*s;scnaf(%s,
4、&s);3.以下语句或语句组中,能正确进行字符串赋值的是_。A.char*sp;*sp=right;B.char s10;s=right;C.char s10;*s=right;D.char*sp=right;4.设有定义:char*c;,以下选项中能够使字符型指针c 正确指向一个字符串的是_。A.char str=string;c=str;B.scanf(%s,c);C.c=getchar();D.*c=string;5.下列语句中,正确的是_。A.char*s;s=Olympic;B.char s7;s=Olympic;C.char*s;s=Olympic;D.char s7;s=Olym
5、pic;6.已有定义int k=2;int*p1,*p2;且 p1 和 p2 均已指向变量k,下面不能正确执行的赋值语句是 _。A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);7.若有定义:double a10,*s=a;,以下能够代表数组元素a3 的是 _。A.(*s)3 B.*(s+3)C.*s3D.*s+3 8.若有定义int a5,*p=a;,则对 a 数组元素的正确引用是_。A.*&a5 B.a+2 C.*(p+5)D.*(a+2)9.若有定义语句:double a,*p=&a;以下叙述中错误的是_。A.定义语句中*是一个间接访问运算符B.定义语句中
6、*号只是一个说明符C.定义语句中p 只能存放double 类型变量的地址D.定义语句中,*p=&a 把变量 a的地址作为初始赋给指针变量p 10.若有程序段:char str=china;char*p;p=str;则下列叙述正确的是_。A.*p 与 str0相等B.str数组长度和p 所指向的字符串长度相等C.str和 p 完全相同D.数组 str中的内容和指针变量p 中的内容相等11.若有语句int*point,a=4;和 point=&a;下面均代表地址的一组选项是_。A.a,point,*&a B.&*a,&a,*point C.&point,*point,&a D.&a,&*point
7、,point 12.以下选项中,对指针变量p 的正确操作是_。A.int a5,*p;p=&a;B.int a5,*p;p=a;C.int a5;int*p=a=1000;D.int a5;int*p1,*p2=a;*p1=*p2;13.设有定义语句:int m=2,4,6,8,*k=m;,以下选项中表达式的值为6 的是 _。A.*(k+2)B.k+2 C.*k+2 D.*k+=2 14.若有定义:int*p,m=5,n;,以下正确的程序段是_。A.p=&n;scanf(%d,&p);B.p=&n;scanf(%d,*p);C.scanf(%d,&n);*p=n;D.p=&n;*p=m;15.
8、以下程序的运行结果是_。#includestdio.h main()int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(%d,%d,%d,%dn,m,n,*p,*q);A.1,2,1,2 B.1,2,2,1 C.2,1,2,1 D.2,1,1,2 16.若有定义语句:int a410,*p,*q4;且 0i 4,则错误的赋值是A.p=a B.qi=ai C.p=ai D.p=&a21 17.以下程序中调用scanf函数给变量a 输入数值的方法是错误的,其错误原因是_。#includestdio.h main()int*p,q,a,b;p=&a;print
9、f(input a:);scnaf(%d,*p);,A.*p 表示的是指针变量p 的地址B.*p 表示的是变量a 的值,而不是变量a 的地址C.*p 表示的是指针变量p 的值D.*p 只能用来说明p 是一个指针变量18.程序段 char*s=abcde;s+=2;printf(%d,s);的运行结果是 _。A.cde B.字符 c C.字符 c 的地址D.无确定的输出结果19.下面程序段的运行结果是_。char str=ABC,*p=str;printf(%dn,*(p+3);/*(p+3)表示 p 的地址从开始处移动3 A.67 B.0 C.字符 C 的地址D.字符 C 20.下面程序段的运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 指针 习题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内