下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。 例如,输入opdye,则应输出deopy。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<string.h> include<stdlib.h> include<conio.h> include<stdio.h> //****found**** int proc(char str[]) { ch

题目

下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。 例如,输入opdye,则应输出deopy。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<string.h> include<stdlib.h> include<conio.h> include<stdio.h> //****found**** int proc(char str[]) { char c; unsigned i,j; for(i=0;i<strlen(str)-1;i++) for(j=i+1;j<strlen(str);j++) if(str[i]>str[j]) { c=str[j]: //****found**** str[j]=str[i++]; str[i]=c; } } void main { char str[81]; system("CLS"); printf("\nPlease enter a character string:"); gets(str); printf("\n\nBefore sorting:\n%s",str); proc(str); printf("\nAfter sorting decendingly:\n %s",str); }


相似考题
参考答案和解析
正确答案:

(1)错误:int proc(char str[])
正确:void proc(char、tr[])
(2)错误:str[j]=str[++];
正确:str[j]=str[i];
【解析】由主函数中的函数调用可知,函数proc没有返回值。因此,“int proc char str[])”应改为“void proc (char str[])”;由函数proc可知,if语句块完成将字符串str中的第i个元素与第j个元素相交换。因此,“str[j]=str [i++];”应改为“str[j]=str[i];”。

更多“下列给定程序中,函数proc的功能是:读入一个字符串(长度&lt;20),将该字符串中的所有字符按ASCII码 ”相关问题
  • 第1题:

    给定程序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码排序。

  • 第2题:

    下列给定程序中,函数proc()的功能是:将字符串str中的所有字符复制到字符串b中,要求在每复制3个字符之后插入1个空格。例如,在调用proc()函数之前给字符

    串str输入abcdefghijk,调用函数之后,字符串b中的内容则为abc def ghijk。

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

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

    试题程序:


    正确答案:

  • 第3题:

    请补充函数proc(),该函数的功能是:把字符串str中的字符按字符的ASCⅡ码升序排列,处理后的字符串仍然保存在原串中,字符串及其长度作为函数参数传人。

    例如,如果输入“9fedcba”,则输出为“abcdefg”。

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

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

    试题程序:


    正确答案:

    【1】i+1【2】str[j]=str[i]
    【解析】题目要求把字符串str中的字符按其ASCⅡ码值升序排列,可以使字符串中的每一个字符与其后的所有字符相比较,因此【1】填“i+1”;把该字符与ASCⅡ码值小于其本身而且位置在它后面的字符相交换,最后就可以使ASCⅡ码值小的在前、大的在后,因此【2】填“str[j]=str[i]”。

  • 第4题:

    下列给定程序中,函数proc()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。 例如原始字符串是“ab45c6djfd789”,则输出后的字符是“456789”。 请修改函数proc()中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:


    正确答案:

  • 第5题:

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


    正确答案:

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