c#练习题及答案_第1页
c#练习题及答案_第2页
c#练习题及答案_第3页
c#练习题及答案_第4页
c#练习题及答案_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、C#?序设计基础习题库程序Pi=3., 从键盘上输入半径r, 求出圆的面积。1.(20) 编一个程序,定义常量 (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 = ();( 请输入一个数:);z = ();(0,10:f3, x

2、);(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;( 请输入一个实数:);x = ();(

3、请输入一个实数:);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)se

5、cond = 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( 不及格 );

6、18 ( 20) 编一个程序,输入0 100 之间的一个学生成绩分数, 用 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:( 成绩不及格

7、);break;19 (20) 编一个程序,利用do-while 循环语句 , 从键盘上输入10 个整数,求出它们的和。(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*

8、(1-1/3+1/5+.+1/n)要求当1/n= ;pi = s * 4;(pi 的值为:0,pi);22 (20)编一个程序,从键盘上输入二个实数,使用 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

9、(i = 10)s = s + (i, 2);i+;( 和为 0,s);24 (20) 编一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,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+(

10、1+2)+(1+2+3)+.+(1+2+3+.+10)之和。 (k)int i = 1, s = 0,j=1, s1 = 0;while (j =10)while (i = j)s = s + i;i+;s1=s1+s;j+;(0, s1);句,求出26 (20) 编一个程序,输入二个正整数,求出它们的最大公约数。int i, j,k;( 请输入两个正整数);i = ();j = ();k = i j ? i : j;while (!(i % k = 0 & j % k = 0) k-;( 最大公约数为0,k);(k)27 (20) 编一个程序,用while 循环语句,从键盘输入10 个数,要

11、求找出最大数和次大数。(k)int i=1,max=1,max1=1;int s;( 请输入 10 个数 :);while (i max)max1 = max;max = s;else if (s max1)要求找出最大s = max1;i+;( 最大值为0, 次大值为1,max,max1);28 (40) 编一个程序,要求使用while 语句,输入用户名和密码,实现用户登录程序的功能,至多允许输入三次,超过三次不允许登录。( k)const string UserName = admin;const string PassWord = 123456;string username, pass

12、word;int i=1;while(i=3)( 请输入用户名);username = ();( 请输入密码);password = ();if (username = UserName & password = PassWord)break;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

13、 的值为 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 ( 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

14、= (-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 中的素数为:);while (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 循环语句实现下列功能:有一篮鸡蛋,不

15、止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个。(k)int num=2;while(num10000)if (num % 2 = 1 & num % 3 = 1 & num % 4 = 1)( 这篮鸡蛋至少有0 个 , num);break;num+;35 ( 20)编一个程序,用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 循环

16、语句,打印出九九乘法口诀表。(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 名同学的数学平均成绩。(k)double math=new double 10;( 请输入 10 名学生的数学成绩);for (int i = 0; i ; i+)mathi = ();double max=math0, min=math0,ave,sum=0

17、;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) ints = 0, jc = 1;for (int 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 循环

18、语句求出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 个实数,分别求出它们中的正数之和,以及负数之和。(k)int i;double sum1 = 0, sum2 = 0, x;for (i = 1; i 0)sum1 += x;elsesum2 += x;( 正数之和:0 ,负数之

19、和: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 & i + j + k = 30) (0枚 t1 枚 t2枚 , i, j, k);42 ( 20)编一个程序,把一张面值100 元的钞票换成5 元

20、, 1 元和 5 角面值的钞票,要求100 元换以上的零钱100 张,且要求每种不少于一张。请问,有哪几种换法?(k)int i, j, k;20 )编一个程序,解决百钱买百鸡问题。某人有100 元钱,要买100 只鸡。 公鸡 5 元钱一只,母鸡 3 元钱一只,小鸡一元钱3 只。 问可买到公鸡,母鸡,小鸡各为多少只。问题分析:设公鸡x 只,母鸡y 只,小鸡z 只,可以列出两个方程:x+y+z=1005x+3y+z/3=100我们采用 “穷举法”来解决此问题。( k)double z;for( double x=1;x=20;x+)for (double y = 1; y = 33; y+)z

21、= 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;int SortArray = new intn;for

22、(i = 0; i n; i+)(n 请输入一个数:);SortArrayi = ();(n 等待排序的数据序列为:);for (i = 0; i = 0; i-)for (j = 0; j SortArrayj + 1)temp = SortArrayj;SortArrayj = SortArrayj + 1;SortArrayj + 1 = temp;(n 已经排序后的数据序列为:);for (i = 0; i n; i+)(0 , SortArrayi);();46 ( 40)编一个程序,定义一个有10 个元素的一维数组a, 在键盘上输入时没有大小次序, 但是存入数组时要按由小到大的顺序

23、存放。例如,输入第1 个数 1时 , 存入 a0 ;假如第2 个数是5,则数存入a1 ;假如第3 个数是4,那么把前面输入的5 向后面移动到a2, 把 4 插入到 a1 的位置上, 这样使得每输入一个数 , 保持从小到大的顺序排列。(k)int i, j, temp, n = 10;int a = new intn;( 请输入 0 个整数。, n);for (i = 0; i = 1; j-)if (aj - 1 aj)temp = aj - 1;aj - 1 = aj;aj = temp;elsebreak;(n 依次输出数组中的值:);for (i = 0; i n; i+)(0 , ai

24、);();47 ( 20) 编一个程序,定义一个数组,用 for 语句输入10 个实数存入这个数组,然后按逆序重新存放后再输出。(k)double a = new double10;double temp;for (int i = 0; i 10; i+)( 请输入一个实数:);ai = ();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;( 大写字母有0 个,小写字母有1 个 ,n1,n2);49 (

25、 40)编一个程序,定义一个字符数组和一个字符串变量,给这个字符串变量输入一个字符串,然后用 foreach 语句把这个字符串拷贝到字符数组里,最后输出字符数组。(k)string s;( 请输入一个字符串);s = ();char ch=new char ;int n=0;foreach (char c in s)chn = c;n+;foreach (char c in ch)(c);50 ( 20)输入一个字符串,将其中小写字母改成大写字母,把大写字母改成小写字母,其余字符不变,输出该字符串。( k)string s;( 请输入一个字符串:);s = ();foreach (char c

26、h in s)if (a = ch & ch = z) (char)(int)ch - 32);else if (A = ch & ch = Z) (char)(int)ch + 32);else (ch);();51 ( 20)编一个程序,输入一个字符串, 用 ToCharArray() 方法把字符串中的内容拷贝到字符数组中,然后用foreach 输出该字符数组。(k)string s;( 请输入一个字符串);s = ();char ch = new char;ch = ();foreach (char c in ch)(c);52 ( 20)编一个程序,定义一个字符串变量,输入字符串,然后

27、再输入一个字符,在字符串中查找该字符出现的次数。(k)string a;char b;int d = 0;( 请输入一个字符串);a = ();( 请输入一个字符);b = ();for (int c = 0; c = - 1; c+)if (ac = b) d+;( 字符 0 在字符串1 中出现了2 次 , b, a, d);53 ( 40)编一个程序,定义一个字符串变量,输入字符串,判断有没有连续重复字符出现,统计重复字符出现次数。例如, aaabccdfff, 其中 a 重复出现二次,c 重复出现一次,f 重复出现二次,共计字符重复五次。(k)string i;int a = 0;( 输

28、入一个字符串);i = ();for (int b = 1; b = - 1; b+)if (ib = ib - 1)a+;(0, a);54 ( 20)编一个程序,利用for 语句,打印一个如下形式的一个直角三角形,顶点在屏幕中线上,行数从键盘输入。*(k)int i, j, n = 0, m = 40;while (n = 0)( 请输入一个正整数:);n = ();(n);for (i = 1; i = n; i+)(n);for (j = 1; j = m; j+) ( );for (j = 1; j = i; j+) (*);();55. ( 40)编一个程序,利用for 语句,打印

29、一个如下形式的一个等腰三角形,顶点在屏幕中线上,行数从键盘输入。*( k)int i;( 从键盘上输入一个数);i = ();for (int b = 1; b = i ; b+)for (int a = 1; a = i - b; a+)( );for (int c = 1; c = 2 * b - 1; c+)(*);();56 ( 40)定义一个一维数组,输入任意6 个整数,假定为7, 4, 8, 9,1, 5。编一个程序,利用for语句,输出如下方阵的内容:748915574891157489915748891574489157( k)int a = 7, 4, 8, 9, 1, 5

30、;int temp;for (int i = 0; i 6; i+)(0 ,ai);for(int i=0;i0; j-)aj = aj - 1;a0 = temp;for (int k = 0; k 6; k+)(0 ,ak);57 ( 20)编一个程序,定义一个n 行 n 列的二维整数数组,赋初值,然后求出对角线上的元素之和。(k)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

31、i, j;for (i = 0; i (0); i+)for (j = 0; j (1); j+)if (i = j | i + j = n + 1)s = s + arri, j;( 对角线上的元素之和0,s);58 ( 40)编一个程序,输入一个正整数,判断它是否为素数。如不是,则输出其所有正约数。( k)( 请输入一个正整数:);uint i, n, flag;bool f = true;n = ();(40) 所谓 “降序数”是指一个自然数的低位数字不大于高位数字的数。例如:64,55, 321 都认为是降序数,但是623 不是降序数。一位数字被认为是降序数。编一个程序,输入一个数,判

32、定它是否为降序数。该程序是循环执行的,当输入的数为 0 时,则退出程序运行。( k)int i, j, m, n;bool pos;while (true)n = -1;while (n = 0)if (n = 0) return;( 请输入一个正整数或者0: );n = ();if (n 0)j = m % 10;m = m / 10;if (i j)pos = false;break;i = j;if (pos) (0 是降序数。, n);else (0 不是降序数。, n);62 (40) 所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如:646, 1551,8

33、都认为是回文数。编一个程序,输入一个正整数,判定它是否为回文数。当输入的数为0 时,则退出程序,否则继续循环执行程序。(k)int s, k;int i, j;int a = new int20;bool pos;while (true)s = -1;while (s 0)i+;ai = k % 10;k = k / 10;40)编一个程序,输入一个整数,判定它为几位数。例如,99 是 2 位数, -100是 3 位数。 ( k)int m, n, k = 0;( 请输入一个整数:);m = ();n = (m);while (n != 0)n = n / 10;k+;(0 是 1 位数。 ,

34、 m, k);66 ( 40)编一个程序,定义一个字符串数组,输入若干国家名称(所有名称全用大写或者全用小写), 设计一个算法按字典顺序将这些国家名称进行排序。(k)int i, j, n = 10;string SortArray = new stringn;string temp;(n 请输入 0 个字符串:, n);for (i = 0; i n; i+)SortArrayi = ();for (i = 1; i n; i+)for (j = 0; j 0)temp = SortArrayj;SortArrayj = SortArrayj + 1;SortArrayj + 1 = tem

35、p;(n 已经排序后的国家名称为:);for (i = 0; i n; i+)(SortArrayi);67 .( 20) 编一个程序,定义类 student 和它的成员(学号 , 姓名 , 年龄和 c_sharp程序设计成绩), 用类 student 生成对象s, 分别对对象s 的成员赋值,然后输出对象 s。 (k)class studentpublic string学号;public string姓名;public int 年龄 ;public int c_sharp 程序设计成绩;static void Main(string args)student s;s = new student

36、();s. 学号 = 09061234;s. 姓名= 刘云飞;5. 年龄= 21;程序设计成绩= 95;( 学生学号:0,s.学号);( 学生姓名:0,s.姓名);( 学生年龄:0,s.年龄);(c_sharp 程序设计成绩:0, 程序设计成绩);68. ( 20)编一个程序,定义结构(有姓名,年龄,手机号码三个字段),再定义一个一维数组,把结构作为数组元素类型,存入数据,然后依次输出。(k)struct Contactpublic string name;public int age;public string telephone;class Programstatic void Main(

37、string args)Contact c = new Contact3;ame=J龙;c0.age=54;c0.telephone=;= 王鸣 ;c1.age=42;c1.telephone=;= 张星 ;c2.age=39;c2.telephone=;( 姓名:0,,);( 年龄:0,,c0.age);( 手机号码:0,c0.telephone);( 姓名:0,,);( 年龄:0,,c1.age);( 手机号码:0,c1.telephone);( 姓名:0,,);( 年龄:0,,c2.age);( 手机号码:0,c2.telephone);69. ( 40)编一个程序,定义类( 有姓名,年龄,手机号码三个字段) ,再定义一个一维数组,使数组元素为类,存入数据,然后依次输出, 使用 for 循环语句进行输入输出操作。( k)class Contactpublic string name;public int

温馨提示

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

评论

0/150

提交评论