首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 例如,若输入 "I am a student to take the examination.",
给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 例如,若输入 "I am a student to take the examination.",
admin
2019-04-04
92
问题
给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。
例如,若输入
"I am a student to take the examination.",
则应输出 "I aM A studenT tO takE thE examination."。
请修改程序中的错误之处,使它能得出正确的结果。
注意:不要改动main函数,不得删行,也不得更改程序的结构!
#include
#include
#include
void fun(char*P)
{
int k=0;
for(;*p; p++)
if(k)
{
/************found************/
if(P==’’)
{
k =0;
/************found************/
*(p)=toupper(*(p一1))
}
}
else
k=1;
}
msin()
{
char chrStr[64];
int d ;
printf("\nPlease enter an English
Sentence within 63 letters:");
gets(chrstr);
d=strlen(chmstr);
chrStr[d]=’ ’;
chrStr[d+1]=0;
printf("\n\nBefore changing:\n
%s",chrStr);
fun(chrStr);
printf("\nAfter changing:\n%s",
chrstr);
}
选项
答案
(1)if(*p==’’) (2)*(p一1)=toupper(*(p一1));
解析
函数的功能是将每个单词的最后一个字母改成大写。
(1)第一个错误标识下的if语句应该是判断字符串中的字符是否是空格,根据“for(;*p;p++)”语句中for循环条件中p的定义应该为字符型指针变量,*p是取p所指存取单元的值,所以“if(p==’’)”应该改为“if(*p==’’)”。
(2)题干中要求是将每个单词的最后一个字母改成大写,所以它的位置应该是挨着空格的前一个字符,应该是指针p指向字符的前一个位置,“*p--toupper(*(p-1))”是将改动的值赋给了p所指的空格,所以应该改为“*(p-1)=toupper(*(p-1));”且语句未尾应有分号。
转载请注明原文地址:https://kaotiyun.com/show/0nRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序 main() { int a [3][2]={0},(* ptr [2],i,j; for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);pb++;} for(i=0;i<3;i++)
下列程序的输出结果是______。intm=10;intfun(inta,intB){intm=2;return(a*b-m);}main(){intx=7,y=5;
要正确定义并初始化一个数组a,它含有5个元素,则正确的语句是______。
变量p为指针变量,若p=&a,下列说法不正确的有______。
下列程序的输出结果是()。#include“stdio.h”main(){structst{inty,x,z;}union{longi;intj;
在数据管理技术发展的三个阶段中,数据共享最好的是______。
下列叙述中错误的是()。
有以下程序:#include<stclio.h>main(){charc;while((c=getchar())!=’?’)putchar(--c);}程序运行时,如果从键盘输入:Y?N?<回车>,则
函数sub的功能是根据下面近似分式求π的值。(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)现在请在下面的函数中填空,完成求π值的功能。#include"math.h"doublesub(longm
下列程序的输出结果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;char
随机试题
在经验中可以测量的,具有两个或两个以上可取值的是()
下面属于经济特区的是()
A.气虚血瘀所致的中风B.脏腑实热、大肠火盛所致的肠风便血C.气滞血瘀之胸痹D.寒凝气滞,心脉不通之胸痹E.血热所致的肠风便血、痔疮肿痛槐角丸适用于()。
下列关于违反银行业监督管理规定的处罚措施的说法,正确的有()。
下列各项中,能在销售预算中找到的内容有()。
短期借款是按()设置明细账的。
2014年,我国货物进出口总额264335亿元。其中,出口143912亿元,进口120423亿元。2014年我国货物进出口总额比2010年增长了约:
“翻异别勘”是宋代为防止冤假错案而规定的复审制度,是指犯人如果在录问或行刑时提出申诉,案件必须重新审理。宋代的“翻异别勘”分为原审机关的“移司别勘”和“差官别推”两种形式。“移司别勘”是指由原审机关将案子交给另一个同级的司法机关复审。“差官别推”是指原审机
若变量都已正确说明,则以下程序段的输出结果是()a=2;b=3;printf(a>b?”***a=%dt":"###b=%d",a,b);
Rockclimbingisanactivityinwhichparticipantsclimbup,downoracrossnaturalrockformationsorartificialrockwalls.Th
最新回复
(
0
)