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();

  • 相关阅读:
    SQL2014还原到2008
    SQL SERVER2014 安装 Error code 0x858C001B.
    c++builder XE7 C++11 C++0x 新语法
    c++Builder XE6 MD5 加密算法 BASE64 URL 编码
    手机新功能
    xe fmx 怎么改变button颜色
    XE6 任务栏 控件
    js里面return 和 return false的区别
    web.xml的contextConfigLocation作用及自动加载applicationContext.xml
    mybatis-config.xml配置
  • 原文地址:https://www.cnblogs.com/CharlesZHENG/p/3527501.html
Copyright © 2011-2022 走看看