首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
49
问题
给定程序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全国计算机二级
相关试题推荐
软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。
定义结构体数组structStu{intnum;charname[20];}x[51={1,“ZHAO”,2,“QIAN”,3,“SUN”,4,“LEE”,5,“ZHOU”};for(i=1
设计程序时,应采纳的原则之一是()。
若变量a,b 已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句[]。
有以下程序#include.<string.h>main(){char*p="abcde\ofghjik\0";printf("%d\n",strlen(p));}程序运行后的输出结果是
以下函数值的类型是______。fun(floatx){floaty;y=3*x-4;returny;}
有以下程序段: typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是 ______。
在表示C语言的整型变量时,表示“无符号整型”的符号是()
以下函数返回a所指数组中最小的值所在的下标值:fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)if(a[i]<a[j])________return(p);}在下划线处应填入的是
在面向对象方法中,类之间共享属性和操作的机制称为【】。
随机试题
社会保障基金的监管原则是什么?
急性坏死性肠炎肠伤寒穿孔
一个系统是稳定的,当遇到阶跃扰动时,在过渡过程结束后,被控量应趋于()。
不属于金属基复合材料的是()。
采取铺设砂垫层,塑料多孔排水板等工程措施,使软基表层或内部形成水平或垂直排水通道,加速土中水分的排除,使土固结的地基处理方法为()。
某人有1200元,拟投入报酬率为8%的投资机会,经过( )年才可使现有货币增加1倍。
通过新资源使得至少有一个人的福利水平有所提高,称为()。
《导游人员管理条例》规定,不得颁发导游证的情形主要有()。
若游客要求购买景区地摊商品,景区导游员应()。
A.particularlyB.correlatedC.averageD.peaceE.singleF.callsG.ordinaryH.engageI.notesJ.restK.shownL.exactly
最新回复
(
0
)