1、C#小程序练习题及答案C#程序设计基础习题库程序 2010年6月3日提供给信息中心的原稿 20分题 50个 40分题 24个1.(20)编一个程序,定义常量Pi=3.,从键盘上输入半径r,求出圆的面积。(k003101)const double Pi = 3.;double r,s;(请输入圆的半径);r = ();s = Pi * r * r;(圆的面积是0,s);2.(20) 编一个程序,定义三个double类型的变量,分别从键盘上输入值给它们,然后用方法把它们输出成一列,小数点对齐,保留3位小数。(k)double x, y, z;(请输入一个数:);x = ();(请输入一个数:);y
2、 = ();(请输入一个数:);z = ();(0,10:f3, x);(0,10:f3, y);(0,10:f3, z);20)编一个程序,从键盘上输入三个数,用三元运算符( :)把最大数找出来。(k)float x, y, z, temp;(请输入一个实数:);x = ();(请输入一个实数:);y = ();(请输入一个实数:);z = ();temp = x = y x : y;temp = temp = z temp : z;(最大数为:0, temp);4.(20)编一个程序,从键盘上输入三个数,用三元运算符( :)把最小数找出来。(k) float x, y, z, temp;(
3、请输入一个实数:);x = ();(请输入一个实数:);y = ();(请输入一个实数:);z = ();temp = x = y x : y;temp = temp = A & ch = A & ch = a & ch = 0 & ch = A & ch = a & ch = 0 & f 0)j = i + 100;(00,最后结果是1, i, j);elsej = i + 500;(0 0)(这个数大于0);else if(i=0)(这个数等于0);else(这个数小于0); 14(20)编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。例如,实数经过四舍五入运算,得到结果13;
4、而经过四舍五入运算,得到结果12。 (k)double d;int i,e;(请输入一个正数);d = ();i=(int)d;if (d - i) = e = i + 1;elsee = i;(0四舍五入的结果为1, d, e);15.(20)编写一个程序,定义三个float类型的变量,分别从键盘上输入值给它们, 然后用if else选择语句找出它们中的最小数,最后输出结果。(k)float x, y, z,min=0;(请输入三个float类型的值);x = ();y = ();z = ();if (x y & x z)min = x;else if (y x & y y&xz)|(xz)
5、second = x;else if (yx&yz)|(yz)second = y;elsesecond = z;(这三个数中的中间数为0, second);17(20)编一个程序,首先输入一个成绩(0到100的整数),用if else语句然后判断该成绩是优、良、中、及格还是不及格。(k)double score;(请输入一个成绩);score = ();if (score = 90)(优);else if (score = 80)(良);else if (score = 70)(中);else if (score = 60)(及格);else(不及格);18(20)编一个程序,输入0100之
6、间的一个学生成绩分数,用switch语句输出成绩等第(成绩优秀(90-100),成绩良好(80-89),成绩及格(60-79)和成绩不及格(59以下)。(k)int score;(请输入学生成绩);score = ();score = score / 10;switch (score)case 10:(成绩优秀);break;case 9:(成绩优秀);break;case 8:(成绩良好);break;case 7:(成绩及格);break;case 6:(成绩及格);break;default:(成绩不及格);break;19(20)编一个程序,利用do-while循环语句,从键盘上输入1
7、0个整数,求出它们的和。(k)int i=1,n,sum=0;do(请输入一个整数);n = ();sum = sum + n;i+;while(i=10);(这十个整数的和为0,sum);20.(20) 编一个程序,用while循环语句来计算1+1/2+2/3+3/4+.+99/100之和。(k)double i = 1,s=1;while(i=99)s = s + i / (i + 1);i+;(和为0,s);21(20)编一个程序,用do-while循环语句来计算PI=4*(1-1/3+1/5+.+1/n),要求当1/n= ;pi = s * 4;(pi的值为:0,pi);22(20)编
8、一个程序,从键盘上输入二个实数,使用Math类中Max()和Min()方法,求出它们中的最大数和最小数。(k)double d1, d2,max,min;(请输入两个实数);d1 = ();d2 = ();max=(d1,d2);min = (d1,d2);(最大值为0,最小值为1,max,min);23(20)编一个程序,利用while循环语句和Math类中的Pow()方法,求出1到10的各个数的平方之和。(k) double i = 1,s=0;while (i = 10)s = s + (i, 2);i+;(和为0,s);24.(20)编一个程序,打印出所有的“水仙花数”,所谓“水仙花数
9、”是指一个三位数,其各位数字立方和等于该数本身。例如, 153=1*1*1+5*5*5+3*3*3,所以153是“水仙花数”。(k)int a, i, j, k;for (a = 100; a = 999; a+)i = a % 10;k = a / 100;j = a % 100 / 10;if (a = (i, 3) + (j, 3) + (k, 3)(0是水仙花数,a);25(20)编写一个程序,用while语句,求出1+(1+2)+(1+2+3)+.+(1+2+3+.+10)之和。(k)int i = 1, s = 0,j=1, s1 = 0;while (j =10)while (i
10、 = j)s = s + i;i+;s1=s1+s;j+;(0, s1);26(20)编一个程序,输入二个正整数,求出它们的最大公约数。(k)int i, j,k;(请输入两个正整数);i = ();j = ();k = i j i : j;while (!(i % k = 0 & j % k = 0)k-;(最大公约数为0,k);27(20)编一个程序,用while循环语句,从键盘输入10个数,要求找出最大数和次大数。(k)int i=1,max=1,max1=1;int s;(请输入10个数:);while (i max)max1 = max;max = s;else if (s max1
11、)s = max1;i+;(最大值为0,次大值为1,max,max1);28(40)编一个程序,要求使用while语句,输入用户名和密码,实现用户登录程序的功能,至多允许输入三次,超过三次不允许登录。(k)const string UserName = admin;const string PassWord = 123456;string username, password;int i=1;while(i=3)(请输入用户名);username = ();(请输入密码);password = ();if (username = UserName & password = PassWord)b
12、reak;else(你输入的用户名或者密码错误,请重新输入用户名和密码);i+;if (i = 3)(正在登录系统);else(不能登录系统);29(20)有关系式1*1+2*2+3*3+.+k*k2000,编一个程序,求出满足此关系式的k的最大值。(k)int k = 1,s=0;while (s 2000)s = s + k * k;k+;(k的值为0,k-2);30(20)编写一个程序,要求用while循环语句,打印1到100的正整数,每行打印5个数,每列右对齐。(k)int i = 1;while (i = 100)(0,10:d1,i);if (i % 5 = 0)();i+;31(
13、20)Fibonacci序列的前二项是0和1,且每一个后继项是前二项的和。编一个程序,输出项值不大于100的Fibonacci序列。(k)int f1 = 0;int f2 = 1;int f3;while(f1= 0)x1 = (-b + (b * b - 4 * a * c) / (2 * a);x2 = (-b - (b * b - 4 * a * c) / (2 * a);(这个方程的两个根是0,1, x1, x2);else(这个方程没有解);33编一个程序,利用while循环语句,找出2到100之间的素数。(k)int i = 2, j;bool b;(2到100中的素数为:);w
14、hile (i = 100)b = true;j = 2;while (j = i - 1)if (i % j = 0)b = false;break;j+;if (b=true) (0 , i);i+;();34(20)编一个程序,用while循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个。(k)int num=2;while(num10000)if (num % 2 = 1 & num % 3 = 1 & num % 4 = 1)(这篮鸡蛋至少有0个, num);break;num+;35(2
15、0)编一个程序,用for循环语句求出1到100之间的奇数之和。(k)int i,s=0;for (i = 1; i = 100; i = i + 2)s = s + i;(1-100之间所有奇数的和为0,s);36.(20)编一个程序,利用二重for循环语句,打印出九九乘法口诀表。(k)int s;for (int i = 1; i = 9; i+)for(int j=1;j=i;j+)s=i*j;(0*1=2 ,j,i,s);();37(20)编一个程序,定义一个有10个元素的数组,使用for循环语句,从键盘上输入10名同学的数学成绩,分别求出最高分和最低分,并且求出10名同学的数学平均成绩
16、。(k)double math=new double 10;(请输入10名学生的数学成绩);for (int i = 0; i ; i+)mathi = ();double max=math0, min=math0,ave,sum=0;for (int j = 0; j ; j+)if (max mathj)min = mathj;sum = sum + mathj;ave = sum / ;(最高分为0,最低分为1,平均分为2,max,min,ave);38(20)编一个程序,利用for循环语句,求出1!+2!+3!+.+10!的和。(k) int s = 0, jc = 1;for (in
17、t j = 1; j = 10; j+)jc = jc * j;s = s + jc;(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;(1!+2!+3!+.+10!= + s);40(20)编一个程序,用for循环语句,从键盘输入10个实数,分别求出它们中的正数之和,以及负数之和
18、。(k)int i;double sum1 = 0, sum2 = 0, x;for (i = 1; i 0)sum1 += x;elsesum2 += x;(正数之和:0,负数之和:1, sum1, sum2);41.(20)编一个程序,把一张1元的钞票换成5分,2分和1分的硬币,要求每种至少一枚,并且所换硬币数不超过30枚。请问,有哪几种换法(k)int i, j, k;(一分: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
19、 & i + j + k = 30) (0枚t1枚t2枚, i, j, k);42.(20)编一个程序,把一张面值100元的钞票换成5元,1元和5角面值的钞票,要求100元换以上的零钱100张,且要求每种不少于一张。请问,有哪几种换法(k)int i, j, k;20)编一个程序,解决百钱买百鸡问题。某人有100元钱,要买100只鸡。公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只。问可买到公鸡,母鸡,小鸡各为多少只。问题分析:设公鸡x只,母鸡y只,小鸡z只,可以列出两个方程:x+y+z=100 5x+3y+z/3=100我们采用“穷举法”来解决此问题。(k)double z;for( doub
20、le x=1;x=20;x+)for (double y = 1; y = 33; y+)z = 100 - x - y;if (5 * x + 3 * y + z / 3 = 100)(公鸡0只,母鸡1只,小鸡2只,x,y,z);44(20)编一个程序,定义数组,用for循环语句,顺序输入10个实数,然后逆序输出这10个数。(k)int i;int a = new int10;for (i = 0; i = 0; i-)(0 , ai);();45(40)编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。(k)int i, j, temp;const int n = 10