C#编程基础题库_第1页
C#编程基础题库_第2页
C#编程基础题库_第3页
C#编程基础题库_第4页
C#编程基础题库_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《C#程序设计基础》习题库程序

1.(20)编一个程序,定义常量Pi=3.14159265,从键盘上输入半径r,求出圆的面积。(k003101)

constdoublePi=3.14159265;

doublei;s;

Console.WriteLine("请输入圆的半径)

r=double.Parse(Console.ReadLine());

s=Pi*r*r;

Console.WriteLine(“圆的面积是{0}”,s);

2.(20)编•个程序,定义三个double类型的变量,分别从键盘上输入值给它们,然后用

Console.WriteLine方法把它们输出成一列,小数点对齐,保留3位小数。(kl0052703)

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.WriteLineC'fOifS}",z);

3.(20)编一个程序,从键盘上输入三个数,用三元运算符(?:)把最大数找出来。(kl0031505)

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)编一个程序,输入一个字符,如果是大写字母,就转换成小写字母,否则不转换。

(kl003205)

charch;

Console.WriteLine("请输入一个字符”);

ch=char.Parse(Console.ReadLine());

if(ch>='A'&&ch<=Z)

(

ch=(char)(ch+32);

)

Console.WriteLine(ch);

6.(20)输入一个字符,判定它是什么类型的字符(大写字母,小写字母,数字或者其它字

符)(kl0031802)

charch;

Console.WriteLine("请输入一个字符");

ch=char.Parse(Console.ReadLine());

if(ch>='A'&&ch<=Z)

Console.WriteLine("大写字母");

elseif(ch>='a'&&ch<='z')

Console.WriteLine(“小写字母”);

elseif(ch>='O'&&ch<=9)

Console.WriteLine(“数字”);

else

Console.WriteLine("其他字母");

7.(20)编一个程序,设圆的半径r=1.2,高h=1.5,定义圆周率常量Pi=3.1415,求出圆柱的体积。

(kl0032305)

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=XXX.XXO(kl0052707)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)编一个程序,输入一个字符,如果输入的字符是大写字母,则转换为小写字母;如

果输入的字符是小写字母,则转换为大写字母,否则不转换。(kl0032601)

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)编•个程序,定义结构类型(有学号、姓名、性别和程序设计成绩四个字段),声

明该结构类型变量,用赋值语句对该变量赋值以后再输出。(kl0031601)

structstudent

(

publicintno;

publicstringname;

publicstringsex;

publicdoublescore;

classProgram

staticvoidMain(string[]args)

studentstu;

stu.no=10003;

="小小”;

stu.sex="女";

stu.score=89.5;

Console.WriteLine("学生的学号是{0},名字叫{1},性别是{2},程序设计的成绩是

{3}"zstu.no,^tu.sex,stu.score);

IL(20)编一个程序,定义•个实数变量,从键盘上输入•个值,如果这个值在闭区间[0,100]

里,则加上1000,否则不加。最后输出结果。(kl0032304)

floatf,g;

Console.WriteLine("请输入一个实数变量");

f=float.Parse(Console.ReadLine());

if(f>=O&&f<=100)

(

g=f+1000;

Console.WriteLine("{0}ffi0-100之间,最后结果为{1}”,f,g);

}

else

Console.WriteLine("{0}不在0-100之间",f);

12.(20)编一个程序,输入一个整数,使用ifelse语句,如果该数大于0,则加上100,否则

加上500,输出结果。(kl0032301)

intij;

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,最后结果是

13.(20)编一个程序,用ifelse语句,输入一个整数,如果该数大于0,则输出“这个数大

于零」,如果该数等于0,则输出“这个数等于零。“,否则输出“这个数小于零。%(R10032302)

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。(kl0012803)

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选择语句找出它们中的最小数,最后输出结果。(kl0052604)

floatx,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;

elseif(y<x&&y<z)

min=y;

else

min=z;

Console.WriteLine("这三个数中的最小值为{0},min);

16.(20)编一个程序,输入三个实数,要求使用ifelse语句把它们的中间数找出来,可以使

用逻辑运算符。*10032309)

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&&x<z)||(x<y&&x>z))

second=x;

elseif((y>x&&y<z)11(y<x&&y>z))

second=y;

else

second=z;

Console.WriteLine("这三个数中的中间数为{0}”,second);

17.(20)编一个程序,首先输入一个成绩(0到100的整数),用ifelse语句然后判断该成绩

是优、良、中、及格还是不及格。(R10040501)

doublescore;

Console.WriteLine("请输入一个成绩");

score=double.Parse(Console.ReadLine());

if(score>=90)

Console.WriteLine("t/c");

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以下))。

