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

(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());

         }

      }

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值