当前位置:文档之家› 程序设计竞赛训练题

程序设计竞赛训练题

程序设计竞赛训练题
程序设计竞赛训练题

程序设计竞赛训练题

001敲七 (1)

002统计同成绩学生人数 (2)

003青蛙的约会 (3)

三角形面积 (4)

最少钱币数 (5)

Feli的生日礼物 (6)

蛇行矩阵 (7)

连续邮资问题 (8)

kitty猫的基因编码 (9)

取石子游戏 (10)

勇气的挑战 (11)

钱币兑换问题 (12)

字串数 (13)

小希的数表 (14)

士兵队列训练问题 (15)

最简单的计算机 (16)

愚人节的礼物 (17)

整数对 (18)

寒冰王座 (19)

覆盖的面积 (20)

积木分发 (21)

猴子的争斗 (22)

排序 (23)

选址 (24)

过河 (25)

数字游戏 (26)

速配游戏 (27)

3n+1数链问题 (28)

数制转换 (29)

数列 (30)

奖学金 (31)

纪念品分组 (33)

统计数字 (34)

矩阵取数游戏 (35)

四塔问题 (36)

平方数 (37)

画圆问题 (38)

埃及分数 (39)

植树活动 (40)

有趣的排列 (41)

吃豆豆 (42)

序列 (43)

宠物 (44)

多边形 (45)

H数 (46)

数列找数 (47)

放苹果 (48)

密码 (49)

绝对值排序 (50)

求逆序对个数 (51)

阶乘的和 (52)

旅游路线 (53)

割钢管 (54)

亲和数 (55)

分解素因子 (56)

有趣的数列 (57)

洗牌问题 (58)

DNA序列密码问题 (59)

麦森数 (60)

飞机加油问题 (61)

ElGamal数字签名 (62)

缺失的数据 (63)

001敲七

【问题描述】

输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)【数据输入】一个整数N。(N不大于30000)

【数据输出】从小到大排列的不大于N的与7有关的数字,每行一个。

【样例输入】

20

【样例输出】

7

14

17

002统计同成绩学生人数

【问题描述】

读入N名学生的成绩,将获得某一给定分数的学生人数输出。

【数据输入】测试输入包含若干测试用例,每个测试用例的格式为

第1行:N

第2行:N名学生的成绩,相邻两数字用一个空格间隔。

第3行:给定分数

当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。

【数据输出】对每个测试用例,将获得给定分数的学生人数输出。

【样例输出】

3

80 60 90

60

2

85 66

5

60 75 90 55 75

75

【样例输出】

1

2

003青蛙的约会

【问题描述】:两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你求出它们跳了几次以后才会碰面。

【数据输入】输入只包括一行5个整数x,y,m,n,L,其中x≠y < 2000000000,0 < m、n < 2000000000,0 < L < 2100000000。

【数据输出】输出碰面所需要的跳跃次数,如果永远不可能碰面则输出一行"Impossible"

【样例输入】

1 2 3 4 5

【样例输出】

4

三角形面积

【问题描述】

给出三角形的三个边长为a,b,c,根据海伦公式来计算三角形的面积:

s = (a+b+c)/2;

area = sqrt(s*(s-a)*(s-b)*(s-c));

【数据输入】测试的数据有任意多组,每一组为一行。

每一行为三角形的三个边长为a,b,c;

【数据输出】输出每一个三角形的面积,两位小数。如果不是一个三角形,则输出错误提示信息:“Input error!”

【样例输入】

3 4 5

6 8 10

1 2 3

【样例输出】

6.00

24.00

Input error!

最少钱币数

【问题描述】这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。

你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。

【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M(1 <= M <= 2000,整数),接着的一行中,第一个整数K(1 <= K <= 10)表示币种个数,随后是K 个互不相同的钱币面值Ki(1 <= Ki <= 1000)。输入M=0时结束。

【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。

【样例输入】

15

6 2 5 10 20 50 100

1

1 2

【样例输出】

2

Impossible

Feli的生日礼物

【问题描述】

Felicia 的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100 *_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。Feli 听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20 时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!

【数据输入】每行一个n,直到输入数据结束

【数据输出】对应输入的n,每行输出一个答案

【样例输入】

1101

【样例输出】

8

蛇行矩阵

【问题描述】蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

【数据输入】本题有多组数据,每组数据由一个正整数N组成。(N不大于100)

【数据输出】对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。矩阵三角中同一行的数字用一个空格分开。行尾不要多余的空格。

【样例输入】

5

【样例输出】

1 3 6 10 15

2 5 9 14

4 8 13

7 12

11

连续邮资问题

【问题描述】G国发行了n种不同面值的邮票,并且规定每张信封上最多只允许贴m张邮票。连续邮资问题要求对于给定的n和m的值,给出邮票面值的最佳设计,使得可在1张信封上贴出从邮资1开始,增量为1的最大连续邮资区间。例如,当n=5和m=4时,面值为(1,3,11,15,32)的5种邮票可以贴出邮资的最大连续邮资区间是1到70。编程任务: 对于给定的正整数m和n,计算出邮票面值的最佳设计。

【数据输入】输入数据每一行给出2个正整数m和n的值(1<=n,m<=9),最后以0 0 表示文件结束。

