一个程序员自学中

C#基础功考察题目

2020-07-05  本文已影响0人  小船翻不翻

学习随堂作业,基础用法学习专用,也可以作为初中级面试题

  1. 说出已学过的数据类型有哪些?

  2. 举例说明已学过的运算符有哪些?

  3. 请用户输年份,输入月份,输出该月的天数.

  4. 对学员的结业考试成绩评测(改成用Switch来做)
    成绩>=90 :A
    90>成绩>=80 :B
    80>成绩>=70 :C
    70>成绩>=60 :D
    成绩<60 :E

  5. 被删除

  6. 李四这次考试又粗心了,爸爸让他写1000遍"下次考试一定要细心".
    如何编程实现上面的问题?

  7. 打印100次"欢迎来到王者峡谷"

  8. 输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩

  9. 老师问学生,这道题你会做了吗?如果学生答"会了(y)",则可以放学.如果学生不会做(n),则老师再讲一遍,再问学生是否会做了...... 直到学生会为止,才可以放学.直到学生会或老师给他讲了10遍还不会,都要放学

  10. 2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?

  11. 练习1:计算1到100之间整数的和;

  12. 练习2:要求用户输入用户名和密码,只要不是admin、888888就一直提示用户名或密码错误,请重新输入。

  13. 练习3:不断要求用户输入学生姓名,输入q结束.

  14. 练习4:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。

  15. 练习5:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值

  16. 练习6:张三先唱一遍要表演的歌曲,老师觉得张三唱歌不过关,就让张三再唱一遍,老师满意则张三可以下课,不然则需要再唱一遍,再问老师是否满意...

  17. 被删除

  18. 比较用for和while,哪种更好?

  19. 问题1:求1-100间的所有偶数和?

  20. 问题2:找出100-999间的水仙花数?

  21. 问题3:输出九九乘法表(循环的嵌套)
    语法:
    for(表达式1;表达式2;表达式3)
    {循环体;�};

  22. 练习1:循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错.

  23. 练习2:在while中用break实现要求用户一直输入用户名和密码,只要不是admin、888888就一直提示要求重新输入,如果正确则提登录成功.

  24. 1.~100之间的整数相加,得到累加值大于20的当前数

  25. 练习1:用 while continue实现计算1到100(含)之间的除了能被7整除之外所有整数的和。

  26. 定义一个结构叫MyColor,有三个成员,分别为red,green,blue

  27. 声明一个 MyColor类型的变量,并对其成员赋值.使MyColor可以表示成一个红色.

  28. 定义一个结构类型Person,有三个成员,分别为姓名,性别,年龄

  29. 声明两个Person类型的变量,分别表示 张三 男 18岁/ 小兰 女 16岁

  30. 一次语文测试后,老师让班长统计每一个学生的成绩并计算全班(全班共60人)的平均成绩,然后把所有成绩显示出来.

  31. 练习1:从一个整数数组中取出最大的整数

  32. 练习2:计算一个整数数组的所有元素的和。

  33. 练习3:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”

  34. 练习4:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素的值减1,如果元素是0,则不变。

  35. 练习5:将一个字符串数组的元素的顺序进行反转。{“3”,“a”,“8”,“haha”} {“haha”,“8”,“a”,“3”}。第i个和第length-i-1个进行交换。

  36. 求平均值,求最大值,求和

  37. 读取输入的整数,定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户重新输入)

  38. 还记得学循环时做的那道题吗?只允许用户输入y或n,请改成方法

  39. 查找两个整数中的最大值:int Max(int i1,int i2)

  40. 计算输入数组的和:int Sum(int[] values)

  41. 写一个方法,计算一个int类型数组中每个元素的总和 和 最大值与最小值?

  42. 重复让用户输入一个数,判断该数是否是质数,输入q结束?

  43. 质数的判断用方法来实现

  44. 将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”(用方法来实现此功能)

  45. 用方法实现找出一个int类型数组中最大值和最小值

  46. 写一个方法,实现MyTryParse的功能

你准备好了么,下面有答案。以下内容仅供参考

sql聚合索引使用条件.png

一张长图 隔开了,问题与参考答案

  1. 说出已学过的数据类型有哪些?
int,string,char,bool,decimal,enum,const,long,
  1. 举例说明已学过的运算符有哪些?
