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,计算圆的周长、面积和对应球的体积。
要求:
-
创建类MyMath类,包含常量PI;静态方法周长,静态方法面积,非静态方法体积。
-
输入半径,输出周长,面积和体积
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); } }
运行结果:
-
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); } }
运行结果:
-
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(); } }
运行结果:
-
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(); } }
运行结果:
-
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(); } }
运行结果:
-
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(); } }
运行结果:
-
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(); } }
运行结果:
-
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("未输入正确的值"); } } } }
运行结果:
-
c#知识点的分享暂时先这么多啦!!!存在疑问的地方,欢迎与博主交流呦~