您的位置:首页 > 编程语言 > C#

C#入门经典(第4版)第四章习题

2010-08-28 21:14 162 查看
(1)如果两个整数存储在变量var1和var2中,该进行什么样的布尔测试,看看其中的一个(但不是两个)是否大于10?

答案:

    (var1>10)^(var2>10)

(2)编写一个应用程序,其中包含练习(1)中的逻辑,让用户输入两个数字,并显示它们,但拒绝接受两个数字都大于10的情况,并要求用户重新输入。

答案:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
double var1=0, var2=0;
bool 数字正确=false;

while (!数字正确)
{
Console.WriteLine("第一个数字:");
var1 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("第二个数字:");
var2 = Convert.ToDouble(Console.ReadLine());
if ((var1 > 10) ^ (var2 > 10))
{
数字正确 = true;
}
else
{
if ((var1 < 10) && (var2 < 10))
{
数字正确 = true;
}
else
{

数字正确 = false;
Console.WriteLine("必须有一个数字小于10");
}
}

}
Console.WriteLine("第一个数字是:{0}/n第二个数字是:{1}", var1, var2);
Console.ReadKey();
}
}
}
(3)下面的代码有什么错误?

int i;

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

{

    if((i %2) = 0)

        continue;

    console.WriteLine(i);

}

答案:

    将 if((i%2)=0)改为if((i%2)==0)即可。

(4)修改Mandelbrot图像应用程序,要求用户输入图像的边界,显示选中个图像部分。当前代码输出的字符应正好能放在控制台应用程序的一行上。考虑如何使每个选中的图像正好占据大小相同的空间,以最大化可视区域。

答案:

这道题不会做,附参考答案。

static void Main(string[] args)
{
double realCoord, imagCoord;
double realMax = 1.77;
double realMin = -0.6;
double imagMax = -1.2;
double imagMin = 1.2;
double realStep;
double imagStep;
double realTemp, imagTemp, realTemp2, arg;
int iterations;
while (true)
{
realStep = (realMax - realMin) / 79;
imagStep = (imagMax - imagMin) / 48;
for (imagCoord = imagMin; imagCoord >= imagMax;
imagCoord += imagStep)
{
for (realCoord = realMin; realCoord <= realMax;
realCoord += realStep)
{
iterations = 0;
realTemp = realCoord;
imagTemp = imagCoord;
arg = (realCoord * realCoord) + (imagCoord * imagCoord);
while ((arg < 4) && (iterations < 40))
{
realTemp2 = (realTemp * realTemp) - (imagTemp * imagTemp)
- realCoord;
imagTemp = (2 * realTemp * imagTemp) - imagCoord;
realTemp = realTemp2;
arg = (realTemp * realTemp) + (imagTemp * imagTemp);
iterations += 1;
}
switch (iterations % 4)
{
case 0:
Console.Write(".");
break;
case 1:
Console.Write("o");
break;
case 2:
Console.Write("O");
break;
case 3:
Console.Write("@");
break;
}
}
Console.Write("/n");
}
Console.WriteLine("Current limits:");
Console.WriteLine("realCoord: from {0} to {1}", realMin, realMax);
Console.WriteLine("imagCoord: from {0} to {1}", imagMin, imagMax);

Console.WriteLine("Enter new limits:");
Console.WriteLine("realCoord: from:");
realMin = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("realCoord: to:");
realMax = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("imagCoord: from:");
imagMin = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("imagCoord: to:");
imagMax = Convert.ToDouble(Console.ReadLine());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: