《C#程序设计基础》习题库程序
2010 年 6 月 3 日提供给信息中心的原稿
20 分题 50 个
40 分题 24 个
1.(20)编一个程序,定义常量Pi=3.14159265,从键盘上输入半径r,求出圆的面
积。(k003101)
const double Pi = 3.14159265;
double r,s;
Console.WriteLine("请输入圆的半径");
r = double.Parse(Console.ReadLine());
s = Pi * r * r;
Console.WriteLine("圆的面积是{0}",s);
2.(20) 编一个程序,定义三个double类型的变量,分别从键盘上输入值给它
们,然后用Console.WriteLine方法把它们输出成一列,小数点对齐,保留3位小
数。(k10052703)
double x, 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)
float x, y, z, temp;
Console.Write("请输入一个实数:");
x = float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:");
y = float.Parse(Console.ReadLine());
Console.Write("请输入一个实数:");
第 1 页
z = float.Parse(Console.ReadLine());
temp = x >= y ? x : y;
temp = temp >= z ? temp : z;
Console.WriteLine("最大数为:{0}", temp);
4.(20)编一个程序,从键盘上输入三个数,用三元运算符(? :)把最小数找
出来。float x, 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)
char ch;
Console.WriteLine("请输入一个字符");
ch = char.Parse(Console.ReadLine());
if (ch >= 'A' && ch <= 'Z')
{
ch = (char)(ch + 32);
}
Console.WriteLine(ch);
6.(20)输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数
字或者其它字符)(k10031802)
char ch;
Console.WriteLine("请输入一个字符");
ch = char.Parse(Console.ReadLine());
if (ch >= 'A' && ch <= 'Z')
Console.WriteLine("大写字母");
else if (ch >= 'a' && ch <= 'z')
Console.WriteLine("小写字母");
else if (ch >= '0' && ch <= '9')
Console.WriteLine("数字");
else
Console.WriteLine("其他字母");
7.(20)编一个程序,设圆的半径r=1.2,高h=1.5,定义圆周率常量Pi=3.1415,
求出圆柱的体积。(k10032305)
const double Pi = 3.1415;
double r=1.2,h=1.5;
double v;
v = Pi * r * r * h;
第 2 页
Console.WriteLine("圆柱体的体积是{0}",v);
8. (20)编一个程序,设园半径r=1.5,园柱高h=3.6,圆周率3.1415定义为常量,
求出圆周长、圆面积、圆柱体积。然后用Console.WriteLine方法输出计算结果,
输出时要求有文字说明,取小数点后2位数字。例如,圆周长=×××.××。
(k10052707) const double Pi = 3.1415;
double r = 3, h = 5;
double c, 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)
char ch,c;
Console.WriteLine("请输入一个字符");
ch = char.Parse(Console.ReadLine());
if (ch >= 'A' && ch <= 'Z')
{
c = (char)(ch + 32);
Console.WriteLine("字符{0}为大写字母,转换为小写字母为{1}", ch, c);
}
else if (ch >= 'a' && ch <= 'z')
{
c = (char)(ch - 32);
Console.WriteLine("字符{0}为小写字母,转换为大写字母为{1}", ch, c);
}
else
Console.WriteLine("{0}既不是大写字母也不是小写字母",ch);
10.(20)编一个程序,定义结构类型(有学号、姓名、性别和程序设计成绩四
个字段),声明该结构类型变量,用赋值语句对该变量赋值以后再输出。
(k10031601)
struct student
{
public int no;
public string name;
public string sex;
public double score;
}
class Program
{
static void Main(string[] args)
第 3 页
{
student stu;
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)
float f,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)编一个程序,输入一个整数,使用if
上100,否则加上500,输出结果。(k10032301)
else语句,如果该数大于0,则加
int i,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)编一个程序,用if
else语句,输入一个整数,如果该数大于0,则输
出"这个数大于零。",如果该数等于0,则输出"这个数等于零。",否则输出"这个
数小于零。"。(k10032302)
int i;
Console.WriteLine("请输入一个整数");
i = int.Parse(Console.ReadLine());
if (i > 0)
{
Console.WriteLine("这个数大于0");
}
第 4 页
else if(i==0)
{
Console.WriteLine("这个数等于0");
}
else
{
Console.WriteLine("这个数小于0");
}
14.(20)编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。例
如,实数12.56经过四舍五入运算,得到结果13;而12.46经过四舍五入运算,得
到结果12。 (k10012803)
double d;
int i,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类型的变量,分别从键盘上输入值给它们,
然后用if
else选择语句找出它们中的最小数,最后输出结果。(k10052604)
float x, y, z,min=0;
Console.WriteLine("请输入三个float类型的值");
x = float.Parse(Console.ReadLine());
y = float.Parse(Console.ReadLine());
z = float.Parse(Console.ReadLine());
if (x < y && x < z)
min = x;
else if (y < x && y < z)
min = y;
else
min = z;
Console.WriteLine("这三个数中的最小值为{0}",min);
16.(20)编一个程序,输入三个实数,要求使用 if
出来,可以使用逻辑运算符。(k10032309)
else 语句把它们的中间数找
float x, 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;
第 5 页
else if ((y>x&&yz))
second = y;
else
second = z;
Console.WriteLine("这三个数中的中间数为{0}", second);
17.(20)编一个程序,首先输入一个成绩(0 到 100 的整数),用 if else 语句
然后判断该成绩是优、良、中、及格还是不及格。(k10040501)
double score;
Console.WriteLine("请输入一个成绩");
score = double.Parse(Console.ReadLine());
if (score >= 90)
Console.WriteLine("优");
else if (score >= 80)
Console.WriteLine("良");
else if (score >= 70)
Console.WriteLine("中");
else if (score >= 60)
Console.WriteLine("及格");
else
Console.WriteLine("不及格");
18.(20)编一个程序,输入 0—100 之间的一个学生成绩分数,用 switch 语句
输出成绩等第(成绩优秀(90-100),成绩良好(80-89),成绩及格(60-79)
和成绩不及格(59 以下))。(k10032403)
int score;
Console.WriteLine("请输入学生成绩");
score = int.Parse(Console.ReadLine());
score = score / 10;
switch (score)
{
case 10:
Console.WriteLine("成绩优秀");
break;
case 9:
Console.WriteLine("成绩优秀");
break;
case 8:
Console.WriteLine("成绩良好");
break;
case 7:
Console.WriteLine("成绩及格");
break;
case 6:
Console.WriteLine("成绩及格");
break;
第 6 页
default:
Console.WriteLine("成绩不及格");
break;
19.(20)编一个程序,利用 do-while 循环语句,从键盘上输入 10 个整数,求出
它们的和。(k10020105)
int i=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)
double i = 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)
double pi,s=0,x;
double n=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)
double d1, 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);
第 7 页
23.(20)编一个程序,利用 while 循环语句和 Math 类中的 Pow()方法,求出 1
到 10 的各个数的平方之和。(k10040602)
double i = 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)
int a, 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)
int i = 1, s = 0,j=1, s1 = 0;
while (j <=10)
{
while (i <= j)
{
s = s + i;
i++;
}
s1=s1+s;
j++;
}
26.(20)编一个程序,输入二个正整数,求出它们的最大公约数。(k10041901)
Console.WriteLine("{0}", s1);
int i, j,k;
Console.WriteLine("请输入两个正整数");
i = int.Parse(Console.ReadLine());
j = int.Parse(Console.ReadLine());
k = i < j ? i : j;
while (!(i % k == 0 && j % k == 0))
k--;
Console.WriteLine("最大公约数为{0}",k);
第 8 页