首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
68
问题
给定程序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://www.kaotiyun.com/show/jTCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。例如,从主函数输入一个整数27638496,则函数返回值为26846。请在程序的下画线处填入正确的内容并将下画线删除,使程序得
下列给定程序中,函数fun的功能是:根据整型形参n,计算如下公式的值。A1=1,A2=,…,An=例如,若n=10,则应输出0.617977。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不
编写程序,实现矩阵(3行、3列)的转置(即行列互换)。例如,若输入下面的矩阵:100200300400500600700800900则程序输出:100400700200500800300600
下列给定程序中,函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行
下列给定程序中函数fun的功能是:计算正整数hum各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题
以下选项中与if(a=1)a++;elsea=b;语句功能不同的语句是()。
以下选项中正确的定义语句是
下列选项中,不能用作标识符的是
在软件设计中不使用的工具是
在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()。
随机试题
InBritain,peoplehavedifferentattitudestothepolice.Mostpeoplegenerally【C1】______themandthejobtheydo—althoughther
《纽伦堡法典》是1946年审判纳粹战犯的纽伦堡军事法庭决议的一部分,涉及人体试验的十条道德要求,其第一条是()。
患者男,65岁,以双下肢水肿1个月入院,化验结果为:Hb100g/L,血白蛋白20g/L,24h尿蛋白定量12g。追问病史,患者有糖尿病史15年,慢性乙型肝炎史20年,否认有药物食物过敏史,近期无皮肤紫癜出现。现患者的诊断暂可除外
据子母补泻法,肾经实证应取
以下各项中,属于建设项目筹集权益资金方式的是()。
A公司中标一城市主干道拓宽改造工程,道路基层结构为150mm石灰土和400mm水泥稳定碎石,面层为。150mm沥青混凝土。总工期为7个月。开工前,项目部做好了施工交通准备工作,编制了交通导行方案,以减少施工对群众社会经济生活的影响;同时根据有关资料,结啥-
_____asportsmeetlastSunday?Yes,they______.
根据我国现行宪法的规定,国家对非公有制经济发展的指导方针是( )。
(1)用命令新建一个名为“外汇”的数据库,并将该命令存储于one.txt中。(2)将自由表“外汇汇率”、“外汇账户”、“外汇代码”加入到新建的“外汇”数据库中。(3)用SQL语句在“外汇”数据库中新建一个数据库表rate,其中包含4个字
Bytheyear200,scientistsprobably______aneffectivetreatmentforcancer.
最新回复
(
0
)