欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言实验二报告.docx

    • 资源ID:8798100       资源大小:19.66KB        全文页数:19页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言实验二报告.docx

    1、C语言实验二报告北京电子科技学院(BESTI)实验报告课程:程序设计基础班级:姓名:学号:成绩:指导教师:张晓昆实验日期:实验密级:预习程度:实验时间:15:3018:30仪器组次:必修/选修:必修实验序号:2实验名称:函数编程练习实验目的与要求:主函数通常只处理输入和输出;掌握定义函数的方法;掌握函数实参与形参的对应关系,以及“值传递”的方式;掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法,、了解函数的嵌套调用方法和递归调用方法。观察堆栈窗口call stack,注意函数调用过程堆栈的动态变化。有兴趣的同学可以将几个函数分别放到不同的.C文件中,分别编译,再利用Project建立

    2、工程文件,然后连接执行,观察结果。实验内容素数(Prime Number),又称为质数,它是不能被1和它本身以外的其他整数整除的正整数。按照这个定义,负数、0和1都不是素数,而17之所以是素数,是因为除了1和17以外,它不能被216之间的任何整数整除。 任务1:试商法是最简单的判断素数的方法。用i=2m-1之间的整数去试商,若存在某个m能被1与m本身以外的整数i整除(即余数为0),则m不是素数,若上述范围内的所有整数都不能整除m,则m是素数。采用试商法,分别用goto语句、break语句和采用设置标志变量并加强循环测试等三种方法编写素数判断函数IsPrime(),从键盘任意输入一个整数m,判断

    3、m是否为素数,如果m是素数,则按%d is a prime numbern格式打印该数是素数,否则按%d is not a prime numbern格式打印该数不是素数。然后分析哪一种方法可读性更好。1、goto语句#include #include int IsPrime(int n); /判断是否是素数的函数原型int main() int m; printf(Please enter a integer:); scanf(%d, &m); /用户输入欲判断的数 if( IsPrime(m) = 1) /调用判断是否是素数的函数并输出结果 printf(%d is a prime num

    4、ber!n, m); else printf(%d is not a prime number!n, m); return 0; /返回0 /主函数结束int IsPrime(int n) /判断是否是素数的函数 int i = 2; int j = 0; if(n = 1) /若j大于2,则说明能被2n-1之间的数整除,返回0;否则返回1 return 0; else return 1; /子函数结束2、break语句#include #include int IsPrime(int n); /判断是否是素数的函数原型int main() int m; printf(Please enter

    5、 a integer:); scanf(%d, &m); /用户输入欲判断的数 if( IsPrime(m) = 1) /调用判断是否是素数的函数并输出结果 printf(%d is a prime numbern, m); else printf(%d is not a prime numbern, m); return 0; /返回0 /主函数结束int IsPrime(int n) /判断是否是素数的函数 int i; int j = 0; if( n 2 ) /若n小于2,返回0值 return 0; for(i = 2; i 1) /若j大于2,则说明能被2n-1之间的数整除,返回0

    6、;否则返回1 return 0; break; if( j = 0) return 1; /子函数结束3、采用设置标志变量并加强循环测试#include #include int IsPrime(int n); /判断是否是素数的函数原型int main() int m; printf(Please enter a integer:); scanf(%d, &m); /用户输入欲判断的数 if( IsPrime(m) = 1) /调用判断是否是素数的函数并输出结果 printf(%d is a prime numbern, m); else printf(%d is not a prime n

    7、umbern, m); return 0; /返回0 /主函数结束int IsPrime(int n) /判断是否是素数的函数 int i; int j = 0; if( n 2 ) /若n小于2,返回0值 return 0; for(i = 2; i = 1) /若j大于2,则说明能被2n-1之间的数整除,返回0;否则返回1 return 0; else return 1; /子函数结束任务2:用数学的方法可以证明,不能被2(取整)之间的数整除的数,一定不能被1和它本身之外的其他任何整数整除。根据素数的这个性质,通过修改素数判断函数IsPrime()的具体实现,编程完成任务1。#includ

    8、e #include #include /因调用 sqrt()函数,故需此预处理命令int IsPrime(int n); /判断是否是素数的函数原型int main() int m; printf(Please enter a integer:); scanf(%d, &m); /用户输入欲判断的数 if( IsPrime(m) = 1) /调用判断是否是素数的函数并输出结果 printf(%d is a prime numbern, m); else printf(%d is not a prime numbern, m); return 0; /返回0 /主函数结束int IsPrime

    9、(int n) /判断是否是素数的函数 int i; int j = 0; if( n 2 ) /若n小于2,返回0值 return 0; for(i = 2; i = 1) /若j大于2,则说明能被2n-1之间的数整除,返回0;否则返回1 return 0; else return 1; /子函数结束任务3:从键盘任意输入一个整数n,编程计算并输出1n之间的所有素数之和。#include #include #include /因调用 sqrt()函数,故需此预处理命令int IsPrime(int m); /判断是否是素数并求和的函数原型int main() int n; printf(Pl

    10、ease enter a integer:); scanf(%d, &n); /用户输入欲判断的数 /打印输出1n之间的所有素数之和 printf(The sum of all the primes between 1 and the number you enter is: %dn, IsPrime(n); return 0; /返回0 /主函数结束int IsPrime(int m) /判断是否是素数的函数 int i; int j; int sum = 0; for(i = 2; i = m; i+) int k = 0; for(j = 2; j = sqrt(i); j+) if(

    11、i % j = 0) /利用试商法判断是否能被2 n的开方(取整)之间的数整除 k+; if(k = 0) /如果k等于0,说明i是素数,求和 sum = sum +i; return sum; /返回素数之和 /子函数结束任务4:从键盘任意输入一个整数m,若m不是素数,则计算并输出其所有的因子(不包括1),例如对于16,输出2,4,8;否则输出No divisor! It is a prime numbern。 #include #include #include /因调用 sqrt()函数,故需此预处理命令int IsPrime(int n); /判断是否是素数的函数原型int main(

    12、) int m; int i; printf(Please enter a integer:); scanf(%d, &m); /用户输入欲判断的数 if(IsPrime(m) = 1) /调用判断是否是素数的函数,若不是素数,打印因子(不包括1) for(i = 2; i = m; i+) if( m % i = 0) /利用试商法判断是否是因子 printf(%d , i); if(IsPrime(m) = 0) /调用判断是否是素数的函数并输出结果 printf(No divisor! It is a prime numbern); return 0; /返回0 /主函数结束int Is

    13、Prime(int n) /判断是否是素数的函数 int i; int j = 0; for(i = 2; i = 1) /若j大于2,则说明能被2n-1之间的数整除,返回1;否则返回0 return 1; else return 0; /子函数结束任务5:如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数(Perfect Number)。例如,6就是一个完全数,是因为6 = 1 + 2 + 3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。#include #include int IsPerfect(int

    14、n); /判断输入的整数是否是完全数的函数原型int main() int m; printf(Please enter a integer:); scanf(%d, &m); /用户输入欲判断的数 if(IsPerfect(m) = 1) /调用判断是否是素数的函数,若是,打印语句 printf(The number you enter is a Perfect Number!n); if(IsPerfect(m) = 0) /调用判断是否是素数的函数,若不是,打印语句 printf(The number you enter is not a Perfect Number!n); retur

    15、n 0; /返回0 /主函数结束int IsPerfect(int n) /判断输入的整数是否是完全数的函数 int i; int sum = 0; for(i = 1; i n; i+) if(n % i = 0) /判断是否是因子 sum = sum + i; /求因子之和 if(sum = n) /判断输入的整数是否是完全数 return 1; else return 0; /子函数结束任务6:从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出It is a prime numbern。例如,用户输入90时,程序输出9

    16、0 = 2 * 3 * 3 * 5;用户输入91时,程序输出It is a prime numbern。#include #include #include /因调用 sqrt()函数,故需此预处理命令int IsPrime1(int x); /判断是否是素数的函数原型int IsPrime2(int y); /判断是否是素数的函数原型int main() int m; int a = 1; /a表示质因数之积 int b; /b表示m与其因数之商 printf(Please enter a integer:); scanf(%d, &m); /用户输入欲判断的数 if(IsPrime1(m)

    17、 = 1) /调用判断是否是素数的函数,若是,打印语句 printf(It is a prime number!n); /调用判断是否是素数的函数,若不是将m表示为质因数从小到大顺序排列的乘积形式输出 if(IsPrime1(m) = 0) printf(%d =, m); while(a != m) /判断所有因子之积是否等于m,不等继续运行 b = m / a; printf( %d , IsPrime2(b); /打印因子 a = IsPrime2(b) * a; /m的因子之积 if(a != m) printf(*); /打印乘号 return 0;int IsPrime1(int

    18、x) /判断是否是素数的函数 int i; int j = 0; for(i = 1; i = sqrt(x); i+) if(x % i = 0) /利用试商法判断是否能被2 n的开方(取整)之间的数整除 j+; if(j = 1) /若j小于2,则说明能被2 n的开方(取整)之间的数整除,返回1;否则返回0 return 1; else return 0; /子函数结束int IsPrime2(int y) /判断是否是素数的函数 int i; int j; for(i = 2; i = y; i+) /找出2y之间的素数 int k = 0; for(j = 2; j = sqrt(i)

    19、; j+) if( i % j = 0) /利用试商法判断是否能被2 i的开方(取整)之间的数整除 k+; if(k = 0 & y % i = 0) return i; 任务7: 验证:2000以内的正偶数都能够分解为两个素数之和(即验证哥德巴赫猜想对2000以内的正偶数成立),正奇数都能够分解为三个素数之和。注意最后要将结果上传之前,请将2000改为500再运行,并注意输出格式,每行5个等式,如:10=3+7;12=5+7;。#include #include #include /因调用 sqrt()函数,故需此预处理命令int IsPrime1(int x); /输出正偶数分解为两个素数

    20、之和的函数原型int IsPrime2(int y); /输出正奇数分解为三个素数之和的函数原型int main() int m; /定义整型变量,为偶数 int n; /定义整型变量,为奇数 printf(正偶数等于两素数之和:n); for(m = 2; m = 100; m += 2) /输出正偶数分解为两个素数之和 IsPrime1(m); printf(n正奇数等于三素数之和:n); for(n = 5; n = 100; n += 2) /输出正奇数分解为三个素数之和 IsPrime2(n); return 0; /返回0 /主函数结束int IsPrime1(int x) /输出

    21、正偶数分解为两个素数之和的函数 int i; /i表示素数 int j; /j用于判断i是否是素数 int a; /a表示素数 int b; /b用于判断a是否是素数 if(x % 5 = 4) printf(n); for(i = 2; i = x; i+) /判断i是2y之间的素数 int k1 = 0; for(j = 2; j = sqrt(i); j+) if( i % j = 0) k1+; if(k1 = 0) for(b = 2; b = x; b+) /判断b是2y之间的素数 int k2 = 0; for(a = 2; a = sqrt(b); a+) if( b % a

    22、= 0) k2+; if( k2 = 0) if(i + b = x) /如果i、b都是素数,求和判断是否等于x,若等打印 printf(%d = %d + %d; , x, i, b); if(i + b = x) return 0; /if结束 /for循环结束 /if结束 /for循环结束 return 0; /返回0 /主函数结束int IsPrime2(int y) /输出正奇数分解为三个素数之和的函数 int i; /i表示素数 int j; /j用于判断i是否是素数 int a; /a表示素数 int b; /b用于判断a是否是素数 int g; /g表示素数 int h; /h

    23、用于判断g是否是素数 if(y % 5 = 2) printf(n); for(i = 2; i = y; i+) /判断i是2y之间的素数 int k1 = 0; for(j = 2; j = sqrt(i); j+) if( i % j = 0) k1+; if(k1 = 0) for(b = 2; b = y; b+) /判断b是2y之间的素数 int k2 = 0; for(a = 2; a = sqrt(b); a+) if( b % a = 0) k2+; if( k2 = 0) for(g = 2; g = y; g+) /判断g是2y之间的素数 int k3 = 0; for(h = 2; h = sqrt(g); h+) if( g % h = 0) k3+; if(k3 = 0) if(i + b + g = y) /如果i、b、g都是素数,求和判断是否等于y,若等打印 printf(%d = %d + %d + %d; , y, i, b, g); if(i + b + g = y) /用于终止循环 return 0; /if结束 /for循环结束 / if结束 /for循环结束 /if结束 /for循环结束 return 0; /子函数结束


    注意事项

    本文(C语言实验二报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开