首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
70
问题
给定程序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://kaotiyun.com/show/qRkp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
C语言主要是借助以下()功能来实现程序模块化的。
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。注意:部分源程序在文件PROGl.C中
有以下程序#include<stdio.h>voidf(intx[],intn){if(n>1){printf("%d,",x[n-1]);f(x,n-1);}else
下列二维数组初始化语句中,正确且与语句inta[][3]={1,2,3,4,5}等价的是()。
下列关于线性链表的描述中,正确的是()。Ⅰ、只含有一个指针域来存放下一个元素地址Ⅱ、指针域中的指针用于指向该结点的前一个或后一个结点(即前件或后件)Ⅲ、结点由两部分组成:数据域和指针域。
某二叉树共有13个结点,其中有4个度为1的结点,则叶子结点数为
关于“while(条件表达式)循环体”,以下叙述正确的是()。
有如下程序#includemain(){intx=0x13;printf("%d\n",x+1);}程序运行后的输出结果是()。
下面选项中合法的字符常量是
用树形结构表示实体之间联系的模型是
随机试题
某工厂生产多种产品,每种产品又要使用多种零件,一种零件可能装在多种产品上。每种零件由一种材料制造,每种材料可用于不同零件的制作。有关产品、零件、材料的数据字段如下:产品:产品号(GNO),产品名(GNA),产品单价(GUP)零件:零件号(PNO
不属于血液分析仪性能评价的指标为
下列各项中,()不是我国证券账户的种类。
生产观念致力于解决下列企业经营中()的问题。
2008年6月10日,甲公司(非上市公司)将其账面价值为2000000元的某项固定资产以2500000元的价格变卖给其子公司A公司,并确认营业外收入500000元。A公司购入后作为固定资产使用,并以2500000元作为固定资产的成本入账。固定
()初年的大槐树下迁民对河南社会发展的推动作用巨大。
Paintingyourhouseislikeaddingsomethingtoahugecommunalpictureinwhichtherestofthepaintingisdoneeitherbynatu
设有两个事务T1和T2,其并发操作序列如下表所示。下列说法中正确的是
Johniscrazyaboutpopmusic.
MildweatherhasbroughtJapan’smuch-lovedcherrytreesinto(36)______twoweeksearlythisyear,butnoteveryoneis(37)____
最新回复
(
0
)