云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 《高级语言程序设计》答案

《高级语言程序设计》答案

  • 62 次阅读
  • 3 次下载
  • 2025/12/3 4:07:38

1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。 #include int main() { int i,j,t; int max(int,int); int min(int,int); scanf(\ if(i

int max(int i,int j) { int t; while(j) { t=i%j; i=j; j=t; } return i; }

int min(int p,int q) { return p/q; }

2. 输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。 #include int main() { int max4(int,int,int,int); //对max4的函数声明 int a,b,c,d; scanf(\ //输入4个数 printf(\调用4个数中的最大者 return 0; } int max4(int a,int b,int c,int d) //定义max4函数 { int max2(int,int); //对max2的函数声明 return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数 }

int max2(int a,int b) { return(a>b?a:b); //返回条件表达式的值,即a和b中的大者 }

3. 用递归调用的方法求5!。 #include int main() { int fac(int); int n; scanf(\

第 1 页 共 2 页

printf(\ return 0; }

int fac(int n) {

if(n==0||n==1) return 1; else return fac(n-1)*n; }

4. 按以下递归公式求函数的值。

?10fun(n) ???fun(n?1)?2(n?1)(n?1) 例如,当给n输入5时,函数值为18,(要求用递归实现)。

#include

int main() { int fun(int); int n; scanf(\ printf(\ return 0; }

int fun(int n) { if(n==1) return 10; else return fun(n-1)+2; }

5. 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”,n的位数不确定,可以是任意位数的整数。 #include void main() {void fun(int); int n;

scanf(\ if(n<0) { n=-n; putchar('-'); }

fun(n); puts(\}

void fun(int m) { if(m/10) fun(m/10); putchar(m+48); }

6. 写一个函数,完成将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。 #include #define N 5 int main() {

第 2 页 共 2 页

void fun(int a[]); int a[N],i; for(i=0;i

void fun(int a[N]) { int t,i; for(i=0;i

for(i=0;i

7. 编写一个函数,用来分别求数组score_1(有5个元素)和数组score_2(有10个元素)各元素的平均值。 #include int main() { float average(int c[],int n); int i,score_1[5],score_2[10]; float p,q; for(i=0;i<5;i++) scanf(\ for(i=0;i<10;i++) scanf(\ p=average(score_1,5); q=average(score_2,10); printf(\ return 0; }

float average(int c[],int n) { float m=0.00; int i; for(i=0;i

}8. 编写一个函数,实现将两个字符串连接起来,并在main函数中调用此函数,不要调用系统提供的strcat函数。 #include int main() { void c(char st1[],char st2[]); char s1[100],s2[100]; gets(s1); gets(s2); c(s1,s2); puts(s1); return 0; }

void c(char st1[],char st2[]) { int i=0,k=0;

第 3 页 共 2 页

while(st1[++i]); while(st1[i++]=st2[k++]); }

9. 编写一个函数,比较两个字符串的大小,并在main函数中调用此函数,不要调用strcmp函数。 #include int main() { char a[100],b[100];

void fun(char a[],char b[]); gets(a); gets(b); fun(a,b); return 0; }

void fun(char a[],char b[]) {

for(int i=0;;i++) { if(a[i]>b[i]) {puts(a);break;} else if(a[i]

10. 编写一个函数,实现在一个升序排列的整型数组中插入一个整数的功能,主函数中实现。 #include

int a[11]={1,3,5,7,14,23,45,87,155,231}; int main() { int c,i; void fun(int a[],int c); printf(\ scanf(\ fun(a,c);

for(i=0;i<11;i++) printf(\ printf(\ return 0; }

void fun(int a[],int t) { int i,j; if(t>a[9]) a[10]=t; else { for(i=0;i<11;i++) if(ti;j--) a[j]=a[j-1]; a[i]=t;

第 4 页 共 2 页

并在main函数中调用此函数,输入数据和最后输出都在

搜索更多关于: 《高级语言程序设计》答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。 #include int main() { int i,j,t; int max(int,int); int min(int,int); scanf(\ if(i

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com