C#基础练习题

时间:2023-02-22 22:35:04

1.编写一个方法,计算给定int数组的和

 class Program
{
static void Main(string[] args)
{
//1.编写一个方法,计算给定int数组的和
int[] num = { 1,2,3};
int sum = Sum(num);
Console.WriteLine(sum);
//6
Console.ReadKey();
}
/// <summary>
/// 求int数组之和
/// </summary>
/// <param name="nums">数值类型的数组</param>
/// <returns>返回这个数组之和</returns>
static int Sum(int[] nums)
{
//声明一个变量来保存总和
int sum = 0;
for (int i = 0; i < nums.Length; i++)
{
sum
+= nums[i];
}
return sum;//返回总和
}
}

2.提示用户输入一个整数N,生成一个int数组,数组长度为N

 class Program
{
static void Main(string[] args)
{
/**
* 提示用户输入一个整数N,生成一个int数组,数组长度为N
* 并且内容为{1,2,3....n} 这样一个Int数组,注意不是返回“字符串”
* *
*/

Console.WriteLine(
"请输入一个整数");
int num = int.Parse(Console.ReadLine());
//声明一个空数组
int[] numBer = new int[num];
//循环添加数字去数组里面
for (int i = 0; i < num; i++)
{
numBer[i]
= i + 1;
}
//循环打印这个数组
foreach (var item in numBer)
{
Console.WriteLine(item);
}
Console.ReadKey();
}

}

3.编写一个方法,bool IsEquals(int[]nums1,int[]nums2) 比较两个数组的内容是否相等。

 class Program
{
static void Main(string[] args)
{
//3.编写一个方法,bool IsEquals(int[]nums1,int[]nums2) 比较两个数组的内容是否相等。
int[] n1 = { 1,1};
int[] n2 = { 1, 2, 3 };
Console.WriteLine(IsEauqls(n1, n2));
Console.ReadKey();
}

static bool IsEauqls(int[] num1, int[] num2)
{
//先判断两个数组长度是否相等
if (num1.Length != num2.Length)
{
return false;
}
//长度相等,在判断里面的内容是否相等
for (int i = 0; i < num1.Length; i++)//长度一样,任意取一个数组长度进行循环
{
if (num1[i] != num2[i])
{
return false;
}
}
return true;
}

}

4.编写方法getmax,它带有3个int 型参数a,b,c,返回a,b,c这三个数的最大值

 class Program
{
static void Main(string[] args)
{
//4.编写方法getmax,它带有3个int 型参数a,b,c,返回a,b,c这三个数的最大值。
Console.WriteLine(GetMax(4,100,6));
Console.ReadKey();
}

static int GetMax(int a, int b, int c)
{
int[] nums = { a, b, c };
int max = nums[0];
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] > max)
{
max
= nums[i];
}
}
return max;
}

}

5. 给定一个int数组:int[] nums = {3,5,9,2,22,12};写一个方法int[] Reverse(int[] nums),对数组进行反向处理。也就是返回:{12,22,2,9,5,3} 这样一个int数组

 class Program
{
static void Main(string[] args)
{
int[] nums = { 11, 22, 33, 44 };
int[] n2 = Reverse(nums);
foreach (var item in n2)
{
Console.WriteLine(item);
}
Console.ReadKey();
}

static int[] Reverse(int[] nums)
{
int[] tempNums = new int[nums.Length];
//{33,55,22,3,5}
//0个值:5-0-1(4)第0个值对应第4个
//0:5-i-1;
for (int i = 0; i < nums.Length; i++)
{
tempNums[nums.Length
- i-1] = nums[i];
}
return tempNums;
}

6.用户输入年,月,日,计算该日是该年的第几天?需要考虑2月份的问题

class Program
{
static void Main(string[] args)
{
//用户输入年,月,日,计算该日是该年的第几天?需要考虑2月份的问题
int year = 2015;
int month = 5;
int day = 8;

//计算是哪年 哪月 哪日
//1,3,5,7,8,10,12是31
//闰年29天,平年28天
//4,6,9,11是30天
//占时认为2月份是28天

//储存每个月的天数,查表法
int[] data = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

//3月5日:第0个月+第一个月+5天
//2月5日:31+5

int days = 0;
for (int i = 0; i < month-1; i++)
{
days
+= data[i];
}
days
+= day;
if (month > 2)//如果月份大于2,则看是否需要补一天
{
//判断是否是闰年,能被 4 整除 但是不能被100整除 或者能被四百整除
if (IsRun(year))
{
days
++;//如果是闰年,加一天
}
}
Console.WriteLine(days);

Console.ReadKey();
}

//判断闰年的方法
static bool IsRun(int year)
{
if((year%4==0 && year%100!=0)||year%400==0)
{
return true;
}
else
{
return false;
}
}
}

7.

问答:

int i=0;

Console.WriteLine(i++);

int j=0;

Console.WriteLine (++j);

int z=0;

Console.WriteLine (z=z+1);

的输出分别是什么?为什么?