参考书籍:《C#程序设计实验指导与习题测试》

笔记同步发表在我的个人博客上,欢迎访问!传送门


实验目的

  • 掌握for循环语句的使用
  • 掌握while循环语句的使用
  • 掌握do…while循环语句的使用
  • 掌握循环语句的嵌套
  • 掌握跳转语句的使用
  • 了解程序异常处理机制

文章目录

  • 实验目的
  • 实验1:求n!
  • 实验2:输出斐波那契数列
  • 实验3:鸡兔同笼问题
  • 实验4:利用级数求π
  • 实验5:求最大公约数和最小公倍数
  • 实验6:打印九九乘法表
  • 实验7:素数的判断
  • 实验8:异常处理

实验1:求n!

输入整数n,分别利用for循环、while循环、do…while循环求n!

for循环语句

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){int n = 0;int i = 1;int ret = 1;Console.Write("请输入整数n的值,我来计算n的阶乘 >>>: ");String s = Console.ReadLine();n = int.Parse(s);for(i=1;i<=n;i++){if (n == 0){Console.WriteLine("0!=1");}else{ret *= i;}}Console.WriteLine("{0}!={1}", n, ret);Console.ReadKey();}}
}
请输入整数n的值,我来计算n的阶乘 >>>: 0
0!=1
请输入整数n的值,我来计算n的阶乘 >>>: 3
3!=6

while循环

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){int n = 0;int i = 1;int ret = 1;Console.Write("请输入整数n的值,我来计算n的阶乘 >>>: ");String s = Console.ReadLine();n = int.Parse(s);while(i<=n){if (n == 0){Console.WriteLine("0!=1");break;}else{ret *= i;}i++;}Console.WriteLine("{0}!={1}", n, ret);Console.ReadKey();}}
}
请输入整数n的值,我来计算n的阶乘 >>>: 5
5!=120

do…while循环

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){int n = 0;int i = 1;int ret = 1;Console.Write("请输入整数n的值,我来计算n的阶乘 >>>: ");String s = Console.ReadLine();n = int.Parse(s);do{if (n == 0){Console.WriteLine("0!=1");break;}else{ret *= i;}i++;}while (i <= n);Console.WriteLine("{0}!={1}", n, ret);Console.ReadKey();}}
}
请输入整数n的值,我来计算n的阶乘 >>>: 4
4!=24

实验2:输出斐波那契数列

输入斐波那契数列,1,1,2,3,5…当值大于10000时停止显示,每行显示5项

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){int n1 = 1;int n2 = 1;int next = 2;int flag = 0;while(n1 <= 10000){Console.Write("{0}\t",n1);flag++;next = n1 + n2;n1 = n2;n2 = next;if (flag % 5 == 0){Console.WriteLine();}}Console.ReadKey();}}
}
1       1       2       3       5
8       13      21      34      55
89      144     233     377     610
987     1597    2584    4181    6765

实验3:鸡兔同笼问题

一个笼子里总共有h只鸡和兔,鸡和兔的总脚数为f,h,f由用户输入,求鸡和兔各有多少只

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){//设鸡有i只,兔有j只//i+j=h;2i+4j=f;int i, j, h, f;Console.Write("请输入鸡和兔子共有多少只: ");String s = Console.ReadLine();h = int.Parse(s);Console.Write("请输入共有多少只脚(必须是偶数): ");s = Console.ReadLine();f = int.Parse(s);while(f%2!=0){Console.WriteLine("脚的个数必须是偶数!请重新输入!");Console.Write("请输入共有多少只脚(必须是偶数): ");s = Console.ReadLine();f = int.Parse(s);}bool solution = false;//判断是否有解for(i=0;i<=h;i++){for(j=0;j<=h;j++){if((i+j==h)&&((2*i+4*j)==f)){Console.WriteLine("鸡有{0}只,兔有{1}只", i, j);solution = true;}}}if(!solution){Console.WriteLine("无解!!!");}Console.ReadKey();}}
}
请输入鸡和兔子共有多少只: 3
请输入共有多少只脚(必须是偶数): 4
无解!!!
请输入鸡和兔子共有多少只: 26
请输入共有多少只脚(必须是偶数): 99
脚的个数必须是偶数!请重新输入!
请输入共有多少只脚(必须是偶数): 102
鸡有1只,兔有25只
请输入鸡和兔子共有多少只: 25
请输入共有多少只脚(必须是偶数): 66
鸡有17只,兔有8只

//解法二
using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){//设鸡有i只,兔有j只//i+j=h;2i+4j=f;int i, j, h, f;Console.Write("请输入鸡和兔子共有多少只: ");String s = Console.ReadLine();h = int.Parse(s);Console.Write("请输入共有多少只脚(必须是偶数): ");s = Console.ReadLine();f = int.Parse(s);while(f%2!=0){Console.WriteLine("脚的个数必须是偶数!请重新输入!");Console.Write("请输入共有多少只脚(必须是偶数): ");s = Console.ReadLine();f = int.Parse(s);}bool solution = false;j = f / 2 - h;i = h - j;if(i>=0&&j>=0){Console.WriteLine("鸡有{0},兔有{1}", i, j);solution = true;}if(!solution){Console.WriteLine("无解!!!");}Console.ReadKey();}}
}

实验4:利用级数求π

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){double pi = 0;double t = 1;double n = 1;int s = 1;while(Math.Abs(t)>=Math.Pow(10,-6))//精度{pi += 4*t;n += 2;s = -s;t = s / n;}Console.WriteLine("pi={0}", pi);Console.ReadKey();}}
}
pi=3.141590653589692

实验5:求最大公约数和最小公倍数

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){int m, n, m1, n1;int i;//获得用户输入的两个数Console.Write("请输入第一个整数: ");String s = Console.ReadLine();m = int.Parse(s);Console.Write("请输入第二个整数: ");s = Console.ReadLine();n = int.Parse(s);/*生成两个范围在(0-100)的随机数的代码Random rNum = new Random();m = rNum.Next(0, 101);n = rNum.Next(0, 101);*///比较两个数的大小if (m<n){m1 = m;n1 = n;}else{m1 = n;n1 = m;}//打印出排好序的两个数Console.WriteLine("您输入的这两个数分别是 {0} , {1}", m1, n1);//最大公约数的算法for(i=n1;;i--){if(m1 % i == 0 && n1 % i == 0){Console.WriteLine("这两个数的最大公约数为 {0}", i);break;}}//最小公倍数的算法for(i=m1;;i++){if(i%m1==0&&i%n1==0){Console.WriteLine("这两个数的最小公倍数为 {0}", i);break;}}Console.ReadKey();}}
}
请输入第一个整数: 25
请输入第二个整数: 5
您输入的这两个数分别是 5 , 25
这两个数的最大公约数为 5
这两个数的最小公倍数为 25
//随机数运行测试结果
您输入的这两个数分别是 49 ,70
这两个数的最大公约数为 7
这两个数的最小公倍数为 490

实验6:打印九九乘法表

上三角形九九乘法表、下三角形九九乘法表

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){int i, j;for(i=1;i<=9;i++){for(j=1;j<=i;j++){Console.Write("{0}*{1}={2}\t", i, j, i * j);}Console.WriteLine();}Console.ReadKey();}}
}
1*1=1
2*1=2   2*2=4
3*1=3   3*2=6   3*3=9
4*1=4   4*2=8   4*3=12  4*4=16
5*1=5   5*2=10  5*3=15  5*4=20  5*5=25
6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36
7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49
8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64
9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){int i, j;for(i=1;i<=9;i++){for(j=1;j<=9;j++){if (i > j){Console.Write("\t");}else{Console.Write("{0}*{1}={2}\t", i, j, i * j);}}Console.WriteLine();}Console.ReadKey();}}
}
1*1=1   1*2=2   1*3=3   1*4=4   1*5=5   1*6=6   1*7=7   1*8=8   1*9=92*2=4   2*3=6   2*4=8   2*5=10  2*6=12  2*7=14  2*8=16  2*9=183*3=9   3*4=12  3*5=15  3*6=18  3*7=21  3*8=24  3*9=274*4=16  4*5=20  4*6=24  4*7=28  4*8=32  4*9=365*5=25  5*6=30  5*7=35  5*8=40  5*9=456*6=36  6*7=42  6*8=48  6*9=547*7=49  7*8=56  7*9=638*8=64  8*9=729*9=81

实验7:素数的判断

分别利用for循环和while循环显示1~100内所有的素数,每行显示十项

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){int i, k, n;bool flag;int count = 0;for(n=2;n<=100;n++){flag = true;k = (int)Math.Sqrt(n);//根号下n,被除数的最大值for(i=2;i<=k;i++){if (n % i == 0)//符合条件的不是素数{flag = false;break;}}//while循环/*i = 2;while(i<=k){if (n % i == 0)//符合条件的不是素数{flag = false;break;}i++;}*/if (flag){Console.Write("{0,3} ", n);count++;if (count % 10 == 0){Console.WriteLine();}}}Console.ReadKey();}}
}
  2   3   5   7  11  13  17  19  23  2931  37  41  43  47  53  59  61  67  7173  79  83  89  97

实验8:异常处理

输入任意两个整数,求两者的商,使用程序异常处理机制捕捉零除异常参数格式异常

using System;namespace ConsoleApp3
{class Program{static void Main(string[] args){int i, j, k;Console.Write("请输入被除数: ");String s = Console.ReadLine();i = int.Parse(s);Console.Write("请输入除数: ");s = Console.ReadLine();j = int.Parse(s);k = i / j;Console.WriteLine("{0}/{1}={2}", i, j, k);Console.ReadKey();}}
}
请输入被除数: 6
请输入除数: 0
Unhandled exception. System.DivideByZeroException: Attempted to divide by zero.at ConsoleApp3.Program.Main(String[] args) in J:\code\C#\ConsoleApp3\Program.cs:line 17
请输入被除数: 6
请输入除数: a
Unhandled exception. System.FormatException: Input string was not in a correct format.at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type)at System.Number.ParseInt32(ReadOnlySpan`1 value, NumberStyles styles, NumberFormatInfo info)at System.Int32.Parse(String s)at ConsoleApp3.Program.Main(String[] args) in J:\code\C#\ConsoleApp3\Program.cs:line 15

             ❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓❓

起初我在测试时将除数和被除数的类型声明成了double型,测试程序异常处理机制,为什么出现了下面这种情况???

请输入被除数: 6
请输入除数: 0
6/0=∞

到这里就结束了吗,没有… 既然他算出来6/0=∞,呃…那我很想知道0/0=?,于是…???

请输入被除数: 0
请输入除数: 0
0/0=NaN

C#实例练习3:程序流程控制(2)相关推荐

  1. 金山学院信息与机电工程系实验报告实验2 程序流程控制

    金山学院信息与机电工程系实验报告实验2 程序流程控制 一.实验目的和要求 (1)掌握if分支结构.for循环和while循环结构的使用. (2)熟悉列表.元组.字典.集合的概念和基本用法. 二.实验内 ...

  2. html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制

    当当当当 .....楼主又来了!新一期的js学习笔记2--程序流程控制更新了! 想一键获取全部js学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1.顺序结构 2.分支 ...

  3. java流程控制if_java程序流程控制(分支结构之 if-else)

    if语句三种格式: 1.if(true){ //代码执行 } 2.if(条件表达式){ //代码执行 }else{ //代码执行 } 3.if(条件表达式){ //执行代码块 }else if(条件表 ...

  4. 学习 尚硅谷_宋红康_第2章_Java基本语法(下):程序流程控制超详细课件

    文章目录 程序流程控制 练习题 笔试题 彩票 结婚判断 switch-case结构的基本使用 练习题 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组 合成能完成一定功能的 ...

  5. 第2章_Java基本语法(下):程序流程控制

    文章目录 程序流程控制 练习题 笔试题 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组 合成能完成一定功能的小逻辑模块. • 其流程控制方式采用结构化程序设计中规定的三种 ...

  6. 【Java基础】· Java基本语法:程序流程控制习题总结

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  7. C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制

    C#面向对象程序设计课程实验一:实验名称:C#语言基础.程序流程控制 实验内容:C#语言基础.程序流程控制 一. 实验目的 二.实验环境 三.实验内容 四.实验总结 实验内容:C#语言基础.程序流程控 ...

  8. c语言程序流程控制(下)

    c语言程序流程控制 嵌套 switch分支结构 语法 例题 switch细节 练习 switch与if语句的比较 循环控制 for循环 练习题 while循环控制 do while 循环 多重循环控制 ...

  9. 四 【java基础】 程序流程控制- 分支结构

    目录 01 程序流程控制概述 02 顺序结构 03 分支结构 3.1 if-else 结构 3.2 从键盘输入数据(Scanner) 3.2 Switch-case结构 01 程序流程控制概述 流程控 ...

  10. 一文带你深入理解【Java基础】· Java基本语法:程序流程控制

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

最新文章

  1. Android自动化测试框架
  2. 数据维度爆炸怎么办?详解5大常用的特征选择方法
  3. 如何判断照片是否ps
  4. python series转int_分享丨推荐一个 Python 手绘图形库
  5. Tkinter的listbox组件
  6. lsof查看占用高_查看端口占用情况lsof,并关闭对应进程kill
  7. 概率论在数据挖掘_为什么概率论在数据科学中很重要
  8. 文件类的操作 File c# 1614823687
  9. java程序内存泄漏排查
  10. 图标文字垂直居中对齐方法
  11. 暗影精灵4电脑win10系统重装+linux双系统安装
  12. php 利用gd库及tcpdf 自动多图片生成pdf
  13. 等比矩阵求和-POJ3233
  14. vue生成海报(vue-canvas-poster)
  15. 乐学成语——数据库创建(导入、打开)
  16. 7个黑科技十足的微信小程序,每一个都能让你念念不舍!
  17. FPGA中高时钟频率计数器设计
  18. fMRI脑影像特征提取——Pearson相关与低阶功能连接LOFC(dpabi+nilearn)
  19. 微信小程序--邀请函
  20. godot学习笔记1前期摸索

热门文章

  1. 第六章(项目进度管理)知识点
  2. Android端记录跑步运动轨迹数据的App
  3. 智能车浅谈——方向控制篇
  4. Windows与网络基础
  5. esp8266 wifi模块的使用
  6. 实现响应式布局有几种方法
  7. [思考进阶]04 优秀的人,都在使用“微习惯”
  8. wxtemple.class.php,ThinkPHP3.2.3实现推送微信模板消息
  9. Dart学习3、数据类型详解
  10. 英语发音规则---字母组合oo的发音规律