第四版 c#程序设计教程(课后习题答案代码) 下载本文

判断是否是闰年 课本63

用户输入整数反向显示 课本67或68 乘法表 课本69

判断从键盘输入大于3的整数是否为素数 课本70 求输入所以数其中正数的和 课本70

求 1平方+2平方+……+n平方 小于等于1000 的最大n 课本71或72 读入一组数(以0结束),分别求奇数和偶数和 static void Main(string[] args) {int n,s1=0,s2=0; do

{ n = int.Parse(Console.ReadLine()); if (n%2==1) s1 += n; else

s2 += n; } while (n!=0);

Console.WriteLine(\奇数之和={0}\,s1); Console.WriteLine(\偶数之和={0}\,s2); }

输入正整数n计算S=1+(1+2)+(1+2+3)+……+(1+2+….+n)

int n,i,j,s=0;

Console.Write(\);

n = int.Parse(Console.ReadLine()); for (i = 1; i <= n; i++) for (j = 1; j <= i; j++) s += j;

Console.WriteLine(\, s); 杨辉三角

static void Main(string[] args) {int i,j,c,n;

Console.Write(\);

n=int.Parse(Console.ReadLine()); if (n>13)

Console.WriteLine(\输入的数值太大!\); else

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

Console.Write(\); //每次循环显示2个空格 c=1;

Console.Write(\,c); for (j=1;j<=i;j++) { c=c*(i-j+1)/j; if (c<100) if (c<10)

Console.Write(\,c); //显示3个空格 else

Console.Write(\,c); //显示2个空格 else

Console.Write(\,c); }

Console.WriteLine(); } 计算π的值

double pi=0.0;

int i;

for (i=1;i<=2000;i++) if (i%2==1)

pi=pi+1.0/(2*i-1); else

pi=pi-1.0/(2*i-1); pi=4*pi;

Console.WriteLine(\π={0}\, pi); 求水仙花数

static void Main(string[] args)

for (i = 100; i <= 999; i++) { n = i;

c = n % 10; n = n / 10; b = n % 10; n = n / 10; a = n;

if (a * a * a + b * b * b + c * c * c == i)

{ Console.WriteLine(\, a, b, c,a*a*a+b*b*b+c*c*c); //Console.Write(\ } }

Console.WriteLine(); }

假设10个整数用一维数组存放,求最大值和次大值 static void Main(string[] args)

{ int[] a = new int[10]{1,8,10,4,7,9,6,10,2,5}; int n=10,max1,max2,i; max1=a[0]>a[1]?a[0]:a[1]; max2=a[0]>a[1]?a[1]:a[0]; for (i=2;i

//显示1个空格

{ int i, n, a, b, c;

Console.WriteLine(\,max1,max2); }

用一个二维数组存放5个考生4门功课的考试成绩,求每位考生的平均成绩 课本89页 static void Main(string[] args)

{ const int Max = 5; //考生数

int[] Ave = new int[Max]; //定义一个一维数组存储考生的总成绩 int[,] grade={{88,75,62,84},{96,85,75,92}, //定义二维数组存储考生成绩 {68,63,72,78},{95,89,76,98}, {76,65,72,63}}; for(int i=0; i

{ for(int j=0; j<4; j++)

{ Ave[i] += grade[i,j]; //累加考生成绩 } }

for (int k = 0; k < Max; k++)

Console.WriteLine(\考生{0}平均成绩={1} \,k+1, Ave[k]/4.0); }

用俩个一维数组分别存放5个学生的学号和姓名,分别按学号和姓名排序 课本89页上级实验5 class Program

{ const int Max = 5;

static void disp(int[] no,string[] name,string str) { Console.WriteLine(str); Console.Write(\学号:\\t\);

for (int i = 0; i < no.Length; i++) Console.Write(\,no[i]); Console.WriteLine(); Console.Write(\姓名:\\t\);

for (int i = 0; i < name.Length; i++) Console.Write(\, name[i]); Console.WriteLine(); }

static void Main(string[] args)

{ int[] no = new int[] { 2, 4, 5, 1, 3};

string[] name = new string[] {\,\,\,\,\}; disp(no, name,\排序前:\); Array.Sort(no, name);

disp(no, name,\按学号排序后:\); Array.Sort(name, no);

disp(no, name, \按姓名排序后:\); } 课本124页8 class Program

{ static void Main(string[] args) { Person p1 = new Person(2, 50);

Animal a1 = new Animal(); p1.show(); a1.show(); } }

public class Person

{public int legs;

//定义人类 //腿的只数

protected float weight; //重量 public Person() //默认构造函数

{ }

public Person(int legs1,float weight1)//自定义方法F { legs= legs1;

weight = weight1; } }

课本124页9

//定义了一个委托,委托在传递方法时,方法必须带两个int型的参数。 public delegate int Call(int num1, int num2); //在Delegates类的内部定义Math类和TestDelegates类。 class Math

{ public int fun1(int num1, int num2) { return num1*num1+num2*num2; }

public int fun2(int num1, int num2) { return num1*num1-num2*num2; } }

class Program

public void show()

{ Console.WriteLine(\某人有{0}只腿,重量为{1}kg\, legs, weight); } }

//定义动物类 //重量

{ public int num; //腿的条数 private float weight; { }

public Animal(int n,float w) //Animal类带2个参数的构造函数 { num = n; weight = w; }

public void show()

{ Console.WriteLine(\某动物有{0}只脚,重量为{1}kg\, num, weight); }

public Animal() //Animal类的默认构造函数

class Animal

{ static void Main(string[] args) { int result; Call objCall;

//委托的对象 //Math类的对象 //将委托实例化

Math objMath = new Math(); result = objCall(5, 3);

objCall = new Call(objMath.fun1); Console.WriteLine(\结果为{0}\, result); objCall = new Call(objMath.fun2); result = objCall(5, 3); }

} 课本124页10 class List

{ private int Max = 100; //存储最多元素

private int num = 0; //存储的实际元素个数 private object[] list; //存储元素数组 public List() //构造函数 { list = new object[Max]; }

public void add(object obj) //添加一个元素 { list[num] = obj; num++; }

public void delete(int pos) //删除一个元素 { for (int i = pos + 1; i < num; i++) list[i - 1] = list[i]; num--; }

public object get(int pos) //获取指定位置的元素 { if (pos < num)

return list[pos]; else

return null; }

public int getnum() //获取实际元素个数 { return num; }

public string disp() //获取所有元素 { string s = \;

for (int i = 0; i < num; i++) s += list[i] + \; return s; }

//将委托实例化

Console.WriteLine(\结果为{0}\, result);