首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
58
问题
给定程序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全国计算机二级
相关试题推荐
以下程序的运行结果是()。#includemain(){inta=3,b=4,c=8,d=4,m=l,n=3;printf("%d\n",(m=a>b)&&(n=c>d));}
有以下程序#include<stdio.h>structS{inta;intb;};main(){structSa,*p=&a;a.a=99;
以下选项中,与n=i++完全等价的表达式是
对于一个正常运行的C程序,下列叙述中正确的是()。
下列给定程序的功能是调用fun函数建立班级通信录。通信录中记录每位学生的编号、姓名和电话号码。班级人数和学生信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出
给定程序MODI1.C中函数fun的功能是:用下面的公式求x的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能输出正确的结果。注意:不要改动smain
有以下程序,程序中库函数islower(eh)用以判断ch中的字母是否为小写字母:#include#includevoidfun(char*P){inti=0;while(P[i])
以下叙述中错误的是( )。
以下叙述中正确的是()。
有如下程序#includemain(){intx=0x13;printf("%d\n",x+1);}程序运行后的输出结果是()。
随机试题
IcanclearlyrememberthefirsttimeImetMr.Andrews,myoldheadmaster,【21】thatwasovertwentyyearsago.Duringthewar,I
A.心尖部可触及有力的抬举感B.心尖搏动弥散C.心浊音界向两侧扩大,坐位呈“烧瓶样”D.心界呈梨形风湿性心脏瓣膜病二尖瓣狭窄
直流负荷中监控、保护、位置指示等负荷系数为()。
委托监理合同示范文本中,监理人的权利包括()。
按照建设工程项目信息的分类,编码信息属于()类信息。
关于奥尔德弗提出的ERG理论的说法,正确的是()。
根据商业银行法律制度的规定,下列情形中属于接管终止的有()。
请从右边四个选项中选出一个能由左边图形折叠而成的图形。()
Anecdotalevidencehaslongheldthatcreativityinartistsandwriterscanbeassociatedwithlivinginforeignparts.Rudyard
与RIPV1相比,RIPV2的改进是__________。(2013年上半年试题)
最新回复
(
0
)