首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。 例如,原来的字符串为:CEAedca,排序后输出为:CedeEAa。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数mam和其他函数中的任何内容,
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。 例如,原来的字符串为:CEAedca,排序后输出为:CedeEAa。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数mam和其他函数中的任何内容,
admin
2019-09-02
29
问题
请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。
例如,原来的字符串为:CEAedca,排序后输出为:CedeEAa。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<ctype.h>
#include<string.h>
void fun(char*s,int num)
{
}
NONO()
{
/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
char s[10];
FILE*rf,*wf;
int i=0;
rf=fopen("in.dat","r");
wf=fopen("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);
}
main()
{
char s[10];
printf("输入7个字符的字符串:");
gets(s);
fun(s,7);
printf("\n%s",s);
NONO();
}
选项
答案
char t; int i,j; for(i=1;i<num-2;i++) //对n个元素进行循环选择 for(j=i+1,j<num-1,j++) if(s[i]<s[j]) //将str[i]设为最大值,和剩下的j~num-1进行比较 {t=s[i]; s[i]=s[j] ; s[j]=t; }
解析
选择排序法中的降序排序,首先从数组中挑选一个最大的元素的asciil码,把它和第一个元素交换,接着从剩下的num-1个元素中再挑出一个最大的元素的ascin码,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。
转载请注明原文地址:https://kaotiyun.com/show/nKRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
针对简单程序设计,以下叙述的实施步骤顺序正确的是
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为
以下选项中关于C语言常量的叙述错误的是
以下选项中不合法的标识符是
若有以下程序#includevoidsp(int*a){intb=2;a=&b;*a=*a*2;printf("%d,",*a);}main(){intk=3,*p=&k;sp(p);printf("%d,%d\
有以下程序:#includevoidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c一(’a’-’A’);C++;}}voidmain(){char
有以下程序voidfun(char*S){chara[10];strepy(a,"STRING");S=a;}main(){char*p="PROGRAM";fun(P);一printf("%s\n,p);}.程序运行后的输出
有两个关系R和S如下: 则由关系R得到关系S的操作是
当用户要求输入的字符串中含有空格时,应使用的输入函数是
软件生命周期可分为定义阶段、开发阶段和维护阶段,下面属于定义阶段任务的是
随机试题
均衡膳食为了提高各种营养素的价值。()
用人单位安排劳动者延长劳动时间的,支付的工资报酬不应低于工资的()。(2009年单项选择第13题)
根据水利工程建设项目招标投标的有关规定,水行政主管部门对招标投标活动行政监督的主要内容包括()等。
通过填制和审核会计凭证可以保证经济业务事项的真实性、合法性,为账簿记录的正确性打下基础。()
存款人尚未清偿开户银行债务的,不得申请撤销银行结算账户。()
某白糖期货合约在某一交易时刻价格为5866元/吨,上一交易日收盘价为5851元/吨,结算价为5865元/吨,则此时刻的涨跌为()元/吨。
A、 B、 C、 D、 B原数列可以写成,所以下一项应该为10/16,即为5/8,故选B。
riseabovechallengesinspiteofthechallengesapositiveinfluencewitheachinspiringpageA.wecanderivestrengthand
若有以下程序#include<stdio.h>main(){inta=6,b=0,c=0;for(;a;){b+=a;a-=++c;}printf(
Expertsinthefoodindustryarethinkingalotabouttrashthesedays.Restaurants,colleges,hospitalsandotherinstitutions
最新回复
(
0
)