为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

10_字符串与字符指针

2011-08-23 50页 ppt 2MB 45阅读

用户头像

is_234143

暂无简介

举报
10_字符串与字符指针nullLesson 10 字符串与字符指针Lesson 10 字符串与字符指针mtysoft@163.comASCII码ASCII码'A' = 65'a' = 97' ' = 32'0' = 48常见字符 的ASCII码整型与字符型整型与字符型黄建语录四:整型和字符型通用。[2007.4]已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是 A)c = (c - 'A') % 26 + 'a' B)c = c + 32 C)c = c - 'A...
10_字符串与字符指针
nullLesson 10 字符串与字符指针Lesson 10 字符串与字符指针mtysoft@163.comASCII码ASCII码'A' = 65'a' = 97' ' = 32'0' = 48常见字符 的ASCII码整型与字符型整型与字符型黄建语录四:整型和字符型通用。[2007.4]已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是 A)c = (c - 'A') % 26 + 'a' B)c = c + 32 C)c = c - 'A' + 'a' D)c = ('A' + c) % 26 - 'a'习题演练习题演练[2009.9.23]'A'的ASCII码为65,则程序输出 char c1, c2; c1 = 'A' + '8' - '4'; c2 = 'A' + '8' - '5'; printf("%c,%d\n", c1, c2);[2005.4.16]'0'的ASCII值为48,则程序输出 char a = '1', b = '2'; printf("%c,", b++); printf("%d", b - a);2,2E,68转义字符转义字符字符数组与串2-1字符数组与串2-1char sa[ ] = {'N','B','A'};'N''B''A'sa201char sb[ ] = "NBA";'N''B''A''\0'sb201334字符数组与串2-2字符数组与串2-2'N''B''A'sa201'N''B''A''\0'sb2013char sa[ ] = {'N','B','A','\0'};char sb[ ] = "NBA";44'\0'3null区分'0'与'\0'习题演练2-1习题演练2-1[2008.9.18]以下程序运行后,w的值是 int w = 'A'; char x = '0', y = '\0'; w = ((x || y) && (w < 'a'));[2008.9.13]以下不能作为C合法常量的是 A)'cd' B)0.1e+6 C)"\a" D)"\011"1[2006.9.24]以下选项中,值为1的达式是 A)1 - '0' B)1 - '\0' C)'1' - 0 D)'\0' - '0'习题演练2-2习题演练2-2[2005.4.25]以下能正确定义一维数组的选项是 A)int a[5] = {0,1,2,3,4,5}; B)int a[5] = "0123"; C)char a = {'A','B','C'}; D)char a[ ] = {0,1,2,3,4,5};[2005.4.27]若已有定义:char a[ ] = "xyz", b[ ] = {'x','y','z'};则以下选项正确的是 A)数组a和b的长度相同 B)a数组长度小于b C)a数组长度大于b D)上述说法都不对字符串函数字符串函数输出字符串输出字符串'N''B''A'sa201'\0'3char sa[4] = "NBA"; for (i = 0; i < 3; i++) printf("%c", sa[i]); NBAprintf("%s", sa);NBAputs(sa);NBA习题演练习题演练char sa[7] = "ABC\0TV";ABCputs(sa+1);'A''B''C'sa'\0''T''V''\0'2013546printf("%s", sa+4);printf("%s", sa);BCTV字符串函数字符串函数gets与scanfgets与scanf函数读取字符串,直至遇到换行符为止,然后把换行符替换为空字符'\0'。函数遇到空格或换行符时输入结束,输入有空格的字符串时,须用gets。gets函数3-1gets函数3-1[例]若运行时输入:AB CD<回车>AB CD<回车>,则以下程序运行结果是 char st1[80], st2[80]; gets(st1); scanf("%s", st2); puts(st1); puts(st2);AB CD AB[2004.4.35]有以下定义:char a[10], *p = a; 不能给数组a输入字符串的语句是 A)gets(a); B)gets(a[0]); C)gets(&a[0]); D)gets(p);gets函数3-2gets函数3-2[2006.4.17]若要求从键盘读入含有空格字符的字符串,应使用函数 A)getc() B)gets() C)getchar() D)scanf()[2009.9.31]以下叙述中错误的是 A)不可以用赋值语句给字符数组名赋字符串 B)可以用输入语句把字符串整体输入给字符数组 C)字符数组中的内容不一定是字符串 D)字符数组只能存放字符串gets函数3-3gets函数3-3[2003.9.19]填空实现程序功能:将字符串s中的数字字符放入数组a中,并输出。例如,输入字符串:abc123edf456gh,则输出:123456。 char s[80], a[80]; int i, j = 0; gets(s); for (i = 0; s[i] != '\0'; i++) if (_______________________) a[j++] = s[i]; a[j] = '\0'; puts(a);s[i]>='0' && s[i]<='9'字符串函数字符串函数字符串长度字符串长度'N''B''A'sa201'\0'3char sa[4] = "NBA";int k = strlen(sa);3printf("%d", k);strlen与sizeofstrlen与sizeof'N''B''A'sa201'\0'3char sa[4] = "NBA";int k = strlen(sa), v = sizeof(sa);k = 3, v = 4printf("k = %d, v = %d", k, v);strlen函数4-1strlen函数4-1char sa[7] = "ABC\0TV";3,printf("%d,", strlen(sa+1));'A''B''C'sa'\0''T''V''\0'2013546printf("%d,", strlen(sa+4));printf("%d,", strlen(sa));2,2,printf("%d,", sizeof(sa));7,strlen函数4-2strlen函数4-2[2004.4.31]以下程序的运行结果是 char a[ ] = "abcdefg", b[10] = "abcdefg"; printf("%d,%d", sizeof(a), sizeof(b));8,10[2005.4.24]以下程序的运行结果是 char a[7] = "a0\0a0\0"; printf("%d,%d", sizeof(a), strlen(a));7,2[2007.4.12]以下程序的运行结果是 char a[ ] = {'\1','\2','\3','\4','\0'}; printf("%d,%d", sizeof(a), strlen(a));5,4strlen函数4-3strlen函数4-3[2007.4.10]以下程序的运行结果是 printf("%d", strlen("IBM\n012\1\\"));[2010.3.31]以下程序的运行结果是 char s1[10] = "abcd!", *s2 = "\n123\\"; printf("%d,%d", strlen(s1), strlen(s2));95,5[2010.9.23]以下程序的运行结果是 char x[ ] = "STRING"; x[0] = 0; x[1] = '\0'; x[2] = '0'; printf("%d,%d", sizeof(x), strlen(x));7,0strlen函数4-4strlen函数4-4[例]char sa[ ]={'a','b'}, sb[10]={'a','b'}; printf("%d,%d", strlen(sa), strlen(sb)); A)在给sa和sb数组置初值时,系统会自动添加字符串结束符,故输出的长度都为2 B)由于sa数组中没有字符串结束符,长度不能确定;但sb数组中字符串长度为2 C)由于sb数组中没有字符串结束符,长度不能确定;但sa数组中字符串长度为2 D)由于sa和sb数组中都没有字符串结束符,故长度都不能确定字符串函数字符串函数字符串拷贝3-1字符串拷贝3-1'N''B''A'sa201'\0'3char sa[4] = "NBA", sb[4];strcpy(sb, sa);printf("sa = %s, sb = %s", sa, sb);'N''B''A'sb'\0'字符串拷贝3-2字符串拷贝3-2'N''B''A'sa201'\0'3char sa[4] = "NBA", sb[4];strcpy(sb, "YOU");printf("sa = %s, sb = %s", sa, sb);'Y''O''U'sb'\0'字符串拷贝3-3字符串拷贝3-3'm''e''\0'sachar sa[3] = "me", sb[5] = "LOVE";strcpy(sb, sa);'L''O''V'sb'E''\0'201'm''e''\0'sa = me, sb = mestrcpy函数2-1strcpy函数2-1char sa[7] = "ABC\0TV", sb[7];strcpy(sb+2, sa+4);'A''B''C'sa'\0''T''V''\0'2013546strcpy(sb, sa);'A''B''C'sb'\0''T''V''\0'strcpy(sb+strlen(sb), sa+1);'B''C''\0'strcpy函数2-2strcpy函数2-2[2005.3.15]以下程序的运行结果是 char s[ ] = "abc", t[3][4]; for (i=0; i<3; i++) strcpy(t[i], s); for (i=0; i<3; i++) puts(&t[i][i]);[2006.9.39]有定义:char *p = "abcdefghi"; 以下选项中正确运用了strcpy函数的是 A)char s[10]; strcpy(s, p[4]); B)char s[10]; strcpy(++s, &p[1]); C)char s[10], *w; strcpy(w=s+5, p); D)char s[10], *w; strcpy(w=s+1, p+1);abc bc c字符串函数字符串函数字符串连接字符串连接'm''e''\0'sa'L''O''V'sb'E''\0'201'm''e''\0'sa = me, sb = LOVEmechar sa[3] = "me", sb[7] = "LOVE";strcat(sb, sa);strcat函数3-1strcat函数3-1'm''e''\0'sachar sa[3] = "me", sb[7] = "LOVE";strcpy(sb + strlen(sb), sa);'L''O''V'sb'E''\0'201'm''e''\0'sa = me, sb = LOVEmestrcat函数3-2strcat函数3-2[2007.4.37]以下程序的运行结果是 char p[20] = {'a','b','c','d'}; char q[ ] = "abc", r[ ] = "abcde"; strcpy(p + strlen(q), r); strcat(p, q); printf("%d%d", sizeof(p), strlen(p));2011[2007.4.38]以下程序的运行结果是 char p[20] = {'a','b','c','d'}; char q[ ] = "abc", r[ ] = "abcde"; strcat(p, r); strcpy(p + strlen(q), q); printf("%d%d", sizeof(p), strlen(p));206strcat函数3-3strcat函数3-3[2001.4.43]程序运行时,输入:ABC,则输出 char s[10] = "1,2,3,4,5"; gets(s); strcat(s, "6789"); printf("%s", s);ABC6789[2010.9.33]以下程序的运行结果是 char a[20] = "ABCD\0EFG\0"; char b[ ] = "IJK"; strcat(a, b); printf("%s", a);ABCDIJK字符串函数字符串函数字符串比较字符串比较int a, b, c, d, e, f; char sa[4] = "ATM", sb[8] = "ATM";b = strcmp("ATM", "ABCD");c = strcmp("ATM", "ATM");d = strcmp("ATM ", "ATM");e = strcmp("ABCD", "abcd");f = strcmp(sa, sb);a = strcmp("ABCD", "ATM");a = -1b = 1c = 0d = 1e = -1f = 0习题演练2-1习题演练2-1[例]以下程序的运行结果是 char sa[8] = "MATCH", sb[6] = "MVP"; char sc[8] = "MVP", *p = sc; printf("%d,", strcmp(sa, sb)); printf("%d,", strcmp(sb, sc)); if (sb==sc) printf("sb和sc地址相同,"); else printf("sb和sc地址不同,"); if (p==sc) printf("p和sc地址相同"); else printf("p和sc地址不同");-1,0,sb和sc地址不同,p和sc地址相同习题演练2-2习题演练2-2[2004.9.31]能实现当s1串大于s2时执行S的是 A)if (s1 > s2) S; B)if (strcmp(s1, s2)) S; C)if (strcmp(s2, s1) > 0) S; D)if (strcmp(s1, s2) > 0) S;[2010.9.31]下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST”要求的是 A)if (strcmp(s2, s1) == 0) ST; B)if (s1 == s2) ST; C)if (strcpy(s1, s2) == 1) ST; D)if (s1-s2 == 0) ST;区分'A'与"A"区分'A'与"A"'A'"A"与null字符数组与指针6-1字符数组与指针6-1char s[4] = "BOY", *p; p = s; *p = 'D'; p++; *p = 'I'; printf("%s", s);1996 2000 2001 2002 2003??20002001'B''O''Y''\0''I''D' p s[0] s[1] s[2] s[3]栈DIY字符数组与指针6-2字符数组与指针6-2char s[4] = "BOY"; char *p = "BOY"; s[1] = 'M'; s[2] = 'W';7000'B''O''Y''\0''M'p栈'W''B''O''Y''\0'7000 7001 7002 7003s[0] s[1] s[2] s[3]堆字符数组与指针6-3字符数组与指针6-3char s[4], *p; strcpy(s, "BOY"); p = "BOY";??????p栈'B''O''Y''\0'7000 7001 7002 7003s[0] s[1] s[2] s[3]堆1996 2000 2001 2002 2003'B''O''Y''\0'7000字符数组与指针6-4字符数组与指针6-41996 2000 2001 2002 2003char s[4], *p;??????p栈'B''O''Y''\0'7000 7001 7002 7003s[0] s[1] s[2] s[3]堆字符数组与指针6-5字符数组与指针6-5char s[4], *p; p = s; strcpy(p, "BOY");??????p栈'B''O''Y''\0'7000 7001 7002 7003s[0] s[1] s[2] s[3]堆2000 2001 2002 2003'B''O''Y''\0'2000字符数组与指针6-6字符数组与指针6-6正确: char s[3] = "me"; char s[3] = {"me"}; char s[ ] = {'m','e','\0'}; char s[3]; strcpy(s,"me"); 错误: char s[3]; s = "me";正确: char *p = "me"; char *p = {"me"}; char *p; p = "me"; char s[3], *p = s; strcpy(p,"me"); 错误: char *p; *p = "me"; char *p; strcpy(p,"me");字符数组与指针3-1字符数组与指针3-1[2010.3.23]以下能正确进行字符串赋值的是 A)char *s; s = "Olympic"; B)char s[8]; s = "Olympic"; C)char *s; s = {"Olympic"}; D)char s[8]; s = {"Olympic"};[2005.4.39]以下能正确进行字符串赋值的是 A)char *p; *p = "right!"; B)char s[10]; s = "right!"; C)char s[10]; *s = "right!"; D)char *p = "right!";字符数组与指针3-2字符数组与指针3-2[2004.4.44]以下错误的程序段是 A)char s[6] = "abcd"; B)char t[ ] = "abcd", *s = t; C)char s[6]; s = "abcd"; D)char s[6]; strcpy(s, "abcd");[例]以下能正确进行字符串赋值的是 A)char st[4] = "Good"; B)char st[5]; st[0] = 'G'; C)char *st; *st = "Good"; D)char st[5] = {'G','o','o','d'};字符数组与指针3-3字符数组与指针3-3[2009.9.37]若有:char *p;则选项中正确的是 A)char st[ ] = "string"; p = st; B)scanf("%s", p); C)p = getchar(); D)*p = "string";[2006.4.15]以下能正确进行字符串赋值的是 A)char st[ ] = {'\064'}; B)char st = "kx43"; C)char st = ''; D)char st[ ] = "\0";本课小结本课小结字符数组与字符指针ASCII 码与转义字符字符串函数'0'与'\0''A'与"A"课后题:大小写转换课后题:大小写转换请编写函数fun,它的功能是:将s所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 void fun(char *s) { }
/
本文档为【10_字符串与字符指针】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索