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();
}