【数据输出】对于输以假定(ai, aj) = 1.

输出包含一个正整数,即为Andy家至少养猪的数目。

【样例输入】

3

3 1

5 1

7 2

【样例输出】

16

kitty猫的基因编码

【问题描述】kitty 的基因编码如下定义:kitty的基因由一串长度2^k(k<=8)的01序列构成,为了方便研究,需要把,01序列转换为ABC编码。用T(s)来表示01序列s的ABC编码T(s)=‘A'(当S全由'0'组成)T(s)=‘B'(当s全由'1'组成)T(s)=‘C'+T(s1)+T(s2) s1,s2为把s等分为2个长度相等的子串比如T('00')='A' T('00001111')='CAB'

【数据输入】一行,长度为2^k,为kitty猫的01基因编码,有多个数据

【数据输出】一行,由ABC构成的ABC编码

【样例输出】

01001011

【样例输出】

CCCABACCBAB

取石子游戏

【问题描述】有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。

【数据输入】输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。

【数据输出】输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。

【样例输入】

2 1

8 4

4 7

【样例输出】

1

勇气的挑战

【问题描述】给定n个点的坐标(x,y,z),且n<=50,从点1出发,怎么样才能走一条路径,访问每个点一次且仅一次,使走过的距离和最小?

【数据输入】多组数据. 第1行n,然后n行3个整数坐标

【数据输出】每组一行,代表最小权和

【样例输入】

3

0 0 0

1 1 0

1 -1 0

【样例输出】

3.4

钱币兑换问题

【问题描述】

在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。

【要求】

【数据输入】每行只有一个正整数N,N小于32768。

【数据输出】对应每个输入,输出兑换方法数。

【样例输入】

2934

12553

【样例输出】

718831

13137761

字串数

【问题描述】

一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA".

给定若干字母和它们相应的个数,计算一共可以组成多少个不同的字符串.

【数据输入】每组测试数据分两行,第一行为n(1<=n<=26),表示不同字母的个数,第二行为n 个数A1,A2,...,An(1<=Ai<=12),表示每种字母的个数.测试数据以n=0为结束.

【数据输出】对于每一组测试数据,输出一个m,表示一共有多少种字符串.

【样例输入】

2

1 2

3

2 2 2

【样例输出】

3

90

小希的数表

【问题描述】

Gardon 昨天给小希布置了一道作业,即根据一张由不超过5000的N(3<=N<=100)个正整数组成的数表两两相加得到N*(N-1)/2个和,然后再将它们排序。例如,如果数表里含有四个数1,3,4,9,那么正确答案是4,5,7,10,12,13。小希做完作业以后出去玩了一阵,可是下午回家时发现原来的那张数表不见了,好在她做出的答案还在,你能帮助她根据她的答案计算出原来的数表么?

【数据输入】包含多组数据,每组数据以一个N开头,接下来的一行有按照大小顺序排列的N*(N-1)/2个数,是小希完成的答案。文件最后以一个0结束。

假设输入保证解的存在性和唯一性。

【数据输出】对于每组数据,输出原来的数表。它们也应当是按照顺序排列的。

【样例输入】

4

4 5 7 10 12 13

4

5 6 7 8 9 10

【样例输出】

1 3 4 9

2 3 4 6

士兵队列训练问题

【问题描述】

某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。。。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。

【数据输入】本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。

【数据输出】共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。

【样例输入】

2

20

40

【样例输出】

1 7 19

1 19 37

最简单的计算机

【问题描述】

一个名叫是PigHeadThree的研究组织设计了一台实验用的计算机,命名为PpMm。PpMm 只能执行简单的六种命令A,B,C,D,E,F;只有二个内存M1,M2;三个寄存器R1,R2,R3。六种命令的含义如下:

命令A:将内存M1的数据装到寄存器R1中;

命令B:将内存M2的数据装到寄存器R2中;

命令C:将寄存器R3的数据装到内存M1中;

命令D:将寄存器R3的数据装到内存M2中;

命令E:将寄存器R1中的数据和寄存器R2中的数据相加,结果放到寄存器R3中;

命令F:将寄存器R1中的数据和寄存器R2中的数据相减,结果放到寄存器R3中。

你的任务是:设计一个程序模拟PpMm的运行。

【数据输入】有若干组,每组有2行,第一行是2个整数,分别表示M1和M2中的初始内容;第二行是一串长度不超过200的由大写字母A到F组成的命令串,命令串的含义如上所述。

【数据输出】对应每一组的输入,输出只有一行,二个整数,分别表示M1,M2的内容;其中M1和M2之间用逗号隔开。

其他说明:R1,R2,R3的初始值为0,所有中间结果都在-2^31和2^31之间。

【样例输入】

100 288

ABECED

876356 321456

ABECAEDBECAF

【数据输出】

388,388

2717080,1519268

愚人节的礼物

【问题描述】

四月一日快到了,Vayko想了个愚人的好办法——送礼物。嘿嘿,不要想的太好,这礼物可没那么简单,Vayko为愚人准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。用()表示一个盒子,B表示礼物,Vayko想让你帮她算出愚人指数,即最少需要拆多少个盒子才能拿到礼物。

