国家工信部网站备案实名:湖北自考网 为考生提供湖北自考信息服务,仅供学习交流使用,官方信息以湖北教育考试院为准。

湖北自考网

网站首页 自考专业 自考培训 考场查询 成绩查询 网上报名 考生平台
专题:
自考报名时间 考试时间 自考单科网课 模拟考试 教材大纲 免考办理 转考办理 实践考核 毕业申请 学位英语培训 学位申请 专升本 成人高考 中专
湖北自考在线 湖北学位英语培训班 湖北成人高考报名 湖北自考视频免费领取
当前位置:湖北自考网 > 自考“高级语言程序设计”习题答案详解(25) -自考串讲笔记

自考“高级语言程序设计”习题答案详解(25) -自考串讲笔记

湖北自考网 来源: 时间:2008-11-08 15:43:17

  4.若有说明语句“int a[10],*p=a;”,对数组元素的正确引用是( )

  ①a[p] ②P[a]

  ③*(P+2) ④P+2

  「解」在 C语言中,约定数组名单独出现在表达式中时,它表示数组首元素的指针。有int a[10] ,则a可以作为&a[0]使用。另有整型指针变量p,代码p=a实现p指向数组a的首元素。则表达式*(p+2)是引用数组元素a[2].表达式a[p]和p[a]都是不正确的,下标必须是整型表达式,不可以是指针表达式。表达式p+2是指针表达式,它的值是&p[2].所以只有表达式*(p+2)引用数组a的元素a[2].所以解答是③。

  5.下面各语句中,能正确进行赋字符串操作的语句是( )

  ①char s[5] ={“ABCDE”}; ②char s[5] ={‘A’,‘B’,‘C’,‘D’,‘E’};

  ③ char *s;s=“ABCDE”; ④ char *s;scanf(“%”, s);

  「解」字符串最终存储于字符数组中,存储字符串的字符数组可以是程序主动引入的(定义或动态分配),也可以是字符串常量,由系统分配。其中字符数组用字符串初始化就是字符串存储于由程序引入的字符数组的例子。给字符指针赋字符串则是系统自动分配字符率存储空间的例子。给字符指针赋字符串并不是将一个长长的字符串存于字符指针变量中,而是将字符串常量存储于常量区,并将存储这个字符串的首字节地址赋给指针变量,让指针变量指向字符率常量的首字符。对于以字符串作为字符数组初值的情况,要求字符数组足够的大,能存得下字符串常量。这里有一个特别的规定,若数组的大小少于存储字符串有效字符的字节个数,系统将报告错误;当字符数组的大小只能存储字符串的有效字符,而不能存储字符率结束标记符时,则存储于字符数组中的内容是字符序列,因没有存储字符率结束标记符,存储的内容就不是字符串。

  如代码char a[5]=“ABCDE”。另外,给字符数组元素逐一赋字符初值,并在字符初值中没有字符串结束标记符,则存于字符数组中的内容也不是字符率。如代码 char s[5]={‘A’,‘B’,‘C’,‘D’,‘E’}.特别要注意当字符指针还未指向某个字符数组的元素时,不可以通过字符指针输入字符串。如代码char *s;scanf(“%s”,s)。若写成char *str;scanf(“%s”,&str)更是错误的了。由于C语言规定数组不能相互赋值,所以只能将字符串常量赋给某字符指针。如代码char *s;s=“ABCDE”是正确的。实际上,字符率“ABCDE” 被存储于常量区中,向指针变量赋的是字符指针,让s指向其中的字符‘A’。所以解答是③。

  6.若有以下定义,则不能表示a数组元素的表达式是()

  int a[10]={1,2,3,4,5,6,7,8,9,1o},*p=a;

  ①*p ② a[10] ③*a ④ a[p-a]

  「解」上述代码定义了有10个元素的整型数组。,和定义指针变量p,并让p指向数组元素a[0].所以代码*p是引用 a[0].由于数组a只有10个元素,最后一个元素是a[9],表达式a[10]是错误的。数组名a可以作为a的首元素的指针,表达式*a就是a[0] ,是对数组a的首元素a[0]的引用。指针p的值是a,表达式p-a.的值是0,所以a[p-a]就是a[0].所以解答是②。

  7.若有以下定义,则值为3的表达式是()

  int a[]= {1,2,3,4,5,6,7,8,9,10},*p=a;

  ①p+=2,*(p++) ③p+=2,* ++p

  ③p+=3,*p++ ④ p+=2,++ *p

  「解」数组a有10个元素,分别有值1至10,指针变量p指向a[0] ①逗号表达式 p+=2,*(P++),先是P+=2使P指向a[2],接着是*(P++),以当时P所指变量a[2]取内容3为表达式的值,同时使p指向a[3].②返号表达式p+=2,* ++p,先是p+=2使p指向a[2],以后是* ++p,又使 p增1,让它指向a[3],并取指针p所指变量a[3]的内容4作为表达

  式的值。③逗号表达式 p+=3,*p++,先是p+=3使p指向a[3],以后是*p++,表达式的值是 a[3]为 4,而使p指向a[4].④逗号表达式p+=2,++ *p,先是p+=2,使p指向a[2],以后是++ *p,因当时的*p就是 a[2],++a[2]使a[2]增1,变成4,并以4为表达式的值。所以只有p+=2,*(p++)的值是3.所以解答是①。

  8.设有定义“char a[10]={”abcd“},*p=a;”,则*(p+4)的值是( )

  ①“abCd” ②‘d’

  ③‘\0’ ④不能确定

  「 解」若有char a[10]=“abcd”,*p=a,则指针变量p指向a[0].在表达式*(p+4)中,p+4指向a[4],*(p+4)就是a[4].由于用字符“abcd” 给字符数组a赋初值,a[4]的值是字符串结束标记符‘\0’。所以解答是③。

