首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
55
问题
给定程序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全国计算机二级
相关试题推荐
某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分
下列给定程序中,函数fun的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C
请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用strlen函数求字符串的长度。例如:在键盘输入字符串2345210,函数返回长整型数2345210。注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的
下列给定程序中,函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数
有以下程序段:inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf(’’%d\n’’,n);break;
两个或两个以上模块之间关联的紧密程度称为
下列选项中属于面向对象设计方法主要特征的是
以下选项中合法的标识符是
按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。
随机试题
某三级公路进行升级改造,为了解路基状况,检测机构用承载板法测定土基回弹模量。请回答以下问题。试验过程中,采用千斤顶进行逐级加载、卸载,当加载的荷载大于0.1MPa时,每级增加的荷载为()MPa。
A.痘病毒B.圆环病毒C.细小病毒D.疱疹病毒E.冠状病毒以上选项中,病毒颗粒最大的为
关于《政府信息公开条例》的规定,下列说法正确的有哪些?
某在用3×30m预应力混凝土简支梁桥,上部结构T梁采用预制、吊装施工,每跨有9片T梁,经调查所有T梁的生产工艺、强度等级、原材料、配合比、养护工艺均相同,龄期相近。在一次特殊检查时,对混凝土强度进行了回弹检测,1号回弹测区布置在第1跨5号T梁的底面,回弹仪
根据我国《民法通则》的规定,授权委托书是委托代理的组成部分,其法律后果是产生()。
在实际生活中,有些产品的市场价格不能真实反映国民经济对项目的投入和产出,在这种情况下进行经济分析时,必须采用()。
在音乐欣赏学习中,学生在学习完《小二黑结婚》的选段后,下列教学环节中,哪一个符合《普通高中音乐课程标准(实验)》中的“理解多元文化"的基本理念?()
事业单位工作人员利用专业技术或者技能实施的违法违纪行为,情节较轻的,给予()处分。
二进制数1001001转换成十进制数是_______。
Theelectionsof2015and2017broughtin103newToryMPs,madeupathirdofthepartyintheCommons.
最新回复
(
0
)