鱼C论坛

 找回密码
 立即注册
查看: 1376|回复: 2

[技术交流] C语言刷题

[复制链接]
发表于 2020-4-13 21:13:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
明天就要返校了emmm。。。期望这次二级C可以过吧 寒假那个月做了50多套二级卷人都疯了
(不要在意VC++这个版本
题目:

使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是将a和b所指的两个字符串分别转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
例如,主函数中输入字符串"32486"和"12345",在主函数中输出的函数值为44831。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件blank1.c中。
不得增行或删行,也不得更改程序的结构!
#include  <stdio.h>
#include  <string.h>
#include  <ctype.h>
#define  N  9
long  ctod( char  *s )
{ long  d=0;
  while(*s)
    if(isdigit(*s))  {
/**********found**********/
      d=d*10+*s-__1__;
/**********found**********/
      __2__;  
         }
  return  d;
}
long  fun( char  *a, char  *b )
{
/**********found**********/
  return  __3__;
}
void main()
{ char  s1[N],s2[N];
  do
  { printf("Input  string  s1 : "); gets(s1); }
  while( strlen(s1)>N );
  do
  { printf("Input  string  s2 : "); gets(s2); }
  while( strlen(s2)>N );
  printf("The result is:  %ld\n", fun(s1,s2) );
}

由题意结合题目可发现开始虽定义了一个ctod()函数但是主函数中没有用,ctod()函数本身也不存在什么递归啊迭代啊之类的东西,那么ctod()函数只可能在fun()中被调用了
观察ctod()函数,发现是用于判断字符串中数字的函数,d用于从字符串中获得当前数字(主函数中用的gets())并依次后移最终变为字符串所对应的数字(每次运算当前数*10并将接下来的数作为末位填上),
为了使字符串转化为数字,第一空需要填'0'

第二空则相对简单,因为是依次获取字符串中的数,所以填s++

第三空则是前面讲的调用ctod()函数,将*a和*b两个字符串转化为数字后相加并作为返回值,填ctod(a)+ctod(b)

第一空填出来了后面的就轻而易举了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 21:30:17 | 显示全部楼层
C二级难度比小甲鱼的课后作业小好多
就是意义不明的知识点有些多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-13 21:34:01 | 显示全部楼层
你是啥专业呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 06:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表