首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序modil.c中函数fun()的功能是将两个长度相等的纯数字字符串当作两个加数,求其代表的数值之和,并以字符串的形式存入r所指内存且返回。 例如s1"723",s2是"567",则返回的字符串为"1290"。要考虑进位。 请改正程序
给定程序modil.c中函数fun()的功能是将两个长度相等的纯数字字符串当作两个加数,求其代表的数值之和,并以字符串的形式存入r所指内存且返回。 例如s1"723",s2是"567",则返回的字符串为"1290"。要考虑进位。 请改正程序
admin
2023-02-27
111
问题
给定程序modil.c中函数fun()的功能是将两个长度相等的纯数字字符串当作两个加数,求其代表的数值之和,并以字符串的形式存入r所指内存且返回。
例如s1"723",s2是"567",则返回的字符串为"1290"。要考虑进位。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
1 #include
2 #include
3 char*fun(char*s1,char *s2,char * r)
4 {
5 int len,cy=0,md;
6 char*p,*q,*t;
7 len=strfen(s1);
8 p=s1+len-1;
9 q=s2+len-1;
10 t=r+len;
11 /*********found*********/
12 *t=’\0’;
13 while(p>=s1)
14 {
15 /*********found*********/
16 md=*p+*q-'0'+cy;
17 if(md>=10) cy=1;
18 else cy=0;
19 *t=md%10+'0';
20 p~-;
21 q~-;
22 t~-;
23 }
24 /*********found*********/
25 if(cy=1)
26 *t='1';
27 else
28 {
29 while(*r++=*++t);
30 }
31 return r;
32 }
33 void main()
34 {
35 char s1[100],s2[100],s3[101];
36 strcpy(s1,"65743");
37 strcpy(s2,"85339");
38 fun(s1,s2,s3);
39 printf("%s+%s=%s\n",s1,s2,s3);
40 }
选项
答案
(1)*(t+1)='\0';或者*(1+t)=’\0'; (2)md=*p-'0'+*q-'0'+cy; (3)if(cy==1)
解析
题干要求将两个长度相等的纯数字字符串当作两个加数,求其代表的数值之和并以字符串的形式存入r所指内存且返回。指针p指向字符串s1最后一个字符,指针q指向字符串s2最后一个字符。指针t指向r+len。
(1)指针变量r存放相加以后的字符串,相加后可能会发生进位,指针t后一位存放字符串结束标志。这里将将*=’\0’;修改为*(t+1)='\0';或者*(1+t)=’\0';。
(2)将指针变量p和q指向的数字字符相加,所以需要减去字符"0"。这里将md=*p+*q-'0'+cy;修改为md=*p-'0'+*q-’0'+cy;。
(3)如果cy为1,则加法运算发生进位,指针t的位置存放1。这里将if(cy=1)修改为if(cy==1)。
转载请注明原文地址:https://www.kaotiyun.com/show/QJ0D777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
在,-0.1010010001…(每两个1之间依次多一个0),log28这8个实数中,无理数有()个。
正方形ABCD的边长为a,以AB、BC、CD、DA分别为直径画半圆,这四个半圆弧所围成的阴影部分的面积为()。
一组数据有10个,每个数据与它们的平均数的差依次为-2,4,-4,5,-1,-2,0,2,3,-5,则这组数据的方差为()。
已知2,4,2x,4y四个数的平均数是5;5,7,4x,6y这四个数的平均数是9,则x2+y2的值是()。
在一次数学竞赛中,二等奖的人数是一等奖的4倍,如果将一等奖的最后5名转为二等奖,则二等奖的人数是一等奖的5倍,则一等奖与二等奖的人共有()个。
一出租车司机从饭店到火车站途中有六个交通岗,假设司机在各交通岗遇到红灯这一事件是相互独立的,并且概率都是,那么这位司机遇到红灯前,已经通过了两个交通岗的概率是()。
从{1,2,3,4,…,20}中任选3个不同的数,使这三个数成等差数列,这样的等差数列最多有()。
对于任意实数x,不等式(a+2)x2+4x+(a-1)>0都成立,则a的取值范围是()。
设x,y,z满足|3x+y-z-2|+(2x+y-z)2=,则x+y+z的值为()。
美国《财富》杂志公布的1999年世界500家大企业的统计数字显示,其中前30家总收入2.80242万亿美元,相当于1998年世界国民生产总值的9.7%,比英国和法国两国的国民生产总值(2.73万亿美元)还多2.6%,相当于世界160多个中低收人国家全部国
随机试题
关于补充侦查,下列哪些选项是正确的?(卷二真题试卷第71题)
车轮速度传感器的功用是_______车轮速度,并将车轮速度转换成_______输入到_______。
Wheredocarsgettheirenergyfrom?Formostcars,theanswerispetrol.【C1】______somecarsuseelectricity.Thesecarshave【C
发热时机体代谢变化有
矩形截面梁横力弯曲时,在横截面的中性轴处:
内外勾结作案形成的操作风险损失涉及的事件类型有()。
截至2007年4月尚未完成股份制改造的银行是()。
食物营养素补充剂的评价要点有哪些?
画者练就一双画眼。大干世界各种形象随时随地、有光有色流过眼前,偶有美感,即刻被这双眼捉住.尽情地痴醉其间,这是何等的快乐。这些快乐感一层层积存心中,闲暇时便一片片翻出来看,这又是何等美妙的享受。时而,浩阔深幽的心底,会悠然浮起一幅画来。它不是那些眼前见过的
Morepeoplethaneveraredrinkingcoffeethesedays—butinsmallquantifiesthantheyusedto.Some【S1】______manufactu
最新回复
(
0
)