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...