【要求】

【数据输入】本题目包含多组测试,请处理到文件结束。每组测试包含一个长度不大于1000,只包含'(',')'和'B'三种字符的字符串,代表Vayko设计的礼物透视图。

你可以假设,每个透视图画的都是合法的。

【数据输出】对于每组测试,请在一行里面输出愚人指数。

【样例输入】

((((B)()))())

(B)

【样例输出】

4

1

整数对

【问题描述】

Gardon 和小希玩了一个游戏,Gardon随便想了一个数A(首位不能为0),把它去掉一个数字以后得到另外一个数B,他把A和B的和N告诉了小希,让小希猜想他原来想的数字。不过为了公平起见,如果小希回答的数虽然不是A,但同样能达到那个条件(去掉其中的一个数字得到B,A和B之和是N),一样算小希胜利。而且小希如果能答出多个符合条件的数字,就可以得到额外的糖果。

所以现在小希希望你编写一个程序,来帮助她找到尽可能多的解。

例如,Gardon想的是A=31,B=3 告诉小希N=34,

小希除了回答31以外还可以回答27(27+7=34)所以小希可以因此而得到一个额外的糖果。

【数据输入】输入包含多组数据,每组数据一行,包含一个数N(1<=N<=10^9),文件以0结尾。

【数据输出】对于每个输入的N,输出所有符合要求的解(按照大小顺序排列)如果没有这样的解,输出"No solution."

【样例输入】

34

152

21

【样例输出】

27 31 32

126 136 139 141

No solution.

编程基础练习题

第二章基本数据类型和运算 因为题目略有删减,可能编号不连续,请见谅 一、单项选择题 1.下列数据中属于“字符串常量”的是(A )。 A. "a"B.{ABC} C.?abc\0?D.?a? 4.字符串"ABC"在内存占用的字节数是( B )。 A.3 B.4C.6 D.8 5.字符串" \?ABCD\? "内存占用的字节数是( C )。 A.4 B.6 C.7D.8 6.在C语言中,合法的长整型常数是( A )。 A.0L B.4962710 C.0.054838743 D.2.1869e10 7. 在C语言中,合法的短整型常数是( D )。 A.0L B.0821 C.40000 D.0x2a 8.下列数据中不属于“字符常量”的是( C )。 A.…\xff?B.…\160?C.?070?D.070 9.char型常量的内存中存放的是( A )。 A.ASCII代码值B.BCD代码值C.内码值D.十进制代码值 11.常数的书写格式决定了常数的类型和值,03322是( B )。 A、16进制int类型常数 B、8进制int类型常数 C、10进制int类型常数 D、10进制long int类型常数 12.“e2”是( D ) 。 A、实型常数100 B、值为100的整型常数 C、非法标识符 D、合法标识符 13. 要为字符型变量a赋初值,下列语句中哪一个是正确的( A )。 A、char a=?3?; B、char a=”3”; C、char a=%; D、char a=*; 14. 要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的(C )。 A、float x,y,z=3.14; B、float x,y,z=3*3.14; C、float x=3.14,y=3.14,z=3.14; D、float x=y=z=3.14; 15. 语句float pi=3.1415926535; 将( D )。 A、导致编译错误 B、说明pi为初值3.1415926535的单精度实型常数 C、导致运行时的溢出错误 D、说明pi为初值3.141593的单精度实型常数 16. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B)。 A、算术运算、赋值运算、关系运算 B、算术运算、关系运算、赋值运算 C、关系运算、赋值运算、算术运算 D、关系运算、算术运算、赋值运算 17. 关系运算符中优先级最低的运算符是( C )。 A、“>=”和“<=” B、“>”和“<” C、“==”和“!=” D、“<=”和“<” 18. 逻辑运算符中,运算优先级按从高到低依次为( D )。 A、&&,!,|| B、||,&&,! C、&&,||,! D、!,&&,|| 19. 对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的( A )。 A、0为假非0为真 B、只有1为真 C、-1为假1为真 D、0为真非0为假 20. 表达式x&&1等效于( C )

C语言程序设计竞赛题及其答案

数学与统计学院 第三届计算机程序设计竞赛题 竞赛需知: 1、答案必须写在答题纸上。 2、程序采用C/JAVA/VB/VFP语言实现均可。 3、考虑到各种因素,程序的键盘输入和结果输出可以用伪代码或者自然语言表示。但是必 须说明输入变量和输出变量。 4、题目最好能用完整、正确的语言程序来解决问题,如确实无法编写完整语言程序的,可 以写出程序主要框架和流程,必要时可以用伪代码或者自然语言描述算法(程序)。 一、玫瑰花数(20分) 如果一个四位数等于它的每一位数的4次方之和,则称为玫瑰花数。例如: + + 1634+ =, 4^4 4^3 4^6 4^1 编程输出所有的玫瑰花数。 #include void main() { int i,j,k,l,m; for(i=999;i<=9999;i++) { j=i/1000; k=i%10; l=i/100-10*j; m=i/10-100*j-10*l; if(i==j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m) printf("%d\n",i); } } 二、菱形图案(20分) 对给定的奇数n,编程打印菱形图案。 输入样例: 7 输出样例: * *** ***** ******* ***** *** * #include #include void main() {

