- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章 字符串
D
解析: 在C语言中,字符串常量是由双引号括起来的,由若干个字符所组成的序列。所以A选项中的字符是由一对单引号括起来,C选项中只有一个双引号,皆错。对于B选项,定义了一个字符变量,却给它赋了字符串常量,错误。若该改为 char str[] =”\x43”
A
解析:A选项中ss[1]可以看作是一个地址常量,其值不能改变,所以不可以对其赋值。但是在定义二维数组的时候,对其进行初始化是允许的,如选项B。 选项C和D定义的是字符指针变量,可以对其进行赋值。
A
解析:Str是地址常量,P是指针变量,两者类型不一致,选项B错误。Str数组的长度是20,而P所指的字符串遇到’\0’
C
解析:对于 数组P,只有三个元素,分别是’a’,’b’,’c’,所以sizeof(P)的输出结果应该是3 ,对于数组q,存储了四个元素,分别是’a’,’b’,’c以及’\0’
C
解析:本题的分析同第4题。
C
解析:数组a中存储了7个字符,分别是’a’,’0’,’\0’,’0’,’a’,’0’,’\0’
B
解析:ps=s语句使ps指向数组s的首地址,即指向元素a,对于表达式*p+4,由于*的优先级高于+,所以进行间接访问运算,得到a,再+4,根据ascii码的顺序,最后的输出结果应该是e,答案为B。
B
解析:选项A的getc()函数完成的是从文件中读入一个字符,而不是题目所要求的从键盘读入一个字符,错误。选项C的getchar()函数每次读入的是一个字符变量,而不是字符串变量,错误。选项D的scanf()函数,通过格式控制符%s可以读入字符串变量,但是遇到空格会作为输入数据的分隔符,不会被作为数据读入。选项B gets()函数可以完成题目要求的功能,参见课本P92 例16。
D
解析:选项A中的参数2的数据类型不匹配,应改为x[4],选项B中的y是指针常量,不能进行++运算,错误。 选项C中参数1对应的数组长度小于参数2 的数组长度,错误。
B
解析:strlen()函数统计字符串长度的时候,是在遇到’\0’的时候结束统计。所以对于数组q来说,定义了数组的长度为10,并给前三个字符赋了初值,则从第4个字符开始,系统将数组元素的值置为’\0’,所以strlen(q)的结果是3 。而对于数组p来说,数组长度为3,但是何时遇到’\
D
解析:函数f(char *p[],int n)完成的功能就是对字符串进行字典排序,根据题目,最后将排在第2位的字符串是“abbd”,所以strlen(p[1])的输出结果应该是4。
A
解析:*运算符和++运算符的优先级相同,且结合方向都是自右向左,所以结果是15 ,答案为A。
D
解析:根据函数代码,若返回的是正数,则表示a字符串的字典排序在b字符串之后,若返回0,表示a和b中存储的字符串一样,若返回负数,表示a字符串的字典排序在b字符串之前。
A
解析: point()函数传递的是指针变量的值,而不是指针变量本身的地址,仍然是一个传值而不是传地址的过程,实参的值没有改变,所以指针p仍然指向字符串的首地址,输出结果为a。
D
解析:比较字符串大小的时候,应该调用函数strcmp(),而不是直接进行比较,选项A错误。对于选项B,只要s1和s2不相等,无论s1所指串是大于或是小于s2所指串,其结果非0,都会执行语句S,与题意不符,错误。选项C的函数实参顺序错误。
B
解析:对于二维数组,第二行的首元素是接着第一行的最后一个元素的。所以p+10是指向字符串“Beijing”的首地址,所以正确答案是B。
D
解析:对于格式控制符%s,在输出的时候遇到’\0’
18 B
解析:gets()函数需要的参数是指针类型的。所以ACD都满足条件,答案B中的a[0]是字符,不是指针类型,错误。
19
解析:P[4]指向的应该是第5个字符串的首地址,即字符串“cd”,所以strlen(p[4])的结果是2。
20
解析:数组名是指针常量,不能对其进行赋值,所以选项C错误,需要注意一点:在定义字符数组的时候可以初始化,如选项A。
21 C
解析: swap函数实现了交换字符串首地址中对应的元素,所以输出结果为1bc,a23。
22 B
解析:fun函数统计首字符是’T’的字符串的个数,所以符合条件的有”Tue”和”Thu”,输出结果为2.
23 A
解析:fun1函数中的(*q)++将指针q所指向的字符进行一次自加运算,所以输出结果为A.
24 C
解析:注意字符串“3697”和存储了一个’\0’,所以j+=2,在字符’9’之后指向的数据是’2’,’8’,’4’
25 A
解析:二维数组str的第二维数是20,所以p+20保存的是字符串”Beijing”的首地址.strlen(p+20)输出的
文档评论(0)