飞道的博客

30分钟时长千行代码《C#程序设计基础》经典程序,C#菜鸟开发必备!

181人阅读  评论(0)

作者:刘一哥GIS(CSDN博客专家)
博客地址https://geostorm.blog.csdn.net/

刘一哥,多年研究地图学、地理信息系统、遥感、摄影测量和GPS等应用,精通ArcGIS、MapGIS、ENVI、Erdas、CASS、Pix4d、CC、PhotoScan、Inpho、EPS、Globalmapper等专业软件的应用,精通多门编程语言,擅长GIS二次开发和数据库系统开发,具有丰富的行业经验,致力于测绘、地信、国土、资源、环境、生态、空间规划、无人机等领域深度应用。


C#经典案例合集:

1. 编一个程序,定义常量Pi=3.14159265,从键盘上输入半径r,求出圆的面积。

const double Pi = 3.14159265;
double r,s;
Console.WriteLine("请输入圆的半径");
r = double.Parse(Console.ReadLine());
s = Pi * r * r;
Console.WriteLine("圆的面积是{0}",s);

2. 编一个程序,定义三个double类型的变量,分别从键盘上输入值给它们,然后用Console.WriteLine方法把它们输出成一列,小数点对齐,保留3位小数。

double x, y, z;
Console.WriteLine("请输入一个数:");
x = double.Parse(Console.ReadLine());
Console.WriteLine("请输入一个数:");
y = double.Parse(Console.ReadLine());
Console.WriteLine("请输入一个数:");
z = double.Parse(Console.ReadLine());
Console.WriteLine("{0,10:f3}", x);
Console.WriteLine("{0,10:f3}", y);
Console.WriteLine("{0,10:f3}", z);
//Console.WriteLine("{0:f3}", x);
//Console.WriteLine("{0:f3}", y);
//Console.WriteLine("{0:f3}", z);

3. 编一个程序,从键盘上输入三个数,用三元运算符(? :)把最大数找出来。

float x, y, z, temp;
Console.Write("请输入一个实数:");
x = float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:");
y = float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:");
z = float.Parse(Console.ReadLine());
temp = x >= y ? x : y;
temp = temp >= z ? temp : z;
Console.WriteLine("最大数为:{0}", temp);

4. 编一个程序,从键盘上输入三个数,用三元运算符(? :)把最小数找出来。

float x, y, z, temp;
Console.Write("请输入一个实数:");
x = float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:");
y = float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:");
z = float.Parse(Console.ReadLine());
temp = x <= y ? x : y;
temp = temp <= z ? temp : z;
Console.WriteLine("最大数为:{0}", temp);

5.编一个程序,输入一个字符,如果是大写字母,就转换成小写字母,否则不转换。

char ch;
Console.WriteLine("请输入一个字符");
ch = char.Parse(Console.ReadLine());
if (ch >= 'A' && ch <= 'Z')
{
   
	ch = (char)(ch + 32);
}
Console.WriteLine(ch);

6.输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数字或者其它字符)

char ch;
Console.WriteLine("请输入一个字符");
ch = char.Parse(Console.ReadLine());
if (ch >= 'A' && ch <= 'Z')
	Console.WriteLine("大写字母");
else if (ch >= 'a' && ch <= 'z')
	Console.WriteLine("小写字母");
else if (ch >= '0' && ch <= '9')
	Console.WriteLine("数字");
else
	Console.WriteLine("其他字母");

7.编一个程序,设圆的半径r=1.2,高h=1.5,定义圆周率常量Pi=3.1415,求出圆柱的体积。

const double Pi = 3.1415;
double r=1.2,h=1.5;
double v;
v = Pi * r * r * h;
Console.WriteLine("圆柱体的体积是{0}",v);

8. (20)编一个程序,设园半径r=1.5,园柱高h=3.6,圆周率3.1415定义为常量,求出圆周长、圆面积、圆柱体积。然后用Console.WriteLine方法输出计算结果,输出时要求有文字说明,取小数点后2位数字。例如,圆周长=×××.××。

const double Pi = 3.1415;
double r = 3, h = 5;
double c, s, v;
c = 2 * Pi * r;
s = Pi * r * r;
v = Pi * r * r * h;
Console.WriteLine("圆的周长为{0:f2}",c);
Console.WriteLine("圆的面积为{0:f2}", s);
Console.WriteLine("圆的体积为{0:f2}", v);

9.编一个程序,输入一个字符,如果输入的字符是大写字母,则转换为小写字母;如果输入的字符是小写字母,则转换为大写字母,否则不转换。

char ch,c;
Console.WriteLine("请输入一个字符");
ch = char.Parse(Console.ReadLine());
if (ch >= 'A' && ch <= 'Z')
{
   
	c = (char)(ch + 32);
	Console.WriteLine("字符{0}为大写字母,转换为小写字母为{1}", ch, c);
}
else if (ch >= 'a' && ch <= 'z')
{
   
	c = (char)(ch - 32);
	Console.WriteLine("字符{0}为小写字母,转换为大写字母为{1}", ch, c);
}
else
	Console.WriteLine("{0}既不是大写字母也不是小写字母",ch);

10.编一个程序,定义结构类型(有学号、姓名、性别和程序设计成绩四个字段),声明该结构类型变量,用赋值语句对该变量赋值以后再输出。

struct student
{
   
	public int no;
	public string name;
	public string sex;
	public double score;
}
class Program
{
   
	static void Main(string[] args)
	{
   
		student stu;
		stu.no = 10003;
		stu.name = "小小";
		stu.sex = "女";
		stu.score = 89.5;
		Console.WriteLine("学生的学号是{0},名字叫{1},性别是{2},程序设计的成绩是{3}",stu.no,stu.name,stu.sex,stu.score);
	}
}
	

