C#方法练习题

    科技2025-06-20  6

    c#方法练习题

    1.设计方法:返回两个数字的和

    static void main(String[] args) { int result = Add(2, 3); Console.WriteLine(result); } static int Add(int a,int b) { int c = a + b; return c; }

    2.设计一个方法,传入一个字符串,返回倒序后的字符串 (s.ToCharArray()这个方法可以将字符串转换成字符数组)

    static void main(String[] args) { String a = Reverse("hello"); Console.WriteLine(a); } static String Reverse(string s) { //第一步:将参数字符串分解为一个字符数组(s.ToCharArray()这个方法可以将字符串转换成字符数组) char[] array = s.ToCharArray(); //第二步:声明一个新的字符串,用来拼接倒序后的字符串 String result = ""; //第三步:倒着遍历数组 for (int i = array.Length - 1; i >= 0; i--) { //第四步:将每一个字符拼接到字符串中 result += array[i]; } return result; }

    3.设计方法:转入一个int数组,返回这个数组中的最大值

    static void main(String[] args) { int result = Sum(1, 2, 3, 4, 5); Console.WriteLine(result); } static int GetMax(int[] array) { //取底0个元素作为最大值 int max = array[0]; //从第一个元素开始遍历数组 for (int index = 1; index < array.Length; index++) { //判断遍历到的每个元素是否是比Max还大 if (array[index] > max) max = array[index]; } return max; }

    4.设计方法:查找某元素在数组中的下标(不考虑重复)

    static void main(String[] args) { int result = Select(3, 1, 2, 3, 4, 5) Console.WriteLine(result); } static int IndexOf(int[] array, int ele) { //声明一个int变量作为查询到的下标 int index = -1;//这里不可以写index = 0;因为存在数组中没有这个元素,而系统会默认它为第0个元素 //遍历数组,依次判断每个元素是否和ele相同 for (int i = 0; i < array.Length; i++) { //判断是否相同 if (array[i] == ele) return i; } //如果走到了这一行,说明上方的return没有执行,也就说明数组没有查询到结果 return -1; }

    5.设计方法:转入一个int数组,返回数组中所有元素的平均值

    static void main(String[] args) { float result = Average(1, 2, 3, 4, 5, 6); Console.WriteLine(result); } //5、设计方法:转入一个int数组,返回数组中所有元素的平均值 //教学做法: static float GetAverage(int[] array) { //声明一个变量,用来存储所有元素的和 float sum = 0; //遍历数组,将遍历到的每个元素都累加到sum中 foreach (int item in array) { sum += item; } return sum / array.Length; }

    6.设计方法:查找某个字符在一个字符串中出现的次数

    static void main(String[] args) { int result = Count('c', "abcabc"); Console.WriteLine(result); } static int NumberOf(string str, char c) { //有关字符串:其实字符串就是一个字符数组 //字符串中字符的表示 //第一种 //foreach (char item in str) { } //第二种 //char c = "hello world"[3]; //Console.WriteLine(c);//结果为l //第三种 //string str = "hello world"; //char c = str[5]; //Console.WriteLine(c);//结果为空格 //第四种 //char[] c = s.ToCharArray(); //计数器 int count = 0; //直接遍历一个字符串中所有的字符 foreach (char item in str) { //判断是否相同 if (item == c) count++; } return count; }

    7.设计方法:将一个字符串中的字母进行大小写翻转(Flip),注意字符串中不仅只有字母

    static void main(String[] args) { string str = "abc1234"; string result = ChangeStr(str); Console.WriteLine(result); } static string ChangeStr(string str) { //声明一个新的字符串 string result = ""; //将字符串转成一个字符数组 char[] array = str.ToCharArray(); //遍历这个数组 foreach (char item in array) { //判断这个item是否是字母 if (item >= 'A' && item <= 'Z') { result += (char)(item + 32); } else if (item >= 'a' && item <= 'z') { result += (char)(item - 32); } else { result += item; } } return result; }

    *8.设计方法:返回一个十进制数字的二进制表形式(不考虑负数)

    static void main(String[] args) { string result = ToBinary(1); Console.WriteLine(result); } //eg:1 ——>0000 0001(需要转换为二进制,每四位一空格,补齐位数) static string ToBinary(int number) { //声明一个字符串用来做结果的拼接 string result = ""; while (number > 0) { //拼接余数 result += number % 2; //除数 number /= 2; } //补齐位数 result = BinaryString(result); //倒序字符串 result = Reverse(result); //四位一取空格 result = SpaceString(result); return result; } //将一个二进制补齐为8位、16位、32位或者64位 static string BinaryString(string original) { int length = 0;//表示需要补齐多少位 if (original.Length <= 8) length = 8; else if (original.Length <= 16) length = 16; else if (original.Length <= 32) length = 64; else length = 64; //如果 while (original.Length < length) { original += "0"; } return original; } //四位一取 static string SpaceString(string original) { //声明一个字符串用来拼接最后的结果 string result = ""; //0000 1000 1100 1100 for (int i = 0; i < original.Length; i++) { //将原字符串中的字符拼接到新的字符串中 result += original[i]; //拼接空格 if ((i + 1) % 4 == 0)//这里i+1是因为数组下标是从0开始的,而位数是从1开始的,所以应当是元素下标为3时取一个空格 result += " "; } return result; } //倒序 static String Reverse(string s) { char[] array = s.ToCharArray(); String result = ""; for (int i = array.Length - 1; i >= 0; i--) { result += array[i]; } return result; }

    *9.设计方法:让用户从控制台输入一个年月日,输出这一天是该年的第几天

    static void main(String[] args) { DayOf(); } static void DayOf() { Console.WriteLine("请输入一个年份:"); int year = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入一个月份:"); int month = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入一个天:"); int day = Convert.ToInt32(Console.ReadLine()); int days = 0;//用来记录第1xx天 switch (month - 1) { case 11: days += 30; goto case 10;//本来在c#语句中,穿透性被关闭了,但加了goto case,具有了穿透性 case 10: days += 31; goto case 9; case 9: days += 30; goto case 8; case 8: days += 31; goto case 7; case 7: days += 31; goto case 6; case 6: days += 30; goto case 5; case 5: days += 31; goto case 4; case 4: days += 30; goto case 3; case 3: days += 31; goto case 2; case 2: if (year % 4 == 0 && year % 100!= 0 || year % 400 == 0)//判断是否是闰年 { days += 29; } else { days += 29; } goto case 1; case 1: days += 31; break; } days += day; Console.WriteLine($"{year}年{month}月{day}日是该年的第{days}天。"); }

    *10.设计方法:参数分解质因数

    static void main(String[] args) { FenJie(12345); } //(先用2开始整除,直到2不能再整除了,再用3整除,后面的数字整除不必在考虑) static void FenJie(int number) { string result = ""; for (int i = 2; i <= number; i++) { if (number % i == 0) { number /= i; result += i + "x"; i--;//是为了保证每次整除都是从2开始的,直到2不能再整除了,再从3开始除 } } Console.WriteLine(result); }
    Processed: 0.017, SQL: 8