itgle.com

下列给定程序中,函数fun()的功能是;将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为 a),其他字符不变。请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>include <ctype.h>include <conio.h>void fun(char *s)/*************found**************/{ while(*s!='@'){ if(*

题目

下列给定程序中,函数fun()的功能是;将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为 a),其他字符不变。

请改正函数fun()中的错误,使它能得出正确的结果。

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

试题程序:

include <stdio.h>

include <ctype.h>

include <conio.h>

void fun(char *s)

/*************found**************/

{ while(*s!='@')

{ if(*s>='A' &*s<='z'||*s>='a'&&*s<='z')

{if(*s=='Z') *S='A';

else if(*S=='z') *s='a';

else *s+=1;

}

/*************found**************/

(*s)++;

}

}

main()

{ char s[80];

clrscr();

printf("\n Enter a string with length <80:\n\n");gets(s);

printf("\n The string:\n\n");puts(s);

fun(s);

printf("\n\n The Cords:\n\n");puts(s);

}


相似考题
更多“下列给定程序中,函数fun()的功能是;将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为 ”相关问题
  • 第1题:

    下列给定程序中,函数fun()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。

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

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

    试题程序:

    include<stdio.h>

    include<conio.h>

    void fun(char*S)

    {

    int i,j;

    for(i=0,j=0;s[i]! ='\0';i++)

    /*************found************/

    if((s[i]>='A'&&s[i]<='Z')&&(s[i]>= 'a'&&S[i]<='z',))

    s[j++]=s[i];

    /*************found*************/

    s[j]=“\0”;

    }

    main()

    {

    char item[80];

    clrscr();

    printf(“\nEnter a string:”);

    gets(item);

    printf(“\n\nThe string is:\%S\n",item);

    fun (item);

    printf("\n\nThe string of changing

    is:\%S\n",item);

    }


    正确答案:(1)错误:if(s[i]>='A'&&s[i]='Z')&&(s[i]>='a'&&s[i]='z')) 正确:if((s[i]>='A'&&s[i]='Z')||s[i]>='a'&&s[i]='z')) (2) 错误:s[j]="\0" 正确:s[j]='\0'
    (1)错误:if(s[i]>='A'&&s[i]='Z')&&(s[i]>='a'&&s[i]='z')) 正确:if((s[i]>='A'&&s[i]='Z')||s[i]>='a'&&s[i]='z')) (2) 错误:s[j]="\0" 正确:s[j]='\0' 解析:错误1:字母包括小写字母和大写字母,这里是“或”的关系,所以用“||”运算符。错误2:字符串的结束标志符为字符,而不是字符串。

  • 第2题:

    下列给定程序中,函数fun()的功能是:将str所指字符串中的字母转换为按字母序列的后续字母(Z转换A,z转换a),其他字符不变。

    请修改函数fun()中的错误,得出正确的结果。

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

    试题程序:


    正确答案:

    (1)错误:while(*str!=ˊ@ˊ)
    正确:while(*str)或while(*str!=ˊ\0ˊ)或while(*str!=0)
    (2)错误:(*str++);
    正确:str++
    【解析】首先判断字母是否为小写字母,如果是小写字母则进行转换。
    第一个标识下“while(*str!=ˊ@ˊ)”语句原意是str不指向字符串尾就进入下面的循环,所以对于指针判断不为结束符的语句应该是循环为真,所以应为“while(*str)”或“while(*str!=ˊ\Oˊ)”或“while(*str!=0)”。
    第二个标识下“(*str)++;”是对字符内容加1,而原题是对字符位置加1,所以将其改为“str++;”。

  • 第3题:

    请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。

    例如,若输入“aboaEf9”,则应输出“aBe4EF9”。

    注意:部分源程序在文件PROGl.C中。

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

    试题程序:


    正确答案:
    【参考答案】【解题思路】该题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及此位置的字符是否是小写字母,如果是再通过其转换方法进行转换。从c语言的学习中知道,只要将小写字母减去32即转成大写字母,将大写字母加上32即转成小写字母。本程序用if语句实现转换功能。

  • 第4题:

    程序test.C的功能是:把S字符串中的所有字母改写成该字母的下一个字母,字母2改写成字母a,字母z改写成字母 A,其他字符不做改变。 请考生编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT把结果输出到文件0ut.dat中。例如:S字符串中原有的内容为:Mn.123xyz,则调用该函数后,结果为:N0.123Ayz。 注意:部分源程序存在test.c文件中。 请勿改动数据文件in.dat中的任何数据、主函数main和输出数据函数read writeDAT的内容。


    正确答案:
    【审题关键句】把str字符串中的所有字母改写成该字母的下一个字母。
    【解题思路】
    ①定义局部字符变量ch和字符指针变量P,并使其指向字符串S。
    ②当P所指的字符非空时,把字符*p赋给字符ch,当字符ch不是字母Z或者’Z’时,把字符ch的ASCII码值加1,变成其下一个字符的ASCII码,并把这个值赋给字符*p,否则,如果字符ch是字符Z,则把字符*p的设置为字符’a’,否则,如果字符ch是字符’Z’,则把字符*p的设置为字符’Af,字符指针变量加1,使其指向字符串s的下一个字符,在下一次循环中处理。
    【参考答案】

  • 第5题:

    下列给定程序中,函数proc()的功能是:将str所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为a),其他字符不变。

    请修改函数proc()中的错误,使它能得出正确的结果。

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

    试题程序:


    正确答案:

    (1)错误:while(*str!="@")
    正确:while(*str)
    (2)错误:(*str)++;
    正确:str++;