1. 写一个程序,语言ASP.NET(C#),打印出100的阶乘(即1*2*3*…*100)。
2. 写一个程序,语言ASP.NET(C#),能将人民币金额从阿拉伯数字转换为大写汉字表示。例如,把1234.56转换为壹仟贰佰叁拾肆圆零伍角陆分。
3. 编程实现求出若干个整数之和为500的连续整数(如98,99,100,101,102),所有组合。
4. 在SQL Server 数据库中,有一个表StudentAchievement(学生成绩),它有三个字段:StudentID(varchar(8),学生编号),CourseID(varchar(10),课程编号),Achievement(int ,成绩),写一条SQL语句,筛选出每门课程的前两名的学生编号,课程编号,成绩并排序。
5. 谈谈你对面向对象的认识(限150字)。
6. 谈谈你对多层架构的认识(限150字)。
2. 写一个程序,语言ASP.NET(C#),能将人民币金额从阿拉伯数字转换为大写汉字表示。例如,把1234.56转换为壹仟贰佰叁拾肆圆零伍角陆分。
3. 编程实现求出若干个整数之和为500的连续整数(如98,99,100,101,102),所有组合。
4. 在SQL Server 数据库中,有一个表StudentAchievement(学生成绩),它有三个字段:StudentID(varchar(8),学生编号),CourseID(varchar(10),课程编号),Achievement(int ,成绩),写一条SQL语句,筛选出每门课程的前两名的学生编号,课程编号,成绩并排序。
5. 谈谈你对面向对象的认识(限150字)。
6. 谈谈你对多层架构的认识(限150字)。
using System.Collections.Generic;
using System.Text;namespace asdfff
{
class Program
{
static void Main(string[] args)
{
List<int> a = new List<int>();//阶乘起点
a.Add(1);//定义了100!起点的 List<int> c = new List<int>();//阶乘次数
int gs = 0;//表示是否有大于10,如有就去了个位取出来
List<int> b = new List<int>();//用于存储中间生成的结果
List<int> sums = new List<int>();//用存储有两个位数时存储单个位数的结果
for (int i = 1; i <= 99; i++)
{
c.Clear();
c.Add(i % 10);//把阶乘(如100分成一个0,0,1的数组)
if (i >= 10)
{
c.Add(i / 10 % 10);
}
for (int j = 0; j < c.Count; j++)
{
if (c[j] != 0)//不是0时计算
{
for (int k = 0; k < a.Count; k++)
{
int sum = 0;
sum = c[j] * a[k];//用阶乘的值与目标值相乘
if (gs != 0)//结果如大于10就要取出个位存到b集合中 并把去了个位上的数后把值存在进位变量中
{
sum = sum + gs;
}
if (sum >= 10)
{
int a1 = sum / 10 % 10;
int a2 = sum / 100 % 10;
gs = (a2 * 10) + a1;
}
else
{
gs = 0;
}
b.Add(sum % 10); }
if (gs != 0)//如是最大的时就把进位的值也加到集合中去
{
if (gs < 10)
{
b.Add(gs);
}
else
{
b.Add(gs % 10);
b.Add(gs / 10 % 10);
}
gs = 0;
} }
else//如阶乘值是0就把集合定义为单个值(0值)的集合
{
b.Add(0);
}
if (c.Count ==1)//当阶乘值不大于10(是单位数时)
{
a.Clear();//直接把数组做为下次阶乘的对象
for (int d = 0; d < b.Count; d++)
{
a.Add(b[d]);
}
b.Clear();
}
if (c.Count > 1)//阶乘大于10
{
if (sums.Count > 0)//是否为以有存在个位结果
{
a.Clear();
a.Add(b[0]);//增加最后的个位
int o = 0;//临时存储用于是否有进位数
int ss=0;//计算结果
for (int d = 0; d < b.Count; d++)
{
if (d < sums.Count-1)
{
if (sums.Count > 1 )
{
ss = sums[d + j] + b[d]+o;//加上进位数
o = 0;
if (ss >= 10)
{
o = 1;
}
else
{
o = 0;
} a.Add(ss%10);
}
else
{
a.Add(sums[d]+o);
o = 0;
}
}
else
{
a.Add(b[d]+o);
o = 0;
}
}
if (o != 0)//如果进位后没有就要加上进位的值
{
a.Add(o);
}
sums.Clear();
b.Clear();
}
else//第一次进行个位计算时把值增加到位结果集合中
{
sums.Clear();
for (int d = 0; d < b.Count; d++)
{
sums.Add(b[d]);
}
b.Clear();
}
} }
}
for (int s = a.Count-1; s >=0; s--)
{
Console.Write(a[s]);
}
}
}
}
------------
这个以前用powerbuilder做过。这个问题看似很容易,实际上,要小心“0”的变换,比如10.05,应该转成壹拾圆零五分,这个一不小心就容易弄错。
5. 谈谈你对面向对象的认识(限150字)。
----------
这个我好像还说不到150字。面向对象的基本思想似乎是定义一些具有某些功能(方法)的相对独立的数据结构,通过事件触发(有点类似中断调用)的方式互相通信,调用,来实现程序功能。主要目的是提高可维护性,可重用性等。6. 谈谈你对多层架构的认识(限150字)。
-----------
这个也说不深刻。大致似乎是将软件系统分成逻辑上相对独立的几组模块,各自负责一定的功能,这样有利于提高程序的可维护性,提高性能,安全性等。基本的多层架构是用户界面层,业务逻辑处理层和与数据库打教道的数据层。缺点是增加了程序的复杂性,调试起来比较麻烦。