1.回文是指顺读和倒读都一样的字符串。写一个方法,判断一个字符串str1,是否是回文,是回文返回true,否则返回false。例如字符串b是ag7ga是回文,而字符串abc6es就不是回文。要求编写应用程序,来检验方法的正确性。
static void Main(string[] args) { // // 1.回文是指顺读和倒读都一样的字符串。写一个方法,判断一个字符串str1, // 是否是回文,是回文返回true,否则返回false。例如字符串b是ag7ga是回文, // 而字符串abc6es就不是回文。要求编写应用程序,来检验方法的正确性。 Console.WriteLine("请输入一个字符串:"); String s = Console.ReadLine(); if (ISpalindrome(s)) { Console.WriteLine("{0}是回文数", s); } else { Console.WriteLine("{0}不是回文数", s); } } 第一种方法 public static bool ISpalindrome(string s) { string result = ""; for (int i = s.Length - 1; i >= 0; i--) { result += s[i]; } if (result == s) { return true; } else return false; } 第二种方法 public static bool ISpalindrome(string s) { int left = 0;//定义一个左指针指向字符串的开头 int right = s.Length-1;//定义一个右指针指向字符串的结尾 while(left<right) { if (s[left] != s[right]) { return false; } left++; right--; } //直到 left 大于等于 right,表示已经比较完了字符串的一半 return true; }
2.写一个方法,统计一个字符串中单词的个数,返回值为单词个数。规定单词之间由若干个空格隔开。例如若输入字符串" I am a student ",得到结果为 4。要求编写应用程序,来检验方法的正确性。
static void Main(string[] args) { // 2.写一个方法,统计一个字符串中单词的个数,返回值为单词个数。 // 规定单词之间由若干个空格隔开。例如若输入字符串" I am a student ",得到结果为 4。 // 要求编写应用程序,来检验方法的正确性。 Console.WriteLine("请输入一个字符串:"); String s=Console.ReadLine(); int count = GetwordCount(s); Console.WriteLine("单词个数是:{0}", count); } private static int GetwordCount(string s) { int count = 0; for(int i=0;i<s.Length;i++) { if (s[i] == ' ' && i + 1 < s.Length && s[i + 1] != ' ') { count++; } } return count+1; }
3.写一个方法,判断的一个正整数是否是素数,返回值为布尔类型。要求编写应用程序,求1-100之间的所有素数。
static void Main(string[] args) { //3.写一个方法,判断的一个正整数是否是素数,返回值为布尔类型。要求编写应用程序,求1 - 100之间的所有素数。 //素数是指大于 1 的正整数,除了 1 和它本身之外,没有其他正因子(除了 1 和它本身以外不能被其他整数整除)的数。 Console.WriteLine("请输入一个正整数:"); int a=int.Parse(Console.ReadLine()); if (Isprime(a)) { Console.WriteLine("{0}是素数",a); } else { Console.WriteLine("{0}不是素数",a); } for(int i = 1; i < 101; i++) { if (Isprime(i)) { Console.WriteLine(i); } } } public static bool Isprime(int number) { if(number<=1) return false; for(int i = 2; i < number ; i++) { if (number % i == 0) { return false; } } return true; }
4.输入一个字符串,统计字符串中英文字母、数字字符和其他它符号的个数并输出。要求编写应用程序,来检验方法的正确性。
static void Main(string[] args) { Console.WriteLine("请输入一个字符串:"); String s = Console.ReadLine(); Getcount(s); } public static void Getcount(string s) { int letter = 0; int digit=0; int other = 0; for(int i=0; i<s.Length; i++) { if (char.IsLetter(s[i])) { letter++; } else if (char.IsDigit(s[i])) { digit++; } else other++; } Console.WriteLine("英文字母的个数是{0},数字的个数是{1},其他是{2}",letter,digit,other); } //第二种方法 for(int i=0;i<s.Length;i++) { if ((s[i] >= 'a' && s[i]<='z') || (s[i] >= 'A' && s[i]<='Z')) { letter++; } else if (s[i] >= '0' && s[i] <= '9') { digit ++; } else { other++; } }
5.写一个方法,对正整数m求和,其中求和公式为s= 1/2+1/3+…+1/m,方法返回s的值。要求编写应用程序,来检验方法的正确性。
static void Main(string[] args) { // 5.写一个方法,对正整数m求和,其中求和公式为s = 1 / 2 + 1 / 3 +…+1 / m,方法返回s的值。要求编写应用程序,来检验方法的正确性。 Console.WriteLine("请输入一个正整数:"); int m = int.Parse(Console.ReadLine()); Console.WriteLine(" 值为:{0}", getSum(m)); } private static double getSum(int m) {double sum = 0; for(int i = 1; i < m; i++) { sum += 1.0/(i + 1); } return sum; } //第二种方法 for(int i=2;i<=m;i++){ sum+=1.0/i; }
c#期末题库 方法题
于 2023-11-06 21:52:26 首次发布