+,-,*,/,(,),<,>,<=,>=,&&,||,!,!=,+,-,
  1. 请用户输年份,输入月份,输出该月的天数.
            Console.WriteLine("请输入年份?");
            int year = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入月份?");
            int yue = int.Parse(Console.ReadLine());
            switch (yue)
            {
                case 1:  case 3:  case 5:
                case 7: case 8: case 10: case 12:
                    Console.WriteLine("这个月是31天");
                    break;
                case 4: case 6: case 9: case 11:
                    Console.WriteLine("这个月是30天");
                    break;
                case 2:
                    if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
                    {
                        Console.WriteLine("这个月是29天");
                    }
                    else
                    {
                        Console.WriteLine("这个月是28天");
                    }
                    break;
             }
  1. 对学员的结业考试成绩评测(改成用Switch来做)
    成绩>=90 :A
    90>成绩>=80 :B
    80>成绩>=70 :C
    70>成绩>=60 :D
    成绩<60 :E
            Console.WriteLine("请输入成绩:");
            int chengji = int.Parse(Console.ReadLine());
            switch (chengji/10)
            {
                case 9:
                    Console.WriteLine("你的成绩为A");
                    break;
                case 8:
                    Console.WriteLine("你的成绩为B");
                    break;
                case 7:
                    Console.WriteLine("你的成绩为C");
                    break;
                case 6:
                    Console.WriteLine("你的成绩为D");
                    break;
                default:
                    Console.WriteLine("你的成绩为E");
                    break;
            }
  1. 实际生活中的循环:打印100份试卷 10000米长跑 车轮
  1. 李四这次考试又粗心了,爸爸让他写1000遍"下次考试一定要细心".
    如何编程实现上面的问题?