(kl0032403)

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个整数,求出它们的和。

(kl0020105)

inti=l,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+0+羽+利+...+99/100之和。(KL0052605)

doublei=lzs=l;

while(i<=99)

(

s=s+i/(i+l);

i++;

)

Console.WriteLine("和为{0}”,s);

21.(20)编•个程序,用do-while循环语句来计算「1二4*(1-3+班+…+l/n),要求当l/n<0.000001

时停止计算。(kl0041502)

doublepi,s=0,x;

doublen=l;

do

x=Math.Pow(-l,n+1)/(2*n-1);

S=S+X;

n++;

}while(l/n>=0.000001);

pi=s*4;

Console.WriteLine("pi的值为:{0}",pi);

22.(20)编一个程序,从键盘上输入二个实数,使用Math类中Max()和Min()方法,求出它

们中的最大数和最小数。(kl0040604)

doubledl,d2,max/min;

Console.WriteLine(“请输入两个实数");

dl=double.Parse(Console.ReadLine());

d2=double.Parse(Console.ReadLine());

max=Math.Max(dl,d2);

min=Math.Min(dl,d2);

Console.WriteLine("最大值为{0},最小值为{l}”,max,min);

23.(20)编•个程序,利用while循环语句和Math类中的Pow()方法,求出1到10的各个

数的平方之和。(kl0040602)

doublei=lzs=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是“水仙花数”。

(kl0033106)

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"。}是水仙花数,a);

25.(20)编写一个程序,用while语句,求出1+(1+2)+(1+2+3)+...+(1+2+3+.・・+10)之和。

(kl0041803)

inti=1,s=0zj=l,si=0;

while(j<=10)

(

while(i<=j)

(

s=s+i;

i++;

)

sl=sl+s;

j++;

Console.WriteLineC'fO}",si);

26.(20)编一个程序,输入二个正整数,求出它们的最大公约数。*10041901)

inti,j,k;

Console.WriteLine(“请输入两个正整数。

i=int.Parse(Console.ReadUne());

j=int.Parse(Console.ReadLine());

k=i<j?i:j;

while(!(i%k==0&&j%k==0))

k-;

Console.WriteLine("最大公约数为{0}”,k);

27.(20)编•个程序,用while循环语句,从键盘输入10个数,要求找出最大数和次大数。

(kl0041902)

inti=l,max=l,maxl=l;

ints;

Console.WriteLine(”请输入10个数:");

while(i<=10)

(

s=int.Parse(Console.ReadLine());

if(s>max)

maxi=max;

max=s;

elseif(s>maxi)

(

s=maxi;

i++;

)

Console.WriteLine("最大值为{0},次大值为{l},max,maxl);

28.(40)编一个程序,要求使用while语句,输入用户名和密码,实现用户登录程序的功能,

至多允许输入三次,超过三次不允许登录。(kl0022507)

conststringUserName="admin";

conststringPassword="123456";

stringusername,password;

inti=l;

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)有关系式l*l+2*2+3*3+...+k*k<2000,编一个程序,求出满足此关系式的k的最大值。

(R10052901)

intk=lzs=0;

while(s<2000)

(

s=s+k*k;

k++;

}

Console.WriteLinef'k的值为{0}”,k-2);

30.(20)编写一个程序,要求用while循环语句,打印1到100的正整数,每行打印5个数,

每列右对齐。(kl0042004)

inti=1;

while(i<=100)

(

Console.Write("{0,10:dl}",i);

if(i%5==0)

Console.WriteLinef);

i++;

31.(20)Fibonacci序列的前二项是。和1,且卷一个后继项是前二项的和。编一个程序,

输出项值不大于100的Fibonacci序列。(kl0033104)

intfl=0;

intf2=1;

intf3;

while(fl<100)

(

f3=fl+f2;

Console.Write("{0},"zfl);

fl=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)(kl0042102)

inta,b,c;

doublexl,x2;

Console.WriteLine("请输入a,b,c的值”);

a=int.Parse(Console.ReadLine());

b=int.Parse(Console.ReadLine());

c=int.Parse(Console.ReadLine());

if(b*b-4*a*c>=0)

(

xl=(-b+Math.Sqrt(b*b-4*a*c))/(2*a);

x2=(-b-Math.Sqrt(b*b-4*a*c))/(2*a);

Console.WriteLine("这个方程的两个根是{0},{l}“,xl,x2);

}

else

Console.WriteLine("这个方程没有解");

33.编一个程序,利用while循环语句,找出2到100之间的素数。(kl0042104)

inti=2,j;

boolb;

Console.WriteLine("2到100中的素数为:");

while(i<=100)

(

b=true;

j=2;

while(j<=i-1)

if(i%j==0)

b=false;

break;

)

j++;

}

if(b==true)Console.Write("{0}",i);

i++;

}

Console.WriteLine();

34.(20)编一个程序,用while循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两

个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡

蛋至少有多少个。(kl0042105)

intnum=2;

while(num<10000)

(

if(num%2==1&&num%3==1&&num%4==1)

(

Console.Write("这篮鸡蛋至少有{0}个",num);

break;

)

num++;

35.(20)编一个程序,用for循环语句求出1到100之间的奇数之和。(kl0020110)

inti,s=0;

for(i=1;i<=100;i=i+2)

(

s=s+i;

)

Console.WriteLine("l-100之间所有奇数的和为{0}",s);

36.(20)编一个程序,利用二重for循环语句,打印出九九乘法口诀表。(kl0050306)

ints;

for(inti=1;i<=9;i++)

(

for(intj=l;j<=i;j++)

(

s=i*j;

Console.Write(H{0}*{l}={2}"JJ/S);

}

Console.WriteLine();

37.(20)编一个程序,定义一个有10个元素的数组,使用for循环语句,从键盘上输入10

名同学的数学成绩,分别求出最高分和最低分,并且求出10名同学的数学平均成绩。

(kl0042501)

double[]math=newdouble[10];

Console.WriteLine(“请输入10名学生的数学成绩)

for(inti=0;i<math.Length;i++)

math[i]=double.Parse(Console.ReadLine());

doublemax=math[0],min=math[O],ave,sum=O;

for(intj=0;j<math.Length;j++)

(

if(max<math[j])

max=math[j];

if(min>math[j])

min=math[j];

sum=sum+math[j];

}

ave=sum/math.Length;

Console.WriteLine(“最高分为{0},最低分为{1},平均分为{2『,max,min,ave);

38.(20)编一个程序,利用for循环语句,求出1!+2!+3!+…+10!的和。(kl0042502)ints=0,

jc=l;

for(intj=1;j<=10;j++)

(

jc=jc*j;

s=s+jc;

Console.WriteLine(“l!+2!+3!+4!+5!+6!+7!+8!+9!+lO的和为{0}”,s);

39.(20)编一个程序,用for循环语句求出1到100之间的奇数之和,以及偶数之和。休1002601)

longi,j,m,s=0;

for(i=1;i<=10;i++)

(

m=1;

for(j=1;j<=i;j++)m=m*j;

s=s+m;

)

Console.WriteLine("l!+2!+3!+...+10!="+s);

40.(20)编一个程序,用for循环语句,从键盘输入10个实数,分别求出它们中的正数之

和,以及负数之和。伙10042702)

inti;

doublesuml=0,sum2=0,x;

for(i=1;i<=10;i++)

(

Console.Write("请输入一个实数:");

x=double.Parse(Console.ReadLine());

if(x>0)

suml+=x;

else

sum2+=x;

}

(“正数之和:负数之和:

Console.WriteLine{0},{1}"Zsuml,sum2);

41.(20)编一个程序,把一张1元的钞票换成5分,2分和1分的硬币,要求每种至少一

枚,并且所换硬币数不超过30枚。请问,有哪几种换法?(kl0050218)

inti,j,k;

Console.WriteLine("一分:\t二分:\t五分:");

for(i=1;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)Console.WriteLine("{0}枚\t{l}枚\t{2}枚”,i,j,k);

42.(20)编一个程序,把一张面值100元的钞票换成5元,1元和5角面值的钞票,要求

100元换以上的零钱100张,且要求每种不少于一张。请问,有哪几种换法?(kl0050223)

访口/,1<;〃设5元有1张,1元有j张,5角有k张

Console.WriteLine("5元:\tl元:\t5角:”);

for(i=1;i<=20;i++)

for(j=1;j<=100;j++)

for(k=1;k<=100;k++)

if(5*i+j+(0.5*k)==100&&i+j+k==100)Console.WriteLine("{0}\t{l}\t{2}"z\tj,k);

43.(20)编一个程序,解决百钱买百鸡问题。某人有100元钱,要买100只鸡。公鸡5元

钱一只,母鸡3元钱一只,小鸡一元钱3只。问可买到公鸡,母鸡,小鸡各为多少只。问题

分析:设公鸡x只,母鸡y只,小鸡z只,可以列出两个方程:

x+y+z=100

5x+3y+z/3=100

我们采用“穷举法”来解决此问题。(kl0050305)

doublez;

for(doublex=l;x<=20;x++)

for(doubley=1;y<=33;y++)

z=100-x-y;

if(5*x+3*y+z/3==100)

(

Console.WriteLine("公鸡{0}只,母鸡{1}只,小鸡{2}只",x,y,z);

44.(20)编一个程序,定义数组,用for循环语句,顺序输入10个实数,然后逆序输出这

10个数。(kl0042701)

inti;

int[]a=newint[10];

for(i=0;i<10;i++)

Console.Write("请输入•个数:");

a[i]=int.Parse(Console.ReadLine());

)

Console.WriteLine();

for(i=9;i>=0;i-)

Console.Write("{0}",a[i]);

Console.WriteLine();

45.(40)编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排

序。(kl0040603)

inti,j,temp;

constintn=10;

int[]SortArray=newint[n];

for(i=0;i<n;i++)

(

Console.Write(”\n请输入一个数:");

SortArray[i]=int.Parse(Console.ReadLine());

}

Console.Write("\n等待排序的数据序列为

for(i=0;i<n;i++)

(

Console.Write("{0}",SortArray[i]);

}

for(i=n-1;i>=0;i-)

(

for(j=0;j<=i-1;j++)

(

if(SortArray[j]>SortArray[j+1])

temp=SortArray[j];

SortArray[j]=SortArray[j+1];

SortArray[j+1]=temp;

Console.Write("\n已经排序后的数据序列为

for(i=0;i<n;i++)

(

Console.Write("{0}",SortArray[i]);

}

Console.WriteLine();

46.(40)编一个程序,定义一个有10个元素的一维数组a,在键盘上输入时没有大小次序,

但是存入数组时要按由小到大的顺序存放。例如,输入第1个数1时,存入a[0];假如第2

个数是5,则数存入假如第3个数是4,那么把前面输入的5向后面移动到a[2],把4

插入到的位置上,这样使得每输入一个数,保持从小到大的顺序排列。(kl0040310)

inti,j,temp,n=10;

int[]a=newint[n];

Console.WriteLine("请输入{0}个整数。",n);

for(i=0;i<n;i++)

(

Console.Write("请输入•个整数:");

a[i]=int.Parse(Console.ReadLine());

for(j=i;j>=1;j-)

if(a[j-l]>aU])

temp=a[j-1];

a[j-1]=a[j];

a[j]=temp;

)

else

break;

)

}

Console.Write("\n依次输出数组中的值:");

for(i=0;i<n;i++)

{

Console.Write("{0}”,a[i]);

)

Console.WriteLine();

47.(20)编一个程序,定义•个数组,用for语句输入10个实数存入这个数组,然后按逆

序重新存放后再输出。(kl0050219)

doublet]a=newdouble[10];

doubletemp;

for(inti=0;i<10;i++)

Console.Write("请输入一个实数:”);

a[i]=double.Parse(Console.ReadLine());

)

for(inti=0;i<10/2;i++)

(

temp=a[i];

a[i]=a[9-i];

a[9-i]=temp;

)

for(inti=0;i<10;i++)Console.Write("{0}",a[i]);

Console.WriteLine();

48.(20)编一个程序,从键盘输入一个字符串,用foreach循环语句,统计其中大写字母

的个数和小写字母的个数。(kl0050220)

strings;

intnl=0,n2=0;

Console.WriteLine(“请输入,个字符串");

s=Console.ReadLine();

foreach(charcins)

(

if(c>='A'&&c<=Z)

nl++;

elseif(c>='a'&&c<='z')

n2++;

else

continue;

)

Console.WriteLine("大写字母有{0}个,小写字母有{1}个",nl,n2);

49.(40)编一个程序,定义一个字符数组和•个字符串变量,给这个字符串变量输入•个

字符串,然后用foreach语句把这个字符串拷贝到字符数组里,最后输出字符数组。

(R10051601)

strings;

Console.WriteLine(“请输入,个字符串");

s=Console.ReadLine();

char[]ch=newchar[s.Length];

intn=0;

foreach(charcins)

ch[n]=c;

n++;

)

foreach(charcinch)

(

Console.WriteLine(c);

)

50.(20)输入•个字符串,将其中小写字母改成大写字母,把大写字母改成小写字母,其

余字符不变,输出该字符串。(kl0050222)

strings;

Console.WriteLine("请输入一个字符串:");

s=Console.ReadLine();

foreach(charchins)

if("a'<=ch&&ch<='z')Console.Write((char)((int)ch-32));

elseif('A'<=ch&&ch<='Z')Console.Write((char)((int)ch+32));

elseConsole.Write(ch);

Console.WriteLine();

51.(20)编一个程序,输入一个字符串,用ToCharArray。方法把字符串中的内容拷贝到字符

数组中,然后用foreach输出该字符数组。(kl0040305)

strings;

Console.WriteLine("请输入一个字符串

s=Console.ReadLine();

char[]ch=newchar[s.Length];

ch=s.ToCharArray();

foreach(charcinch)

(

Console.WriteLine(c);

52.(20)编一个程序,定义一个字符串变量,输入字符串,然后再输入一个字符,在字符

串中查找该字符出现的次数。*10040307)

stringa;

charb;

intd=0;

Console.WriteLine("请输入一个字符串");

a=Console.ReadLine();

Console.WriteLine("请输入一个字符");

b=char.Parse(Console.ReadLine());

for(intc=0;c<=a.Length-1;C++)

(

if(a[c]==b)

d++;

)

Console.WriteLine("字符{0}在字符串{1}中出现了{2}次",b,a,d);

53.(40)编一个程序,定义一个字符串变量,输入字符串,判断有没有连续重复字符出现,

统计重复字符出现次数。例如,aaabccdfff,其中a重复出现二次,c重复出现一次,f重复出

现二次,共计字符重复五次。(kl0053005)

stringi;

inta=0;

Console.WriteLine("输入一个字符串");

i=Console.ReadLine();

for(intb=1;b<=i.Length-1;b++)

if(i[b]==i[b-l])

a++;

}

Console.WriteLine("{0}"za);

54.(20)编个程序,利用for语句,打印一个如下形式的一个直角三角形,顶点在屏幕

中线上,行数从键盘输入。

*

**

****

(kl0051202)

inti,j,n=0zm=40;

while(n<=0)

{

Console.WriteLine("请输入一个正整数:”);

n=int.Parse(Console.ReadLine());

)

Console.WriteLineCXn');

for(i=1;i<=n;i++)

(

Console.Write('\n');

for(j=1;j<=m;j++)Console.Write('');

for(j=1;j<=i;j++)Console.Write('*');

Console.WriteLine();

55.(40)编一个程序,利用for语句,打印•个如下形式的一个等腰三角形,顶点在屏幕

中线上,行数从键盘输入。

*

***

*****

*******

(R10050902)

inti;

Console.WriteLine("从键盘上输入一个数”);

i=int.Parse(Console.ReadLine());

for(intb=1;b<=i;b++)

(

for(inta=1;a<=i-b;a++)

(

Console.Write("");

}

for(intc=1;c<=2*b-1;C++)

Console.Write("*");

Console.WriteLine();

56.(40)定义一个一维数组,输入任意6个整数,假定为7,4,8,9,1,5。编一个程序,

利用for语句,输出如下方阵的内容:

748915

574891

157489

915748

891574

489157

(kl0050903)

int[]a={7,4,8,9,1,5);

inttemp;

for(inti=0;i<6;i++)

(

Console.Write("{0}",a[i]);

for(inti=0;i<5;i++)

Console.WriteLine();

temp=a[5];

for(intj=5;j>0;j-)

a[j]=aO-l];

)

a[0]=temp;

for(intk=0;k<6;k++)

Console.Write("{0}”,a[k]);

)

57.(20)编一个程序,定义•个n行n列的二维整数数组,赋初值,然后求出对角线上的

元素之和。(kl0052301)

intn=5;

ints=0;

int[,]arr={{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25},{31,32,33,34,35},{41,42,

43,44,45));

inti,j;

for(i=0;i<arr.GetLength(O);i++)

(

for(j=0;j<arr.GetLength(l);j++)

(

if(i==j11i+j==n+1)

s=s+arr[ij];

Console.WriteLine("对角线上的元素之和{0}",s);

58.(40)编一个程序,输入一个正整数,判断它是否为素数。如不是,则输出其所有正约

数。(kl0050224)

Console.WriteLine("请输入一个正整数:");

uint\,n,flag;

boolf=true;

n=uint.Parse(Console.ReadLine());

//uint.TryParse(Console.ReadLine()zoutn);

for(i=2;i<n;i++)

(

if(n%i==0){f=false;break;}

)

if(f)Console.WriteLine("{0}是一个素数。",n);

else

(

Console.Write("{0}不是一个素数。\n{l}=,n,n);

i=2;

flag=0;

while(i<=n)

while(n%i==0)

if(flag!=0)Console.WnteC**);

flag=1;

Console.Write("{0}"zi);

)

i++;

}

}

59.(40)编一个程序,输入一个代表身份证号码的字符串,判断字符串长度(18)是否正确,

还要判断输入的每个字符是否为数字。否则要求重新输入。(kl0050225)

stringa;

boolq=true;

Console.WriteLine("请输入你的身份证;");

a=Console.ReadLine();

for(intb=0;b<=a.Length-1;b++)

(

if(a[b]>='O'&&a[b]<=9)

(

continue;

)

else

q=false;

if(a.Length==18)

if(q==true)

Console.WriteLine("输入正确”);

elseif(q==false)

Console.WriteLine(“输入不合法,请重新输入");

)

else

Console.WriteLine(“输入不合法,请重新输入”);

60.(40)编一个程序,输入一个正整数n,把它转换为二进制数,并输出。提示:应该利用

数组。(kl0050226)

int[]a=newint[80];

inti,j,n=0;

while(n<=0)

(

Console.WriteLine(“请输入一个正整数:");

n=int.Parse(Console.ReadLine());

)

i=0;

Console.Write("\n正整数{0}转换为二进制数:",n);

while(n>0)

a[++i]=n%2;

n=n/2;

for(j=i;j>0;j-)Console.Write(a[j]);

Console.WriteLine();

6L(40)所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如:64,55,

321都认为是降序数,但是623不是降序数。•位数字被认为是降序数。编一个程序,输入

一个数,判定它是否为降序数。该程序是循环执行的,当输入的数为0时,则退出程序运行。

(kl0051501)

inti,j,m,n;

boolpos;

while(true)

(

n=-1;

while(n<=0)

{

if(n==0)return;

Console.WriteLine("请输入,个正整数或者0:");

n=int.Parse(Console.ReadLine());

)

if(n<10)pos=true;

else

m=n;

i=0;

pos=true;

while(m>0)

(

j=m%10;

m=m/10;

if(i>j)

(

pos=false;

break;

)

i=j;

}

)

if(pos)Console.WriteLine("{0}是降序数。n);

elseConsole.WriteLine("{0}不是降序数。n);

}

62.(40)所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如:

646,1551,891232198都认为是回文数。编一个程序,输入一个正整数,判定它是否为回文

数。当输入的数为0时,则退出程序,否则继续循环执行程序。(kl0051502)

ints,k;

inti,j;

int[]a=newint[20];

boolpos;

while(true)

(

s=-l;

while(s<0)

(

Console.Write("请输入一个正整数或者只按一个数字0:");

s=int.Parse(Console.ReadLine());

if(s==0)return;

}

k=s;

pos=true;

i=-l;

while(k>0)

(

i++;

a[i]=k%10;

k=k/10;

)

〃注意:数组a的长度为(i+1)

for(j=0;j<(i+l)/2;j++)

if(aO]!=a[i-j])

pos=false;

break;

)

if(pos)Console.WriteLine("{0}是回文数。",s);

elseConsole.WriteLine("{0}不是回文数。s);

)

63.(40)编一个程序,定义一个n行n列的二维数组,例如,n=4,输入该数组的全部数据。

可以在定义数组时赋于常量值。求二维数组中这样元素的位置:它在行上是最小,在列上也

是最小。(注意:它未必是整个数组的最小元素。kl0050904)

intn=4;

int[,]a={{25,12,22f14},{15,16,17,18}f[19,20,21,13]f[23,24,11,26));

inti,j,k,temp,min;

Console.Write("\n二维数组:");

for(i=0;i<n;i++)

(

Console.Write("\n\t");

for(j=0;j<n;j++)Console.Write("{0}",a[izj]);

)

Console.WriteLine("\n\n行歹ij最小值”);

for(i=0;i<n;i++)

for(j=0;j<n;j++)

temp=a[i,j];

min=temp;

/*

for(k=0;k<n;k++)

(

if(a[i,k]<min)min=a[i,k];

if(a[k,j]<min)min=a[k,j];

)

*/

for(k=0;k<n;k++)

if(a[i,k]<min)min=a[i,k];〃在第i行查找最小值

for(k=0;k<n;k++)

if(a[k,j]<min)min=a[k,j];〃在第j列查找最小值

if(temp==min)Console.WriteLine("i={0},j={l}{2}",i,j,temp);

)

64.(40)给定一个mXn的数值矩阵A,如果矩阵A中存在这样的一个元素满足条件:

A皿j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍

点。编写一个方法计算出m*n的矩阵A的所有马鞍点。

(R10052302)

inti,j,k,m=4,n=5,max,min;

int[,]array=newint[,]{{30,20,25,40,45},{80,19,70,90,11},{24,14,42,91,96},{32,17,

82,72,38));

Console.Write("\n{0}行{1}列的数值矩阵为:");

for(i=0;i<m;i++)

Console.WriteLine();

for(j=0;j<n;j++)

(

Console.Write("{0}",array[i,j]);

)

)

for(i=0;i<m;i++)

for(j=0;j<n;j++)

(

max=arrayfi,j];

min=array[i,j];

for(k=0;k<n;k++)if(array[i,k]<min)min=array[i,k];

for(k=0;k<m;k++)if(array[k,j]>max)max=array[k,j];

if(array[i,j]==max&&array[i,j]==min)

(

Console.WriteLine("\n马鞍点是第{0}行,第{1}列的{2}",i,j,array[i,j]);

)

65.(40)编一个程序,输入一个整数,判定它为几位数。例如,99是2位数,-100是3位

数。(kl0050906)

intm,n,k=0;

Console.Write("请输入一个整数:”);

m=int.Parse(Console.ReadLine());

n=Math.Abs(m);

while(n!=0)

(

n=n/10;

k++;

)

Console.WriteLine(''{0}是{1}位数。",m,k);

66.(40)编一个程序,定义一个字符串数组,输入若干国家名称(所有名称全用大写或者

全用小写),设计一个算法按字典顺序将这些国家名称进行排序。(10051802)

int\/j,n=10;

string[]SortArray=newstring[n];

stringtemp;

Console.Write(”\n请输入{0}个字符串:",n);

for(i=0;i<n;i++)

(

SortArray[i]=Console.ReadLine();

for(i=1;i<n;i++)

for(j=0;j<n-i;j++)

if(String.Compare(SortArray[j]zSortArray[j+1])>0)

(

temp=SortArray[j];

SortArray[j]=SortArray[j+1];

SortArray[j+1]=temp;

)

)

}

Console.WriteLine("\n已经排序后的国家名称为:");

for(i=0;i<n;i++)

(

Console.WriteLine(SortArray[i]);

}

67.(20)编一个程序,定义类student和它的成员(学号,姓名,年龄和jsharp程序设计成

绩),用类student生成对象s,分别对对象s的成员赋值,然后输出对象s。(kl0052401)

classstudent

(

publicstring学号;

publicstring姓名;

publicint年龄;

publicintc__sharp程序设计成绩;

staticvoidMain(string[]args)

(

students;

s=newstudent();

s.学号="09061234";

s.姓名="刘云飞";

s.年龄=21;

s.jsharp程序设计成绩=95;

Console.WriteLine("学生学号:{0}",s.学号);

Console.WriteLine("学生姓名:{0}",S.姓名);

Console.WriteLine(“学生年龄:{0}",s.年龄);

Console.WriteLine("c_sharp程序设计成绩:{0}",s.jsharp程序设计成绩);

68.(20)编一个程序,定义结构(有姓名,年龄,手机号码三个字段),再定义一•个一维数

组,把结构作为数组元素类型,存入数据,然后依次输出。(kl0052303)

structContact

(

publicstringname;

publicintage;

publicstringtelephone;

)

classProgram

staticvoidMain(string[]args)

Contact[]c=newContact[3];

//c[0]=newContact。;〃此三个语句,对于结构类型可以不用

//c[l]=newContact();

//c[2]=newContact();

c[0].name="刘龙”;

c[0].age=54;

c[0].telephone=;

c[l].name二”王鸣“;

c[l].age=42;

c[l].telephone=;

c⑵.name="张星”;

c[2].age=39;

c[2].tel即hone=;

Console.Write("姓名:{0},,c[0].name);

Console.Write("年龄:{0},",c[0].age);

Console.WriteLine("手机号码:{0}",c[0].telephone);

Console.Write("姓名:{0},",c[l].name);

Console.Write("年龄:{0},",c[l].age);

("手机号码:

Console.WriteLine{0}"zc[l].telephone);

("姓名

Console.Write:{0},"zc[2].name);

Console.Write。年龄:{0},Q⑵.age);

Console.WriteLine("手机号码:{0}",c[2].telephone);

69.(40)编一个程序,定义类(有姓名,年龄,手机号码三个字段),再定义一个一维数组,

使数组元素为类,存入数据,然后依次输出,使用for循环语句进行输入输出操作。

(kl0052602)

classContac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论