C语言程序设计(指针)期末单元测试与答案_第1页
C语言程序设计(指针)期末单元测试与答案_第2页
C语言程序设计(指针)期末单元测试与答案_第3页
C语言程序设计(指针)期末单元测试与答案_第4页
C语言程序设计(指针)期末单元测试与答案_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、单项选择题1、假设有说明:intn = 2,*p = &n,*q = p;那么以下非法的赋值语句是()A.p = q;B.p = n;C.n = *q;D.*q = 3;正确答案:B解析:B、p为指针类型,即“地址箱”,要保存地址,而n为整型 数,类型不匹配。2、假设有以下定义:int x, *pb;那么正确的赋值表达式是()A.*pb = *x;B.pb = x;C.pb = &x;D.*pb = &x;正确答案:c解析:A、x是整型变量,普通变量前面加*,这是错误的,没有该 语法D、运行时错误。正确的选项是pb = &x; x的地址应放到“地址箱”即指针变量pb中,一定要注意“地址箱”

2、即指针变量为pb,而非*pb。如果写成*pb = &x;会出现什么问题呢?pb为随机指向的“野指针”,即随机指向一个空间,该语句试图吧&x放入到该随机空间中,报运行时错误3、假设定义:int a =511,*b = &a;那么 printf(%dn,*b);的输出结果为( )A.511B.无确定值C.512D.a的地址正确答案:A解析:A、b是指针变量,保存a的地址,那么*b就是a4、下面能正确进行字符串赋值操作的是()A.char *s;s =abcde;B.char *s;scanf(%s,s);C.chars5 QaJb-cJdJe;D.char s5 = abcde;正确答案:A解析:

3、B、编译不报错,运行时错误。原因s指针随机指向一个空间,即野指针,不能试图把一个字符串输 入到该随机空间中,运行时报错C、语法正确,但数组s中由于缺 少字符串结束符0,故村的不是字符串,而是5个独立的字符。D、s数组可容纳5个字符元素,而字符串匕bed。别忘了默认一个vr, 故共6个字符,存不下,语法保存5、以下语句错误的选项是()A.char a10 = china;B.char a10,*p;p = a = china;C.char *a;a = china;D.char a10, *p = a;p = china;正确答案:B解析: B、p = a = china;为连续赋值语句,由于赋

4、值号=的右结合性,先执行把china赋 值给a,这步就有语法错误,因为a是数组名,数组名是常量,不能 为其赋值C、开始指针a为随机指向的“野指针”后来指向字符串常量china”,即指向该字符串中的首字符c为正确语法D、p初始指向a0,指向完p = china;后p指向字符串常量“china” ,不再指向a0,为正确语法6、假设已定义char a10;那么在下面表达式中不表示al地址的是A.&alB.&aO+lC.a + 1D.a+正确答案:D解析:D、后缀加表达式,先取a的值作为表达式的值,为还是 a0的地址,与题目不符7、main函数中有声明int a = 3zb = 5;假设在main函数

5、中通过执 行函数调用语句swap(&a,&b);实现交换a b值的功能,那么以下swap 函数的定义中正确的选项是()A.void swap(int x,int y)(int t;t=x;x=y;y=t;B.void swapfint *x,int *y)(int *p;*p = *x;* 7*y = *p;C.void swap(int *x,int *y)(int *p;P=x;x=y;Y=P;)D.void swapfint *x,int *y)(int t;t=*x;*x=*y;*y=t;正确答案:D解析:A、首先分析调用语句swap (&a,&b);两个实参分别传递 的是地址,那形参

6、自然要是“地址箱”即指针变量来接受该地址。应 该为 void swapfint *x,int *y)故该选项不对B、p指针没有合法指向,为“野指针”,不能为该随 机空间赋值, 即*p = *x;这条编译时并不会报错,但运行时错误 C、该选项交换的是X、y两个指针变量中的值即地址,交换前:X 中保存a地址、y中保存b地址; 交换后:x中保存b地址,y中 保存a地址。即该选项swap内部交换的是形参中a和b的地址,对外部a和b的 值并没改变8、以下程序的输出结果是()#includeint main(void) (inta = l,2,3,4,5,6,7,8,9,*p=a;P+;printf(%d,*(p+4);return 0;)A.6B.8C.7D.5正确答案:A解析:A、p初始指向a0,执行p+后,p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论