━━━━━━━━━━━━━━━━━━ 一、程序设计 共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 **********/