c#复习题(简答题:基础+面向对象)

2023-11-20

1. (简答题)

填写程序,要求如下:

        输入三角形三条边,先判断是否可以构成三角形,如果可以,则求三角形的周长和面积,否则报错。

提示:输入的三个数构成三角形三边的条件:每条边长均大于0,并且任意两边之和大于第三边。

代码编写:

 static void Main(string[] args)
        {
            Console.WriteLine("输入三角形三边长");
            double r1 = Convert.ToDouble(Console.ReadLine());
            double r2 = Convert.ToDouble(Console.ReadLine());
            double r3 = Convert.ToDouble(Console.ReadLine());
            double l, p, s;
            if (r1 + r2 > r3 && r1 + r3 > r2 && r2 + r3 > r1)
            {
                l = r1 + r2 + r3;
                Console.WriteLine("周长=" + l);
                p = l / 2;
                s = Math.Sqrt(p * (p - r1) * (p - r2) * (p - r3));
                Console.WriteLine("面积=" + s);
            }
            else
            {
                Console.WriteLine("不能构成三角形,程序报错!");
            }
        }

运行结果:

 2. (简答题)产生3个0-100(包含0和100)的随机数a,b,c,按从小到大排序输出。

代码编写:

 static void Main(string[] args)
        {
            int a;
            Random r = new Random();
            a = r.Next(101);
            Console.WriteLine("产生的随机数为:");
            Console.WriteLine(a);
            int b;
            b = r.Next(101);
            Console.WriteLine(b);
            int c;
            c = r.Next(101);
            Console.WriteLine(c);
            int min, middle, max;
            min = (a > b ? b : a) > c ? c : (a > b ? b : a);
            middle = (a > b ? a : b) > c ? c : (a > b ? b : a);
            max = (a > b ? a : b) > c ? (a > b ? a : b) : c;
            Console.WriteLine("排序为{0},{1},{2}", max, middle, min);
        }

运行结果:

 3. (简答题)输入一元二次方程的三个系数a、b和c,求方程的解。

代码编写:

 static void Main(string[] args)
        {
            Console.WriteLine("输入一元二次方程的三个系数:");
            int a = Convert.ToInt32(Console.ReadLine());
            int b = Convert.ToInt32(Console.ReadLine());
            int c = Convert.ToInt32(Console.ReadLine());
            int r;
            double r1, x1, x2;
            r = b * b - 4 * a * c;
            if (r > 0)
            {
                Console.WriteLine("方程有两个解!");
                r1 = Math.Sqrt(r);
                x1 = (-b + r1) / 2 * a;
                x2 = (-b - r1) / 2 * a;
                Console.WriteLine("方程的两个解为:{0},{1}", x1, x2);
            }
            else if (r == 0)
            {
                Console.WriteLine("方程有两个等根!");
                r1 = Math.Sqrt(r);
                x1 = (-b + r1) / 2 * a;
                Console.WriteLine("方程的两个等根为:" + x1);
            }
            else { Console.WriteLine("此方程无解!!!"); };
        }

运行结果:

4. (简答题)利用级数求π

 static void Main(string[] args)
        {
            double t = 1, sign = 1, sum = 0;
            int i = 2;
            while (t >= 1e-4)
            {
                sum += sign * t;
                t = 1.0 / (2 * i - 1);
                i++;
                sign = -sign;
            }
            Console.WriteLine("π=" + 4 * sum);
        }

运行结果

 

5. (简答题)编写求n!的程序。

 static void Main(string[] args)
        {
            Console.WriteLine("输入一个数,求阶乘");
            int n = Convert.ToInt32(Console.ReadLine());
            int s = 1;
            for (int i = 1; i < n; i++)
            {
                s = s * (i + 1);
            }
            Console.WriteLine("阶乘为:{0}", s);
        }

运行结果:

 6. (简答题)打印乘法口诀。

 static void Main(string[] args)
        {
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("{0}*{1}={2,-8}", j, i, i * j);
                }
                Console.WriteLine("\n");
            }
        }

运行结果:

 

7. (简答题)求若干学生的平均身高、最高身高、最低身高以及高于平均身高的人数

