首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“一1234”,则函数把它转换为整数值一1234。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在
请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“一1234”,则函数把它转换为整数值一1234。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在
admin
2021-06-15
73
问题
请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“一1234”,则函数把它转换为整数值一1234。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<string.h>
long fun(char*P)
{
}
void main()
{
char s[6];
long n;
printf("Enter a string:\n");
gets(s);
n=fun(s);
printf("%id\n",n);
}
选项
答案
long fun(char*p) { long n=0; int flag=1; if(*p==’-’)/*负数时置flag为-1*/ {p++;flag=-1;} else if(*p==’+’)/*正数时置flag为1*/ p++; while(*p!=’\0’) { n=n*10+*p-’0’;/*将字符串转成相应的整数*/ p++; } return n*flag; }
解析
if语句的作用是判断该字符串为正数还是负数,while循环的作用是将字符串转成相应的整数。注意:*p是一个字符(例如‘9’、‘4’),并不是一个数,要将其转成相应的数字需令其减去’0’(不是’\0’),即*p一’0’就得到*p这个字符的相应数字,例如’0’一’0’=0、’8’一’0’=8等。必须在程序的前面加#include<stdlib.h>,函数atol的作用是将字符串转换成长整型数,它是一个库函数。
转载请注明原文地址:https://kaotiyun.com/show/t0tp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有定义语句:char*s1="OK",*s2="ok";以下选项中,能够输出"OK"的语句是()。
以下程序段的输出结果是()。char*s="\\141\141\abc\t":pirntf("%d\n",strlen(s));
下列与队列结构有关联的是
有以下程序#include<stdio.h>main()voidfun(char*c,intd}{charb=’a’,a="A’;{*c=*c+1;d=d+1;fun(&b,a);printf("%c,%c\n",b,a);pri
以下叙述中正确的是()。
数据结构中,与所使用的计算机无关的是数据的()。
设有定义语句int(*f)(int);则以下叙述正确的是
下列排序方法中,最坏情况下比较次数最少的是()。
为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域),则在________处应填入的选项是Structlink{chardata;_________}node;
设有如下语句:typedefstructDate{intyear;intmonth;intday;}DATE;则以下叙述中错误的是()。
随机试题
2016年1一4月,全国医疗卫生机构总诊疗人次达25.4亿人次,同比提高3.0%。其中:医院10.3亿人次,同比提高7.7%;基层医疗卫生机构14.3亿人次,同比降低0.6%;其他机构0.9亿人次。2016年4月,民营医院的出院人数比去年同期提高了:
应重点关注的经营现金流出项目是
实寒证与虚寒证最主要的区别点是()
对SLE的健康教育内容中错误的是
下列选项中属于按机床工作精度分类的是()。
从几何上看,在收益率与系统风险所构成的坐标系中,( )实际上是无风险收益率与基金组合连线的斜率。
以下组织属于社团法人的是()。
标志着中国人民抗日救亡运动新高潮到来的是()。
下列关于TokenBus局域网特点的描述中,错误的是()。
若变量已正确定义,则以下语句的输出结果是s=32;s^=32;printf("%d",s);
最新回复
(
0
)