下列给定程序中,函数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);
}
第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);
}
第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的花括号中填入你编写的若干语句。
试题程序:
第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的内容。
第5题:
下列给定程序中,函数proc()的功能是:将str所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为a),其他字符不变。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
(1)错误:while(*str!="@")
正确:while(*str)
(2)错误:(*str)++;
正确:str++;