首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写一个函数fun(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。 例如,若输入字符串“-1234”,则函数把它转换为整数值 -1234。 注意:部分源程序给出如下。 请勿改动主函数main
请编写一个函数fun(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。 例如,若输入字符串“-1234”,则函数把它转换为整数值 -1234。 注意:部分源程序给出如下。 请勿改动主函数main
admin
2010-05-05
55
问题
请编写一个函数fun(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。
例如,若输入字符串“-1234”,则函数把它转换为整数值 -1234。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#include <string.h>
long fun(char *p)
{
}
main ( )
{
char s[6];
long n;
printf("Enter a string:\n");
gets(s);
n=fun(s);
printf("%ld\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()的作用是将字符串p转成长整型数,它是一个库函数。
转载请注明原文地址:https://kaotiyun.com/show/iHID777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
我国是统一的多民族国家,下列关于我国国家结构形式的表述,不正确的是()。
价格机制的核心内容是()。
2014年种种信号和变化,表明我国经济发展出现了趋势性、不可逆的新常态。经济进入新常态,是30多年高速发展的必然结果,是客观经济规律作用的体现。“新常态经济”的主要特征是()。
根据菲利普斯曲线.降低通货膨胀率的办法是()。
某甲在银行取款时,银行工作人员因点钞失误多付给他1万元,甲以这1万元作本钱经商,获利5千元,其中2千元为其劳务管理费用成本。一个月后银行发现了多付款的事实,要求甲退回,甲不同意。下列有关该案的哪一表述是正确的?()
消化系统是保证人体新陈代谢正常进行的一个重要系统,是由消化管和消化腺两大部分组成,下列器官或腺体不属于消化系统的是()。
四只同样的瓶子内分别装有一定数量的油,每瓶和其他各瓶分别合称一次,记录千克数如下:8、9、10、11、12、13。已知四只空瓶的重量之和以及油的重量之和均为质数,求最重的两瓶内有多少油?
有一项工程,甲单独做需要36天完成,乙单独做需要30天完成,丙单独做需要48天完成。现在由甲、乙、丙三人同时做,在工作期间,丙休息了整数天,甲、乙均未休息。完成这项工作也用了整数天。则丙休息了多少天?
我国《行政处罚法》规定,行政机关在调查或进行检查时,执法人员不得少于两人,并应当向当事人或有关人员出示证件。这体现了行政处罚程序中的()。
随机试题
下列关于预计年度留存收益增加额的计算公式中,不正确的有()。
下列药物中,不能与藜芦同用的药物是
病毒性肝炎病人的主要护理措施为
患者,男,56岁。吸烟36年,每天吸烟20支。吸烟行为属于
能引起药物性牙龈增生的药物是
关于麻醉对内分泌功能的影响,错误的是
下列关于货币计量的表述中,正确的有()。
据说某公司有如下做法,其中你认为真实的是()
20世纪以后教育特点有()。
作为下属,你既是任务的执行者,也有义务帮助领导。如果领导决策失误,你该怎么办?
最新回复
(
0
)