首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
2017-07-27
37
问题
给定程序MODI1.C中函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到C所指数组中,形成一个新的字符串。
例如,若主函数中a字符串为:aBCDeFgH,主函数中b字符串为:ABcd,则c中的字符串应为:aBcdeFgH。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
1 #include<stdio.h>
2 #include<string.h>
3 void fun(char *p,char*q,char*c)
4 {
5 /**********found**********/
6 int k=1;
7 /**********found***********/
8 while(*p!=*q)
9 { if(*p<*q) c[k]=*q;
10 else c[k]=*p;
11 if(*p)p++;
12 if(*q)q++;
13 k++;
14 }}
15 main()
16 { char a[10]=’’aBCDeFgH’’,b[10]=’’ABcd’’,c[80]={’\0’};
17 fun(a,b,c);
18 printf(’’The string a: ’’);puts(a);
19 printf(’’The string b: ’’);puts(b);
20 printf(’’The result:’’); puts(c);
21 }
选项
答案
(1)int k=1改为int k=0;(2)(*p!=*q)改为(*p ‖ *q);
解析
(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/5KDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有说明inta[3][4];则a数组元素的非法引用是()。
若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是()。
已有定义inta=3;和输出语句printf("%8x",A);以下正确的叙述是()。
以下程序调用函数swap将指针s和t所指单元(a和B)中的内容交换,请填空。main(){inta=10,b=20,*s,*t;s=&a;t=&b;()printf("%d%d",a,B);}swa
以下对C语言中联合类型数据的正确叙述是()。
设变量均已正确定义,若要通过scanf("%d%c%d%c”,&a1,&e1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下列所示的输入形式中正确的是(注:口代表空格字符)()。
字符串"\\"ABCDEF\"\\”的长度是()。
在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是()。
二叉树的遍历可以分为三种:前序遍历、__________遍历和后序遍历。
在学生管理的关系数据库中,存取一个学生信息的数据单位是()。【10年3月】
随机试题
甲、乙、丙、丁、戊、己是一个家族的兄弟姐妹。已知:甲是男孩,有3个姐姐;乙有一个哥哥和一个弟弟;丙是女孩,有一个姐姐和一个妹妹;丁的年龄在所有人当中是最大的;戊是女孩,但是她没有妹妹;己既没有弟弟也没有妹妹。从以上叙述中,可以推出以下哪项结论?
血友病检查的确诊试验
A.峡部B.膨大部C.漏斗部D.子宫部E.阴道部黏膜内具有壳腺、分泌物形成蛋壳的输卵管部位是()
女,20岁。2小时前被刀刺伤来诊。查体:BP60/50mmHg,面色苍白,呼吸困难,颈静脉怒张,呼吸音尚好,心音遥远,创口在左锁骨中线第4肋间,应考虑的诊断()
布放电缆的基本要求包括()。
开展会计电算化的基本步骤可分为:(1)购买硬件;(2)购买软件;(3)制定规划;(4)市场调查。()
甲上市公司(以下简称甲公司)2007年至2009年投资业务有关资料如下:(1)2007年1月1日,甲公司以银行存款3300万元向乙股份有限公司进行长期投资。购入后,甲公司持有乙公司10%的股份,对乙公司的财务和经营政策没有重大影响。2007
班级活动的主要形式是常规班会。()
下列行为违反《机动车驾驶证申领和使用规定》的是()。
有研究资料表明,颈椎病患者往往缺钙。而大量实际事例表明,通过食用钙片,可改善人体内缺钙的状况。因此有人认为,可以通过食用钙片来治疗颈椎病。以下哪项最可能是上述观点依赖的假设?
最新回复
(
0
)