C#小程序练习题及答案.docx
- 文档编号:9642687
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:43
- 大小:81.04KB
C#小程序练习题及答案.docx
《C#小程序练习题及答案.docx》由会员分享,可在线阅读,更多相关《C#小程序练习题及答案.docx(43页珍藏版)》请在冰点文库上搜索。
C#小程序练习题及答案
《c#程序设计基
础》习题库程序
数,用三元运算符(:
)把最大数找出来。
(k)
floatX.y・z.teiDp;
(”请输入一个实数:
J;
X=0):
(”请檢入一个实数:
y=0):
(”请输入一个实数:
z=()>:
2010年6月3日提供给信息中心的原稿
20分题50个
40分题24个
1,(20)编一个程序,定义常量Pi=3.,从键盘上输入半径r,求出圆的面积。
(kOOSlOl)
constdoublePi=3.
doubler.s;
r请输入0的半径
r=0);
S=Pi*r*r:
C0的面枳是{Or.sA
2,(20)编一个程序,定义三个double类型的变量,分别从键盘上输入值给它们,然后用方法把它们输出成一列,小数点对齐,保留3位小数。
(k)
doub1eX.y・z;
r请输入一个数:
-):
X=0):
r请输入一个数:
“);
y=0):
r请输入一个数:
");
Z=0);
("(O.IO:
f3}\
temp=X>=yx:
y;
temp=ternp>=ztemp:
z:
("最大数为:
{0}\temp):
4.(20)编一个程序,从键盘上输入
三个数,用三元运算符(:
)把最小
数找出来。
(k)floatX.y・z.temp:
r请输入一个实数:
J;
X=0):
(”请檢入一个实数:
y=0):
r请输入一个实数:
z=()>:
temp=X<=yx:
y;
temP=temp<=ztemp:
z:
(”最大数为:
{0}\temp):
5.(20)编一个程序,输入一个字符,如果是大写字母,就转换成小写字母,否则不转换。
(kl003205)
charch:
(”请输入一个字符”);
ch=0);
if(ch>=*&&ch<=73
ch=(char)(ch+32);
(ch):
(20)输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数字或者其它字符)(k)
charch:
("请输入一个字符
("(OJO:
f3)\
20)编一个程序,从键盘上输入三个
c=(char)(ch+32);
r字符{0)为大写字母换为小宵字母为(1}\ch.
c):
ch=0):
if(ch>=&&ch<='Z')
C大每字#"):
elseif(ch>='a'&&ch<=’z")
C小每字每”);
elseif(ch>=*0'&&ch<='9')
elseif(ch>='a'&&ch<='z*)
(”数字
else
C其他字母-);
7.(20)编一个程序,设圆的半径卢,高hr定义圆周率常量Pir求出圆柱的体积。
(k)
constdoub1ePi=;
doubler=.h=:
doubleV;
V=Pi*r*r*h:
r圆柱体的体积是(or.v):
&(20)编一个程序,设园半径尸,园
柱高hr圆周率定义为常量,求出圆周
长、圆面积、圆柱体积。
然后用方法
输出计算结果,输出时要求有文字说
明,取小数点后2位数字。
例如,圆周
长二XXX.XX0(k)constdoublePi
c=(char)(ch-32):
r字符{0}为小写字母•辕换为大每字每为{1}\ch.
C):
else
C{0)既不是大禹字每也不是小写字母\ch):
10.(20)编一个程序,定义结构类
型(有学号、姓名.性别和程序设计成绩四个字段),声明该结构类型变量,用赋值语句对该变量赋值以后再输出。
(k)
Structstudent
publicintno;
publicstringname;
publicstringsex;
doubler=3,h=5;
publicdoub1escore:
doub1ec.s・v
c=2*Pi♦r
classProgram
s=Pi*r*r
staticvoidMain(string[]args)
V=Pi*r*r*h:
C0的周长为{0:
f2F・c>;
studentstu;
r圆的面枳为(o:
f2}\S);
r圆的体枳为(o:
f2}\V):
9.(20)编一个程序,输入一个字符,如果输入的字符是大写字母,则转换为小写字母;如果输入的字符是小写字母,则转换为大写字母,否则不转换。
(k)
charch.c:
r请输入一个字符“);
ch=0):
if(ch>=*&&ch<='Z')
=10003;
=•小小
=•女飞
r学生的学号是{0)•名字叫U}•性别是{2}•程序
设计的成绩是{31
11.(20)编一个程序,定义一个实数变量,从键盘上输入一个值,如果这个值在闭区间[0,100]里,则加上1000,否则不加。
最后输出结果。
(k)
floatf・g;
("请输入一个实数变量J;
f=0):
r这个数等于oj;
else
if(f>=0&&f<=100)
r这个数小于OJ;
g=f+1000:
(”{0)在OTOO之问•锻后结果为(ir.f.g):
else
("(01不在0T00之问■•f〉;
12.(20)编一个程序,输入一个整数,使用ifelse语句,如果该数大于0,则加上100,否则加上500,输出结果。
(k)
14,(20)编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。
例如,实数经过四舍五入运算,得到结果13;而经过四舍五入运算,得到结果12。
(k)
doubled;
inti.e:
(”请输入一个正数
d=0):
i=(int)d:
if((d-i)>=
inti,j:
r请输入一个整IT);
i=())!
if(i〉0)
else
果。
j=i+100;
(”(0}>0•最后绪果是{\}\i.j);
else
j=i+500;
C(0}<0・裁后绪杲是(ir.ij);
13.(20)编一个程序,用ifelse语句•输入一个整数,如果该数大于0,则输出”这个数大于零。
”,如果该数等于0,则输出•'这个数等于零。
J否则输出"这个数小于零。
蔦(k)
intL;
r请输入一个整数
1=0):
('{01四舍五入的结果为[1}\d.e);
15.(20)编写一个程序,定义三个float类型的变量,分别从键盘上输入值给它们,然后用ifelse选择语句找出它们中的最小数,最后输出结
(k)
floatX.y・z.inin=0:
C请输入三个float类型的值•);
X=0):
y=0):
z=0):
if(X min=X: elseif(y min=y: if(i〉0> else min=z r这个数大于(T); 「这三个数中的最小值为(0}\min): 16.(20)编一个程序,输入三个实数,要求使用ifelse语句把它们的中间 数找出来,可以使用逻辑运算符。 (k) floatx・y.z,second=0: 「请输入三个float类型的值J; switch(score) case10: (-成绩优秀”); X=0); y=())! z=())! if((x>y&&x second=X: break; case9: break: elseif((y>x&&y second=y; else case8: r成绩良好”); break: second=z case7: C这三个数中的中间数为(0}",second); 17.(20)编一个程序,首先输入一 个成绩(0到100的整数),用ifelse语句然后判断该成绩是优、良、中.及格还是不及格。 (k) doublescore: r请输入一个成绩J; score=0); if{score>=90) (“优J; if(score (“成绩及格”); break; case6: C成绩及格”); break; default: C成绩不及格“); break: else >= 80) else else (•良 if(score (•中”〉; if(score r及格“); >= >= 70) 60) IS(20)编一个程序,利用do-while循环语句,从键盘上输入10个整数,求出它们的和。 (k) inti=l・msum=0; do (”请输入一个整数”); n=0): 输入0—100 20.环 else r不及格"); 18.(20)编一个程序, 之间的一个学生成绩分数,用switch语句输出成绩等第(成绩优秀(90-100)■成绩良好(80・89),成绩及格(60-79)和成绩不及格(59以下))。 (k) intscore; r请输入学生成绩 score=0); score=score/10; sum=sum+n; Iwhile(i<=10); C这十个整数的和为{Or.sum); (20)编一个程序,用while循 语句来计算 1+1/2+2/3+3/4+...+99/100之和。 (k) doublei=1.s=l: while(i<=99) S=S+i/(i+I); r粗为l0}\s); 21.(20)编一个程序,用do-while循环语句来计算PI=4*(l-l/3+l/5+...+l/n),要求当l/n<时停止计算。 (k) doublepi・s=0・x; doublen=l; do X=(-l.n+I)/(2*n-I): .n S=S+X: n++; Iwhile(I/n>=; 153=1*1*1+5*5*5+3*3*3,所以153是 "水仙花数”。 (k) inta.i,j.k; for{a=100;a<=999;a++) i=a%10: k=a/100; j=a%100/10: if(a==(i.3)+(j.3)+(k,3)) (70)畏水仙花数”4); 25.(20)编写一个程序,用\vh订e语 句,求出 1+(1+2)+(1+2+3)+•••+(1+2+3+.••+1 0)之和。 (k) pi=S*4; ("pi的值为: tor.pi〉: 22.(20)编一个程序,从键盘上输入二个实数,使用Math类中MaxO和HinO方法,求出它们中的最大数和最小数。 (k) doubledl・d2.max.min; r请输入两个实数 inti=1.s=0.j=Lsi=0; while(j<=10) while(i<=j) 26. 数, dl=0): d2=0); niax=(dl,d2); min=(dl・d2); ("最大值为9}■最小值为(1}\max.min>; 23.(20)编一个程序,利用while循 环语句和Math类中的FoivO方法,求 出1到10的各个数的平方之和。 (k) doublei=l.s=0; while(i<=10) sl=sl+s: cer.si): (20)编一个程序,输入二个正整求出它们的最大公约数。 (k) inti,j・k; r请输入两个正整数J; i=0): j=0): k=i j: while(! (i%k=0&&j%k=0)) k—: r杓为{0}\s): 24.(20)编一个程序,打印出所有的“水仙花数",所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 例如, (“最大公约数为(0}\k): 27.(20)编一个程序,用while循环语句,从键盘输入10个数,要求找出最大数和次大数。 (k) inti=l.max=l,maxl=I: ints; if(i<=3) (•请输入10个数「); while(i<=10> C正崔登录系统J; else if(s>max) C不能聲录系统J; maxi=max; max=s 29•(20)有关系式 1*1+2*2+3*3+...+k*k<2000,编一个程序,求出满足此关系式的k的最大值。 (k) elseif(s>maxi) intk=I.s=0: while(s<2000) s=maxi; i++: k++: rk的值为(or.k-2>: (.最大值为{0)■次大值{1}'.max.maxi): 28,(40)编一个程序,要求使用while语句,输入用户名和密码,实现用户登录程序的功能,至多允许输入三次,超过三次不允许登录。 conststringUserName="admin": constsiringPassWord="123456*; stringusername,password: inti=l: tthile(i<=3) 30.(20)编写一个程序,要求用町订e循环语句,打印1到100的正整数,每行打印5个数,每列右对齐。 (k) inti=1; while(i<=100) ("(OJO: dl}\i): if(i%5=0) 0; r请输入用户名“); username=(); ("请输入密码 password=(); if(username―UserName&&password― Password) 31.(20)Fibonacci序列的前二项是 0和1.且每一个后继项是前二项的和。 编一个程序,输出项值不大于100的Fibonacci序列(,(k) fl=0: int int f2=1 intf3; break; whiletfKlOO) else f3=fl+f2: C你输入的用户名或者密码错误•请重新输入用户名和密码“); f2=f3; 32.(40)编一个程序,输入a,b,c 的值,求出一元二次方程a*x*x+b*x+c=0的二个实数根。 计算二个实数根必须使用Math类中的SqrtO方法,计算指定数的开方。 计算二个实数根,可以用公(-b+(b*b-4*a*c))/(2*a)(b*b-4*a*c))/(2*a)(k)inta,b・c: doublexl,x2; C请输入a.b.c的值J; a=0): if(b==truG)("(0} 0; 34.(20)编一个程序,用while循 环语句实现下列功能: 有一篮玛蛋,不止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个。 (k) intnujn=2; while(num<10000) b=0): c=0): if{b*b-4*a*c>=0) if(num%2==1&&num%3=1&&num%4== 1) xl=(・b+(b*b-4*a*c))/(2*a): x2=(-b-(b*b-4*a*c))/(2*a): r这个方程的两个根是{01.{1}\Xi.x2); 「这篮玛蛋至少有{0}个”.num): break: (k) else r这个方程没有解“); 33.编一个程序,利用while循环语句,找出2到100之间的素数。 inti=2,j: boolb: C2到100中的素数为: while(i<=100) num++: 35.(20)编一个程序,用for循环语 句求出1到100之间的奇数之和。 (k) inti・s=0; for(i=1: i<=100;i=i+2) s=s+i; (TTOO之间所有奇数的和为(0}\s); b=true; j=2; while(j<=i-1) 36.(20)编一个程序,利用二重for循 环语句,打印出九九乘法口诀表。 (k) ints; for(inti=1;i<=9;i++) if(i%j=0) for(intj=l: j<=i: j卄) b=false; break; s=i*j: ('{0)*{l|={2|\jj.s): 40. 37.(20)编一个程序,定义一个有 10个元素的数组,使用for循环语句,从键盘上输入10名同学的数学成绩,分别求出最高分和最低分,并且求出 10名同学的数学平均成绩。 (k) doub1e[]math=newdouble[lO]: C请输入10名学生的数学成绩”); for(inti=0: i<: i++) for(j=1: j<=i: j++)m=m*j: s=s+m; (”l! *2! +3! +・・・*10! i+s): (20)编一个程序,用for循环语句,从键盘输入10个实数,分别求出它们中的正数之和,以及负数之和。 (k) math[i]=()): inti: doublesuml=0.sura2=0.x for(i=1: i<=10;i++) doubleniax=nialh[O],min=math[0],avG.sum=0: for(intj=0: j<: j++) if(max max=nialh[j]: if(min>raath[j]) min=malhCj]: r请输入一个实数: J; X=0): if(X>0) suml+=X; else sum2+=X; sum=sum+mathCj]; avG=sum/; r最高分为{0)•最低分为{1人平均分为 ⑵".max.min.ave); 38.(20)编一个程序,利用for循环 语句■求出1! +2! +3! +,,,+10! 的和。 (k)ints=0.jc=I: for(intj=I;j<=10;j++) jc=jc*j; S=S+jc; ("I! +2! +3! +4! +5! +6! +7! +8! +9! +10! 的和为{O}". s); 39.(20)编一个程序,用for循环 语句求出1到100之间的奇数之和,以及偶数之和。 (kl002601) longi,j.m・s=0; for(i=1: i<=10;i卄) (”正数之和J{0},负数之杓J{llsuml,sum2); 41.(20)编一个程序,把一张1元的 钞票换成5分,2分和1分的硬币,要求 每种至少一枚,并且所换硬币数不超 过30枚。 请问,有哪几种换法(k) inti,j.k; r-分八t二分: \t五分「); for(i=I;i<=100;i++) for(j=1: j<=50: j++) for(k=1: k<=20: k++) if(i+2*j+5*k=100&&i+j+k<= 30)(”{0}枚枚”•i・j.k>; 42.(20)编一个程序,把一张面值100元的钞票换成5元,1元和5角面值的钞票,要求100元换以上的零钱100张,且要求每种不少于一张。 请问,有哪几种换法(k) inti.j.k: 20)编一个程序,解决百钱买百鸡问题。 某人有100元钱,要买100只鸡。 公鸡5元钱一只,母鸡3元钱一 只,小鸡一元钱3只。 问可买到公鸡,母鸡,小鸡各为多少只。 问题分析: 设公鸡X只,母鸡y只,小鸡Z只,可以列出两个方程: x+y+z=100 5x+3y+z/3=100 我们采用"穷举法”来解决此问题。 (k) for(i=0;i r\n请输入一个数宀 SortArray[订=()); C\n等待《序的数据序列为「); for(i=0;i C{0)SortArray[i]); doublez; for(doublex=l;x<=20: x++) for(doubley=I: y<=33: y++) z=100-X-y; if(5*x+3*y+z/3=100) (・公^^{0}只,母塲(1}只,小埸{2)只-.x.y.z); if(SortArray[j]〉SortArray[j+1]) 44.(20)编一个程序,定义数组, 用for循环语句,顺序输入10个实数,然后逆序输出这10个数。 (k) ternp=SortArray[j]: SortArray[j]=SortArray[j+1]: SortArray[j+I]=temp; inti: 巳经排序后的数需序列为「); int[]a=newint[10]; for(i=0;i<10;i++) for(i=0;i (■(0)SortArray[i]): r请输入一个数: a[i]=0); 0: for(i=9;i>=0;i—) 0; 45.(40)编一个程序,从键盘输入 10个实数,存入一个数组,用冒泡法对这个数作升序排序。 (k) inti,j,temp: constintn=10; 0; 46.(40)编一个程序,定义一个有10个元素的一维数组a,在键盘上输入时没有大小次序,但是存入数组时要按由小到大的顺序存放。 例如,输入第1个数1时,存入a[0];假如第2个数是5,则数存入a[i];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 程序 练习题 答案