结束
本文标签
特别声明:1.凡本网注明稿件来源为“湖北自考网”的,转载必须注明“稿件来源:湖北自考网(www.hbzkw.com)”,违者将依法追究责任;
2.部分稿件来源于网络,如有不实或侵权,请联系我们沟通解决。最新官方信息请以湖北省教育考试院及各教育官网为准!
限时,免费获取学历提升方案

已帮助10w万+意向学历提升用户成功上岸

  • 毛泽东思想概论

    毛泽东思想概论

    培训优势:课时考点精讲+刷题+冲刺,熟练应对考试题型。全程督促学习,安排好学习计划。 毛泽东思想概论...自考培训
  • 英语二

    英语二

    本课程既是一门语言实践课程,也是拓宽知识、了解世界文化的重要素质课程,它以培养学习者的综合语言应用能力为目标,使他们在学习、工作和社会交往中能够使用英语进行有效的交流。 英语二...自考培训
  • 马克思主义基本原理概论

    马克思主义基本原理概论

    本书包括两个部分:自学考试大纲和基本原理。主要内容有,马克思主义是关于工人阶级和人类解放的科学,物质世界及其发展规律,认识的本质及其规律,人类社会及其发展规律,资本主义的形成及其发展,资本主义发展的历史进程,社会主义社会及其进程,共产主义社会及其进程等。 马克思主义基本原理概论...自考培训
  • 思想道德修养与法律基础

    思想道德修养与法律基础

    《思想道德修养与法律基础》课具有鲜明的政治性、思想性、理论性、针对性、科学性、知识性以及实践性和修养性。它包罗政治、思想、道德、心理本质、学习成才和法律本质等内容,指导和回答大学生在人生、抱负、信念等方面遍及关心和迫切需要解决的问题。 思想道德修养与法律基础...自考培训
  • 中国近代史纲要

    中国近代史纲要

    “中国近现代史纲要”全国高等教育自学考试指定教材,依据中央审定的普通高等学校“中国近现代史纲要”编写大纲以及马克思主义理论研究和建设工程重点教材《中国近现代史纲要》,结合自学考试的特点设计了十章,集中讲述1840年鸦片战争爆发一直到2007年中国共产党第十七次全国代表大会召开的160多年的中国近现代历史。 中国近代史纲要...自考培训
微信公众号 考试交流群
湖北自考网微信公众号

扫一扫关注微信公众号

随时获取湖北省自考政策、通知、公告以及各类学习资料、学习方法、课程。