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

当前位置:首页 > C语言练习题(带详解答案)

C语言练习题(带详解答案)

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 10:16:31

result =3 2.

#include

int min( int x, int y ) { int m;

if ( x> y ) m = x; else m = y; return(m); }

main() {

int a=3,b=5,abmin ; abmin = min(a,b); printf(?min is %d?, abmin); }

运行结果为: min is 5 3.

#include func(int x) { x=10;

printf(?%d, ?,x); }

main( )

{ int x=20; func(x);

printf(?%d?, x); }

运行结果为: 10, 20

在main函数中调用函数func,main函数将20作为实参穿给func,并转向开始执行func.

main()对应的内存 func()对应的内存 20 x 20 x func()执行x=10;,其内存中x变为10.

10 x

func()执行printf(?%d, ?,x); 即输出func函数对应内存中x的值,输出的是10. 至此,func函数执行结束,返回main函数。

main函数执行printf(?%d?, x);此时输出main函数对应内存中的x,即20 4.

#include int m=4;

int func(int x,int y) { int m=1;

return(x*y-m); }

main()

{int a=2,b=3;

printf(\

printf(\}

运行结果为: 4 1

整型变量m在函数外定义,因此m为全局变量,其作用于范围为其定义位置开始,一直到整个程序结束。因此func与main函数都可以访问m

程序首先执行main函数

执行printf(\即输出m中的值4,并换行。

执行printf(\即输出表达式func(a,b)/m的值,为了计算该表达式, 需要调用函数func。此时main将a,b中的2和3值作为实参传递给func的x和y 程序开始转向执行func函数,此时func中的x为2,y为3

执行int m=1; 此句定义了一个局部变量m并赋值为1 。m的作用域为其所在的复合

语句,即func的函数体,因此在func的函数体重,有限访问局部变量m。 执行return(x*y-m); 即return(2*3-1) ;返回的是整数5. func函数返回至main函数中的被调用处

main函数中func(a,b)的值为5,func(a,b)/m=5/4=1,注意,在main函数中访问的m为全局变量m,此时main函数无法访问func中的m,因为不在func中m的作用域。

5.

#include int fun(int a, int b) { if(a>b) return(a); else return(b); }

main()

{ int x=15, y=8, r; r= fun(x,y);

printf(\}

运行结果为:r=15

程序首先执行main函数

执行r= fun(x,y);即将func(x,y)的值赋给r,为了计算该表达式,需要调用函数func。此时main将x,y中的15和8值作为实参传递给func的a和b 程序开始转向执行func函数,此时func中的a为15,b为8

执行if语句;判断if后面的表达式,a>b成立,因此执行相应的操作return(a);即返回 a的值 。

func函数返回至main函数中的被调用处

main函数中func(x,y)的值为15,即将15赋给r。 执行printf(\即输出r=15 6.

#include int fac(int n) { int f=1,i;

for(i=1;i<=n;i++)

f=f * i; return(f); }

main()

{ int j,s;

scanf(?%d?,&j); s=fac(j);

printf(\}

如果从键盘输入3, 运行结果为: 3!=6

程序首先执行main函数

执行r= fun(x,y);即将func(x,y)的值赋给r,为了计算该表达式,需要调用函数func。此时main将x,y中的15和8值作为实参传递给func的a和b 程序开始转向执行func函数,此时func中的a为15,b为8

执行if语句;判断if后面的表达式,a>b成立,因此执行相应的操作return(a);即返回 a的值 。

func函数返回至main函数中的被调用处

main函数中func(x,y)的值为15,即将15赋给r。 执行printf(\即输出r=15 7.

#include

unsigned fun6(unsigned num) { unsigned k=1;

do

{ k*=num; num/=10; }while(num); return k; }

main()

{ unsigned n=26;

printf(?%d\\n?,fun6(n)); }

运行结果为:12

程序首先执行main函数

执行printf(?%d\\n?,fun6(n)); 即输出表达式func(6)的值,为了计算该表达式,需要调用 函数func。此时main将n中的26作为实参传递给func的num 程序开始转向执行func函数,此时func中的num为26 执行do-while语句

第1次循环

执行k*=num,即k=k*(num)=1*(26)=6

执行num/=10;即num=num/10=26/10=2

while后面循环条件为num,此时num为2,是非0值,即表示循环条件成立, 继续执行循环体。此时k为6 第2次循环

执行k*=num,即k=k*(num)=6*(2)=12 执行num/=10;即num=num/10=2/10=0

while后面循环条件为num,此时num为0,表示循环条件不成立, 结束循环

执行return k; 即返回至main函数中的被调用处 执行main函数

继续执行printf(?%d\\n?,fun6(n)); 即输出12 8.

#include

int max(int x, int y); main()

{ int a,b,c;

搜索更多关于: C语言练习题(带详解答案) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

result =3 2. #include int min( int x, int y ) { int m; if ( x> y ) m = x; else m = y; return(m); } main() { int a=3,b=5,abmin ; abmin = min(a,b); printf(?min is %d?, abmin); } 运行结果为: min is 5 3. #include func(int x) { x=10; printf(?%d, ?,x); }

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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