C#小程序练习题及答案.doc_第1页
C#小程序练习题及答案.doc_第2页
C#小程序练习题及答案.doc_第3页
C#小程序练习题及答案.doc_第4页
C#小程序练习题及答案.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 = A & ch = A & ch = a & ch = 0 & ch = A & ch = a & ch = 0 & f 0)j = i + 100;Console.WriteLine(00,最后结果是1, i, j);elsej = i + 500;Console.WriteLine(0 0)Console.WriteLine(这个数大于0);else if(i=0)Console.WriteLine(这个数等于0);elseConsole.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;elsee = 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 y&xz)|(xz)second = x;else if (yx&yz)|(yz)second = y;elsesecond = 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(及格);elseConsole.WriteLine(不及格);18(20)编一个程序,输入0100之间的一个学生成绩分数,用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;doConsole.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);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 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;elseConsole.WriteLine(你输入的用户名或者密码错误,请重新输入用户名和密码);i+;if (i = 3)Console.WriteLine(正在登录系统);elseConsole.WriteLine(不能登录系统);29(20)有关系式1*1+2*2+3*3+.+k*k2000,编一个程序,求出满足此关系式的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= 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);elseConsole.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(num10000)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+)mathi = double.Parse(Console.ReadLine();double max=math0, min=math0,ave,sum=0;for (int j = 0; j math.Length; j+)if (max mathj)min = mathj;sum = sum + mathj;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 0)sum1 += x;elsesum2 += 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枚t1枚t2枚, 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(0t1t2, 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 int10;for (i = 0; i = 0; i-)Console.Write(0 , ai);Console.WriteLine();45(40)编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。(k10040603)int i, j, temp;const int n = 10;int SortArray = new intn;for (i = 0; i n; i+)Console.Write(n请输入一个数:);SortArrayi = int.Parse(Console.ReadLine();Console.Write(n等待排序的数据序列为:);for (i = 0; i = 0; i-)for (j = 0; j SortArrayj + 1)temp = SortArrayj;SortArrayj = SortArrayj + 1;SortArrayj + 1 = temp;Console.Write(n已经排序后的数据序列为:);for (i = 0; i n; i+)Console.Write(0 , SortArrayi);Console.WriteLine();46(40)编一个程序,定义一个有10个元素的一维数组a,在键盘上输入时没有大小次序,但是存入数组时要按由小到大的顺序存放。例如,输入第1个数1时,存入a0;假如第2个数是5,则数存入a1;假如第3个数是4,那么把前面输入的5向后面移动到a2,把4插入到a1的位置上,这样使得每输入一个数,保持从小到大的顺序排列。(k10040310) int i, j, temp, n = 10;int a = new intn;Console.WriteLine(请输入0个整数。, n);for (i = 0; i = 1; j-)if (aj - 1 aj)temp = aj - 1;aj - 1 = aj;aj = temp;elsebreak;Console.Write(n依次输出数组中的值:);for (i = 0; i n; i+)Console.Write(0 , ai);Console.WriteLine();47(20)编一个程序,定义一个数组,用for语句输入10个实数存入这个数组,然后按逆序重新存放后再输出。(k10050219)double a = new double10;double temp;for (int i = 0; i 10; i+)Console.Write(请输入一个实数:);ai = double.Parse(Console.ReadLine();for (int i = 0; i 10 / 2; i+)temp = ai;ai = a9 - i;a9 - i = temp;for (int i = 0; i = A & c = a & c = z)n2+;elsecontinue;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)chn = 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 chars.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 (ac = b)d+;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 (ib = ib - 1)a+;Console.WriteLine(0, 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;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 (*);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论