C# for Unity 编程语言快速入门教程(连载3)---C#基础编程题库 


    前两篇文章按照基本编程类型,总结了“选择结构”、“循环结构”、“数组”等典型题目,且都是非常基础简单的题目。

    现在提高一点难度,混合以上类型进行编程,提供带答案的几个典型题目如下:



  // 第22题: 键入10 个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。
            int intNegNum=0;
            int intPosNum=0;
            int intZeroNum=0;

            for (int i = 1; i <=10; i++)
            {
                Console.WriteLine("请输入第{0}个整数",i);
                string strNumber = Console.ReadLine();
                int intNumber = Convert.ToInt32(strNumber);

                //判断且输出
                if(intNumber>0)
                {
                    ++intNegNum;
                }
                else if (intNumber==0)
                {
                    ++intZeroNum;
                }else{
                    ++intPosNum;
                }
            }

            Console.WriteLine("统计如下");
            Console.WriteLine("整数有{0}个", intNegNum);
            Console.WriteLine("负数有{0}个", intPosNum);
            Console.WriteLine("零有{0}个", intZeroNum);



  //第23题: 输入一个学生的成绩(在0~100 分之间,超出此范围显示错),进行五级评分并显示。

            Console.WriteLine("请输入你的学习成绩");
            string strNumber = Console.ReadLine();
            int intNumber = Convert.ToInt32(strNumber);
            if(intNumber>100 || intNumber<0)
            {
                Console.WriteLine("输入的范围超出合理范围");
            }else if(intNumber>90 && intNumber<=100)
            {
                Console.WriteLine("卓越");
            }else if(intNumber>80 && intNumber<=90)
            {
                Console.WriteLine("优秀");
            }else if(intNumber>70 && intNumber<=80)
            {
                Console.WriteLine("良好");
            }else if(intNumber>=60 && intNumber<=70)
            {
                Console.WriteLine("及格");
            }else{
                Console.WriteLine("不及格");
            }



  //第24题: 输入一个圆半径(r),计算并输出圆的面积(s)和周长(l)

            const float PI=3.1415F;

            Console.WriteLine("请输入圆的半径");
            string strR = Console.ReadLine();
            int intR = Convert.ToInt32(strR);
            Console.WriteLine("面积=" + PI * intR*intR);
            Console.WriteLine("周长="+2*PI*intR);



  //第25题:  打印输出上三角,不能使用直接打印,如下图
    *
    **
    ***
    ****
    ***** 

            for (int i = 1; i <= 5; i++)      //行
            {
                for (int j = 1; j <= i; j++)  //列
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }



  //第26题:声明并初始化长度为10的整型数组,输入10个数.输出其中大于平均值的数.
            int[] intArray = new int[10];
            float floTotal = 0;             //10个数的总和
            float floAVG = 0F;              //平均数

            //得到10个数的平均数
            for (int i = 0; i <10; i++)
            {
                Console.WriteLine("请输入第{0}个整数", i+1);
                string strR = Console.ReadLine();
                int intR = Convert.ToInt32(strR);  
                //输入的数值存入数组
                intArray[i] = intR;
                //计算总和
                floTotal += intR;
            }
            //得到平均数
            floAVG = floTotal / 10;

            //输出大于平均值的数
            for (int j = 0; j <10; j++)
            {
                if(intArray[j]>floAVG)
                {
                    Console.WriteLine("大于平均数=" + intArray[j]);
                }
            }


  //第27题: 输入数字5输出
    * * *
    * * *
    * * *
    * * *
    ***** 

            Console.WriteLine("请输入显示图形的行数");
            string strRowNumber = Console.ReadLine();
            int intRowNumber = Convert.ToInt32(strRowNumber);

            for (int i = 1; i <=intRowNumber; i++)  //i 表示行数
            {                
                if (i == intRowNumber)
                {
                    Console.WriteLine("*****");
                }
                else {
                    Console.WriteLine("* * *");
                }
            }


  //第28题: 模拟计算器输入两个数值与运算符,计算出相应运算结果。

            int intFirstNum;   
            int intSencondNum;
            char chFlag;

            Console.WriteLine("控制台计算器");
            Console.WriteLine("请输入第一个整数操作数");
            string strNum1 = Console.ReadLine();
            intFirstNum = Convert.ToInt32(strNum1);
            Console.WriteLine("请输入操作符 +  -  *  / ");
            string strFlag = Console.ReadLine();
            chFlag = Convert.ToChar(strFlag);
            Console.WriteLine("请输入第二个整数操作数");
            string strNum2 = Console.ReadLine();
            intSencondNum = Convert.ToInt32(strNum2);
            
            //计算结果
            switch (chFlag)
            {
                case '+':
                    Console.WriteLine("计算结果是:" + (intFirstNum + intSencondNum));
                    break;
                case '-':
                    Console.WriteLine("计算结果是:" + (intFirstNum - intSencondNum));
                    break;
                case '*':
                    Console.WriteLine("计算结果是:" + (intFirstNum * intSencondNum));
                    break;
                case '/':
                    if (intSencondNum==0)
                    {
                        Console.WriteLine("除数不能为零!");
                    }else{
                        Console.WriteLine("计算结果是:" + (intFirstNum / intSencondNum));                    
                    }
                    break;

                default:
                    break;
            }


    //第29题:   解法1(传统方式): 输出1-1000所有的素数

            for (int i = 3; i <= 1000; i++)
            {
                bool IsSS = true; //素数变量

                for (int j = 2; j < i; j++)
                {
                    if (i % j== 0)
                    {
                        IsSS = false;
                        break;//表示 i不是素数
                    }
                }
                if (IsSS)
                {
                    Console.WriteLine(i);
                }                
            } 


    //解法2: 采用方法的方式,可以简化编程逻辑。

        //输出1-1000所有的素数
        public void Demo11()
        {
            for (int i = 3; i <=1000; i++)
            {
                if (JudgeSS(i))
                {
                    Console.WriteLine(i);
                }
            }
        }

        ///


        /// 判断是否为素数
        ///

        ///
        ///
        /// true:表示素数
        ///

        private bool JudgeSS(int num)
        {
            bool IsResult = true; //默认是素数

            for (int i = 2; i < num; i++)
            {
                if(num%i==0)
                {
                    IsResult = false;//不是素数
                    break;
                }
            }

            return IsResult;
        }


  以上提供带参考答案的29个基础题目,如果初学者可以全部领会贯通,将对后继C#深入学习打下一个良好的基础。

  但是在这里笔者还是推荐,有充裕学习时间的初学者可以进行海量做题,以达到对编程思路(算法)的灵活训练之目的。故现在提供以下50+个精选编程题目,以供大家学习做题参考。(不提供参考答案,部分题目有重复,做过的直接略过即可)


1: 定义一个学生的成绩 mark 变量,
          如果小于80,且打印"不及格"
          如果大于等于80且小于100,则及格
          如果大于等于100且小于120,则良好
         如果大于等于120且小于等于150,则优秀

2: 求分段函数的值。
         f(x)= 0       (x<0)
              = 2x+1    (x>=0)

3: 编写程序,输出1-100间的所有偶数。

4:  求1+2+3+ 。。。 +20 的结果。分别使用(while ,do_while ,for 三种循环语句)

5:   输出1-100 之间不能被6整除的全部数字。

6:计算输出1-100 之间的所有奇数且小于4位数字的累加和。  

7: 计算1-100间所有整数的和,当和为4位数时终止求和并输出该和的值。

8: 打印输出平方值小于20000的最大整数。

9:  键入10 个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。

10: 输入一个学生的成绩(在0~100 分之间,超出此范围显示错),进行五级评分并显示。

11: 输入一个圆半径(r),计算并输出圆的面积(s)和周长(l)

12: 输入两个实型数x 和y,计算并输出它们的和、差、积和商。

13:  编一个程序,输入一个整数,输出其符号(若>=0, 输出1; 若<0, 输出 -1 ).

14:  编写一个程序,输入实数x 的值,按下列公式计算并输出 y 的值:
       y=     x                (x<=1)
                2x-1          (1                3x-11        (10<=x)

15: 编写一个程序, 输入三个单精度数,输出其中最小数。

16: 编写一个程序, 输入10个整数,统计并输出其中正数、负数和零的个数。

17: 用三种循环语句分别编写程序显示1-100 的平方值。

18: 打印输出上三角,不能使用直接打印

    *
    **
    ***
    ****
    *****

19: 打印输出九九乘法表。

20: 编程序判断某字符型变量中存放的是否为小写字母。

21: 编写程序输入单个字符,判断是否数据字符。是则输出字符Y,否则输出字符N

22:   输入非0的三位整数, 依次输出该数的正(负)号和百位、十位、个位数字。

23: 输入一个字符,是字母则输出“yes!”,否则无输出。

24: 输入一个整数x,若大于5且小于10的,则输出“5
25:   计算下列分段函数 ,y= 0    (x<-1.0)                                                             
                                             1    (-1.0<=x<=1.0),其中X由键盘输入。
                                            10   (x>1.0)

26:   输入一个字符,如果是数字则输出字符1 ; 如果是大写字母则输出字符2 ;如果是小写字母
     则输出字符3; 如果是空格则输出字符4;  如果是回车换行符则输出字符5; 是其他符号
     则输出字符6.      

27: 输入一个带符号的短整型数,输出该数的位数。  

28: 从键盘上输入10个实数,求其平均值  

29: 输入一个短整型正数,输出其各位数字的平方和。  

30:    求整数1~100的累加值,但要求跳过所有个位为3的数。

31.  输入数值判断是否大于10且小于20
32.  输入三个整数,输出其中最大数
33.  模拟计算器输入两个数值与运算符,计算出相应运算结果.
34.  输入两个数,求这两个数之间所有整数的和
35.  不断输入字符直到用户输入; 统计大写字母与小写字母及数字的个数
36.  输入一个整数,输出各位 数值
37.  输入数字5输出
    *****
    *  *  *
    *  *  *
    *  *  *
    *  *  *
38.   声明并初始化长度为10的整型数组,输入10个数.输出其中大于平均值的数.
39.   输入数值判断是否是整数,如:输入156输出”是”输入5.68输出”否”
40.   输入三角形三边,判断三边是否能构成三角形
41.   输入一个百分制成绩,转为A、B、C,A:90~100 ,B:80~89,C:70~79其他未D
42.   输出A~Z 再输出 a~z
43.   输入大写转小写 ,询问用户是否继续,输入y继续输入n退出
44.   输入一个整数,输出各位 数值
45.   输入数字5输出
    * * *
    * * *
    * * *
    * * *
    *****
46.   声明并初始化长度为10的整型数组,输入10个数.输出其中大于平均值的数.

50:   键盘输入十个数值,统计输出大于等于平均数的数值。【数组应用题目】
51: 有十个数放入数组中,用户输入一个数值,找出这个数值在本数值中的序号,
        如果没有输出“不存在”!
52: 数组中已有升序的10个数,输入一个数插入到数组中该数组仍然升序。

53: 输入一个数字统计其中0-9出现的次数。


       以上三篇文章就C#的基本编程提供了大量习题,以供学习之用。下一篇,笔者来讲解C#的面向对象特性与习题。