C#基础-057 综合测试题
来源:互联网 发布:安捷伦数据采集仪软件 编辑:程序博客网 时间:2024/05/16 18:26
/*1.(10分)编写方法,返回1001-2001之间有多少个合数以及所有素数之和。*/ class Task01 { public static void CompositeNumberAndSumPrime(int startNum, int endNum, out int compositeNum, out int sumPrime) { sumPrime = 0; compositeNum = 0; if (startNum > 1) { for (int i = startNum; i <= endNum; i++) { if (IsPrime(i)) { Console.WriteLine(i); sumPrime += i; } else { compositeNum++; } } } } public static bool IsPrime(int number) { for (int i = 2; i <= Math.Sqrt(number); i++) { if (number%i==0) { return false; } } return true; } }
/*2.(10分) 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13... 编写方法,求出这个数列的前20项之和。*/ class Task02 { public static double Sum(int number) { double sum = 0; double[] fra = Fraction(number); for (int i = 0; i < fra.Length; i++) { sum += fra[i]; } return sum; } public static double[] Fraction(int num) { double[] ret = new double[num]; double[] numerator = new double[num]; double[] denominator = new double[num]; numerator[0] = 2; numerator[1] = 3; denominator[0] = 1; denominator[1] = 2; for (int i = 2; i < num; i++) { numerator[i] = numerator[i - 1] + numerator[i - 2]; denominator[i] = denominator[i - 1] + denominator[i - 2]; ret[i] = numerator[i] / denominator[i]; } ret[0] = numerator[0] / denominator[0]; ret[1] = numerator[1] / denominator[1]; return ret; } }
/// <summary> /// 3.(10分)编写方法,接收参数n,当(n=4)显示如下图形 //A //B B B //C C C C C //D D D D D D D /// </summary> class Task03 { public static void Show(int lines) { for (int i = 1; i <= lines; i++) { for (int j = 0;j < 2*i-1; j++) { Console.Write((char)('A'+i-1)+" "); } Console.WriteLine(); } } }
/// <summary> /// 4.(10分)编写方法,传入一行字符,分别统计出其中汉字、英文字母、空格、数字和其它字符的个数。【注:汉字编码范围('\u4e00' - '\u9fa5')】 /// </summary> class Task04 { public static void Count(char[] chArr, out int chineseNum, out int wordsNum, out int spaceNum, out int figureNum, out int otherNum) { chineseNum = 0; wordsNum = 0; spaceNum = 0; figureNum = 0; otherNum = 0; for (int i = 0; i < chArr.Length; i++) { if (chArr[i]>='a'&&chArr[i]<='z'||chArr[i] >= 'A' && chArr[i] <= 'Z') { wordsNum++; } else if (chArr[i]>= '\u4e00'&&chArr[i]<= '\u9fa5') { chineseNum++; } else if (chArr[i]==' ') { spaceNum++; } else if (chArr[i]>='0'&&chArr[i]<='9') { figureNum++; } else { otherNum++; } } } }
/*5.(10分)编写方法,输入两个正整数m和n,求其最大公约数和最小公倍数 。*/ class Task05 { public static int GongYueShu(int m, int n) { int gongyue, i; gongyue = m; //gongyue存放最大公约数 if (gongyue > n) { gongyue = n; //保证gongyue为m,n中的最小者 } for (i = gongyue; i >= 1; i--) //求最大公约数 { if ((m % i == 0) && (n % i == 0)) { break; } } gongyue = i; return gongyue; } public static int GongBeiShu(int m, int n) { int gongbei, j; gongbei = m; //gongbei存放最小公倍数 if (gongbei < n) { gongbei = n; //保证gongbei为m,n中的最大者 } for (j = gongbei; ; j++) //求最小公倍数 { if ((j % m == 0) && (j % n == 0)) break; } gongbei = j; return gongbei; } }
/*6. (10分)编写方法,参数为a和n,求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字,n表示一共几个数。例如2+22+222+2222+22222(此时a=2,n=5)。*/ class Task06 { public static int Sum(char a,int n) { int sum = 0; string[] number = new string[n]; string temp = string.Empty; for (int i = 0; i < n; i++) { number[i]=temp.PadLeft(i+1,a); } foreach (var item in number) { sum += int.Parse(item); } return sum; } }
/*7.(10分)编写方法,传入数组{3,5,2,3,4,1,2,2},该方法返回新的数组,且里面的元素为重复出现的元素,如{3,2}*/ class Task07 { public static char[] Repeat(int[] arr) { string temp = string.Empty; for (int i = 0; i < arr.Length - 1; i++) { if (temp.Contains(arr[i].ToString()) == false) { for (int j = i+1; j < arr.Length; j++) { if (arr[i] == arr[j]) { temp += arr[i]; break; } } } else { continue; } } char[] retArr = temp.ToCharArray(); return retArr; } }
/*8.(10分)利用递归方法求10的阶乘的一半*/ class Task08 { public static double Factorial(double number) { if (number<=1) { return number/2; } else { return number * Factorial(number-1); } } }
/*9.(10分)编写方法,求满足方程 x + 2y + 0.5z + 5w=200(x,y,z都小于100,大于0)的所有可能存在的变量组(x=?,y=?,z=?,w=?)*/ class Task09 { public static void VariableArr() { for (int x = 1; x < 100; x++) { for (int y = 1; y < 100; y++) { for (int z = 1; z < 100; z++) { for (int w = 1; w < 100; w++) { if (x+2*y+0.5*z+5*w == 200) { Console.WriteLine("x={0},y={1},z={2},w={3}",x,y,z,w); } } } } } } }
/*10.(10分)编写方法,参数为一个字符串,返回所有"你好"的下标,如果不存在返回-1。*/ class Task10 { public static string SearchStringIndex(string str) { string temp = string.Empty; for (int i = 0; i < str.Length; i++) { if (str[i] == '你' && str[i + 1] == '好') { temp += i+1 + " "; } } if (temp != string.Empty) { return temp; } return "-1"; } }
static void Main(string[] args) { //Show(1); //int compositeNum = 0; //int sumPrime = 0; //int startNumber = 2; //int endNumber = 10; //Task01.CompositeNumberAndSumPrime(startNumber,endNumber,out compositeNum,out sumPrime ); //Console.WriteLine("{0}~{1}之间有{2}个合数,所有素数和为:{3}",startNumber,endNumber,compositeNum,sumPrime); //Show(2); //int number = 20; //Console.WriteLine("分数序列:2/1,3/2,5/3,8/5,13/8,21/13...的前{0}项和为:{1}",number, Task02.Sum(number)); //Show(3); //Task03.Show(8); //Show(4); //int chineseNum = 0; //int wordsNum = 0; //int spaceNum = 0; //int figureNum = 0; //int otherNum = 0; //char[] chArr = { 's','f','G','^',' ', ' ', ' ', ' ', '%','5','时','建'}; //Task04.Count(chArr,out chineseNum,out wordsNum,out spaceNum,out figureNum,out otherNum); //Console.WriteLine("这行字符中有{0}个汉字,{1}个字母,{2}个空格,{3}个数字,{4}个其他字符",chineseNum,wordsNum,spaceNum,figureNum,otherNum); //Show(5); //int m, n; //Console.WriteLine("请输入一个正数,按回车键结束!"); //m = int.Parse(Console.ReadLine()); //Console.WriteLine("请再输入一个正数,按回车键结束!"); //n = int.Parse(Console.ReadLine()); //Console.WriteLine("{0}和{1}的最大公约数是 {2}", m, n, Task05.GongYueShu(m, n)); //Console.WriteLine("{0}和{1}的最小公倍数是 {2}", m, n, Task05.GongBeiShu(m, n)); //Console.ReadKey(); //Show(6); //Console.WriteLine(Task06.Sum('8', 3)); //Show(7); //int[] arr = { 3,5,2,3,4,1,2,2,5,4,2,2,4,3 }; //char[]chArr= Task07.Repeat(arr); //ShowChar(chArr); //Show(8); //Console.WriteLine(Task08.Factorial(10)); //Show(9); //Task09.VariableArr(); Show(10); string str = "asbda54你好不是撒娇吧asBJBL NIHAO好记不记得爱卡基本"; Console.WriteLine(Task10.SearchStringIndex(str)); } static void Show(int number) { Console.WriteLine("*************第{0}题*****************",number); } static void ShowChar(char[]arr) { for (int i = 0; i < arr.Length; i++) { Console.Write(arr[i]+" "); } Console.WriteLine(); }
阅读全文
0 0
- C#基础-057 综合测试题
- c# 综合测试题
- JavaSE第一阶段--综合测试题
- 综合测试
- C/C++综合测试题(三)
- C/C++综合测试题(四)
- 一套C、C++综合测试题(20)
- Python数据分析与展示 | 课程综合测试(客观题)
- C++笔试题(一)【高级C++开发工程师综合测试题(风林火山)】
- 都匀话综合测试
- STM32线缆综合测试系统
- 三大框架综合测试
- elasticsearch的综合测试案例
- c# 面试 基础题
- C# 基础题
- (各个公司面试原题)在线做了一套CC++综合测试题,也来测一下你的水平吧(一)
- (各个公司面试原题)在线做了一套CC++综合测试题,也来测一下你的水平吧(二)
- 给系统来个综合测试
- JDBC
- mat opencv 保存图片
- 块级元素和内联元素
- 面试准备之Activity、window、View之间的关系
- HTTP个人总结(四)
- C#基础-057 综合测试题
- Java初学者_Hello World
- 原创 通用源代码重命名工具,简单易用,但很强大
- 聊天室代码(只能群聊,2个2个聊没想好.....)
- 素数算法总结
- EOJ 3292 解密字符串(排序)
- 用KMP算法实现字符串匹配
- 51单片机NEC红外遥控器解码
- 艳辉电影网