首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
2021-06-15
52
问题
给定程序MODI1.C中函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。
例如,若主函数中a字符串为:aBCDeFgH,主函数中b字符串为:ABcd,则C中的字符串应为:aBcdeFgH。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
#include<string.h>
void fun(char*p,char*q,char*c)
{
/**********found**********/
int k=1;
/**********found**********/
while(*p!=*q)
{ if(*p<*q)c[k]=*q;
else c[k]=*p;
if(*p)p++;
if(*q)q++;
k++;
}}
main()
{char a[10]="aBCDeFgH",b[10]="ABcd",C[80]={’\0’};
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”。
转载请注明原文地址:https://kaotiyun.com/show/tAtp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面程序的运行结果是()。for(i=3;i<7;i++)printf((i%2)?("**%d\n"):("##%d\n"),i);
请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#inolude<stdi
下列程序的输出结果为()。main(){unionun{char*name;intage;intpay;}s;’s.name="zhaoming";s.age=32;s.pay=3000;printf("%d\n",s.a
以下叙述错误的是()。
若有以下程序#includevoidf(intx){if(x>=10){printf("%d-",x%10);f(x/10);}elseprintf("%d",x);}main(){intz=123456;
对于现实世界中事物的特征,在实体一联系模型中使用()。
在结构化程序设计中,模块划分的原则是
在E-R图中,用来表示实体联系的图形是()。
一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是
随机试题
It’snevereasytoadmityouareinthewrong.Beinghumans,weallneedtoknowtheartofapologizing.Lookbackwithhonesty
医务人员在医疗活动中形成的文字、符号、图表、影像、切片等资料的总和称为
男性,36岁,间歇性上腹痛3年,空腹时加重,进食后缓解,胃镜检查示十二指肠壶腹部溃疡,病人近日上腹胀痛伴呕吐,呕吐物量多,为隔餐食物,腹上区有震水音。此时应考虑出现了下列哪项并发症()
2006年财政部颁布的《企业会计准则第18号——所得税》规定,企业采用债务法中的( )债务法对所得税进行会计处理。
认为保险是投保人为填补资本不确定性的损失,而蓄积的一种社会设施,将个人的损失,转嫁于其他人或多数人的团体。这种学说是()。
对合作机构进行风险分析时,应从()方面考虑。
甲公司是ABC会计师事务所的常年审计客户,拥有乙公司和丙公司两家联营公司。甲公司主要从事建材的生产、销售以及建筑安装工程。A注册会计师负责审计甲公司2012年度财务报表,拟于2013年4月1日出具审计报告。财务报表整体的重要性为25万元。资料一:
维生素E是抗氧化剂,能够清除体内的自由基。于是,保健品商家把维生素E作为提高免疫力、抗癌、抗衰老的灵丹妙药来宣传。科学家通过实验发现:如果食物中维生素E的含量为每毫升5微克,能显著延长果蝇的寿命,但是如果维生素E的含量增加到每毫升25微克,果蝇的寿命反而缩
国家统计局2010年2月25日发布2009年国民经济和社会发展统计公报,称中国去年全面落实应对国际金融危机的一揽子计划和政策措施,国民经济形势总体回升向好,各项社会事业取得新的进展。初步核算,全年国内生产总值335353亿元,比上年增长8.7%。统计公报分
There’snothingsimpleaboutguncontrol,atangleoflegal,politicalandpublic-healthissuescomplicatedbyculturalpreferen
最新回复
(
0
)