11. 编一个程序,定义一个实数变量,从键盘上输入一个值,如果这个值在闭区间[0,100]里,则加上1000,否则不加。最后输出结果。

float f,g;
Console.WriteLine("请输入一个实数变量");
f = float.Parse(Console.ReadLine());
if (f >= 0 && f <= 100)
{
   
	g = f + 1000;
	Console.WriteLine("{0}在0-100之间,最后结果为{1}", f, g);
}
else
	Console.WriteLine("{0}不在0-100之间",f);

12. 编一个程序,输入一个整数,使用if else语句,如果该数大于0,则加上100,否则加上500,输出结果。

int i,j;
Console.WriteLine("请输入一个整数");
i = int.Parse(Console.ReadLine());
if (i > 0)
{
   
	j = i + 100;
	Console.WriteLine("{0}>0,最后结果是{1}", i, j);
}
else
{
   
	j = i + 500;
	Console.WriteLine("{0}<0,最后结果是{1}",i,j);
}

13. 编一个程序,用if else语句,输入一个整数,如果该数大于0,则输出"这个数大于零。",如果该数等于0,则输出"这个数等于零。",否则输出"这个数小于零。"。

int i;
Console.WriteLine("请输入一个整数");
i = int.Parse(Console.ReadLine());
if (i > 0)
{
   
	Console.WriteLine("这个数大于0");
}
else if(i==0)
{
   
	Console.WriteLine("这个数等于0");
}
else
{
   
	Console.WriteLine("这个数小于0"); 
}

14.编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。例如,实数12.56经过四舍五入运算,得到结果13;而12.46经过四舍五入运算,得到结果12。

double d;
int i,e;
Console.WriteLine("请输入一个正数");
d = double.Parse(Console.ReadLine());
i=(int)d;
if ((d - i) >= 0.5)
	e = i + 1;
else
	e = i;
Console.WriteLine("{0}四舍五入的结果为{1}", d, e);

15. 编写一个程序,定义三个float类型的变量,分别从键盘上输入值给它们, 然后用if else选择语句找出它们中的最小数,最后输出结果。

float x, y, z,min=0;
Console.WriteLine("请输入三个float类型的值");
x = float.Parse(Console.ReadLine());
y = float.Parse(Console.ReadLine());
z = float.Parse(Console.ReadLine());
if (x < y && x < z)
	min = x;
else if (y < x && y < z)
	min = y;
else
	min = z;
Console.WriteLine("这三个数中的最小值为{0}",min);

16. 编一个程序,输入三个实数,要求使用if else语句把它们的中间数找出来,可以使用逻辑运算符。

float x, y, z, second = 0;
Console.WriteLine("请输入三个float类型的值");
x = float.Parse(Console.ReadLine());
y = float.Parse(Console.ReadLine());
z = float.Parse(Console.ReadLine());
if ((x>y&&x<z)||(x<y&&x>z))
	second = x;
else if ((y>x&&y<z)||(y<x&&y>z))
	second = y;
else
	second = z;
Console.WriteLine("这三个数中的中间数为{0}", second);

17.编一个程序,首先输入一个成绩(0到100的整数),用if else语句然后判断该成绩是优、良、中、及格还是不及格。

double score;
Console.WriteLine("请输入一个成绩");
score = double.Parse(Console.ReadLine());
if (score >= 90)
	Console.WriteLine("优");
else if (score >= 80)
	Console.WriteLine("良");
else if (score >= 70)
	Console.WriteLine("中");
else if (score >= 60)
	Console.WriteLine("及格");
else
	Console.WriteLine("不及格");

18.编一个程序,输入0—100之间的一个学生成绩分数,用switch语句输出成绩等第(成绩优秀(90-100),成绩良好(80-89),成绩及格(60-79)和成绩不及格(59以下))。

int score;
Console.WriteLine("请输入学生成绩");
score = int.Parse(Console.ReadLine());
score = score / 10;
switch (score)
{
   
	case 10:
		Console.WriteLine("成绩优秀");
		break;
	case 9:
		Console.WriteLine("成绩优秀");
		break;
	case 8:
		Console.WriteLine("成绩良好");
		break;
	case 7:
		Console.WriteLine("成绩及格");
		break;
	case 6:
		Console.WriteLine("成绩及格");
		break;
	default:
		Console.WriteLine("成绩不及格");
		break;
}

19.编一个程序,利用do-while循环语句,从键盘上输入10个整数,求出它们的和。

int i=1,n,sum=0;

do
{
   
	Console.WriteLine("请输入一个整数");
	n = int.Parse(Console.ReadLine());
	sum = sum + n;
	i++;
}while(i<=10);

Console.WriteLine("这十个整数的和为{0}",sum);

20. 编一个程序,用while循环语句来计算1+1/2+2/3+3/4+…+99/100之和。

double i = 1,s=1;
while(i<=99)
{
   
	s = s + i / (i + 1);
	i++;
}
Console.WriteLine("和为{0}",s);

21. 编一个程序,用do-while循环语句来计算PI=4(1-1/3+1/5+…+1/n),要求当1/n<0.000001时停止计算。*

double pi,s=0,x;
double n=1;
do
{
   
	x = Math.Pow(-1,n + 1) / (2 * n - 1);
	s = s + x;
	n++;
} while (1 / n >= 0.000001);

pi = s * 4;
Console.WriteLine("pi的值为:{0}",pi);

22.编一个程序,从键盘上输入二个实数,使用Math类中Max()和Min()方法,求出它们中的最大数和最小数。

double d1, d2,max,min;
Console.WriteLine("请输入两个实数");
d1 = double.Parse(Console.ReadLine());
d2 = double.Parse(Console.ReadLine());
max=Math.Max(d1,d2);
min = Math.Min(d1,d2);
Console.WriteLine("最大值为{0},最小值为{1}",max,min);

23.编一个程序,利用while循环语句和Math类中的Pow()方法,求出1到10的各个数的平方之和。