要求:1.输入10个同学的身高

           2.输出平均身高、最高身高、最低身高,以及高于平均身高的人数。

 static void Main(string[] args)
        {
            Console.WriteLine("输出10个同学的身高:");
            int[] a = new int[10];
            for (int i = 0; i < a.Length; i++)
            { a[i] = Convert.ToInt32(Console.ReadLine()); }
            int sum = 0, max, min;
            for (int i = 0; i < a.Length; i++)
            {
                sum = sum + a[i];
            }
            Console.WriteLine("平均身高为:{0}", sum / 10.0);
            max = a[0];
            for (int i = 0; i < a.Length; i++)
            {

                if (max < a[i])
                { max = a[i]; }
            }
            min = a[0];
            for (int i = 0; i < a.Length; i++)
            {

                if (min > a[i])
                { min = a[i]; }
            }
            Console.WriteLine("最高身高为:" + max);
            Console.WriteLine("最低身高为:" + min);
            int t = 0;
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] > sum / 10)
                    t++;
            }
            Console.WriteLine("高于平均身高的人数为:" + t);
        }

运行结果:

 8. (简答题)随机生成10个同学的成绩就,使用冒泡法排序。

static void Main(string[] args)
        {
            Random r = new Random();
            int[] a = new int[10];
            for (int i = 0; i < a.Length; i++)
                a[i] = r.Next(101);
            int t;
            for (int i = 0; i < a.Length; i++)
            {
                for (int j = 0; j < 9 - i; j++)
                    if (a[j] > a[j + 1])
                    {
                        t = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = t;
                    }
            }
            Console.WriteLine("冒泡法排序为:");
            for (int i = 0; i < a.Length; i++)
            {
                Console.Write("{0,8}", a[i]);
            }
        }

运行结果:

 9. (简答题)输入行数n,打印杨辉三角。 

static void Main(string[] args)
        {
            Console.WriteLine("打印杨辉三角,请输入行数");
            int n = int.Parse(Console.ReadLine());
            int[][] a = new int[n][];
            for (int i = 0; i < n; i++)
            {
                a[i] = new int[i + 1];
            }

            for (int i = 0; i < n; i++)
            {
                a[i][0] = 1;
                a[i][i] = 1;
            }

            for (int i = 2; i < n; i++)
            {
                for (int j = 1; j < i; j++)
                {
                    a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
                }
            }
            for (int i = 0; i < n; i++)
            {

                for (int k = 0; k < n - i; k++)
                {
                    Console.Write(" ");
                }
                for (int j = 0; j <= i; j++)
                {
                    Console.Write(a[i][j] + " ");
                }
                Console.WriteLine();
            }
        }

运行结果:

10. (简答题)创建类MyMath,计算圆的周长、面积和对应球的体积。

