实验五教案.docx

上传人:b****3 文档编号:2066573 上传时间:2022-10-26 格式:DOCX 页数:19 大小:23.98KB
下载 相关 举报
实验五教案.docx_第1页
第1页 / 共19页
实验五教案.docx_第2页
第2页 / 共19页
实验五教案.docx_第3页
第3页 / 共19页
实验五教案.docx_第4页
第4页 / 共19页
实验五教案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验五教案.docx

《实验五教案.docx》由会员分享,可在线阅读,更多相关《实验五教案.docx(19页珍藏版)》请在冰豆网上搜索。

实验五教案.docx

实验五教案

第五课

教学内容:

一维字符数组删除及统计类算法

教学目的:

掌握一维字符数组删除及统计类算法的考题

教学内容:

一、一维字符数组删除及统计类算法的考题特点

此类算法多以填空题和程序设计题为考试形式。

常见考点

1、在一维字符数组中删除指定的单个字符,删除符合某条件的多个字符。

2、统计一维字符数组中某个字符出现的次数,子串出现的次数。

二、课堂练习

第一套

1、程序填空题

下列给定程序中,函数fun()的功能是:

从字符串s中,删除所有小写字母’c’。

试题程序:

__1__//#include

voidfun(char*s)

{inti,j;

for(i=j=0;__2__;i++)//s[i]!

=’\0’

if(s[i]!

='c')

__3__;//s[j++]=s[i]

s[j]='\0';

}

main()

{chars[80];

printf("\nEnterastring:

");gets(s);

printf("Theoriginalstring:

");puts(s);

fun(s);

printf("Thestringafterdeleted:

");

puts(s);

printf("\n\n");

}

2、程序改错题

给定程序modi.c中函数fun的功能是:

删除字符串s中的所有空白字符(包括Tab字符、回车符及换行符)。

输入字符串时用'#'结束输入。

请改正程序中的错误,使它能输出正确的结果。

注意:

不要改动main函数,

#include

#include

#include

fun(char*p)

{inti,t;charc[80];

/************found************/

For(i=0,t=0;p[i];i++)//改:

for

if(!

isspace(*(p+i)))c[t++]=p[i];

/************found************/

c[t]="\0";//改:

’\0’

strcpy(p,c);

}

main()

{charc,s[80];

inti=0;

printf("Inputastring:

");

c=getchar();

while(c!

='#')

{s[i]=c;i++;c=getchar();}

s[i]='\0';

fun(s);

puts(s);

}

3、程序设计题

1)规定输入的字符串中只包含字母和*号。

请编写函数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的花括号中填入你编写的若干语句。

#include

#include

voidfun(char*a,intn)

{}

main()

{chars[81];intn;

printf("Enterastring:

\n");gets(s);

printf("Entern:

");scanf("%d",&n);

fun(s,n);

printf("Thestringafterdeleted:

\n");puts(s);

}

2)函数fun的功能是:

将s所指字符串中下标为偶数同时ASCII值也为偶数的字符删除,s中剩余的字符形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为"ABCDEFG12345",其中字符B的ASCII码值虽为偶数,但在数组中的下标为奇数,因此不能删除;而字符2的ASCII码值为偶数,在数组中的下标也为偶数,因此应当删除,其它依此类推。

最后t所指的数组中的内容应是"ABCDEFG135"。

注意:

部分源程序存在文件prog.c中。

请勿改动主函数main和其它函数中的任何内容,在函数fun的花括号中填入你编写的若干语句。

#include

#include

#include

voidfun(char*s,chart[])

{}

main()

{chars[100],t[100];

clrscr();

printf("\nPleaseenterstringS:

");scanf("%s",s);

fun(s,t);

printf("\nTheresultis:

%s\n",t);

}

第二套

1、程序填空题(找子串)

下列给定程序中,函数fun()的功能是:

计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。

#include

#include

#include

#defineN80

intfun(char*s,char*t)

{intn;

char*p,*r;

n=0;

while(*s)

{p=s;

r=t;

while(*r)

if(*r==*p){r++;____1____;}//p++

elsebreak;

if(*r==____2____)//’\0’

n++;

__3__;//s++,表示从s指向的下一个字符开始匹配

}

returnn;

}

main()

{chara[N],b[N];intm;

printf("\nPleaseenterstringa:

");gets(a);

printf("\nPleaseentersubstringb:

");gets(b);

m=fun(a,b);

printf("\nTheresultis:

m=%d\n",m);

}

2、程序改错题

文件MODI.C中程序的功能是:

统计一个英文句子中各小写的元音字母出现的次数。

例如,若输入字符串:

"Iamgladwhenplayinggames",则应输出:

a4e2i1o0u0。

注意:

请改正程序中的错误,使它能计算出正确的结果。

#include

#include

intvv[26];

voidVs(char*s)

{for(;*s;s++)

/************found**********/

switch(s);//改:

switch(*s)

{case('a'):

case('e'):

case('i'):

case('o'):

case('u'):

vv[*s-'a']++;

}

}

main()

{charstr[81],ww[6]={"aeiou"};

inti;

clrscr();

printf("\nPleaseenterastring:

\n");

gets(str);

Vs(str);

/************found**********/

for(i=0;i<6;i++)//改:

i<5

printf("\n%c==>%2d",ww[i],vv[ww[i]-ww[0]]);

getch();

}

3、程序设计题

1)请编写函数fun,函数的功能是:

在字符串中的所有数字字符前加一个$字符。

例如,输入A1B23CD45,则输出为:

A$1B$2$3CD$4$5。

注意:

部分源程序存在文件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

voidfun(char*s)

{}

main()

{chars[80];

printf("Enterastring:

");scanf("%s",s);

fun(s);

printf("Theresult:

%s\n",s);

}

2)请编写一个函数voidfun(char*tt,intpp[]),统计在tt字符串中'a'到'z'26个字母各自出现的次数,并由pp数组传回main函数。

运行时输入字符串:

abcdefgabcdeabc后,并且输出的结果应该是:

33322110000000000000000000

注意:

部分源程序存在文件prog.c中。

请勿改动主函数main和其它函数中的任何内容,在函数fun的花括号中填入你编写的若干语句。

#include

#include

voidfun(char*tt,intpp[])

{}

main()

{charaa[1000];

intbb[26],k,n;

clrscr();

printf("\nPleaseenteracharstring:

");scanf("%s",aa);

fun(aa,bb);

for(k=0;k<26;k++)printf("%d",bb[k]);

printf("\n");

}

三、课后练习

1、程序填空题

函数char*MyDelete(char*str,charc)的功能是:

在字符串str中删除变量c中的字符,有几个删几个,并返回所删字符的个数。

例如,若输入字符串"ababcbcdef"和字符'b',则应输出字符串"aaccdef"和3(表示删了3个字符'b')。

注意:

此程序存在prog.c中。

请勿改动主程序main、函数WriteData和函数compute中的任何内容,仅在函数MyDelete中的横线处填入适当内容并删除横线。

#include

#include

intMyDelete(char*str,charc)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1