c#期末题库 方法题

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;
     }

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值