int i,j,k; int n; scanf("%d",&n); for(i=0;i #include void main() { int i,j,x,y; float r; int a,b,count=0; printf("请输入矩阵的行列i,j:"); scanf("%d%d",&i,&j); printf("请输入圆心的坐标点及半径x,y,r:"); scanf("%d%d%f",&x,&y,&r); for(a=0;a

程序设计语言 习题与答案

第六章习题 P159-161 一、复习题 1、简述自然语言与形式语言的概念以及区别、汇编语言与机器语言的概念及区别。 自然语言是某一社会发展中形成的一种民族语言,而形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。用机器指令形式编写的程序称为机器语言,用带符号或助记符的指令和地址代替二进制代码成为语言进化的目标。这些使用助记符语言的语言后来就被称之为汇编语言。(P144- P146) 2、试述计算机语言的类型,它们各有什么特点? 1.机器语言,是最低级的语言,由二进制码组成,最早期的程序员通过在纸带上打点来写程序 2.汇编语言,用助记符和地址符代替了二进制码,更易于编写。 3.高级语言,相对于汇编语言又上升了一步,更接近于自然语言,如C语言、Pascal、Java、C#等都是高级语言。(P145-147) 3、列举程序设计语言的几种范型。 程序语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。(P147-149) 4、简述语言虚拟机。 提示:语言虚拟机是某种语言的解释器。语言虚拟机是建立在硬件和操作系统之上,针对不同的硬件和操作系统有不同的虚拟机,通过语言虚拟机屏蔽掉硬件的差异。这样使得硬件系统能够支持这种语言编写的程序的有效执行。目前最流行的语言虚拟机是Java虚拟机。(P156) 5、计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么? 提示:主要有编译、解释等方式,也有两种方式的混合使用的形式。 编译是使用编译器将高级语言编写的源程序转换成计算机可以执行的机器语言可执行程序,也可以理解为用编译器产生可执行程序的动作。编译方式是一次编译,然后执行程序可以反复多次执行。 解释是另一种将高级语言转换为可执行程序的方式。与编译不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。 近来随着网络的发展,为了实现跨平台但同时又保证一定的效率,出现了编译、解释混合的方式,先用伪编译形成效率较高中间代码,再用语言虚拟机进行解释执行,以屏蔽掉硬件的差异。 (P154-157) 6、请画出编译程序的总框图。如果你是一个编译程序的总设计师,设计编译程序时应当考虑哪些问题? 作为一个编译程序的总设计师,首先要深刻理解被编译的源语言其语法及语义;其次,

程序设计比赛试题

程序设计比赛试题 最少钱币数: 【问题描述】 这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。 【要求】 【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M (1<=M<=2000,整数),接着的一行中,第一个整数K(1<=K<=10)表示币种个数,随后是K个互不相同的钱币面值Ki(1<=Ki<=1000)。输入M=0时结束。 【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。 【样例输入】 15 6 2 5 10 20 50 100 1 1 2 【样例输出】 2 Impossible

Feli的生日礼物 【问题描述】 Felicia的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100*_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。Feli听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!注意哦,AC的男生将会得到一个“Hello Kitty”计算器(可编程,CPU 1THz,Mem 1TMB),AC的女生将会得到一个仿真“Hello Kitty”宠物(善解人意,无须喂养,智商1101,附带写情书功能)。 【要求】 【数据输入】每行一个n,直到输入数据结束 【数据输出】对应输入的n,每行输出一个答案 【样例输入】 1101 【样例输出】 8

程序设计竞赛试题和题解

程序设计竞赛试题和题解 付浩fuch@https://www.doczj.com/doc/ae4207361.html, Contents 完全平方数 (2) 拉丁方阵 (3) 取石子游戏 (5) 乡村医院 (7) 未知星球 (9) 无聊的游戏 (10) 最短路径 (12)

完全平方数 描述 一个非负整数n是完全平方数当且仅当存在非负整数m,使得n=m2 据说完全平方数具有某种神奇的力量,谁知道呢。 聪明的你一定想到了,这道题的任务就是编写一个程序,判断给定的n是否是完全平方数。 输入格式 输入包含多组数据。 每组数据占一行,包含一个非负整数n,n不超过109 输入以n=-1结束 输出格式 对每组输入数据输出一行,如果n是完全平方数则输出”Yes”,否则输出”No” 输入样例 1 2 3 4 -1 输出样例 Yes Yes No No Yes 解答 一般的语言都有开平方运算吧?

拉丁方阵 描述 拉丁方阵是一种n×n的方阵,方阵中恰有n种不同的元素,每种元素恰有n个,并且每种元素在 一行和一列中恰好出现一次。著名数学家和物理学家欧拉使用拉丁字母来作为拉丁方阵里元素的 符号,拉丁方阵因此而得名。例如下图是一个3×3的拉丁方阵: 如果一个拉丁方阵的第一行和第一列按照元素的先后顺序来排列,那么这称为拉丁方阵的标准型,例如下图就是一个3x3的拉丁方阵标准型,第一行和第一列都是”1 2 3”。 你的任务是,编写一个程序读入一个方阵,判断其是否为拉丁方阵;进一步地,判断是否为标准型。 输入格式 输入包含多组数据。 每组数据第一行为正整数n,表示方阵的大小。 其后n行,每行有n个1到n之间的整数,整数之间恰有一个空格,表示方阵的内容。 输入保证1≤n≤100 输入以n=0结束,不要处理这个数据。 输出格式 每组数据对应于一行输出。如果输入是拉丁方阵,但不是标准型则输出1;如果输入是标准型则 输出2;如果输入不是拉丁方阵则输出0 输入样例 2 1 1

《程序设计基础》练习题

《程序设计基础》综合练习题1009 姓名:学号: 一.选择题(以熟悉概念为主) 1.在C++的结构化程序设计框架中,程序的基本组成单元是___。 A.函数B.类 C.关系D.数据结构 2.下列特性中, C 与C++ 共有的是_____。 A. 继承 B. 封装 C. 多态性 D. 函数定义不能嵌套 3.面向对象程序设计思想的主要特征中,不包含____。 A.继承性B.封装性和信息隐藏性 C.功能分解、逐步求精D.多态性 4.在C++中所有的函数名称后面都紧跟着一对____,其中既可以没有内容,也可以包含函有选举权的参数。 A.( ) B.< > C.[ ] D.{ } 5.在C++的面向对象程序设计中,类与类之间通过____来实现独立性。 A.友元B.继承C.派生D.封装 6.下列哪个是C++语言的有效标识符?____。 A._No1 B.No.1 C.12345 D.int 7.在C++语言中,所有函数说明都必须指明返回值类型,没有返回值的函数应说明为____类型的函数。 A.int B.char C.float D.void 8.下列字符常量的写法中,错误的是____。 A.?\105?B.?*?C.????D.?\a? 9.下列变量的存储分配方式中,系统不为其分配内存空间的是____。 A.auto变量B.register变量C.static变量D.extern变量 10.如int型变量x的初始值为1,变量y和t皆为int型,且表达式y=(t=x,x+=t, t),则变量y的值为____。 A.0 B.1 C.2 D.不确定 11.下列关于C++运算符结合性的说法中,正确的是____。 A.赋值运算符是左结合的B.复合赋值运算符是左结合的 C.单目运算符是左结合的D.双目算术符是左结合的 12.表达式18/5*sqrt(4.0)/5值的数据类型是____。 A.int B.double C.float D.不确定 13.下列代码的输出结果是____。 int j=int( ); double d=double( ); cout<

《计算机程序设计基础》课后练习题参考答案

《计算机程序设计基础》课后练习题1 一.判断题 (1)(错)事件过程由某个用户事件或系统事件触发执行,但不能被其他过程调用。 (2)(错)若X=2, Y=5,则表达式 Y-2>X AND X+2>Y 的结果为:True。 (3)(错)常量是指在程序运行过程中其值可以改变的那些量。 (4)(错,timer没有)VB工具箱中的所有控件都具有宽度(Width)和高度(Height)属 性。 (5)(错)定义变量:Dim max,min as Single , 则max 和 min 的数据类型均为Single。 (6)(对)如果创建的菜单项的标题是一个减号“-”,则该菜单项显示为一条分隔线。 (7)(错)标准模块文件的扩展名是“*.VBP”。 (8)(错,都不能)定时器控件可以响应Click事件,但不能响应DbClick事件。 (9)(错)在默认情况下,数组下标下界的缺省值为1。 (10)(对)在使用字体对话框时,需要对其Flags属性先进行相应设置。 二.单选题 (11)在Visual Basic中,表示鼠标单击事件的是 C 。 A)Activate B)DoubleClick C)Click D)MouseDown (12)用于设置计时器时间间隔的属性是 A 。 A)Interval B)Name C)Left D)Top (13)函数Int(10*Rnd)是在 D 范围内的整数。 A)[1,10] B)[1,10] C) [0,9) D)[0,9] (14)Select case语句结构的结尾应使用 D 。 A)End B) End Case C) End Sub D) End Select (15)改变了容器的坐标系后,该容器的 A 属性值不会改变。 A)left B)scaleleft C)scaletop D)scalewidth (16)执行下列语句后,列表框中各表项顺序为 D List1.Clear For i=1 to 4 : List1.AddItem i-1,0 :Next i A)B)C)D) (17)输入对话框InputBox的返回值的类型是 A 。

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.doczj.com/doc/ae4207361.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