double i = 1,s=0;
while (i <= 10)
{
   
	s = s + Math.Pow(i, 2);
	i++;
}
Console.WriteLine("和为{0}",s);

24. 编一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如, 153=111+555+333,所以153是“水仙花数”。

int a, i, j, k;
for (a = 100; a <= 999; a++)
{
   
	i = a % 10;
	k = a / 100;
	j = a % 100 / 10;
	if (a == Math.Pow(i, 3) + Math.Pow(j, 3) + Math.Pow(k, 3))
	Console.WriteLine("{0}是水仙花数",a);
}

25.编写一个程序,用while语句,求出1+(1+2)+(1+2+3)+…+(1+2+3+…+10)之和。

int i = 1, s = 0,j=1, s1 = 0;
while (j <=10)
{
   
	while (i <= j)
	{
   
		s = s + i;
		i++;
	}
	s1=s1+s;
	j++;
}
Console.WriteLine("{0}", s1);

26.编一个程序,输入二个正整数,求出它们的最大公约数。

int i, j,k;
Console.WriteLine("请输入两个正整数");
i = int.Parse(Console.ReadLine());
j = int.Parse(Console.ReadLine());
k = i < j ? i : j;
while (!(i % k == 0 && j % k == 0))
	k--;
Console.WriteLine("最大公约数为{0}",k);

27.编一个程序,用while循环语句,从键盘输入10个数,要求找出最大数和次大数。

int i=1,max=1,max1=1;
int s;
Console.WriteLine("请输入10个数:");
while (i<=10)
{
   
	s = int.Parse(Console.ReadLine());
	if (s > max)
	{
   
		max1 = max;
		max = s;
	}
	else if (s > max1)
	{
   
		s = max1;
	}
	i++;
}
Console.WriteLine("最大值为{0},次大值为{1}",max,max1);

2. 编一个程序,要求使用while语句,输入用户名和密码,实现用户登录程序的功能,至多允许输入三次,超过三次不允许登录。

const string UserName = "admin";
const string PassWord = "123456";
string username, password;
int i=1;
while(i<=3)
{
   
	Console.WriteLine("请输入用户名");
	username = Console.ReadLine();
	Console.WriteLine("请输入密码");
	password = Console.ReadLine();
	if (username == UserName && password == PassWord)
	break;
	else
	Console.WriteLine("你输入的用户名或者密码错误,请重新输入用户名和密码");
	i++;
}
if (i <= 3)
{
   
	Console.WriteLine("正在登录系统");
}
else
	Console.WriteLine("不能登录系统");

29. 有关系式11+22+33+…+kk<2000,编一个程序,求出满足此关系式的k的最大值。

int k = 1,s=0;
while (s < 2000)
{
   
	s = s + k * k;
	k++;
}
Console.WriteLine("k的值为{0}",k-2);

30. 编写一个程序,要求用while循环语句,打印1到100的正整数,每行打印5个数,每列右对齐。

int i = 1;
while (i <= 100)
{
   
	Console.Write("{0,10:d1}",i);
	if (i % 5 == 0)
	Console.WriteLine();
	i++;
}

31.Fibonacci序列的前二项是0和1,且每一个后继项是前二项的和。编一个程序,输出项值不大于100的Fibonacci序列。

int f1 = 0;
int f2 = 1;
int f3;
while(f1<100)
{
   
	f3=f1+f2;
	Console.Write("{0},",f1);
	f1=f2;
	f2=f3;
}

32.(40)编一个程序,输入a,b,c的值,求出一元二次方程axx+bx+c=0的二个实数根。计算二个实数根必须使用Math类中的Sqrt()方法,计算指定数的开方。计算二个实数根,可以用公式(-b+Math.Sqrt(bb-4ac))/(2a)和(-b-Math.Sqrt(bb-4ac))/(2*a)

int a, b, c;
double x1, x2;
Console.WriteLine("请输入a,b,c的值");
a = int.Parse(Console.ReadLine());
b = int.Parse(Console.ReadLine());
c = int.Parse(Console.ReadLine());
if (b * b - 4 * a * c >= 0)
{
   
	x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a);
	x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a);
	Console.WriteLine("这个方程的两个根是{0},{1}", x1, x2);
}
else
	Console.WriteLine("这个方程没有解");

33.编一个程序,利用while循环语句,找出2到100之间的素数。

int i = 2, j;
bool b;
Console.WriteLine("2到100中的素数为:");
while (i <= 100)
{
   
	b = true;
	j = 2;
	while (j <= i - 1)
	{
   
		if (i % j == 0)
		{
   
		b = false;
		break;
		}
		j++;
	}
	if (b==true) Console.Write("{0}  ", i);
	i++;
}
Console.WriteLine();

34.(20)编一个程序,用while循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个

int num=2;
while(num<10000)
{
   
	if (num % 2 == 1 && num % 3 == 1 && num % 4 == 1)
	{
   
		Console.Write("这篮鸡蛋至少有{0}个", num);
		break;
	}
	num++;
}

35.编一个程序,用for循环语句求出1到100之间的奇数之和。

int i,s=0;
for (i = 1; i <= 100; i = i + 2)
{
   
	s = s + i;
}
Console.WriteLine("1-100之间所有奇数的和为{0}",s);

36. 编一个程序,利用二重for循环语句,打印出九九乘法口诀表。

int s;
for (int i = 1; i <= 9; i++)
{
   
	for(int j=1;j<=i;j++)
	{
   
		s=i*j;
		Console.Write("{0}*{1}={2} ",j,i,s);
	}
	Console.WriteLine();
}

37. 编一个程序,定义一个有10个元素的数组,使用for循环语句,从键盘上输入10名同学的数学成绩,分别求出最高分和最低分,并且求出10名同学的数学平均成绩。

