01---Net基础加强
声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。交换两个变量,使用第三个变量!
class Program
{
static void Main(string[] args)
{
int n1 = 10;
int n2 = 20;
int temp = n1;
n1 = n2;
n2 = temp;
Console.WriteLine("n1:{0},n2:{1}",n1,n2);
Console.ReadKey();
}
}
声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。交换两个变量,不使用第三个变量!
class Program
{
static void Main(string[] args)
{
int n1 = 10;
int n2 = 20;
n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
Console.WriteLine("n1:{0},n2:{1}", n1, n2);
Console.ReadKey();
}
}
声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。交换两个变量,使用方法!
class Program
{
static void Main(string[] args)
{
int n1 = 10;
int n2 = 20;
Swap(ref n1, ref n2);//方法存根快捷键Ctrl+K+M建立方法 ref表示按引用传递
Console.WriteLine("n1:{0},n2:{1}", n1, n2);
Console.ReadKey();
}
static void Swap(ref int num1, ref int num2)
{
int temp = num1;
num1 = num2;
num2 = temp;
}
}
请用户输入一个字符串,计算字符串中的字符个数,并输出。(“你好ycz” 的字符个数为5)字符串的Length属性表示字符串中字符的个数,无论中文字符还是英文字符,一个字符就是一个字符,不是字节数。
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个字符串");
string msg = Console.ReadLine();
Console.WriteLine("字符个数为:{0}", msg.Length);
Console.ReadKey();
}
}
定义方法来实现:计算两个数的最大值。提示:方法有几个参数?返回值是什么? ···········定义方法时一定要有参数和返回值!
class Program
{
static void Main(string[] args)
{
int max = GetMax(100,101);
Console.WriteLine("最大值为:{0}", max);
Console.ReadKey();
}
static int GetMax(int n1,int n2)
{
return n1>n2?n1:n2;
}
}
计算任意多个数间的最大值(提示:params)。
class Program
{
static void Main(string[] args)
{
int max = GetMax(100,101,22,24,35,333);
Console.WriteLine("最大值为:{0}", max);
Console.ReadKey();
}
static int GetMax(params int[] nums)//params可变参数
{
int max=nums[0];
for (int i = 1; i < nums.Length; i++)
{
if(nums[i]>max)
max=nums[i];
}
return max;
}
}
用方法来实现:计算1-100之间的所有整数的和。
class Program
{
static void Main(string[] args)
{
int sum= GetSum(1,100);
Console.WriteLine(sum);
Console.ReadKey();
}
static int GetSum(int StartNumber,int EndNumber)
{
int sum = 0;
for (int i = StartNumber; i <= EndNumber; i++)
{
sum += i;
}
return sum;
}
}
用方法来实现:计算1-100之间的所有奇数的和。
static void Main(string[] args)
{
int sum= GetOddSum(1,100);
Console.WriteLine(sum);
Console.ReadKey();
}
static int GetOddSum(int StartNumber,int EndNumber)
{
int sum = 0;
for (int i = StartNumber; i <= EndNumber; i++)
{
if (i % 2 != 0)
{
sum += i;
}
}
return sum;
}
用方法来实现:判断一个给定的整数是否为“质数”;
class Program
{
static void Main(string[] args)
{
string s;
Console.WriteLine("请输入一个正整数:");
int n = Convert.ToInt32(Console.ReadLine());
if (IsZhiShu(n))
{
s = "这个数是质数";
Console.WriteLine(s);
Console.ReadKey();
}
else
{
s = "这个数不是质数";
Console.WriteLine(s);
Console.ReadKey();
}
}
static bool IsZhiShu(int num)
{
bool b = true;
for (int i = 2; i <= Math.Sqrt(num); i++) //对num开根号
{
if (num % i == 0)
{
b=false;
}
}
return b;
}
用方法实现:计算1-100之间所有质数的和。
class Program
{
static void Main(string[] args)
{
int sum = 0;
for (int i = 2; i <= 100; i++)
{
// 对于每个数字判断是否是一个质数
if (IsZhiShu(i))
{
sum += i;
}
}
Console.WriteLine(sum);
Console.ReadLine();
}
static bool IsZhiShu(int num)
{
bool b = true;
for (int i = 2; i <=Math.Sqrt(num); i++) //对num开根号
{
if (num % i == 0)
{
b=false;
}
}
return b;
}
}
用方法来实现:有一个数组,找出其中最大值并输出。不能调用数组的Max()方法。
class Program
{
static void Main(string[] args)
{
int[] arrInt = {1,3,5,66,6,8,99,55 };
int max = GetMax(arrInt);
Console.WriteLine(max);
Console.ReadLine();
}
static int GetMax(int[] arr)
{
int max = arr[0];
for (int i = 1; i < arr.Length;i++ )
{
if (arr[i] > max)
{
max = arr[i];
}
}
return max;
}
}
用方法来实现:有一个字符串数组:{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出字符数最多的字符串。
class Program
{
static void Main(string[] args)
{
string[] arrName = { "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" };
string maxName = GetMaxString(arrName);
Console.WriteLine(maxName);
Console.ReadLine();
}
static string GetMaxString(string[] arrName)
{
string maxName = arrName[0];
for (int i = 1; i < arrName.Length;i++ )
{
if (arrName[i].Length > maxName.Length)
{
maxName = arrName[i];
}
}
return maxName;
}
}
用方法实现:请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。Math.Round()
class Program
{
static void Main(string[] args)
{
int[] arrInt = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10};
Console.WriteLine(GetAvg(arrInt));
Console.ReadLine();
}
static double GetAvg(int[] arr)
{
int sum = 0;
for (int i = 1; i < arr.Length;i++ )
{
sum += arr[i];
}
return Math.Round((double)sum/ arr.Length, 2); //Math.Round()对数字执行四舍五入,保存两位小数。注意*两个整数相除结果还是整数,可以将一个强制转换成double类型
}
}
通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。
class Program
{
static void Main(string[] args)
{
int[] arrInt = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 };
for (int i = 0; i < arrInt.Length-1; i++)
{
for (int j = arrInt.Length - 1; j > i; j--)
{
if (arrInt[j] < arrInt[j - 1])
{
int temp = arrInt[j];
arrInt[j] = arrInt[j - 1];
arrInt[j - 1] = temp;
}
}
}
for (int i = 0; i < arrInt.Length; i++)
{
Console.WriteLine(arrInt[i]);
}
Console.ReadLine();
}
}
有如下字符串:【"患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。需求:①请统计出该字符中“咳嗽”一词的出现次数,以及每次“咳嗽”出现的索引位置。②扩展(*):统计出每个字符的出现次数。 JavaScript indexOf() 方法
class Program
{
static void Main(string[] args)
{
string msg = "患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?";
string keywords="咳嗽";
int count = 0;
int index = 0;
while ((index = msg.IndexOf(keywords, index)) != -1)//使用IndexOf(),该方法返回在整个字符串中,指定的字符或字符串第一次出现的索引位置,如果没有找到指定的字符或者字符串则返回-1,如果找到了返回索引位置
{
count++;
Console.WriteLine("第{0}次,出现【咳嗽】,索引时{1}", count,index);
index = index + keywords.Length;
}
Console.WriteLine("【咳嗽】一词,共出现了{0}次,", count);
Console.ReadKey();
}
}
将字符串" hello world,你 好 世界 ! "两端空格去掉,并且将其中的所有其他空格都替换成一个空格,输出结果为:"hello world,你 好 世界 !"。 Trim用法 Split用法,Join用法
class Program
{
static void Main(string[] args)
{
string msg = " Hello World 你 好 世界 ";
msg = msg.Trim();
string[] words = msg.Split(new char[]{‘ ‘},StringSplitOptions.RemoveEmptyEntries);
string full = string.Join(" ", words);
Console.WriteLine(full);
Console.ReadKey();
}
}
制作一个控制台小程序。要求:用户可以在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数,以及每个学生的姓名。并统计姓王的个数!
class Program
{
static void Main(string[] args)
{
List <string> ListNames=new List<string>();//初始化一个集合
int count = 0;
while (true)
{
Console.WriteLine("请输入姓名:");
string name = Console.ReadLine();
if (name[0] == ‘王‘)
{
count++;
}
if (name.ToLower() == "quit")
{
break;
}
ListNames.Add(name);
}
Console.WriteLine("你共输入了:{0}个名字",ListNames.Count);
foreach (string name in ListNames)
{
Console.WriteLine(name);
}
Console.WriteLine("姓王的同学的个数:{0}", count);
Console.ReadKey();
}
}
将普通日期格式:“2014年7月8日”转换成汉字日期格式:“二零一四年七月八日”。(暂时不考虑10日,13日,23日)
class Program
{
static void Main(string[] args)
{
string date = "2014年7月8日";
date = ConvertDate(date);
Console.WriteLine(date);
Console.ReadKey();
}
private static string ConvertDate(string date) //字符串具有不可变性,不能直接修改字符串
{
//将字符串转换成一个真正的char数组
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);
}
}
创建一个Person类,属性:姓名、性别、年龄;方法:SayHi() 。再创建一个Employee类继承Person类,扩展属性Salary,重写SayHi方法。
class Person
{
private string _name;
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
public bool Gender { get; set;}
public int Age{ get; set;}
public virtual void SayHi() //加上virtual,子类才能重写它
{
Console.WriteLine("Hi!!!!!!");
}
}
class Employee:Person
{
public double Salary { get; set; }
public override void SayHi()//对这个方法重写
{
Console.WriteLine("子类中的SayHi!!!");
}
}
请编写一个类:ItcastClasss,该类中有一个私有字段_names.数据类型为字符串数组,数组长度为5,并有5个默认的姓名。要求:为ItcastClass编写一个索引器,要求该索引器能够通过下标访问_names中的内容。
class ItCastClass
{
private string[] _names = { "叶长重", "王少伟", "杨中科", "苏坤", "科比" };
public string this[int index] //索引器
{
set {
_names[index] = value;
}
get {
return _names[index];
}
}
}
static void Main(string[] args)
{
ItCastClass itcast = new ItCastClass();
//Console.WriteLine(itcast._names[0]);//没有索引器的情况下得这样写!
Console.WriteLine(itcast[0]);
Console.WriteLine(itcast[3]);
Console.ReadKey();
}
使用WinForm窗体,制作一个简单的计算器,默认值为“请选择”。要求具有+、-、*、/功能!
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.comboBox1.SelectedIndex = 0;
}
private void button1_Click(object sender, EventArgs e)
{
//校验用户选择的“操作符”
if (comboBox1.SelectedIndex > 0)
{
int n1 =Convert.ToInt32( textBox1.Text.Trim());
int n2 = Convert.ToInt32(textBox2.Text.Trim());
//int n2 = int.Parse(textBox2.Text.Trim());//这个也可以
switch (comboBox1.Text)
{
case "+":
label1.Text = (n1 + n2).ToString();
break;
case "-":
label1.Text = (n1 - n2).ToString();
break;
case "*":
label1.Text = (n1 * n2).ToString();
break;
case "/":
label1.Text = (n1 / n2).ToString();
break;
default:
break;
}
}
else
{
MessageBox.Show("请选择操作符");
}
}
}
什么是方法重载。(方法重载1.方法名必须一致。2,方法参数列表不同)
请将字符串数组(“中国”,“美国”,“巴西”,“澳大利亚”,“加拿大”)中的内容反转,然后输出反转后的数组,不能用数组的Reverse()方法。
static void Main(string[] args)
{
string[] names = { "中国", "美国", "巴西", "澳大利亚", "加拿大" };
ReverseArray(names);
for (int i = 0; i < names.Length; i++) //快捷键 打上for再按Tab键
{
Console.WriteLine(names[i]);
}
Console.ReadKey();
}
private static void ReverseArray(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;
}
}
}
编程遍历WinForm窗体上所有TextBox控件并给它赋值为“叶长重”。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
foreach (Control ctrl in this.Controls)//遍历这个窗体中所有控件
{
//判断控件是不是文本框
if (ctrl is TextBox)
{
ctrl.Text = "叶长重";
}
}
}
}
随机生成10个1-100内的非重复数字放入ArrayList集合中。
class Program
{
static void Main(string[] args)
{
int count = 0;
ArrayList arrList = new ArrayList();
Random rdm = new Random();//()内不能放参数,不然会产生一样的,里面是种子,种子确定,产生的数是一样的!
while (arrList.Count < 10)
{
//Random rdm = new Random();//这句话不能放到这里,系统用当前时间做种子
count++;
int n = rdm.Next(1, 101);
if (!arrList.Contains(n))
{
arrList.Add(n);
}
}
for (int i = 0; i < arrList.Count; i++)
{
Console.WriteLine(arrList[i]);//快捷键 cw+Table
}
Console.WriteLine("循环了{0}次",count);
Console.ReadKey();
}
}
.net程序基本编写、执行流程(c#)
2>通过csc.exe程序来将.cs文件编译为.net程序集(.exe或.dll)。此时的exe或dll并不是机器码(cpu不可理解)。【>csc /out:c:\a.exe c:\program.cs】
3>程序运行时通过JIT编译(Just In Time)即时编译,将程序集编译为cpu能理解的机器码,这时cpu才能执行。(这个编译过程会与当前机器有关(根据当前机器的内存、cpu等))。ngen.exe
面向对象三大特性:封装、继承、多态。
什么是类?什么是对象?类和对象的区别?如何写一个汽车类?
类是模具,创建对象的模具,抽象的。
类是一种数据类型,用户自定义的数据类型
类组成:字段、属性、方法、构造函数等
对象是具体的,是类的具体实例。对象具有属性(特征)和方法(行为)
类中包含了数据(用字段表示)与行为(用方法(函数、功能)表示,方法为一块具有名称的代码) (先用类后有对象)
添加一个教师类和一个学生类:
public class Teacher
{
//构造函数特点:1、函数名和类名完全一样 2、不能有返回值,哪怕是void 3、一般访问修饰符为public
public Teacher()
{
}
//构造函数重载
public Teacher(string name)
{
}
public string Name { get; set; }
public int Age { get; set; }
public void Teach()
{
Console.WriteLine("上课。。。");
}
}
class Student
{
public string Name { get; set; }
public string SId { get; set; }
public void shangke()
{
Console.WriteLine("上课。。。");
}
}
class Program
{
static void Main(string[] args)
{
//当写好一个类以后就会有一个默认的无参的构造函数。
Teacher t = new Teacher();
}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。