C语言程序设计PPT第10章字符串配套教材高等教育出版社清华大学出版社教程.pptx
文本预览下载声明
第10章 字符串;10.1 用一维字符数组存放字符串
10.2 使指针指向一个字符串
10.3 字符串的输入和输出
10.4 字符串数组
10.5 用于字符串处理的函数
10.6 程序举例;用来存放字符数据的数组是字符数组
字符数组中的一个元素存放一个字符
定义字符数组的方法与定义数值型数组的方法类似;char c[10];
c[0]=’I’; c[1]=’ ’;
c[2]=’a’; c[3]=’m’;
c[4]=’ ’; c[5]=’h’;
c[6]=’a’; c[7]=’p’;
c[8]=’p’; c[9]=’y’;;char c[10]={’I’,’ ’,’a’,’m’,’ ’,’h’,’a’,’p’,’p’,’y’};
char c[10]={’c’,’ ’,’p’,’r’,’o’,’g’,’r’,’a’,’m’};;;以下叙述中正确的是
A) 语句int a[8] = {0}; 是合法的
B) 语句 int a[] = {0};是不合法的,遗漏了数组的大小
C) 语句 char a[2] = {A, B}; 是合法的,定义了一个包含两个字符的数组
语句 char a[3]; a = AB; 是合法的,因为数组有三个字符空间的容量,可以保存两个字符
参考答案:A
【解析】B选项中,如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数;C选项中,char a[2] = {A, B};不合法,应为char a[2] = {A, B};;D选项中,用字符串方式赋值比用字符逐个赋值要多占1个字节,在该选项中应为3个字节。因此A选项正确。;设有如下程序段
int a[8] = {0};
int b[] = {0};
char c[2] = {A, B};
char d = AB;
以下叙述正确的是
A) 只有a, b的定义是合法的
B) a,b,c,d的定义都是合法的
C) 只有a,b,c的定义是合法的
D) 只有c的定义是合法的
参考答案:A;以下选项中,没有编译错误的是
A) char str3[] = {d, e, b, u, g, \0};
B) char str1[5] = pass, str2[6]; str2 = str1;
C) char name[10]; name = china;
D) char str4[]; str4 = hello world;
参考答案:A
【解析】B选项中,不能直接将字符数组名直接赋值给另一个字符数组名。C选项赋值错误,不能将一个字符串常量赋值给一个字符指针。D选项定义str4时需要定义其长度。;以下叙述中正确的是
A) 在语句char str[] = string!;中,数组str的大小等于字符串的长度
B) 语句 char str[10] = string!; 和 char str[10] = {string!}; 并不等价
C) 对于一维字符数组,不能使用字符串常量来赋初值
D) 对于字符串常量 string!,系统已自动在最后加入了\0字符,表示串结尾
参考答案:D
【解析】字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符 \0自动附加到字符串的尾部作为字符串的结束标志。故字符个数为n的字符串在内存中应占(n+1)个字节。B选项中两者等价,C选项中可以使用字符串常量来给一维字符数组赋值,就像B选项中一样,A选项中数组长度比字符串长度小一个字节,字符串中包含隐含的结尾符。;有以下程序
#include stdio.h
main()
{
char s[]={012xy};
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]=as[i]=z)
n++;
printf(%d\n,n);
}
程序运行后的输出结果是
A) 0
B) 2
C) 3
D) 5
参考答案:B
【解析】程序首先给字符数组s[ ]赋值为012xy,for循环语句的功能是遍历字符串,通过if条件语句对字符串中的小写字母计数,在符串中小写字母为2个,即n=2。因此B选项正确。;有以下程序
#include stdio.h
main()
{ char s[]=abcde;
s+=2;
printf(%d\n,s[0]);
}
执行后的结果是
A) 输出字符c的ASCII码
B) 程序出错
C) 输出字符c
D) 输出字符a的ASCII码
;若有以
显示全部