C#小程序练习题及答案
更新时间:2023-11-05 06:57:01 阅读量: 综合文库 文档下载
《C#程序设计基础》习题库程序
2010年6月3日提供给信息中心的原稿 20分题 50个 40分题 24个
1.(20)编一个程序,定义常量Pi=3.14159265,从键盘上输入半径r,求出圆的面积。(k003101)
const double Pi = 3.14159265;
double r,s;
Console.WriteLine(\请输入圆的半径\); r = double.Parse(Console.ReadLine());
s = Pi * r * r;
Console.WriteLine(\圆的面积是{0}\,s);
2.(20) 编一个程序,定义三个double类型的变量,分别从键盘上输入值给它们,然后用Console.WriteLine方法把它们输出成一列,小数点对齐,保留3位小数。(k10052703)
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(\, x); Console.WriteLine(\, y); Console.WriteLine(\, z); //Console.WriteLine(\//Console.WriteLine(\//Console.WriteLine(\
3.(20)编一个程序,从键盘上输入三个数,用三元运算符(? :)把最大数找出来。(k10031505)
float x, y, z, temp;
Console.Write(\请输入一个实数:\); x = float.Parse(Console.ReadLine()); Console.Write(\请输入一个实数:\); y = float.Parse(Console.ReadLine()); Console.Write(\请输入一个实数:\);
第 1 页
z = float.Parse(Console.ReadLine());
temp = x >= y ? x : y; temp = temp >= z ? temp : z;
Console.WriteLine(\最大数为:{0}\, temp);
4.(20)编一个程序,从键盘上输入三个数,用三元运算符(? :)把最小数找
出来。(k10052702) 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.(20)编一个程序,输入一个字符,如果是大写字母,就转换成小写字母,否则不转换。(k1003205)
char ch;
Console.WriteLine(\请输入一个字符\); ch = char.Parse(Console.ReadLine());
if (ch >= 'A' && ch <= 'Z')
{
ch = (char)(ch + 32);
}
Console.WriteLine(ch);
6.(20)输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数字或者其它字符)(k10031802)
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.(20)编一个程序,设圆的半径r=1.2,高h=1.5,定义圆周率常量Pi=3.1415,求出圆柱的体积。(k10032305)
const double Pi = 3.1415;
double r=1.2,h=1.5;
double v; v = Pi * r * r * h;
第 2 页
Console.WriteLine(\圆柱体的体积是{0}\,v);
8. (20)编一个程序,设园半径r=1.5,园柱高h=3.6,圆周率3.1415定义为常量,求出圆周长、圆面积、圆柱体积。然后用Console.WriteLine方法输出计算结果,输出时要求有文字说明,取小数点后2位数字。例如,圆周长=×××.××。
(k10052707) 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.(20)编一个程序,输入一个字符,如果输入的字符是大写字母,则转换为小写字母;如果输入的字符是小写字母,则转换为大写字母,否则不转换。(k10032601)
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(\既不是大写字母也不是小写字母\,ch);
10.(20)编一个程序,定义结构类型(有学号、姓名、性别和程序设计成绩四个字段),声明该结构类型变量,用赋值语句对该变量赋值以后再输出。(k10031601)
struct student
{
public int no; public string name; public string sex; public double score;
} class Program
{
static void Main(string[] args)
第 3 页
{ 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.(20)编一个程序,定义一个实数变量,从键盘上输入一个值,如果这个值在闭区间[0,100]里,则加上1000,否则不加。最后输出结果。(k10032304)
float f,g;
Console.WriteLine(\请输入一个实数变量\); f = float.Parse(Console.ReadLine());
if (f >= 0 && f <= 100)
{ g = f + 1000;
Console.WriteLine(\在0-100之间,最后结果为{1}\, f, g);
} else
Console.WriteLine(\不在0-100之间\,f);
12.(20)编一个程序,输入一个整数,使用if else语句,如果该数大于0,则加上100,否则加上500,输出结果。(k10032301)
int i,j;
Console.WriteLine(\请输入一个整数\); i = int.Parse(Console.ReadLine());
if (i > 0)
{ j = i + 100;
Console.WriteLine(\最后结果是{1}\, i, j);
} else { j = i + 500;
Console.WriteLine(\最后结果是{1}\,i,j);
13.(20)编一个程序,用if else语句,输入一个整数,如果该数大于0,则输出\这个数大于零。\如果该数等于0,则输出\这个数等于零。\否则输出\这个数小于零。\。(k10032302)
int i;
Console.WriteLine(\请输入一个整数\); i = int.Parse(Console.ReadLine());
if (i > 0)
{
Console.WriteLine(\这个数大于0\);
}
第 4 页
else if(i==0)
{
Console.WriteLine(\这个数等于0\);
} else {
Console.WriteLine(\这个数小于0\);
}
14.(20)编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。例如,实数12.56经过四舍五入运算,得到结果13;而12.46经过四舍五入运算,得到结果12。 (k10012803)
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(\四舍五入的结果为{1}\, d, e);
15.(20)编写一个程序,定义三个float类型的变量,分别从键盘上输入值给它们, 然后用if else选择语句找出它们中的最小数,最后输出结果。(k10052604)
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.(20)编一个程序,输入三个实数,要求使用if else语句把它们的中间数找出来,可以使用逻辑运算符。(k10032309)
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
second = x;
第 5 页
else if ((y>x&&y
second = y;
else second = z;
Console.WriteLine(\这三个数中的中间数为{0}\, second);
17.(20)编一个程序,首先输入一个成绩(0到100的整数),用if else语句然后判断该成绩是优、良、中、及格还是不及格。(k10040501)
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.(20)编一个程序,输入0—100之间的一个学生成绩分数,用switch语句输出成绩等第(成绩优秀(90-100),成绩良好(80-89),成绩及格(60-79)和成绩不及格(59以下))。(k10032403)
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;
第 6 页
default:
Console.WriteLine(\成绩不及格\);
break;
19.(20)编一个程序,利用do-while循环语句,从键盘上输入10个整数,求出它们的和。(k10020105)
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.(20) 编一个程序,用while循环语句来计算1+1/2+2/3+3/4+...+99/100之和。(k10052605)
double i = 1,s=1; while(i<=99)
{
s = s + i / (i + 1);
i++; }
Console.WriteLine(\和为{0}\,s);
21.(20)编一个程序,用do-while循环语句来计算PI=4*(1-1/3+1/5+...+1/n),要求当1/n<0.000001时停止计算。(k10041502)
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(\的值为:{0}\,pi);
22.(20)编一个程序,从键盘上输入二个实数,使用Math类中Max()和Min()方法,求出它们中的最大数和最小数。(k10040604)
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);
第 7 页
23.(20)编一个程序,利用while循环语句和Math类中的Pow()方法,求出1到10的各个数的平方之和。(k10040602)
double i = 1,s=0; while (i <= 10)
{
s = s + Math.Pow(i, 2);
i++; }
Console.WriteLine(\和为{0}\,s);
24.(20)编一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如, 153=1*1*1+5*5*5+3*3*3,所以153是“水仙花数”。(k10033106)
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(\是水仙花数\,a);
25.(20)编写一个程序,用while语句,求出1+(1+2)+(1+2+3)+...+(1+2+3+...+10)之和。(k10041803)
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(\, s1);
26.(20)编一个程序,输入二个正整数,求出它们的最大公约数。(k10041901)
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);
第 8 页
27.(20)编一个程序,用while循环语句,从键盘输入10个数,要求找出最大数和次大数。(k10041902)
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);
28.(40)编一个程序,要求使用while语句,输入用户名和密码,实现用户登录程序的功能,至多允许输入三次,超过三次不允许登录。(k10022507)
const string UserName = \; const string PassWord = \;
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
第 9 页
Console.WriteLine(\不能登录系统\);
29.(20)有关系式1*1+2*2+3*3+...+k*k<2000,编一个程序,求出满足此关系式的k的最大值。(k10052901)
int k = 1,s=0; while (s < 2000)
{
s = s + k * k;
k++; }
Console.WriteLine(\的值为{0}\,k-2);
30.(20)编写一个程序,要求用while循环语句,打印1到100的正整数,每行打印5个数,每列右对齐。(k10042004)
int i = 1; while (i <= 100)
{
Console.Write(\,i);
if (i % 5 == 0) Console.WriteLine();
i++;
31.(20)Fibonacci序列的前二项是0和1,且每一个后继项是前二项的和。编一个程序,输出项值不大于100的Fibonacci序列。(k10033104)
int f1 = 0; int f2 = 1; int f3; while(f1<100)
{ f3=f1+f2;
Console.Write(\,f1);
f1=f2; f2=f3; }
32.(40)编一个程序,输入a,b,c的值,求出一元二次方程a*x*x+b*x+c=0的二个实数根。计算二个实数根必须使用Math类中的Sqrt()方法,计算指定数的开方。计算二个实数根,可以用公式(-b+Math.Sqrt(b*b-4*a*c))/(2*a)和(-b-Math.Sqrt(b*b-4*a*c))/(2*a) (k10042102)
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);
第 10 页
x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a); Console.WriteLine(\这个方程的两个根是{0},{1}\, x1, x2);
} else
Console.WriteLine(\这个方程没有解\);
33.编一个程序,利用while循环语句,找出2到100之间的素数。(k10042104)
int i = 2, j;
bool b;
Console.WriteLine(\到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(\, i);
i++; }
Console.WriteLine();
34.(20)编一个程序,用while循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个。(k10042105)
int num=2; while(num<10000)
{
if (num % 2 == 1 && num % 3 == 1 && num % 4 == 1)
{
Console.Write(\这篮鸡蛋至少有{0}个\, num);
break; } num++;
35.(20)编一个程序,用for循环语句求出1到100之间的奇数之和。(k10020110)
int i,s=0;
for (i = 1; i <= 100; i = i + 2)
{ s = s + i;
}
第 11 页
Console.WriteLine(\之间所有奇数的和为{0}\,s);
36.(20)编一个程序,利用二重for循环语句,打印出九九乘法口诀表。(k10050306)
int s;
for (int i = 1; i <= 9; i++)
{
for(int j=1;j<=i;j++)
{ s=i*j;
Console.Write(\,j,i,s);
}
Console.WriteLine();
37.(20)编一个程序,定义一个有10个元素的数组,使用for循环语句,从键盘上输入10名同学的数学成绩,分别求出最高分和最低分,并且求出10名同学的数学平均成绩。(k10042501)
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.(20)编一个程序,利用for循环语句,求出1!+2!+3!+...+10!的和。(k10042502)
int s = 0, jc = 1; for (int j = 1; j <= 10; j++)
{ jc = jc * j; s = s + jc;
}
Console.WriteLine(\的和为{0}\, s);
39.(20)编一个程序,用for循环语句求出1到100之间的奇数之和,以及偶数之和。(k1002601)
long i, j, m, s = 0; for (i = 1; i <= 10; i++)
第 12 页
{ m = 1;
for (j = 1; j <= i; j++) m = m * j;
s = s + m;
}
Console.WriteLine(\ + s);
40.(20)编一个程序,用for循环语句,从键盘输入10个实数,分别求出它们中的正数之和,以及负数之和。(k10042702)
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.(20)编一个程序,把一张1元的钞票换成5分,2分和1分的硬币,要求每种至少一枚,并且所换硬币数不超过30枚。请问,有哪几种换法?(k10050218)
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(\枚\\t{1}枚\\t{2}枚\, i, j,
k);
42.(20)编一个程序,把一张面值100元的钞票换成5元,1元和5角面值的钞票,要求100元换以上的零钱100张,且要求每种不少于一张。请问,有哪几种换法?(k10050223)
int i, j, k;//设5元有i张,1元有j张,5角有k张
Console.WriteLine(\元:\\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(\, i, j,
k);
43.(20)编一个程序,解决百钱买百鸡问题。某人有100元钱,要买100只鸡。公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只。问可买到公鸡,母鸡,小鸡各为多少只。问题分析:设公鸡x只,母鸡y只,小鸡z只,可以列出两个方程:
x+y+z=100 5x+3y+z/3=100
第 13 页
我们采用“穷举法”来解决此问题。(k10050305)
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.(20)编一个程序,定义数组,用for循环语句,顺序输入10个实数,然后逆序输出这10个数。(k10042701)
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(\, a[i]);
}
Console.WriteLine();
45.(40)编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。(k10040603)
int i, j, temp; const int n = 10; int[] SortArray = new int[n];
for (i = 0; i < n; i++)
{
Console.Write(\请输入一个数:\); SortArray[i] = int.Parse(Console.ReadLine());
}
Console.Write(\等待排序的数据序列为:\);
for (i = 0; i < n; i++)
{
Console.Write(\, SortArray[i]);
}
for (i = n - 1; i >= 0; i--)
{
for (j = 0; j <= i - 1; j++)
第 14 页
{
if (SortArray[j] > SortArray[j + 1])
{
temp = SortArray[j]; SortArray[j] = SortArray[j + 1];
SortArray[j + 1] = temp;
} } }
Console.Write(\已经排序后的数据序列为:\);
for (i = 0; i < n; i++)
{
Console.Write(\, SortArray[i]);
}
Console.WriteLine();
46.(40)编一个程序,定义一个有10个元素的一维数组a,在键盘上输入时没有大小次序,但是存入数组时要按由小到大的顺序存放。例如,输入第1个数1时,存入a[0];假如第2个数是5,则数存入a[1];假如第3个数是4,那么把前面输入的5向后面移动到a[2],把4插入到a[1]的位置上,这样使得每输入一个数,保持从小到大的顺序排列。(k10040310)
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(\依次输出数组中的值:\);
for (i = 0; i < n; i++)
{
Console.Write(\, a[i]);
}
第 15 页
Console.WriteLine();
47.(20)编一个程序,定义一个数组,用for语句输入10个实数存入这个数组,然后按逆序重新存放后再输出。(k10050219)
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(\, a[i]);
Console.WriteLine();
48.(20)编一个程序,从键盘输入一个字符串,用foreach循环语句,统计其中大写字母的个数和小写字母的个数。(k10050220)
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. (40)编一个程序,定义一个字符数组和一个字符串变量,给这个字符串变量输入一个字符串,然后用foreach语句把这个字符串拷贝到字符数组里,最后输出字符数组。(k10051601)
string s;
Console.WriteLine(\请输入一个字符串\);
s = Console.ReadLine(); char[] ch=new char [s.Length];
int n=0;
foreach (char c in s)
{
第 16 页
ch[n] = c; n++; }
foreach (char c in ch)
{
Console.WriteLine(c);
}
50.(20)输入一个字符串,将其中小写字母改成大写字母,把大写字母改成小写字母,其余字符不变,输出该字符串。(k10050222)
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.(20)编一个程序,输入一个字符串,用ToCharArray()方法把字符串中的内容拷贝到字符数组中,然后用foreach输出该字符数组。(k10040305)
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)编一个程序,定义一个字符串变量,输入字符串,然后再输入一个字符,在字符串中查找该字符出现的次数。(k10040307)
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++; }
第 17 页
Console.WriteLine(\字符{0}在字符串{1}中出现了{2}次\, b, a, d);
53.(40)编一个程序,定义一个字符串变量,输入字符串,判断有没有连续重复字符出现,统计重复字符出现次数。例如,aaabccdfff,其中a重复出现二次,c重复出现一次,f重复出现二次,共计字符重复五次。(k10053005)
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(\, a);
54.(20)编一个程序,利用for语句,打印一个如下形式的一个直角三角形,顶点在屏幕中线上,行数从键盘输入。 * ** *** **** (k10051202)
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.(40)编一个程序,利用for语句,打印一个如下形式的一个等腰三角形,顶点在屏幕中线上,行数从键盘输入。 * *** ***** ******* (k10050902)
int i;
第 18 页
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.(40)定义一个一维数组,输入任意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 ( k10050903)
int[] a ={ 7, 4, 8, 9, 1, 5 };
int temp;
for (int i = 0; i < 6; i++)
{
Console.Write(\,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(\,a[k]);
}
57.(20)编一个程序,定义一个n行n列的二维整数数组,赋初值,然后求出对角线上的元素之和。(k10052301)
第 19 页
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.(40)编一个程序,输入一个正整数,判断它是否为素数。如不是,则输出其所有正约数。(k10050224)
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(\是一个素数。\, n);
else {
Console.Write(\不是一个素数。\\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(\, i);
} i++; } }
59.(40)编一个程序,输入一个代表身份证号码的字符串,判断字符串长度(18)
第 20 页
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.(40)编一个程序,定义一个类,该类中定义二个非静态方法,一个方法用来求出这个三角形的周长,另一个方法用来求出这个三角形的面积。已知三角形三条边a,b,c,计算其面积可以用Math类中的Sqrt()方法,有表达式Math.Sqrt(s*(s-a)*(s-b)*(s-c)),可以利用它计算指定数的开方,其中s=(a+b+c)/2。在主方法中输入一个三角形三条边a,b,c,要求调用这二个非静态方法计算三角形的周长和面积。注意:在输入三角形三条边时,必须检查它们的数据合法性。
(k10060103) 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 ();
第 31 页
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(\三角形三边不合法\);
第 32 页
第 33 页
是否正确,还要判断输入的每个字符是否为数字。否则要求重新输入。(k10050225)
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.(40)编一个程序,输入一个正整数n,把它转换为二进制数,并输出。提示:应该利用数组。(k10050226)
int[] a = new int[80]; int i, j, n = 0; while (n <= 0)
{
Console.WriteLine(\请输入一个正整数:\); n = int.Parse(Console.ReadLine());
} i = 0;
Console.Write(\正整数{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. (40)所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如:64,55,321都认为是降序数,但是623不是降序数。一位数字被认为是降序数。
第 21 页
编一个程序,输入一个数,判定它是否为降序数。该程序是循环执行的,当输入的数为0时,则退出程序运行。(k10051501)
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(\是降序数。\, n); else Console.WriteLine(\不是降序数。\, n);
}
62.(40)所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如:646,1551,891232198都认为是回文数。编一个程序,输入一个正整数,判定它是否为回文数。当输入的数为0时,则退出程序,否则继续循环执行程序。(k10051502)
int s, k; int i, j;
int[] a = new int[20];
bool pos; while (true)
{
第 22 页
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(\是回文数。\, s); else Console.WriteLine(\不是回文数。\, s);
}
63.(40)编一个程序,定义一个n行n列的二维数组,例如,n=4,输入该数组的全部数据。可以在定义数组时赋于常量值。求二维数组中这样元素的位置:它在行上是最小,在列上也是最小。(注意:它未必是整个数组的最小元素。k10050904)
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(\二维数组:\);
for (i = 0; i < n; i++)
{
Console.Write(\);
for (j = 0; j < n; j++) Console.Write(\, a[i, j]);
}
Console.WriteLine(\行 列 最小值\);
for (i = 0; i < n; i++) for (j = 0; j < n; j++)
{
temp = a[i, j]; min = temp;
第 23 页
/*
for(k=0;k { if(a[i,k] } */ 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, j, temp); } 64.(40)给定一个m×n的数值矩阵A,如果矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个方法计算出m*n的矩阵A的所有马鞍点。 (k10052302) 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(\行{1}列的数值矩阵为:\); for (i = 0; i < m; i++) { Console.WriteLine(); for (j = 0; j < n; j++) { Console.Write(\, 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(\马鞍点是第{0}行,第{1}列的{2}\, i, j, array[i, j]); } } 65.(40)编一个程序,输入一个整数,判定它为几位数。例如,99是2位数,-100是3位数。(k10050906) 第 24 页 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(\是{1}位数。\, m, k); 66.(40)编一个程序,定义一个字符串数组,输入若干国家名称(所有名称全用大写或者全用小写),设计一个算法按字典顺序将这些国家名称进行排序。(k10051802) int i, j, n = 10; string[] SortArray = new string[n]; string temp; Console.Write(\请输入{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(\已经排序后的国家名称为:\); for (i = 0; i < n; i++) { Console.WriteLine(SortArray[i]); } 67.(20)编一个程序,定义类student和它的成员(学号,姓名,年龄和c_sharp程序设计成绩),用类student生成对象s,分别对对象s的成员赋值,然后输出对象s。(k10052401) class student { 第 25 页 public string 学号; public string 姓名; public int 年龄; public int c_sharp程序设计成绩; } static void Main(string[] args) { student s; s = new student(); s.学号 = \; s.姓名 = \刘云飞\; s.年龄 = 21; s.c_sharp程序设计成绩 = 95; Console.WriteLine(\学生学号:{0}\, s.学号); Console.WriteLine(\学生姓名:{0}\, s.姓名); Console.WriteLine(\学生年龄:{0}\, s.年龄); Console.WriteLine(\程序设计成绩:{0}\, s.c_sharp程序设计成绩); 68. (20)编一个程序,定义结构(有姓名,年龄,手机号码三个字段),再定义一个一维数组,把结构作为数组元素类型,存入数据,然后依次输出。(k10052303) 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=\; c[1].name=\王鸣\; c[1].age=42; c[1].telephone=\; c[2].name=\张星\; c[2].age=39; c[2].telephone=\; Console.Write(\姓名:{0},\,c[0].name); Console.Write(\年龄:{0},\,c[0].age); 第 26 页 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.(40)编一个程序,定义类(有姓名,年龄,手机号码三个字段),再定义一个一维数组,使数组元素为类,存入数据,然后依次输出,使用for循环语句进行输入输出操作。(k10052602) 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. (40)编一个程序,输入三个double类型数据,自定义一个静态方法,把这三个数送给它,返回找出的最大数。(k10060102) class classname { public static double compare(double x, double y, double z) { 第 27 页 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.(40)编一个程序,利用自定义方法,找出2到100之间的素数。(k10050209) 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(\到100中的素数:\); for (int i = 2; i < 100; i++) if (c.prime(i)) Console.Write(\, i); 72.(40)编一个程序,从键盘上输入三个double类型的数,自定义方法,以从小到大的顺序排序,以引用型参数调用方法,然后返回主方法输出结果。(k10050207) class compare 第 28 页 73.(40){ 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); } 编一个程序,输入a,b,c的值,定义一个静态方法,求出一元二次方 第 29 页 程a*x*x+b*x+c=0的二个实数根。计算二个实数根必须使用Math类中的Sqrt()方法,计算指定数的开方。计算二个实数根,可以用公式(-b+Math.Sqrt(b*b-4*a*c))/(2*a)和(-b-Math.Sqrt(b*b-4*a*c))/(2*a)。(k10050215) 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, root2); } else Console.WriteLine(\输入的数据有错误\); 74. (40)编一个程序,定义一个数组,再定义类以及方法,用方法(out参数传递数据)找出这组数据中的最大数和最小数。(k10050302) 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) { 第 30 页
正在阅读:
C#小程序练习题及答案11-05
2014年清明节放假致家长的一封信08-06
小学生二年级描写冬天的雪景作文【佳作】06-13
部编版2019-2020学年一年级下册语文课文1我多想去看看同步练习D卷05-31
八大山人题诗论 - 图文01-23
2004年上半年广东省行政职业能力测验题06-12
童真作文500字07-04
酒店前台英语口语11-25
2016年天津高考英语试题及答案05-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- C#
- 练习题
- 答案
- 程序
- 13级数字电子技术—总复习
- 工程变更实施方案
- (100分答案)互联网环境下的文化金融实践与探索(上)
- OMRON 常用指令 - 图文
- 董康及《清秋审条例》
- 大体积混凝土施工检测技术继续教育答案
- 实习单位-宜宾市工职校网站首页
- 电子相册系统设计方案
- 近世代数1
- (最新)山东省聊城市刘集中学2019年第一学期期中考试八年级英语试卷
- 机械设计课后习题第9章作业 - 图文
- 洛阳公务员住宅1#高层住宅楼水电施工组织设计
- 人力资源开发与管理课程案例(doc-18)
- 18建筑设备监控系统
- 不同烤烟品种上部叶发育及质量比较
- 全站仪培训
- 2000年度注册会计师全国统一考试 - 专业阶段考试 - 《审计》试题
- 2016年耐强酸强碱耐溶剂膜现状研究及发展趋势
- 关于校园文化艺术节的表彰决定
- 交通调查与分析复习名词解释与简答