深入研究字符指针.ppt

上传人:xin****828 文档编号:15774905 上传时间:2020-09-04 格式:PPT 页数:58 大小:1.83MB
收藏 版权申诉 举报 下载
深入研究字符指针.ppt_第1页
第1页 / 共58页
深入研究字符指针.ppt_第2页
第2页 / 共58页
深入研究字符指针.ppt_第3页
第3页 / 共58页
资源描述:

《深入研究字符指针.ppt》由会员分享,可在线阅读,更多相关《深入研究字符指针.ppt(58页珍藏版)》请在装配图网上搜索。

1、Lesson 11深入研究字符指针,字符指针,2006.4.47设有以下定义和语句 char st20 = Program, *p; p = st; 则以下叙述中正确的是 A)*p与st0的值相等 B)st与p的类型完全相同 C)st数组长度和p所指向的字符串长度相等 D)数组st中存放的内容和指针变量p中存放的内容相同,字符指针10-1,2007.9.29若有:char s =1,2,3, *p = s; 则以下不能计算出一个char型数据所占字节数的表达式是 A)sizeof(s) B)sizeof(char) C)sizeof(*p) D)sizeof(s0),字符指针10-2,2005

2、.3.42以下程序的运行结果是 char s = 159, *p = s; printf(%c, *p+); printf(%c, *p+);,15,2006.9.37以下程序的运行结果是 char s = aeiou, *p = s; printf(%cn, *p + 4);,字符指针10-3,2007.4.44以下程序的运行结果是 char s = aeiou, *p = s; printf(%cn, *(p + 4);,e,u,2010.9.22以下程序的运行结果是 char s = aeiou; printf(%c, *s + 2);,c,2009.9.20以下程序运行后n的值是 ch

3、ar *s = 012xy; int i, n = 0; for (i = 0; si != 0; i+) if (si = a ,字符指针10-4,2,2004.9.42以下程序的运行结果是 char s = Yesn/No, *p = s; puts(p + 4); *(p + 4) = 0; puts(s);,/No Yes,2004.9.36以下程序的运行结果是 char s = ABCD, *p; for (p = s+1; *p; p+) puts(p);,字符指针10-5,BCD CD D,2009.3.21以下程序的运行结果是 char *s = ABC; do printf(

4、%d, *s % 10); s+; while (*s);,567,2004.9.35以下程序的运行结果是 char st 10 = China, Beijing; char *p = st; printf(%sn, p + 10);,字符指针10-6,Beijing,2004.9.11以下程序的运行结果是 char a = Language, b = Programe; char *p1 = a, *p2 = b; int k; for (k = 0; k = 7; k+) if (*(p1 + k) = *(p2 + k) printf(%c, *(p1 + k);,gae,例以下程序的运

5、行结果是 char st = xyz, *p = st; while (*p) p+; for (p-; p - st = 0; p-) printf(%s, p);,字符指针10-7,zyzxyz,例以下程序的运行结果是 char st = Game; st += 2; printf(%d, st0); A)输出G的ASCII码 B)输出m的ASCII码 C)输出I的ASCII码 D)程序有错,2004.9.12以下程序的运行结果是 char a = 123456789, *p; int i = 0; p = a; while (*p) if (i % 2 = 0) *p = *; p+;

