阶乘字符统计和删除改写排序.docx

上传人:b****8 文档编号:9713277 上传时间:2023-02-06 格式:DOCX 页数:9 大小:16.51KB
下载 相关 举报
阶乘字符统计和删除改写排序.docx_第1页
第1页 / 共9页
阶乘字符统计和删除改写排序.docx_第2页
第2页 / 共9页
阶乘字符统计和删除改写排序.docx_第3页
第3页 / 共9页
阶乘字符统计和删除改写排序.docx_第4页
第4页 / 共9页
阶乘字符统计和删除改写排序.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

阶乘字符统计和删除改写排序.docx

《阶乘字符统计和删除改写排序.docx》由会员分享,可在线阅读,更多相关《阶乘字符统计和删除改写排序.docx(9页珍藏版)》请在冰豆网上搜索。

阶乘字符统计和删除改写排序.docx

阶乘字符统计和删除改写排序

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

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

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

#include

#include

#defineM5

#defineN20

voidfun(char(*ss)[N])

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

for(i=0;i

{len=strlen(ss[i]);

if(i==0)n=len;

if(len>n){

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

n=len;___1k___=i;

}

}

for(i=0;i

if(i!

=k)//如果本身不是最大长度

{m=n;

len=strlen(ss[i]);

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

for(j=___2len___;j>=0;j--)

ss[i][m--]=ss[i][j];//字符串右对齐

for(j=0;j

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

___3ss[i][j]___='*';

}

}

main()

{charss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};

inti;

printf("\nTheoriginalstringsare:

\n");

for(i=0;i

printf("\n");

fun(ss);

printf("\nTheresult:

\n");

for(i=0;i

}

给定程序MODI1.C中函数fun的功能是:

计算整数n的阶乘。

请改正程序中的错误或在下划线处填上适当的内容并把下划线删除,使它能计算出正确的结果。

#include

doublefun(intn)

{

doubleresult=1.0;

while(n>1&&n<170)

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

result*=--n;改为result*=(double)n--;

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

return_____;改为returnresult;

}

main()

{

intn;

printf("Enteraninteger:

");

scanf("%d",&n);

printf("\n\n%d!

=%lg\n\n",n,fun(n));

}

编写函数fun的功能是:

从s所指的字符串中删除给定的字符。

同一字母的大、小写按不同字符处理。

若程序执行时输入字符串为:

turbocandBorlandc++从键盘上输入字符:

n,则输出后变为:

turbocadborladc++如果输出的字符在字符串中不存在,则字符串照原样输出。

#include

#include

voidfun(chars[],charc)

{char*p=s;

inti=0;

while(*p){

if(*p!

=c)s[i++]=*p;//只处理符合条件的情况

p++;

}

s[i]=0//因为是字符串,最后一位赋结束符

}

 

main()

{

voidNONO();

staticcharstr[]="turbocandborlandc++";

charch;

printf("原始字符串:

%s\n",str);

printf("输入一个字符:

");

scanf("%c",&ch);

fun(str,ch);

printf("str[]=%s\n",str);

NONO();

}

voidNONO()

{

/*请在此函数内打开文件,输入测试数据,调用fun函数,

输出数据,关闭文件。

*/

FILE*rf,*wf;

chars[81],ch,w;

intlen;

rf=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

wf=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

fgets(s,80,rf);

fscanf(rf,"%c",&ch);

len=strlen(s)-1;

w=s[len];

if(w=='\n'||w==0x1a)s[len]=0;

fun(s,ch);

fprintf(wf,"%s",s);

fclose(rf);

fclose(wf);

}

给定程序MODI1.C中函数fun的功能是:

将p所指字符串中每个单词的最后一个字母改成大写。

(这里的“单词”是指由空格隔开的字符串)。

例如,若输入”Iamastudenttotaketheexamination.”,

则应输出”IaMAstudenTtOtakEthEexamination.”。

#include

#include

#include

voidfun(char*p)

{

intk=0;

for(;*p;p++)

if(k)

{

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

if(*p=='')

{

k=0;

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

*(p-1)=toupper(*(p-1));//回退一位变为大写

}

}

else

k=1;

}

main()

{

charchrstr[64];

intd;

printf("\nPleaseenteranEnglishsentencewithin63letters:

");

gets(chrstr);

d=strlen(chrstr);

chrstr[d]='';

chrstr[d+1]=0;

printf("\n\nBeforechanging:

\n%s",chrstr);

fun(chrstr);

printf("\nAfterchanging:

\n%s",chrstr);

}

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

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

#include

#include

#include

voidfun(char*s,intnum)

{charch;

inti,j;

for(i=1;i<6;i++)

for(j=i+1;j<6;j++){

if(*(s+i)<*(s+j)){

ch=*(s+j);

*(s+j)=*(s+i);

*(s+i)=ch;

}

}

}

main()

{

voidNONO();

chars[10];

printf("输入7个字符的字符串:

");

gets(s);

fun(s,7);

printf("\n%s",s);

NONO();

}

voidNONO()

{

/*请在此函数内打开文件,输入测试数据,调用fun函数,

输出数据,关闭文件。

*/

chars[10];

FILE*rf,*wf;

inti=0;

rf=fopen("C:

\\WEXAM\\24990001\\in.dat","r");

wf=fopen("C:

\\WEXAM\\24990001\\out.dat","w");

while(i<10){

fgets(s,10,rf);

s[7]=0;

fun(s,7);

fprintf(wf,"%s\n",s);

i++;

}

fclose(rf);

fclose(wf);

}

请编写一个函数voidfun(char*tt,intpp[]),统计在tt所指字符串中’a’到’z’26个小写字母各自出现的次数,并依次放在pp所指数组中。

例如,当输入字符串:

abcdefgabcdeabc后,程序的输出结果应该是:

33322110000000000000000000

#include

#include

voidfun(char*tt,intpp[])

{

char*p=tt;

inti;

for(i=0;i<26;i++)pp[i]=0;

while(*p){

if(*p>='a'&&*p<='z')pp[*p-'a']+=1;

p++;

}

}

main()

{charaa[1000];

intbb[26],k;

voidNONO();

printf("\nPleaseenteracharstring:

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

fun(aa,bb);

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

printf("\n");

NONO();

}

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

当前位置:首页 > 外语学习 > 英语考试

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

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