《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}"
Console .WriteLine(
"{0,10:f3}"
Console .WriteLine(
"{0,10:f3}"
, x);
, y);
, 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)编一个程序,从键盘上输入三个数,用三元运算符( ? : )把最小数找
出来。 (k10052702) 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 else 语句,如果该数大于 0,则加
上100,否则加上 500,输出结果。( k10032301)
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 else 语句把它们的中间数找
出来,可以使用逻辑运算符。 (k10032309)
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)
a, i, j, k;
int
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 页