网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)
问答题
请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值1234。函数fun中给出的语句仅供参考。  注意:部分源程序存在文件PROG1.C文件中。  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/**********code.c**********/#include #include long fun(char *p){ int i,len;/* len为串长*/ long x=0; len=strlen(p); /*以下完成数字字符串转换为数字,注意字符’0’不是数字0*/   return x;}void main()  { char s[6]; long n; printf(Enter a tring:); gets(s); n = fun(s); printf(%ld,n);}

参考答案

参考解析
解析:
if()语句的作用是判断该字符串应当为正数还是负数。注意:*p是一个字符(如'9'、'4'),并不是一个数,要将其转成相应的数字需令其减去'0' (不是'\0'),即*p-'0'就得到*p这个字符的相应数字,如'0'-'0'=0、'8'-'0'=8等。
更多 “问答题请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值1234。函数fun中给出的语句仅供参考。  注意:部分源程序存在文件PROG1.C文件中。  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/**********code.c**********/#include #include long fun(char *p){ int i,len;/* len为串长*/ long x=0; len=strlen(p); /*以下完成数字字符串转换为数字,注意字符’0’不是数字0*/   return x;}void main() { char s[6]; long n; printf(Enter a tring:); gets(s); n = fun(s); printf(%ld,n);}” 相关考题
考题 单选题有以下程序:#include #include void fun(int*p1,int*p2,int*s){ s=(int*)malloc(sizeof(int)); *s=*p1+*p2; free(s);}main(){ int a=1,b=40,*q=a; fun(a,b,q); printf(%d,*q);}程序运行后的输出结果是(  )。A 42B 0C 1D 41

考题 单选题有定义:int x,y=10,*p=y;, 则能使得x的值也等于10的语句是()。A x=p;B x=p;C x=y;D x=*p;

考题 单选题有以下程序:#includemain(){ int a=-2,b=0; while(a++++b); printf(%d,%d,a,b);}程序运行后的输出结果是(  )。A 1,3B 0,2C 0,3D 1,2

考题 填空题表达式x*=x+b等价于表达式()

考题 单选题以下选项中可用作C程序合法实数的是(  )。A .1e0B 3.0e0.2C E9D 9.12E

考题 单选题以下能正确表述算式sin(2πr+30°)的C语言表达式是(  )。A sin(2*3.14*r+3.14*30/180.0)B sin(2*π*r+30)C sin(2*3.14*r+30)D sin(2*3.14*r+30*3.14/360.0)

考题 单选题下面描述中错误的是(  )。A 系统总体结构图支持软件系统的详细设计B 软件设计是将软件需求转换为软件表示的过程C 数据结构与数据库设计是软件设计的任务之一D PAD图是软件详细设计的表示工具

考题 单选题以下程序:#include main(){ FILE *fp; char str[10]; fp=fopen(myfile.dat,w); fputs(abc,fp); fclose(fp); fp=fopen(myfile.dat,a+); fprintf(fp,%d,28); rewind(fp); fscanf(fp,%s,str); puts(str); fclose(fp);}程序运行后的输出结果是(  )。A abcB 28cC abc28D 因类型不一致而出错

考题 单选题设有整型变量a,实型变量f,双精度型变量x,则表达式10+′b′+x*f值的类型为()A intB floatC doubleD 不能确定