1、第七章 字符串一、选择题(把正确选项的字母标号填到表格中)题号1234567891011121314151617181920答案- 4 -1.可以作为整体处理的字符序列是 。A) 数组 B)记录 C)字符 D)字符串 2. 字符串中的定界符是 。A)换行符 B)空字符 C)删除符 D)由程序员指定3.实现从键盘上读入一个字符串函数是 。 A) fgets B)getsC)getstr D)puts 4.下面可以正确判断出string1和string2内容相同的是 。A) if (string1 = string2)B) if (strcmp (string1, string2) = 0) C)
2、 if (strcmp (string1, string2) 0) 5.以下可以实现两个字符串连接的函数是 。A)stradd B)strcpy C)strcat D)strtok 6.下列程序执行后的输出结果是 。void main(void) char arr24;strcpy(arr,you); strcpy(arr1,me);arr03=&;printf(%sn,arr);A)you&me B)you C)me D)err7.调用gets和puts函数时,必须包含的头文件是 。A)stdio.hB)stdlib.hC)defineD)以上都不对8.下列关于字符串的说法中错误的是 。A)
3、在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符0作为字符串结束标志B)0作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入0D)在C语言中,字符串常量隐含处理成以0结尾9.阅读下列程序,则在执行后,程序的运行结果是 。#include stdio.h#include string.hvoid main(void)char a30=nice to meet you!;strcpy(a+strlen(a)/2,you);printf(%sn,a);A)nice to meet you you B)nice toC)meet you youD)ni
4、ce to you10.若有: char a15,b15=I love china;则在程序中能将字符串I love china赋给数组a的正确语句是 。A)a=I love china;B)strcpy(b,a);C)a=b;D)strcpy(a,b);11.若有:char s=china;char *p; p=s;则下列叙述正确的是 。A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组元素个数和p所指向的字符串的长度相等D)*p与s0相等12.若有:void main(void) char s=ABCD, *p;for(p=s+1; ps+4; p+)printf (%
5、sn,p);该程序的输出结果是 。A)ABCDBCDCDD B)ABCDC)BCDD)BCDCDD13.下面程序段的运行结果是 。char s20=abcdefgh;char *p = s + 4;printf(%dn,strlen(p);A)8B)12C)4D)714.下面说明不正确的是 。A)char a10=china;B)char *p=chinaC)char *p; p=china;D)char a10; a = china15.下面程序段中,输出*的个数是 。char *s=ta018bc;for(;*s!=0;s+)printf(*);A)9B)5C)6D)716.下面程序段的运
6、行结果是 。char a=lanuage,*p;p=a;while(*p!=u)printf(%c,*p-32);p+;A)LANGUAGEB)languageC)LAND)langUAGE17.下面程序段的运行结果是 。char str=ABC,*p=str;printf(%dn,*(p+3);A)67B)0C)字符C的地址D)字符C18.下面程序的输出结果是 。#include#includevoid main(void) char *p1=abc;char*p2=ABC;char str50= xyz;strcpy(str+2,strcat(p1,p2);printf(%sn,str);
7、A)xyzabcABCB)zabcABCC)xyabcABCD)yzabcABC19.设有如下定义:char *s2= abcd,ABCD;则下列说法错误的是 。A)s数组元素的值分别是abcd和ABCD两个字符串的首地址B)s是指针数组名,它含有两个元素分别指向字符型一维数组C)s数组的两个元素分别存放的是含有4个字符的一维字符数组中的元素D)s数组的两个元素中分别存放了字符a和A的地址20下面程序执行后的结果是 。#include stdio.hvoid main(void) char str=tomeetme,*p;for(p=str;pstr+7;p+=2)putchar(*p);pr
8、intf(n);A)tomeetmeB)tmemC)oeteD)tome二、判断题(错的填,对的填)题号123456789101112131415答案1.C语言中,使用字符数组存储字符串。2.C语言中,字符型指针也可以存储字符串。3.字符串常量的值是首字符的ASCII值。4. C语言中,存储字符串时是自左向右依次存放每个字符的ASCII值。5. C语言中,若要存储字符串“ABC”,就需要至少含3个元素的字符数组。6. 若有:char s=”abcd”; 则数组s的元素个数是5。7. 0与0的含义是一样的。8. C语言中,字符串的结束符是0。9. 若有: char name310 = “Lizh
9、i”,”Wangming”,”Sunhua”; 则name1的值是字符W的存储地址。10. 若有: char *p = “abc”; 则p的内容是字符串“abc”。11. 若有: char s = “中国”; 则s的元素个数是3。12. 若有: char s15 = “abcd”; 则strlen(s)的值是15。13. 若有: strcmp(s1,s2)的值大于零,说明字符串s1比字符串s2长。14. 若有: strcpy(s1,s2),则要求s1必须是字符型数组,且元素个数一定比 s2的串长度大。15. 若有: strcat(s1,s2),则要求s1必须是字符型数组,且元素个数一定比s1与
10、s2的串长度之和大。三、应用题1根据已知条件,把给定语句的输出结果写在表格中。已知条件char s = “Today”; char *p = s;语句输出结果printf(%sn,ABC);printf(%sn,s+2);printf(%sn,p);printf(%sn,p+2);printf(%cn,*p+1);2根据已知条件,把给定语句的输出结果写在表格中。已知条件char a48=“Wang”,“Liu”,“Ma”,“Huang”;语句输出结果printf(%sn, a);Wangprintf(%sn, a0);Wangprintf(%sn, a2);Maprintf(%sn, a3+2);angprintf(%cn, *a1);L四、编程题1.C语言程序设计习题解答与上机指导(第2版)第196页【编程6-1】。