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#知识点的分享暂时先这么多啦!!!存在疑问的地方,欢迎与博主交流呦~