文章类型: JAVA
关键词: C#,C,Sharp,Java,java,编程逻辑,训练题,if,switch,while,for,参考答案
内容摘要: 主要训练编程初学者的编程逻辑,通过一系列的练习题建立初级程序员对编程逻辑的掌握。针对上一篇的训练题提供答案

Java、C#编程逻辑训练题(见上一篇)的参考答案

2015/7/22 16:34:31    来源:apple    阅读:
//while循环
//输出1——10
int i = 1;        //定义一个变量来储存要输出的值
while (i <= 10)   //i<=10决定了何时结束循环
{
    Console.WriteLine(i);  //循环输出i
    i++;                   //改变i的值以达到退出循环的目的
}

//输出1--5乘以10所得的乘法表。
int i = 1;    //定义一个变量来储存被乘数的值
int result = 0;  //定义一个变量来储存结果的值
while (i <= 5)   //决定循环何时结束
{
    result = i * 10;      //求出乘法的结果
    Console.WriteLine("{0}*10={1}", i, result);//循环输出结果
    i++;                  ////决定循环何时结束
}
//死循环,该循环内没有决定循环何时结束的语句,所以无法退出循环
int i = 0;
while (i < 1)   
{
    Console.WriteLine("爱情就像死循环,要谨慎");
    Console.WriteLine("试试ctrl+c吧");  
}

//程序要求摄氏度0--250度,每隔20度为一项,输出摄氏温度与华氏温度的对照表,同时要求
//输出的条目不超过10条
int c = 0; int f = 0;  //定义两个变量来分别储存摄氏温度和华氏温度的值
int cnt = 1;           //定义一个变量来储存输出条目的值
while (cnt <= 10 && c <= 250)//决定循环何时结束
{
               
    f = c * 9 / 5 + 32; //换算;
    Console.WriteLine("{0}: {1}摄氏度   {2}华氏度", cnt, c, f);//循环输出
    cnt++;    //每循环一次,条目的值加1
    c = c + 20;    //每隔20度为一项
}
//计算n+(n-1)+(n-2)+....+3+2+1的值,n为正整数
int n = Convert.ToInt32(Console.ReadLine());
int sum = 0;
while (n >= 1)
{
    sum += n;
    n--;
}
Console.WriteLine(sum);

//猜数字
int num = 0;
int cnt=0;
do
{
    num = Convert.ToInt32(Console.ReadLine());
    if (num > 50)
    {
        Console.WriteLine("大了");
    }
    if (num < 50)
    {
        Console.WriteLine("小了");
    }
    cnt++;
} while (num != 50);
Console.WriteLine("你猜了{0}次就对了",cnt);
//试试用while循环做
#region 用while的解法
int num =Convert.ToInt32( Console.ReadLine());
int cnt = 1;
while (num != 50)
{
    if (num > 50)
    {
        Console.WriteLine("大了");
    }
    if (num < 50)
    {
        Console.WriteLine("小了");
    }
    num = Convert.ToInt32(Console.ReadLine());
    cnt++;
}
Console.WriteLine("你猜了{0}次就对了", cnt);
#endregion
            
//while 的用法
int num = int.Parse(Console.ReadLine());
int count1 = 0;
int count2 = 0;
while (num != 0)
{
    if (num > 0)
    {
        count1++;
    }
    else
    {
        count2++;
    }
    num = int.Parse(Console.ReadLine());
}
Console.WriteLine("记述结束");
Console.WriteLine("正数有{0}个",count1);
Console.WriteLine("负数有{0}个", count2);

do while 的用法
int num ;
int count1 = 0;
int count2 = 0;
do
{
    num = int.Parse(Console.ReadLine());
    if (num > 0)
    {
        count1++;
    }
    if (num<0)
    {
        count2++;
    }
               
} while (num != 0) ;
Console.WriteLine("记述结束");
Console.WriteLine("正数有{0}个", count1);
Console.WriteLine("负数有{0}个", count2);
            
1+2+......+100
int sum = 0;
for (int i = 1; i <= 100; i++)
{
                
    sum += i;
}
Console.WriteLine(sum);
           
            
//for 循环的简写
int i = 1;
int sum = 0;
for (; ; )
{
    if (i <= 100)
    {
        sum += i;
    }
    else
    {
        break;
    }
    i++;
}
Console.WriteLine(sum);