6、i+; puts(a);,字符指针10-8,*2*4*6*8*,例以下程序的运行结果是 char st 20 = I,Love,You, *p; p = (char *)st; printf(%dn, strlen(p + 20);,字符指针10-9,4,例以下程序的运行结果是 char sa = ABCDEFG, sb80, *p; p = sa + 3; while (-p = sa) strcpy(sb, p); printf(%dn, strlen(sb);,7,例以下程序的运行结果是 char fun(char ch) if (ch = A ,字符指针10-10,i love you

7、!,例以下程序的运行结果是 char s = ATM, *p = s; while (*p) printf(%c, *p+);,输出字符串,ATM,例以下程序的运行结果是 char s = ATM; for (i = 0; i strlen(s); i+) printf(%c, si);,ATM,例以下程序的运行结果是 char s = ATM; int i = 0; while (si) printf(%c, si+);,ATM,字符数组名作函数参数,例以下程序的运行结果是 int fun(char *p) int k = 0; while (pk) k+; return k; main()

8、 char a = NBA; printf(%d, fun(a); ,3,字符数组名作参数11-1,例以下程序的运行结果是 int fun(char *p) char *s = p; while (*p) p+; return p - s; main() char a = NBA; printf(%d, fun(a); ,3,字符数组名作参数11-2,例以下程序的运行结果是 void fun(char *p) int i; for (i = 0; i = a ,CHINA!,字符数组名作参数11-3,2005.3.14以下程序的运行结果是 void fun(char *s, int p, in

9、t k) int i; for (i = p; i k-1; i+) si = si+2; main() char s = abcdefg; fun(s, 3, strlen(s); puts(s); ,字符数组名作参数11-4,abcfg,2010.3.12以下程序的运行结果是 void f(char *s) int i, n = strlen(s); char t = sn-1; for (i = n - 1; i 0; i-) si = si-1; s0 = t; main() char s = abcdef; f(s); puts(s); ,字符数组名作参数11-5,fabcde,20

10、10.9.34以下程序的运行结果是 void fun(char *p) int i = 0; while (pi) if (pi= ,字符数组名作参数11-6,aB cD EFG !,2007.9.35以下程序的运行结果是 int fun(char s ) int n = 0; while (*s = 0) n = 10 * n + *s - 0; s+; return n; void main() char s10 = 61*4*9*0*; printf(%dn, fun(s); ,字符数组名作参数11-7,61,2006.4.37以下程序的运行结果是 void fun(char *p) c

11、har *q = p; while (*q != 0) (*q)+; q+; main() char a = Program, *p = ,Prohsbn,字符数组名作参数11-8,字符数组名作参数11-9,将a所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的新串放在t所指的数组中。 void fun(char *a, char *t) ,int i, j = 0; for (i = 0; i strlen(a); i += 2) if (ai % 2 = 0) tj+ = ai; tj = 0;,字符数组名作参数11-10,字符串中只包含字母

12、和*号,删除字符串中所有的*号,不得使用C语言提供的字符串函数。 void fun(char s ) ,int i = 0, j = 0; while (si) if (si != *) sj+ = si; i+; sj = 0;,字符数组名作参数11-11,字符串中只包含字母和*号,删除串尾部所有的*号,不得使用C语言提供的字符串函数。 void fun(char s ) ,char *p = s; while (*p) p+; p-; while (*p = * ,实现字符串函数,2 strcat函数,3 strcmp函数,1 strcpy函数,实现strcpy函数4-1,N,B,A,sb

13、,2,0,1,0,3,int i; for (i = 0; i = strlen(sb); i+) sai = sbi;,N,B,A,sa,0,实现strcpy函数4-2,N,B,A,sb,0,p = sa, w = sb; while (*w) *p = *w; w+; p+; ,N,B,A,sa,0,w,p,*p = 0;,*p = 0;,w,w,w,p,p,p,*p = *w;,实现strcpy函数4-3,N,B,A,sb,0,p = sa, w = sb; while (*p = *w) p+, w+; ,N,B,A,sa,0,w,p,w,w,w,p,p,p,实现strcpy函数4-4

14、,N,B,A,sb,0,p = sa, w = sb; while (*p+ = *w+);,N,B,A,sa,0,w,p,w,w,w,p,p,p,w,p,实现strcat函数2-1,m,e,0,sa,int i, a = strlen(sa), b = strlen(sb); for (i = 0; i = a; i+) sbb+i = sai;,L,O,V,sb,E,0,2,0,1,m,e,0,实现strcat函数2-2,m,e,0,sa,char *p = sa, *w = sb + strlen(sb);,L,O,V,sb,E,0,m,e,0,p,w,p,p,p,w,w,w,while

15、 (*w+ = *p+);,2004.4.14以下fun()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。 void fun(char *s, char *t) while (*s+ = _); main() char st130, st2 = abcdefgh; fun(st1, st2); printf(%sn, st1); ,习题演练4-1,*t+,2010.9.32以下不能将s所指字符串正确复制到t所指存储空间的是 A)while (*t = *s) t+; s+; B)for (i = 0; ti = si; i+); C)do *t+

16、= *s+; while (*s); D)for (i = j = 0; ti+ = sj+; );,习题演练4-2,2009.9.32下列函数的功能是 fun(char *a, char *b) while (*b = *a) != 0) a+; b+; A)将a所指字符串赋给b所指空间 B)使指针b指向a所指字符串 C)将a所指字符串和b所指字符串进行比较 D)检查a和b所指字符串中是否有0,习题演练4-3,习题演练4-4,字符串中只包含字母和*号,删除字符串中的前导*号,不得使用C语言提供的字符串函数。 void fun(char s ) char *p = s, *w = s; whi

17、le (*w = *) w+; while (*p+ = *w+) ; ,实现strcmp函数4-1,A,B,C,sa,D,int i = 0; while (sai = sbi) i+;,A,T,M,sb,0,if (sai sbi) return 1; else return 0;,0,2,0,1,3,4,0,2,1,3,实现strcmp函数4-2,A,B,0,sa,?,int i = 0; while (sai = sbi) i+;,A,B,0,sb,?,2,0,1,3,0,2,1,3,if (sai sbi) return 1; else return 0;,实现strcmp函数4-3

18、,A,B,0,sa,int i = 0; while(sai=sbi ,A,B,0,sb,2,0,1,3,0,2,1,3,if (sai sbi) return 1; else return 0;,实现strcmp函数4-4,A,B,C,sa,D,char *p = sa, *w = sb; while (*p = *w ,A,T,M,sb,0,if (*p *w) return 1; else return 0;,0,p,w,p,w,2005.3.43以下函数的功能是 fun(char *a, char *b) while (*a A)计算a和b所指字符串的长度之差 B)将b所指字符串复制到

19、a所指字符串中 C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小,习题演练,常用I/O函数,getchar函数8-1,2004.4.10运行时输入:12,则以下程序的输出结果是 char ch1, ch2; int n1, n2; ch1 = getchar(); ch2 = getchar(); n1 = ch1 - 0; n2 = n1 * 10 + (ch2 - 0); printf(%dn, n2);,12,getchar函数8-2,2005.9.35程序运行时输入:a,则叙述正确的是 char c1 = 1, c2 = 2; c1 = getchar(); c

20、2 = getchar(); putchar(c1); putchar(c2); A)变量c1被赋予字符a,c2被赋予回车符 B)程序将等待用户输入第2个字符 C)变量c1被赋予字符a,c2中仍是原有字符2 D)变量c1被赋予字符a,c2中将无确定值,getchar函数8-3,2010.3.15运行时输入:1234,则以下程序的输出结果是 char a,b,c,d; scanf(%c%c, A)1234 B)12 C)12 D)12 3 34,getchar函数8-4,2006.4.29运行时输入:123456,则以下程序的输出结果是 char c1, c2, c3, c4, c5, c6;

