




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010软件专业人才设计与开发大赛 部分试题 (C语言本科组)程序空题:(5+5+5+5+10 = 30)五题:void f(int n) for(int i=2; i1) printf(%dn, n);第二题:char* p = abcdef;char* q = (char*)malloc(strlen(p)+1);for(int i=0, int len=strlen(p); i1) b *= n-; return a / b;第四题:int f(int n) int N4; for(int i=0; i4; i+) N3-i = n % 10; -(4)- for(i=0; i3; i+) for(int j=0; jNj+1) int t = Nj+1; Nj+1 = Nj; Nj = t; int n_min=0; for(i=0; i=0; i-) n_max = n_max * 10 + N; return n_max-n_min;第五题:/m: 持有5角币的人数/n: 持有1元币的人数/返回:所有顺利完成购票过程的购票次序的种类数int f(int m, int n) if(m n) return 0; if(n=0) return 1; return _(5)_;最后一题:编程题:1请完成设计文档(设计思路)2设计题只需完成这个函数:bool TestResolve(char* question, int* oper, char* answer) / 等待考生完成 求二十四点:/ Calcu24.cpp : Defines the entry point for the console application./#include stdafx.h#include conio.h#include stdlib.h#include time.h#include math.h#include string.h/* 从一副扑克牌中,任取4张。 2-10 按其点数计算(为了表示方便10用T表示),J,Q,K,A 统一按 1 计算 要求通过加减乘除四则运算得到数字 24。 本程序可以随机抽取纸牌,并用试探法求解。*/void GivePuzzle(char* buf) char card = A,2,3,4,5,6,7,8,9,T,J,Q,K; for(int i=0; i4; i+) buf = cardrand() % 13; void shuffle(char * buf) for(int i=0; i=0 & c0.0001) return op1 / op2; else return 100000; return 0;void MakeAnswer(char* answer, int type, char* question, int* oper) char p43; for(int i=0; i4; i+) if( question = T ) strcpy(p, 10); else sprintf(p, %c, question); switch(type) case 0: sprintf(answer, %s %c (%s %c (%s %c %s), p0, GetOper(oper0), p1, GetOper(oper1), p2, GetOper(oper2), p3); break; case 1: sprintf(answer, %s %c (%s %c %s) %c %s), p0, GetOper(oper0), p1, GetOper(oper1), p2, GetOper(oper2), p3); break; case 2: sprintf(answer, (%s %c %s) %c (%s %c %s), p0, GetOper(oper0), p1, GetOper(oper1), p2, GetOper(oper2), p3); break; case 3: sprintf(answer, (%s %c %s) %c %s) %c %s, p0, GetOper(oper0), p1, GetOper(oper1), p2, GetOper(oper2), p3); break; case 4: sprintf(answer, (%s %c (%s %c %s) %c %s, p0, GetOper(oper0), p1, GetOper(oper1), p2, GetOper(oper2), p3); break; bool TestResolve(char* question, int* oper, char* answer) / 等待考生完成return true; /return false;/* 采用随机试探法:就是通过随机数字产生 加减乘除的 组合,通过大量的测试来命中的解法 提示: 1. 需要考虑用括号控制计算次序的问题 比如:( 10 - 4 ) * ( 3 + A ), 实际上计算次序的数目是有限的: A*(B*(c*D) A*(B*C)*D) (A*B)*(C*D) (A*B)*C)*D (A*(B*C)*D 2. 需要考虑计算结果为分数的情况:( 3 + (3 / 7) ) * 7 3. 题目中牌的位置可以任意交换*/bool TryResolve(char* question, char* answer) int oper3; / 存储运算符,0:加法 1:减法 2:乘法 3:除法 for(int i=0; i1000 * 1000; i+) / 打乱纸牌顺序 shuffle(question); / 随机产生运算符 for(int j=0; j3; j+) operj = rand() % 4; if( TestResolve(question, oper, answer) ) return true; return false;int main(int argc, char* argv) / 初始化随机种子 srand( (unsigned)time( NULL ) ); char buf14; / 题目 char buf230; / 解答 printf(*n); printf(计算24n); printf(A J Q K 均按1计算,其它按牌点计算n); printf(目标是:通过四则运算组合出结果:24n); printf(*nn); for(;) GivePuzzle(buf1); / 出题 printf(题目:); for(int j=0; j4; j+) if( buf1j = T )/、初始化buf1; printf(10 ); else printf(%c , buf1j); printf(n按任意键参考答案.n); getch(); if( TryResolve(buf1, buf2) ) / 解题 / /printf(an)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 张家口市人民医院模型分析技术考核
- 2025广西玉林北流市中医医院公开招聘21人模拟试卷及完整答案详解一套
- 上海市中医院产科超声引导下手术操作考核
- 2025年临沂兰陵县教育系统部分事业单位公开招聘教师(5人)考前自测高频考点模拟试题及答案详解(夺冠)
- 2025河南郑州市新郑市面向社会聘任政务服务社会监督员、政务服务体验员10人考前自测高频考点模拟试题及参考答案详解
- 衡水市中医院浅表疑难病例B超考核
- 邢台市人民医院输血科与临床科室沟通协作机制
- 2025年甘肃警察学院考核招聘急需紧缺专业人才考前自测高频考点模拟试题及参考答案详解一套
- 2025年河南省社会科学院招聘高层次人才模拟试卷及完整答案详解
- 石家庄市人民医院应对网络安全事件指挥能力评估
- 2025农村果园租赁合同示范文本
- 人教版二年级数学上册第二单元 1~6的表内乘法必刷卷 (含答案)
- 公司财务流程透明化披露方案模板
- 法院反诈骗法律知识培训课件
- 2025年执业药师考试题库大全-附答案
- 2024年下半年黑龙江省嫩江铁路有限责任公司校招笔试题带答案
- 2025年两类人员安全考试题及答案
- 伟星PPR培训课件
- 小学语文高段课标解读
- 排污许可证审核及环境应急管理服务方案投标文件(技术方案)
- 艺术展演活动策划公司简介范文
评论
0/150
提交评论