1、5.4 实验五 函数与预处理 一、实验目的与要求 1. 掌握C语言函数的定义方法、函数的声明及函数的调用方法。 2. 理解函数实参与形参的对应关系以及“值传递”的方式。 3. 掌握全局变量与局部变量动态变量、静态变量的概念与使用方法。 4. 掌握动态存储分配的方法。 5. 掌握宏定义与文件包含处理方法。 6. 实验4学时 二、实验内容 1.程序验证与改错题 (1) 程序验证题 ① 下面程序执行的结果是什么 void s x, int y) int temp; temp=x; x=y; y=temp; void m
2、ain()
int a,b;
scanf(“%d%d”, &a,&b);
if(a>b)
swap(a, b);
printf(“%d\t %d”, a,b);
思考:为什么a,b的值没有交换?
答:
修改后的函数为
#include
3、b); 因为调用函数中改变的是形参而非实参,加上&,其意义是改变实参的地址。 If语句中,只有当a>b时才交换a,b的值 去掉后 在任何情况下都交换a,b的值 ② 调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。请验证下面的程序是否符合题目要求。 #include”stdio.h” int fun(int n) int m, i; for (i=1; i<=n; i++) m+=i; return m; void main() printf("m=%d\n", fun(10)); 在上面程序的基础上,修改程序. 计算m=1-2+3-4+…
4、9-10。
答:
#include
5、
num/=10;
}while(k);
return k;
void main()
int x;
printf(“input x=:\n”);
scanf(“%d”, x);
printf(“%d”, f(x));
答:
#include
6、t x=:\n");
scanf("%d",&x);
printf("%d", f(x));
2.一般编程题
编程题1 编写一函数,把输入的4个数字字符转换成一个int数据存放,如输入4123这字符转换为4123这个整数,并通过主函数验证结果。
答:
#include
7、f("%d\n",b);
printf("%d+%d=%d\n",b,b,b+b);
printf("\n");
编程题2 编写程序求:1*1*1+2*2*2+3*3*3+4*4*4+5*5*5
提示:主函数用来现实结果,f1( )函数用来求一个数的立方,f2( )函数用来求与。
#include
8、temp=getchar();
while(temp!='\n')
result*=10;
result+=((int)temp-48);
temp=getchar();
printf("%c\n",temp);
printf("%d\n",result);
2解(使用stdlib 库函数中的atoi ()函数)
# include
9、num to int:%d\n",num);
编程题3 定义两个带参数的宏,将两个参数的值相加与相减,并写出程序,输入两个数作为使用宏时的实参。输出相加与相减后的与与差。
答:
#include
10、输出2到10000之间的所有完数。所谓完数是指因子之与与它本身相等的数。如6=1+2+3,6是一个完数。
要求:定义函数 factor(m) 判断m是否为完数;由主函数调用它,来对所有2到10000之间的所有数进行判断。
#include
11、i=1;i
12、int m,int n) int i; for(i=1;;i++) if(m==n)break; if(m>n) m=m-n; else n=n-m; return n; int g(int x,int y,int z) int i; i=x*y/z; return i; void main() int a,b,c,d; scanf("%d %d",&a,&b); c=f(a,b); d=g(a,b,c); printf("最大公因子:%d\n",c); printf("最小公倍数:%d\n",d);
13、
编程题2 用递归方法求1+2+3+...+n并将其中素数去除后之与。
#include
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818