问答题
请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入"abc4EFg",则应输出"aBc4EFg"。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<string.h>
void fun(char *ss)
{

}
main()
{char tt[81];
void NONO();
printf("/nPlease enter an string within 80 characters:/n"); gets(tt);
printf("/n/nAfter changing, the string/n"%s" ", tt);
fun(tt);
printf("/nbecomes/n"%s"/n", tt);
NONO();
}
VOid NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf;
char tt[81];
int i;
fp=fopen("in.dat", "r");
wf=fopen("out.dat", "w");
for(i=0; i<10; i++) {
fscanf(fp, "%s", tt);
fun(tt);
fprintf(wf, "%s/n", tt);
}
fclose(fp);
fclose(wf);
}
【正确答案】
【答案解析】int i;
for(i=1; i<strlen(ss); i+=2) {
if(ss[i]>="a"&&ss[i]<="z")ss[i]-=32;
}
答案考生文件夹 [解析] (1)首先取得字符串中下标为奇数的字符。
(2)判断奇数位置的字符是否为小写字母。
(3)若(2)中的判断结果是小写字母,则对其进行转换。
[考点] 字符数组和字符串、数据类型和常量、变量。