经典程序逻辑思维训练题(不限语言)

1、输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析:我们想办法把最小的数放到x上,先将xy进行比较,如果x>y则将xy的值进行交换,然后再用xz进行比较,如果x>z则将xz的值进行交换,这样能使x最小。

2、计算1000以内所有能同时被35整除的数之和。

3、编一个程序,输入x的值,按下列公式计算并输出y值;

 

4、已知数AB,由键盘输入AB的值,交换它们的值,并输出。

5、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

6:利用条件运算完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

7、输入年和月,则输出此年此月的天数,如大月有31天,小月有30天,而闰年的2月有29天,平年则只有28天。(必须使用switch结构实现,年份如果能被4整除但不能被100整除;或者能被400整除为闰年)

8、求100个随机数之和,随机数要求为0—9的整数。

9、编一个程序,输入三个双精度数,输出其中最小数。

10、编一个程序,求出所有各位数字的立方和等于10993位整数。

11、要求在屏幕上分别显求1100之间奇数之和与偶数之和。

12、输入10个数,并显示最大的数与最小的数。

13、菲波那契数列:011235813...。第一项为0,第二项为1,往后第N项为第(N-2)项+第(N-1)项之和,如第三项为:0+1=1,第四项为:1+1=2...

输入一个正整数N求出前N项数列。

N=5,显示:0 1 1 2 3 N=10,显示:0 1 1 2 3 5 8 13 21 34

14、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数,在屏幕上显示该数。程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

15、输入一整数A,判断它是否为素数。

提示:素数又称质数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。若从2A的平方根的范围内,没有一个数能整除A,A是素数。

16、题目:有一分数序列:2/13/25/38/513/821/13...求出这个数列的前20项之和。

程序分析:请抓住分子与分母的变化规律。

17、求出所有的5位数的回文数,显示在屏幕上。即12321是回文数,个位与万位相同,十位与千位相同。

18、编一个程序, s=1!+2!+3!+…..+n!, (n由输入决定, 多重循环)

19、百钱买百鸡(多重循环)

一只公鸡值5元,一只母鸡值3元,3只小鸡值1元,现用一百元要买一百只鸡,问有哪些方案?

21、钞票换硬币(多重循环)

把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些换法?

22、输出9*9乘法口诀表。(多重循环)

程序分析:分行与列考虑,共99列,i控制行,j控制列。

23、打印出如下图案:

*

***

*****

*******

*********

24编写一个C#程序,任意接收一个整数,分解它的质因数,输出如:90=2*3*3*5的格式。

25、使用循环和“*”号输出一个实心菱形图案

26使用循环和“*”号输出一个空心菱形图案,尽量将循环的个数减少到最少。

27、输出如下的图形:

A

BCB

CCDCC

DDDEDDD

EEEEFEEEE

FFFFFGFFFFF

28、输出如下杨辉三角:

1

1  1

1  2   1

1  3   3   1

1  4   6   4   1

1  5   10  10  5   1

 

#include "stdio.h"
#define N 7
void main()
{
    int a[N][N],i,j;
    for(i=0;i<N;i++)
    {
        for(j=0;j<=i;j++)
        {
            if(j==0||i==j){
                a[i][j]=1;
            }
        }
    }
    for(i=2;i<N;i++)
    {
        for(j=1;j<i;j++)
        {
            a[i][j]=a[i-1][j]+a[i-1][j-1];
        }
    }
    for(i=0;i<N;i++)
    {
        for(j=0;j<=i;j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
}

 

29、编写一个跟机器进行猜拳的游戏,用1表示石头,2表示剪刀,3表示布,机器出拳则靠随机产生的数来定,最终输出你是赢、输还是平手。

30、有这样一段路程:珠海à广州à南昌à上海à北京à黑龙江,两站之间的汽车票价分别是55、180、285、195、300,现要求编写程序,输入起始和终点站,求出两站之间的总票价。

31、编写程序,输入一个年月日,求出这一天是这一年中的第几天,要求输入错误的月份和日期值时,重新输入至正确为止。

32、已知有一个10个元素的整型数组,存放了2、9、15、23、34、49这几个升序排列的数。现要求接收整数插入到数组中,并继续保持升序排列的状态,直到数组已满才结束插入整数。

33、有A、B、C、D四个盒子,盒子里面一开始分别放置的珠子数分别是8、5、3、2颗,第一个小朋友从最多珠子的盒子中取走三颗,分别放入到另外的三个盒子中;后面的小朋友也是如此操作。当第1999个小朋友都如此操作完后,四个盒子中分别有多少个珠子?

34、接收一个字符串,统计出字符串中出现的字母、数字、空格和其它字符的个数。

35、一次酒店宴席安排宾客就坐吃饭,5人一桌剩4人,7人一桌剩6人,9人一桌剩8人,11人一桌刚好,编程实现求宴席中宾客最少是多少人?

36、笼子里一共有鸡和兔子35只,它们共有96条腿,问鸡和兔子分别有多少只?

37、有一个分数序列:2/1、3/2、5/3、8/5、13/8、21/13、…,求出这个序列的前20项之和。

38、已知有100个房间,每个房间有一盏灯,一开始灯是灭的。拉一下,灯亮,再拉一下灯灭。假设有100个人排队去拉灯,第1个人拉所有能被1整除的房间的灯,第2个人拉所有能被2整除的房间的灯,依次类推。问最后哪些房间的灯是亮的?

39、请查阅课外资料,理解冒泡排序算法原理,实现对数组int[] arr={2,1,5,3,4}的降序排序并输出结果。

40、用逻辑重新实现String类的IndexOf()方法。方法原型:static int FindIndexOf(string str1,string str2),要求实现:如果str1包含str2,则返回第一次出现位置的下标;如果不包含,则返回-1。最后测试该方法。

41、利用方法的递归求一个数的阶乘结果。提示:一个方法它的内部直接或间接调用方法本身,则该方法称为递归方法,可以先查阅递归的相关资料

42、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。编写一个加密的程序,接收一个四位的整数,计算出加密后的结果。

 

43、求13109698525的和。

#include "stdio.h"#define N 7void main(){    int a[N][N],i,j;    for(i=0;i<N;i++)    {    for(j=0;j<=i;j++)    {    if(j==0||i==j){    a[i][j]=1;    }    }    }    for(i=2;i<N;i++)    {    for(j=1;j<i;j++)    {    a[i][j]=a[i-1][j]+a[i-1][j-1];    }    }    for(i=0;i<N;i++)    {    for(j=0;j<=i;j++)    {    printf("%d ",a[i][j]);    }    printf("\n");    }}

posted @ 2021-12-08 15:41  张果  阅读(1043)  评论(0编辑  收藏  举报
AmazingCounters.com