C#基础功考察题目
学习随堂作业,基础用法学习专用,也可以作为初中级面试题
-
说出已学过的数据类型有哪些?
-
举例说明已学过的运算符有哪些?
-
请用户输年份,输入月份,输出该月的天数.
-
对学员的结业考试成绩评测(改成用Switch来做)
成绩>=90 :A
90>成绩>=80 :B
80>成绩>=70 :C
70>成绩>=60 :D
成绩<60 :E -
被删除 -
李四这次考试又粗心了,爸爸让他写1000遍"下次考试一定要细心".
如何编程实现上面的问题? -
打印100次"欢迎来到王者峡谷"
-
输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩
-
老师问学生,这道题你会做了吗?如果学生答"会了(y)",则可以放学.如果学生不会做(n),则老师再讲一遍,再问学生是否会做了...... 直到学生会为止,才可以放学.直到学生会或老师给他讲了10遍还不会,都要放学
-
2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?
-
练习1:计算1到100之间整数的和;
-
练习2:要求用户输入用户名和密码,只要不是admin、888888就一直提示用户名或密码错误,请重新输入。
-
练习3:不断要求用户输入学生姓名,输入q结束.
-
练习4:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。
-
练习5:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值
-
练习6:张三先唱一遍要表演的歌曲,老师觉得张三唱歌不过关,就让张三再唱一遍,老师满意则张三可以下课,不然则需要再唱一遍,再问老师是否满意...
-
被删除 -
比较用for和while,哪种更好?
-
问题1:求1-100间的所有偶数和?
-
问题2:找出100-999间的水仙花数?
-
问题3:输出九九乘法表(循环的嵌套)
语法:
for(表达式1;表达式2;表达式3)
{循环体;�}; -
练习1:循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错.
-
练习2:在while中用break实现要求用户一直输入用户名和密码,只要不是admin、888888就一直提示要求重新输入,如果正确则提登录成功.
-
1.~100之间的整数相加,得到累加值大于20的当前数
-
练习1:用 while continue实现计算1到100(含)之间的除了能被7整除之外所有整数的和。
-
定义一个结构叫MyColor,有三个成员,分别为red,green,blue
-
声明一个 MyColor类型的变量,并对其成员赋值.使MyColor可以表示成一个红色.
-
定义一个结构类型Person,有三个成员,分别为姓名,性别,年龄
-
声明两个Person类型的变量,分别表示 张三 男 18岁/ 小兰 女 16岁
-
一次语文测试后,老师让班长统计每一个学生的成绩并计算全班(全班共60人)的平均成绩,然后把所有成绩显示出来.
-
练习1:从一个整数数组中取出最大的整数
-
练习2:计算一个整数数组的所有元素的和。
-
练习3:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”
-
练习4:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素的值减1,如果元素是0,则不变。
-
练习5:将一个字符串数组的元素的顺序进行反转。{“3”,“a”,“8”,“haha”} {“haha”,“8”,“a”,“3”}。第i个和第length-i-1个进行交换。
-
求平均值,求最大值,求和
-
读取输入的整数,定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户重新输入)
-
还记得学循环时做的那道题吗?只允许用户输入y或n,请改成方法
-
查找两个整数中的最大值:int Max(int i1,int i2)
-
计算输入数组的和:int Sum(int[] values)
-
写一个方法,计算一个int类型数组中每个元素的总和 和 最大值与最小值?
-
重复让用户输入一个数,判断该数是否是质数,输入q结束?
-
质数的判断用方法来实现
-
将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”(用方法来实现此功能)
-
用方法实现找出一个int类型数组中最大值和最小值
-
写一个方法,实现MyTryParse的功能
sql聚合索引使用条件.png你准备好了么,下面有答案。以下内容仅供参考
一张长图 隔开了,问题与参考答案
- 说出已学过的数据类型有哪些?
int,string,char,bool,decimal,enum,const,long,
- 举例说明已学过的运算符有哪些?
+,-,*,/,(,),<,>,<=,>=,&&,||,!,!=,+,-,
- 请用户输年份,输入月份,输出该月的天数.
Console.WriteLine("请输入年份?");
int year = int.Parse(Console.ReadLine());
Console.WriteLine("请输入月份?");
int yue = int.Parse(Console.ReadLine());
switch (yue)
{
case 1: case 3: case 5:
case 7: case 8: case 10: case 12:
Console.WriteLine("这个月是31天");
break;
case 4: case 6: case 9: case 11:
Console.WriteLine("这个月是30天");
break;
case 2:
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
{
Console.WriteLine("这个月是29天");
}
else
{
Console.WriteLine("这个月是28天");
}
break;
}
- 对学员的结业考试成绩评测(改成用Switch来做)
成绩>=90 :A
90>成绩>=80 :B
80>成绩>=70 :C
70>成绩>=60 :D
成绩<60 :E
Console.WriteLine("请输入成绩:");
int chengji = int.Parse(Console.ReadLine());
switch (chengji/10)
{
case 9:
Console.WriteLine("你的成绩为A");
break;
case 8:
Console.WriteLine("你的成绩为B");
break;
case 7:
Console.WriteLine("你的成绩为C");
break;
case 6:
Console.WriteLine("你的成绩为D");
break;
default:
Console.WriteLine("你的成绩为E");
break;
}
- 实际生活中的循环:打印100份试卷 10000米长跑 车轮
- 李四这次考试又粗心了,爸爸让他写1000遍"下次考试一定要细心".
如何编程实现上面的问题?
for (int i = 0; i < 1000; i++)
{
Console.WriteLine("下次考试一定要细心{0}",i+1);
}
Console.WriteLine("下次考试一定要细心");
Console.WriteLine("下次考试一定要细心");
Console.WriteLine("下次考试一定要细心");
- 打印100次"欢迎来到王者峡谷"
for (int i = 0; i < 100; i++)
{
Console.WriteLine("欢迎来到王者峡谷{0}",i+1);
}
- 输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩
Console.WriteLine("输入班级人数:");
int renshu = int.Parse(Console.ReadLine());
int sum=0;
for (int i = 0; i < renshu; i++)
{
Console.WriteLine("输入学员成绩:");
int cheng = int.Parse(Console.ReadLine());
sum += cheng;
}
Console.WriteLine("{0}人的班级,总成绩为{1},平均成绩为{2}",renshu,sum,sum/renshu);
- 老师问学生,这道题你会做了吗?如果学生答"会了(y)",则可以放学.如果学生不会做(n),则老师再讲一遍,再问学生是否会做了......直到学生会为止,才可以放学.直到学生会或老师给他讲了10遍还不会,都要放学
while (true)
{
int i=0;
Console.WriteLine("这道题你会做了吗?");
string answer = Console.ReadLine();
if (answer == "y"&&i==10)
{
Console.WriteLine("那你回家吧!");
break;
}
else
{
Console.WriteLine("那老师在讲一遍!");
i++;
}
}
- 2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?
int year = 2006;
double xueyuan = 80000;
while (xueyuan < 200000)
{
xueyuan *= 1.25;
year++;
}
Console.WriteLine("{0}年增长到了{1}",year,xueyuan);
- 练习1:计算1到100之间整数的和;
int sum=0;
for (int i = 1; i <= 100; i++)
{
sum += i;
}
Console.WriteLine("1-100之间的整数的和是{0}",sum);
- 练习2:要求用户输入用户名和密码,只要不是admin、888888就一直提示用户名或密码错误,请重新输入。
while (true)
{
Console.WriteLine("输入用户名:");
string name = Console.ReadLine();
Console.WriteLine("输入密码:");
string password = Console.ReadLine();
if (name == "admin" && password == "8888")
{
Console.WriteLine("登陆成功!");
break;
}
else
{
Console.WriteLine("请重新输入");
}
}
- 练习3:不断要求用户输入学生姓名,输入q结束.
while (true)
{
Console.WriteLine("输入学生姓名:");
string name = Console.ReadLine();
if (name == "q")
{
break;
}
}
- 练习4:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。
while (true)
{
Console.WriteLine("输入一个数字:");
string shuzi = Console.ReadLine();
if (shuzi == "q")
{
break;
}
else
{
int shu = int.Parse(shuzi);
Console.WriteLine("这个数的两倍是{0}",shu*2);
}
}
- 练习5:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值
int input=0;
while (true)
{
Console.WriteLine("输入一个数字:");
string shuzi = Console.ReadLine();
if (shuzi == "end")
{
Console.WriteLine(input);
break;
}
else
{
int shu = int.Parse(shuzi);
if (input < shu)
{
input = shu;
}
}
}
- 练习6:张三先唱一遍要表演的歌曲,老师觉得张三唱歌不过关,就让张三再唱一遍,老师满意则张三可以下课,不然则需要再唱一遍,再问老师是否满意...
Console.WriteLine("张三唱了一遍歌");
while (true)
{
string answer = Console.ReadLine();
if (answer == "y")
{
break;
}
Console.WriteLine("张三在唱一遍歌");
}
- 连续输出100次"我下次一定细心".
for (int i = 0; i < 100; i++)
{
Console.WriteLine("我下次一定细心{0}", i + 1);
}
-
比较用for和while,哪种更好?
for使用在知道循环次数条件的循环中,while可以有,可以不知道要循环多少次;没有好与坏,只要用在了地方,那就是好。 -
问题1:求1-100间的所有偶数和?
int sum = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 2 == 0)
{
sum += i;
}
}
Console.WriteLine("1-100间的所有偶数和是{0}", sum);
- 问题2:找出100-999间的水仙花数?
int gewei, shiwei, baiwei;
for (int i = 100; i <= 999; i++)
{
gewei = i % 10;
baiwei = i / 100;
shiwei = i / 10 %10;
if (i == gewei * gewei * gewei + shiwei * shiwei * shiwei + baiwei * baiwei * baiwei)
{
Console.WriteLine(i);
}
}
- 问题3:输出九九乘法表(循环的嵌套)语法:
for(表达式1;表达式2;表达式3)
{循环体;�};
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write("{0}X{1}={2}\t",j,i,i*j);
}
Console.WriteLine();
}
- 练习1:循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错.
int i = 0, sum = 0;
while(i<5)
{
Console.WriteLine("请输入年龄");
int avg = int.Parse(Console.ReadLine());
if (avg < 0 || avg > 100)
{
Console.WriteLine("输入错误!重新输入");
}
else
{
i++;
sum += avg;
}
}
Console.WriteLine("5个人的平均年龄是{0}",sum/5);
- 练习2:在while中用break实现要求用户一直输入用户名和密码,只要不是admin、888888就一直提示要求重新输入,如果正确则提登录成功.
while (true)
{
Console.WriteLine("输入用户名:");
string name = Console.ReadLine();
Console.WriteLine("输入密码:");
string password = Console.ReadLine();
if (name == "admin" && password == "8888")
{
Console.WriteLine("登陆成功!");
break;
}
else
{
Console.WriteLine("请重新输入");
}
}
- 1~100之间的整数相加,得到累加值大于20的当前数
int sum = 0;
for (int i = 1; i <= 100; i++)
{
sum += i;
if (sum > 20)
{
Console.WriteLine("到{0}时是{1}",i,sum);
break;
}
}
- 练习1:用 while continue实现计算1到100(含)之间的除了能被7整除之外所有整数的和。
int sum = 0,i=0;
while (i <= 100)
{
i++;
if (i % 7 == 0)
{
continue;
}
sum += i;
}
Console.WriteLine(sum);
- 定义一个结构叫MyColor,有三个成员,分别为red,green,blue
public struct MyColor
{
public string red;
public string green;
public string blue;
}
- 声明一个 MyColor类型的变量,并对其成员赋值.使MyColor可以表示成一个红色.
public struct MyColor
{
public int red;
public int green;
public int blue;
}
static void Main(string[] args)
{
MyColor color;
color.blue = 0;
color.green = 0;
color.red = 0;
- 定义一个结构类型Person,有三个成员,分别为姓名,性别,年龄
public struct person
{
public string name;
public char avg;
public int ling;
}
- 声明两个Person类型的变量,分别表示 张三 男 18岁/ 小兰 女 16岁
public struct person
{
public string name;
public char avg;
public int ling;
}
static void Main(string[] args)
{
person zs;
person xl;
zs.name = "张三";
zs.avg = '男';
zs.ling = 18;
xl.name = "小兰";
xl.avg = '女';
xl.ling = 17;
- 一次语文测试后,老师让班长统计每一个学生的成绩并计算全班(全班共60人)的平均成绩,然后把所有成绩显示出来.
int []CJ=new int[5];
int sum=0;
for (int i = 0; i < 5; i++)
{
Console.WriteLine("请输入你的语文成绩:");
CJ[i]= int.Parse(Console.ReadLine());
sum += CJ[i];
}
Console.WriteLine("所有人的平均成绩为{0}",sum/5);
Console.WriteLine("***************************");
Console.WriteLine("同学的成绩为");
for(int i=0;i<5;i++)
{
Console.WriteLine("第{0}个学生的成绩为:{1}",i+1,CJ[i]);
}
- 练习1:从一个整数数组中取出最大的整数
int[] ZS = new int[] { 3, 5, 2, 65, 23, 12, 86, 54, 33, 26, 74, 25, 43 };
int max = ZS[0];
for (int i = 1; i < ZS.Length; i++)
{
if (max < ZS[i])
{
max = ZS[i];
}
}
Console.WriteLine("这个数组中的最大值是:{0}",max);
- 练习2:计算一个整数数组的所有元素的和。
int[] ZS = new int[] { 3, 5, 2, 65, 23, 12, 86, 54, 33, 26, 74, 25, 43 };
int sum = ZS[0];
for (int i = 1; i < ZS.Length; i++)
{
sum += ZS[i];
}
Console.WriteLine("这个数组中所有元素的和是:{0}",sum);
- 练习3:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”
string[] Name = new string[] { "梅西 ", "郑华", "乔治", "西陵", "原址" };
for (int i = 0; i < Name.Length-1; i++)
{
Console.Write(Name[i]+"||");
}
Console.WriteLine(Name[Name.Length-1]);
- 练习4:将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素的值减1,如果元素是正数则将这个位置的元素的值加1,如果元素是0,则不变。
int[] ZS = new int[] { 3, 0, 2, -65, 23, -12, 86, 54, -33, 26, 74, -25, 43 };
for (int i = 0; i < ZS.Length; i++)
{
if (ZS[i] < 0)
{
ZS[i] -= 1;
}
else if (ZS[i] > 0)
{
ZS[i] += 1;
}
}
for (int i = 0; i < ZS.Length; i++)
{
Console.Write(ZS[i]+"\t");
}
- 练习5:将一个字符串数组的元素的顺序进行反转。{“3”,“a”,“8”,“haha”} {“haha”,“8”,“a”,“3”}。第i个和第length-i-1个进行交换。
int[] ZS = new int[] { 3, 0, 2, -33, 74, -25, 43 };
for (int i = 0; i < ZS.Length/2; i++)
{
int temp = ZS[i];
ZS[i] = ZS[ZS.Length - i - 1];
ZS[ZS.Length - i - 1]=temp;
}
for (int i = 0; i < ZS.Length; i++)
{
Console.Write(ZS[i]+"\t");
}
- 读取输入的整数,定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户重新输入)
{
InputInt();
Console.ReadKey();
}
static void InputInt()
{
while (true)
{
int shuzi;
Console.WriteLine("请输入一个数字:");
string number = Console.ReadLine();
if (int.TryParse(number, out shuzi))
{
shuzi = 1;
Console.WriteLine("这是个数字");
break;
}
else
{
Console.WriteLine("你输入的不是数字");
}
}
}
- 还记得学循环时做的那道题吗?只允许用户输入y或n,请改成方法
{
InputInt();
Console.ReadKey();
}
static void InputInt()
{
while (true)
{
Console.WriteLine("这道题你会做了吗?回答”Y“或者”N“");
string number = Console.ReadLine();
if (number=="y")
{
Console.WriteLine("你已经会这道题了,回家去吧");
break;
}
else if(number=="n")
{
Console.WriteLine("你怎么还不会啊,我都很烦了");
}
}
}
- 查找两个整数中的最大值:int Max(int i1,int i2)
return a > b ? a : b;
- 计算输入数组的和:int Sum(int[] values)
int[] ZS = new int[] { 3, 0, 2, -33, 74, -25, 43 };
int sum = Sum(ZS);
Console.WriteLine("这个数组中所有元素的和是:{0}", sum);
Console.ReadKey();
}
static int Sum(int[] input)
{
int sum = input[0];
for (int i = 1; i < input.Length; i++)
{
sum += input[i];
}
return sum;
}
- 写一个方法,计算一个int类型数组中每个元素的总和 和 最大值与最小值?
int ma, mi;
int[] ZS = new int[] { 3, 0, 2, 33, 74, 25, 43 };
ma = mi = ZS[0];
int su = Sum(ZS, out ma, out mi);
Console.WriteLine("这个数组中所有元素的和是:{0}最大值是{1},最小值是{2}", su, ma, mi);
Console.ReadKey();
}
static int Sum(int[] input, out int max, out int min)
{
int sum = max = min = input[0];
for (int i = 1; i < input.Length; i++)
{
sum += input[i];
if (max < input[i])
{
max = input[i];
}
else if (min > input[i])
{
min = input[i];
}
}
return sum;
}
- 重复让用户输入一个数,判断该数是否是质数,输入q结束?
while (true)
{
int zhishu;
Console.WriteLine("请输入一个数字:");
string shu = Console.ReadLine();
if (shu == "q")
{
break;
}
if (int.TryParse(shu, out zhishu))
{
if (Zs(zhishu))
{
Console.WriteLine("这是个质数");
}
else
{
Console.WriteLine("这不是质数");
}
}
else
{
Console.WriteLine("输入有误,重新输入");
}
}
Console.ReadKey();
}
static bool Zs(int zhishu)
{
while (true)
{
for (int i = 2; i < zhishu/2; i++)
{
if (zhishu % i == 0)
{
return false;
}
}
return true;
}
}
-
质数的判断用方法来实现
-
将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”(用方法来实现此功能)
string[] Name = new string[] { "梅西 ", "郑华", "乔治", "西陵", "原址" };
Mz(Name);
Console.ReadKey();
}
static void Mz(string[] minzi)
{
for (int i = 0; i < minzi.Length - 1; i++)
{
Console.Write(minzi[i] + "||");
}
Console.WriteLine(minzi[minzi.Length - 1]);
- 用方法实现找出一个int类型数组中最大值和最小值
同41题
交换两个变量的值。
(如果会使用ref,则用方法做。)
int num1 = 5;int num2=6;
通过程序交换让num1 = 6,num2=5;
用方法实现:
求两个数的最大值(传递两个int类型参数) 。扩展:(求三个数最大值,params)
求1-100之间所有奇数的和。
找胖子,{200,120,90,180,110},找最胖的人.(求最大值,参数是int类型数组。)