C# for Unity 编程语言快速入门教程(连载3)---C#基础编程题库
前两篇文章按照基本编程类型,总结了“选择结构”、“循环结构”、“数组”等典型题目,且都是非常基础简单的题目。
现在提高一点难度,混合以上类型进行编程,提供带答案的几个典型题目如下:
// 第22题: 键入10 个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。
int intNegNum=0;
int intPosNum=0;
int intZeroNum=0;
for (int i = 1; i <=10; i++)
{
Console.WriteLine("请输入第{0}个整数",i);
string strNumber = Console.ReadLine();
int intNumber = Convert.ToInt32(strNumber);
//判断且输出
if(intNumber>0)
{
++intNegNum;
}
else if (intNumber==0)
{
++intZeroNum;
}else{
++intPosNum;
}
}
Console.WriteLine("统计如下");
Console.WriteLine("整数有{0}个", intNegNum);
Console.WriteLine("负数有{0}个", intPosNum);
Console.WriteLine("零有{0}个", intZeroNum);
//第23题: 输入一个学生的成绩(在0~100 分之间,超出此范围显示错),进行五级评分并显示。
Console.WriteLine("请输入你的学习成绩");
string strNumber = Console.ReadLine();
int intNumber = Convert.ToInt32(strNumber);
if(intNumber>100 || intNumber<0)
{
Console.WriteLine("输入的范围超出合理范围");
}else if(intNumber>90 && intNumber<=100)
{
Console.WriteLine("卓越");
}else if(intNumber>80 && intNumber<=90)
{
Console.WriteLine("优秀");
}else if(intNumber>70 && intNumber<=80)
{
Console.WriteLine("良好");
}else if(intNumber>=60 && intNumber<=70)
{
Console.WriteLine("及格");
}else{
Console.WriteLine("不及格");
}
//第24题: 输入一个圆半径(r),计算并输出圆的面积(s)和周长(l)
const float PI=3.1415F;
Console.WriteLine("请输入圆的半径");
string strR = Console.ReadLine();
int intR = Convert.ToInt32(strR);
Console.WriteLine("面积=" + PI * intR*intR);
Console.WriteLine("周长="+2*PI*intR);
//第25题: 打印输出上三角,不能使用直接打印,如下图
*
**
***
****
*****
for (int i = 1; i <= 5; i++) //行
{
for (int j = 1; j <= i; j++) //列
{
Console.Write("*");
}
Console.WriteLine();
}
//第26题:声明并初始化长度为10的整型数组,输入10个数.输出其中大于平均值的数.
int[] intArray = new int[10];
float floTotal = 0; //10个数的总和
float floAVG = 0F; //平均数
//得到10个数的平均数
for (int i = 0; i <10; i++)
{
Console.WriteLine("请输入第{0}个整数", i+1);
string strR = Console.ReadLine();
int intR = Convert.ToInt32(strR);
//输入的数值存入数组
intArray[i] = intR;
//计算总和
floTotal += intR;
}
//得到平均数
floAVG = floTotal / 10;
//输出大于平均值的数
for (int j = 0; j <10; j++)
{
if(intArray[j]>floAVG)
{
Console.WriteLine("大于平均数=" + intArray[j]);
}
}
//第27题: 输入数字5输出
* * *
* * *
* * *
* * *
*****
Console.WriteLine("请输入显示图形的行数");
string strRowNumber = Console.ReadLine();
int intRowNumber = Convert.ToInt32(strRowNumber);
for (int i = 1; i <=intRowNumber; i++) //i 表示行数
{
if (i == intRowNumber)
{
Console.WriteLine("*****");
}
else {
Console.WriteLine("* * *");
}
}
//第28题: 模拟计算器输入两个数值与运算符,计算出相应运算结果。
int intFirstNum;
int intSencondNum;
char chFlag;
Console.WriteLine("控制台计算器");
Console.WriteLine("请输入第一个整数操作数");
string strNum1 = Console.ReadLine();
intFirstNum = Convert.ToInt32(strNum1);
Console.WriteLine("请输入操作符 + - * / ");
string strFlag = Console.ReadLine();
chFlag = Convert.ToChar(strFlag);
Console.WriteLine("请输入第二个整数操作数");
string strNum2 = Console.ReadLine();
intSencondNum = Convert.ToInt32(strNum2);
//计算结果
switch (chFlag)
{
case '+':
Console.WriteLine("计算结果是:" + (intFirstNum + intSencondNum));
break;
case '-':
Console.WriteLine("计算结果是:" + (intFirstNum - intSencondNum));
break;
case '*':
Console.WriteLine("计算结果是:" + (intFirstNum * intSencondNum));
break;
case '/':
if (intSencondNum==0)
{
Console.WriteLine("除数不能为零!");
}else{
Console.WriteLine("计算结果是:" + (intFirstNum / intSencondNum));
}
break;
default:
break;
}
//第29题: 解法1(传统方式): 输出1-1000所有的素数
for (int i = 3; i <= 1000; i++)
{
bool IsSS = true; //素数变量
for (int j = 2; j < i; j++)
{
if (i % j== 0)
{
IsSS = false;
break;//表示 i不是素数
}
}
if (IsSS)
{
Console.WriteLine(i);
}
}
//解法2: 采用方法的方式,可以简化编程逻辑。
//输出1-1000所有的素数
public void Demo11()
{
for (int i = 3; i <=1000; i++)
{
if (JudgeSS(i))
{
Console.WriteLine(i);
}
}
}
/// <summary>
/// 判断是否为素数
/// </summary>
/// <param name="num"></param>
/// <returns>
/// true:表示素数
/// </returns>
private bool JudgeSS(int num)
{
bool IsResult = true; //默认是素数
for (int i = 2; i < num; i++)
{
if(num%i==0)
{
IsResult = false;//不是素数
break;
}
}
return IsResult;
}
以上提供带参考答案的29个基础题目,如果初学者可以全部领会贯通,将对后继C#深入学习打下一个良好的基础。
但是在这里笔者还是推荐,有充裕学习时间的初学者可以进行海量做题,以达到对编程思路(算法)的灵活训练之目的。故现在提供以下50+个精选编程题目,以供大家学习做题参考。(不提供参考答案,部分题目有重复,做过的直接略过即可)
1: 定义一个学生的成绩 mark 变量,
如果小于80,且打印"不及格"
如果大于等于80且小于100,则及格
如果大于等于100且小于120,则良好
如果大于等于120且小于等于150,则优秀
2: 求分段函数的值。
f(x)= 0 (x<0)
= 2x+1 (x>=0)
3: 编写程序,输出1-100间的所有偶数。
4: 求1+2+3+ 。。。 +20 的结果。分别使用(while ,do_while ,for 三种循环语句)
5: 输出1-100 之间不能被6整除的全部数字。
6:计算输出1-100 之间的所有奇数且小于4位数字的累加和。
7: 计算1-100间所有整数的和,当和为4位数时终止求和并输出该和的值。
8: 打印输出平方值小于20000的最大整数。
9: 键入10 个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。
10: 输入一个学生的成绩(在0~100 分之间,超出此范围显示错),进行五级评分并显示。
11: 输入一个圆半径(r),计算并输出圆的面积(s)和周长(l)
12: 输入两个实型数x 和y,计算并输出它们的和、差、积和商。
13: 编一个程序,输入一个整数,输出其符号(若>=0, 输出1; 若<0, 输出 -1 ).
14: 编写一个程序,输入实数x 的值,按下列公式计算并输出 y 的值:
y= x (x<=1)
2x-1 (1<x<10)
3x-11 (10<=x)
15: 编写一个程序, 输入三个单精度数,输出其中最小数。
16: 编写一个程序, 输入10个整数,统计并输出其中正数、负数和零的个数。
17: 用三种循环语句分别编写程序显示1-100 的平方值。
18: 打印输出上三角,不能使用直接打印
*
**
***
****
*****
19: 打印输出九九乘法表。
20: 编程序判断某字符型变量中存放的是否为小写字母。
21: 编写程序输入单个字符,判断是否数据字符。是则输出字符Y,否则输出字符N
22: 输入非0的三位整数, 依次输出该数的正(负)号和百位、十位、个位数字。
23: 输入一个字符,是字母则输出“yes!”,否则无输出。
24: 输入一个整数x,若大于5且小于10的,则输出“5<x<10”,否则无输出。
25: 计算下列分段函数 ,y= 0 (x<-1.0)
1 (-1.0<=x<=1.0),其中X由键盘输入。
10 (x>1.0)
26: 输入一个字符,如果是数字则输出字符1 ; 如果是大写字母则输出字符2 ;如果是小写字母
则输出字符3; 如果是空格则输出字符4; 如果是回车换行符则输出字符5; 是其他符号
则输出字符6.
27: 输入一个带符号的短整型数,输出该数的位数。
28: 从键盘上输入10个实数,求其平均值
29: 输入一个短整型正数,输出其各位数字的平方和。
30: 求整数1~100的累加值,但要求跳过所有个位为3的数。
31. 输入数值判断是否大于10且小于20
32. 输入三个整数,输出其中最大数
33. 模拟计算器输入两个数值与运算符,计算出相应运算结果.
34. 输入两个数,求这两个数之间所有整数的和
35. 不断输入字符直到用户输入; 统计大写字母与小写字母及数字的个数
36. 输入一个整数,输出各位 数值
37. 输入数字5输出
*****
* * *
* * *
* * *
* * *
38. 声明并初始化长度为10的整型数组,输入10个数.输出其中大于平均值的数.
39. 输入数值判断是否是整数,如:输入156输出”是”输入5.68输出”否”
40. 输入三角形三边,判断三边是否能构成三角形
41. 输入一个百分制成绩,转为A、B、C,A:90~100 ,B:80~89,C:70~79其他未D
42. 输出A~Z 再输出 a~z
43. 输入大写转小写 ,询问用户是否继续,输入y继续输入n退出
44. 输入一个整数,输出各位 数值
45. 输入数字5输出
* * *
* * *
* * *
* * *
*****
46. 声明并初始化长度为10的整型数组,输入10个数.输出其中大于平均值的数.
50: 键盘输入十个数值,统计输出大于等于平均数的数值。【数组应用题目】
51: 有十个数放入数组中,用户输入一个数值,找出这个数值在本数值中的序号,
如果没有输出“不存在”!
52: 数组中已有升序的10个数,输入一个数插入到数组中该数组仍然升序。
53: 输入一个数字统计其中0-9出现的次数。
以上三篇文章就C#的基本编程提供了大量习题,以供学习之用。下一篇,笔者来讲解C#的面向对象特性与习题。