首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入"edcba",则应输出"abcde"。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件
下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入"edcba",则应输出"abcde"。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件
admin
2017-09-23
100
问题
下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入"edcba",则应输出"abcde"。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MOD11.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include < string*h >
#include < stdio*h >
void fun (char t[] )
{
char c;
int i, j ;
/*********found*********/
for (i = str1en (t) ;i; i 一一 )
for(j=0;j < i;j++)
/*********found*********/
if(t[j] < t[j+1])
{
c=t[j];
t[j]=t[j+1];
t[j+1]=c;
}
}
main()
{
char S[81];
printf("\nPlease enter a character string:");
gets(s);
printf ("\n\nBefore sorting:\n%s",s);
fun(s);
printf("\nAfter sorting decendingly:\n%s",s);
}
选项
答案
(1)for(i=str1en(t) 一1;i;l一一)或for(i=str1en(t)一1;i >0;1一一) (2)if(t[j] >t[j+1])
解析
(1)本题是利用选择法对数组元素进行比较排序。所谓选择法,是依次用当前取得的元素和其后面的元素进行比较,在第一个元素和其后面的元素顺次比较时,可以借助中间变量来对两个数进行交换,要保证第一个元素始终存放数组中的最大数,以后依次挑选出次大数,这样最终的数组就是有序的。str1en函数所求得的字符串长度,数组最大下标表示为字符串长度减1,所以要减1。
(2)这里是一个分析逻辑错误,题中要求按升序排序,所以应改为if (t[j]>t[j+1])。
转载请注明原文地址:https://kaotiyun.com/show/msxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
定义inta=5,b=20;若执行语句printf("%d\n",++a*--b/5%13);后,输出的结果为()。
以下程序:#include<stdio.h>#include<string.h>main(){charstr[]="abcd\n\123\xab";printf("%d",(str));}运行后的输
已知下列函数定义:fun(int%,intc,intn,intdatA){intk;for(k=0;k<m*n;k++){*b=data;b++;}}则调用此函数的正确写法是(假设变量a的说明为int
设变量均已正确定义,若要通过scanf("%d%c%d%c”,&a1,&e1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下列所示的输入形式中正确的是(注:口代表空格字符)()。
设有如下关系表,由关系R和S通过运算得到关系T,则所使用的运算为()。
以下语句段执行后的输出结果是()。#include<stdio.h>main(){intk=3;if(k)printf("###")elseprintf("&&&&");}
当把4个表达式用做if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是()。
若有以下定义(设int类型变量占2个字节)inti=8,j=9:则以下语句:printf("i=%%d,j=%%%d\n",i,j);输出的结果是()。
以下程序中函数sort的功能足对a数组中的数据进行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[
下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!=’c’)s[j++]=
随机试题
男性,63岁。慢性咳嗽、咯痰近20年,每年秋冬发作,至翌年春暖季节方有缓解。偶有痰血。8年前患肺结核,经异烟肼、利福平、链霉素治疗1年,以后胸片随访示两肺散在斑片结节影伴少量纤维条索状病灶。5年前发现高血压病,心电图示左心室高电压。重度吸烟(每日超过40支
患者,男,70岁。间断胸骨后不适半年,近1个月来吞咽食物时有轻度梗阻感,不吐,偶有食物反流。钡餐示:食管下段管壁僵硬,黏膜紊乱有中断。最可能的诊断是
A、甲状旁腺激素B、生长激素C、降钙素D、糖皮质激素E、去甲肾上腺素能降低血钙浓度的
戒毒机构自行配制戒毒药品必须
与商店普通营业厅内通道最小净宽度无关的因素是()
下列气体灭火系统模拟喷气试验结果符合要求的是()。
2006年6月,中国证监会在对甲上市公司(以下简称“甲公司”)进行检查,发现以下情况:(1)2006年1月,甲公司成立,注册资本为人民币6000万元。公司采取募集设立的方式设立。(2)2006年2月,甲公司拟申请股票上市。当时,甲公司的股本
德育过程是组织学生的活动和交往的过程。()
甲和药店主乙之间订有买卖协议,由甲长期供应乙假药低价销售。后因乙欠款较多,双方发生纠纷。下面的说法不正确的是()。
设f(x)=,求f(x)的间断点及其分类.
最新回复
(
0
)