第六届程序设计比赛题目与答案

一、鸡兔同笼 问题描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入数据 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (a < 32768)。 输出要求 n行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出2个0。 输入样例 2 3 20 输出样例 0 0 5 10 解题思路 这个问题可以描述成任给一个整数N,如果N是奇数,输出0 0,否则如果N是4的倍数,输出N / 4 N / 2,如果N不是4的倍数,输出N/4+1 N/2。这是一个一般的计算题,只要实现相应的判断和输出代码就可以了。题目中说明了输入整数在一个比较小的范围内,所以只需要考虑整数运算就可以了。 参考程序 1.#include 2.void main( ) 3.{ 4.int nCases, i, nFeet; //nCases 表示输入测试数据的组数,nFeet表示输入的脚数。 5.scanf("%d", &nCases); 6.for(i = 0; i < nCases; i++){ 7.scanf("%d", &nFeet); 8.if(nFeet %2 != 0) // 如果有奇数只脚,则输入不正确, 9.// 因为不论2只还是4只,都是偶数 10.printf("0 0\n"); 11.else if (nFeet%4 != 0) //若要动物数目最少,使动物尽量有4只脚 12.//若要动物数目最多,使动物尽量有2只脚 13.printf("%d %d\n", nFeet / 4 + 1, nFeet / 2); 14.else printf("%d %d\n", nFeet / 4, nFeet / 2); 15.} 16.}