double [] math=new double [10];
Console.WriteLine("请输入10名学生的数学成绩");
for (int i = 0; i < math.Length; i++)
{
   
	math[i] = double.Parse(Console.ReadLine());
}
double max=math[0], min=math[0],ave,sum=0;
for (int j = 0; j < math.Length; j++)
{
   
	if (max < math[j])
		max = math[j];
	if (min > math[j])
		min = math[j];
	sum = sum + math[j];
}
ave = sum / math.Length;
Console.WriteLine("最高分为{0},最低分为{1},平均分为{2}",max,min,ave);

38.编一个程序,利用for循环语句,求出1!+2!+3!+…+10!的和。

 int s = 0, jc = 1;
for (int j = 1; j <= 10; j++)
{
   
	jc = jc * j;
	s = s + jc;
}
Console.WriteLine("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的和为{0}", s);

39.编一个程序,用for循环语句求出1到100之间的奇数之和,以及偶数之和。

long i, j, m, s = 0;
for (i = 1; i <= 10; i++)
{
   
	m = 1;
	for (j = 1; j <= i; j++) m = m * j;
		s = s + m;
}
Console.WriteLine("1!+2!+3!+...+10!=" + s);

40.编一个程序,用for循环语句,从键盘输入10个实数,分别求出它们中的正数之和,以及负数之和

int i;
double sum1 = 0, sum2 = 0, x;
for (i = 1; i <= 10; i++)
{
   
	Console.Write("请输入一个实数:");
	x = double.Parse(Console.ReadLine());
	if (x > 0)
		sum1 += x;
	else
		sum2 += x;
}
Console.WriteLine("正数之和:{0},负数之和:{1}", sum1, sum2);

41. 编一个程序,把一张1元的钞票换成5分,2分和1分的硬币,要求每种至少一枚,并且所换硬币数不超过30枚。请问,有哪几种换法?

int i, j, k;
Console.WriteLine("一分:\t二分:\t五分:");
for (i = 1; i <= 100; i++)
	for (j = 1; j <= 50; j++)
		for (k = 1; k <= 20; k++)
			if (i + 2 * j + 5 * k == 100 && i + j + k <= 30) 				
				Console.WriteLine("{0}枚\t{1}枚\t{2}枚", i, j, k);

42. 编一个程序,把一张面值100元的钞票换成5元,1元和5角面值的钞票,要求100元换以上的零钱100张,且要求每种不少于一张。请问,有哪几种换法?

int i, j, k;//设5元有i张,1元有j张,5角有k张
Console.WriteLine("5元:\t1元:\t5角:");
for (i = 1; i <= 20; i++)
for (j = 1; j <= 100; j++)
for (k = 1; k <= 100; k++)
if (5 * i + j + (0.5 * k) == 100 && i + j + k == 100) Console.WriteLine("{0}\t{1}\t{2}", i, j, k);

43. 编一个程序,解决百钱买百鸡问题。某人有100元钱,要买100只鸡。公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只。问可买到公鸡,母鸡,小鸡各为多少只。问题分析:设公鸡x只,母鸡y只,小鸡z只,可以列出两个方程:
x+y+z=100
5x+3y+z/3=100
我们采用“穷举法”来解决此问题。

double z;
for( double x=1;x<=20;x++)
for (double y = 1; y <= 33; y++)
	{
   
		z = 100 - x - y;
		if (5 * x + 3 * y + z / 3 == 100)
		{
   
			Console.WriteLine("公鸡{0}只,母鸡{1}只,小鸡{2}只",x,y,z);
		}
}

44.编一个程序,定义数组,用for循环语句,顺序输入10个实数,然后逆序输出这10个数。

int i;
int[] a = new int[10];
for (i = 0; i < 10; i++)
{
   
Console.Write("请输入一个数:");
a[i] = int.Parse(Console.ReadLine());
}
Console.WriteLine();
for (i = 9; i >= 0; i--)
{
   
Console.Write("{0}  ", a[i]);
}
Console.WriteLine();

45.编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。

int i, j, temp;
const int n = 10;
int[] SortArray = new int[n];
for (i = 0; i < n; i++)
{
   
Console.Write("\n请输入一个数:");
SortArray[i] = int.Parse(Console.ReadLine());
}
Console.Write("\n等待排序的数据序列为:");
for (i = 0; i < n; i++)
{
   
Console.Write("{0} ", SortArray[i]);
}
for (i = n - 1; i >= 0; i--)
{
   
for (j = 0; j <= i - 1; j++)
{
   
if (SortArray[j] > SortArray[j + 1])
{
   
temp = SortArray[j];
SortArray[j] = SortArray[j + 1];
SortArray[j + 1] = temp;
}
}
}
Console.Write("\n已经排序后的数据序列为:");
for (i = 0; i < n; i++)
{
   
Console.Write("{0} ", SortArray[i]);
}
Console.WriteLine();

46.编一个程序,定义一个有10个元素的一维数组a,在键盘上输入时没有大小次序,但是存入数组时要按由小到大的顺序存放。例如,输入第1个数1时,存入a[0];假如第2个数是5,则数存入a[1];假如第3个数是4,那么把前面输入的5向后面移动到a[2],把4插入到a[1]的位置上,这样使得每输入一个数,保持从小到大的顺序排列。

int i, j, temp, n = 10;
int[] a = new int[n];
Console.WriteLine("请输入{0}个整数。", n);
for (i = 0; i < n; i++)
{
   
Console.Write("请输入一个整数:");
a[i] = int.Parse(Console.ReadLine());
for (j = i; j >= 1; j--)
{
   
if (a[j - 1] > a[j])
{
   
temp = a[j - 1];
a[j - 1] = a[j];
a[j] = temp;
}
else
break;
}
}
Console.Write("\n依次输出数组中的值:");
for (i = 0; i < n; i++)
{
   
Console.Write("{0}  ", a[i]);
}
Console.WriteLine();

