填空题
1. 从键盘输入一组小写字母,并将之保存在字符数组str中。请补充函数proc(),该函数的功能是:把字符数组str中ASCII码为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。
例如,输入“abcdefghi”,输出“AbCdEfGhI”。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#define M 80
void proc(char str[])
{
int i;
for(______; ______; i++)
{
if(______)
str[i]-=32;
}
}
void main()
{
char str[M];
system("CLS");
printf(”\n Input a string:\n");
gets(str);
printf(”\n***original string***\n");
puts(str);
proc(str);
printf("\n***new string***\n");
puts(str);
}
【正确答案】
1、i=0
str[i]!='\0'
str[i]%2!=0或str[i]%2==1
【答案解析】 由函数proc()可知,变量i为字符数组str的下标,字符数组的下标从0开始,因此,空一处填“i=0”;要将字符数组str中ASCII码为奇数的小写字母转换成对应的大写字母,需要检查字符串str中的每一个字符,因此,空二处填“s[i]!='\0'”;判断字符数组中的每一个字符的ASCII码是否为奇数,将每一个ASCII码为奇数的字符转化为相应的大写字母,因此,空三处填“s[i]%2!=0”或“s[i]%2==1”。