1、打印出由*号组成的倒三角形的图案
******* 4*2-1 要求: 1、输入倒三角的行数,行数范围3-18,对于不在范围的行数,抛出提示.
***** 3*2-1 2、在控制台打印出指定行数的倒三角形。
***2
*1
答:while (true)
{
Console.Write("请输入一个数(3-50)之间:");
int num = Convert.ToInt32(Console.ReadLine());
if (num < 3 || num > 50)
{
Console.WriteLine("非法数值");
continue;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < num; i++)
{
sb.Clear();
//生成空格,规则:行首空格数=行数-1
string space = "".PadLeft(i, ' ');
sb.Append(space);
//生成星号, 规则:行号*2-1,行号=num-i
string star = "".PadLeft((num - i) * 2 - 1, '*');
sb.Append(star);
Console.WriteLine(sb);
}
}
2、什么是单例?编写一个单例类。
答:单例是一种设计模式。
这一模式的目的是使得类的一个对象成为系统中的唯一实例。
单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
/// <summary>
/// 单例模式的实现
/// </summary>
public class Singleton
{
// 定义一个静态变量来保存类的实例
private static Singleton uniqueInstance;
// 定义私有构造函数,使外界不能创建该类实例
private Singleton()
{
}
/// <summary>
/// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点
/// </summary>
/// <returns></returns>
public static Singleton GetInstance()
{
// 如果类的实例不存在则创建,否则直接返回
if (uniqueInstance == null)
{
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}
3、try{}里有一个return语句,那么紧跟在try后的finally{}里的代码会不会被执行,什么时候被执行。
答:会执行,如果return后面有一个返回值或者表达式,则会先进行计算,把值暂存起来,然后再执行finally里的代码,无论如何,return总是最后执行。
4、不用中间变量,交换两个整型变量。
答:i = 10, j = 20;
i = i + j;//i = 30;
j = i - j;//j = 10;
i = i - j;//i = 20;
5、对数据的并发采用什么方法比较好?
答:可以控制连接池的连接数量,越多越好,还可以使用负载均衡。