2012程序设计考试题1
更新时间:2024-01-11 01:30:01 阅读量: 教育文库 文档下载
━━━━━━━━━━━━━━━━━━ 一、程序设计 共12题 (共计100分) ━━━━━━━━━━━━━━━━━━
第1题 (10.0分) 题号:527
/*------------------------------------------------ 【程序设计】
-------------------------------------------------- 题目:编写递归函数Acm(m,n)实现如下图所示的Acm函 数,其中m、n为正整数。例如:Acm(2,1)=5, Acm(3,2)=29。
/ n+1 (m=0) |
Acm(m,n)=| Acm(m-1,1) (n=0) |
\\ Acm(m-1,Acm(m,n-1)) (m>0,n>0)
-------------------------------------------------- 注意:仅在标有\和\的注释行之间补充填 写代码。请勿改动主函数main和其它任何已有内 容。
------------------------------------------------*/ #include
/*********Program*********/ int Acm(int m,int n)
{ }
if(m==0) return n+1; if(n==0) return Acm(m-1,1); return Acm(m-1,Acm(m,n-1));
/********* End *********/
int main() {
cout<<\ cout<<\
//以下忽略阅读 grading(); //忽略阅读结束 return 0; }
//以下忽略阅读 void grading() {
int m,n,i,j;
fstream infile, outfile;
infile.open (\ outfile.open(\ for (i=0;i<10;i++) {
infile>>m>>n;
outfile<
infile.close(); outfile.close(); }
答案:int Acm(int m,int n) { }
第2题 (10.0分) 题号:524
/*----------------------------------------------- 【程序设计】
-------------------------------------------------
if(m==0) return n+1; if(n==0) return Acm(m-1,1); return Acm(m-1,Acm(m,n-1));
题目:设计函数int digit(int num,int k);返回整数 num从右边开始的第k位数字的值。 注:如果k大于num的位数,则返回0。 要求:num位数小于10位。 例如:digit(4647,3)=6 digit(23523,7)=0
------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和 其它函数中的任何内容,仅在*Program*和*End* 所标记的区域内完成题干要求的函数功能。 -------------------------------------------------*/
#include
/*********Program*********/
int digit(int num,int k) for(i=0;i num=num/10; return num /********* End *********/ int main() { cout<<\ cout<<\ //忽略阅读 grading(); //忽略阅读结束 return 0; } //以下忽略阅读 int grading() { int m,n; fstream infile, outfile; infile.open (\ outfile.open(\ for (int i=0;i<3;i++) { infile>>m; infile>>n; outfile< infile.close(); outfile.close(); return 0; } 答案: int digit(int num, int k) { } 第3题 (10.0分) 题号:515 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:编写函数fun,将字符串s中所有小写字母改写成 大写字母,其它字符保持不变。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 for (int i=0;i num = num/10; return num; ------------------------------------------------*/ #include void fun(char s[]) { /**********Program**********/ for (int i=0; i int grading(); int main() { char t[20]=\ fun(t); cout< //忽略阅读 grading(); //忽略阅读结束 return 0; } //以下忽略阅读 int grading() { int i; char s[800]; ifstream ifile; if (s[i]>='a' && s[i]<='z') s[i]=s[i]-'a'+'A'; /********** End **********/ ofstream ofile; ifile.open (\ ofile.open (\ for (i=0;i<5;i++) { ifile>>s; fun(s); ofile< ifile.close(); ofile.close(); return 0; } 答案: for (int i=0; i 第4题 (10.0分) 题号:260 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:程序中的函数inv对数组m中的数据进行翻转转换, 即将数组中第一个数和最后一个数交换、第二个数 和倒数第二个数交换,依此类推。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 ------------------------------------------------*/ #include if (s[i]>='a' && s[i]<='z') s[i]=s[i]-'a'+'A'; using namespace std; int grading(); //len传递数组m的元素个数: void inv(int m[], int len) { /**********Program**********/ /********** End **********/ } int main() { int x[10] = {1, 2, 3 ,4, 5, 6, 7, 8, 9, 10}; inv(x, 10); for(int k=0;k<10;k++) cout< //忽略阅读 grading(); //忽略阅读结束 return 0; } //以下忽略阅读 int grading() { int n[100]; fstream infile,outfile; int k; infile.open(\ outfile.open(\ for(k=0;k<10;k++) infile>>n[k]; inv(n,10); for(k=0;k<10;k++) outfile< outfile< 答案: for (int i=0;i 第5题 (10.0分) 题号:532 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:完成两个area函数的编写,一个函数根据半径r计算 圆的面积并返回,一个根据边长a和b计算矩形的面 积并返回。 { } int tmp = m[i]; m[i] = m[len-1-i]; m[len-1-i] = tmp; -------------------------------------------------- 注意:仅在标有\和\的注释行之间补充填写 代码。请勿改动主函数main和其它任何已有内容。 ------------------------------------------------*/ #include double area(double r); //圆面积的计算函数声明 double area(double a, double b); //矩形面积的计算函数声明 int main() { double a,b,r; cout<<\ cin>>r; cout<<\ cin>>a>>b; cout<<\ cout<<\ //忽略阅读 grading(); //忽略阅读结束 return 0; } /*********Program*********/ /********* End *********/ //忽略阅读 int grading() { double a,b,c; fstream infile, outfile; infile.open (\ outfile.open(\ for (int i=0;i<8;i++) { infile>>a>>b>>c; outfile< infile.close(); outfile.close(); return 0; } //忽略阅读结束 答案:double area(double r) { } double area(double a, double b) { } 第6题 (8.0分) 题号:15 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:完成函数cal的编写,该函数计算数组array中len个 整数的正数个数、负数个数和平均值。并分别存储 到全局变量pos、neg和ave中。 -------------------------------------------------- 注意:仅在标有\和\的注释行之间补充填写 代码。请勿改动主函数main和其它任何已有内容。 ------------------------------------------------*/ #include return a*b; return PI*r*r; #include void cal(int array[], int len); int grading(); int main() { int a[12] = {1,2,3,4,-5,-2,-1,-4,0,3,2,1}; cal(a,12); cout<<\ cout<<\ cout<<\ //忽略阅读 grading(); //忽略阅读结束 return 0; } void cal(int array[], int len) { /**********Program**********/ /********** End **********/ } //以下忽略阅读 int grading() { int a[100],i,j=0; fstream infile, outfile; infile.open (\ outfile.open(\ for (i=0;i<100;i++) { infile>>a[i]; } for (i=0;i<9;i++) { cal(a+j, j+10); outfile< 答案: pos = 0; 第7题 (8.0分) 题号:647 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:完成函数char *delc(char *s, char c);的编写, 该函数去掉字符串s中的字符c,并将新得到的字符 串返回。 neg = 0; ave = 0; for(int i=0;i ave = ave/len; if(array[i]>0) pos++; neg++; if(array[i]<0) ave += array[i]; -------------------------------------------------- 注意:仅在标有\和\的注释行之间补充填 写代码。请勿改动主函数main和其它任何已有内 容。 ------------------------------------------------*/ #include char *delc(char *s, char c) { /**********Program**********/ /********** End **********/ } int main() { char s[100] = \ cout< //以下忽略阅读 void grading() { int i; char s[100],c = 'a'; fstream infile,outfile; infile.open(\ outfile.open(\ for (i=0;i<10;i++) { infile>>s>>c; outfile< infile.close(); outfile.close(); } 答案: char *p; 第8题 (8.0分) 题号:640 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:下面的函数ave求三个数的平均值并返回,完成该 函数的编写。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 ------------------------------------------------*/ #include while (p = strchr(s,c)) { } return s; strcpy(p,p+1); void grading(); float ave(int a, int b, int c) { /**********Program**********/ /********** End **********/ } int main() { cout<<\的平均值是:\ //忽略阅读 grading(); //忽略阅读结束 return 0; } //以下忽略阅读 void grading() { int a,b,c,i; fstream infile,outfile; infile.open(\ outfile.open(\ for (i=0;i<10;i++) { infile>>a>>b>>c; outfile<<(int)(ave(a,b,c)*100)< infile.close(); outfile.close(); } 答案://注意结果需要是浮点数,防止整除效果的发生: 第9题 (7.0分) 题号:12 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:完成函数sum_fac的编写,该函数求1!+2!+3!+…+n!。 其参数n为正整数。 -------------------------------------------------- 注意:仅在标有\和\的注释行之间补充填写 代码。请勿改动主函数main和其它任何已有内容。 ------------------------------------------------*/ #include double sum_fac(int n) { /**********Program**********/ /********** End **********/ return result; } int main() float m = (a+b+c)/3.0; return m; { int n; double result; cout<<\输入整数n:\ cin>>n; result = sum_fac(n); cout<<\结果为:\ //忽略阅读 grading(); //忽略阅读结束 return 0; } //以下忽略阅读 void grading() { int n; double result; fstream ifile, ofile; ifile.open (\ ofile.open (\ for (int i=0;i<8;i++) { ifile>>n; result=sum_fac(n); ofile< ifile.close(); ofile.close(); } 答案: int jch=1; double result=1; for(int i=2;i<=n;i++) { jch*=i; result+=jch; } 第10题 (7.0分) 题号:652 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:某个公司采用公用电话传递数据,数据是四位的整 数,在传递过程中是加密的。加密规则如下:每位 数字都加上5,然后用和除以10的余数代替该数字, 再将第一位和第四位交换,第二位和第三位交换 。 写一个函数实现这个算法,函数原型是 int changeinfo(int info) -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在注释形式标识Program和 End之间填入所编写的若干语句。 ---------------------------------------------------*/ #include /**********Program**********/ /********** End **********/ int main() { cout<<\原数为2348,加密后为:\ //忽略阅读 grading(); //忽略阅读结束 return 0; } //忽略阅读 void grading() { int i; ifstream rf(\ ofstream wf(\ int info; for (i=0;i<8;i++) { rf>>info; wf< rf.close(); wf.close(); } //忽略阅读结束 答案:int changeinfo(int info) { int a[4]; a[0]=info; a[1]=info0/10; a[2]=info00/100; a[3]=info/1000; for(int i=0;i<=3;i++) { a[i]+=5;a[i]%=10;} for( i=0;i<=3/2;i++) { int t=a[i]; a[i]=a[3-i]; a[3-i]=t; } 第11题 (6.0分) 题号:655 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:写一个函数,其返回值类型为如下定义的MyTime, 该函数将以秒为单位输入的一个时间值,转化成 时、分、秒(即转换为\几小时几分几秒\的形式), 其结果以结构体形式返回。结构体MyTime定义如下, struct MyTime { int hh; int mm; int ss; } 成员变量hh,mm,ss分别表示时、分、秒。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在注释形式标识Program和 End之间填入所编写的若干语句。 ---------------------------------------------------*/ #include } return a[0]+a[1]*10+a[2]*100+a[3]*1000; using namespace std; void grading(); /**********Program**********/ /********** End **********/ int main() { cout<<\秒转化后为:\ cout< //忽略阅读开始 grading(); //忽略阅读结束 return 0; } //以下忽略阅读 void grading() { ifstream rf(\ ofstream wf(\ int n; for (int i =1; i<=10; i++){ rf>>n; wf< } rf.close(); wf.close(); } 答案:struct MyTime { }; MyTime myfun( int second) { } 第12题 (6.0分) 题号:550 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:完成函数listSort的编写,该函数对单向链表进行 从小到大排序并返回。 -------------------------------------------------- 注意:仅在标有\和\的注释行之间补充填写 代码。请勿改动主函数main和其它任何已有内容。 ------------------------------------------------*/ #include MyTime mytime ; mytime.hh= second/3600; mytime.mm=( second-mytime.hh*3600)/60; mytime.ss= second-mytime.hh*3600-mytime.mm*60; return mytime; int hh; int mm; int ss; #include struct Node { int num; Node *next; }; Node * listSort(Node *head) { /*********Program*********/ /********* End *********/ } void deleteList(Node *head) { Node *tmp; while (head) { tmp = head->next; delete head; head = tmp; } } void printList(Node *head) { while(head) { cout< cout< Node * createList(int a[], int len) { Node *head = NULL; if(len<1) return head; for(int i=0;i Node *tmp = new Node; tmp->num = a[i]; tmp->next = head; head = tmp; } return head; } int main() { int s[8] = {2,6,4,2,7,9,5,12}; Node * head = createList(s,8); head = listSort(head); printList(head); //忽略阅读 grading(); //忽略阅读结束 deleteList(head); return 0; } //忽略阅读 void whiteFile(fstream &outfile, Node *head) { while(head) { outfile< outfile< void grading() { int a[200],i; fstream infile, outfile; infile.open (\ outfile.open(\ for (i=0;i<200;i++) infile>>a[i]; for (i=0;i<8;i++) { Node * head = createList(a+i*2,6+i); head = listSort(head); whiteFile(outfile, head); } infile.close(); outfile.close(); } //忽略阅读结束 答案: Node *tmp = head, *h = NULL; while (tmp) { head = tmp->next; Node *pre = NULL, *cur = h; while(cur && tmp->num > cur->num) { } if(pre == NULL) { } else tmp->next = h; h = tmp; pre = cur; cur = cur->next; } { } tmp = head; tmp->next = cur; pre->next = tmp; return h;
正在阅读:
2012程序设计考试题101-11
总工会党委书记党建工作述职报告02-25
检察院党委书记党建工作述职报告范文02-25
共享无线路由后自己再接无线路由的方案07-23
建功中学05-11
关于美丽的校园作文【整合】06-14
废旧橡胶回收再加工制翻新轮胎及胶粉项目可行性研究报告04-27
观《感动中国十大人物》有感02-23
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 考试题
- 程序设计
- 2012
- 南开大学16秋学期《饭店业人力资源管理》在线作业
- 金书红颜录2.59C一周难二半回合制阴剑系流程
- 法律法规重点word版本
- 2016-2017五年级语文上册寒假作业配人教版全国百佳出版社答案
- 祝福领导的离别赠言
- 一年级数学上册解决问题练习题
- 第四章、多组分系统热力学
- 企业管理概论3(尤建新)3
- 计算机一级考试参考试题(含答案)章节四
- 护理习题(五)
- 论文初稿--企业清算会计问题探讨
- 某县河道周边违章建筑强制拆除工作方案
- VoLTE端到端业务质量分析 - 图文
- 广联达问题汇总 - 图文
- 审计报告附注(模板)
- 贯标程序文件汇编
- 主控楼施工方案
- 克拉玛依市第九中学校史(简史) - 图文
- 电子系统设计 - 孙承涛
- 2017年电大民族理论与民族政策形成性考核册答案