CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

一道考研题目,看看你的水平

楼主longleaver(易水寒)2004-09-03 22:07:42 在 C/C++ / C语言 提问

下图显示的是算术除法算式的竖式写法,请使用C语言并运用递归的方法编写程序,用户在程序运行开始的时候可以通过键盘输入被除数和除数,程序检验输入的的是否是正整数,以及除数不可为零,然后输出除法的竖式结果,输出格式模仿给出的例子。程序中应含有作为解释性文字的注释。  
   
                    7   6  
  =======  
  2   3)1   7   5   2  
            1   6   1  
  -------  
                1   4   2  
                1   3   8  
  --------  
                        4 问题点数:20、回复次数:26Top

1 楼xteaj(半桶水)回复于 2004-09-03 22:14:06 得分 0

要是哪个学校用这道题来考我,我宁愿不读这个学校的研究生!Top

2 楼heasonjiao(峰回路转)回复于 2004-09-03 22:17:48 得分 0

我去试试先Top

3 楼fanbest(座天使长)回复于 2004-09-03 22:18:13 得分 0

难度一般而已.  
  不算考研的经典例题Top

4 楼liacw1017(梁上君子)回复于 2004-09-03 22:23:08 得分 0

如果在int的範圍内,應該還可以拉,如果數字太大,  
  是不是先用/和%算出結果,然後打印就可以了,那不難啊Top

5 楼Zark(金陵五月)回复于 2004-09-04 02:12:01 得分 0

这题目的难度的确一般.   为了"多快好省地建设CSDN",仅提供思路如下:  
   
  由于答数必须首先打印,所以有二个解决方法:  
   
  1.投机法,   先用"/"和"%"算出其答数和余数,这样就可以顺利地打印第一行,其空格数为被除数长度+除数长度+1-答数的长度.然后做一递归法求答数的函数,实际上是一个求中间结果(如161,138)的函数,然后在逐次递归时打印中间结果,好处是有利于计算空格数.  
   
  2.实干法,做一个二维字符数组存储所有的屏幕输出,这样就不用投机地先计算答数了,如上面方法一样,做一递归函数计算中间结果及答数/余数,每次的中间结果写入数组中,最后打印结果.  
  Top

6 楼wegotnothingtolosebu(t this is a dirty joke...)回复于 2004-09-04 05:12:27 得分 0

考研这么容易啊?早知道就先不娶老婆了!!!Top

7 楼Daviescai(小蔡)回复于 2004-09-04 09:03:14 得分 0

比小学考初中容易多了。Top

8 楼HickMars(山鸡)回复于 2004-09-04 09:05:09 得分 0

果然很有学校的感觉Top

9 楼HickMars(山鸡)回复于 2004-09-04 09:07:36 得分 0

回复人:   Daviescai(小蔡)   (   )   信誉:100      
   
  考研这么容易啊?早知道就先不娶老婆了!!!  
   
  有老婆还是可以考研的  
   
  带老婆读研,不要太爽阿  
  Top

10 楼new_c()回复于 2004-09-04 12:58:36 得分 0

恩   zark的解释很清楚Top

11 楼xczjl(偶的DD比我长)回复于 2004-09-04 13:01:28 得分 0

还是没有人公布答案啊!  
  我想知道啊!Top

12 楼purple_monday()回复于 2004-09-04 13:09:26 得分 0

这个是哪个学校的题阿Top

13 楼iamyangfan(小帆)回复于 2004-09-04 13:12:24 得分 0

不懂Top

14 楼suifengxing()回复于 2004-09-04 13:49:52 得分 0

给我们考研的增长信心啊Top

15 楼zwzzj(独学而无友,则孤陋而寡闻. )回复于 2004-09-04 14:31:30 得分 0

看来我的前途一片光明啊~~~~~~~~~~~~~~Top

16 楼bm1408(向va_list学习~不用VC好多年~)回复于 2004-09-04 15:40:49 得分 0

北京理工的题目吧!Top

