练习原题
1,下列常量中,不是字符常量的是(B)。
A.’\n’ B.“y” C.‘x’
2,f(n)=f(n-1)+f(n-2) f(0)=2 f(1)=3 ,用程序求得f(40)
3,将一个正整数分解质因数。例如:输入90,打印出90=233*5。测试数据有多组
4,输入两个正整数m和n,求其最大公约数和最小公倍数。
5,一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
6,题目:求1+2!+3!+…+20!的和?
7,利用递归方法求5!。 f(n)=n*f(n-1)
8,编一个程序,定义结构类型(有学号、姓名、性别和程序设计成绩四个字段),声明该结构类型变量,用赋值语句对该变量赋值以后再输出。
9,编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。例如,实数12.56经过四舍五入运算,得到结果13;而12.46经过四舍五入运算,得到结果12
10,有关系式11+22+33+…+kk<2000,编一个程序,求出满足此关系式的k的最大值
11,编一个程序,解决百钱买百鸡问题。某人有100元钱,要买100只鸡。公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只。问可买到公鸡,母鸡,小鸡各为多少只。把所有的可能性打印出来。
练习代码
//f(n)=f(n-1)+f(n-2) f(0)=2 f(1)=3 ,用程序求得f(40)
using System;
class lianxi
{
static int Fn(int num)
{
int f0 = 2, f1 = 3, f2 = 0;
if (num == 0) { return 2; }
else if (num == 1) { return 3; }
else
{
for (int i = 2; i < num; i++)
{
f2 = f0 + f1;
f0 = f1;
f1 = f2;
}
return f2;
}
}
public static void Main()
{
Console.WriteLine(Fn(40));
}
}
3 、4题其他博主都有写明而且分析详细比我强太多。
比如下面这两位博主(侵删)
https://blog.youkuaiyun.com/qq_33552014/article/details/103009398
https://blog.youkuaiyun.com/qq_40985921/article/details/83412099
//5,一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
using System;
class lianxi5
{
static double length(double height)
{
double length = 0;
for (int i = 0;i < 10;i++)
{
length += height;
height = height / 2;
}
return length;
}
static double res(double height)
{
double res = height;
for (int i = 0;i <10;i++)
{
res = height;
height = height / 2;
}
return res;
}
public static void Main()
{
double height = 100.0;
Console.WriteLine("十次之后经过的路程是{0},最后一次弹起的高度是{1}",length(height),res(height));
Console.ReadKey();
}
}
//6.题目:求1+2!+3!+...+20!的和?
using System;
class lianxi6
{
static int Fn(int x)
{
int res = 0;
for (int i = 1;i <= x;i++)
{
for (int f = 1; f <= i;f++)
{
res += f;
}
}
return res;
}
public static void Main()
{
int x = 20;
Console.WriteLine("1!+2!+...+20! = {0}",Fn(x));
Console.ReadKey();
}
}
//7.利用递归方法求5!。
using System;
class lianxi7
{
static int res(int x)
{
int res = 0;
for (int i = 1;i <= x;i++)
{
res += i;
}
return res;
}
public static void Main()
{
int x = 5;
Console.WriteLine("5! = {0}",res(x));
Console.ReadKey();
}
}
//8,编一个程序,定义结构类型(有学号、姓名、性别和程序设计成绩四个字段),声明该结构类型变量,用赋值语句对该变量赋值以后再输出。
using System;
struct cy
{
public int studentID;
public string name;
public string gender;
public int grades;
}
class lianxi8
{
public static void Main()
{
cy NewLine;
NewLine.studentID = 2021223;
NewLine.name = "李华";
NewLine.gender = "男";
NewLine.grades = 98;
Console.WriteLine("学号{0} 姓名{1} 性别{2} 程序设计成绩{3}",NewLine.studentID,NewLine.name,NewLine.gender,NewLine.grades);
Console.ReadKey();
}
}
//9,编一个程序,输入一个正数,对该数进行四舍五入到个位数的运算。例如,实数12.56经过四舍五入运算,得到结果13;而12.46经过四舍五入运算,得到结果12
using System;
class lianxi9
{
static double res(double x)
{
if (x % 1 > 0.5)
{
x = Math.Floor(x) + 1;
}
else
{
x = Math.Floor(x);
}
return x;
}
public static void Main()
{
double x = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("{0}四舍五入为{1}",x,res(x));
Console.ReadKey();
}
}
//10,有关系式1*1+2*2+3*3+...+k*k<2000,编一个程序,求出满足此关系式的k的最大值
using System;
class lianxi10
{
static int Fn(int res)
{
int k = 0;
for (int i = 1;i <= res;i++ )
{
res = res - i * i;
if (res <= 0)
{
k = i-1;
break;
}
}
return k;
}
public static void Main()
{
int res = 2000;
Console.WriteLine("对1*1+2*2+3*3+...+k*k<2000来讲,k的最大值是{0}",Fn(res));
Console.ReadKey();
}
}
//11,编一个程序,解决百钱买百鸡问题。某人有100元钱,要买100只鸡。公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只。问可买到公鸡,母鸡,小鸡各为多少只。把所有的可能性打印出来。
using System;
struct Program
{
public int x;
public int y;
public int z;
}
class lianxi11
{
static void res(int money)
{
int fin = 0;
for (int x =0; x < money/5;x++)
{
for (int y = 0; y < (money - 5 * x) / 3; y++)
{
for (int z = 0; z < (money - 5*x-3*y);z++)
{
fin = x + y + 3 * z;
if (fin == 100)
{
Console.WriteLine("买公鸡{0}只,母鸡{1}只,小鸡{2}只",x,y,3*z);
}
}
}
}
}
public static void Main()
{
int money = 100;
res(money);
}
}
本文提供11道C#编程练习题目,包括计算斐波那契数列、分解质因数、最大公约数和最小公倍数等。虽然部分题目已有其他博主详尽解答,但这里依然可以作为自我训练和学习C#编程的实践素材。
481





