首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“一1234”,则函数把它转换为整数值一1234。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中
请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“一1234”,则函数把它转换为整数值一1234。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中
admin
2018-03-28
90
问题
请编写函数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("%ld\n",n);
}
选项
答案
long fun(char*p) { 10ng 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>,函数awl的作用是将字符串转换成长整型数,它是一个库函数。
转载请注明原文地址:https://kaotiyun.com/show/qxxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
在软件工程中,白盒测试法可用于测试程序的内部结构,此方法将程序看做是()。
请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 【】(double,double); main( ) {doublex,y; scanf("%lf%lf",&x,&y); printf("%lf\n",ma
有以下程序main(){inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf("%d",d+++1);elseprintf("%d",+
以下数组定义中错误的是()。
能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是
若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语printf(【】,x/y);补充完整,使其输出的计算机结果形式为:x/y=11。
已有定义如下:structnode{intdata;structnode*next;}*p;以下语句调用malloc函数,使指针p指向一个具有stmctnode类型的动态存储空间。
以下语句中存在语法错误的是()。
设有以下定义和语句:inta[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];则.(P[0]+1)所代表的数组元素是()。
有下列程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;下列选项中表达式的值为11的是
随机试题
部分药品名称容易混淆,药师在审核处方时应给予注意。下列处方中,因药名容易混淆而写错的不合理处方是
孟子认为,教育的作用在于求()和存()、养()。求放心即保持和发扬固有的();存心养性即恢复已经失去的()。
符合微小病变性肾小球病的描述是
起点A和终点B的地形标高分别为62.0m和61.0m,若在某流量下管段AB的水头损失为2m,且B点的服务水头为20m,则此时A点的服务水头为()。
生态环境现状评价一般需阐明评价区内()。
机电工程安装风险控制的技术措施是()。
“营改增”后,纳税人提供有形动产租赁,适用的增值税税率为()。
在本届奥运会所有奖牌获得者都进行了尿样化验,没有发现兴奋剂使用者。如果上述陈述为假,则以下哪项一定为真?Ⅰ.或者有的奖牌获得者没有化验尿样,或者在奖牌获得者中发现了兴奋剂的使用者。Ⅱ.虽然有的奖牌获得者没有化验尿样,但还是发现
一般而言,Internet环境中的防火墙建立在()。
设一棵树的度为4,其中度为4、3、2、1的节点的个数分别为2、3、3、0。则该棵树中的叶子节点数为()
最新回复
(
0
)