资源描述:
《C程序设计上机实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C程序设计实验报告实验名称:函数程序设计学时安排:2学时实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1.熟练掌握函数的定义和调用;2.熟练掌握使用函数编写程序;3.掌握函数的实参、形参和返回值的概念及使用;4.掌握单步调试进入函数和跳出函数的方法。二、实验设备介绍软件需求:VisualC++6.0或CFree3.5以上版本硬件需求:对于硬件方面的要求,建议配置是PentiumIII450以上的CPU处理器,64MB以上的内存
2、,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。三、实验内容1.输入x,计算并输出分段函数sign(x)的值。要求定义和调用函数sign(x)实现该分段函数。x大于、等于和小于0时sign(x)的值分别为1、0和-1。输入输出示例如下(运行三次):Enterx:10Enterx:0Enterx:-5sign(10)=1sign(0)=0sign(-5)=-12.给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数)。要
3、求定义和调用函数dist(x1,y1,x2,y2)计算两点间的距离。输入输出示例如下:Input(x1,y1):1010Input(x2,y2):200100distance=210.243.输入2个正整数a和n,求a+aa+aaa+aa⋯a(n个a)之和。要求定义并调用函数fn(a,n),它的功能是返回aa⋯a(n个a)。例如,fn(3,2)的返回值是33。例:括号内是说明Enteraandn:85(a=8,n=5)sum=98760(8+88+888+8888+88888)4.输入2个正整数m
4、和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和。要求定义并调用函数prime(m)判断m是否为素数。例:括号内是说明Entermandn:110(m=1,n=10)count=4,sum=17(1到10之间有4个素数:2,3,5,7)Entermandn:1416(m=14,n=16,这里是第二次运行)count=0,sum=0(14到16之间没有素数)5.输入2个正整数m和n(1<=m,n<=1000),输出m到n之间的所有完数(完数就是因子和与它本身相等的数)
5、。要求定义并调用函数factorsum(number),它的功能是返回number的因子和。例如,digitsum(12)的返回值是16(1+2+3+4+6)。输出语句:printf("%d",i);例:括号内是说明(运行两次)Entermandn:20500(m=20,n=500)Entermandn:1100(m=1,n=100)2849616286.输入1个正整数n,将其转换为二进制后输出。要求定义并调用函数dectobin(n),它的功能是输出n的二进制。例如,调用dectobin(10)
6、,输出1010。输出语句:printf("%d");例:括号内是说明(运行两次)Entern:100Entern:00四、程序清单第一题#includeintsign(intn,intx){if(x>0)n=1;elseif(x==0)n=0;elsen=-1;returnn;}intmain(){inti,s;intsign(intn,intx);printf("Enterx:");scanf("%d",&i);s=sign(s,i);printf("sign(%d)=%d
7、",i,s);return0;}第二题#include#includedoubledist(doublex1,doubley1,doublex2,doubley2){doubled,j,k;j=pow((x2-x1),2);k=pow((y2-y1),2);d=sqrt(j+k);returnd;}intmain(){doublex1,y1,x2,y2,distance;printf("Input(x1,y1):");scanf("%lf%lf",&x1,&y1)
8、;printf("Input(x2,y2):");scanf("%lf%lf",&x2,&y2);distance=dist(x1,y1,x2,y2);printf("distance=%.2f",distance);return0;}第三题#includevoidmain(){inti,n;longa,sn;longfn(longa,intn);printf("Enteraandn:");scanf("%ld%d",&a,&n);sn=0;for(i=1;i