1. 声明两个变量:要求将两个变量交换。
int tmp = n1; n1 = n2; n2 = tmp; n1 = n1 + n2; n2 = n1 - n2; n1 = n1 - n2; n1 = n1 + n2; n2 = n1 - n2; n1 = n1 - n2; n1 = n2 + (n2 = n1) * 0;
2、交换两个变量,封装成方法。
private static void swap(ref int n1,ref int n2) { int tmp = n1; n1 = n2; n2 = tmp; }
3、通过编程计算1+2-3+4-5+6-7+......100的值。
int iSum = 0; for (int i = 1; i <= 100; i++) { if(i == 1 || i % 2 == 0) { iSum += i; } else { iSum += (-i); } }
4、请用户输入一个字符串,计算字符串中的字符个数,并输出。
string str = @"你好@中国 123"; //字符串的Length属性表示字符串中字符的个数,无论中文字符还是英文字符,一个字符就是一个字符,不是字节数。 int len = str.Length;
5、计算1-100之间的所有整数的和。
int iSum = 0; for (int i = 1; i <= 100; i++) { iSum += i; }
6、计算1-100之间的所有奇数的和。
int iSum = 0; for (int i = 1; i <= 100; i++) { if(i % 2 != 0) { iSum += i; } }
7、定义方法来实现:判断一个给定的整数是否为“质数”。
private static bool IsPrimeNumber(int n) { if(n > 1) { for (int i = 2; i < n; i++) { if(n % i == 0) { return false; } } return true; } else { throw new ArgumentException("数字小于1不是质数!"); } }
8、定义方法来实现:计算任意多个数的最大值。
private static int GetMaxValue(params int[] nums) { int max = nums[0]; for (int i = 1; i < nums.Length; i++) { if(max < nums[i]) { max = nums[i]; } } return max; } private static int GetMaxValue(int n1, int n2) { return n1 > n2 ? n1 : n2; }
9、计算1-100之间的所有质数(素数)的和。
int iSum = 0; for (int i = 2; i < 100; i++) { if(IsPrimeNumber(i)) { iSum += i; } }
10、定义方法来实现:有一个整数数组,找出其中最大值,并输出。不能调用数组自身的Max()方法。
private static int GetMaxValueFromArray(int[] arrNumber) { int max = arrNumber[0]; for (int i = 1; i < arrNumber.Length; i++) { if(max < arrNumber[i]) { max = arrNumber[i]; } } return max; }
11、定义方法来实现:有一个字符串数组,请输出字符数最多的字符串。
private static string GetLongestName(string[] names) { string longName = names[0]; for (int i = 1; i < names.Length; i++) { if(longName.Length < names[i].Length) { longName = names[i]; } } return longName; }
12、定义方法来实现:请计算出一个整型数组的平均值。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。
private static double GetAvgFromArray(int[] nums) { int iSum = 0; for (int i = 0; i < nums.Length; i++) { iSum += nums[i]; } return Math.Round(iSum * 1.0 / nums.Length,2); }
13、请通过冒泡排序法对整数数组实现升序排序。
private static void Mysort(int[] arrInt) { for (int i = 0; i < arrInt.Length; i++) { for (int j = arrInt.Length - 1; j > i; j--) { if(arrInt[j-1] > arrInt[j]) { swap(ref arrInt[j-1],ref arrInt[j]); } } } }
14、请输入一个十进制数字,计算出对应的二进制数字,以字符串方式输出。
private static string GetBinaryNumber(int n) { List<string> list = new List<string>(); while(n >= 2) { int shang = n / 2;//60 30 15 7 3 1 int yushu = n % 2;//000111 list.Add(yushu.ToString());//000111 n = shang; } list.Add(n.ToString());//0001111 list.Reverse();//1111000 return String.Join("", list.ToArray()); }
15、请用户输入一个年份,判断该年份是否为闰年。判断闰年条件:1>能被4整除但不能被100整除2>能被400整除的。
private static bool IsLeapYear(int iYear) { if (iYear % 4 == 0 && iYear % 100 != 0 || iYear % 400 == 0) { return true; } else { return false; } }
16、在控制台输出如下显示的“乘法口诀表”。
for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { Console.Write("{0}*{1}={2}\t",j,i,j*i); } Console.WriteLine(); }
17、自己编写一个函数,实现类似.net中Trim()函数的功能:去掉字符串两端的空格。
private static string MyTrim(string msg) { int start = 0; int end = msg.Length - 1; while(start < msg.Length) { if(!char.IsWhiteSpace(msg[start])) { break; } start++; } while(end >= start) { if(!char.IsWhiteSpace(msg[end])) { break; } end--; } return msg.Substring(start,end-start+1); }
18、随机生成10个1-100之间的不重复的偶数,填充到List<int>集合中。
List<int> list = new List<int>(); Random rand = new Random(); int index = 0; while(list.Count < 10) { int num = rand.Next(1, 101); if(num % 2 == 0 && !list.Contains(num)) { list.Add(num); } index++; } for (int i = 0; i < list.Count; i++) { Console.WriteLine(list[i]); }
19、有如下字符串:【"患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。需求:①请统计出该字符中“咳嗽”一词的出现次数,以及每次“咳嗽”出现的索引位置。②扩展(*):统计出每个字符的出现次数。
//使用IndexOf(),该方法返回在整个字符串中,指定的字符或字符串第一次出现的索引位置,如果没有找到指定的字符或者字符串则返回-1 string msg = "患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"; string word = "咳嗽"; int index = 0; int count = 0; while((index = msg.IndexOf(word,index)) != -1) { count++; Console.WriteLine("第{0}次出现【咳嗽】,出现索引是:{1}", count, index); index = index + word.Length; }
20、将字符串" hello world,你 好 世界 ! "两端空格去掉,并且将其中的所有其他空格都替换成一个空格,输出结果为:"hello world,你 好 世界 !"。
string msg = " hello world,你 好 世界 ! "; msg = msg.Trim(); string[] result = msg.Split(new char[] { ' ' },StringSplitOptions.RemoveEmptyEntries); string res = String.Join(" ",result);
21、请统计出数组:{1,2,3,4,5,6,7,8,9,1,2,3,79,23,45,64,9,3,2,4}中的不重复的数字的个数。【思考】如果题目要求变更为去除重复数字放到一个新数组中,如何实现?
//1>统计不重复的元素的个数 int[] arrInt = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 79, 23, 45, 64, 9, 3, 2, 4, 1, 1, 1, 1, 1, 1 }; //统计不重复的元素的个数。 int count = 0; for (int i = 0; i < arrInt.Length; i++) { bool b = true; for (int j = 0; j < arrInt.Length; j++) { if (arrInt[i] == arrInt[j] && i != j) { b = false; break; } } if (b) { count++; } } Console.WriteLine("不重复的元素的个数是:{0}", count); //2>去除重复 int[] arrInt = { 1, 2, 3, 4, 79, 79, 5, 6, 7, 8, 9, 1, 2, 3, 79, 23, 45, 64, 9, 3, 2, 4, 1, 1, 1, 1, 1, 1, 79, 79 };//1,1,1,1,1,2,2,2,3,4,5,6 Array.Sort(arrInt); List<int> list = new List<int>(); for (int i = 0; i < arrInt.Length - 1; i++) { if (arrInt[i] != arrInt[i + 1]) { list.Add(arrInt[i]); } } list.Add(arrInt[arrInt.Length - 1]); for (int i = 0; i < list.Count; i++) { Console.WriteLine(list[i]); }
22、制作一个控制台小程序。要求:用户可以在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数,以及每个学生的姓名。
List<string> list = new List<string>(); string userName = string.Empty; int count = 0; do { Console.WriteLine("请输入姓名:"); userName = Console.ReadLine(); if (userName.IndexOf('王') == 0) { count++; } list.Add(userName); } while (userName.ToLower() != "quit"); list.RemoveAt(list.Count - 1); Console.WriteLine("共输入了:{0}个学生,每个学生信息是:", list.Count); foreach (string name in list) { Console.WriteLine(name); } Console.WriteLine("姓王的同学的个数是:{0}", count);
23、将普通日期格式:“2011年6月4日” 转换成汉字日期格式:“二零一一年六月四日”。暂时不考虑10日、13日、23日等“带十”的问题。
private static string ConvertDate(string date) { char[] chs = date.ToCharArray(); for (int i = 0; i < date.Length; i++) { switch (chs[i]) { case '0': chs[i] = '零'; break; case '1': chs[i] = '一'; break; case '2': chs[i] = '二'; break; case '3': chs[i] = '三'; break; case '4': chs[i] = '四'; break; case '5': chs[i] = '五'; break; case '6': chs[i] = '六'; break; case '7': chs[i] = '七'; break; case '8': chs[i] = '八'; break; case '9': chs[i] = '九'; break; } } return new string(chs); }