本系列资料由"韬略宏智" 授权发布,任何网站不得转载,否则追究法律责任。
1.填空题
下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:
I am a student to take the examination
则应输出:I aM A studenT tO takE thE examinatioN
试题程序:
#include
#include
#include
#include
void fun(char *p)
{
int k=0;
for(;*p;p++)
if(k)
{
if(*p==' ')
{
【1】;
【2】=toupper(*(p-1));
}
}
else
k=1;
}
main()
{ char chrstr[64];
int d;
printf("\nplease enter an English sentence within 63 letters:");
gets(chrstr);
d=strlen
本系列资料由"韬略宏智" 授权发布,任何网站不得转载,否则追究法律责任。
1.填空题
下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:
I am a student to take the examination
则应输出:I aM A studenT tO takE thE examinatioN
试题程序:
#include<conio.h>
#include<ctype.h>
#include<stdio.h>
#include<string.h>
void fun(char *p)
{
int k=0;
for(;*p;p++)
if(k)
{
if(*p==' ')
{
【1】;
【2】=toupper(*(p-1));
}
}
else
k=1;
}
main()
{ char chrstr[64];
int d;
printf("\nplease enter an English sentence within 63 letters:");
gets(chrstr);
d=strlen(chrstr);
chrstr[d]=' ';
chrstr[d+1]=0;
printf("\nBefore changing:\n%s",chrstr);
【3】;
printf("\nAfter changing:\n%s",chrstr);
}
【答案】
【1】k=0 【2】*(p-1) 【3】fun(chrstr)
【解析】
填空1:以变量k作为判断标志,如果标志为1并且当前指针指向空格就应该把标志返回0,以便下一次检测。
填空2:此处进行的是将p所指单词的最后一个字母改成大写,但是此时p已经循环到了单词后面的那个空格,所以应该对p-1进行操作。
填空3:根据前面的子函数定义可以知道,参数是一个指向字符串的指针,所以应该把数组的名字(也可以认为是指向数组首地址的指针)作为参数。
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |