跟siki老师学C#第四天(练习部分)
2016-01-19 15:27
776 查看
学习了分支和循环以及跳出循环的方法,接下来十三道小练习奉上:
1.编写一个程序,对输入的四个整数,求出最大值、最小值,并打印出来显示在控制台上;
这里通过一个中间变量进行比较,就不用那么麻烦了。
2.让用户输入两个整数,再输入0-2中的一个数,0表示+、1表示-、2表示*;
3.求出1-1000之间所有能被7整除的数,并计算和输出每五个的和;
4.编写一个控制台应用程序,要求输出1-100之间的平方根、立方根
5.兔子繁殖问题:设有一对新生兔子,从第三个月开始它们每个月都生一对新兔子,新生的兔子从第三个月开始又每个月生一对兔子,按此规律,假设兔子不死亡,20个月后一共有多少只兔子?
6.编程输出1-100之间能被3整除但不能被5整除的数字,并统计其个数;
7.编程输出100以内的所有素数;
8.编程输出九九乘法表;
9.输出1-5的平方值,分别用for、while和do while实现
10.要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入;
(题目的意思是用户输入一个五个字母的字符串,这个字符串要求五个字母都是大写,否则重新输入。)
这里注意三点:1.str.Length表示字符串str的长度,是int类型的整型数值;2.str[i]表示字符串str中第i-1个字符,因为编号是从0开始的;3.int numOfLetter=str[i]表示某个字符在Ascall码表中的数字,我们正是通过这个数字来判断该字符是不是大写字符的。
11.编写一个掷骰子100次的游戏并打印出各种点数出现的次数
这里用到了Random类,用于产生随机数。
12.接收一个整数n,如果为正数,输出1-n之间的所有整数,如果为负数,终止程序,如果是0的话,要求重新输入;
13.求1000以内的所有“完数”。“完数”:等于所有因子(除自身以外)之和的数字。
这个输出是因为第一次写的时候设置sum=0,j=1开始执行的:
修改成程序段里面的形式之后:
可以看出,完数1也被归纳进来了。
以上就是十二道练习题,第五道的知识暂时还没学到,先放一放,等学习了递归再来看看吧,for循环我还没相通应该怎么做。
这些练习中的一些思想值得回顾。
题目都是基本的,很简单。
简单的不会并不可耻,不会却又不学,还要不懂装懂、自欺欺人,这才最可耻。
1.编写一个程序,对输入的四个整数,求出最大值、最小值,并打印出来显示在控制台上;
Console.WriteLine("请输入四个整数:"); int num1 = Convert.ToInt32(Console.ReadLine()); int num2 = Convert.ToInt32(Console.ReadLine()); int num3 = Convert.ToInt32(Console.ReadLine()); int num4 = Convert.ToInt32(Console.ReadLine()); int max,min; /最大值 if (num1 > num2) { max = num1; } else { max = num2; } if (num3 > max) { max = num3; } if (num4 > max) { max = num4; } Console.WriteLine("最大值为"+max); if (num1 < num2) { min = num1; } else { min = num2; } if (num3 < min) { min = num3; } if (num4 < min) { min = num4; } Console.WriteLine("最小值为"+min);
这里通过一个中间变量进行比较,就不用那么麻烦了。
2.让用户输入两个整数,再输入0-2中的一个数,0表示+、1表示-、2表示*;
Console.WriteLine("请输入两个整数:"); int num1 = Convert.ToInt32(Console.ReadLine()); int num2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入运算符(0表示+、1表示-、2表示*):"); switch(Console.ReadLine()) { case "0": Console.WriteLine("结果为:{0}+{1}={2}",num1,num2,num1+num2); break; case "1": Console.WriteLine("结果是:{0}-{1}={2}",num1,num2,num1-num2); break; case "2": Console.WriteLine("结果是:{0}*{1}={2}",num1,num2,num1*num2); break; }
3.求出1-1000之间所有能被7整除的数,并计算和输出每五个的和;
int sum = 0; //用来计算和 int num = 0; //用来统计是不是每五个 for (int i = 1; i <= 1000;i++ ) { if(i%7==0) { sum += i; num++; if(num==5) { num = 0; Console.WriteLine("当前五个的和是:"+sum); sum = 0; } } }
4.编写一个控制台应用程序,要求输出1-100之间的平方根、立方根
//平方根 for(int i=1;i<=100;i++) { if(i*i<=100) { Console.WriteLine("1-100之间的平方根有:"+i); } } //立方根 for (int i = 1; i <= 100;i++ ) { if(i*i*i<=100) { Console.WriteLine("1-100之间的立方根有:"+i); } }
5.兔子繁殖问题:设有一对新生兔子,从第三个月开始它们每个月都生一对新兔子,新生的兔子从第三个月开始又每个月生一对兔子,按此规律,假设兔子不死亡,20个月后一共有多少只兔子?
6.编程输出1-100之间能被3整除但不能被5整除的数字,并统计其个数;
int num = 0; for (int i = 1; i <= 100;i++ ) { if(i%3==0&&i%5!=0) { Console.WriteLine("能被3整除但不能被5整除的数字有:"+i); num++; } } Console.WriteLine("能被3整除但不能被5整除的数字共有{0}个!",num);
7.编程输出100以内的所有素数;
for (int i = 2; i <= 100; i++) //最小的素数是2,所以从2开始 { bool isPrime = true; //默认一个数是素数 for (int j = 2; j <= i-1; j++) //遍历除了1和它本身之外的数字 { if (i % j == 0) { isPrime = false; //一旦存在有其他数字可以被整除,当前数字就不是素数,同时跳出当前循环 break; } } if (isPrime == true) //如果当前的i遍历了除1和本身外的所有数字,都不能被整除,那它就是素数 { Console.WriteLine(i+"是素数之一!"); } }
8.编程输出九九乘法表;
for (int i = 1; i <= 9;i++ ) { for (int j = 1; j <= i; j++) { Console.Write("{0}*{1}={2} ",i,j,i*j); if(i==j) { Console.WriteLine(); } } }
9.输出1-5的平方值,分别用for、while和do while实现
//for循环: for (int i = 1; i <= 5;i++ ) { Console.WriteLine("{0}的平方值为{1}!",i,i*i); } //while循环: int j = 1; while (j <= 5) { Console.WriteLine("{0}的平方值为{1}!", j, j * j); j++; } //do-while循环 int a = 1; do { Console.WriteLine("{0}的平方值为{1}!", a, a * a); a++; } while (a <= 5);
10.要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入;
(题目的意思是用户输入一个五个字母的字符串,这个字符串要求五个字母都是大写,否则重新输入。)
Console.WriteLine("请输入一个字符串:"); string str = Console.ReadLine(); for (int i = 0; i <= str.Length - 1; i++) { int numOfLetter=str[i]; if(numOfLetter>=65&&numOfLetter<=91) { continue; } else { Console.WriteLine("您输入的字符串中第{0}个字符是除大写外的其他字符!",i+1); } }
这里注意三点:1.str.Length表示字符串str的长度,是int类型的整型数值;2.str[i]表示字符串str中第i-1个字符,因为编号是从0开始的;3.int numOfLetter=str[i]表示某个字符在Ascall码表中的数字,我们正是通过这个数字来判断该字符是不是大写字符的。
11.编写一个掷骰子100次的游戏并打印出各种点数出现的次数
Random ran = new Random(); int point1 = 0, point2 = 0, point3 = 0, point4 = 0,point5=0,point6=0; for (int i = 1; i <= 100; i++) { switch (ran.Next(1, 7)) { case 1: point1++; break; case 2: point2++; break; case 3: point3++; break; case 4: point4++; break; case 5: point5++; break; case 6: point6++; break; } } Console.WriteLine("在100次投掷中,\n1点出现了{0}次;\n2点出现了{1}次;\n3点出现了{2}次;\n4点出现了{3}次;\n5点出现了{4}次;\n6点出现了{5}次!",point1,point2,point3,point4,point5,point6);
这里用到了Random类,用于产生随机数。
12.接收一个整数n,如果为正数,输出1-n之间的所有整数,如果为负数,终止程序,如果是0的话,要求重新输入;
while (true)//利用while的特性构成一个死循环 { Console.WriteLine("请输入一个整数n:"); int num = Convert.ToInt32(Console.ReadLine()); if(num==0)//如果等于0,再来一次 { continue; } else { if(num<0) { break;//如果小于0,直接跳出while循环 } else { for (int i = 1; i <= num; i++) { Console.WriteLine(i);//满足条件时,输出所有数字 } break;//最终跳出 } } }
13.求1000以内的所有“完数”。“完数”:等于所有因子(除自身以外)之和的数字。
for (int i = 1; i <= 1000; i++) { int sum = 1; //因为1是所有正数的因子,所以这里sum初始值为1 for (int j = 2; j <= i-1; j++) //那么这里就要从2开始了,因为1已经是因子而且已经存在在sum中了 { if (i % j == 0) { sum += j; } } if (sum == i) { Console.WriteLine("{0}是完数!", i); } }
这个输出是因为第一次写的时候设置sum=0,j=1开始执行的:
修改成程序段里面的形式之后:
可以看出,完数1也被归纳进来了。
以上就是十二道练习题,第五道的知识暂时还没学到,先放一放,等学习了递归再来看看吧,for循环我还没相通应该怎么做。
这些练习中的一些思想值得回顾。
题目都是基本的,很简单。
简单的不会并不可耻,不会却又不学,还要不懂装懂、自欺欺人,这才最可耻。
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法
- C#生成饼形图及添加文字说明实例代码
- C#判等对象是否相等的方法汇总
- C#简单的向量用法实例教程