zoukankan      html  css  js  c++  java
  • 2013116-基础练习

    [1]//声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n120,n210。扩展(*):不使用第三个变量如何交换?

    int num1 = 10;

    int num2 = 20;

    int temp = 0;

    temp = num1;

    num1 = num2;

    num2 = temp;

    Console.WriteLine("n1{0}n2{1}",num1,num2);

    [*]

    int num1 = 10;

    int num2 = 20;

    num1 = num1 + num2;

    num2 = num1 - num2;

    num1 = num1 - num2;

     

    Console.WriteLine("num1{0}num2{1}",num1,num2);

    Console.ReadKey();

     

    [2]//用方法来实现:将上题封装一个方法来做。提示:方法有两个参数n1,n2,在方法中将n1n2进行交换,使用ref。(*

    public static void ChangeNum(ref int num1, ref int num2)

    {

     

    int temp = 0;

    temp = num1;

    num1 = num2;

    num2 = temp;

    }

    static void Main(string[] args)

    {

    int num1 = 10;

    int num2 = 20;

    ChangeNum(ref num1, ref num2);

    Console.WriteLine("num1{0}num2{1}", num1, num2);

    Console.ReadKey();

    }

     

    [3]//请用户输入一个字符串,计算字符串中的字符个数,并输出。

    Console.WriteLine("请输入一个字符串");

    string str = Console.ReadLine();

    Console.WriteLine("输入的字符串长度为:{0}",str.Length);

    [4]//用方法来实现:计算1-100之间的所有整数的和。

    int sum = 0;

    for (int i = 0; i <= 100; i++)

    {

    sum += i;

    }

     

    Console.WriteLine("1-100之间的所有整数的和为{0}",sum);

    [5]//用方法来实现:计算两个数的最大值。思考:方法的参数?返回值?扩展(*):计算任意多个数间的最大值(提示:params)。

    public static int GetMax(ref int num1, ref int num2)

    {

    return num1 > num2 ? num1 : num2;

    }

    [6] //用方法来实现:计算1-100之间的所有奇数的和。(odd)

    public static int GetOdd()

    {

    int sum = 0;

    for (int i = 1; i < 100; i += 2)

    {

    sum += i;

    }

    return sum;

    }

    [7] //用方法来实现:判断一个给定的整数是否为"质数"

    private static bool IsPrime(int num)

    {

    if (num<2)

    {

    return false;

    }

    for (int i = 2 ; i < num; i++)

    {

    if (num%i==0)

    {

    return false;

    }

    }

    return true;

    }

    [8] //用方法来实现:计算1-100之间的所有质数(素数)的和。

    public static int GetSumPrime()

    {

    int sum = 0;

    for (int i = 1; i <= 100; i++)

    {

    if (IsPrime(i))

    {

    sum += i;

    }

    }

    return sum;

    }

     

    [*] public static int GetSum()

    {

    int sum = 0;

    for (int i = 2; i <= 100; i++)

    {

    bool b = true;

    for (int j = 2; j < i; j++)

    {

    if (i % j == 0)//不是质数

    {

    b = false;

    break;

    }

    }

    if (b)

    {

    sum += i;

    }

    }

    return sum;

    }

    [9] //用方法来实现:有一个整数数组:{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 },找出其中最大值,并输出。不能调用数组的Max()方法。

    public static int GetMax(int[] numbers)

    {

    int max = 0;

    foreach (var item in numbers)

    {

    if (item > max)

    {

    max = item;

    }

     

    }

    return max;

    }

    [10] //用方法来实现:有一个字符串数组:{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出最长的字符串。

    public static string GetMax(string[] s)

    {

    string max = s[0];

    for (int i = 0; i < s.Length; i++)

    {

    if (s[i].Length > max.Length)

    {

    max = s[i];

    }

    }

    return max;

    }

    [11] //用方法来实现:请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }

    //要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。

    public static double GetAvt(int[] n)

    {

    double sum = 0;

    for (int i = 0; i < n.Length; i++)

    {

    sum += n[i];

    }

    return sum / n.Length;

    }

    static void Main(string[] args)

    {

    //用方法来实现:请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }

    //要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。

    int[] nums = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 };

    double avg=GetAvt(nums);

    Console.WriteLine("这个数组的平均值是{0:0.00}",avg);

    Console.ReadKey();

    }

    [12] //请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。

    static void Main(string[] args)

    {

    //请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。

    int[] nums = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 };

    //Array.Sort(nums);

    //Array.Reverse(nums);

    for (int i = 0; i < nums.Length - 1; i++)

    {

    for (int j = 0; j < nums.Length - 1 - i; j++)

    {

    if (nums[j] > nums[j + 1])

    {

    int temp = nums[j];

    nums[j] = nums[j + 1];

    nums[j + 1] = temp;

    }

    }

    }

    for (int i = 0; i < nums.Length; i++)

    {

    Console.WriteLine(nums[i]);

    }

    Console.ReadKey();

    }

    [13] //有如下字符串:【"患者:"大夫,我咳嗽得很重。" 大夫:"你多大年记?" 患者:"七十五岁。" 大夫:"二十岁咳嗽吗"患者:"不咳嗽。" 大夫:"四十岁时咳嗽吗?" 患者:"也不咳嗽。" 大夫:"那现在不咳嗽,还要等到什么时咳嗽?""】。需求:请统计出该字符中"咳嗽"二字的出现次数,以及每次"咳嗽"出现的索引位置。扩展(*):统计出每个字符的出现次数(后面)

     

    string text = ""患者:"大夫,我咳嗽得很重。" 大夫:"你多大年记?" 患者:"七十五岁。" 大夫:"二十岁咳嗽吗"患者:"不咳嗽。" 大夫:"四十岁时咳嗽吗?" 患者:"也不咳嗽。" 大夫:"那现在不咳嗽,还要等到什么时咳嗽?""";

    int index = 0;//索引

    int count = 0;//记录出现多少次

    string keyWord = "咳嗽";

    //text这个字符串中找"咳嗽"这个词,如果找到了则把这个词所在的索引的值赋值给index,如果找不到则索引的值是-1;

    // index = text.IndexOf(keyWord, index);

    //text中找keyword这个词,从索引index=0开始查找,查找到了这个词就把这个词所在的索引赋值给index.然后再判断index的值是不是-1

    while ((index=text.IndexOf(keyWord,index))!=-1)

    {

    count++;//记录个数

    Console.WriteLine("索引是{0},=====出现了{1}",index,count);

    index = index + keyWord.Length;

    }

    Console.ReadKey();

    [*]

    string str = "患者:"大夫,我咳嗽得很重。" 大夫:"你多大年记?" 患者:"七十五岁。" 大夫:" 二十岁咳嗽吗"患者:"不咳嗽。" 大夫:"四十岁时咳嗽吗?" 患者:"也不咳嗽。" 大夫:"那现在不咳嗽,还要等到什么时咳嗽?";

    Dictionary<char, int> dic = new Dictionary<char, int>();

    for (int i = 0; i < str.Length; i++)

    {

    if (str[i] == ' ')

    {

    continue;

    }

    if (dic.ContainsKey(str[i]))

    {

    dic[str[i]]++;

    }

    else

    {

    dic[str[i]] = 1;

    }

    }

     

     

    foreach (KeyValuePair<char,int> item in dic)

    {

    Console.WriteLine("字符{0}出现了{1}",item.Key,item.Value);

    }

    Console.ReadKey();

    [14] //将字符串" hello world, 世界 ! "两端空格去掉,并且将其中的所有其他空格都替换成一个空格,输出结果为:"hello world, 世界 !"

    string str = " hello world, 世界 ! ";

    str = str.Trim();

    string[] strs = str.Split(new Char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

    str = string.Join(" ", strs);

    Console.WriteLine(str);

    Console.ReadKey();

    [15] //制作一个控制台小程序。要求:用户可以在控制台录入每个学生的姓名,

    //当用户输入quit(不区分大小写)时,程序停止接受用户的输入,

    //并且显示出用户输入的学生的个数,以及每个学生的姓名。效果如图:

    List<string> list = new List<string>();

    while (true)

    {

    Console.WriteLine("请输入学生的姓名");

    string name = Console.ReadLine();

    if (name != "quit")

    {

    //将每个人的姓名都存储到泛型集合中

    list.Add(name);

    }

    else

    {

    break;

    }

    }

    Console.WriteLine("学生个数是{0}", list.Count);

    int count = 0;

    foreach (var item in list)

    {

    if (item[0] == '')

    {

    count++;

    }

     

    }

    Console.WriteLine("姓王的有{0}", count);

     

     

    //foreach (var item in list)

    //{

    // Console.WriteLine(item);

    //}

    Console.ReadKey();

    [16] //将普通日期格式:"201164" 转换成汉字日期格式:"二零一一年六月四日"。暂时不考虑10日、13日、23日等"带十"的问题。===后面讲

    static void Main(string[] args)

    {

    //将普通日期格式:"201164" 转换成汉字日期格式:"二零一一年六月四日"。暂时不考虑10日、13日、23日等"带十"的问题。===后面讲

    string str = "201164";

    string date = ConvertToDate(str);//是字符串形式的日期转换成汉字格式的日期

    Console.WriteLine(date);

    Console.ReadKey();

    }

    private static string ConvertToDate(string str)

    {

    char[]chs= str.ToCharArray();//这个方法是把字符串变成字符数组

    for (int i = 0; i < chs.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;

    }

    }

    string newDate = new string(chs);//字符串的构造函数

    return newDate; //chs这个字符数组转换成字符串

    }

    [17] //创建一个Person类,属性:姓名、性别、年龄;方法:SayHi() 。再创建一个Teacher类继承Person类,扩展属性Salary,重写SayHi方法。

    public class Person

    {

    private string _name;//姓名---字段

    public string Name

    {

    get { return _name; }

    set { _name = value; }

    }

    private char _gender;//性别----数据库中 存性别---bit 1---true 0-------false

    public char Gender

    {

    get { return _gender; }

    set { _gender = value; }

    }

    private int _age;

     

    public int Age

    {

    get{ return _age;}

    set{ _age = value;}

    }

    public virtual void SayHi()//虚方法

    {

    Console.WriteLine("大家好,我是人");

    }

    }

    public class Teacher : Person

    {

    private double _salary;//工资

    public double Salary

    {

    get { return _salary; }

    set { _salary = value; }

    }

    public override void SayHi()

    {

    Console.WriteLine("大家好,我是老湿!");

    }

    }

    [18] //请编写一个类:ItcastClass,该类中有一个私有字段_names,数据类型为:字符串数组,数组长度为5,并且有5个默认的姓名。要求:为ItcastClass类编写一个索引器,要求该索引器能够通过下标来访问_names中的内容。

    public class ItcastClass

    {

    private string[] _names = { "老杨","老苏","老马","老牛","老虎"};

    public string this[int index]

    {

    get

    {

    return _names[index];

    }

    set

    {

    _names[index] = value;

    }

    }

    }

    [19] //案例:使用WinForm窗体,制作一个简易计算器,默认为"请选择"。要求具有+-*/功能,当用户点击"等于"按钮时,如果输入的为非数字则提示用户。效果如图:

    //窗体加载的事件

    private void Form1_Load(object sender, EventArgs e)

    {

    comboBox1.SelectedIndex = 0;//告诉窗体加载的时候显示的是:请选择,

    //

    }

    private void btnResult_Click(object sender, EventArgs e)

    {

    //获取两个文本框中的数字

    //判断用户选择的是不是运算符号

    if (comboBox1.SelectedIndex>0)//用户是否选择了符号

    {

    //获取第一个文本框中的内容,并且转换成数字类型,下面这行代码是有可能会报异常的

    int number1 = Convert.ToInt32(txtNumber1.Text.Trim());//第一个数字

    int number2 = Convert.ToInt32(txtNumber2.Text.Trim());//第二个数字

    switch (comboBox1.Text)//这里存的是符号

    {

    case "+": txtSum.Text = (number1 + number2).ToString(); break;

    case "-": txtSum.Text = (number1 - number2).ToString(); break;

    case "*": txtSum.Text = (number1 * number2).ToString(); break;

    case "/": txtSum.Text = (number1 / number2).ToString(); break;

    }

    }

    else

    {

    MessageBox.Show("请选择运算符");

     

    }

    }

    [20] //编写代码说明什么是方法重载。要求:至少编写3个方法。

    public static void M(int n1, int n2)

    {

     

    }

     

    public static void M(string s1, int n2)

    {

     

    }

     

    public static void M(int n1, int n2, int n3)

    {

     

    }

    [21] //请将字符串数组{ "中国", "美国", "巴西", "澳大利亚", "加拿大" }中的内容反转。

    //然后输出反转后的数组。不能用数组的Reverse()方法。

    string[] names = { "中国", "美国", "巴西", "澳大利亚", "加拿大" };

    for (int i = 0; i < names.Length / 2; i++)

    {

    string temp = names[i];

    names[i] = names[names.Length - 1 - i];

    names[names.Length - 1 - i] = temp;

    }

     

    for (int i = 0; i < names.Length; i++)

    {

    Console.WriteLine(names[i]);

    }

    Console.ReadKey();

  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/CharlesZHENG/p/3527501.html
Copyright © 2011-2022 走看看