要求:

  1. 创建类MyMath类,包含常量PI;静态方法周长,静态方法面积,非静态方法体积。

  2. 输入半径,输出周长,面积和体积

    class MyMath
        {
            const double PI = 3.14;
            public static void Perimeter(double r)
            {
                Console.WriteLine("圆的周长为:" + 2 * PI * r);
            }
            public static void Area(double r)
            {
                Console.WriteLine("圆的面积为:" + r * r * PI);
            }
            public void Volume(double r)
            {
                Console.WriteLine("圆的体积为:" + 4 / 3 * PI * r * r * r);
            }
        }
        internal class Program
        {
                static void Main(string[] args)
                {
                    Console.WriteLine("输入圆的半径:");
                    double r = Convert.ToDouble(Console.ReadLine());
                    MyMath.Perimeter(r);
                    MyMath.Area(r);
                    MyMath myMath = new MyMath();
                    myMath.Volume(r);
    
                }
    
        }

    运行结果:

  3. 11. (简答题)创建表示摄氏温度的类TemperatureCelsius

     要求:输入摄氏温度,显示华氏温度。

      class TemperatureCeIsius
        {
            public static void Change(double c)
            {
                Console.WriteLine("华氏温度为:" + (32 + c * 1.8));
            }
        }
        internal class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("输入摄氏温度:");
                double c = Convert.ToDouble(Console.ReadLine());
                TemperatureCeIsius.Change(c);
            }
        }

    运行结果:

  4. 12. (简答题)

    要求:创建基类Person和派生类Teacher。基类Person中包含实例字段name和age;虚函数GetInfo()显示个人信息(姓名和年龄)。派生类Teacher包含自己的TeacherID字段,并重写getInfo()方法,显示姓名、年龄和ID。实例化Teacher的时候,初始化对象,并输出姓名、年龄和ID

     class Person
        {
            public string name = "小明";
            public int age = 12;
            public virtual void Getlnfo()
            {
                Console.WriteLine("姓名:" + name + "  年龄:" + age);
            }
        }
        class Teacher : Person
        {
            public string ID = "220122";
            public override void Getlnfo()
            {
                base.Getlnfo();
                Console.WriteLine("姓名:" + base.name + "  年龄:" + base.age + "  ID:" + ID);
            }
    
        }
        internal class Program
        {
            static void Main(string[] args)
            {
                Teacher teacher = new Teacher();
                teacher.Getlnfo();
            }
        }

     运行结果:

  5.  

    13. (简答题)

    模拟银行存取款。

    (1)创建基类接口IBankAccount (银行账户),包含存款方法PayIn()、 取款方法Withdraw()、余额属性Balance。

    (2)创建派生接口ITransferBankAccount (转账银行账户),包含银行转账方法TransferTo()。

    (3)创建派生类CurrentAccount ( 当前账户),包含私有数据成员balance (余额)、并实现存款方法PayIn( )、取款方法Withdraw()、利用get访问器返回余额balance、实现银行转账方法TransferTo()、并重载ToString( )方法返回银行当前账户中的余额。

     public interface IBankAccount    //银行账户
        {
            void PayIn(decimal amount);    //存款
            bool Withdraw(decimal amount); //取款,并返回是否成功
            decimal Balance { get; }        //余额
        }
        public interface ITransferBankAccount : IBankAccount //转账银行账户
        { bool TransferTo(IBankAccount destination, decimal amount); }
        public class CurrentAccount : ITransferBankAccount   //当前账户
        {
            private decimal balance;              //余额
            public void PayIn(decimal amount) { balance += amount; }//存款
            public bool Withdraw(decimal amount)  //取款
            {  // 账户有足够余额,则取款,并返回是否成功
                if (balance >= amount) { balance -= amount; return true; }
                Console.WriteLine("余额不足,取款失败!"); return false;
            }
            public decimal Balance { get { return balance; } }  //返回余额
            public bool TransferTo(IBankAccount destination, decimal amount)//银行转账
            {
                bool result;
                if ((result = Withdraw(amount)) == true) destination.PayIn(amount);
                return result;
            }
            public override string ToString()  //返回银行当前账户中的余额
            {
                return String.Format("Current Bank Account: Balance= {0,6:C}", balance);
            }
        }
        class TestClass
        {
            static void Main()
            {
                IBankAccount account1 = new CurrentAccount();       //账户1
                ITransferBankAccount account2 = new CurrentAccount(); //账户2
                account1.PayIn(200);              //账户1存款200元
                account2.PayIn(500);              //账户2存款500元
                account2.TransferTo(account1, 100); //账户2转账100元到账户1
                Console.WriteLine("account1's " + account1.ToString()); //显示账户1余额
                Console.WriteLine("account2's " + account2.ToString()); //显示账户2余额
                Console.ReadKey();
            }
        }

    运行结果:

  6. 14.(简答题)

    编写出一个通用的人员类(Person),该类具有姓名(Name)、性别( Sex)、年龄(Age)等域。然后对Person类的继承得到一个学生类( Student),该类能够存放学生的5门课的成绩,并能求出平均成绩,要求对该类的构造函数进行重载,至少给出三个形式。最后编程对Student类的功能进行验证。

     internal class Program
        {
            class Person
            {
                string name;
                public string Name
                {
                    get { return name; }
                    set { name = value; }
                }
               string sex;
               public string Sex
                {
                    get { return sex; }
                    set { sex = value; }
                }
                int age;
                public int Age
                {
                    get { return age; }
                    set { age = value; }
                }
            }
            class Student : Person
            {
                double[] grade = new double[5];
               public Student()
                {
                    this.Name = "小明";
                    this.Age = 18;
                    this.Sex = "男";
                }
                public Student(string name, int age) : this()
                {
                    Name = name;
                    this.Age = age;
                }
                public Student(string name)
                {
                    Name = name;
                }
                public void Print1()
                {
                    Console.WriteLine("名字:{0}  性别:{1}  年龄:{2}", Name, Sex, Age);
                }
                public void Store()
                {
                    double sum = 0;
                    Console.WriteLine("请输入5门课的成绩:");
                    for (int i = 0; i < grade.Length; i++)
                    {
                        grade[i] = Convert.ToDouble(Console.ReadLine());
                        sum += grade[i];
                    }
                    Console.WriteLine("5门课课程的平均成绩为:" + sum / 5);
                }
            }
           static void Main(string[] args)
            {
                Student stu = new Student();
                stu.Print1();
                stu.Store();
                Student stu1 = new Student("小刚");
                stu1.Print1();
                stu1.Store();
                Student stu2 = new Student("小华", 18);
                stu2.Print1();
                stu2.Store();
            }
        }

    运行结果:

  7. 15. (简答题)

    建立三个类:居民、成人、官员。居民包含身份证号、姓名、出生日期;成人继承自居民,多包含学历、职业两项数据;官员继承自成人,多包含党派、职务两项数据。要求每个类中都提供数据输入输出的功能。在main函数中编写测试程序。

     class Resident
        {
            string ID;
            string Name;
            string birthday;
            public virtual void Speak()
            {
                Console.WriteLine("请输入您的ID,名字以及出生日期:");
                ID = Console.ReadLine();
                Name = Console.ReadLine();
                birthday = Console.ReadLine();
                Console.WriteLine("您的ID为:{0} 名字为:{1}  出生日期为:{2} "
                    , ID, Name, birthday);
            }
        }
        class Adult : Resident
        {
            string degree = "本科";
            string job = "学生";
            public override void Speak()
            {
                base.Speak();
            }
            public virtual void Speak1()
            {
                Console.WriteLine("请输入您的学历,职业:");
                degree = Console.ReadLine();
                job = Console.ReadLine();
                Console.WriteLine("您的学历为:{0} 职业为:{1} "
                    , degree, job);
            }
        }
        class Officals : Adult
        {
            string party;
            string office;
            public override void Speak()
            {
                base.Speak();
            }
            public override void Speak1()
            {
                base.Speak1();
            }
            public void Speak2()
            {
                Console.WriteLine("请输入您的党派,职务:");
                party = Console.ReadLine();
                office = Console.ReadLine();
                Console.WriteLine("您的党派为:{0} 职务为:{1} "
                    , party, office);
            }
        }
        internal class Program
        {
            static void Main(string[] args)
            {
                Officals off = new Officals();
                off.Speak();
                off.Speak1();
                off.Speak2();
            }
        }

    运行结果:

  8.  

    16. (简答题)

    定义一个名为Vehicles交通工具的基类:

    (1)该类中包含私有的string 类型的成员字段brand商标和color颜色,并设置其相应的公有属性;

    (2)类中包含成员方法Run来模拟交通工且开动,该方法在控制台显示“我已经开动了”信息;

    (3)类中包含成员方法和ShowInfo来显示信息,该方法在控制台显示商标和颜色;

    (4)完成父类的无参有参构造方法,

    (5)编写Car小汽车类继承于Vehicles类,对于此类︰

    (6)增加 int型成员字段seats 座位,并设置其相应的公有属性;

    (7)增加成员方法ShowCar,在控制台显示小汽车的信息并编写构造方法。

    (8)覆盖父类的Run方法,在控制台显示“汽车开动了的信息”;

    (9)完成小汽车类的无参有参构造方法;

    (10)在main方法中测试以上各类。

     class Vehicles
        {
            private string brand;
            public string Brand
            {
                get { return brand; }
                set { brand = value; }
            }
            private string color;
            public string Color
            { get { return color; } set { color = value; } }
    
            public Vehicles()
            {
            }
            public Vehicles(string brand, string color)
            {
                Brand = brand;
                Color = color;
            }
            public virtual void Run()
            {
                Console.WriteLine("我已经开动了");
            }
            public void ShowInfo()
            {
                Console.WriteLine("商标:" + Brand + "\n颜色:" + Color);
            }
        }
        class Car : Vehicles
       {
            int seats;
            public int Seats
            { get { return seats; } set { seats = value; } }
            public Car()
            {
                this.seats = 4;
               this.Brand = "奔腾B30";
                this.Color = "白色";
            }
            public void ShowCar()
            {
                Console.WriteLine("{0}的颜色是{1},有{2}个座位", this.Brand,
                    this.Color, this.Seats);
            }
            public override void Run()
            {
                Console.WriteLine("汽车开动了的信息");
           }
        }
        internal class Program
        {
            static void Main(string[] args)
            {
               Vehicles ve = new Vehicles("迈巴赫S级", "黑色");
                ve.ShowInfo();
                Car car = new Car();
                car.ShowCar();
                car.Run();
            }
    
        }

    运行结果:

  9.  

    17. (简答题)

    程序功能:单击button,计算两个textbox中的数的和(输入数据),并将结果使用MessageBox显示出来。窗体基本布局如下,可在此基础上进一步完善:

    namespace WindowsFormsApp7
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void button3_Click(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty
                    (textBox2.Text))
                {
                    double a=double.Parse(textBox1.Text)+double.Parse(textBox2.Text);
                    MessageBox.Show(a.ToString());
    
                }
                else
                {
                    MessageBox.Show("未输入正确的值");
                }
            }
        }
    }

     运行结果:

  10.  c#知识点的分享暂时先这么多啦!!!存在疑问的地方,欢迎与博主交流呦~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c#复习题(简答题:基础+面向对象) 的相关文章

