昨天练习答案
1.int a = 3; int b = 5;实现交换a和b的值,如果不使用中间变量又该如何实现?
int a = 3;
int b = 5;
/*
temp = a;
a = b;
b = temp;
*/
a = a + b; // a = 8
b = a - b; // b = 3
a = a - b; // a = 5
//语法糖
//使用语法糖交换两个变量的值
(a, b) = (b, a);
2.请键入一个年份 year 和月份 month ,请算出这个月有多少天? ps:如何判断闰月,非整百年能被4整除,整百年能被400整除。否则是平年(闰年2月29天 平年2月28天)
Console.WriteLine("请输入年份year:");
int year = int.Parse(Console.ReadLine());
Console.WriteLine("请输入月份month:");
int month = int.Parse(Console.ReadLine());
int day = 30;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
// 区分平闰年
if (year % 100 != 0 && year % 4 == 0 || year % 400 == 0)
{
day = 29;
}
else
{
day = 28;
}
break;
default:
break;
}
Console.WriteLine(day);
3.太简单了,无答案
4.水仙花数(一个三位数,其各位数字立方和等于该数本身,如:153)
for (int i = 100; i < 1000; i++) // 循环所有的三位数
{
// 计算该数字的所有位的立方和
int bai = i / 100;
int shi = i % 100 / 10;
int ge = i % 10;
// 计算立方和
double sum = Math.Pow(bai, 3) + Math.Pow(shi, 3) + Math.Pow(ge, 3);
// 判断是否相同
if (sum == i)
{
Console.WriteLine(i + "是水仙花数");
}
}
5.打印99乘法表
//外层循环 控制行
for (int i = 1; i <= 9; i++)
{
// Console.WriteLine(i);
//内层循环 控制列
for (int j = 1; j <= i; j++)
{
Console.Write($"{j}*{i}={j * i} ");
}
Console.WriteLine();
}
今日练习题1(附带答案)
- 控制台接收一个字符串判断字符串各字符类型-if-else条件判断语句
string name = "李佳隆";
Console.WriteLine(name[1]);
Console.WriteLine(name.Length);//长度,也就是字符串中字符的个数
Console.WriteLine("请输入一个字符串");
string str = Console.ReadLine();
for (int i = 0; i < str.Length; i++)
{
char s = str[i];
索引
Console.WriteLine(str[i]);//char类型
if (s >= 'a' && s <= 'z')
{
Console.WriteLine($"{s}是小写字母");
}
else if (s >= 'A' && s <= 'Z')
{
Console.WriteLine($"{s}是大写字母");
}
else if (s >= '0' && s <= '9')
{
Console.WriteLine($"{s}是数字");
}
else
{
Console.WriteLine($"{s}是其他的字符");
}
}
2.输出酒店指定星期特价菜-switch选择语句控制台输入星期几,判断特色菜,
//如: 星期一.葱爆牛肉 星期二.啤酒鸭…
Console.WriteLine("请输入星期几");
//枚举 (定义在最下面)
Week week = (Week)byte.Parse(Console.ReadLine());
Console.WriteLine(week);
switch (week)
{
case Week.Sunday:
Console.WriteLine("星期日的特色菜,葱爆牛肉88元");
break;
case Week.Monday:
Console.WriteLine("星期一的特色菜,啤酒鸭66元");
break;
default:
break;
}
- 简易计算器:输入数字、输入符号、输入数字,进行运算,注意:需要限制运算符只能输入 + - * /
Console.WriteLine("请输入第一个数字");
int num1 = int.Parse(Console.ReadLine());
fuhao:
Console.WriteLine("请输入符号(+ - * /)");
string symbol = Console.ReadLine();
//判断符号输入是否正确,
if (symbol != "+" && symbol != "-" && symbol != "*" && symbol != "/")
{
Console.WriteLine("请输入正确的运算符");
goto fuhao;
}
shuzi:
Console.WriteLine("请输入第二个数字");
int num2 = int.Parse(Console.ReadLine());
//因为0不能作为除数,所以需要添加判断
if (num2 == 0 && symbol == "/")
{
Console.WriteLine("0不能作为除数运算");
goto shuzi;
}
4.输出 1 到 100 的数字,8 个数字一行,如果遇到某位是 3
//或整体是 3 的倍数的不输出(如下)
// 1 2 4 5 7 8 10 11
// 14 16 17 19 20 22 25 26
int j = 0;//计数
for (int i = 0; i <= 100; i++)
{
//获取某位
int shi = i / 10;
int ge = i % 10;
if (i % 3 == 0 || shi == 3 || ge == 3)
{
continue;
}
Console.Write(i + "\t");
j++;
if (j == 8)
{
j = 0;
Console.WriteLine();
}
}
5.判断1到10之间的素数和 合数-多个case语句
Console.WriteLine("请输入1-10之间的数");
int prime = int.Parse(Console.ReadLine());
switch (prime)
{
case 2:
case 3:
case 5:
case 7:
Console.WriteLine($"{prime}素数");
break;
case 4:
case 6:
case 8:
case 9:
case 10:
Console.WriteLine($"{prime}合数");
break;
default:
break;
}
- 百钱买百鸡算法-for 循环嵌套调用
for (int cock = 0; cock <= 20; cock++)//公鸡数量为0-20只
{
for (int chick = 0; chick <= 99; chick += 3)//小鸡的数量为0-99且是3的倍数
{
int hen = 100 - cock - chick; //100减去公鸡的数量和小鸡的数量 == 母鸡的数量
if (hen < 0 || hen > 33)
{
continue;
}
if (cock * 5 + hen * 3 + chick / 3 == 100)//总钱数刚好等于100
{
Console.WriteLine($"公鸡{cock}只,母鸡{hen}只,小鸡{chick}");
}
}
}
- 求出1~1000之间的所有能被7整除的数,并计算和输出每5个的和。
int sum = 0, count = 0;
for (int i = 1; i <= 1000; i++)
{
if (i % 7 == 0)
{
sum += i;
count++;
Console.WriteLine(i);
}
if (count == 5)
{
Console.WriteLine($"这5个数字的和是{sum}");
sum = 0;
count = 0;
}
}
Console.WriteLine(sum);
- 编程输出1~100中能被3整除但不能被5整除的数,并统计有多少个这样的数
int count = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 3 == 0 && i % 5 != 0)
{
// Console.WriteLine(i);
count++;
}
}
Console.WriteLine(count);
- 一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。
do
{
Console.WriteLine("请输入5个大写字母");
string str = Console.ReadLine();
if (str.Length != 5)
{
Console.WriteLine("输入的字母的个数不对,请重新输入");
continue;
}
else
{
for (int i = 0; i < 5; i++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
{
if (i == 4)
{
Console.WriteLine("输入正确");
return;
}
else
{
continue;
}
}
else
{
Console.WriteLine("输入错误,请重新输入5个大写字母");
break;
}
}
}
} while (true);
-
一个控制台应用程序,要求完成写列功能。
1)接收一个整数n。
2)如果接收的值n为正数,输出1~n间的全部整数。
3)如果接收的值n为负值,用break或者return退出程序。
4)如何n为0的话 转到1继续接收下一个整数。
while (true)
{
Console.WriteLine("请输入一个数");
int ints = int.Parse(Console.ReadLine());
if (ints > 0)
{
for (int i = 1; i <= ints; i++)
{
Console.Write(i + " ");
}
}
else if (ints < 0)
{
break;
}
else
{
ints = 1;
continue;
}
}
-
学生查询
①、启动的时候,要求用户输入n个学生的名称
②、用户输入完成之后,可以有两种操作,第一种,继续输入,跳转到第一步,第二种,开始查询,跳转到第三步
③、查询
I 、如果用户输入的名字存在,则输出该名称所对应的下标和这个名字
II、 如果用户输入的名字不存在,那么提示用户,名称不存在,是否要自动添加? 如果添加,那么再查询这个名 字的时候,
II、I要求打印出这个名字以及对应的数组下标。无论用户选择添加还是不添加,下一步都是让用户继续查询
List<string> list = new List<string>();
inputName:
Console.WriteLine("请输入学生名字,如果有多个之间用空格隔开");
string names = Console.ReadLine();
string[] name = names.Split(' ');
for (int i = 0; i < name.Length; i++)
{
list.Add(name[i]);
}
foreach (var item in list)
{
Console.WriteLine(item);
}
Console.WriteLine("继续输入请按'1',开始查询请按'2'");
int choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
goto inputName;
break;
case 2:
goto query;
break;
}
query:
Console.WriteLine("请输入要查询的名字");
string queryname = Console.ReadLine();
if (list.Contains(queryname))
{
Console.WriteLine($"名字{queryname}存在,下标为{list.IndexOf(queryname)}");
goto query;
}
else
{
Console.WriteLine("输入名字不存在,添加请输入1,不添加输入2");
int choice1 = int.Parse(Console.ReadLine());
if (choice1 == 1) list.Add(queryname);
goto query;
}
}
}
今日练习题2(答案在下期)
1. 从键盘上输入用户名admin和密码123,当二者都正确时,输出:用户名和密码输入正确,登陆成功
当用户名或密码输入错误时,输出:用户名或密码错误,请重新输入,实现循环输入
2. 用户登录系统时需要输入用户名和密码,系统对用户输入的用户名和密码进行验证。验证次数最多3次,超过三次则程序结束。
3. 打印101-200之间的素数(素数,也叫质数,除了1和其本身外,没有其他的除数整除,如2, 7, 17, 23…)
4. 循环输入商品编号和购买数量,系统自动计算每种商品的价钱(单价X数量),并累加总金额。
5. 控制台接收行数 ,打印以下图形.如下图:
觉得写不错,可以关注追更C#教程 !