首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
37
问题
给定程序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://jikaoti.com/ti/WxG0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依此类推。例如,若a所指数组中的数据最初排
下列给定程序中,函数fun的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如,n=8时,输入193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763、所得平
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他水号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应
若执行下述程序时,若从键盘输入6和8,结果为()。main(){inta,b,s;scanf(’’%d%d’’,&a,&b);s=a:if(s-b)s*=s;printf(’’%d’’,
以下选项中与if(a=1)a++;elsea=b;语句功能不同的语句是()。
设有下面的定义:structst{inta;floatb;)d;int*p;要使p指向结构变量d中的a成员,正确的赋值语句是()。
下叙述中错误的是
两个或两个以上模块之间关联的紧密程度称为
数据库设计过程不包括
以下关于逻辑运算符两侧运算对象的叙述中正确的是()。
随机试题
放射性核素显像技术的叙述,错误的是
女性,63岁,右下腹及脐周隐痛3年,渐渐消瘦,近2个月来常有低热,体格检查发现右下腹可触及一6cm×4cm大小的包块,较硬,尚可推动,压痛,锁骨上及腹股沟区未触及肿大淋巴结,结合其他检查结果,该患者被确诊为右侧结肠癌。行根治性手术治疗,手术范围包括
调解书发生法律效力的时间是()。
甲国为沿海国,但从未发表过任何关于大陆架的法律或声明,也从未在大陆架上进行过任何活动。现乙国在甲国不知晓的情况下,在甲圉大陆架上进行科研钻探活动。对此,下列判断哪些是不正确的?()
工程预付款的预付时间应不迟于( )。
材料:祈求我曾经在长城上看到一位白发苍苍的画家画鹰。在北方特有的那种干燥湛蓝的天空下,苍劲古朴的长城默默地蜿蜒于群山之上。画家在一块白布上挥毫泼墨。长城上的风扬起老人的白发,鼓动每一
为什么说生产关系适合生产力发展状况的规律支配着社会形态的演化过程?
下述排序方法中,比较次数与待排序记录的初始状态无关的是()。
公民甲将代为保管的他人货物委托给商人乙出售,二人约定了报酬支付方式。之后,丙将货物从乙处买走。根据上述情况,下列表述正确的是
Somestudentslikeclasseswhereteacherslecture(doallofthetalking)inclass.Otherstudentspreferclasseswherethestud
最新回复
(
0
)