首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入"edcba",则应输出"abcde"。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件
下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入"edcba",则应输出"abcde"。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件
admin
2017-09-23
102
问题
下列给定程序中,函数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全国计算机二级
相关试题推荐
先有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:#include<stdio.h>#include"myfun.C"main(){fun();printf("\n");}
若i、j已定义成int型,则以下程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4.j++){…}
运行下面的程序,输入字符串MicrosoftVisualStudio,则程序的执行结果是()。#include<stdio.h>main(){charChr[20];scanf("%s",&Chr);p
下面程序的运行结果是()。y=5;x=14;y=((x=3*y,x+6),x-1);printf("x=%d,y=%d”,x,y);
下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行4个元素输出数组b,请填空。main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",
有以下程序:#include<string.h>inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t++=a++;}else{inta
若变量都已正确说明,则以下程序段输出结果为()。#include<stdio.h>main(){chara=’a’;intb=2;printf(a>b?”***a=%d":"###b=%d",a,B;
函数rewind(fp))的作用是()。
下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!=’c’)s[j++]=
随机试题
三段论第一格的规则:()
急性肾盂肾炎合并肾功能急性减退可由于
氟化物对微生物的作用,错误的是
A.急性发热B.黄疸C.呕吐D.腹泻E.血便肠梗阻可见腹痛,并伴有
女,12岁,肾病综合征患者。对该患者的饮食护理,以下不正确的是
对于金属线槽布线,下面叙述正确的是()。
下列属于收费车道计算机系统的设备是()。
在中国书法史上,被誉为“书法之祖”的是()。
Whatisthemandoingnow?
1.Planningandmakingcalls2.OpeningacallA—IdentifyingyourselfC—ExplainingthepurposeofthecallB—Identifyingtheca
最新回复
(
0
)