《C#程序设计基础》习题库程序.docx
《《C#程序设计基础》习题库程序.docx》由会员分享,可在线阅读,更多相关《《C#程序设计基础》习题库程序.docx(45页珍藏版)》请在冰豆网上搜索。
《C#程序设计基础》习题库程序
《C#程序设计基础》习题库程序
2010年6月3日提供给信息中心的原稿
20分题50个
40分题24个
1.(20)编一个程序,定义常量Pi=3.14159265,从键盘上输入半径r,求出圆的面积。
(k003101)
constdoublePi=3.14159265;
doubler,s;
Console.WriteLine("请输入圆的半径");
r=double.Parse(Console.ReadLine());
s=Pi*r*r;
Console.WriteLine("圆的面积是{0}",s);
2.(20)编一个程序,定义三个double类型的变量,分别从键盘上输入值给它们,然后用Console.WriteLine方法把它们输出成一列,小数点对齐,保留3位小数。
(k10052703)
doublex,y,z;
Console.WriteLine("请输入一个数:
");
x=double.Parse(Console.ReadLine());
Console.WriteLine("请输入一个数:
");
y=double.Parse(Console.ReadLine());
Console.WriteLine("请输入一个数:
");
z=double.Parse(Console.ReadLine());
Console.WriteLine("{0,10:
f3}",x);
Console.WriteLine("{0,10:
f3}",y);
Console.WriteLine("{0,10:
f3}",z);
//Console.WriteLine("{0:
f3}",x);
//Console.WriteLine("{0:
f3}",y);
//Console.WriteLine("{0:
f3}",z);
3.(20)编一个程序,从键盘上输入三个数,用三元运算符(?
:
)把最大数找出来。
(k10031505)
floatx,y,z,temp;
Console.Write("请输入一个实数:
");
x=float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:
");
y=float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:
");
z=float.Parse(Console.ReadLine());
temp=x>=y?
x:
y;
temp=temp>=z?
temp:
z;
Console.WriteLine("最大数为:
{0}",temp);
4.(20)编一个程序,从键盘上输入三个数,用三元运算符(?
:
)把最小数找出来。
(k10052702)floatx,y,z,temp;
Console.Write("请输入一个实数:
");
x=float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:
");
y=float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:
");
z=float.Parse(Console.ReadLine());
temp=x<=y?
x:
y;
temp=temp<=z?
temp:
z;
Console.WriteLine("最大数为:
{0}",temp);
5.(20)编一个程序,输入一个字符,如果是大写字母,就转换成小写字母,否则不转换。
(k1003205)
charch;
Console.WriteLine("请输入一个字符");
ch=char.Parse(Console.ReadLine());
if(ch>='A'&&ch<='Z')
{
ch=(char)(ch+32);
}
Console.WriteLine(ch);
6.(20)输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数字或者其它字符)(k10031802)
charch;
Console.WriteLine("请输入一个字符");
ch=char.Parse(Console.ReadLine());
if(ch>='A'&&ch<='Z')
Console.WriteLine("大写字母");
elseif(ch>='a'&&ch<='z')
Console.WriteLine("小写字母");
elseif(ch>='0'&&ch<='9')
Console.WriteLine("数字");
else
Console.WriteLine("其他字母");
7.(20)编一个程序,设圆的半径r=1.2,高h=1.5,定义圆周率常量Pi=3.1415,求出圆柱的体积。
(k10032305)
constdoublePi=3.1415;
doubler=1.2,h=1.5;
doublev;
v=Pi*r*r*h;
Console.WriteLine("圆柱体的体积是{0}",v);
8.(20)编一个程序,设园半径r=1.5,园柱高h=3.6,圆周率3.1415定义为常量,求出圆周长、圆面积、圆柱体积。
然后用Console.WriteLine方法输出计算结果,输出时要求有文字说明,取小数点后2位数字。
例如,圆周长=×××.××。
(k10052707)constdoublePi=3.1415;
doubler=3,h=5;
doublec,s,v;
c=2*Pi*r;
s=Pi*r*r;
v=Pi*r*r*h;
Console.WriteLine("圆的周长为{0:
f2}",c);
Console.WriteLine("圆的面积为{0:
f2}",s);
Console.WriteLine("圆的体积为{0:
f2}",v);
9.(20)编一个程序,输入一个字符,如果输入的字符是大写字母,则转换为小写字母;如果输入的字符是小写字母,则转换为大写字母,否则不转换。
(k10032601)
charch,c;
Console.WriteLine("请输入一个字符");
ch=char.Parse(Console.ReadLine());
if(ch>='A'&&ch<='Z')
{
c=(char)(ch+32);
Console.WriteLine("字符{0}为大写字母,转换为小写字母为{1}",ch,c);
}
elseif(ch>='a'&&ch<='z')
{
c=(char)(ch-32);
Console.WriteLine("字符{0}为小写字母,转换为大写字母为{1}",ch,c);
}
else
Console.WriteLine("{0}既不是大写字母也不是小写字母",ch);
10.(20)编一个程序,定义结构类型(有学号、姓名、性别和程序设计成绩四个字段),声明该结构类型变量,用赋值语句对该变量赋值以后再输出。
(k10031601)
structstudent
{
publicintno;
publicstringname;
publicstringsex;
publicdoublescore;
}
classProgram
{
staticvoidMain(string[]args)
{
studentstu;
stu.no=10003;
stu.name="小小";
stu.sex="女";
stu.score=89.5;
Console.WriteLine("学生的学号是{0},名字叫{1},性别是{2},程序设计的成绩是{3}",stu.no,stu.name,stu.sex,stu.score);
11.(20)编一个程序,定义一个实数变量,从键盘上输入一个值,如果这个值在闭区间[0,100]里,则加上1000,否则不加。
最后输出结果。
(k10032304)
floatf,g;
Console.WriteLine("请输入一个实数变量");
f=float.Parse(Console.ReadLine());
if(f>=0&&f<=100)
{
g=f+1000;
Console.WriteLine("{0}在0-100之间,最后结果为{1}",f,g);
}
else
Console.WriteLine("{0}不在0-100之间",f);
12.(20)编一个程序,输入一个整数,使用ifelse语句,如果该数大于0,则加上100,否则加上500,输出结果。
(k10032301)
inti,j;
Console.WriteLine("请输入一个整数");
i=int.Parse(Console.ReadLine());
if(i>0)
{
j=i+100;
Console.WriteLine("{0}>0,最后结果是{1}",i,j);
}
else
{
j=i+500;
Console.WriteLine("{0}<0,最后结果是{1}",i,j);
13.(20)编一个程序,用ifelse语句,输入一个整数,如果该数大于0,则输出"这个数大于零。
",如果该数等于0,则输出"这个数等于零。
",否则输出"这个数小于零。
"。
(k10032302)
inti;
Console.WriteLine("请输入一个整数");
i=int.Parse(Console.ReadLine());
if(i>0)
{
Console.WriteLine("这个数大于0");
}
elseif(i==0)
{
Console.WriteLine("这个数等于0");
}
else
{
Console.WriteLine("这个数小于0");
}
14.(20)编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。
例如,实数12.56经过四舍五入运算,得到结果13;而12.46经过四舍五入运算,得到结果12。
(k10012803)
doubled;
inti,e;
Console.WriteLine("请输入一个正数");
d=double.Parse(Console.ReadLine());
i=(int)d;
if((d-i)>=0.5)
e=i+1;
else
e=i;
Console.WriteLine("{0}四舍五入的结果为{1}",d,e);
15.(20)编写一个程序,定义三个float类型的变量,分别从键盘上输入值给它们,然后用ifelse选择语句找出它们中的最小数,最后输出结果。
(k10052604)
floatx,y,z,min=0;
Console.WriteLine("请输入三个float类型的值");
x=float.Parse(Console.ReadLine());
y=float.Parse(Console.ReadLine());
z=float.Parse(Console.ReadLine());
if(xmin=x;
elseif(ymin=y;
else
min=z;
Console.WriteLine("这三个数中的最小值为{0}",min);
16.(20)编一个程序,输入三个实数,要求使用ifelse语句把它们的中间数找出来,可以使用逻辑运算符。
(k10032309)
floatx,y,z,second=0;
Console.WriteLine("请输入三个float类型的值");
x=float.Parse(Console.ReadLine());
y=float.Parse(Console.ReadLine());
z=float.Parse(Console.ReadLine());
if((x>y&&xz))
second=x;
elseif((y>x&&yz))
second=y;
else
second=z;
Console.WriteLine("这三个数中的中间数为{0}",second);
17.(20)编一个程序,首先输入一个成绩(0到100的整数),用ifelse语句然后判断该成绩是优、良、中、及格还是不及格。
(k10040501)
doublescore;
Console.WriteLine("请输入一个成绩");
score=double.Parse(Console.ReadLine());
if(score>=90)
Console.WriteLine("优");
elseif(score>=80)
Console.WriteLine("良");
elseif(score>=70)
Console.WriteLine("中");
elseif(score>=60)
Console.WriteLine("及格");
else
Console.WriteLine("不及格");
18.(20)编一个程序,输入0—100之间的一个学生成绩分数,用switch语句输出成绩等第(成绩优秀(90-100),成绩良好(80-89),成绩及格(60-79)和成绩不及格(59以下))。
(k10032403)
intscore;
Console.WriteLine("请输入学生成绩");
score=int.Parse(Console.ReadLine());
score=score/10;
switch(score)
{
case10:
Console.WriteLine("成绩优秀");
break;
case9:
Console.WriteLine("成绩优秀");
break;
case8:
Console.WriteLine("成绩良好");
break;
case7:
Console.WriteLine("成绩及格");
break;
case6:
Console.WriteLine("成绩及格");
break;
default:
Console.WriteLine("成绩不及格");
break;
19.(20)编一个程序,利用do-while循环语句,从键盘上输入10个整数,求出它们的和。
(k10020105)
inti=1,n,sum=0;
do
{
Console.WriteLine("请输入一个整数");
n=int.Parse(Console.ReadLine());
sum=sum+n;
i++;
}while(i<=10);
Console.WriteLine("这十个整数的和为{0}",sum);
20.(20)编一个程序,用while循环语句来计算1+1/2+2/3+3/4+...+99/100之和。
(k10052605)
doublei=1,s=1;
while(i<=99)
{
s=s+i/(i+1);
i++;
}
Console.WriteLine("和为{0}",s);
21.(20)编一个程序,用do-while循环语句来计算PI=4*(1-1/3+1/5+...+1/n),要求当1/n<0.000001时停止计算。
(k10041502)
doublepi,s=0,x;
doublen=1;
do
{
x=Math.Pow(-1,n+1)/(2*n-1);
s=s+x;
n++;
}while(1/n>=0.000001);
pi=s*4;
Console.WriteLine("pi的值为:
{0}",pi);
22.(20)编一个程序,从键盘上输入二个实数,使用Math类中Max()和Min()方法,求出它们中的最大数和最小数。
(k10040604)
doubled1,d2,max,min;
Console.WriteLine("请输入两个实数");
d1=double.Parse(Console.ReadLine());
d2=double.Parse(Console.ReadLine());
max=Math.Max(d1,d2);
min=Math.Min(d1,d2);
Console.WriteLine("最大值为{0},最小值为{1}",max,min);
23.(20)编一个程序,利用while循环语句和Math类中的Pow()方法,求出1到10的各个数的平方之和。
(k10040602)
doublei=1,s=0;
while(i<=10)
{
s=s+Math.Pow(i,2);
i++;
}
Console.WriteLine("和为{0}",s);
24.(20)编一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如,153=1*1*1+5*5*5+3*3*3,所以153是“水仙花数”。
(k10033106)
inta,i,j,k;
for(a=100;a<=999;a++)
{
i=a%10;
k=a/100;
j=a%100/10;
if(a==Math.Pow(i,3)+Math.Pow(j,3)+Math.Pow(k,3))
Console.WriteLine("{0}是水仙花数",a);
25.(20)编写一个程序,用while语句,求出1+(1+2)+(1+2+3)+...+(1+2+3+...+10)之和。
(k10041803)
inti=1,s=0,j=1,s1=0;
while(j<=10)
{
while(i<=j)
{
s=s+i;
i++;
}
s1=s1+s;
j++;
}
Console.WriteLine("{0}",s1);
26.(20)编一个程序,输入二个正整数,求出它们的最大公约数。
(k10041901)
inti,j,k;
Console.WriteLine("请输入两个正整数");
i=int.Parse(Console.ReadLine());
j=int.Parse(Console.ReadLine());
k=ii:
j;
while(!
(i%k==0&&j%k==0))
k--;
Console.WriteLine("最大公约数为{0}",k);
27.(20)编一个程序,用while循环语句,从键盘输入10个数,要求找出最大数和次大数。
(k10041902)
inti=1,max=1,max1=1;
ints;
Console.WriteLine("请输入10个数:
");
while(i<=10)
{
s=int.Parse(Console.ReadLine());
if(s>max)
{
max1=max;
max=s;
}
elseif(s>max1)
{
s=max1;
}
i++;
}
Console.WriteLine("最大值为{0},次大值为{1}",max,max1);
28.(40)编一个程序,要求使用while语句,输入用户名和密码,实现用户登录程序的功能,至多允许输入三次,超过三次不允许登录。
(k10022507)
conststringUserName="admin";
conststringPassWord="123456";
stringusername,password;
inti=1;
while(i<=3)
{
Console.WriteLine("请输入用户名");
username=Console.ReadLine();
Console.WriteLine("请输入密码");
password=Console.ReadLine();
if(username==UserName&&password==PassWord)
break;
else
Console.WriteLine("你输入的用户名或者密码错误,请重新输入用户名和密码");
i++;
}
if(i<=3)
{
Console.WriteLine("正在登录系统");
}
else
Console.WriteLine("不能登录系统");
29.(20)有关系式1*1+2*2+3*3+...+k*k<2000,编一个程序,求出满足此关系式的k的最大值。
(k10052901)
intk=1,s=0;
while(s<2000)
{
s=s+k*k;
k++;
}
Console.WriteLine("k的值为{0}",k-2);
30.(20)编写一个程序,要求用while循环语句,打印1到100的正整数,每行打印5个数,每列右对齐。
(k10042004)
inti=1;
while(i<=100)
{
Console.Write("{0,10:
d1}",i);
if(i%5==0)
Console.WriteLine();
i++;
31.(20)Fibonacci序列的前二项是0和1,且每一个后继项是前二项的和。
编一个程序,输出项值不大于100的Fibonacci序列。
(k10033104)
intf1=0;
intf2=1;
intf3;
while(f1<100)
{
f3=f1+f2;
Console.Write("{0},",f1);
f1=f2;
f2=f3;
}
32.(40)编一个程序,输入a,b,c的值,求出一元二次方程a*x*x+b*x+c=0的二个实数根。
计算二个实数根必须使用Math类中的Sqrt()方法,计算指定数的开方。
计算二个实数根,可以用公式(-b+Math.Sqrt(b*b-4*a*c))/(2*a)和(-b-Math.Sqrt(b*b-4*a*c))/(2*a)(k10042102)
inta,b,c;
doublex1,x2;
Console.WriteLine("请输入a,b,c的值");
a=int.Parse(Console.ReadLine());
b=int.