实验七教案文档格式.docx

上传人:b****7 文档编号:22841759 上传时间:2023-02-05 格式:DOCX 页数:28 大小:23.57KB
下载 相关 举报
实验七教案文档格式.docx_第1页
第1页 / 共28页
实验七教案文档格式.docx_第2页
第2页 / 共28页
实验七教案文档格式.docx_第3页
第3页 / 共28页
实验七教案文档格式.docx_第4页
第4页 / 共28页
实验七教案文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

实验七教案文档格式.docx

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

实验七教案文档格式.docx

___3___(a);

2、程序改错题

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

在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上;

并将该字符前的原字符向后顺序移动。

例如,调用fun函数之前给字符串输入:

ABCDeFGH,调用后字符中的内容为:

eABCDFGH。

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

注意:

不要改动main函数。

fun(char*p)

{charmax,*q;

inti=0;

max=p[i];

while(p[i]!

=0)

{if(max<

p[i])

{max=p[i];

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

p=q+i;

}

i++;

}

while(q<

p)

{*q=*(q-1);

q--;

p[0]=max;

main()

{charstr[80];

printf("

Enterastring:

"

gets(str);

\nTheoriginalstring:

puts(str);

fun(str);

\nThestringaftermoving:

\n\n"

}

3、程序设计题

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

移动字符串中的内容,移动的规则如下:

把第1到第m个字符平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

例如,字符串中原有的内容为:

ABCDEFGHIJK,m的值为3,则移动后字符串中的内容应该是:

DEFGHIJKABC。

注意:

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

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

string.h>

#defineN80

voidfun(char*w,intm)

{}

{chara[N]="

ABCDEFGHIJK"

;

intm;

Theoriginalstring:

\n"

puts(a);

\n\nEnterm:

scanf("

%d"

&

m);

fun(a,m);

第二套

1、程序填空题

给定程序中,函数fun的功能是:

求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。

ss所指字符串数组中共有M个字符串,且串长<

N。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

#defineM5

#defineN20

intfun(char(*ss)[N],int*n)

{inti,k=0,len=N;

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

for(i=0;

i<

___1___;

i++)

{len=strlen(ss[i]);

if(i==0)*n=len;

if(len___2___*n)

{*n=len;

k=i;

return(___3___);

{charss[M][N]={"

shanghai"

"

guangzhou"

beijing"

tianjing"

chongqing"

};

intn,k,i;

\nTheoriginalstringsare:

i<

M;

i++)puts(ss[i]);

k=fun(ss,&

n);

\nThelengthofshorteststringis:

%d\n"

n);

\nTheshorteststringis:

%s\n"

ss[k]);

从N个字符串中找出最长的那个串,并将其地址作为函数值返回。

各字符串在主函数中输入,并放入一个字符串数组中。

不要改动main函数。

#defineN5

#defineM81

fun(char(*sq)[M])

{inti;

char*sp;

sp=sq[0];

N;

i++)

if(strlen(sp)<

strlen(sq[i]))

sp=sq[i];

returnsq;

{charstr[N][M],*longest;

inti;

Enter%dlines:

N);

for(i=0;

i++)gets(str[i]);

\nTheNstring:

i++)puts(str[i]);

longest=fun(str);

\nThelongeststring:

puts(longest);

请编写一个函数fun(),它的功能是:

比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。

若两个字符串长度相等,则返回第1个字符串。

例如,输入nanjing<

CR>

nanchang<

(<

为回车键),函数将返回nanjing。

部分源程序给出如下。

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

#include<

char*fun(char*s,char*t)

{

chara[20],b[10],*p,*q;

Input1thstring:

gets(a);

Input2thstring:

gets(b);

%s"

fun(a,b));

第三套

给定程序功能是用冒泡法对6个字符串进行排序。

#defineMAXLINE20

fun(char*pstr[6])

{inti,j;

char*p;

for(i=0;

i<

5;

i++)

{for(j=i+1;

j<

6;

j++)

{

if(strcmp(*(pstr+i),___1___)>

0)

{p=*(pstr+i);

pstr[i]=___2___;

*(pstr+j)=___3___;

}

{inti;

char*pstr[6],str[6][MAXLINE];

for(i=0;

6;

i++)pstr[i]=str[i];

printf("

\nEnter6string(1stringateachline):

\n"

);

for(i=0;

i++)scanf("

pstr[i]);

fun(pstr);

Thestringsaftersorting:

);

i++)printf("

%s\n"

利用插入排序法对字符串中的字符按从小到大的顺序进行排序。

插入法的基本算法是:

先对字符串中的头两个元素进行排序。

然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;

再把第四个字符插入到前三个字符中,……。

待排序的字符串已在主函数中赋予。

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

#include"

stdio.h"

string.h"

voidinsert(char*aa)

{inti,j,n;

charch;

n=stlen(aa);

for(i=1;

n;

{c=aa[i];

j=i-1;

while((j>

=0)&

&

(ch<

aa[j]))

{aa[j+1]=aa[j];

j--;

aa[j+1]=ch;

{chara[N]="

QWERTYUIOPASDFGHJKLMNBVCXZ"

Theoriginalstring:

a);

insert(a);

Thestringaftersorting:

%s\n\n"

请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。

例如,原来的字符串为CEAedca,排序输出为CedcEAa。

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

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

ctype.h>

conio.h>

intfun(char*s,intnum)

{chars[10];

输入7个字符的字符串:

gets(s);

fun(s,7);

\n%s"

s);

第四套

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

先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

例如:

当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。

voidfun(char*s,char*t)

{inti,s1;

s1=__1__;

s1;

t[i]=s[__2__];

t[s1+i]=s[i];

t[__3___]='

\0'

{chars[100],t[100];

\nPleaseenterstrings:

scanf("

fun(s,t);

printf("

Theresultis:

t);

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

把m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt中。

把3个串:

abc"

CD"

EF"

串连起来,结果是"

abcCDEF"

请改正函数fun中的语法错误,使它能统计出正确结果。

intfun(charstr[][10],intm,char*pt)

{/************found************/

Intk,q,i;

for(k=0;

k<

m;

k++)

{q=strlen(str[k]);

for(i=0;

q;

pt[i]=str[k,i];

pt+=q;

pt[0]=0;

{intm,h;

chars[10][10],p[120];

\nPleaseenterm:

&

gets(s[0]);

\nPleaseenter%dstring:

m);

for(h=0;

h

fun(s,m,p);

\nTheresultis:

p);

将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

例如,字符串数组中的M个字符串为:

AAAABBBBBBBCC则合并后的字符串的内容应是:

AAAABBBBBBBCC。

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

#defineM3

voidfun(chara[M][N],char*b)

{chars[M][N]={"

AAAA"

BBBBBBB"

CC"

},p[100];

fun(s,p);

三、课后练习

求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。

字符串数组中共有M个字符串,且串长<

不得增行或删行,也不得更改程序的结构!

voidfun(char(*ss)[N])

{inti,j,k=0,n,m,len;

if(i==0)n=len;

if(len>

n)

n=len;

___1___=i;

if(i!

=k)

{m=n;

len=strlen(ss[i]);

for(j=___2___;

j>

=0;

j--)

ss[i][m--]=ss[i][j];

for(j=0;

j<

n-len;

___3___='

*'

}

cchongqing"

ss[i]);

fun(ss);

\nTheresult:

2、程序填空题

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

__1__fun(char(*sq)[M])

___2___;

strlen(__3__))

returnsp;

{charstr[N][M],*longest;

Enter%dlines:

\n"

\nThe%dstring:

\nThelongeststring:

puts(longest);

3、程序填空题

将字符串p中所有字符复制到字符串b中,要求每复制3个字符之后插入一个空格。

例如,在调用fun()函数之前给字符串a输入ABCDEFGHIJK,调用函数之后,字符串b中的内容则为ABCDEFGHIJK。

voidfun(char*p,char*b)

{inti,k=0;

while(__1__)

{i=0;

while(__2__&

*p)

{b[k]=*p;

k++;

p++;

i++;

if(*p)

{b[__3__]='

'

b[k]='

{chara[80],b[80];

puts(a);

fun(a,b);

\nThestringafterinsertspace:

puts(b);

\n\n"

4、程序填空题

请补充函数fun,该函数的功能是比较字符串str1和str2的大小,并返回比较的结果。

当str1=“cdef”,str2=“cde”时,函数fun()返回“>

”。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

char*fun(char*str1,char*str2)

{char*p1=str1,*p2=str2;

while(*p1&

*p2)

{if(【1】)

return"

<

if(【2】)

>

p1++;

p2++;

if

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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