文档库 最新最全的文档下载
当前位置:文档库 › 《C#程序设计基础》习题库程序

《C#程序设计基础》习题库程序

《C#程序设计基础》习题库程序

2010年6月3日提供给信息中心的原稿

20分题50个

40分题24个

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(k10052604)

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

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

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

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

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

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

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

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

24.(20)编一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如, 153=1*1*1+5*5*5+3*3*3,所以153是“水仙花数”。(k10033106)

25.(20)编写一个程序,用while语句,求出

1+(1+2)+(1+2+3)+...+(1+2+3+...+10)之和。(k10041803)

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

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

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

29.(20)有关系式1*1+2*2+3*3+...+k*k<2000,编一个程序,求出满足此关系式的k的最大值。(k10052901)

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

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

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)

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

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

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

(k10020110)

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

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

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

(k10042502)

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

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

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

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

43.(20)编一个程序,解决百钱买百鸡问题。某人有100元钱,要买100只鸡。公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只。问可买到公鸡,母鸡,小鸡各为多少只。问题分析:设公鸡x只,母鸡y只,小鸡z只,可以列出两个方程:x+y+z=100

5x+3y+z/3=100

我们采用“穷举法”来解决此问题。(k10050305)

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

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

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

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

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

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

50.(20)输入一个字符串,将其中小写字母改成大写字母,把大写字母改成小

写字母,其余字符不变,输出该字符串。(k10050222)

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

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

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

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

*

**

***

****

(k10051202)

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

*

***

*****

*******

(k10050902)

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)

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

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

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

(k10050225)

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

61.(40)所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如:64,55,321都认为是降序数,但是623不是降序数。一位数字被认为是降

序数。编一个程序,输入一个数,判定它是否为降序数。该程序是循环执行

的,当输入的数为0时,则退出程序运行。(k10051501)

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

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

在行上是最小,在列上也是最小。(注意:它未必是整个数组的最小元素。

k10050904)

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

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

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

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

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

(k10052303)

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

行输入输出操作。(k10052602)

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

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

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

73.(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)。

(k10050215)

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

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)

《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("{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.(20)编一个程序,从键盘上输入三个数,用三元运算符(? :)把最大数找出来。(k10031505)

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.(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;

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("{0}既不是大写字母也不是小写字母",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)

{

student stu;

stu.no = 10003;

https://www.wendangku.net/doc/71565296.html, = "小小";

stu.sex = "女";

stu.score = 89.5;

Console.WriteLine("学生的学号是{0},名字叫{1},性别是{2},程序设计的成绩是

{3}",stu.no,https://www.wendangku.net/doc/71565296.html,,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}在0-100之间,最后结果为{1}", f, g);

}

else

Console.WriteLine("{0}不在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("{0}>0,最后结果是{1}", i, j);

}

else

{

j = i + 500;

Console.WriteLine("{0}<0,最后结果是{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");

}

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("{0}四舍五入的结果为{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&&xz))

second = x;

else if ((y>x&&yz))

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;

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("pi的值为:{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);

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("{0}是水仙花数",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("{0}", 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);

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 = "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.(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("k的值为{0}",k-2);

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

int i = 1;

while (i <= 100)

{

Console.Write("{0,10:d1}",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("{0},",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);

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("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循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个。(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;

}

Console.WriteLine("1-100之间所有奇数的和为{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("{0}*{1}={2} ",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("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的和为{0}", s); 39.(20)编一个程序,用for循环语句求出1到100之间的奇数之和,以及偶数之和。(k1002601)

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.(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("{0}枚\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("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.(20)编一个程序,解决百钱买百鸡问题。某人有100元钱,要买100只鸡。公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只。问可买到公鸡,母鸡,小鸡各为多少只。问题分析:设公鸡x只,母鸡y只,小鸡z只,可以列出两个方程:x+y+z=100

5x+3y+z/3=100

我们采用“穷举法”来解决此问题。(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());

}

相关文档
相关文档 最新文档