宁波市28届程序设计比赛试题

2013年宁波市第28届中小学生计算机程序设计竞赛 初中组初赛试题 (说明:答案请写在答题卷上。考试时间120分钟,满分100分) 一、选择题(每题有且仅有一个正确答案,选对得1.5分,选错,不选或多选均不得分) 1.很多新款笔记本和电视机上都有HDMI接口,请问这个接口的作用是: A 仅传输视频信号B仅传输音频信号 C 同时传输视频和音频信号 D 稳压电源输入 2. 在Pascal中,表达式2 OR 1 SHL 2 AND 10的值是: A 15 B 8 C 12 D 2 3. 在32位操作系统中,Boolean型数组[1..10000,1..10000]需要的内存空间约为: A 381M B B 12MB C 191MB D 95MB 4. 下列关于32位操作系统和64位操作系统的说法中错误的是: A 32位操作系统是针对32位的CPU设计的 B 64位操作系统是针对64位的CPU设计的 C 64位操作系统理论上能支持的内存大小可根据寻址空间计算而得 D 32位操作系统支持的内存大小不可能超过4G 5. 下面关于二叉堆的复杂度说法中正确的是: A 插入为O(logn),删除为O(logn) B 插入为O(n),删除为O(n) C插入为O(n),删除为O(logn) D插入为O(logn),删除为O(n) 6.算式112-1116的结果是: A 010 B 016 C 1410 D -1410 7. 下列关于邻接表和邻接矩阵的说法中错误的是: A 两者都可以实现图的存储 B 两者可相互转换 C 在一般情况下,邻接表在处理稀疏图时有明显优势 D 邻接矩阵的实现远比邻接表复杂 8. 下列程序中不属于IDE(集成开发环境)的是: A Free Pascal B Lazarus C Dev-C++ D C++ 9. IPv4中一个IP地址长度为32位,新一代协议IPv6中一个IP地址的长度为: A 64位 B 128位 C 256位 D 32位 10. 小明家里电脑可以正常使用QQ,但是无法浏览网站,其原因可能是: A 电脑断网了 B 电脑DNS服务出现故障 C CPU短路 D显示器异常 11.ASCII码表总共有字符128个,请问存放8个ASCII码需要的内存空间是: A 7字节 B 8字节 C 7位 D 8位 12. 字符串"ababacbab"和字符串"abcba"的最长公共子串是: A abcba B cba C abc D ab

程序设计基本训练题集

程序设计基本训练题集 (C语言程序设计) C语言程序设计精品课程组

一、基础题 1. 编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。 2. 编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制数。 3. 输入20个整数存入一个整型数组,输出其中能被数组中其它(只需其中一个)元素整除的那些数组元素。 4. 输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素(如 a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出3、5)。 5. 输入两个数组(数组元素个数自定),输出在两个数组中都不出现的元素(如 a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出2、4、6、3、7、9、10、-1)。6.给定年份year,判别该年份是否闰年,要求: 6-1 一般算法; 6-2 用宏实现:定义一个宏以判别该年份是否闰年。 7.给定一个日期(年/月/日)计算该日期是所在年的第几天。 8. 编写一个函数,处理n行、n列的二维数组:将每一行的元素同除以该行上绝对值最大的元素。 9. 设计一个函数,求给出数的补码。 10.编写一个程序,输入月份号,输出该月份的英文月名,要求用指针数组处理。 11. 编写函数,求m行、n列的二维数组全体元素中负数的个数。 12. 编写函数,返回在一个整数组中出现次数最多的数及其出现次数。 13. 编写函数,在n个元素的一维数组中,统计比相邻元素大的数组元素个数并将统计数返回(不考虑a[0]和a[n-1]),要求以指针变量而不是数组名作参数。 14. 编写函数,在n个元素的一维数组中,找出最大值、最小值并传送到调用函数。 15. 编写一个函数,统计m行n列二维数组中有多少个正数、多少个负数,多少个零,并返回统计结果。 16.输入一个数组,删除数组中的负数。 17.有4名学生每个学生考4门课程,要求在用户输入学生学号以后能输出该生的全部成绩,用指针型函数来实现。请编写函数float *search(). main() {static float score[][4]={{60,76,80,90},{45,86,57,90},{58,95,80,71},{78,50,60,85}}; float *search(),p; int I,m; printf(“enter the number of student:”); scanf(“%d”,&m); printf(“the score of NO.%dare:\n”,m); p=search(score,m); for(I=0;I<4;I++) printf(“%52f\t”,*(p+I)); } float *search(float (pointer)[4],int n)

