经典程序逻辑思维训练题(不限语⾔)
1、输⼊三个整数x,y,z,请把这三个数由⼩到⼤输出。
程序分析:我们想办法把最⼩的数放到x上,先将x与y进⾏⽐较,如果x>y则将x与y的值进⾏交换,然后再⽤x与z进⾏⽐较,如果x>z则
将x与z的值进⾏交换,这样能使x最⼩。
2、计算1000以内所有能同时被3和5整除的数之和。
3、编⼀个程序,输⼊x的值,按下列公式计算并输出y值;
4、已知数A与B,由键盘输⼊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、编⼀个程序,求出所有各位数字的⽴⽅和等于1099的3位整数。
11、要求在屏幕上分别显求1到100之间奇数之和与偶数之和。
12、输⼊10个数,并显⽰最⼤的数与最⼩的数。
13、菲波那契数列:0、1、1、2、3、5、8、13...。第⼀项为0,第⼆项为1,往后第N项为第(N-2)项+第(N-1)项之和,如第三项
为:0+1=1,第四项为:1+。
输⼊⼀个正整数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和它⾃⾝外,不能被其他⾃然数整除的数叫做质数;否则称为合数。若从2到A的平⽅根的范围内,没有⼀个数能整除A,则A是素数。
16、题⽬:有⼀分数序列:2/1,3/2,5/3,8/5,13/8,求出这个数列的前20项之和。
程序分析:请抓住分⼦与分母的变化规律。
17、求出所有的5位数的回⽂数,显⽰在屏幕上。即12321是回⽂数,个位与万位相同,⼗位与千位相同。
18、编⼀个程序, 求 s=1!+2!+3!+…..+n!, (n由输⼊决定, 多重循环)。
19、百钱买百鸡(多重循环)
⼀只公鸡值5元,⼀只母鸡值3元,3只⼩鸡值1元,现⽤⼀百元要买⼀百只鸡,问有哪些⽅案?
21、钞票换硬币(多重循环)
把⼀元钞票换成⼀分、⼆分、五分硬币(每种⾄少⼀枚),有哪些换法?
22、输出9*9乘法⼝诀表。(多重循环)
程序分析:分⾏与列考虑,共9⾏9列,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、求1到3109698525的和。
#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");    }}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。