笔试题:输入0123456789对应输出“一二三四五六七八九”


题目描述:当输入一个数的时候:即输入:1,对应输出:一;输入:2,对应输出:二
当输入两个数的时候:即输入:12;输出:一十二;输入:10,输出:一十
当输入三位数的时候:即输入:123,输出:一百二十三;输入:100,输出:一百等等
这是完美世界的一道在线笔试题,当时时间不够,没能完全做完,想想真是遗憾,话不多说了直接上代码

  2 #include <stdio.h>
  3 #include <stdlib.h>
  4 #include <iostream>
  5 #include <string.h>
  6 using namespace std;
  7 #define LEN 10
  8 #define N 12
  9 
 10 //将整数逆制--》即类是于:123变成321
 11 int funtion(int value)
 12 {
 13     int tmp=0;
 14     int res=0;
 15     while(value !=0)
 16     {
 17         tmp=value%10;
 18         res=res*10+tmp;
 19         value/=10;
 20     }
 21     return res;
 22 }
 23 //处理只有一位数的时候
 24 void case1_fun(int value,int *arr,char char_arr[N][LEN])
 25 {
 26     for(int i=0;i<LEN;++i)
 27	{
 28         if(value==arr[i])
 29             cout<<char_arr[i];
 30     }
 31 }
 32 //处理两位数的时候
 33 void case2_fun(int value,int *arr,char char_arr[N][LEN],int count)
 34 {
 35     int tmp=0;
 36     int k=0; //主要控制输出十的位
 37     while(1)
 38     {
 39         for(int i=0; i<LEN; ++i)
 40         {
 41             tmp=value%10;
 42             if(tmp==arr[i])
 43             {
 44                 if(k==1)
 45                     cout<<char_arr[N-2];  //主要是输出十位 即十或者shi
 46                 if(tmp !=0) //主要防止个位不为零的时候
 47                     cout<<char_arr[i];
 48                 k++;
 49                 count--;  //控制有多少位                                                                             
 50                 value/=10;
 51                 if(value==0 && count==0)//必须要把两位数都得输出才结束
 52                    return;
53             }
 54         }
 55     }
 56 }
 57 //处理三位数的时候,这个要稍微麻烦一点
 58 //这个特别注意的是不能将三位数分解成两位是和一位数去处理,主要是考虑整百的时候
 59 //把高位的值取出来后就变成了零,零在这个函数中是不能被处理的
 60 void case3_fun(int value,int *arr,char char_arr[N][LEN],int count)
 61 {
 62     //三位数的情景主要有三种格式:100,109,123  所以要考虑后两位为零和后一位为零的情况
 63     int tmp=0;
 64     int k=3; //控制百位和十位的输出
 65     int v_tmp=0; //记录每一次模后的位数
 66     while(1)
 67     {
 68         for(int i=0; i<LEN; ++i)
 69         {
 70             tmp=value%10;
 71             if(tmp==arr[i])
 72             {
 73                 if(k==2)
 74                     cout<<char_arr[N-1];
 75                 if(k==1 && v_tmp !=0) 
 76			cout<<char_arr[N-2];
 77                 if( tmp==0)
 78                 {
 79                     if(((value/10)%10)==0) //如果后两位都是零的话就不需要输出十位的十
 80                         NULL;
 81                     else//如果是一百零几的时候就需要输出中间这个零,否则就不需要输出中间隔零
 82                        cout<<char_arr[i];
 83                 }else
 84                     cout<<char_arr[i];
 85                 k--;
 86                 value/=10;
 87                 count--;
 88                 v_tmp=tmp;
 89                 if(value==0 && count==0)
 90                     return;
 91             }
 92         }
 93     }
 94 }
 95 //
 96 void fun(int value,int *arr,char char_arr[N][LEN])
 97 {
 98     if(value <=0 || value >=1000)
 99         return;
100     int tmp=value;
101     int count=0;                                                                                                     
102     int number=value;
103     while(number !=0)//主要记录有几位数
104     {
105         count++;
106         number/=10;
107     }
108     //用switch处理遇到的不同的情况,分开处理比较好
109     switch(count)
110     {
111         case 1:
112             case1_fun(tmp,arr,char_arr);
113             break;
114         case 2:
115             tmp=funtion(tmp);//得到了tmp这个数的逆值数据,下同
116             case2_fun(tmp,arr,char_arr,count);
117             break;
118         case 3:
119             tmp=funtion(tmp);
120             case3_fun(tmp,arr,char_arr,count);
121             break;
122         default:
123             break;
124     }
125 }
126 
127 int main() 
128 {
129     int value=0;
130     int arr[LEN]={0,1,2,3,4,5,6,7,8,9};
131//char char_arr[N][LEN]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu","shi","bai"};
132     char char_arr[N][LEN]={"零","一","二","三","四","五","六","七","八","九","十","佰"};
133     cout<<"please enter number :";
134     fflush(stdout);
135   //  cin>>value;
136     while(cin>>value && value !=EOF)
137     {
138         fun(value,arr,char_arr);
139         fflush(stdout);
140 //      cin>>value;
141     }
142     return 0;
143 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件测试工程师笔试题及参考答案 题与答案尽供参考 一、判断题 1.软件测试的目的是尽可能多的找出软件的缺陷。(Y) 2.Beta 测试是验收测试的一种。(Y) 3.验收测试是由最终用户来实施的。(N) 4.项目立项前测试人员不需要提交任何工件。(Y) 5.单元测试能发现约80%的软件缺陷。(Y) 6.代码评审是检查源代码是否达到模块设计的要求。(N) 7.自底向上集成需要测试员编写驱动程序。(Y) 8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N) 10.代码评审员一般由测试员担任。(N) 11.我们可以人为的使得软件不存在配置问题。(N) 12.集成测试计划在需求分析阶段末提交。(N) 二、选折 1.软件验收测试的合格通过准则是:(ABCD) A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 B. 所有测试项没有残余一级、二级和三级错误。 C. 立项审批表、需求分析文档、设计文档和编码实现一致。 D. 验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?(ABCD) A.项目经理 B.SQA 负责人 C.配置负责人 D.测试组 3.下列关于alpha 测试的描述中正确的是:(AD) A.alpha 测试需要用户代表参加 B.alpha 测试不需要用户代表参加 C.alpha 测试是系统测试的一种 D.alpha 测试是验收测试的一种 4.测试设计员的职责有:(BC) A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 5.软件实施活动的进入准则是:(ABC) A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化 三、添空 1.软件验收测试包括:正式验收测试,alpha测试,beta测试。 2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦) 3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。 4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。 5.(这题出的有问题哦,详细的5步骤为~~)通过画因果图来写测试用例的步骤为: (1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。 (2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。 (3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 (4)把因果图转换成判定表。 (5)把判定表的每一列拿出来作为依据,设计测试用例。 四、简答(资料是搜集整理的,感谢前辈的解题)无 1.区别阶段评审的与同行评审 同行评审目的:发现小规模工作产品的错误,只要是找错误; 阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性 同行评审人数:3-7人 人员必须经过同行评审会议的培训,由SQA指导 阶段评审人数:5人左右 评审人必须是专家 具有系统评审资格 同行评审内容:内容小 一般文档 < 40页, 代码 < 500行 阶段评审内容: 内容多,主要看重点 同行评审时间:一小部分工作产品完成 阶段评审时间: 通常是设置在关键路径的时间点上! 2.什么是软件测试 为了发现程序中的错误而执行程序的过程 3简述集成测试的过程 系统集成测试主要包括以下过程: 1. 构建的确认过程。 2. 补丁的确认过程。 3. 系统集成测试测试组提交过程。 4. 测试用例设计过程。 5. 测试代码编写过程。 6. Bug的报告过程。 7. 每周/每两周的构建过程。 8. 点对点的测试过程。 9. 组内培训过程。 4 怎么做好文档测试 仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142 检查文档的编写是否满足文档编写的目的 内容是否齐全,正确 内容是否完善 标记是否正确 5 白盒测试有几种方法 总体上分为静态方法和动态方法两大类。 静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义 动态:语句
I made this file by collecting kinds of paper test information online in about half a year. I made it public to help the ones hunting for jobs like myself last year. If anything is wrong, Please contact me by CSDN or Peking Moment at gmail dot com. You can print or note this file by yourself without纸上谈兵 刖音……… 操作系统及 linux 14 1.进程与线程 1)同步机伟 14 2)进程通信… 15 3)同步与通信 4)进程调度 16 5)多进程与多线程的区别….17 6)死锁 17 7〕)进程与线程 18 2. fork ““““““““““““““ 18 3. Linux…………… 20 4, RAID 21 5.测试…. 1面 道面准 21 6.堆栈数据代码区 …22 7.文件读写 n1道面1面面主B1 23 1) fclose(……… 23 2)fopen 23 3fseek0 .24 4)fread 24 5) fwrite(… 24 8.硬链接与软链接 25 .C++与面向对象语言 26 1.C语言基础问题… 26 GoogLe+@http://dwz.cn/fada5 CsdN@http://dwz.cn/as2ik 1)关于 const的问题 26 2)浅复制与深复制.…. 3)逆波兰表达式 4)C语言变长参数0 a品 27 5)调用约定… 27 6)寄存器 28 7)关于内联数 inline 28 8 PACK.... 28 9)正则表达式 29 内存操作… 29 11)四种强制类型转换 31 12 sizeof …31 13)动态库与静态库 32 14)压栈·优先级·位序·宏· Union·指针 32 15)new& malloc… 35 16) enum 35 2.面冋对象编程 面面面 35 1)构造函数虚函数静态成员函数…… 35 2)copy& assignment… 36 3)列表初始化 37 4)多态… 37 5)静态绑定与动态绑定 38 6 Explicit mutable volatile internal 39 7)继承… 39 8〕)堆栈溢出 面主1面主面:aat 40 9)重载操作符 40 10) Final 1 C+ 41 3.设计模式. .41 1)UTF编码协议… 41 〕)创建型模式( creational pattern)…… 41 3)单例模式 1面a i1面 42 4)策略模式…… 主主主基主主主主 42 5)MVC……, 43 6) PIMPL….... “4 .43 7)RAIL 44 4 STL 44 1) Vector.… 44 2]upper_ bound&lower_bound 45 mAp 45 数据结构 46 1.树. 146 1)基本知识 …46 2)几个问题 46 3)完全二叉树( Complete binary tree)… 54 4)次优查找树 55 5)最优二叉树霍大曼树…… 55 6) BST: Search/insert/delete 56 7)平衡二叉树与AVL树 8)B树与B+树 57 9)红黑树 59 2.栈 59 GoogLe+@http://dwz.cn/fada5 Csdn@http://dwz.cn/as2ik 1)括号配对 59 3.链表… 61 1)单向链表交点问题 61 2)链表内环的存在间题 62 3)链表逆置反向存储… 63 4)将两个排序好的链表归并 4.图. 面道盖 主1 65 1)某本知识….,… 65 2)图的表示…, 1面自1主主主日1面主 65 )DFS&BFS…....… 6 4D&b&FW algorithm 68 5)应用 主自 着面 69 5.排序 70 1)基木知识 …70 2)快速排序 …71 3)插入排序 72 4)希尔排序… …72 5)选择排序 72 6)归并排序… 73 7)堆排序 74 8)拓扑排序… 75 9)计数排序… 76 6. Hash 76 1) Consistent Hashing…… 76 7.查找元素∴ 77 1)一般二分查找…… 77 2)循环升序数组 77 3)杨氏矩阵… 4)跨行查找字符串 81 5)Trie树 81 8.其他. 1)主定理与复杂度 81 2)静态存储与动态存储… 82 3)字符串匹配 主主面主主主 ….82 四 数据与计算机通信… 85 1 OSI 85 2.TCP协议 85 1.通路的建立 .86 2.数据传输 86 3.连接终止 87 4.拥塞控制 88 5. Soket通讯与TCP原语 88 3.UDP协议… 89 4.分组交换 90 5.HTTP协议… 90 1)TTP协议简介 2)HTTP协议方法 90 3)HT"TP响应,,…,,… 1 4)示例 91 6.IP协议… 92 1)IPv4 92 2)子网划分 92 GoogLe+@http://dwz.cn/fada5 Csdn@http://dwz.cn/as2ik 7. ICMP 93 8.ARP与RARP 93 数据库 94 1.主键/超键/候选键. 94 2 ACID 1面主 …94 3.数据库范式… n010000I 94 4.数据库中的基本语句 11面 95 5.游标 …………95 6.索引 主主主 主主基主主主主主主签主主主 95 7.语句 96 8.内连接与外连接 96 9.视图 96 六.算法及智力题目 97 1.小白鼠试毒问题及扩展… 主面⊥ 自11自主 97 2.大半寻找次品球问题及扩展. 主主主在主主 97 3.抽扑克牌问题. 98 4.三密码锁问题…… 面面面 99 5.猜数字问题 99 6.最大连续子序列问题 100 7.优惠券问题 101 8.闫隔翻眼镜问题.… …102 9.扔鸡蛋确定楼层问题..-. 02 10.左上右下最大流问题 106 11.三角形内产生随机数 111 12.赛与问题 …111 13.过河问题〔 intel)… 113 14.数星星问题.… 114 15.交流问题/ Gossip problem 114 16.交换问题. 15 17.换数… 18.消耗问题…… 117 19.四则算式 17 20.国王与魔鬼下棋问题 11面 121 七.数学与逻辑…… 122 1.停时定理 122 2.基本公式 123 3.实现'a+b 123 4.估算N!的位数.0 123 5.N的开方 124 6.三个数组求最大距离 126 7.6,9,140可以组合成大于N的所有数请问N最小为?…126 8.判断一个点位于一个多边形的内部? 126 9.求连续数组的最大乘积 127 10.台阶接水问题. 127 11.最小交集. 127 12.概率问题 127 1)生日悖论之二 127 2〕)升级概率问题 128 3)碰撞概率…,… 128 4)布丰投针问题,…,,… …128 )概率组合示例….129 13.排列组合问题 130 GoogLe+@http://dwz.cn/fada5 CsdN@http://dwz.cn/as2ik 1)组合 130 2)全排列 130 3)错排问题..0 133 4)输入,输出对应的所有长度为的二进制串 134 5)输入56,输出11-1621-26…51-56… 135 6)已知字符串里的字符是互不相同的,现在任意组合,比如ab,则输出a, ab,ba,bb,编程接照字典序输出所有的组合 .136 八.手写代码. 138 1. strcpy函数…,,,,, 面面1a面 …138 2.atoi.…, 自1面 主主道 138 3.itoa(Intel) 139 4.约慭夫环〔nte) 面111面D面主 139 5.二分查找函数 140 6.实现栈或者树的建立查找删除销毁操作… 141 7.斐波那契数列 141 8.求两个数组中的相同元素 141 9.查找一个中间大的数… 141 10.编写类 String的构造析构赋值函数…,…,…,,, 141 11.输入两个宇符串,输出第二个字符串在第一个字符串中的位序 143 12.方块寻径…… …144 13.实现积分图 145 语…… 146

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值