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.把父类变成一个抽象类,写一个对应的抽象方法,并且在子类中实现它
特别注意的是在第二种方法中,由于父类是抽象类,抽象类是没有对象的,所以创建父类的对象的时候要调用对应的子类的构造方法.