C语言经典题

C语言经典题

OS:使用标签快捷浏览题目

01.使用C#控制台输出1-100中的所有素数

using System;

namespace Console
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 2; i <= 100; i++) //素数不包含1,所以整体取值范围应为 2到 100.
            {

                int m = 2;
                while (i % m != 0)
                {
                    m++;
                }

    /*定义另一个变量,运算逻辑为:i是从2到100的变量,m是从2开始,每次于 i 进行取余,如果结果不为0,则 m 加1继续取余
     直到 i 能被 m 整除 */
                if (i == m)
                {
                    Console.WriteLine(i);
                } // 如果整除后输出的结果 m == i  那么就将结果的 i 打印。
            }

            Console.ReadKey();
        }
    }
}

02.使用控制台通过三边长,计算三角形的面积

如图所示

03.输入一个数值作为半径,求对应的圆的周长、面积;对应球体的体积

        static void Main(string[] args)
        {
            double r, c, m, v;
            Console.Write("请输入半径:");
            r = double.Parse(Console.ReadLine());
            c = Math.PI * 2 * r;
            m = Math.PI * r * r;
            v = Math.PI * r * r * r * (4 / 3);
            Console.WriteLine("周长为{0},\n面积为{1},\n体积为{2}", c,m,v);
           
            Console.ReadKey();
        }

04.输出所有的水仙花数。所谓的水仙花数是指一个三位数,其各位数字立方和等于该数本身

        static void Main(string[] args)
        {
            int i,n,m,o;
            for (i = 100; i <= 999;i++)
            {
                n = i / 100;// n 为 i 的百位数
                m = i / 10 % 10;// m 为 i 的十位数
                o = i % 100 % 10;// o 为 i 的个位数
                if (i == n * n * n + m * m * m + o * o * o) 
                    Console.WriteLine("水仙花数为:{0}",i);

            }
            
            Console.ReadKey();
        }

05.编写一个猜数字游戏。由计算机随机生成一个 1 至 100 间的整数,然后由用户来猜这个数字,根据用户猜测的次数和结果,分别给出不同的提示

       static void Main(string[] args)
        {

            int i, n;
            Random m = new Random();
            i = m.Next(101);
            for (int o = 1; o <= 10; o++)
            {
               
                Console.Write("随机数已生成,请输入猜测值:");

                n = int.Parse(Console.ReadLine());
                if (n == i)
                    Console.WriteLine("恭喜猜测正确!!");
                else if (n > i)
                    Console.WriteLine("猜测的太大了");
                else if (n < i)
                    Console.WriteLine("猜测的太小了");
            }
            Console.WriteLine("你猜错的太多了,算了告诉你答案吧");
            Console.WriteLine("随机数为:{0}", i);
            Console.ReadKey();
        }

06.有 3 对新婚夫妇参加集体婚礼,假定 3 个新郎为 A、B、C。新娘为 X、Y、Z。有个人不知道他们的结婚对象,于是先问了 A:A 说他将和 X 结婚;然后他问了 X:X 说她的未婚夫是 C;于是他又去问 C:C 说他将和 Z 结婚。这个人听完后,知道他们都是在开玩笑,说的都不是真的。请你用计算机程序帮助这个人找出正确的结婚组合。

        static void Main(string[] args)
        {
            int x, y, z;
            for (x = 1; x <= 3; x++)
            for (y = 1; y <= 3; y++)
            for (z = 1; z <= 3; z++)
                 if (x != 1 && x != 3 && z != 3 && x != y && x != z && y != z)
                        {
                            Console.WriteLine("新娘 X 的丈夫是A,B,C中的第{0}位",x);
                            Console.WriteLine("新娘 Y 的丈夫是A,B,C中的第{0}位",y);
                            Console.WriteLine("新娘 Z 的丈夫是A,B,C中的第{0}位",z);
                      
                        }

                        Console.ReadKey();
        } 

07.使用c#来计算分段函数的值如图

//节选
        static void Main(string[] args)
        {
            double x;
            Console.Write("请输入x=");
            x = double.Parse(Console.ReadLine());
            double  y;
            if (x >= 0)
                y = (x*x-3*x)/(x*x+1);
            else
                y =Math.Log(-5*x)+6*Math.Sqrt(Math.Abs(x)+Math.Exp(4))-(x+1)*(x+1)*(x+1);
            Console.WriteLine("y={000}", y);
           
            Console.ReadKey();       
        } 

08.随机生成 3 个数字,将这三个数字排序后,从小到大输出

        static void Main(string[] args)
        {
            int i, n, m,t;
            Random o = new Random();
            i = o.Next(101);
            n = o.Next(101);
            m = o.Next(101);
            if (i < n) { t = i;i = n;n = t; }
            if (i < m) { t = i;i = m;m = t; }
            if (n < m) { t = n;n = m;m = t; }
            Console.WriteLine("三个数当中从小到大依次为{0},{1},{2}",m, n, i);
            Console.ReadKey();

        } 

