C语言实验二报告
更新时间:2023-11-13 21:59:01 阅读量: 教育文库 文档下载
北京电子科技学院(BESTI)
实
课程: 程序设计基础 成绩:
验
班级:
报
姓名:
告
学号:
指导教师: 张晓昆 预习程度:
实验日期:
15:30~18:30
2
实验密级:
必修
实验时间:
仪器组次: 实验名称:
必修/选修: 实验序号:
函数编程练习
实验目的与要求:
主函数通常只处理输入和输出;掌握定义函数的方法;掌握函数实参与形参的对应关系,以及“值传递”的方式;掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法,、了解函数的嵌套调用方法和递归调用方法。
观察堆栈窗口call stack,注意函数调用过程堆栈的动态变化。
有兴趣的同学可以将几个函数分别放到不同的.C文件中,分别编译,再利用Project建立工程文件,然后连接执行,观察结果。
实验内容
素数(Prime Number),又称为质数,它是不能被1和它本身以外的其他整数整除的正整数。按照这个定义,负数、0和1都不是素数,而17之所以是素数,是因为除了1和17以外,它不能被2~16之间的任何整数整除。
任务1:试商法是最简单的判断素数的方法。用i=2~m-1之间的整数去试商,若存在某个m能被1与m本身以外的整数i整除(即余数为0),则m不是素数,若上述范围内的所有整数都不能整除m,则m是素数。采用试商法,分别用goto语句、break语句和采用设置标志变量并加强循环测试等三种方法编写素数判断函数IsPrime(),从键盘任意输入一个整数m,判断m是否为素数,如果m是素数,则按\is a prime number\\n\格式打印该数是素数,否则按\格式打印该数不是素数。然后分析哪一种方法可读性更好。 1、 goto语句 #include
int IsPrime(int n); //判断是否是素数的函数原型 int main() { int m;
printf(\
scanf(\ //用户输入欲判断的数
if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果 printf(\ }
else{
printf(\ }
return 0; //返回0 } //主函数结束
int IsPrime(int n) //判断是否是素数的函数 {
int i = 2; int j = 0;
if(n < 2){ //若n小于2,返回0值 return 0; } if(n == 2){ return 1;
}
loop:if(n % i == 0){ //利用goto语句 i++; j++; goto loop; }
if(j >= 1){ //若j大于2,则说明能被2~n-1之间的数整除,返回0;否则返回1 return 0; } else{ return 1; } } //子函数结束
2、 break语句 #include
int IsPrime(int n); //判断是否是素数的函数原型 int main() { int m;
printf(\
scanf(\ //用户输入欲判断的数
if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果 printf(\ }
else{
printf(\ }
return 0; //返回0 } //主函数结束
int IsPrime(int n) //判断是否是素数的函数 { int i; int j = 0;
if( n < 2 ){ //若n小于2,返回0值 return 0; }
for(i = 2; i <= n - 1; i++){
if( n % i == 0){ //利用试商法判断是否能被2~n-1之间的数整除 j++; }
if(j > 1){ //若j大于2,则说明能被2~n-1之间的数整除,返回0;否则返回1 return 0; break; } }
if( j == 0) return 1; } //子函数结束
3、采用设置标志变量并加强循环测试 #include
int IsPrime(int n); //判断是否是素数的函数原型
int main() {
int m;
printf(\
scanf(\ //用户输入欲判断的数
if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果 printf(\ }
else{
printf(\ }
return 0; //返回0 } //主函数结束
int IsPrime(int n) //判断是否是素数的函数 {
int i;
int j = 0;
if( n < 2 ){ //若n小于2,返回0值 return 0; }
for(i = 2; i <= n - 1; i++){
if( n % i == 0){ //利用试商法判断是否能被2~n-1之间的数整除 j++; } }
if(j >= 1){ //若j大于2,则说明能被2~n-1之间的数整除,返回0;否则返回1 return 0; } else{
return 1; }
} //子函数结束
任务2:用数学的方法可以证明,不能被2~m(取整)之间的数整除的数,一定不能被1和它本身之外的其他任何整数整除。根据素数的这个性质,通过修改素数判断函数IsPrime()的具体实现,编程完成任务1。 #include
#include
int main() {
int m;
printf(\
scanf(\ //用户输入欲判断的数
if( IsPrime(m) == 1){ //调用判断是否是素数的函数并输出结果 printf(\ }
else{
printf(\ }
return 0; //返回0 } //主函数结束
正在阅读:
C语言实验二报告11-13
高一政治必修2导学案:政治生活3.1《政府的职能:管理与服务》01-06
2018-2019领导秘书201X年度个人总结范文-word范文模板(2页)03-06
人教版小学数学第二册第二单元20以内的退位减法教学设计09-24
芜湖市物业服务收费管理实施办法(07版本) - 图文06-16
数学分析(华东师大版)07-05
2016-2022年中国民宿行业监测及投资前景评估报告 - 图文11-18
关于写景的好句好段02-21
梁板柱混凝土施工方案10-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 语言
- 实验
- 报告
- 2012级建筑材料习题
- 答案施工技术题库(1)
- 《十六年前的回忆》阅读及答案
- 魔芋葡甘露聚糖含量测定
- 刮板输送机施工方案
- 电厂孔板流量计技术协议
- 农作物生产技术测试题(一)
- 2003-2009复旦文史哲考博真题
- 《舌尖上的中国》解说词及精彩图片
- 大学生就业问题分析
- 外国法制史论述题
- 使用eNSP搭建基础网络
- 六上(人教版) 第五单元 圆的奥数题(附答案)
- 小学体育与健康人教版五至六年级低单杠《3.穿臂前后翻》优质课公开课教案教师资格证面试试讲教案
- 为什么要保护海洋
- 三年级上册综合实践活动教案(修改)
- 操作题答案 - 图文
- 大学《保险学原理》期末复习练习题及答案
- 2011-2012第二学期64学时理论力学试卷B卷参考答案
- 第三章公共关系主体