第11章字符串_第1页
第11章字符串_第2页
第11章字符串_第3页
第11章字符串_第4页
第11章字符串_第5页
全文预览已结束

下载本文档

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

文档简介

1、第十一章 字符串1 D 解析: 在C语言中,字符串常量是由双引号括起来的,由若干个字符所组成的序列。所以A选项中的字符是由一对单引号括起来,C选项中只有一个双引号,皆错。对于B选项,定义了一个字符变量,却给它赋了字符串常量,错误。若该改为 char str =”x43”,则也正确。2 A解析:A选项中ss1可以看作是一个地址常量,其值不能改变,所以不可以对其赋值。但是在定义二维数组的时候,对其进行初始化是允许的,如选项B。 选项C和D定义的是字符指针变量,可以对其进行赋值。3 A解析:Str是地址常量,P是指针变量,两者类型不一致,选项B错误。Str数组的长度是20,而P所指的字符串遇到0就结

2、束,本题中其长度应该为7,选项C错误。同理,既然Str数组的长度与P所指字符串长度不同,所以存放的内容肯定不同,选项D错误。4 C解析:对于 数组P,只有三个元素,分别是a,b,c,所以sizeof(P)的输出结果应该是3 ,对于数组q,存储了四个元素,分别是a,b,c以及0。所以 sizeof(q)的输出结果是4。5 C解析:本题的分析同第4题。6 C解析:数组a中存储了7个字符,分别是a,0,0,0,a,0,0,当使用sizeof(a)统计计数的时候,会统计计算这7个字符,但是当用strlen(a)统计数组元素个数的时候,遇到0的时候就会结束,所以最终的输出结果是7 2 。7 B解析:ps

3、=s语句使ps指向数组s的首地址,即指向元素a,对于表达式*p+4,由于*的优先级高于+,所以进行间接访问运算,得到a,再+4,根据ascii码的顺序,最后的输出结果应该是e,答案为B。8 B解析:选项A的getc()函数完成的是从文件中读入一个字符,而不是题目所要求的从键盘读入一个字符,错误。选项C的getchar()函数每次读入的是一个字符变量,而不是字符串变量,错误。选项D的scanf()函数,通过格式控制符%s可以读入字符串变量,但是遇到空格会作为输入数据的分隔符,不会被作为数据读入。选项B gets()函数可以完成题目要求的功能,参见课本P92 例16。9 D解析:选项A中的参数2的

4、数据类型不匹配,应改为&x4,选项B中的y是指针常量,不能进行+运算,错误。 选项C中参数1对应的数组长度小于参数2 的数组长度,错误。10 B解析:strlen()函数统计字符串长度的时候,是在遇到0的时候结束统计。所以对于数组q来说,定义了数组的长度为10,并给前三个字符赋了初值,则从第4个字符开始,系统将数组元素的值置为0,所以strlen(q)的结果是3 。而对于数组p来说,数组长度为3,但是何时遇到0无法确定,所以strlen(p)的值也无法确认。11 D解析:函数f(char *p,int n)完成的功能就是对字符串进行字典排序,根据题目,最后将排在第2位的字符串是“abb

5、d”,所以strlen(p1)的输出结果应该是4。12 A 解析:*运算符和+运算符的优先级相同,且结合方向都是自右向左,所以结果是15 ,答案为A。13 D解析:根据函数代码,若返回的是正数,则表示a字符串的字典排序在b字符串之后,若返回0,表示a和b中存储的字符串一样,若返回负数,表示a字符串的字典排序在b字符串之前。14 A解析: point()函数传递的是指针变量的值,而不是指针变量本身的地址,仍然是一个传值而不是传地址的过程,实参的值没有改变,所以指针p仍然指向字符串的首地址,输出结果为a。15 D解析:比较字符串大小的时候,应该调用函数strcmp(),而不是直接进行比较,选项A错

6、误。对于选项B,只要s1和s2不相等,无论s1所指串是大于或是小于s2所指串,其结果非0,都会执行语句S,与题意不符,错误。选项C的函数实参顺序错误。16 B解析:对于二维数组,第二行的首元素是接着第一行的最后一个元素的。所以p+10是指向字符串“Beijing”的首地址,所以正确答案是B。17 D解析:对于格式控制符%s,在输出的时候遇到0才结束输出。所以答案为D18 B解析:gets()函数需要的参数是指针类型的。所以ACD都满足条件,答案B中的a0是字符,不是指针类型,错误。19 A解析:P4指向的应该是第5个字符串的首地址,即字符串“cd”,所以strlen(p4)的结果是2。20 C

7、解析:数组名是指针常量,不能对其进行赋值,所以选项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,都不满足条件(pij-0)%2,所以结果为C。25 A 解析:二维数组str的第二维

8、数是20,所以p+20保存的是字符串”Beijing”的首地址.strlen(p+20)输出的就是字符串”Beijing”的长度.结果为7。26 A 解析:while中的语句是*p2=*p1,注意,这是赋值语句,不是比较语句,正确答案为A27 C解析 : p=s1语句使得指针p指向字符串“two”的首地址,所以*(p+1)的输出结果是“two”的第二个字符w,正确答案为C。28 B解析: puts()函数实现的功能是输出字符串,for循环 中,ps的值首先保存最后一个字符地址,逐一 递减,输出的结果为B。29 D解析: strlen(p)遇到0结束执行。所以只统计了指针p指向的前5个字符“ab

9、cde”, 结果为5 。30 A解析: 字符串s中的存储字符有下面9个:,1,4,1,141,a,b,c,t,所以strlen(s)的结果为9。31 B解析: ch1 可以看作是二维数组的行指针,指向第二个字符串的首地址,注意输出中的转义字符” ,输出的结果是显示一个”.32 A解析:字符串常量“good!”赋给字符串变量时,再结尾自动加上字符0,这样就一共需要6个存储单元,但是选项A中的数组str的长度只有5,所以错误。33 D解析:程序执行while循环,最后一次执行中,pb指向b1的首地址,所以将b1全部拷贝给b2,所以程序的输出结果为7。34 D解析:s是数组名,为指针常量,不能进行s+=2这样的操作,所以程序出错。填空:1 gae 解析:main函数实现的功能是输出两个字符串中相等的字符。2 *2*4*6*8 解析: while循环实现的是将字符串的奇数位赋值为*,并输出,偶数位原样输出。3 *t+解析:注意变量t需要自加 。4 efgh解析:strlen(s)的值为4,所以指针变量p的起始地址是从字符e的地址开始,格式控制符%s输出遇到0结束。所以输出efgh。5 cdeab解析:move函数实现的功能是将字符串循环左移。6 si>=

温馨提示

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

评论

0/150

提交评论