首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。 例如,若主函数中a字符串为:aBCDeFgH,主函数中b字符串为:ABcd,则c中的
给定程序MODI1.C中函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。 例如,若主函数中a字符串为:aBCDeFgH,主函数中b字符串为:ABcd,则c中的
admin
2020-01-10
49
问题
给定程序MODI1.C中函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。
例如,若主函数中a字符串为:aBCDeFgH,主函数中b字符串为:ABcd,则c中的字符串应为:aBcdeFgH。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#include
void fun(char *p,char *q,char *c)
{
int k= 1;
while (*p != *q )
else c [k]=*p;
k++;
}}
main ()
{ char a [10]="aBCDeFgH",
fun (a,b,c) ;
printf ("The string a: ") ; puts (a) ;
printf ("The string b:") ; puts (b) ;
printf ("The result: ") ; puts (c) ;
}
选项
答案
(1) int k—1改为int k=0; (2) (* p!=* q)改为( *p || *q);
解析
本题中函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。While循环为字符串比较的提供前提条件,然后再比较得到p、q两个字符串一一对应的符合条件中可用的一个字符,最终合并得到新的字符串c。
(1)第一个错误在fun函数最开始定义的k的初始值。根据fun函数的功能我们可以知道这里k是新字符串c各字符的位置,然后根据比较结果一一对应新字符串个位置的字符。这里犯了一个明显的错误就是:从字符串的第一个字符比较,得到的第一个字符在字符串中的位置不是c[1]而是c[0],所以k的初始值不是1,而是0。所以这里第一个改错是将1改为0。
第二个错误在while循环的条件表达式,我们要知道的是while循环条件和if循环条件的区别。if的条件为开始条件,即符合这条件开始循环,而这里while的循环条件则是为终止条件,意思是下面括号内的循环进行到不符合while条件语句时终止,所以这里很明显错误,如果是这种条件的只要两个字符串中出现相同的字符即终止,以例子来说就是到第二个字符比较久终止,很明显不符合题意。所以为了完全比较这两个字符串,给出的终止条件应该是到两个字符串都结束,即两个字符串字符都为“’\0’”时终止,所以终止条件应该为“*p||*q”。
字符串、while语句循环。
转载请注明原文地址:https://kaotiyun.com/show/jTCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结
编写函数fun,其功能是:将ss所指字符串中所有下标为奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函
已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。注意:部分源程序给出如下。请勿改动主函数nmin
规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其他的水号全部删除。形参h已指向字符串中第—个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为“
运行下面程序时,从键盘输入字母A,则输出结果是()。#include<stdio.h>main(){charch;ch=getchar();switch(ch){case’A’:pr
若执行下述程序时,若从键盘输入6和8,结果为()。main(){inta,b,s;scanf(’’%d%d’’,&a,&b);s=a:if(s-b)s*=s;printf(’’%d’’,
在16位编译系统上,若有定义“inta[]={10,20,30},*p=a;”,当执行“p++;”后,下列说法错误的是
在软件开发中,需求分析阶段产生的主要文档是
在面向对象方法中,不属于“对象"基本特点的是()。【08年9月】
有关系R、S和T,如下图所示关系T是由关系R和S通过运算得出,则所使用的操作是
随机试题
You’veprobablyheardthatouroceanshavebecomeaplasticsoup.Butinfact,ofalltheplasticthatentersEarth’soceanseac
下列选项中,不符合会计凭证内部控制要求的是()
在夏季使用农药出现中毒症状,在急诊室进行处理时,首先应明确诊断为
某公路工程施工总承包一级企业承包了长2650m的公路隧道施工任务,该隧道穿越的岩层主要由泥岩和砂岩组成。施工中有如下事件发生:事件1:施工单位采用了新奥法施工,复合式衬砌。事件2:项目部相关技术人员认为,新奥法包括全断面法、台阶法、环形开挖留核心土法
[资料二]甲房地产公司2010年至2014年发生业务如下:(1)甲房地产公司于2010年1月1日将一幢商品房对外出租并采用公允价值模式计量,租期为3年,每年12月31日收取租金200万元,出租时,该幢商品房的成本为5000万元,公允价
下肢肌肉中快肌纤维占优势的人,较适宜从事()。
显示器分辨率指的是整屏可显示像素的多少,这与屏幕的尺寸和点距离密切相关。例如15英寸的显示器,水平和垂直显示的实际尺寸大约为280mm×210mm,当点距是0.28mm时,其分辨率大约是______。
Accordingtothenews,Francewasstronglycriticizedfor______.
SinceIboughtacomputerlastmonth,anewworldhasopenedupbeforeme,aworldthatreachesfarbeyondmyimmediatesurroun
Itisnot,byanymeans,theworld’soldestcompany.ThereareJapanesehotelsdatingbacktothe8thcentury,Germanbreweries
最新回复
(
0
)