47.编一个程序,定义一个数组,用for语句输入10个实数存入这个数组,然后按逆序重新存放后再输出。

double[] a = new double[10];
double temp;
for (int i = 0; i < 10; i++)
{
   
Console.Write("请输入一个实数:");
a[i] = double.Parse(Console.ReadLine());
}
for (int i = 0; i < 10 / 2; i++)
{
   
temp = a[i];
a[i] = a[9 - i];
a[9 - i] = temp;
}
for (int i = 0; i < 10; i++) Console.Write("  {0}", a[i]);
Console.WriteLine();

48.编一个程序,从键盘输入一个字符串,用foreach循环语句,统计其中大写字母的个数和小写字母的个数。

string s;
int n1=0,n2=0;
Console.WriteLine("请输入一个字符串");
s = Console.ReadLine();
foreach (char c in s)
{
   
if (c >= 'A' && c <= 'Z')
n1++;
else if (c >= 'a' && c <= 'z')
n2++;
else
continue;
}
Console.WriteLine("大写字母有{0}个,小写字母有{1}个",n1,n2);

49. 编一个程序,定义一个字符数组和一个字符串变量,给这个字符串变量输入一个字符串,然后用foreach语句把这个字符串拷贝到字符数组里,最后输出字符数组。

string s;
Console.WriteLine("请输入一个字符串");
s = Console.ReadLine();
char[] ch=new char [s.Length];
int n=0;
foreach (char c in s)
{
   
ch[n] = c;
n++;
}
foreach (char c in ch)
{
   
Console.WriteLine(c);
}

50.输入一个字符串,将其中小写字母改成大写字母,把大写字母改成小写字母,其余字符不变,输出该字符串。

string s;

Console.WriteLine("请输入一个字符串:");
s = Console.ReadLine();

foreach (char ch in s)
if ('a' <= ch && ch <= 'z') Console.Write((char)((int)ch - 32));
else if ('A' <= ch && ch <= 'Z') Console.Write((char)((int)ch + 32));
else Console.Write(ch);
Console.WriteLine();

51.编一个程序,输入一个字符串,用ToCharArray()方法把字符串中的内容拷贝到字符数组中,然后用foreach输出该字符数组。

string s;
Console.WriteLine("请输入一个字符串");
s = Console.ReadLine();
char[] ch = new char[s.Length];
ch = s.ToCharArray();
foreach (char c in ch)
{
   
Console.WriteLine(c);
}

52.(20)编一个程序,定义一个字符串变量,输入字符串,然后再输入一个字符,在字符串中查找该字符出现的次数。

string a;
char b;
int d = 0;
Console.WriteLine("请输入一个字符串");
a = Console.ReadLine();
Console.WriteLine("请输入一个字符");
b = char.Parse(Console.ReadLine());
for (int c = 0; c <= a.Length - 1; c++)
{
   
if (a[c] == b)
d++;
}
Console.WriteLine("字符{0}在字符串{1}中出现了{2}次", b, a, d);

53.编一个程序,定义一个字符串变量,输入字符串,判断有没有连续重复字符出现,统计重复字符出现次数。例如,aaabccdfff,其中a重复出现二次,c重复出现一次,f重复出现二次,共计字符重复五次。

string i;
int a = 0;
Console.WriteLine("输入一个字符串");
i = Console.ReadLine();
for (int b = 1; b <= i.Length - 1; b++)
{
   
if (i[b] == i[b - 1])
a++;
}
Console.WriteLine("{0}", a);

54.编一个程序,利用for语句,打印一个如下形式的一个直角三角形,顶点在屏幕中线上,行数从键盘输入。
*
**
***
****

int i, j, n = 0, m = 40;
while (n <= 0)
{
   
Console.WriteLine("请输入一个正整数:");
n = int.Parse(Console.ReadLine());
}
Console.WriteLine('\n');
for (i = 1; i <= n; i++)
{
   
Console.Write('\n');
for (j = 1; j <= m; j++) Console.Write(' ');
for (j = 1; j <= i; j++) Console.Write('*');
}
Console.WriteLine();

55. 编一个程序,利用for语句,打印一个如下形式的一个等腰三角形,顶点在屏幕中线上,行数从键盘输入。
*
***
*****
*******

int i;
Console.WriteLine("从键盘上输入一个数");
i = int.Parse(Console.ReadLine());
for (int b = 1; b <= i ; b++)
{
   
for (int a = 1; a <= i - b; a++)
{
   
Console.Write(" ");
}
for (int c = 1; c <= 2 * b - 1; c++)
{
   
Console.Write ("*");

}
Console.WriteLine();
}

56.定义一个一维数组,输入任意6个整数,假定为7,4,8,9,1,5。编一个程序,利用for语句,输出如下方阵的内容:
7 4 8 9 1 5
5 7 4 8 9 1
1 5 7 4 8 9
9 1 5 7 4 8
8 9 1 5 7 4
4 8 9 1 5 7

int[] a ={
    7, 4, 8, 9, 1, 5 };
int temp;
for (int i = 0; i < 6; i++)
{
   
Console.Write("{0}  ",a[i]);
}
for(int i=0;i<5;i++)
{
   
Console.WriteLine();
temp = a[5];
for (int j = 5; j >0; j--)
{
   
a[j] = a[j - 1];
}
a[0] = temp;
for (int k = 0; k < 6; k++)
Console.Write("{0}  ",a[k]);
}

57.(20)编一个程序,定义一个n行n列的二维整数数组,赋初值,然后求出对角线上的元素之和。

int n = 5;
int s=0;
int[,] arr ={
    {
    1, 2, 3, 4, 5 }, {
    11, 12, 13, 14, 15 }, {
    21, 22, 23, 24, 25 }, {
    31, 32, 33, 34, 35 }, {
    41, 42, 43, 44, 45 } };
