实验五教案含答案

上传人:汽*** 文档编号:510902109 上传时间:2024-02-02 格式:DOC 页数:14 大小:107.51KB
返回 下载 相关 举报
实验五教案含答案_第1页
第1页 / 共14页
实验五教案含答案_第2页
第2页 / 共14页
实验五教案含答案_第3页
第3页 / 共14页
实验五教案含答案_第4页
第4页 / 共14页
实验五教案含答案_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《实验五教案含答案》由会员分享,可在线阅读,更多相关《实验五教案含答案(14页珍藏版)》请在金锄头文库上搜索。

1、第五课教学内容:一维字符数组删除及统计类算法教学目的:掌握一维字符数组删除及统计类算法的考题教学内容:一、一维字符数组删除及统计类算法的考题特点此类算法多以填空题和程序设计题为考试形式。常见考点1、在一维字符数组中删除指定的单个字符,删除符合某条件的多个字符。2、统计一维字符数组中某个字符出现的次数,子串出现的次数。二、课堂练习第一套1、程序填空题下列给定程序中,函数 fun()的功能是:从字符串 s 中,删除所有小写字母c。 试题程序: _1_ /# include void fun(char *s) int i, j; for(i=j=0;_2_;i+) /si!= 0if(si!= c)

2、 _3_; /sj+=si;sj=0; main() char s80; printf(nEnter a string: ); gets(s); printf(The original string: ); puts(s); fun(s); printf(The string after deleted: ); puts(s); printf(nn ); 2、程序改错题给定程序 modi.c 中函数 fun 的功能是:删除字符串 s 中的所有空白字符(包括 Tab 字符、回车符及换行符)。 输入字符串时用#结束输入。 请改正程序中的错误,使它能输出正确的结果。 注意:不要改动 main 函数,

3、 #include #include #include fun ( char *p) int i,t; char c80; /*found*/ For (i = 0,t = 0; pi ; i+) /forif(!isspace(*(p+i) ct+=pi; /*found*/ ct=0; / ct= 0; strcpy(p,c); main( ) char c,s80; int i=0; printf(Input a string:); c=getchar(); while(c!=#) si=c;i+;c=getchar(); si=0; fun(s);puts(s); 3、程序设计题1)规

4、定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:使字符串最前面连续的*号不得多于 n 个;若多于 n 个,则删除多余的*号;若少于或等于 n 个,则什么也不做,字符串中间和尾部的*号不删除。例如,字符串中的内容为:*A*BC*DEF*G*,若 n 的值为 4,删除后,字符串中的内容应当是:*A*BC*DEF*G*;若 n 的值为 8,则字符串中的内容仍为:*A*BC*DEF*G*。n 的值在主函数中输入。在编写函数时,不得使用C 语言提供的字符串函数。 注意:部分源程序存在文件 prog.c 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中

5、填入你编写的若干语句。 #include #include void fun(char *a, int n) int i,j,k=0;for(i=0;ai=*;i+);if(in)for(j=i-n;aj!=0;j+)ak+=aj;ak=0; main() char s81;int n; printf(Enter a string:n); gets(s); printf(Enter n:); scanf(%d,&n); fun(s,n); printf(The string after deleted:n); puts(s); 2)函数 fun 的功能是:将 s 所指字符串中下标为偶数同时 A

6、SCII 值也为偶数的字符删除, s 中剩余的字符形成一个新串放在 t 所指的数组中。 例如,若 s 所指字符串中的内容为ABCDEFG12345,其中字符 B 的 ASCII 码值虽为偶数,但在数组中的下标为奇数,因此不能删除;而字符 2 的 ASCII 码值为偶数, 在数组中的下标也为偶数,因此应当删除,其它依此类推。 最后 t 所指的数组中的内容应是ABCDEFG135。 注意: 部分源程序存在文件 prog.c 中。请勿改动主函数 main 和其它函数中的任何内容,在函数 fun 的花括号中填入你编写的若干语句。 #include #include #include void fun(

7、char *s, char t) int i,j=0;for(i=0;si!=0;i+)if( ! (i%2=0 & si%2=0) )tj+=si;tj=0; main() char s100, t100; printf(nPlease enter string S:); scanf(%s, s); fun(s, t); printf(nThe result is: %sn, t); 第二套1、程序填空题(找子串)下列给定程序中,函数 fun()的功能是:计算 s 所指字符串中含有 t 所指字符串的数目,并作为函数值返回。 #include #include #include #define

8、 N 80 int fun(char *s,char *t) int n; char *p, *r; n=0; while(*s) p=s; r=t; while(*r) if(*r=*p) r+; _1_; /p+ else break; if(*r=_2_) /0n+; _3_; / s+ return n; main() char aN,bN; int m; printf(nPlease enter string a: );gets(a); printf(nPlease enter substring b: ); gets(b); m=fun(a,b); printf(nThe resu

9、lt is :m=%dn,m); 2、程序改错题文件 MODI.C 中程序的功能是:统计一个英文句子中各小写的元音字母出现的次数。 例如,若输入字符串: I am glad when playing games,则应输出: a 4 e 2 i 1 o 0 u 0 。注意:请改正程序中的错误,使它能计算出正确的结果。 #include #include int vv26; void Vs( char* s ) for( ; *s; s+ ) /*found*/ switch( s );/ switch( *s ) case( a ): case( e ): case( i ): case( o

10、): case( u ): vv *s - a +; main() char str81, ww6 = aeiou ; int i; printf( nPlease enter a string:n ); gets( str ); Vs( str ); /*found*/ for( i = 0; i 6; i+ ) / for( i = 0; i %2d, wwi, vv wwi - ww0 ); getch(); 3、程序设计题1)请编写函数 fun,函数的功能是:在字符串中的所有数字字符前加一个$字符。例如,输入A1B23CD45,则输出为:A$1B$2$3CD$4$5。 注意:部分源程序

11、存在文件 prog.c 中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void fun(char *s) int i,j=0,t80;for(i=0;si!=0;i+)if(si=0&si=9)tj+=$; tj+=si; elsetj+=si;tj=0;for(i=0;ti!=0;i+)si=ti;si=0; main() char s80; printf(Enter a string:); scanf(%s, s); fun(s); printf(The result:%sn, s); 2)请编写一个函数 void fu

12、n(char *tt, int pp),统计在 tt 字符串中 a 到 z 26 个字母各自出现的次数,并由 pp 数组传回 main 函数。 运行时输入字符串:abcdefgabcdeabc 后,并且输出的结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意:部分源程序存在文件 prog.c 中。 请勿改动主函数 main 和其它函数中的任何内容,在函数 fun 的花括号中填入你编写的若干语句。 #include #include void fun(char *tt, int pp) int i;for(i=0;i=a&tti=z)pp tti-a +; main( ) char aa1000 ; int bb26, k, n ;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号