int i;
for ( i = 100; i >0; i--)
{
    if (i % 3 == 0)
    {
        break;
    }
}
Console.WriteLine(i);
//重点
int num = Convert.ToInt32(Console.ReadLine());
int k;
int m;
for (k = 2; k <= num - 1; k++)
{
    m = num % k;
    if (m == 0)
    {
        break;
    }
}
if (num == k)
{
    Console.WriteLine("素数");
}
else
{
    Console.WriteLine("非素数");
}

for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue;
    }
    Console.WriteLine(i);
}
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write("{0}*{1}={2}\t", j, i, j * i);
    }
    Console.WriteLine();
}
int i;
for (i = 1; i < 100; i++)
{
    if (i % 3 == 0 && i % 5 != 0)
    {
        Console.WriteLine(i);
    }
}
            
            
//用三种循环写1到100的和
//第一种方法
int i = 1, sum = 0;
while (i <= 100)
{
    sum += i;
    i++;
}
Console.WriteLine(sum);
//第2种方法
int num = 1;
int sum = 0;
bb: if (num <= 100)
{
    sum += num;
    num++;
    goto bb;
}
Console.WriteLine(sum);
            
//第3种方法
int num = 1;
int sum = 0;
do
{
    sum += num;
    num++;
} while (num <= 100);
Console.WriteLine(sum);

//第4种方法
int sum = 0;
for (int i = 1; i <= 100; i++)
{
    sum += i;
}
Console.WriteLine(sum);
//求1到10的倒数和
#region
double sum = 0;
for (double i = 1; i <= 10; i++)
{
    sum = sum + 1 / i;
}
Console.WriteLine(sum);
#endregion
//求1到50的平方和
#region
第1种方法
int sum = 0;
for (int i = 1; i <= 50; i++)
{
    sum = sum + i * i;
}
Console.WriteLine(sum);
            
第2种方法
int sum = 0;
for (int i = 1; i <= 50; i++)
{
    sum += (int) Math.Pow(i, 2);
}
Console.WriteLine(sum);
#endregion

//接受用户输入的正整数,然后显示从0到该数为止所表示的字符。
#region
int i = Convert.ToInt32(Console.ReadLine());
for (int j = 0; j <=i; j++)
{
    Console.WriteLine((char)j);
}
#endregion

//编写九九乘法表并倒序输出
#region
for(int i=9;i>=1;i--)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write("{0}*{1}={2}\t  ", j, i, i * j);
    }
    Console.WriteLine();
}
            
//编写九九乘法表并顺序输出
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write("{0}*{1}={2}\t", j, i, j * i);
    }
    Console.WriteLine();
}
    #endregion
//打印平行四边形
//    **************
//   **************
//  **************
// **************
//**************
    //第1种方法:
Console.WriteLine("    **************");
Console.WriteLine("   **************");
Console.WriteLine("  **************");
Console.WriteLine(" **************");
Console.WriteLine("**************");
#region
            