17 楼skyhero(醉倚斜栏听风雨)回复于 2004-09-04 18:24:52 得分 8

我的答案,算抛砖引玉吧,大家看了别笑!  
   
  //////////func.h//////////  
  #ifndef   __FUNC_H  
  #define   __FUNC_H  
  #include   <stdexcept>  
  using   namespace   std;  
  typedef   struct  
  {  
  int   quotient;  
  int   residual;  
  }   div_result;  
  void   func_div(div_result   &,int,int)   throw(exception);  
  #endif //__FUNC_H  
   
  //////////func.cpp//////////  
  #include   "func.h"  
  void   func_div(div_result   &result,int   dividend,int   divisor)   throw(exception)  
  {  
  if(divisor==0)  
  throw   exception("***Error***:   divided   by   zero");  
  if(dividend<0)dividend=0-dividend;  
  if(divisor<0)divisor=0-divisor;  
   
  if(dividend/10>=divisor)  
  {  
  func_div(result,dividend/10,divisor);  
  dividend=dividend%10+result.residual*10;  
  }  
  result.quotient=result.quotient*10+dividend/divisor;  
  result.residual=dividend%divisor;  
  }  
   
  //////////main.cpp//////////  
  #include   "func.h"  
  #include   <iostream>  
  int   main()  
  {  
  div_result   result;  
  result.quotient=0;  
  result.residual=0;  
   
  int   dividend,divisor;  
  cout<<"Dividend==?,Divisor==?";  
  cin>>dividend>>divisor;  
  try  
  {  
  func_div(result,dividend,divisor);  
  }  
  catch(exception   &e)  
  {  
  cerr<<e.what()<<endl;  
  exit(1);  
  }  
  cout<<dividend<<"   div   "<<divisor  
  <<":   quotient=="<<result.quotient  
  <<",   residual=="<<result.residual<<endl;  
  return   0;  
  }  
  Top

18 楼skyhero(醉倚斜栏听风雨)回复于 2004-09-04 18:26:53 得分 0

不好意思,没注意到要打印过程,汗~~~Top

19 楼JianZhiZG(健之)回复于 2004-09-04 20:20:17 得分 4

来一个“斜”的解法  
  #include<iostream.h>  
  #include<stdlib.h>  
  void   main()  
  {  
  int   m,   n,k=2,i;  
  char   s[20],*p=s;  
  cout<<"请输入被除数:";   cin>>m;  
  cout<<"请输入除数:";   cin>>n;  
  p=_itoa(m/n,s,10);  
  cout<<"\t"<<m/n<<"\n";  
  cout<<"\t---------------\n";  
  cout<<n<<"\t)   "<<m<<endl;  
  for(;*p;p++)  
  {  
  if(*p!='0')  
  {  
  cout<<"\t";  
  for(i=0;   i<k;   i++)   cout<<"   ";  
  cout<<n*(*p-'0')<<endl;  
  }  
  k++;  
  }  
  }  
  Top

20 楼JianZhiZG(健之)回复于 2004-09-04 21:33:23 得分 8

再来一个递归算法的,不过格式还是没有仔细考虑  
  #include   <iostream.h>  
  #include   <math.h>  
  void   go(int   m,int   n)  
  {  
  int   d=m,i=0;  
  while(d/10>n)   {d/=10;i++;}  
  cout<<"\t   "<<m<<endl;  
  cout<<"\t   "<<d/n*n<<endl;  
  cout<<"\t--------------\n";  
  m   =   m-(d/n*n*pow(10,i));  
  if(m>=n)   go(m,n);  
  else   cout<<"\t   "<<m<<endl;  
  }  
  void   main()  
  {  
  int   a,b;  
  cin>>a>>b;  
  cout<<"\t"<<a/b<<endl;  
  cout<<b<<"\t)----------\n";  
  go(a,b);  
  }  
  Top

21 楼xpzheng(快放假了)回复于 2004-09-04 22:23:39 得分 0

reTop

22 楼fengyvn(我菜我自在)回复于 2004-09-05 03:39:16 得分 0

