首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODl1.C中函数char *fun(char *s1,char *s2,char *r)的功能:将两个长度相等的数字字符串当作两个加数,求其代表的数值之和并以字符串的形式存入r所指内存且返回。 例如:s1是”723”,s2是”567”
给定程序MODl1.C中函数char *fun(char *s1,char *s2,char *r)的功能:将两个长度相等的数字字符串当作两个加数,求其代表的数值之和并以字符串的形式存入r所指内存且返回。 例如:s1是”723”,s2是”567”
admin
2022-10-25
79
问题
给定程序MODl1.C中函数char *fun(char *s1,char *s2,char *r)的功能:将两个长度相等的数字字符串当作两个加数,求其代表的数值之和并以字符串的形式存入r所指内存且返回。
例如:s1是”723”,s2是”567”,则返回的字符串为”1290”。要考虑进位。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<string.h>
char *fun(char *s1,char *s2,char *r)
{
int len,cy=0,md;
char *p,*q,*t;
len=strlen(s1);
p=s1+len-1:
q=s2+len-1:
t=r+len;
/************found************/
*t=’\0’;
while(p>=s1)
{
/************found************/
md=*p+*q-’0’+cy:
if(md>=10) cy=1;
else cy=0;
{t=md%10+’0’;
p﹣﹣;
q﹣﹣;
t﹣﹣;
}
/************found************/
if(cy=1)
*t=’1’;
else
{
while(*r++=*++t);
}
return r;
}
void main()
{
char sl[100],s2[100],s3[101];
strcpy(s1,”65743”);
strcpy(s2,”85339”);
fun(s1,s2,s3);
printf(”%s+%s=%s\n”,s1,s2,s3);
}
选项
答案
(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后面一位用来存放字符串结束标志。这里将“*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/qRkp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
对于一个正常运行的C程序,下列叙述中正确的是()。
下列定义变量的语句中错误的是()。
以下叙述中错误的是
请编写一个函数voidfun(chara[],charb[],intn),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。例如,输入一个字符串:World,
给定程序MODI1.C中函数fun的功能是:用下面的公式求x的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能输出正确的结果。注意:不要改动smain
若有定义语句:intm[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是()。
有以下程序#include<stdio.h>voidf(intx[],intn){if(n>1){printf("%d,",x[n-1]);f(x,n-1);}else
设有定义:intx=0,*p;紧接着的赋值语句正确的是()。
检查软件产品是否符合需求定义的过程称为()。
给定程序modi1.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动ma
随机试题
Internet的接入控制主要对付三类入侵者,他们是地下用户、________和________。
投资目标的分解类型有( )。
按照金融工具发行和流通特征分类,金融市场可以划分为()。
长江海事作为长江干线的重要执法力量,在新形势新要求下,必须______地走“生态优先、绿色发展”之路,必须______地与破坏长江生态环境保护的违法行为作斗争,做美丽长江的捍卫者、平安长江的保护者、高质量发展的践行者。依次填入划横线处最恰当的一组的是:(
有一种长着红色叶子的草,学名叫abana,在地球上极稀少。北美的人都认识一种红色叶子的草,这种草在那里很常见。从上面的事实不能得出以下哪项结论?
A、 B、 C、 D、 D
Thisstorybeganabout10yearsago.Iwascomingoutofaverybadmarriage.Forsevenlongyearsmyhusbandspenthiseverywa
The(oldest)publicedificeinWashingtonD.C.,theWhiteHousewas(originally)constructedinthe1790’s,(also)hasbeenrebu
A.indicativeB.reachC.immediateD.lackE.content-freeF.trackingG.specifying
ThebirthoftheSpaceTransportationSystem(STS)andtheneweraofspaceactivitiesitwillbringarecontributingtoarecen
最新回复
(
0
)