首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 例如,若输入“I am a student to take the examination.”,则应输出“I a
给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 例如,若输入“I am a student to take the examination.”,则应输出“I a
admin
2018-09-27
59
问题
给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。
例如,若输入“I am a student to take the examination.”,则应输出“I aM A studenT tO take the examination.”。
请修改程序中的错误之处,使它能得出正确的结果。
注意:不要改动main函数,不得删行,也不得更改程序的结构!
1 #include<ctype.h>
2 #include<stdio.h>
3 #include<string.h>
4 void fun(char *p)
5 {
6 int k=0;
7 for(;*p;p++)
8 if(k)
9 {
10 /**********found**********/
11 if(p==’ ’)
12 {
13 k=0;
14 /**********found**********/
15 *(p)=toupper(*(p-1))
16 }
17 }
18 else
19 k=1;
20 }
21 main()
22 {
23 char chrstr[64];
24 int d;
25
26 printf(’’\nPlease enter an English sentence within 63 letters:’’);
27 gets(chrstr);
28 d=strlen(chrstr);
29 chrstr[d’=’ ’;
30 chrstr[d+1]=0;
31 printf(’’\nlnBefore changing:\n%s’’,chrstr);
32 fun(chrstr);
33 printf(’’\nAfter changing:\n%s’’,chrstr);
34 }
选项
答案
(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/s8xp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设有如下程序段:intx=2002,y=2003;printf(“%d\n”,(x,y));则以下叙述中正确的是
以下程序运行后的输出结果是______。main(){intx=0210;printf("%x\n",x);}
下列程序段的运行结果是______。charstr[]="ABCD",*p=str;printf("%d\n",*(p+3));
有以下程序段: typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是 ______。
若有下列定义(设int类型变量占2个字节):floatx=123.4567;则下列语句:printf("x=%5.2f",x);输出的结果是()。
以下四个选项,不能看作一条语句的是()。
设有定义:chars[10];inti=0;,以下不能将一行(不超过100个字符)带有空格的字符串正确读入的语句或语句组是()。
已有定义:inti,a[10],*p;,则合法的赋值语句是
对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为【】。
在深度为7的满二叉树中,度为2的结点个数为【】。
随机试题
运动时,下列哪一种叙述是不正确的()(1995年)
患者。女性,30岁。咳嗽2月,少量咳痰带血,乏力。无明显低热,无消瘦、无淋巴结肿大。查体:肺部无异常体征。应首先做哪项检查
男性,35岁。发热,胸部持续性钝痛二天,胸痛于仰卧时加剧,用硝酸甘油无效,心音减低,伴舒张期附加音,BP110/80mmHg,下肢水肿,静脉压180mmH2O,ECG:ST段抬高,弓背向下,未见Q波。下列体征不支持大量心包积液的是
某县暴发传染病,县政府主要领导以稳定、发展经济为由,要求并指示有关机构隐瞒传染疫情,造成传染病传播、流行。该主要领导应依法承担的行政责任是()
高层住宅内混凝土剪力墙与砖墙之间交接缝在抹灰前应采取防止开裂措施,当采用加强网时,加强网与各基体的搭接宽度不应少于( )。
某公司总经理在工作报告中对该公司的风险管理作了如下的介绍和描述:(1)该公司在上年度完成了风险管理;(2)企业风险管理的有效实施有赖于公司中层以上管理人员的工作;(3)公司的风险管理是企业层面的一项战略工作;(4)公司风险管理将确保
根据增值税法律制度的规定,纳税人销售货物向购买方收取的下列款项中,属于价外费用的有()。
午睡时,小玲指着墙上的一只虫子哇哇大哭,原来她被一只蜈蚣咬伤了。针对这种情况,当班老师应采取()的急救方法并立即报告幼儿园医务人员。
设u=u(x,y),v=v(x,y)有连续的一阶偏导数且满足条件:F(u,v)=0,其中F有连续的偏导数且
A、Councilmembersvetoedthebillontheminimumwage.B、Afinalvotewaspassedonraisingminimumwage.C、Protestersdemonstra
最新回复
(
0
)