小学生程序设计复赛练习题

小学生程序设计比赛练习题 1.幸运数字 (luck.pas/c/cpp) 【问题描述】 今年圣诞节,小明收到了很多礼物,每个礼物上都有一个数字,表示对小明的祝福。可是小明有自己的想法,对小明来说,4或者7的倍数是幸运数字。 现在,小明想要知道所有数字中幸运数字之和是多少?请你帮帮小明! Sheryl gōngchéng zài quánguó de Brada ruǎnjiàn gōngsī. Tā de gōngzuò shì kāifā Windows cāozuò xìtǒng. Zài Brada bǎoshǒu de ràng rén nányǐ zhìxìn. Tāmen shènzhì cónglái méiyǒu shǐyòng de túxíng xiǎnshìqì! Yīncǐ,Sheryl de cāozuò xìtǒng yùnxíng zài wénběn móshì hé zài yóu zìfú zǔchéng de xìtǒng chuāngkǒu. Sheryl juédìng, měi gè chuāngkǒu dōu yǒu yīgè ID, zhè shì yīgè zīběn yīngwén zìmǔ ('yī'dào'Z'). Yóuyú měi gè chuāngkǒu yǒu yīgè wéi yī de ID, bùnéng yǒu chāoguò 26 gè chuāngkǒu zài tóngyī shíjiān. Rú nǐ suǒ zhī, suǒyǒu de Windows shì chángfāngxíng. Zài zhè zhǒng chǒulòu de Windows xìtǒng de píngmù, chuāngkǒu de kuàngjiàyǐ jīběn xíngchéng yóu tā de ID xìn. Tú 1 xiǎnshì, zhǐyǒu píngmù shàng de yīgè chuāngkǒu, gāi chuāngkǒu de ID shì'A'. Windows kěnéng huì chóngdié. Tú- 2 xiǎnshì chuāngkǒu de qíngkuàng B duì chuāngkǒu a. Hé tú- 3 de dǐng bù shì tígōng le gèng fùzá de chóngdié. Dāngrán, rúguǒ yīgè chuāngkǒu de mǒu xiē bùfèn shì yóu qítā chuāngkǒu zhē zhù, nǐ bùnéng zài píngmù shàng kàn dào de bùfèn. 字典- 查看字典详细内容 【输入】 第一行一个整数n,表示小明收到了n份圣诞礼物。 第二行包含n个整数,第i个数a[i]表示第i份礼物上的数字。 【输出】 输出小明心目中的幸运数字之和。 【样例解释】 小明的幸运数字必须是4或者7的倍数,这里符合条件的有:12+14+16=42 【数据范围】 40%的数据,n<=100, 0

程序设计基本训练题集

程序设计基本训练题集,给你拿去做着玩吧!! 一、基础题 1. 编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。 2. 编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制数。 3. 输入20个整数存入一个整型数组,输出其中能被数组中其它(只需其中一个)元素整除的那些数组元素。 4. 输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出3、5)。 5. 输入两个数组(数组元素个数自定),输出在两个数组中都不出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出2、4、6、3、7、9、10、-1)。 6.给定年份year,判别该年份是否闰年,要求: 6-1 一般算法; 6-2 用宏实现:定义一个宏以判别该年份是否闰年。 7.给定一个日期(年/月/日)计算该日期是所在年的第几天。 8. 编写一个函数,处理n行、n列的二维数组:将每一行的元素同除以该行上绝对值最大的元素。 9. 设计一个函数,求给出数的补码。 10.编写一个程序,输入月份号,输出该月份的英文月名,要求用指针数组处理。 11. 编写函数,求m行、n列的二维数组全体元素中负数的个数。 12. 编写函数,返回在一个整数组中出现次数最多的数及其出现次数。 13. 编写函数,在n个元素的一维数组中,统计比相邻元素大的数组元素个数并将统计数返回(不考虑a[0]和a[n-1]),要求以指针变量而不是数组名作参数。 14. 编写函数,在n个元素的一维数组中,找出最大值、最小值并传送到调用函数。 15. 编写一个函数,统计m行n列二维数组中有多少个正数、多少个负数,多少个零,并返回统计结果。16.输入一个数组,删除数组中的负数。 17.有4名学生每个学生考4门课程,要求在用户输入学生学号以后能输出该生的全部成绩,用指针型函数来实现。请编写函数float *search(). main() {static float score[][4]={{60,76,80,90},{45,86,57,90},{58,95,80,71},{78,50,60,85}}; float *search(),p; int I,m; printf(“enter the number of student:”); scanf(“%d”,&m); printf(“the score of NO.%dare:\n”,m); p=search(score,m); for(I=0;I<4;I++) printf(“%52f\t”,*(p+I)); } float *search(float (pointer)[4],int n) {} 18.有4名学生每个学生考4门课程,要求在用户找出有不及格课程的学生学号并输出全部成绩,用指针来实现。 19.编写一个函数实现将一个整数按逆序存放到一个数组中。

程序设计大赛试题及答案

