c#编程答题思路总结

1.数字加密问题

原题
在这里插入图片描述
题库位置:方法题15
在这里插入图片描述

   static int returnResult(int num)
   {
       int a = 0, b = 0, c = 0, d = 0;
       //各位按规则加密
       a = (num /1000%10 + 7) % 10;
       b = (num /100%10 + 7) % 10;
       c = (num /10 % 10 + 7) % 10;
       d = (num % 10 + 7) % 10;
       //交换顺序
       return b * 1000 + a * 100 + d * 10 + c;
   }

总结:这题没什么好说的,取个位数就是%10,十位数就是/10%10依次类推,最后乘以每一位的位权就是恢复值。

2正负数计算题

原题
在这里插入图片描述
题库:简单题17
在这里插入图片描述
比较简单不多赘述

3 统计字母出现的次数

在这里插入图片描述
题库中没有找到对应的原题,但是本题涉及到了一个字典的使用

static void Main(string[] args)
{
    Console.WriteLine("请输入一个长度大于6的字符串:");

    string input = Console.ReadLine();
    if (input.Length < 6)
    {
        Console.WriteLine("字符串长度必须大于6。");
        return;
    }
    //Dictionary<char, int>是一种C#泛型集合类型,它表示一个键为char类型,值为int类型的字典。
    //这种类型的字典可以存储字符和整数的键值对,并且可以通过键来访问或修改其中的值。
    Dictionary<char, int> charCount = new Dictionary<char, int>();
    foreach (char c in input) //input.ToLower() 将输入的字符串转换为小写。
    {
        //如果当前字符是字母
        if(c>='a' && c<='z' ||c>='A' && c <= 'Z')
        {
            //判断当前字符是否开始计数
            if (charCount.ContainsKey(c))
                charCount[c]++;
            else
                charCount[c] = 1;
        }          
    }

    Console.WriteLine("每个字母出现的次数:");
    //字典中存储的键值对类型是KeyValuePair
    foreach (KeyValuePair<char, int> pair in charCount)
    {
        Console.WriteLine($"字母 '{pair.Key}' 出现了 {pair.Value} 次");
    }
}

重点是dictionary类的使用
1.创建一个dictionary类
前面是键的类型,后面是值的类型
Dictionary<char, int> charCount = new Dictionary<char, int>();
2.判断是否包含该键的方法
Containskey
3.通过键找到值
charCount[键]
4.遍历dictionary
每个dictionary中的基本类型是KeyValuePair<char, int> pair
通过pair.key和pair.value可以获取键值对的键和值

4 字符串添加字符

原题
在这里插入图片描述

题库:方法题6
在这里插入图片描述

 static String InsertStr(String str)
 {
     for (int i = 0; i < str.Length; i++)
     {
         if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))
         {
             //insert方法返回一个新的字符串,插入字符串在指定下标的前面
             str = str.Insert(i + 1,"$");
             i++;
         }
     }
     return str;
 }

用一个方法返回多个返回值

在这里插入图片描述
这里是写一个方法要有多个返回值,这里要用到的是ref和out关键字,用ref修饰的关键字在进入方法之前要被初始化,out则不用被初始化
特别注意的是当我们调用这个方法是也要把对应的变量用ref或者out进行修饰!

类的基本操作

这题暂时没有原题,这里先基本说一下这个要求
当一个父类要提供对于子类属性的计算接口时,有以下两种方法进行提供
1.创建一个方法,这个方法需要一个子类对象
2.把父类变成一个抽象类,写一个对应的抽象方法,并且在子类中实现它
特别注意的是在第二种方法中,由于父类是抽象类,抽象类是没有对象的,所以创建父类的对象的时候要调用对应的子类的构造方法.

1. 声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。扩展(*):不使用第三个变量如何交换? 2. 用方法来实现:将上题封装一个方法来做,方法有两个参数分别为num1,num2,将num1与num2交换。提示:方法有两个参数n1,n2,在方法中将n1与n2进行交换,使用ref。(*) 3. 请用户输入一个字符串,计算字符串中的字符个数,并输出。 4. 用方法来实现:计算两个数的最大值。思考:方法的参数?返回值?扩展(*):计算任意多个数间的最大值(提示:使用可变参数,params)。 5. 用方法来实现:计算1-100之间的所有整数的和。 6. 用方法来实现:计算1-100之间的所有奇数的和。 7. 用方法来实现:判断一个给定的整数是否为“质数”。 8. 用方法来实现:计算1-100之间的所有质数(素数)的和。 9. 用方法来实现:有一个整数数组:{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 },找出其中最大值,并输出。不能调用数组的Max()方法。 10. 用方法来实现:有一个字符串数组:{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出最长的字符串。 11. 用方法来实现:请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。Math.Round() 12. 请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。 13. 有如下字符串:【"患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。需求:①请统计出该字符中“咳嗽”二字的出现次数,以及每次“咳嗽”出现的索引位置。②扩展(*):统计出每个字符的出现次数。 14. 将字符串" hello world,你 好 世界 ! "两端空格去掉,并且将其中的所有其他空格都替换成一个空格,输出结果为:"hello world,你 好 世界 !"。 15. 制作一个控制台小程序。要求:用户可以在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数,以及每个学生的姓名。效果如图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值