for (int i = 0; i < 1000; i++)
 {
       Console.WriteLine("下次考试一定要细心{0}",i+1);
}
Console.WriteLine("下次考试一定要细心");
Console.WriteLine("下次考试一定要细心");
Console.WriteLine("下次考试一定要细心");
  1. 打印100次"欢迎来到王者峡谷"
           for (int i = 0; i < 100; i++)
            {
                Console.WriteLine("欢迎来到王者峡谷{0}",i+1);
            }
  1. 输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩
           Console.WriteLine("输入班级人数:");
            int renshu = int.Parse(Console.ReadLine());
            int sum=0;
            for (int i = 0; i < renshu; i++)
            {
                Console.WriteLine("输入学员成绩:");
                int cheng = int.Parse(Console.ReadLine());
                sum += cheng;
            }
            Console.WriteLine("{0}人的班级,总成绩为{1},平均成绩为{2}",renshu,sum,sum/renshu);
  1. 老师问学生,这道题你会做了吗?如果学生答"会了(y)",则可以放学.如果学生不会做(n),则老师再讲一遍,再问学生是否会做了......直到学生会为止,才可以放学.直到学生会或老师给他讲了10遍还不会,都要放学
            while (true)
            {
                int i=0;
                Console.WriteLine("这道题你会做了吗?");
                string answer = Console.ReadLine();
                if (answer == "y"&&i==10)
                {
                    Console.WriteLine("那你回家吧!");
                    break;
                }
                else
                {
                    Console.WriteLine("那老师在讲一遍!");
                    i++;                    
                }
            }
  1. 2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?
            int year = 2006;
            double xueyuan = 80000;
            while (xueyuan < 200000)
            {
                xueyuan *= 1.25;
                year++;
            }
            Console.WriteLine("{0}年增长到了{1}",year,xueyuan);
  1. 练习1:计算1到100之间整数的和;
            int sum=0;
            for (int i = 1; i <= 100; i++)
            {
                sum += i; 
            }
            Console.WriteLine("1-100之间的整数的和是{0}",sum);
  1. 练习2:要求用户输入用户名和密码,只要不是admin、888888就一直提示用户名或密码错误,请重新输入。
            while (true)
            {
                Console.WriteLine("输入用户名:");
                string name = Console.ReadLine();
                Console.WriteLine("输入密码:");
                string password = Console.ReadLine();
                if (name == "admin" && password == "8888")
                {
                    Console.WriteLine("登陆成功!");
                    break;
                }
                else
                {
                    Console.WriteLine("请重新输入");
                }
            }
  1. 练习3:不断要求用户输入学生姓名,输入q结束.
            while (true)
            {
                Console.WriteLine("输入学生姓名:");
                string name = Console.ReadLine();
                if (name == "q")
                {
                    break;
                }
            }
  1. 练习4:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。
            while (true)
            {
                Console.WriteLine("输入一个数字:");
                string shuzi = Console.ReadLine();
                if (shuzi == "q")
                {
                    break;
                }
                else
                {
                    int shu = int.Parse(shuzi);
                    Console.WriteLine("这个数的两倍是{0}",shu*2);
                }
            }
  1. 练习5:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值
            int input=0;
            while (true)
            {                
                Console.WriteLine("输入一个数字:");
                string shuzi = Console.ReadLine();
                if (shuzi == "end")
                {
                    Console.WriteLine(input);
                    break;
                }
                else
                {
                    int shu = int.Parse(shuzi);
                    
                    if (input < shu)
                    {                       
                        input = shu;                       
                    }
                }
            }
  1. 练习6:张三先唱一遍要表演的歌曲,老师觉得张三唱歌不过关,就让张三再唱一遍,老师满意则张三可以下课,不然则需要再唱一遍,再问老师是否满意...
            Console.WriteLine("张三唱了一遍歌");
            while (true)
            {
                string answer = Console.ReadLine();
                if (answer == "y")
                {
                    break;
                }
                Console.WriteLine("张三在唱一遍歌");
            }
  1. 连续输出100次"我下次一定细心".
            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine("我下次一定细心{0}", i + 1);
            }
  1. 比较用for和while,哪种更好?
    for使用在知道循环次数条件的循环中,while可以有,可以不知道要循环多少次;没有好与坏,只要用在了地方,那就是好。

  2. 问题1:求1-100间的所有偶数和?

            int sum = 0;
            for (int i = 1; i <= 100; i++)
            {

                if (i % 2 == 0)
                {
                    sum += i;
                }
            }
            Console.WriteLine("1-100间的所有偶数和是{0}", sum);
  1. 问题2:找出100-999间的水仙花数?
            int gewei, shiwei, baiwei;
            for (int i = 100; i <= 999; i++)
            {
                gewei = i % 10;
                baiwei = i / 100;
                shiwei = i / 10 %10;
                if (i == gewei * gewei * gewei + shiwei * shiwei * shiwei + baiwei * baiwei * baiwei)
                {
                    Console.WriteLine(i);
                }
            }
  1. 问题3:输出九九乘法表(循环的嵌套)语法:
    for(表达式1;表达式2;表达式3)
    {循环体;�};
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("{0}X{1}={2}\t",j,i,i*j);
                }
                Console.WriteLine();
            }
  1. 练习1:循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错.
            int i = 0, sum = 0;
            while(i<5)
            {
                Console.WriteLine("请输入年龄");
                int avg = int.Parse(Console.ReadLine());
                if (avg < 0 || avg > 100)
                {
                    Console.WriteLine("输入错误!重新输入");
                }
                else
                {
                    i++;
                    sum += avg;
                }
            }
            Console.WriteLine("5个人的平均年龄是{0}",sum/5);
  1. 练习2:在while中用break实现要求用户一直输入用户名和密码,只要不是admin、888888就一直提示要求重新输入,如果正确则提登录成功.
            while (true)
            {
                Console.WriteLine("输入用户名:");
                string name = Console.ReadLine();
                Console.WriteLine("输入密码:");
                string password = Console.ReadLine();
                if (name == "admin" && password == "8888")
                {
                    Console.WriteLine("登陆成功!");
                    break;
                }
                else
                {
                    Console.WriteLine("请重新输入");
                }
            }
  1. 1~100之间的整数相加,得到累加值大于20的当前数
            int sum = 0;
            for (int i = 1; i <= 100; i++)
            {
                sum += i;
                if (sum > 20)
                {
                    Console.WriteLine("到{0}时是{1}",i,sum);
                    break;
                }
            }
  1. 练习1:用 while continue实现计算1到100(含)之间的除了能被7整除之外所有整数的和。
            int sum = 0,i=0;
            while (i <= 100)
            {
                i++;
                if (i % 7 == 0)
                {
                    continue;                    
                }
                sum += i;
            }
            Console.WriteLine(sum);
  1. 定义一个结构叫MyColor,有三个成员,分别为red,green,blue
            public struct MyColor
        {
            public string red;
            public string green;
            public string blue;

        }
  1. 声明一个 MyColor类型的变量,并对其成员赋值.使MyColor可以表示成一个红色.
           public struct MyColor
       {
           public int red;
           public int green;
           public int blue;

       }
       static void Main(string[] args)
       {
           MyColor color;
           color.blue = 0;
           color.green = 0;
           color.red = 0;
  1. 定义一个结构类型Person,有三个成员,分别为姓名,性别,年龄
      public struct person
       {
           public string name;
           public char avg;
           public int ling;
       }
  1. 声明两个Person类型的变量,分别表示 张三 男 18岁/ 小兰 女 16岁
       public struct person
        {
            public string name;
            public char avg;
            public int ling;

        }
        static void Main(string[] args)
        {
            person zs;
            person xl;
            zs.name = "张三";
            zs.avg = '男';
            zs.ling = 18;
            xl.name = "小兰";
            xl.avg = '女';
            xl.ling = 17;
  1. 一次语文测试后,老师让班长统计每一个学生的成绩并计算全班(全班共60人)的平均成绩,然后把所有成绩显示出来.
            int []CJ=new int[5];
            int sum=0;
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("请输入你的语文成绩:");
                CJ[i]= int.Parse(Console.ReadLine());
                sum += CJ[i];
            }
            Console.WriteLine("所有人的平均成绩为{0}",sum/5);
            Console.WriteLine("***************************");
            Console.WriteLine("同学的成绩为");
            for(int i=0;i<5;i++)
            {
                Console.WriteLine("第{0}个学生的成绩为:{1}",i+1,CJ[i]);
            }
  1. 练习1:从一个整数数组中取出最大的整数
            int[] ZS = new int[] { 3, 5, 2, 65, 23, 12, 86, 54, 33, 26, 74, 25, 43 };
            int max = ZS[0];
            for (int i = 1; i < ZS.Length; i++)
            {
                if (max < ZS[i])
                {
                    max = ZS[i];
                }
            }
            Console.WriteLine("这个数组中的最大值是:{0}",max);
  1. 练习2:计算一个整数数组的所有元素的和。
            int[] ZS = new int[] { 3, 5, 2, 65, 23, 12, 86, 54, 33, 26, 74, 25, 43 };
            int sum = ZS[0];
            for (int i = 1; i < ZS.Length; i++)
            {
                sum += ZS[i];
            }
            Console.WriteLine("这个数组中所有元素的和是:{0}",sum);
  1. 练习3:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”
            string[] Name = new string[] { "梅西 ", "郑华", "乔治", "西陵", "原址" };
            for (int i = 0; i < Name.Length-1; i++)
            {
                Console.Write(Name[i]+"||");
            }
            Console.WriteLine(Name[Name.Length-1]);
  1. 练习4:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素的值减1,如果元素是正数则将这个位置的元素的值加1,如果元素是0,则不变。
            int[] ZS = new int[] { 3, 0, 2, -65, 23, -12, 86, 54, -33, 26, 74, -25, 43 };
            for (int i = 0; i < ZS.Length; i++)
            {
                if (ZS[i] < 0)
                {
                    ZS[i] -= 1;
                }
                else if (ZS[i] > 0)
                {
                    ZS[i] += 1; 
                }
            }
            for (int i = 0; i < ZS.Length; i++)
            {
                Console.Write(ZS[i]+"\t");
            }
  1. 练习5:将一个字符串数组的元素的顺序进行反转。{“3”,“a”,“8”,“haha”} {“haha”,“8”,“a”,“3”}。第i个和第length-i-1个进行交换。
            int[] ZS = new int[] { 3, 0, 2, -33,  74, -25, 43 };
            for (int i = 0; i < ZS.Length/2; i++)
            {
                int temp = ZS[i];
                ZS[i] = ZS[ZS.Length - i - 1];
                ZS[ZS.Length - i - 1]=temp;
            }
            for (int i = 0; i < ZS.Length; i++)
            {
                Console.Write(ZS[i]+"\t");
            }
  1. 读取输入的整数,定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户重新输入)
       {
            InputInt();
            Console.ReadKey();
        }
        static void InputInt()
        {
            while (true)
            {
                int shuzi;
                Console.WriteLine("请输入一个数字:");
                string number = Console.ReadLine();
                if (int.TryParse(number, out shuzi))
                {
                    shuzi = 1;
                    Console.WriteLine("这是个数字");
                    break;
                }
                else
                {
                    Console.WriteLine("你输入的不是数字");
                }
            }
        }
  1. 还记得学循环时做的那道题吗?只允许用户输入y或n,请改成方法
        {
              InputInt();
              Console.ReadKey();
        }
        static void InputInt()
        {
            while (true)
            {               
                Console.WriteLine("这道题你会做了吗?回答”Y“或者”N“");
                string number = Console.ReadLine();
                if (number=="y")
                {                    
                    Console.WriteLine("你已经会这道题了,回家去吧");
                    break;
                }
                else if(number=="n")
                {
                    Console.WriteLine("你怎么还不会啊,我都很烦了");
                }
            }
        }
  1. 查找两个整数中的最大值:int Max(int i1,int i2)