int i, j;
for (i = 0; i < arr.GetLength(0); i++)
{
   
for (j = 0; j < arr.GetLength(1); j++)
{
   
if (i == j || i + j == n + 1)
s = s + arr[i, j];
}
}
Console.WriteLine("对角线上的元素之和{0}",s);

58.编一个程序,输入一个正整数,判断它是否为素数。如不是,则输出其所有正约数。

Console.WriteLine("请输入一个正整数:");
uint i, n, flag;
bool f = true;
n = uint.Parse(Console.ReadLine());
//uint.TryParse(Console.ReadLine(),out n);
for (i = 2; i < n; i++)
{
   
if (n % i == 0) {
    f = false; break; }
}
if (f) Console.WriteLine("{0}是一个素数。", n);
else
{
   
Console.Write("{0}不是一个素数。\n{1}=", n, n);
i = 2;
flag = 0;
while (i <= n)
{
   
while (n % i == 0)
{
   
n = n / i;
if (flag != 0) Console.Write('*');
flag = 1;
Console.Write("{0}", i);
}
i++;
}
}

59.(40)编一个程序,输入一个代表身份证号码的字符串,判断字符串长度(18)是否正确,还要判断输入的每个字符是否为数字。否则要求重新输入。

string a;
bool q = true;
Console.WriteLine("请输入你的身份证;");
a = Console.ReadLine();
for (int b=0; b <= a.Length - 1; b++)
{
   
if (a[b] >= '0' && a[b] <= '9')
{
   
continue;
}
else
q=false;
}
if (a.Length == 18)
{
   
if(q==true)
Console.WriteLine("输入正确");
else if(q==false)
Console.WriteLine("输入不合法,请重新输入");
}
else
Console.WriteLine("输入不合法,请重新输入");

60.编一个程序,输入一个正整数n,把它转换为二进制数,并输出。提示:应该利用数组。

int[] a = new int[80];
int i, j, n = 0;
while (n <= 0)
{
   
Console.WriteLine("请输入一个正整数:");
n = int.Parse(Console.ReadLine());
}
i = 0;
Console.Write("\n正整数{0}转换为二进制数:", n);
while (n > 0)
{
   
a[++i] = n % 2;
n = n / 2;
}
for (j = i; j > 0; j--) Console.Write(a[j]);
Console.WriteLine();

61. 所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如:64,55,321都认为是降序数,但是623不是降序数。一位数字被认为是降序数。编一个程序,输入一个数,判定它是否为降序数。该程序是循环执行的,当输入的数为0时,则退出程序运行。

int i, j, m, n;
bool pos;
while (true)
{
   
n = -1;
while (n <= 0)
{
   
if (n == 0) return;
Console.WriteLine("请输入一个正整数或者0:");
n = int.Parse(Console.ReadLine());
}
if (n < 10) pos = true;
else
{
   
m = n;
i = 0;
pos = true;
while (m > 0)
{
   
j = m % 10;
m = m / 10;
if (i > j)
{
   
pos = false;
break;
}
i = j;
}
}
if (pos) Console.WriteLine("{0}是降序数。", n);
else Console.WriteLine("{0}不是降序数。", n);
}

62.(40)所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如:646,1551,891232198都认为是回文数。编一个程序,输入一个正整数,判定它是否为回文数。当输入的数为0时,则退出程序,否则继续循环执行程序。

int s, k;
int i, j;
int[] a = new int[20];
bool pos;
while (true)
{
   
s = -1;
while (s < 0)
{
   
Console.Write("请输入一个正整数或者只按一个数字0:");
s = int.Parse(Console.ReadLine());
if (s == 0) return;
}
k = s;
pos = true;
i = -1;
while (k > 0)
{
   
i++;
a[i] = k % 10;
k = k / 10;
}
//注意:数组a的长度为(i+1)
for (j = 0; j < (i + 1) / 2; j++)
if (a[j] != a[i - j])
{
   
pos = false;
break;
}
if (pos) Console.WriteLine("{0}是回文数。", s);
else Console.WriteLine("{0}不是回文数。", s);
}

63.编一个程序,定义一个n行n列的二维数组,例如,n=4,输入该数组的全部数据。可以在定义数组时赋于常量值。求二维数组中这样元素的位置:它在行上是最小,在列上也是最小。(注意:它未必是整个数组的最小元素。)

int n = 4;
int[,] a ={
    {
    25, 12, 22, 14 }, {
    15, 16, 17, 18 }, {
    19, 20, 21, 13 }, {
    23, 24, 11, 26 } };
int i, j, k, temp, min;
Console.Write("\n二维数组:");
for (i = 0; i < n; i++)
{
   
Console.Write("\n\t");
for (j = 0; j < n; j++) Console.Write("{0}  ", a[i, j]);
}
Console.WriteLine("\n\n 行  列  最小值");
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
   
temp = a[i, j];
min = temp;
/*
for(k=0;k<n;k++)
{
if(a[i,k]<min)min=a[i,k];
if(a[k,j]<min)min=a[k,j];
}
*/
for (k = 0; k < n; k++)
if (a[i, k] < min) min = a[i, k];//在第i行查找最小值
for (k = 0; k < n; k++)
if (a[k, j] < min) min = a[k, j];//在第j列查找最小值

if (temp == min) Console.WriteLine("i={0},j={1}    {2}", i, j, temp);
}

64.给定一个m×n的数值矩阵A,如果矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个方法计算出m*n的矩阵A的所有马鞍点。

int i, j, k, m = 4, n = 5, max, min;
int[,] array = new int[,] {
   
		{
    30, 20, 25, 40, 45 },
		{
    80, 19, 70, 90, 11 }, 
		{
    24, 14, 42, 91, 96 },
		{
    32, 17, 82, 72, 38 }
    };
