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

发布 2021-04-24 15:42:28 阅读 7866

3. 用递归调用的方法求5!。

#include<>

int main()

int fac(int);

int n;

scanf("%d",&n);

printf("%d!=%d",n,fac(n));

return 0;

int fac(int n)

if(n==0||n==1)

return 1;

else return fac(n-1)*n;

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

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

#include<>

int main()

int fun(int);

int n;

scanf("%d",&n);

printf("%d",fun(n));

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("%d",&n);

if(n<0)

fun(n);

puts(""

void fun(int m)

if(m/10)

fun(m/10);

putchar(m%10+48);

6. 写一个函数,完成将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。

#include<>

#define n 5

int main()

void fun(int a)

int a[n],i;

for(i=0;i scanf("%d",&a[i]);

fun(a);

return 0;

void fun(int a[n])

int t,i;

for(i=0;i

for(i=0;i printf("%d ",a[i]);

puts(""

7. 编写一个函数,用来分别求数组score_1(有5个元素)和数组score_2(有10个元素)各元素的平均值。

#include<>

#define n 5

#define m 10

int main()

int score_1[n],score_2[m];

int i,fun(int a,int);

for(i=0;i<5;i++)

scanf("%d",&score_1[i]);

for(i=0;i<10;i++)

scanf("%d",&score_2[i]);

printf("**erage of score_1:%d",fun(score_1,n));

printf("**erage of score_2:%d",fun(score_2,m));

return 0;

int fun(int c,int l)

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;

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)

else if(a[i]puts(b);break;}

elsecontinue;

10. 编写一个函数,实现在一个升序排列的整型数组中插入一个整数的功能, 并在main函数中调用此函数,输入数据和最后输出都在主函数中实现。

#include<>

int a[11]=;

int main()

int c,i;

void fun(int a,int c);

printf("input an integer:")

scanf("%d",&c);

fun(a,c);

for(i=0;i<11;i++)

printf("%d ",a[i]);

printf("");

return 0;

void fun(int a,int t)

11. 写一个判断素数的函数,在主函数输入一个整数,是素数时输出yes,否则输出no,结果要求在主函数中输出。

#include<>

int main()

int a;

int is_prime(int);

scanf("%d",&a);

if(is_prime(a)==0)

printf("yes");

elseprintf("no");

return 0;

int is_prime(int a)

if(j>=a/2)

flag=0;

return flag;

12. 编写一个函数,将一个字符串中的原音字母赋值到另一个字符串中,并在main函数中调用此函数,输入数据和最后输出都在主函数中实现。

#include<>

char a[50],b[50]=;

int main()

void fun(char a,char b)

gets(a);

fun(a,b);

puts(b);

return 0;

void fun(char a,char b)

13. 建立动态数组,输入5个学生的成绩,编写函数检查其中有无低于60分的学生成绩,要求输入和输出功能在主函数中完成。

#include<>

#include<>

int main()

void check(int

int *p,i

p1=(int *)malloc(5*sizeof(int));

for(i=0;i<5;i++)

scanf("%d",p+i);

check(p1

return 0;

void check(int *p

14. 有一个一维数组score,内放10个学生成绩,用一个函数求平均成绩,并将10个成绩中不及格(小于60)的成绩和该成绩在数组中的序号输出。

#include<>

int main()

void **e(int a[10]);

int a[10],i;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

**e(a);

return 0;

void **e(int a[10])

printf("%d",m/10);

15. 编程实现:从键盘输入两个字符串,统计第二个字符串在第一个字符串**现的次数,在主函数中调用统计函数并输出结果。

#include<>

#include<>

int main()

int retu(char a,char b)

char c[200],d[100];

gets(c);

gets(d);

printf("出现的次数为:%d",retu(c,d));

return 0;

int retu(char a,char b)

int i,j,t,m,s=0;

高级语言程序设计1答案

1 一个c程序总是从 b a 主过程开始执行b 主函数开始执行。c 子程序开始执行d 主程序开始执行。2 若有代数式2lnxcosx 3x,则正确的c语言表达式是 d a 2 ln x cos x 3 xb 2 ln x cos x 3 x c 2 log x cox x 3 xd 2 log x ...

高级语言程序设计1答案

1 一个c程序总是从 b a 主过程开始执行b 主函数开始执行。c 子程序开始执行d 主程序开始执行。2 若有代数式2lnxcosx 3x,则正确的c语言表达式是 d a 2 ln x cos x 3 xb 2 ln x cos x 3 x c 2 log x cox x 3 xd 2 log x ...

高级语言程序设计习题答案

1.在一个c 程序中,main函数的位置 c a 必须在程序的开头b 必须在程序的后面。c 可以在程序的任何地方 d 必须在其它函数中间。2.用c 语言编制的源程序要变为目标程序必须要经过 d a 解释 b 汇编 c 编辑 d 编译。程序基本单位是 c a 数据 b 字符 c 函数 d 语句。4.c...