第10章作业.
4
1
3.下列程序段的输出是_______。 #define f(a, b, x) a*x+b printf("%d, %d\n", f(3,2,1), f(6, 5, f(3, 2, 1)));
4.写出程序输出结果 void main() { int y; fac(2,&y); printf("y=%d\n",y); } fac(int n,int *t) {int s; if(n==1||n==0)*t=1; else { fac(n-1,&s);*t=n*s;} } 。
2
5.下面程序用于计算f(k,n)=1k+2k+……+nk),其中power(m,n)求 mn,sum求f(k,n).
#include <stdio.h> long sum(int k,int n); void main() {int k,n; scanf(“%d%d”,&k,&n); printf("f(%d,%d)=%ld",k,n,sum(k,n)); } long power(int m,int n) {int i; ___________; for(i=1;i<=n;i++) ___________nt n) {int i; ___________; for(i=1;i<=n;i++) ____________; return s; }
3
6.hex()是一个递归函数,该函数的功能是通过递归调用把一个长整 数转化成十六进制字符串并返回所得十六进制数的位数。main() 输入长整数x,调用hex()对它进行转化(转化结果存放在字符数组a 中),最后输出结果。例如:输入13,返回n=1输出D;输入100, 则返回n=2输出64;输入65535,则返回n=4输出FFFF。 # include <stdio.h> int hex( ) void main() {char t[]="0123456789ABCDEF"; {char a[9]; int n; int n; unsigned long int x; if(x<16) scanf(“%lu”,&x); {a[0]=t[x]; n=hex(x,a); return 1; ; } puts(a); n=hex(x/16,a); } a[n]= ; return ; }
第10章作业 1.在C语言程序中,有关函数的定义正确的是( ) A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和函数的调用均不可以嵌套 D. 函数的定义和函数的调用均可以嵌套 2.格式1 #include “文件名” 格式2 #include <文件名> 下面4个结论,正确的是( )。 A. 格式1中的文件名能带路径,而格式2不能 B. 格式1中的文件名不能带路径,而格式2可以 C. 如果被包含文件在当前目录下,两种格式都能用 D. 如果文件名中不带路径,格式1能搜索当前目录和系统规 定的路径中搜索包含文件,而格式2不行。