请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码值升序排列。例如:原来的字符串为BdsihAd,则排序后输出为 BAdhisd。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include <stdio.h>include <ctype.h>include <conio.h>int fun(char*s,int num){}main(){char s[10];clrscr();pr

题目

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

例如:原来的字符串为BdsihAd,则排序后输出为 BAdhisd。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <stdio.h>

include <ctype.h>

include <conio.h>

int fun(char*s,int num)

{

}

main()

{

char s[10];

clrscr();

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

gets(s);

fun(s,7);

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

}


相似考题
更多“请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码值升序排列。 例 ”相关问题
  • 第1题:

    请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较K的字符串。若两个字符串长度相等,则返回第1个字符串。

    例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<stdio.h>

    char *fun(char *s, char *t)

    {

    }

    main()

    {

    char a[20],b[10],*p,*q;

    int i;

    printf ("Input 1th string: ");

    gets(a);

    printf{"Input 2th string: ");

    gets(b);

    printf("%s",fun(a,b));

    }


    正确答案:char *fun(char *s char *t) { int ii; for(i=0;s[i]!= '\0';i++); /*求字符串的长度*/ for(j=0;t[i]!= '\0';j++); if(i>=j) /*比较两个字符串的长度*/ return s; /*函数返回较长的字符串若两个字符串长度相等则返回第1个字符串*/ else return t; }
    char *fun(char *s, char *t) { int i,i; for(i=0;s[i]!= '\0';i++); /*求字符串的长度*/ for(j=0;t[i]!= '\0';j++); if(i>=j) /*比较两个字符串的长度*/ return s; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ else return t; } 解析:本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。
    本题也可用如下技巧:
    char*fun(char*s,char*t)
    {if(strlen(s)>=strlen(t)return s;
    else return t;
    }

  • 第2题:

    给定程序MODll.C中函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。

    例如,若输入:edcba,则应输出:abcde。

    请改正程序中的错误,使它能统计出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)(2)if(t[j]>t[j+1])
    (1)for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)(2)if(t[j]>t[j+1]) 解析:本题中函数的功能是读入一个字符串(长度20),将该字符串中的所有字符按ASCII码升序排序后输出。本题思路是利用字符串长度作为循环的控制条件,然后在循环过程中将字符按.ASCII码排序。

  • 第3题:

    设计一个字符串类(Mystring),除具有一般的输入输出字符串的功能外,还要求具有计算字符串长度、连接两个字符串等功能,其中求字符串长度和连接字符串功能不能直接调用字符串处理函数。再编写主函数对该类进行测试。


    ABCD

  • 第4题:

    已知3个字符为:a、X和5,按它们的ASCII码值升序排序,结果是( )A.5

    已知3个字符为:a、X和5,按它们的ASCII码值升序排序,结果是( )

    A.5B.a<5

    C.XD.5


    正确答案:D
    在ASCⅡ码表中,根据码值由小到大的排列顺序是:控制符、数字符、大写英文字母、小写英文字母。

  • 第5题:

    请编写函数proc(),对长度为9个字符的字符串,除首、尾字符外,将其余7个字符按ASCⅡ码值降序排列。例如,原来的字符串为HabcdefA,则排序后输出为HfedcbaA。 注意:部分源程序给出如下。 请勿改动main()和其他函数中的任何内容,仅在函数proc()中填入所编写的若干语句。 试题程序:


    正确答案:

    【解析】按照题目中要求,求除首、尾字符外,将其余7个字符按ASCⅡ码值降序排列。首先需要判断除首、尾字符之外,其余7个字符ASCⅡ码值的大小,将不符合顺序要求的字符互换。