随机推荐

  • 深入理解Java虚拟机jvm-运行时数据区域

    运行时数据区域 运行时数据区域 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 运行时常量池 直接内存 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域 这些区域有各自的用途
  • MATLAB求解峰值、均值、平均幅值、方差、均方根、方根幅值、最值、峭度、斜度、裕度指标、波形指标、脉冲指标、峰值指标、峭度指标

    MATLAB求解峰值 均值 平均幅值 方差 均方根 方根幅值 最值 峭度 斜度 裕度指标 波形指标 脉冲指标 峰值指标 峭度指标 附代码前 先把代码中的符号注释一下 峰值fz 均值jz Mean error 平均幅值pf 方差fc 均方根j
  • Publish Over SSH插件的使用(jenkins远程服务器发送文件)

    Publish Over SSH ssh插件 用于连接ssh服务器 然后在该服务器上做一些操作 例如连接服务器 部署服务到该服务器上 1 在插件库中查找安装 2 Manager Jenkins gt 系统配置 gt Publish over
  • 为什么都劝运维转开发,却仍看到大批年轻人运维做的风生水起?

    当谈到运维职业发展情况时 很多人都会说运维做不长久 然后劝人做两年就赶快转研发吧 总之是全面唱衰运维 但作为一个老运维 我想说的是 运维转开发确实是一个不错的选择 但运维做不长久则完全是对运维的偏见了 很多人有运维做不长久的偏见的原因其实和
  • 计算机转本考试题,转本”计算机应用基础统一考试试题

    2009年 专转本 计算机应用基础统一考试试题 考试时间90分钟 满分100分 一 单项选择题 1 下列关于集成电路的叙述 正确的是 A 集成电路的集成度将永远符合Moore定律 B 集成电路的工作速度主要取决于组成逻辑门电路的晶体管的尺寸
  • eclipse的全局替换快捷键

    Ctrl H 一 选择需要替换的内容 二 快捷键Ctrl H 选择 File Search gt Replace 三 替换新内容
  • Pycharm 高效编码技巧--模块自动导入

    磨刀不误砍柴工 欢迎大家来到我的博客 Pycharm 拥有丰富的插件 快捷键 具有重构功能和调试技巧 当然是Python编码首选的IDE 不管你导入啥模块 你是回到页头 手动imoprt 喜欢偷懒的我 绝不放弃任何偷懒的技巧 一起来配置一下
  • redis精选面试题2022(持续更新)

    目录 一 redis是单线程还是多线程 二 Redis 为什么用单线程 三 redis是单线程为什么还这么快 1 内存数据库 2 简单的数据结构 3 单线程 4 IO多路复用 四 redis是如何使用跳表来存储的 五 redis没有设置过期
  • [HDLBits] Exams/ece241 2014 q7a

    Design a 1 12 counter with the following inputs and outputs Reset Synchronous active high reset that forces the counter
  • Linux下Nginx编译安装后的开机自启动设置

    Linux下Nginx编译安装后的开机自启动设置 一 查看当前Nginx启动状态 二 而配置Nginx相关服务文件 三 设置nginx命令 四 设置开机启动 五 测试开机启动 一 查看当前Nginx启动状态 root node1 sbin
  • Python编程从入门到实践(六)-用户输入和while循环

    1 函数input 的工作原理 函数input 让程序暂停运行 等待用户输入一些文本 获取用户输入后 Python将其存储在一个变量中 以方便以后使用 例如 下面的程序让用户输入一些文本 再将这些文本呈现给用户 parrot py mess
  • QT5.15.2+MSVC2022编译程序记录

    问题描述及简单分析 使用MinGW在windows上编译的release版exe 然后再使用windeployqt进行打包关联库 在没有msvc环境的电脑中运行还是会出现报错和某些不确定的问题 比如调用pysttx3包的时候 无法正确加载语
  • js仿苹果风格弹出框alert插件

    下载地址 js仿苹果风格弹出框alert插件 多种调用方式 dd
  • Jenkins+Docker持续集成 流程图

    简介 在互联网时代 对于每一家公司 软件开发和发布的重要性不言而喻 目前已经形成一套标准的流程 最重要的组成部分就是持续集成 CI 及持续部署 交付 CD 本文基于Jenkins Docker Git实现一套CI自动化发布流程 传统工作流程
  • 对对对,我放出来了,对对对对对对--对对对对!

    很多同学以为我懒 天天问我怎么一直不发文 是不是懒了 胖了 堕落了 被收变了 其实主要因为我没背景 只有背影 黑屋去吧你 我刚从黑屋出来了 最近发生这么多事 我还说什么 不说了 一切都是对对对对对对对 就对了 还有很多同行的号直接祭了 最近
  • js读取jpg图片扩展信息,处理二进制数据

    js 读取图片扩展信息 将图片转为ArrayBuffer var http new XMLHttpRequest http onload function if this status 200 this status 0 console l
  • ReactNative D8 Cannot fit requested classes in a single dex file

    我现在的版本 再更新RN版本之后 发现在装包的时候出现了 D8 Cannot fit requested classes in a single dex file methods 65749 gt 65536 这个问题 百度上是说Andro
  • 正弦函数的频谱图(FFT)

    从理论上讲 正弦函数的傅里叶变换是冲击函数 它的幅值为原正弦信号幅值的1 2倍 即 若x t Acos t 则其频谱幅值最大值为A 2 如左图 但是 我们用matlab求出来的频谱图却不是左边这样的 而是右图 原因是 1 理论中的正弦信号是
  • 分布式时序相似查询初探

    时序数据 即随时间变化的数据 在人们的日常生活中无处不在 过去的近十年来 随着电子监控和智能穿戴等设备的普及 更是产生了海量的时序数据 例如 经过多年的发展 火力发电行业的数字化程度已经达到了很高的水平 以一台60万千瓦的中型火电机组为例
  • c#复习题(简答题:基础+面向对象)

    1 简答题 填写程序 要求如下 输入三角形三条边 先判断是否可以构成三角形 如果可以 则求三角形的周长和面积 否则报错 提示 输入的三个数构成三角形三边的条件 每条边长均大于0 并且任意两边之和大于第三边 代码编写 static void