这只是专业课的考题.通常专业课考得都不太难,难的是数学,英语,政治三门基础课.  
  楼上那些说简单的,你们去看看数学考题.计算机专业考数学一.  
  Top

23 楼shmily198(杨琴)回复于 2004-09-05 08:14:49 得分 0

华为火热招聘  
  咨询电话:13510248216                  
   
  时间:             历时一个月(平均每人4~5天)  
  招聘方式:  
  1. 内部推荐  
  2. 网上搜索  
  搜索主要条件:  
  更新日期:     一天内  
  意向岗位:     程序员/软件工程师  
  意向工作地:深圳  
  原工作地:     不限  
  酬薪:             2000~9000(包括面议)  
  年龄:             20~30  
  工作经验:     主要有C/VC开发经验  
  注:名字、联系方式已经显示的是已被登入华为人才库,不用再注意。  
  1. 将搜索的资料登入华为人才库。  
  http://huawei.com/NASApp/hr/myresume/stepone.jsp  
  填写资料注意项:  
  应聘意向:研发类,软件开发  
  应聘职位:软交换通信工程师  
         
   
  这个是错误的  
     
  推荐方式:内部推荐  
  推荐部门:研发类,中研  
  2. 将搜索的资料登入中研招聘工作库(szap33-ds)  
  1) 公司内所有员工均可使用此数据库创建应聘信息,应聘信息文档被首次保存后  
  将自动关闭,同时刷新创建时间,除“处理信息业务部”、“处理信息研究部”、  
  “应聘人联系电话”、“简历”外,该文档的创建人将失去对其他内容的修改权限但保留随时查看处理状态的权限。  
  2)填写真实姓名,中文名用简体字,英文名名在前、姓在后并以一个空格分开。通过重名提示判断创建信息是否重复,同一人信息不得重复录入。  
  3)现所在省市为应聘者目前居留地,除北京、上海、南京、深圳只填城市名外,其他均填省名和市名,但不含省、市字样,包括重庆和天津,如“四川重庆”。  
  4)现工作单位、毕业院校均填写全称。  
  5)员工推荐的信息,渠道选“推荐”;网络下载的信息,渠道选“网络”;应聘者主动投简历或参加招聘会或从“华为电子流”获得的信息,渠道选“自荐”。如渠道选网络,来源就选网站名称,如渠道选自荐,来源就选获得信息的方式或媒体。  
  6)如创建人为中研员工,提供信息部门及处理信息部门均填写本人所在部门;如创建人非中研员工   ,提供信息部门选“技术支援部、中间实验室、市场部或中研外其他部门,处理信息部门选“中研内其他部门”。  
  7)标记“*”号的条目为必填项。  
   
  填写资料注意项:  
  提供信息部门:核心网业务部     固定软交换开发部  
  处理信息部门:核心网业务部     固定软交换开发部  
                          提交信息时请选择“提交研究部接口人”而不是“业务部接口人”  
  您业可以直接联系负责人:杨琴,工号:39507,13510248216  
  Top

24 楼longleaver(易水寒)回复于 2004-09-06 11:52:52 得分 0

这道题目还是很难的吧。Top

25 楼junmayang(笨猪)回复于 2004-09-06 12:44:31 得分 0

学习Top

26 楼orthodox(百分百纯咖啡)回复于 2004-09-09 16:37:30 得分 0

扬琴 发这个是做什么的?  
  Top

相关问题

  • 一道简单的考研题目
  • 一道数据结构的考研题目
  • 一道题目
  • 一道题目.......
  • 一道题目
  • 一道题目
  • 一道题目
  • 问一道题目
  • 一道SCJP题目
  • 一道SCJP题目

关键词

  • 函数
  • 打印
  • 答数
  • divisor
  • dividend
  • 递归
  • func
  • 除数
  • residual
  • quotient

得分解答快速导航

  • 帖主:longleaver
  • skyhero
  • JianZhiZG
  • JianZhiZG

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo