首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序modil.c中函数fun()的功能是将两个长度相等的纯数字字符串当作两个加数,求其代表的数值之和,并以字符串的形式存入r所指内存且返回。 例如s1"723",s2是"567",则返回的字符串为"1290"。要考虑进位。 请改正程序
给定程序modil.c中函数fun()的功能是将两个长度相等的纯数字字符串当作两个加数,求其代表的数值之和,并以字符串的形式存入r所指内存且返回。 例如s1"723",s2是"567",则返回的字符串为"1290"。要考虑进位。 请改正程序
admin
2023-02-27
126
问题
给定程序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://kaotiyun.com/show/QJ0D777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设的整数部分为a,小数部分为b,则ab-=()。
设平面内有n条直线(n≥3),其中有且仅有两条直线互相平行,任意三条直线不过同一点,若用f(n)表示这n条直线交点的个数,则f(4)=();当n>4时,f(n)=()。
4位同学参加某种形式的竞赛,竞赛规则规定:每位同学必须从甲,乙两道题中任选一题作答,选甲题答对得100分,答错得-100分;选乙题答对得90分,答错得-90分,若4位同学的总分为0,则这4位同学的得分情况有()。
一组数据的方差是2,将这组数据中的每一个数据都扩大3倍,则所得一组新数据的方差是()。
某班有36名同学参加数学、物理、化学课外研究小组,每名同学至多参加两个小组,已知参加数学、物理、化学小组的人数分别为26,15,13,同时参加数学和物理小组的有6人,同时参加物理和化学小组的有4人,则同时参加数学和化学小组的有()人。
设直线的方程是A<+By=0,从1,2,3,4,5这五个数中每次取两个不同的数作为A,B的值,则所得不同直线的条数是()。
从-1,0,1,2这四个数中选三个不同的数作为函数f(x)=ax+bx+c的系数,可组成不同的二次函数共有()个,其中不同的偶函数共有()个。
1957年4月27日,中共中央下发《关于整风运动的指示》,决定在全党进行一次整风运动。这次整风运动的内容包括()
设函数f(x)在点x处可导,过曲线上点P(x,f(x))处的切线和法线与x轴交于点N和点M,点P在x轴上的投影为点T(见图5-3).证明
随机试题
世界卫生组织(WHO)提出的主要药品命名原则包括
在鱼道设计中必须考虑的技术参数是()。
基金资产净值是计算投资者申购基金份额、赎回资金金额的基础,也是评价基金投资业绩的基础指标之一。( )
采用借贷记账法时,“借”可以表示()。
下列谚语与其蕴含的哲理对应正确的有()。
在百姓心中,很多人都是过眼烟云。______,不因岁月而淘尽,而会久久让百姓惦念,在人们的心灵深处留存。因而,尽管工作时间是有限的,但为百姓干实事却会让干部绽放无限的价值;生命是短暂的,但群众的口碑却让生命富有了永恒的意义。要说人生的价值、生命的意义,还有
我们常会使用以前解决问题的方式解决新的问题,这属于()。
下列欧洲国家中没有使用欧元作为法定货币的国家是()。
=_____________.
Thefirstparagraphhints(暗示)______.Theelectricity-generatingpacksarelikelytobedangeroustous______.
最新回复
(
0
)