return a > b ? a : b;
  1. 计算输入数组的和:int Sum(int[] values)
            int[] ZS = new int[] { 3, 0, 2, -33, 74, -25, 43 };
            int sum = Sum(ZS);
            Console.WriteLine("这个数组中所有元素的和是:{0}", sum);
            Console.ReadKey();
        }
        static int Sum(int[] input)
        {
            int sum = input[0];
            for (int i = 1; i < input.Length; i++)
            {
                sum += input[i];
            }
            return sum;
        }
  1. 写一个方法,计算一个int类型数组中每个元素的总和 和 最大值与最小值?
            int ma, mi;
            int[] ZS = new int[] { 3, 0, 2, 33, 74, 25, 43 };
            ma = mi = ZS[0];
            int su = Sum(ZS, out ma, out mi);
            Console.WriteLine("这个数组中所有元素的和是:{0}最大值是{1},最小值是{2}", su, ma, mi);
            Console.ReadKey();
        }
        static int Sum(int[] input, out int max, out int min)
        {
            int sum = max = min = input[0];
            for (int i = 1; i < input.Length; i++)
            {
                sum += input[i];
                if (max < input[i])
                {
                    max = input[i];
                }
                else if (min > input[i])
                {
                    min = input[i];
                }
            }
            return sum;
        }
  1. 重复让用户输入一个数,判断该数是否是质数,输入q结束?
            while (true)
            {
                int zhishu;
                Console.WriteLine("请输入一个数字:");
                string shu = Console.ReadLine();
                if (shu == "q")
                {
                    break;
                }
                if (int.TryParse(shu, out zhishu))
                {
                    if (Zs(zhishu))
                    {
                        Console.WriteLine("这是个质数");
                    }
                    else
                    {
                        Console.WriteLine("这不是质数");
                    }
                }
                else
                {
                    Console.WriteLine("输入有误,重新输入");
                }
            }
            Console.ReadKey();
        }
        static bool Zs(int zhishu)
        {
            while (true)
            {
                for (int i = 2; i < zhishu/2; i++)
                {
                    if (zhishu % i == 0)
                    {
                        return false;
                    }
                }
                return true;
            }
        }
  1. 质数的判断用方法来实现

  2. 将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”(用方法来实现此功能)

            string[] Name = new string[] { "梅西 ", "郑华", "乔治", "西陵", "原址" };
            Mz(Name);
            Console.ReadKey();
        }
        static void Mz(string[] minzi)
        {
            for (int i = 0; i < minzi.Length - 1; i++)
            {
                Console.Write(minzi[i] + "||");
            }
            Console.WriteLine(minzi[minzi.Length - 1]);
  1. 用方法实现找出一个int类型数组中最大值和最小值
    同41题
    交换两个变量的值。
    (如果会使用ref,则用方法做。)
    int num1 = 5;int num2=6;
    通过程序交换让num1 = 6,num2=5;
    用方法实现:
    求两个数的最大值(传递两个int类型参数) 。扩展:(求三个数最大值,params)
    求1-100之间所有奇数的和。
    找胖子,{200,120,90,180,110},找最胖的人.(求最大值,参数是int类型数组。)
上一篇下一篇

猜你喜欢

热点阅读