Console.Write("\n{0}行{1}列的数值矩阵为:");
for (i = 0; i < m; i++)
{
   
	Console.WriteLine();
	for (j = 0; j < n; j++)
	{
   
		Console.Write("{0} ", array[i, j]);
	}
}
for (i = 0; i < m; i++)
	for (j = 0; j < n; j++)
	{
   
		max = array[i, j];
		min = array[i, j];
		for (k = 0; k < n; k++) if (array[i, k] < min) min = array[i, k];
		for (k = 0; k < m; k++) if (array[k, j] > max) max = array[k, j];
		if (array[i, j] == max && array[i, j] == min)
		{
   
			Console.WriteLine("\n马鞍点是第{0}行,第{1}列的{2}", i, j, array[i, j]);
		}
	}
}

65. 编一个程序,输入一个整数,判定它为几位数。例如,99是2位数,-100是3位数。

int m, n, k = 0;
Console.Write("请输入一个整数:");
m = int.Parse(Console.ReadLine());
n = Math.Abs(m);
while (n != 0)
{
   
n = n / 10;
k++;
}
Console.WriteLine("{0}是{1}位数。", m, k);

66.编一个程序,定义一个字符串数组,输入若干国家名称(所有名称全用大写或者全用小写),设计一个算法按字典顺序将这些国家名称进行排序。

int i, j, n = 10;
string[] SortArray = new string[n];
string temp;
Console.Write("\n请输入{0}个字符串:", n);
for (i = 0; i < n; i++)
{
   
	SortArray[i] = Console.ReadLine();
}

for (i = 1; i < n; i++)
{
   
	for (j = 0; j < n - i; j++)
	{
   
		if (String.Compare(SortArray[j], SortArray[j + 1]) > 0)
		{
   
			temp = SortArray[j];
			SortArray[j] = SortArray[j + 1];
			SortArray[j + 1] = temp;
		}
	}
}
Console.WriteLine("\n已经排序后的国家名称为:");
for (i = 0; i < n; i++)
{
   
Console.WriteLine(SortArray[i]);
}

67. 编一个程序,定义类student和它的成员(学号,姓名,年龄和c_sharp程序设计成绩),用类student生成对象s,分别对对象s的成员赋值,然后输出对象s。

class student
{
   
	public string 学号;
	public string 姓名;
	public int 年龄;
	public int c_sharp程序设计成绩;
}
static void Main(string[] args)
{
   
	student s;
	s = new student();
	s.学号 = "09061234";
	s.姓名 = "刘云飞";
	s.年龄 = 21;
	s.c_sharp程序设计成绩 = 95;
	Console.WriteLine("学生学号:{0}", s.学号);
	Console.WriteLine("学生姓名:{0}", s.姓名);
	Console.WriteLine("学生年龄:{0}", s.年龄);
	Console.WriteLine("c_sharp程序设计成绩:{0}", s.c_sharp程序设计成绩);
}

68. 编一个程序,定义结构(有姓名,年龄,手机号码三个字段),再定义一个一维数组,把结构作为数组元素类型,存入数据,然后依次输出。

struct Contact
{
   
	public string name;
	public int age;
	public string telephone;
}
class Program
{
   
	static void Main(string[] args)
	{
   
		Contact[] c = new Contact[3];
		//c[0]=new Contact();//此三个语句,对于结构类型可以不用
		//c[1]=new Contact();
		//c[2]=new Contact();
		c[0].name="刘龙";
		c[0].age=54;
		c[0].telephone="13970861234";
		c[1].name="王鸣";
		c[1].age=42;
		c[1].telephone="13813254321";
		c[2].name="张星";
		c[2].age=39;
		c[2].telephone="13751461818";
		Console.Write("姓名:{0},",c[0].name);
		Console.Write("年龄:{0},",c[0].age);
		Console.WriteLine("手机号码:{0}",c[0].telephone);
		Console.Write("姓名:{0},",c[1].name);
		Console.Write("年龄:{0},",c[1].age);
		Console.WriteLine("手机号码:{0}",c[1].telephone);
		Console.Write("姓名:{0},",c[2].name);
		Console.Write("年龄:{0},",c[2].age);
		Console.WriteLine("手机号码:{0}",c[2].telephone);
	}
}

69. 编一个程序,定义类(有姓名,年龄,手机号码三个字段),再定义一个一维数组,使数组元素为类,存入数据,然后依次输出,使用for循环语句进行输入输出操作。

class Contact
{
   
	public string name;
	public int age;
	public string telephone;
}
class Program
{
   
	static void Main(string[] args)
	{
   
		int i, n = 3;
		Contact[] c = new Contact[n];
		for (i = 0; i < n; i++) c[i] = new Contact();
			for (i = 0; i < n; i++)
			{
   
				Console.Write("请输入学生姓名:");
				c[i].name = Console.ReadLine();
				Console.Write("请输入学生年龄:");
				c[i].age = int.Parse(Console.ReadLine());
				Console.Write("请输入手机号码:");
				c[i].telephone = Console.ReadLine();
			}
			for (i = 0; i < n; i++)
			{
   
				Console.Write("姓名:{0},", c[i].name);
				Console.Write("年龄:{0},", c[i].age);
				Console.WriteLine("手机号码:{0}", c[i].telephone);
			}
	}
}

70. 编一个程序,输入三个double类型数据,自定义一个静态方法,把这三个数送给它,返回找出的最大数。

class classname
{
   
	public static double compare(double x, double y, double z)
	{
   
		double temp;
		if (x > y) temp = x;
		else temp = y;
		if (z > temp) temp = z;
		return temp;
	}
}

class Program
{
   
