C语⾔⽤func函数编写程序,C语⾔程序设计教程第四章练习题
解析(1)
printf(“该数是奇数”); }
int main() {
int num;
scanf(“%d”,&num); func(num); return 0; }
解析:func()函数对传⼊进来的参数num进⾏奇偶判断; 主函数中调⽤func()函数,传⼊参数得到判断结果。
31、编写⼀个函数,实现1-100的相加和,并在主函数中调⽤。 答案:#include int func() {
int num, sum = 1;
for(num = 1; num <= 100; num++) {
sum += num; }
return sum; }
int main() {
int sum = 0; sum = func();
printf(“sum = %d”,sum); return 0; }
解析:func()函数实现1-100的相加和,并将结果返回给调⽤者。 主函数中的sum接收调⽤func函数的返回值,并将其打印
32、请编写⼀个程序,⽤户从键盘输⼊英⽂字母,如果是⼤写,将其转换成⼩写输出;如果是⼩写,将其转换成⼤写输出。
提⽰:英⽂字母在计算机中以ASCII码表形式存在。 答案:#include int main() {
char ch; printf(\请输⼊英⽂字母:\\n\ scanf(\ if (ch >= 'A' && ch <= 'Z') printf(\ else if (ch >= 'a' && ch <= 'z')
printf(\return 0; }
解析:英⽂字母对应的ASCII码值,⼤写⽐对应⼩写⼩32
33、请编写⼀个程序,⽤户输⼊⼀个⼗进制整数,分别输出其⼗进制、⼋进制、⼗六进制对应的数值。
答案:#include int main() {
int num;
scanf(“%d”,&num);
printf(“⼗进制为:%d\\n⼋进制为:%o\\n⼗六进制为:%x\\n”,num,num,num); return 0; }
解析:⼗进制输⼊格式符为%d,⼋进制输出格式符为%o,⼗六进制输出格式符为%x。 34、请编写⼀个程序,实现两个数的求和,并打印出来。 答案:#include void show(int s) { printf(\两个数的和为:%d\ return; }
void add(int a, int b) { int s = a + b; show(s); return; }
int main() {
int s = a + b; show(s); return 0; }
解析:add()函数实现两个数相加,show()函数将两个数相加的结果打印出来。 35、请编写⼀个程序,⽤户从键盘随机输⼊四个数,⽐较这个四个数得出其中最⼤值并输出。 提⽰:
1)编写⼀个两个数值⽐较的函数
2)编写⼀个四个数值⽐较的函数,调⽤这个函数,在该函数中调⽤两个数值⽐较的函数 答案:#include int max2(int a, int b) { if (a > b){ return a;
} else { return b; } }
int max4(int a, int b, int c, int d) { int res; res = max2(a, b); res =max2(res,c); res = max2(res, d); return res; }
int main() {
int a, b, c, d, max;
printf(\请输⼊四个整数:\ scanf(“%d%d%d%d”,&a,&b,&c,&d); max = max4(a, b, c, d); printf(\return 0; }
解析:输⼊四个数,调⽤max4()函数,在max4()函数中⼜调⽤max2()函数进⾏两两⽐较,
最后得出最⼤值,返回给调⽤函数。
36、请编写⼀个程序,计算s = 2^2! + 3^2!; 提⽰:
1)编写⼀个函数计算平⽅值 2)编写⼀个函数计算阶乘 答案:#include long f1(int p){ int k; long r; long f2(int); k = p*p; r = f2(k); return r; }
long f2(int q){ long c = 1; int i; for (i = 1; i <= q; i++) c = c*i;
return c; }
int main() { int i; long s = 0; for (i = 2; i <= 3; i++) s = s + f1(i); printf(\return 0; }
解析:函数f1()实现了计算数值的平⽅,函数f2()实现了阶乘计算,在f1()中调⽤f2()实现
c语言用递归函数求n的阶乘了计算表达式的值。
37、请编写⼀个程序,⽤递归⽅法实现n!。 提⽰:
1) 递归调⽤是函数⾃⾝调⽤⾃⾝的过程 2) 每递归调⽤⼀次n就要⾃减⼀次 答案:#include int add(int n) { if (n == 1) return 1; else return n + add(n - 1); }
int main() {
int n ;
scanf(“%d”,&n); int sum = add(n);
printf(“结果为:%d\\n”,sum); return 0; }
解析:add()函数实现递归,每调⽤⼀次n要减1. 38、请编写⼀个程序,求出m的n次⽅。 提⽰:编写递归函数求解。 答案:#include int func(int m, int n) { if (n == 1) return m; else return m*func(m, n - 1); }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论