试题 1、数学黑洞(程序文件名maths.c/maths.cpp) 【问题描述】 任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。 【输入】 一行,一个4位正整数n(1000< n<9999) 【输出】 掉进黑洞的步数 输入 1234 输出 3 2、进制转换(程序文件名conver.c/conver.cpp) 【问题描述】 任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。 【输入】 一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。 【输出】 转换后的数 【输入输出样例】 输入 255 8 输出 377 3、分数线划定(程序文件名score.c/score.cpp) 【问题描述】 公务员选拔工作正在 A 市如火如荼的进行。为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。 【输入】 第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。输入数据保证m*150%向下取整后小于等于n。 第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。数据保证选手的报名号各不相同。 【输出】 第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。 从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。 【输入输出样例】 输入 6 3 1000 90 3239 88 2390 95 7231 84 1005 95 1001 88

第1届C#程序设计竞赛试题

C#程序设计大赛试题 1 英文单词求复数问题(10分) 题目描述:请编写一个程序,可以将英语规则名词(不考虑不满足以下规则的英语单词)由单数变成复数。已知规则如下: a)以辅音字母y结尾,则将y改成i,再加es; b)以s,x,ch,sh结尾,则加es; c)以元音o结尾,则加es; d)其他情况直接加s。 要求用键盘输入英语规则名词,屏幕输出该名词的复数形式。 样例输入: box 样例输出: Boxes static voi d Mai n(string[] args) { string str = Console.ReadLine(); int i=0; string[] arr = { "s", "x", "ch", "sh", "o" }; if (str.EndsWith("s")||str.EndsWith("x")||str.EndsWith("ch")||str.EndsWith("sh")||str.EndsWi th("o")) { str+="es"; } else if (str.EndsWith("y")) { str.Remove(str.Length - 1); str += "ise"; } else { str += 's'; } Console.WriteLine(str); ; } 2. 逆数对问题(20分) 题目描述:设A[1…..n]是一个包含n个不同数的数组,如果在iA[j],则(i,j)就称为A中的一个逆序对。 请编写程序,根据用户输入的正整数n(n>=2)和n个不同的数,求出数组A[n]的逆序对个数。其中,第一行输入数组包含的元素个数n,第二行输入n个不同的数(以逗号分隔)。

程序设计比赛小学组试题2014

2014年青岛市程序设计竞赛试题(小学组) (比赛时间90分钟,试题满分400分,内存限制128M,时间限制:1s) 说明:1、必须以题目中规定的文件名进行保存,并在技术人员帮助下传到指定文件夹中。 2. 使用竞赛规定的文件格式输入、输出。 (1)对于使用Pascal语言的选手,请参照以下格式使用文件输入输出: begin assign(input,'输入文件名'); assign(output,'输出文件名'); reset(input);rewrite(output); ....... close(input);close(output); end. (2)对于C或C++选手,如果尚未掌握文件输入输出,请参考以下我们提供的一种方法进行文件输入输出。在主函数即main()的开始部分加入以下代码: freopen("输入文件名","r",stdin); freopen("输出文件名","w",stdout); 程序结束时无须像Pascal选手一样,关闭文件,系统将自动关闭读写的文件。 对于C选手,请调用头文件stdio.h 对于C++选手,请调用头文件iostream 1.整数处理(zhengshu.pas/c/cpp) 【问题描述】电脑老师让小明编程做一道题:输入一个正整数A,如果A的个位数字是5,则统计A 能被5整除多少次?否则,统计A当中含有多少个“0”?你能做吗? 【输入】 一行: 一个正整数A。

【输出】 一行: 一个整数,小明所要求的数。 【输入输出样例1】 【输入输出样例2】 【数据范围限制】 对于100%的数据,满足A<=100000000。 2. 乘车费用(cost.pas/c/cpp) 【问题描述】星期天上午小明乘出租车去本市的外婆家。出租车计价方案为:2公里以内起步价是6元,超过2公里之后按1.8元/公里计价,超过10公里之后在1.8元/公里的基础上加价50%,另外,停车等候则按时间计费:1元/3分钟(注:不满3分钟不计费)。已知:小明到外婆家路程为N公里,中间停车等候时间总共M分钟,请计算小明到外婆家的出租车费用是多少元? 【输入】 一行:用空格隔开的两个正整数N 和M。 【输出】 一行:一个实数(表示车费,小数点后保留1位)。 【输入输出样例】 【数据范围限制】

C语言程序设计大赛题目

日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。 题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include int main() { int n,count=0; printf("Please enter number:"); scanf("%d",&n); /*输入任一整数*/ do{ if(n%2) { n=n*3+1; /*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2; /*若为偶数n除以2*/ printf("[%d]: %d/2=%d\n",++count,2*n,n); } }while(n!=1); /*n不等于1则继续以上过程*/ }

数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 #include #include int main() { int number,i,j,k,l; printf("Please enter a number="); scanf("%d",&number); /*输入整数*/ for(i=1;i int main() { int a,b,c,d; printf("Please enter a number:"); scanf("%d",&a); /*输入整数*/ b=a*a*a; /*求整数的三次方*/ printf("%d*%d*%d=%d=",a,a,a,b); for(d=0,c=0;c

相关主题
文本预览
相关文档 最新文档