	static void Main(string[] args)
	{
   
		Console.Write("请输入一个实数:");
		double x = double.Parse(Console.ReadLine());
		Console.Write("请输入一个实数:");
		double y = double.Parse(Console.ReadLine());
		Console.Write("请输入一个实数:");
		double z = double.Parse(Console.ReadLine());
		double temp = classname.compare(x, y, z);
		Console.WriteLine("比较后得到的最大数为{0}", temp);
	}
}

71.编一个程序,利用自定义方法,找出2到100之间的素数。

class primetest
{
   
	public bool prime(int x)
	{
   
	for (int i = 2; i < x; i++)
	{
   
	if (x % i == 0) return false;
	}
	return true;
	}
}
class Program
{
   
	static void Main(string[] args)
	{
   
		primetest c = new primetest();
		Console.WriteLine("2到100中的素数:");
		for (int i = 2; i < 100; i++)
			if (c.prime(i))
				Console.Write("{0}  ", i);
	}
}

72.编一个程序,从键盘上输入三个double类型的数,自定义方法,以从小到大的顺序排序,以引用型参数调用方法,然后返回主方法输出结果。

class compare
{
   
	public void swap(ref double x, ref double y, ref double z)
	{
   
		double temp;
		if (x > y)
		{
   
			temp = x;
			x = y;
			y = temp;
			double temp; 
		}
		if (y > z)
		{
   
			temp = x;
			y = z;
			z = temp;
			double temp; 
		}
		if (x > y)
		{
   
			temp = x;
			x = y;
			y = temp;
		}
	}
}
class Program
{
   
	static void Main(string[] args)
	{
   
		double x, y, z;
		compare c = new compare();
		Console.Write("请输入一个实数:");
		x = double.Parse(Console.ReadLine());
		Console.Write("请输入一个实数:");
		y = double.Parse(Console.ReadLine());
		Console.Write("请输入一个实数:");
		z = double.Parse(Console.ReadLine());
		Console.WriteLine("排序前的三个数依次为{0},{1},{2}", x, y, z);
		c.swap(ref x, ref y, ref z);
		//c.swap(ref x,ref z);
		//c.swap(ref y,ref z);
		Console.WriteLine("排序后的三个数依次为{0},{1},{2}", x, y, z);
	}
}

73. 编一个程序,输入a,b,c的值,定义一个静态方法,求出一元二次方程axx+bx+c=0的二个实数根。计算二个实数根必须使用Math类中的Sqrt()方法,计算指定数的开方。计算二个实数根,可以用公式(-b+Math.Sqrt(bb-4ac))/(2a)和(-b-Math.Sqrt(bb-4ac))/(2*a)。

class ClassName
{
   
	public static void root(double a, double b, double c, ref double root1, ref double root2)
	{
   
		root1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a);
		root2 = (b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a);
	}
}
class Program
{
   
	static void Main(string[] args)
	{
   
		double a, b, c, root1 = 0, root2 = 0;
		Console.Write("请输入一个数:");
		a = double.Parse(Console.ReadLine());
		Console.Write("请输入一个数:");
		b = double.Parse(Console.ReadLine());
		Console.Write("请输入一个数:");
		c = double.Parse(Console.ReadLine());
		if (a != 0 && b * b - 4 * a * c >= 0)
		{
   
			ClassName.root(a, b, c, ref root1, ref root2);
			Console.WriteLine("root1={0},root2{1}", root1, root2);
		}
		else Console.WriteLine("输入的数据有错误");
	}
}

74. 编一个程序,定义一个数组,再定义类以及方法,用方法(out参数传递数据)找出这组数据中的最大数和最小数。

class ClassName
{
   
	public void find(out int max, out int min, params int[] array)
	{
   
		int n = array.Length, i = 1;
		max = array[0];
		min = array[0];
		while (i < n)
		{
   
			if (array[i] > max)
				max = array[i];
			else
				if (array[i] < min) min = array[i];
				i++;
		}
	}
}

class Program
{
   
	static void Main(string[] args)
	{
   
		int max, min;
		int[] a = new int[10] {
    97, 65, 32, 17, 58, 43, 79, 81, 23, 10 };
		ClassName s = new ClassName();
		s.find(out max, out min, a);
		Console.WriteLine("最大数为:" + max);
		Console.WriteLine("最小数为:" + min);
	}
}

75. 编一个程序,定义一个类,该类中定义二个非静态方法,一个方法用来求出这个三角形的周长,另一个方法用来求出这个三角形的面积。已知三角形三条边a,b,c,计算其面积可以用Math类中的Sqrt()方法,有表达式Math.Sqrt(s(s-a)(s-b)(s-c)),可以利用它计算指定数的开方,其中s=(a+b+c)/2。在主方法中输入一个三角形三条边a,b,c,要求调用这二个非静态方法计算三角形的周长和面积。注意:在输入三角形三条边时,必须检查它们的数据合法性。*

class triangle
{
   
	public double c(double a, double b, double c)
	{
   
		double zc;
		zc = a + b + c;
		return zc;
	}
	public double s(double a, double b, double c)
	{
   
		double mj,s1;
		s1 = (a + b + c) / 2;
		mj = Math.Sqrt(s1*(s1-a)*(s1-b)*(s1-c));
		return mj;
	}
}

class Program
{
   
	static void Main(string[] args)
	{
   
		triangle tr=new triangle ();
		double x, y, z;
		Console.WriteLine("请输入三角形的三边");
		x = double.Parse(Console.ReadLine());
		y = double.Parse(Console.ReadLine());
		z = double.Parse(Console.ReadLine());
		if ((x + y > z && x - y < z) && (x + z > y && x - z < y) && ((y + z) > x && (y - z < x)))
		{
   
			Console.WriteLine("三角形的周长为{0}", tr.c(x, y, z));
			Console.WriteLine("三角形的面积为{0}", tr.s(x, y, z));
		}
		else
			Console.WriteLine("三角形三边不合法");
	}
}

转载:https://blog.csdn.net/lucky51222/article/details/115700759
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场