//第2种方法:
for (int i = 1; i <= 5; i++)
{
    for (int j = 4; j >= i; j--)
    {
        Console.Write(" ");
    }
    for (int j = 1; j <= 14; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}
#endregion

//打印等腰三角形
//   *
//  ***
// *****
//*******
#region
for (int i = 1; i <= 4; i++)
{
    for (int j = 1; j <= 4 - i; j++)
    {
        Console.Write(" ");
    }
    for (int j = 1; j <= 2 * i - 1; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}
#endregion
//打印倒等腰三角形
//*******
// *****
//  ***
//   *
#region
for (int i = 4; i >= 1; i--)
{
    for (int j = 1; j <= 4 - i; j++)
    {
        Console.Write(" ");
    }
    for (int j = 1; j <= 2 * i - 1; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}
#endregion
//求1-3+5-7+...-95+97-99
#region
//解法1
int sum1 = 0;
int sum2 = 0;
int i = 1;
int j = -3;
while (i >= 1 && i <= 97)
{
    sum1 = sum1 + i;
    i = i + 4;
}
while (j <= -3 && j >= -99)
{
    sum2 = sum2 + j;
    j = j - 4;
}
Console.WriteLine(sum1 + sum2);
//解法2
int sum = 0;
int sign = 1;
for (int i = 1; i <= 99; i = i + 2)
{
    sum = sum + sign * i;
    sign = -sign;
}
Console.WriteLine(sum);
#endregion
//小猴子摘了一堆桃,第一天吃了一半,还嫌不过瘾,又多吃了一个;
//第二天又将剩下的桃子吃了一半加一个;以后天天如此,
//到第十天,小猴一看,只剩一个桃子了。问最初有多少个桃子。
#region
int sum = 0;
for (int i = 10; i >= 1; i--)
{
    if (i == 10)
    {
        sum = 1;
    }
    else
    {
        sum = (sum + 1) * 2;
    }
}
Console.WriteLine(sum);
#endregion
//某人有100元,欲买100只鸡,公鸡5元一只,母鸡3元一只,小鸡一元3只,
//可买到公鸡、母鸡、小鸡各多少只?
#region
int g, m, x;
for (g = 0; g <= 20; g++)
{
    for (m = 0; m <= 33; m++)
    {
        x = 100 - g - m;
        if (g * 5 + m * 3 + x / 3 == 100 && x % 3 == 0)
        {
            Console.WriteLine("公:{0}只  母:{1}只  小:{2}只", g, m, x);
        }
    }
}
#endregion
//有一个数列,前两个数是1,1,第三个数是前两个数之和,
//以后的每个数都是前两个数之和,要求输出此数列的前40个数。
#region
int num1 = 1, num2 = 1;
for (int i = 1; i <= 10; i++)
{
    if (i == 1 || i == 2)
    {
        Console.WriteLine(num1);
    }
    else
    {
        num1 = num1 + num2;
        Console.WriteLine(num1);
        int t;
        t = num1;
        num1 = num2;
        num2 = t;
    }
}
#endregion
//求2/1,3/2,5/3,8/5,13/8,21/13...的前20项的和(32.66026)
#region
double zi = 2; double mu = 1; double sum = 0;
for (int k = 1; k <= 20; k++)
{
    if (k == 1)
    {
        sum = zi / mu;
    }
    else
    {
        zi = zi + mu;
        mu = zi - mu;
        sum += zi / mu;
    }
}
Console.WriteLine(sum);
#endregion
//打印“水仙花数”,所谓“水仙花数”是指一个三位数,
//其各位数字立方和等于该数本身。例如153
#region
//解法1
for (int i = 100; i <= 999; i++)
{
    int ge = i % 10;
    int shi = i / 10 % 10;
    int bai = i / 100;
    if (Math.Pow(ge, 3) + Math.Pow(shi, 3) + Math.Pow(bai, 3) != i)
    {
        continue;
    }
    Console.WriteLine(i);
}
            
//解法2
for (int i=1;i<=9;i++)
{
    for (int j=0;j<=9;i++)
    {
        for (int k=0;k<=9;k++)
        {
            if (i*i*i+j*j*j+k*k*k==i*100+j*10+k)
            {
            Console.WriteLine(i*100+j*10+k);
            }
        }
    }
}
#endregion
//有A、B、C、D4个一位非负整数,他们符合(ABCD-CDC=ABC)下面的算式,请找出A\B\C\D的值(1,0,9,8)
// ABCD
// -CDC
//-------
//  ABC
#region
for (int a = 0; a <= 9; a++)
{
    for (int b = 0; b <= 9; b++)
    {
        for (int c = 0; c <= 9; c++)
        {
            for (int d = 0; d <= 9; d++)
            {
                if (a * 1000 + b * 100 + c * 10 + d - (c * 100 + d * 10 + c) == a * 100 + b * 10 + c && (a != 0 || b != 0 || c != 0 || d != 0))
                {
                    Console.WriteLine("{0}{1}{2}{3}", a, b, c, d);
                }
            }
        }
    }
}
#endregion


↑ 上一篇文章:Java C# 编程逻辑训练题 关键词:Java,C#,C,Sharp,Java,java,编程.. 发布日期:2015/7/22 16:32:21
↓ 下一篇文章:历届奥斯卡(1928-2017)最佳获奖电影介绍上篇 关键词:历届,奥斯卡,获奖,电影,简介,下载,1928,2017 发布日期:2015/7/22 16:37:20
相关文章:
Java C# 编程逻辑训练题 关键词:Java,C#,C,Sharp,Java,java,编程逻辑,训练题,if,switch,whi.. 发布日期:2015-07-22 16:32
java循环结构 第五章 关键词:java,循环,结构,第五章,while,for,break,continue 发布日期:2015-07-29 17:30
C#的WinForm开发中AutoComplete 输入提示、自动补全 关键词:C#,CSharp,WinForm,TextBox,AutoComplete,输入提示,自动补全.. 发布日期:2016-01-21 21:08
相关目录:.NETJAVA软件开发ANDROID
我要评论
正在加载评论信息......