C语言程序设计(指针)期末单元测试与答案.pdf

C语言程序设计(指针)期末单元测试与答案.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

一、单选题

1、若有说明:intn=2,*p=n,*q=p;

则以下非法的赋值语句是()

A.p=q;

B.p=n;

C.n=*q;

D.*q=3;

正确答案:B

解析:B、p为指针类型,即“地址箱”,要保存地址,而n为整型

数,类型不匹配。

2、若有以下定义:

intx,*pb;

则正确的赋值表达式是()

A.*pb=*x;

B.pb=x;

C.pb=x;

D.*pb=x;

正确答案:C

解析:A、x是整型变量,普通变量前面加*,这是错误的,没有该

语法D、运行时错误。

正确的是pb=x;x的地址应放到“地址箱”即指针变量pb中,

一定要注意“地址箱”即指针变量为pb,而非*pb。

如果写成*pb=x;会出现什么问题呢?

pb为随机指向的“野指针”,即随机指向一个空间,该语句试图吧x

放入到该随机空间中,报运行时错误

3、若定义:inta=511,*b=a;则的输出结果为

()

A.511

B.无确定值

C.512

D.a的地址

正确答案:A

解析:A、b是指针变量,保存a的地址,那么*b就是a

4、下面能正确进行字符串赋值操作的是()

A.char*s;

B.char*s;

C.chars[5]={a,b,c,d,e};

正确答案:A

解析:B、编译不报错,运行时错误。

原因s指针随机指向一个空间,即野指针,不能试图把一个字符串输

入到该随机空间中,运行时报错C、语法正确,但数组s中由于缺

少字符串结束符,故村的不是字符串,而是5个独立的字符。D、

s数组可容纳5个字符元素,而字符串别忘了默认一个,

故共6个字符,存不下,语法保存

5、下列语句错误的是()

B.chara[10],*p;

C.char*a;

D.chara[10],*p=a;

正确答案:B

解析:B、

为连续赋值语句,由于赋值号=的右结合性,先执行把赋

值给a,这步就有语法错误,因为a是数组名,数组名是常量,不能

为其赋值C、开始指针a为随机指向的“野指针”

后来指向字符串常量“china”,即指向该字符串中的首字符‘c’

为正确语法D、p初始指向a[0],指向完p=后p指向字

符串常量“china”,不再指向a[0],为正确语法

6、若已定义chara[10];则在下面表达式中不表示a[1]地址的是

()

A.a[1]

B.a[0]+1

C.a+1

D.a++

正确答案:D

解析:D、后缀加表达式,先取a的值作为表达式的值,为还是

a[0]的地址,与题目不符

7、已知main函数中有声明inta=3,b=5;若在main函数中通过执

行函数调用语句swap(a,b);实现交换a、b值的功能,则下列swap

函数的定义中正确的是()

A.voidswap(intx,inty)

{

intt;

t=x;

x=y;

y=t;

}

B.voidswap(int*x,int*y)

{

int*p;

*p=*x;

*x=*y;

*y=*p;

}

文档评论(0)

156****6092 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档