09.求解一元二次方程。输入方程的三个系数 a b c,根据公式求解方程的根

        static void Main(string[] args)
        {
            double a;
            Console.Write("请输入系数a的值:");
            a = double.Parse(Console.ReadLine());
            double b;
            Console.Write("请输入系数b的值:");
            b = double.Parse(Console.ReadLine());
            double c;
            Console.Write("请输入系数c的值:");
            c = double.Parse(Console.ReadLine());
            double x1, x2, dl, rp, ip;
            if (a == 0)
            {
                if (b == 0)
                    Console.WriteLine("此方程无解!");
                else
                    Console.WriteLine("此方程的解为:{0}", -c / b);
            }
            else
            {
                dl = b * b - 4 * a * c;
                if (dl > 0)
                {
                    x1 = (-b + Math.Sqrt(dl)) / (2 * a);
                    x2 = (-b - Math.Sqrt(dl)) / (2 * a);
                    Console.WriteLine("此方程有两个不相等的实数根:{0} ,{1} ", x1, x2);
                }
                else 
                {
                    if (dl == 0)
                        Console.WriteLine("此方程有两个相同的实数根:{0}", -b / (a * 2));
                    else 
                    {
                        rp = -b / (2 * a);
                        ip = Math.Sqrt(-dl) / (2 * a);
                        Console.WriteLine("此方程有两个共轭复根:{0}+{1}i 和 {0}-{1}i", rp, ip);
                    }
                }
            }

            Console.ReadKey();

10.运用if和switch语句来实现多分支结构,计算党费金额,根据党员的固定工资收入来计算

using System;

namespace ConsoleApp1
{
 class Program
 {
     static void Main(string[] args)
     {
         int i;
         Console.Write("请输入你的收入:");
         i = int.Parse(Console.ReadLine());
         int z,p;

         if (i > 10000)

         {
             z = 1;
         }
         else if (i > 5000)
         {
             z = 2;
         }
         else if (i > 3000)
         {
             z = 3;
         }
         else
         {
             z = 4;            
         }
         switch (z)
         {
             case 1:
                 p = i / 100 * 2;
                 Console.WriteLine("你需要支付的党费为:{0}", p);
                 break;
             case 2:
                 p = i / 100 * 3/2;
                 Console.WriteLine("你需要支付的党费为:{0}", p);
                 break;
             case 3:
                 p = i / 100;
                 Console.WriteLine("你需要支付的党费为:{0}", p);
                 break;
             case 4:
                 p = i / 100 / 2;
                 Console.WriteLine("你需要支付的党费为:{0}", p);
                 break;
            
         }
         

         Console.ReadKey();
     }  
     
 }

}

求若干学生的平均身高、最高身高、最低身高以及高于平均身高的人数

        static void Main(string[] args)
        {
            int[] height = new int[10] { 156, 150, 180, 184, 172, 159, 177, 173, 154, 155 };
            int i, sum = 0, avg, max = 0, min = 500, oa = 0;
            Console.WriteLine("学生身高如下:");
            for (i = 0; i < 10; i++)
                Console.Write("{0,4}", height[i]);
            for (i = 0; i < 10; i++)

            {
                sum += height[i];
                if (height[i] > max)max = height[i];
                if (height[i] < min) min = height[i];

            }
            avg = sum / 10;
            for (i = 0; i < 10; i++)
            {
                if(height[i] > avg)oa++;

            }
            Console.WriteLine("\n平均身高={0},最高身高={1},最低身高={2}", avg, max, min);
            Console.WriteLine("高于平均身高的学生人数为={0}", oa);
            Console.ReadKey();
        }

统计各分数段学生的人数和百分比

        static void Main(string[] args)
        {
            int[] score = new int[10] { 80, 90, 67, 89, 85, 45, 69, 87, 95, 77 };
            int i, AN = 0, RN = 0, CN = 0, DN = 0;
            Console.WriteLine("学生成绩如下:");
            for (i = 0; i < 10; i++) Console.Write("{0,4}", score[i]);
            for ( i = 0; i < 10; i++)
            {
                switch (score[i] / 10)
                {
                    case 10:
                    case 9:
                        AN++;
                        break;
                    case 8:
                        RN++;
                        break;
                    case 7:
                    case 6:
                        CN++;
                        break;
                    default:
                        DN++;
                        break;
                }
            }
            Console.WriteLine("\n优(90~100)分数段的学生人数为{0},所占百分比为{1:#0.##%}", AN, AN / 10.0);
            Console.WriteLine("\n优(80~89)分数段的学生人数为{0},所占百分比为{1:#0.##%}", RN, RN / 10.0);
            Console.WriteLine("\n优(90~100)分数段的学生人数为{0},所占百分比为{1:#0.##%}", CN, CN / 10.0);
            Console.WriteLine("\n优(90~100)分数段的学生人数为{0},所占百分比为{1:#0.##%}", DN, DN / 10.0);
            Console.ReadKey();
        }
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值