C# 第一阶段练习题

昨天练习答案

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(附带答案)

  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;
            }
  1. 简易计算器:输入数字、输入符号、输入数字,进行运算,注意:需要限制运算符只能输入 + - * /
   		  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;
            }
  1. 百钱买百鸡算法-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. 求出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. 编程输出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);
	  

  1. 一个控制台应用程序,要求用户输入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. 一个控制台应用程序,要求完成写列功能。

    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;
                }

            }
  1. 学生查询

    ①、启动的时候,要求用户输入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#教程 !

在这里插入图片描述

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值