实验七教案文档格式.docx
- 文档编号:22841759
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:28
- 大小:23.57KB
实验七教案文档格式.docx
《实验七教案文档格式.docx》由会员分享,可在线阅读,更多相关《实验七教案文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
___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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 教案