C#编程习题.docx
《C#编程习题.docx》由会员分享,可在线阅读,更多相关《C#编程习题.docx(66页珍藏版)》请在冰点文库上搜索。
![C#编程习题.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/b31da45b-ab41-4435-8875-ffa6fb6f3152/b31da45b-ab41-4435-8875-ffa6fb6f31521.gif)
C#编程习题
C#编程习题
以下有18道习题(当然,这并非全部得习题,最后应该会多增加2题,共20题),对于这20道题目,要求大家每道题目都能够做到瞧到题目,不瞧其她参考材料得情况下,能够实现出来。
期末考将会从中抽取三道题目(分数占60分),而期末考其实就是要出三份试卷得。
所以总得需要从这份里面抽9道题目。
也就就是这20题中有9题就是肯定会出现在试卷中得、
对于本科目最后成绩得说明:
总评成绩=平时成绩*50%+期末成绩*50%
平时成绩与期末成绩都就是100分制得。
平时成绩=出勤课堂纪律情况*40%+作业完成情况*60%
对于作业完成情况得说明:
对于之前得作业,不管就是否有提交,我都不再追究、我只要求从发这份习题给您们开始,每周要按顺序完成如下得5道题目,把每道题目都自己理解完实现出来之后再交上来、
我知道要把这20题都弄懂,不就是一件容易得事情,但不就是不可能。
第一,我会提供一些材料,大家可以先把这些材料瞧一遍,大体有个印象,当遇到问题得时候,也要学会查找对应材料来解决问题。
第二,下面得每道题目,我都将会给出参考答案。
当然就是以截图得方式。
也会在关键代码附上相应得注释。
还有一句话,希望能与大家共勉。
“学习,从来都就是一个自觉得过程、遇上一个好老师,会让您少走很多弯路,但不就是替代您学习、遇上一个不够好得老师,或许会多走些弯路,但不代表您就学不好、事在人为,只要自己有心,外界条件再差也就是可以攻克得;若就是无心,外界条件再好,也会成为您得借口。
”
最后,再回到我们这门课得现实。
能否取得好成绩,能否不挂科,取决于您,而不取决于我。
规则我都已经说清楚了,最后结果如何我说了不算,您得实际行动与实际成绩说了算、
1、编写一个函数,函数名为Max,该函数用来获取给定三个整数得最大值、在Main函数中实现从屏幕中读取三个整数,然后输出这三个整数中最大得那个数得功能。
namespace _1
{
class Program
{
staticvoidMain(string[]args)
{
Console、WriteLine("请输入3个数:
按回车结束");
inta,b,c, temp;
a=int。
Parse(Console.ReadLine());//定义一个输入值a;
b=int。
Parse(Console、ReadLine());//定义一个输入值b;
c=int.Parse(Console。
ReadLine());//定义一个输入值c;
temp =Max(a,b,c);
Console。
WriteLine("a={0},b={1},c={2},三个数中最大值为{3}”,a, b,c,temp);
}
//074陈振华
staticintMax(inta,intb,intc)
{
int temp =a;//把a得值付给temp;
if (temp<b)
{
temp=b;
}
if(temp {
temp =c;
}
return temp;
}
}
}
2、编写一个函数,函数名为PrintTriangle,用来打印n阶得正三角形。
并在Main函数中实现从屏幕中输入n得值,然后根据给定得n得值打印出相应得正三角形。
当n=7时,
*
***
*****
*******
*********
***********
*************
当n=5时,
*
***
*****
*******
*********
代码:
namespace_1
{
class Program
{
staticvoid Main(string[]args)
{
inta;
Console、WriteLine("请输入您想要打印出得三角形得行数”);
a=int.Parse(Console.ReadLine());
PrintTriangle(a);
}
//074陈振华
staticvoidPrintTriangle(int a)
{
for(inti=1;i<=a;i++)
{
for (intj= i;j <a;j++)
{
Console.Write("");
}
for(intx=i* 2- 1;x>0;x—-)
{
Console.Write("*");
}
Console。
WriteLine("");
}
}
}
}
3、输入某年某月某日,判断这一天就是这一年得第几天?
。
要求:
需写一个函数,给定年月日,求得该天处于该年得第几天。
然后在Main函数中测试。
代码:
namespace_1
{
class Program
{
static voidMain(string[]args)
{
intyear,month, day;
Console、WriteLine("请输入年份");
year=int、Parse(Console、ReadLine());
Console、WriteLine(”请输入月份”);
month =int。
Parse(Console、ReadLine());
Console、WriteLine(”请输入日期”);
day= int。
Parse(Console、ReadLine());
Console.WriteLine(”{0}年{1}月{2}日处于该年得第{3}天",year,month,day,Cs(year,month, day));
}
staticintCs(intyear,intmonth,int day)
{
intsum= 0;
for (inti=1; i<month;i++)
{
if(i ==1|| i ==3|| i==5||i==7|| i ==8||i ==10||i==12)
{
sum+=31;
}
if(i==4 || i==6||i==9||i==11)
{
sum+=30;
}
if(i==2)
{
sum+=29;
}
}
if((year %400==0 ||(year % 4 == 0&& year %100!
=0))&&month >2)
sum= sum -1;
returnsum;
}
}
}
4、给定一个大于三得奇数n,打印出相应得三角形。
如n=7时得形状如下:
*
***
*****
*******
*****
***
*
代码;
classProgram
{
staticvoidMain(string[]args)
{
inta;
Console.WriteLine(”请输入您想要打印出得三角形得行数,该数必须就是大于三得奇数”);
a=int、Parse(Console。
ReadLine());
if (a%2==1&&a〉=3)
{
PrintTriangle(a);
}
else
Console。
WriteLine("该数不就是大于三得奇数");
}
/// ///074陈振华
///</summary〉
/// </param〉
staticvoidPrintTriangle(int a)
{
for(inti=1; i<=a /2 + 1;i++)
{
Console。
Write("*");
for (intx=1;x<i;x++)
{
Console、Write(”**");
}
Console、WriteLine(”");
}
for(inti= a/2;i 〉0; i--)
{
Console、Write(”*");
for (intx=i -1;x>0;x——)
{
Console、Write(”**");
}
Console。
WriteLine("");
}
}
}
}
要求:
编写一个函数,给定一个n,打印出相应得三角形,若n不就是奇数,则提示说n得值必须为奇数。
5、给一个正整数,要求:
a)写一个函数求出它就是几位数。
b)写一个函数,分别输出每一位数字。
c)写一个函数,按逆序输出各位数字,例如原数位123,则输出321.
最后在main函数中测试结果
代码:
namespaceConsoleApplication1
{
classProgram
{
staticvoid Main(string[]args)
{
inta, r;
Console、WriteLine("请输入一个正整数");
a=int.Parse(Console、ReadLine());
r=C105(a);
Console。
WriteLine("该数就是{0}位数”,r);
int[] A=Db(a);
Shuzhu(A);
Cs(A);
}
staticintC105(inta)
{
inti =1;
while(a>10)
{
a=a/ 10;
i++;
}
return i;
}
staticint[] Db(inta)
{
intcount =C105(a);
int[] data =new int[count];
while(a〉 0)
{
data[——count] =a% 10;
a=a/10;
}
returndata;
}
staticvoidShuzhu(int[] A)
{
for (inti= 0;i 〈A、Length;i++)
{
Console.Write("{0} ”,A[i]);
}
Console。
WriteLine();
}
static void Cs(int[]A)
{
for (inti=0;i〈A。
Length/ 2;i++)
{
inttemp=A[i];
A[i] =A[A、Length-i-1];
A[A。
Length-i- 1]=temp;
}
Console、WriteLine(”倒叙输出后得结果为”);
for (inti =0;i〈A。
Length; i++)
{
Console.Write("{0}", A[i]);
}
Console、WriteLine();
}
}
}
6、请编写一个函数,计算出从m到n得数得与,比如m=3,n=300,则计算出从3一直加到300得与。
并在Main函数中调用测试。
要求:
1)写个函数采用for语句实现该功能。
2)写个函数采用while语句实现该功能。
3)写个函数采用do…while语句实现该功能。
代码:
namespaceConsoleApplication1
{
classProgram
{
staticvoidMain(string[]args)
{
inta,b;
Console、WriteLine("请输入两个正整数分,别按回车结束");
a=int、Parse(Console。
ReadLine());
b=int、Parse(Console.ReadLine());
For(a,b);
While(a,b);
Dowhile(a,b);
}
staticvoidFor(inta, intb)
{
int sum= 0;
for(inti=a;i <=b;i++)
{
sum=sum +i;
}
Console、WriteLine(”从{0}到{1}得所有数得与={2}”,a,b,sum);
}
//074陈振华
staticvoidWhile(inta,intb)
{
int sum=0,i=a;
while(i<=b)
{
sum = sum+i;
i++;
}
Console。
WriteLine("从{0}到{1}得所有数得与={2}", a,b,sum);
}
staticvoidDowhile(int a,intb)
{
intsum= 0,i= a;
do
{
sum=sum +i;
i++;
}while (i <= b);
Console、WriteLine(”从{0}到{1}得所有数得与={2}",a,b,sum);
}
}
}
7、写一个函数,判断给定得一个正整数就是否就是素数,并在Main函数中测试。
8、代码:
namespaceConsoleApplication1
{
classProgram
{
static void Main(string[]args)
{
intm,a;
m=int。
Parse(Console、ReadLine());
a=Sushu105(m);
if (a==0)
{
Console、WriteLine(”这个数就是素数",a);
}
else
Console。
WriteLine("这个数不就是就是素数",a);
}
staticintSushu105(intm)
{
inta=0;
for(inti=2; i<m;i++)
{
if (m%i==0)
{
a++;
}
}
return a;
}
}
}
9、写一个函数,返回给定m~n之间得所有素数。
再写一个函数,打印出给定一个数组中得所有元素、并在Main函数中测试。
10、代码:
usingSystem;
usingSystem。
Collections。
Generic;
usingSystem.Linq;
usingSystem、Text;
namespaceConsoleApplication1
{
classProgram
{
staticvoidMain(string[]args)
{
Console.WriteLine(”请输入两个数”);
inta,b;
a= int。
Parse(Console。
ReadLine());
b=int、Parse(Console、ReadLine());
//boolresult= IsSushu(6);
//Console.WriteLine(result);
int[] wuxinglin=Suzhu(a, b);
Console.WriteLine(”{0}到{1}之间得所有素数如下", a,b);
Daying(wuxinglin);
}
/// <summary>
///获取所有a到b之间所有得素数
///〈/summary>
///<paramname=”a">
///
/// <returns></returns〉
staticint[]Suzhu(inta,intb)
{
intcount= Geshu(a, b);
int[]wuxinglin =newint[count];
intd= 0;
for(inti=a;i<=b;i++)
{
if(IsSushu(i))
{
wuxinglin[d]= i;
d++;
}
}
returnwuxinglin;
}
//////返回两个数之间所有得素数得个数0
///</summary>
///<param name="a"></param>
///
/// staticintGeshu(inta, int b)
{
int c=0;
for(inti = a;i〈= b;i++)
{
if (IsSushu(i))
{
c++;
}
}
returnc;
}
/// /// 判断一个数就是不就是素数,如果就是返回turn,否则返回false
///
///〈paramname="m”>〈/param>
/// 〈/returns〉
staticboolIsSushu(intm)
{
boolresult =true;
for (inti=2;i〈=(int)Math、Sqrt(m);i++)
{
if (m% i ==0)
{
result=false;
break;
}
}
return result;
}
///
///给定一个数组打印出该中所有得元素
/// 〈/summary>
///
staticvoidDaying(int[] wuxinglin)
{
for(inti=0;i<wuxinglin、Length;i++)
{
Console.Write(”{0} ”,wuxinglin[i]);
}
}
}
}
11、编写一个函数,返回给定一个正整数m得二进制表示。
比如给定11,则返回1011.并在Main函数中测试、
12、代码:
namespace_1
{
classProgram
{
staticvoidMain(string[] args)
{
Console、WriteLine("请输入一个正整数,按回车键结束”);
int a=int、Parse(Console、ReadLine());
Console.WriteLine(”输入得数{0}被转化为二进制后得结果为{1}",a,Zhuanhua(a));
}
staticstringZhuanhua(int a)
{
StringBuilder result=new StringBuilder();
while (a〉 0)
{
result、Insert(0,a%2);