Python 习题集
【程序 1】
题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多
少?
【程序 2】
题目:企业发放的奖金根据利润提成。利润 (I) :
低于或等于 10 万元时,奖金可提 10%;
高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10
万元的部分,可提成 7.5%;
20 万到 40 万之间时,高于 20 万元的部分,可提成 5%;
40 万到 60 万之间时,高于 40 万元的部分,可提成 3%;
60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,
高于 100 万元时,
超过 100 万元的部分按 1%提成,
从键盘输入当月利润 I ,求应发放奖金总数?
【程序 3】
题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,
请问该数是多少?
【程序 4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
【程序 5】
题目:输入三个整数 x,y,z,请把这三个数由小到大输出。
【程序 6】
题目:用 *号输出字母 C 的图案。
【程序 7】
题目:输出特殊图案,请在 c 环境中运行,看一看, Very Beautiful!
【程序 8】
题目:输出 9*9 口诀表。
【程序 9】
www.aibbt.com 让未来触手可及
题目:要求输出国际象棋棋盘。
【程序 10】
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
【程序 11】
题目:古典问题:有一对兔子,从出生后第
3 个月起每个月都生一对兔子,小兔子长到
第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
【程序 12】
题目:判断 101-200 之间有多少个素数,并输出所有素数。
【程序 13】
题目:打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立
方和等于该数本身。例如: 153 是一个“水仙花数” ,因为 153=1 的三次方+5 的三次方
+3的三次方。
【程序 14】
题目:将一个正整数分解质因数。例如:输入
90, 打印出 90=2*3*3*5 。
【程序 15】
题目:利用条件运算符的嵌套来完成此题:学习成绩 >=90 分的同学用 A 表示, 60-89 分
之间的用 B 表示, 60 分以下的用 C表示。
【程序 17】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
【程序 18】
题 目 : 求 s=a + aa + aaa + aaaa + aa...a
的 值 , 其 中 a 是 一 个 数 字 。 例 如
2+22+222+2222+22222(此时,共有 5 个数相加 ) ,几个数相加有键盘控制。
【程序 19】
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”
。例如 6=1+2+3。编
程找出 1000 以内的所有完数。
【程序 20】
题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第 10 次落地时,共经过多少米?第 10 次反弹多高?
【程序 21】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃
www.aibbt.com 让未来触手可及
了一个第二天早上又将剩下的桃子吃掉一半,
又多吃了一个。 以后每天早上都吃了前一
天剩下的一半多一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘
了多少。
【程序 22】
题目:两个乒乓球队进行比赛,各出三人。甲队为
a,b,c 三人,乙队为 x,y,z 三人。已
抽签决定比赛名单。 有人向队员打听比赛的名单。 a 说他不和 x 比,c 说他不和 x,z 比,
请编程序找出三队赛手的名单。
程序 23】
题目:打印出如下图案(菱形)
【程序 24】
题目:有一分数序列: 2/1 ,3/2 ,5/3 ,8/5 ,13/8 ,21/13... 求出这个数列的前
20 项
之和。
【程序 25】
题目:求 1+2!+3!+...+20! 的和
【程序 26】
题目:利用递归方法求 5! 。
【程序 27】
题目:利用递归函数调用方式,将所输入的
5 个字符,以相反顺序打印出来。
【程序 28】
题目:有 5 个人坐在一起,问第五个人多少岁?他说比第
4 个人大 2 岁。问第 4 个人岁
数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第
一个人大两岁。最后问第一个人,他说是
10 岁。请问第五个人多大?
【程序 29】
题目:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数
字。
【程序 30】
题目:一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位
与千位相同。
【程序 31】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
www.aibbt.com 让未来触手可及
判断第二个字母。
【程序 32】
题目: Press any key to change color, do you want to try it. Please hurry up!
【程序 33】
题目:学习 gotoxy() 与 clrscr() 函数。
【程序 34】
题目:练习函数调用
【程序 35】
题目:文本颜色设置
【程序 36】
题目:求 100 之内的素数
【程序 37】
题目:对 10 个数进行排序
【程序 38】
题目:求一个 3*3 矩阵对角线元素之和
【程序 39】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
【程序 40】
题目:将一个数组逆序输出。
【程序 41】
题目:学习 static 定义静态变量的用法
【程序 42】
题目:学习使用 auto 定义变量的用法
【程序 43】
题目:学习使用 static 的另一用法。
【程序 44】
题目:学习使用 external 的用法。
【程序 45】
题目:学习使用 register 定义变量的方法。
【程序 46】
www.aibbt.com 让未来触手可及
宏定义中允许包含两道衣裳命令的情形,此时必须在最右
题目:宏 #define 命令练习 (1)
【程序 47】
题目:宏 #define 命令练习 (2)
#include "stdio.h"
#define exchange(a,b) { \ /*
边加上 "\"*/
int t;\
t=a;\
a=b;\
b=t;\
}'
这个宏定义 python 不支持
【程序 48】
题目:宏 #define 命令练习 (3)
1. 程序分析:
2. 程序源代码:
#define LAG >
#define SMA <
#define EQ ==
#include "stdio.h"
void main()
{
int
int
i=10;
j=20;
if(i LAG j)
printf("\40: %d larger than %d \n",i,j);
else if(i EQ j)
printf("\40: %d equal to %d \n",i,j);
else if(i SMA j)
printf("\40:%d smaller than %d \n",i,j);
else
}
printf("\40: No such value.\n");
不知道如何用 python 实现类似的功能
【程序 49】
题目: #if #ifdef
和 #ifndef 的综合应用。
1. 程序分析:
2. 程序源代码:
#include "stdio.h"
#define MAX
#define MAXIMUM(x,y) (x>y)?x:y
#define MINIMUM(x,y) (x>y)?y:x
void main()
{
int
a=10,b=20;
www.aibbt.com 让未来触手可及
#ifdef MAX
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#else
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#endif
#ifndef MIN
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#else
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#endif
#undef MAX
#ifdef MAX
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#else
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#endif
#define MIN
#ifndef MIN
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#else
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#endif
}
这个还是预处理的用法, python 不支持这样的机制,演示 lambda 的使用。
【程序 50】
【程序 51】
题目:学习使用按位与 & 。
【程序 52】
题目:学习使用按位或 | 。
【程序 53】
题目:学习使用按位异或 ^ 。
【程序 54】
题目:取一个整数 a 从右端开始的 4~7位。
【程序 55】
题目:学习使用按位取反 ~。
【程序 56】
题目:画图,学用 circle 画圆形。
【程序 57】
题目:画图,学用 line 画直线。
【程序 58】
题目:画图,学用 rectangle 画方形。
www.aibbt.com 让未来触手可及
【程序 59】
题目:画图,综合例子。
【程序 60】
题目:画图,综合例子。
1. 程序分析:
2. 程序源代码:
键盘不知道如何响应,先不写这个
driver,mode,error;
x1,y1;
x2,y2;
dx1,dy1,dx2,dy2,i=1;
count=0;
color=0;
#include "graphics.h"
#define LEFT 0
#define TOP 0
#define RIGHT 639
#define BOTTOM 479
#define LINES 400
#define MAXCOLOR 15
main()
{
int
int
int
int
int
int
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,"");
x1=x2=y1=y2=10;
dx1=dy1=2;
dx2=dy2=3;
while(!kbhit())
{
line(x1,y1,x2,y2);
x1+=dx1;y1+=dy1;
x2+=dx2;y2+dy2;
if(x1<=LEFT||x1>=RIGHT)
dx1=-dx1;
if(y1<=TOP||y1>=BOTTOM)
dy1=-dy1;
if(x2<=LEFT||x2>=RIGHT)
dx2=-dx2;
if(y2<=TOP||y2>=BOTTOM)
dy2=-dy2;
if(++count>LINES)
{
setcolor(color);
color=(color>=MAXCOLOR)?0:++color;
}
}
closegraph();
}
【程序 61】
www.aibbt.com 让未来触手可及
题目:打印出杨辉三角形(要求打印出
10 行)
【程序 62】
i,j,driver=VGA,mode=VGAHI;
题目:学习 putpixel 画点。
#include "stdio.h"
#include "graphics.h"
main()
{
int
initgraph(&driver,&mode,"");
setbkcolor(YELLOW);
for(i=50;i<=230;i+=20)
for(j=50;j<=230;j++)
putpixel(i,j,1);
for(j=50;j<=230;j+=20)
for(i=50;i<=230;i++)
putpixel(i,j,1);
}
【程序 63】
题目:画椭圆 ellipse
【程序 64】
题目:利用 ellipse and rectangle 画图。
【程序 65】
题目:一个最优美的图案。
【程序 66】
题目:输入 3 个数 a,b,c ,按大小顺序输出。
【程序 67】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
【程序 68】
题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m个数变成最前面的 m
个数
【程序 69】
题目:有 n 个人围成一圈,顺序排号。从第一个人开始报数(从
1 到 3 报数),凡报到 3
的人退出圈子,问最后留下的是原来第几号的那位。
【程序 70】
题目: 写一个函数, 求一个字符串的长度, 在 main 函数中输入字符串, 并输出其长度。
【程序 71】
www.aibbt.com 让未来触手可及