21、scanf(%c%c%c%c, A)1267 B)1256 C)1278 D)1245,getchar函数8-5,2006.4.22通过while循环不断读入字符,当读入字母N时结束循环。以下正确的程序是 A)while (ch = getchar() != N) printf(%c, ch); B)while (ch = getchar() != N) printf(%c, ch); C)while (ch = getchar() = N) printf(%c, ch); D)while (ch = getchar() = N) printf(%c, ch);,getchar函数8-6,20

22、09.3.22若有int n = 0; ,以下不能统计一行输入字符个数(不含回车符)的程序段是 A)while (ch = getchar() != n) n+; B)while (getchar() != n) n+; C)for ( ; getchar() != n; n+); D)for (ch = getchar(); ch != n; n+);,2007.4.7运行时输入:1234567890,则while循环体将执行的次数是 while (ch = getchar() = 0) printf(#);,0,getchar函数8-7,2009.3.10运行时输入:1abcedf2,则程

23、序的输出结果是 char a = 0, ch; while (ch = getchar() != n) if (a%2 != 0 ,1AbCeDf2,getchar函数8-8,2005.4.11已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33。输出结果是 char a, b; a = getchar(); scanf(%d, ,1,B,scanf函数6-1,2007.9.62010.9.7输入:1234567,则程序的输出结果是 int a = 1, b; scanf(%2d%2d, ,12,34,2006.9.18运行时输入:876 543.0,则变量a和b的值分别是

24、int a; float b; scanf(%2d%f, A)876和543.000000 B)87和6.000000 C)87和543.000000 D)76和543.000000,scanf函数6-2,2009.3.23使m的值为12,n的值为34,c1的值为字符a,c2的值为字符b,正确的输入格式是 int m, n; char c1, c2; scanf(%d%c%d%c, A)12a34b B)12 a 34 b C)12,a,34,b D)12 a34 b,2007.9.18输入:55566 7777abc,则程序运行后y的值为 int j; float y; char name5

25、0; scanf(%2d%f%s, ,566.0,scanf函数6-3,2005.4.19有以下程序,若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 int m, n, p; scanf(m=%dn=%dp=%d, A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789,scanf函数6-4,2004.9.26有以下程序 char a, b, c, d; scanf(%c,%c,%d,%d, 运行输入:6,5,65,66。则以下程序的输出结果是 A)6,5,

26、A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6,scanf函数6-5,2005.4.18有定义语句:int b; char c10;则正确的输入语句是 A)scanf(%d%s, ,2005.4.6若输入:10 20 30,则输出 int i = 0, j = 0, k = 0; scanf(%d%*d%d, ,10,30,0,scanf函数6-6,2009.3.8运行时输入: 65,则以下程序的输出结果是 char c1, c2; scanf(%c, A)A,a B)a,A C)6,5 D)无输出结果,11,本课小结,常用输入输出函数,字符数组名作函数参数,实现strcpy函数,实现strcat函数,实现strcmp函数,课后题:统计子串个数,编写函数fun,统计长度为2的字符串a在另一个字符串b中出现的次数。例如:若 a = he b = There are spots in the sun. 则函数返回2。 int fun(char a , char b ) . ,

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!