C语言程序设计教程第四章练习题解析(1)(3)

2025-11-04

输入两个数据的和a + b;

6、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 int func2(int a, int b) { int c; c = a * b % 3; return c; }

int func1(int a, int b) { int c; a += a; b += b; c = func2(a, b); return c * c; }

void main() { int x = 11, y = 19; printf(\}

答案:4

解析:x = 11,y = 19传入func1()函数,在func1()函数中经过运算变为22,38,然后传入给

func2()函数,返回运算结果2,func1()函数收到返回值2以后再经过运算返回给主调用函数结果为4。

7、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 void func2(int a, int b) {

a = a + 10; b = a + 10; }

void func(int a, int b) { a = func2(); b = func2(); }

void main() { int x = 1, y = 10; func1(x,y); printf(\n”,x, y); }

答案:x = 1, y = 10;

解析:将实参传递给形参,只是复制了一份给x,y的值,参数在被调用函数内部改变,不

影响其在调用函数中的值。

8、请阅读下面的程序,在空白处填写正确的代码,实现下列功能。 用户从键盘输入四个数,比较得出四个数中的最大值并输出。 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 = ; res = max2(res, d); ; }

void main() {

int a, b, c, d, max; printf(\请输入四个整数:\ ; max = max4(a, b, c, d); printf(\}

答案:max2(res,c); return res;

scanf(“%d%d%d%d”,&a,&b,&c,&d);

解析:在max4()函数中,res = max2(a,b)返回的是a,b中的最大值,这个最大值再与c进行

比较,所以res = max2(res,c),返回的较大的值再与d作比较,再将比较得出的较大的值返回给主调用函数,这个较大的值就是四个数中的最大值。

9、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 int add(int n) { if (n == 1) return 1; else

return n + add(n - 1); }

void main() { int n = 5; int sum = add(5);

printf(“结果为:%d\\n”,sum); }

答案:15

解析:add()函数进行递归调用,传入的参数5,会一直递减相加直到递减至1。

10、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 void fun(int n) {

if (n>0) { printf(\ fun(--n); } }

void main() { int a = 5; fun(a); }

答案:5 4 3 2 1

解析:fun()函数递归调用,每打印一次就自减再调用一次自己。 11、请阅读下面的程序,在空白处填写正确的代码,实现下列功能。 用递归方法求出n!。 int fac(int n) { int t; if( ) return 1; else { t = ; return t; } }

void main() {

int m, y; printf(\

}

scanf(\if (m<0) printf(\else { y = fac(m); printf(\}

答案:(n == 1) || (n == 0) n*fac(n - 1)

解析:实现n的阶乘,当n =0或者n=1时,阶乘没有意义,当n>1时,实现阶乘,则为

n*fun(n-1);

12、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 int x = 5;

static void cude() { x = x*x*x; }

void main() { cude(); printf(\}

答案:125

解析:全局变量x,当调用cude()内部函数时,并没有传入参数,没有复制,所以x值的

变化直接改变了x本身的值

13、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 first.c文件

int func(int a, int b) {

return a + b; }

second.c文件

static int func(int a, int b) {

return a – b; }

void main() {

int x = 5, y = 2;

printf(“%d\\n”,func(5, 2));

}

答案:3

解析:当内部函数与外部函数重名时,会优先调用内部函数

14、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 first.c源文件

int func(int a, int b) {

return a + b; }

second.c源文件

extern int func(int a, int b); void main() {

int x = 5, y = 2;

printf(“%d\\n”,func(5, 2)); }

答案:7

解析:在second.c中声明了int func(int a, int b);函数原型,可以调用first.c中的函数。 15、请阅读下面的程序,在空白处填写正确的代码,实现下列功能。

有一个外部函数,用户输入一个数字,可以实现奇偶数的判断。实现在主函数中调用这个外部函数。 first.c源文件 void func(int num) {

if(num %2 == 0)

printf(“这是一个偶数!\\n”); }

second.c源文件

; void main() {

int num;

scanf(“%d”,&num); func(num); }

答案:extern void func(int num);

解析:调用外部函数,可以包含函数所在的头文件,也可以在本文件中声明函数原型。 16、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 void show() { int x = 0; }


C语言程序设计教程第四章练习题解析(1)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(精品)基于51单片机的电子密码锁毕业论文论文

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219