云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C语言程序设计教程第四章练习题解析(1)

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

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 23:28:32

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; }

void main() {

printf(\的值为:%d\\n\}

答案:不能运行

解析:变量x为函数show()的局部变量,只在show()函数范围内有效,在main()中无法调

用。

17、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。 int show() { int x = 0; return x; }

void main() {

int x = 10; show();

printf(\的值为:%d\\n\}

答案:x的值为:10

解析:main()函数中的x是局部变量,不受show()函数调用的影响。

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

int x = 100; printf(“%d”,x); }

答案:100

解析:当全局变量与局部变量重名时,全局变量会被屏蔽掉。

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

void func(int x) { x = x * x * x; }

void main() { func(x); printf(\

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

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()函数递归调用

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com