C语言程序设计:指针单元测试与答案.docxVIP

C语言程序设计:指针单元测试与答案.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、单选题 1、?内存是以()为单位的一片连续存储空间,每个字节都有一个唯一的编号,这个编号称为内存的“地址” A.字长 B.字符 C.位 D.字节 正确答案:D 解析: D、内存中的地址是以字节为单位进行编号时行存储的 2、?在C语言中,允许用一个变量来存放指针,这种变量称为()。 A.指针变量 B.结构体 C.数组 D.指针 正确答案:A 解析: A、指针变量的定义 3、以下程序的输出结果是: #includestdio.h ?int main() { int a,b,c; int *p; a=5; b=a+3; p=a; c=*p+3; printf(%d,%d\n,*p,c); return 0; } ? ? A.5,8 B.8,8 C.8,5 D.5,5 正确答案:A 解析: A、p指向变量a所在的地址,输出*p就是输出变量a的内容,*p为变量a,即*p等于5,c等于8。 4、?内存单元的指针和内存单元的内容是两个()的概念。 A.相同 B.不同 C.一致 D.没有任何关系 正确答案:B 解析: B、内存单元的内容指的是数据本身,内存单元地址指的是存放数据内容的地址。 5、在以下定义中,正确的说明语句为____ A.int a[3,4] B.int *a[10] C.int a[ ][ ] D.int a[b] 正确答案:B 解析: B、指针数据的定义 A错误原因是定义数组时,数组大小不能是变量。B错误原因是二维数组定义形式错误,C错误原因是定义二维数组时,行和列大小均未确定。 6、?下列定义中,属于指针数组的是( )? A.char *name[]={abc,de}; B.int (*p)[]; C.int (*name)[]; D.char (*p)[]; 正确答案:A 解析: A、指针数组的定义 7、若已定义: int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是: ? A.a[p-a] B.p[i] C.*(a[i]) D.a[10] 正确答案:D 解析: D、数组a从下标0开始编号,因此D溢出 8、?以下程序的输出结果是: ? #includestdio.h ?? int a[]={2,4,6,8}; ?int main() ?{ ? int i; ? int *p=a; ? for(i=0;i4;i++) a[i]=*p++; ?? printf(%d\n,a[2]); ?? return 0; ? } ? ? A.6 B.4 C.2 D.8 正确答案:A 解析: A、指针的移动,并不改变数组内容 9、若有以下的定义: int a[]={1,2,3,4,5,6,7,8,9,10}, *p=a; 则值为3的表式是: A. p+=2, *(p++) B. p+=2,*++p C.p+=2,++*p D.p+=3, *kp++ 正确答案:A 解析: A、需要输出第3个数,即就是下标为2对应数组的内容 10、?若有以下说明及语句:int a[]={10,20,30,40,50},*p;p=a[1];则表达式*++p的值是? A.20 B.31 C.30 D.21 正确答案:C 解析: C、p=a[1]指向数组a的第2个元素,*++p指向第3个元素,即30 11、若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是? A.*(p+6) B.*p+=5 C.*p+6 D.p+5 正确答案:B 解析: B、数组是从0开始编号的,p一开始指向数组的首地址 12、?若有以下说明及语句:int a[]={10,20,30,40,50},*p;p=a[1];*p++;则表达式*p的值是? A.31 B.30 C.21 D.20 正确答案:B 解析: B、*p++等价于*(p++) 13、?下面是对s的初始化,其中不正确的是_____. A.char s[5]= B.char s[5]={a,b,c}; C.char s[5]={abc} D.char s[5]=abcdef; 正确答案:D 解析: D、字符串指针的定义 14、下面程序的输出是_______。 #includestdio.h int main() { int i=3,j=2; char *a=dcba; printf(%c%c\n,a[i],a[j]); return 0; } ? A.b,c B.a,b C.bc D.ab 正确答案:D 解

文档评论(0)

周周知识分享 + 关注
实名认证
文档贡献者

教师资格证、信息系统项目管理师持证人

小初中各科知识分享。

领域认证该用户于2024年02月28日上传了教师资格证、信息系统项目管理师

1亿VIP精品文档

相关文档