输出1000以内所有的完数,并输出其所有的因子

合集下载

编程题——精选推荐

编程题——精选推荐

编程题1. 编程,统计在所输⼊的50个实数中有多少个正数、多少个负数、多少个零。

2. 编程,计算并输出⽅程X2+Y2=1989的所有整数解。

3. 编程,输⼊⼀个10进制正整数,然后输出它所对应的⼋进制、⼗六进制数。

4. ⼀个数如恰好等于它的因⼦之和,这个数就称为“完数”。

编程序找出1000以内的所有完数,并输出其因⼦(6是⼀个"完数",它的因⼦是1,2,3)。

5. 输⼊⼀个正整数,输出它的所有质数因⼦(如180的质数因⼦为 2、2、3、3、5)。

6. 输⼊20个整数存⼊⼀数组,输出其中能被数组中其它元素整除的那些数组元素。

7. 输⼊两个数组(数组元素个数⾃定),输出在两个数组中都出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出3、5)。

8. 输⼊两个数组(数组元素个数⾃定),输出在两个数组中都不出现的元素(如a[5]={2,3,4,5,6},b[6]={3,5,7,9,10,-1},则输出2、4、6、3、7、9、10、-1)。

9.编程,将字符数组S2中的全部字符拷贝到字符数组S1中(不⽤strcpy函数)。

10.给定年份year,判别该年份是否闰年(定义⼀个宏以判别该年份是否闰年)。

11.输⼊⼀⾏⼩写字母后,将字母变成其下⼀字母(a变成b、b变成c、c变成d、…、x变成y、y变成z、z变成a)输出。

12. 编写⼀个函数,处理n⾏、n列的⼆维数组:将每⼀⾏的元素同除以该⾏上绝对值最⼤的元素。

13. 编写函数,求任意阶多项式 a0+a1X+a2X2+...+anXn 的值并返回多项式的值。

14. 设计⼀个函数,使给出⼀个数的原码,能得到该数的补码。

15. 编写函数,求m⾏、n列的⼆维数组全体元素中负数的个数。

16. 编写函数,返回在⼀个整数组中出现次数最多的数及其出现次数。

17.编⼀个程序,打⼊⽉份号,输出该⽉的英⽂⽉名,要求⽤指针数组处理。

算法的基本工具和优化技巧

算法的基本工具和优化技巧
天津城市建设学院
Hanoi塔问题 设a,b,c是3个塔座。开始时,在塔座a上有一叠 共n个圆盘,这些圆盘自下而上,由大到小地叠 在一起。各圆盘从小到大编号为1,2,…,n,现要求 将塔座a上的这一叠圆盘移到塔座b上,并仍按 同样顺序叠置。在移动圆盘时应遵守以下移动规 则: 规则1:每次只能移动1个圆盘; 规则2:任何时刻都不允许将较大的圆盘压在较 小的圆盘之上; 规则3:在满足移动规则1和2的前提下,可将圆 盘移至a,b,c中任一塔座上。
a9=2 a8=(a9+1)*2
天津城市建设学院
作业: 1、运动会开了N天,一共发出金牌M枚。第一天发金 牌1枚加剩下的七分之一枚,第二天发金牌2枚加剩下 的七分之一枚,第3天发金牌3枚加剩下的七分之一枚, 以后每天都照此办理。到了第N天刚好还有金牌N枚, 到此金牌全部发完。编程求N和M。
天津城市建设学院
1)顶层算法
for(i=2;i<=n;i++) { 判断i是否是完数; 是完数则按格式输出;}
2)判断i是否是完数
for(j=2;j<i;j++) 找i的因子,并累加 如果累加值等于i,i是完数
3)进一步细化——判断i是否“完数”算 法
s=1 for(j=2;j<i;j++)
if (i % j=0) s=s+j; if (s==i) i是“完数”;
循环算法如下:
f3(n) {int j,i=0,a[16]; while(n>=10)
{ a[i]=n % 10; i=i+1;
n=n/10;} a[i]=n;
for(j=i;j>=0;j--) cout<<n; }

c#基本训练提高集锦题库97

c#基本训练提高集锦题库97

程序设计基本训练题集1 画个空心的梯形吧编程,输入 n ,输出如下例( n=5 )所示的高和上底均为 n 的等腰空心梯形。

* * * * ** ** ** ** * * * * * * * * * * * *2输入:输入等腰三角形的高h。

输出:等腰三角形。

3 编写程序,输出 1000 以内的所有完数及其因子。

所谓完数是指一个整数的值等于它的因子之和,例如 6 的因子是 1 、 2 、 3 ,而 6=1+2+3 ,故 6 是一个完数。

4 一个马戏团表演, n 个座位全满,全部门票收入是 120 元,现在知道,男人每人5 元,女人每人 2 元,小孩每人 1 角。

编程,输入总人数 n ,输出满足要求的男人、女人和小孩人数的全部方案。

, 若 n 人无法满足条件,则输出 "No output"( 双引号内的部分为输出部分 ) 。

输入:人数 n输出:男人、女人和小孩人数5 黑色星期五在西方,星期五和数字 13 都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。

所以,不管哪个月的 13 日又恰逢星期五就叫“ 黑色星期五” 。

输入某年年号和该年的元旦是星期几( 1-7 ),输出该年所有的“ 黑色星期五” 的日期(年 / 月 / 日)输入: 4 位年号和该年元旦是星期几输出:所有的“ 黑色星期五” 的日期(年 / 月 / 日)6猴子吃桃子有一只猴子,第一天摘了若干个桃子,当即吃了一半,但还觉得不过瘾,就又多吃了一个。

第 2 天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。

以后每天早上都吃了前一天剩下的一半加天数个(例如,第 5 天吃了前一天剩下的一半加 5 个)。

到第 n 天早上再想吃的时候,就只剩下一个桃子了。

输入:天数 n输出:第一天的桃子个数7 若正整数A的全部约数(包括1,不包括A本身)之和等于B ; 且整数B的全部约数(包括1,不包括B本身)之和等于A,则 A 、 B 为亲密数。

2011年计算机二级C语言编写程序题及答案解析精选1

2011年计算机二级C语言编写程序题及答案解析精选1

2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年月息利率=0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

【4.2】输入年份year和月month,求该月有多少天。

判断是否为闰年,可用如下C语言表达式:year%4==0&&year0!=0||year@0==0。

若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。

【4.3】编写一个简单计算器程序,输入格式为:data1op data2。

其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y 轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

C语言程序大全

C语言程序大全

四、编写程序题及参考答案【4.41】从键盘输入十个整数,用插入法对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。

【4.42】输入一个正整数,要求以相反的顺序输出该数。

例如输入12345,输出位54321。

【4.43】编写程序,读入一个整数N;若N为非负数,则计算N到2×N之间的整数和;若N为一个负数,则求2×N到N之间的整数和。

分别利用for和while写出两个程序。

【4.44】求解爱因斯坦数学题。

有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。

请问,这条阶梯共有多少阶?【4.45】一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。

又知这个自然数被17除余4,•所得的商被17除余15,最后得到一个商是a的2倍。

编写程序求这个自然数。

【4.46】编写程序,用二分法求一元二次方程2x3-4x2+3x-6=0在(10,10)区间的根。

【4.47】中国古代科学家祖冲之采用正多边形逼近的割圆法求出了π的值。

请编写一程序,采用割圆法求出π的值,要求精确到小数点之后的第十位。

【4.48】A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。

日上三竿,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。

B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。

C、D、E依次醒来,也按同样的方法拿鱼。

编写程序求出他们合伙至少捕了多少条鱼。

【4.49】一辆卡车违犯交通规则,撞人逃跑。

现场三人目击事件,但都没记住车号,只记下车号的一些特征。

甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。

请根据以上线索求出车号。

计算机二级编程试题

计算机二级编程试题

【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315% 期限一年0.330% 期限二年月息利率= 0.345% 期限三年0.375% 期限五年0.420% 期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

【4.2】输入年份year和月month,求该月有多少天。

判断是否为闰年,可用如下C语言表达式:year%4==0 && year 0!=0 || year@0==0。

若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。

【4.3】编写一个简单计算器程序,输入格式为:data1 op data2。

其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x) 函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

程序设计基础习题

程序设计基础习题

7.8 习题1. 编制一个C程序,从键盘输入一个正整数,如果该数为素数,则输出该素数,否则输出该数的所有因子(除去1与自身)。

2. 编制一个C程序,从键盘输入一个正整数N,然后计算并输出最后计算并输出3. 编制一个C程序,计算并输出多项式的值的值,直到|S n-S n-1|<0.000001 为止。

其中x从键盘输入。

4. 编制一个C程序,计算下列级数和:s n=1+(2/1)+(3/2)+(5/3)+(8/5)+(13/8)+…+(a n/a n-1)其中n≥1,由键盘输入;s1=1。

5. 编制一个C程序,计算并输出下列级数之和:其中n与x6. 编制一个C程序,输出能写成两个数平方之和的所有三位数。

7. 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。

例如,6的因子为1、2、3,且1+2+3=6,即6是一个“完数”。

编制一个C程序,计算并输出1000以内的所有“完数”之和。

8. 编制一个C程序,从键盘输入30个实数,分别计算并输出以下5个量:所有正数之和,所有负数之和,所有数的绝对值之和,正数的个数,负数的个数。

9. 100元钱买100只鸡,母鸡3元/只,公鸡2元/只,小鸡0.5元/只。

编制一个C程序,制定买鸡方案。

10. 设A,B,C,D,E五人,每人额头上贴了一张或黑或白的纸。

五人对坐,每人都可以看到其他人额头上的纸的颜色,但都不知道自己额头上的纸的颜色。

五人相互观察后开始说话:A说:我看见有三人额头上贴的是白纸,一人额头上贴的是黑纸。

B说:我看见其他四人额头上贴的都是黑纸。

C说:我看见有一人额头上贴的是白纸,其他三人额头上贴的是黑纸。

D说:我看见四人额头上贴的都是白纸。

E什么也没说。

现在已知额头上贴黑纸的人说的都是真话,额头上贴白纸的人说的都是假话。

编制一个C程序,确定这五人中谁的额头上贴白纸,谁的额头上贴黑纸?11. 寻找1000以内最小的10个素数与最大的10个素数(去掉重复的素数),计算并输出这20个素数之和。

《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案默认分类2007-09-10 12:38:44 阅读6618 评论13 字号:大中小订阅【习题1】一、简答题(在课本中寻找答案,略)1.1 C程序的基本结构包括哪些内容?1.2 如何定义标识符?1.3 输入格式、输出格式的组成包括哪些内容?1.4 C语言函数分为哪两类?1.5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?二、判断并改错1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

错误:main函数可以放在程序的任何位置。

并不限定在程序的开头。

1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

错误:不可以交叉出现,数据说明部分在执行语句部分的前面。

1.9 编辑与编译不是一回事。

错误:不是一回事。

编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。

1.10 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。

正确1.11 注释内容太多会影响程序的执行效率。

错误:不会影响程序的执行效率。

因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。

1.12 所有的数学公式可以直接出现在源程序中。

错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。

三、编程题1.13 在屏幕上输出自己名字的拼音。

提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。

1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。

提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f1.15 输入两个整数,输出其中最大者。

提示:模仿例1.31.16 输入三个整数,输出其中最小者。

提示: min(min(a,b),c);【习题2】一、简答题(在课本中寻找答案,略)2.1 常量与变量的区别?2.2 C语言中的标识符的定义规则?2.3 变量为什么要“先定义,后使用”?2.4 字符常量'a'与字符串常量"a"有何区别?2.5 大小写字母转换的规则是什么?2.6 变量的具有哪三种属性?二、单项选择题2.7C语言中,int型数据在内存中的存储形式是(D)。

1000以内的完数求解

1000以内的完数求解

1000以内的完数求解一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如6的因子为1、2、3,而6=1+2+3,因此6是“完数”。

编程找出1000以内的所有完数,并按下面格式输出其因子:6its factors are 1,2,3,分析:对于本题来说,只能要依次找出它的因子,就很容易做了,这里可以采用循环的方式,从1开始到n/2就可以了,(设想一下,比方这个数是6,在n/2的范围内就会有1,2,3这三个因子,如果再到4以上去试,它的最小因子i应该从2开始,但是i>n/2,必然会有2*i>n,也就是不会它的因子存在了。

)C语言代码:#include <stdio.h>/**CopyRight@fantasy0707*/#define N 1000 //完数求解范围main(){int i,j,sum; //sum用来存放因子之和for(i=1;i<N;i++) //对1到1000以内的数依次尝试{sum=0; //给sum赋值,同时也是对上一次的值清空for(j=1;j<=i/2;j++) //查找因子{if(i%j==0) // 如果是因子{sum+=j; //把当前的因子累加到sum中}}if(sum==i) //判断是不是完数,即因子之和等于自身{printf("%-5d its factors are: ",i); //是完数,输出for(j=1;j<=i/2;j++) //再次找出这个完数的因子 {if(i%j==0) //输出各个因子printf("%d,",j);}printf("\n");}}}java 代码:public class Test {/*** by: fantasy0707*/public static void main(String[] args) {int i,j,sum; //sum用来存放因子之和for(i=1;i<1000;i++) //对1到1000以内的数依次尝试{sum = 0; //给sum赋值,同时也是对上一次的值清空for(j=1;j<=i/2;j++) //查找因子{if(i%j==0) // 如果是因子{sum+=j; //把当前的因子累加到sum中}}if(sum==i) //判断是不是完数,即因子之和等于自身{System.out.print(i+" its factors are: "); //是完数,输出 for(j=1;j<=i/2;j++) //再次找出这个完数的因子{if(i%j==0) //输出各个因子System.out.print(j+", ");}System.out.println();}}}}程序运行结果:6 its factors are: 1,2,3,28 its factors are: 1,2,4,7,14,496 its factors are: 1,2,4,8,16,31,62,124,248,。

江苏省计算机二级vfp上级考试 程序改错类 共45题附上答案 希望大家好好复习都能过二级

江苏省计算机二级vfp上级考试 程序改错类  共45题附上答案   希望大家好好复习都能过二级

第一套:下列程序是将从键盘上输入的字符(只含数字或字母)按下列规则编成密码后输出:对输入的数字字符用其ASCII码减10;小写字母用该字母的ASCII码前面加星号(*);大写字母用其ASCII码加左右括号,输入其他字符则表示输入结束。

例如,从键盘输入字符串"A12bMc",输出的密码为"(65)3940*108(77)*109"。

要求:(1)将下列程序输入到项目中的程序文件progm中,并对其中的两条错误语句进行修改。

(2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

CLEARcpassword="ckey1="DO WHILE.T.WAIT WIND"请输入字符串……(按[Enter]键结束)"TO ckeyIF BETWEEN(ckey, 0 , 9 )ckey1=ALLT(STR(ASC(ckey)-10))ELSEIF BETWEEN(ASC(ckey),ASC("A"),ASC("Z"))ekey1= ( +ALLT(STR(ASC(ckey)))+ )ELSEIF BETWEEN(ASC(ckey),ASC( a ),ASC( z ))ckey1= * +ALLT(STR(ASC(ckey)+10))ENDIFEXITENDIFENDIFENDIFcpassword=ckey1+cpasswordENDDO?cpassword【答案】(1)第14行改为:ELSE(2)第19行改为:cpassword = cpassword+ckey1【分析】(1)IF语句未结束。

(2)ckey1应接在cpassword后面构成新的cpassword。

第二套:下列程序是将从键盘上输入的字符串(只含数字或字母)按下列规则编成密码后输出:对输入的数字字符用其ASCII码减10;小写字母用该字母的ASCII码前面加星号(*);大写字母用其ASCII码加左右括号,输入其他字符则结束输入。

Python习题选编

Python习题选编

Python习题选编华东师大信息学院计算中心一.程序结构与算法部分:1. 编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。

参考代码:x = int(input("Please enter first integer: "))y = int(input("Please enter second integer: "))if (x == y):print("两数相同!")elif (x > y):print("较大数为:",x)else:print("较大数为:",y);2.写一个算法(流程图和python程序):输入三个数,输出其最大者。

参考代码:a,b,c=3,4,5if a <= b:if c < b:print ("b是最大的数")else:print ("c是最大的数")else:if c < a:print ("a是最大的数")else:print ("c是最大的数")3.使用Python编程,求1~100间所有偶数的和。

参考代码:sum=0for x in range(1,101):if x % 2==0:print(x)sum=sum+xprint("累加和是:",sum)4.用Python编写程序,输入一年份,判断该年份是否是闰年并输出结果。

注:凡符合下面两个条件之一的年份是闰年。

(1)能被4整除但不能被100整除。

(2)能被400整除。

参考代码:year = int(input("Please enter the year: "))if ((year%4==0 and year%100!=0) or (year%400==0)):print(year,"is a leap year.")else:print(year,"is not a leap year.")5.用Python编程,假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?参考代码:cunkuan = 10000 #本金10000元years=0while cunkuan<20000:years+=1cunkuan=cunkuan*(1+0.0325)print(str(years)+"年以后,存款会翻番")6.从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。

C++程序设计及题集(含答案).

C++程序设计及题集(含答案).

本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:(1)考核时间:本学期最后一次上机时间为机试。

(2)考核内容:C++面向过程部分,主要是算法设计与实现。

考题来自本学期布置的作业、部分例题及一些补充的题目。

(3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个班的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。

源程序文件明必须是“学号姓名.cpp”,如“2012211532刘天.cpp”。

(4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。

不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U 盘、磁盘或计算器),不能携带任何类型的通讯工具,包括无线电接收器、移动电话。

(5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。

(6)其它有关事项由主考教师和监考人员负责处理。

附:考试题集1.利用异或运算对输入的文本进行加密解密输出,用户输入一个文本(字符串,设不超过20个字符),然后输入作为密钥的字符,程序输入加密及解密的字符串。

2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。

(提示:对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除次之外都不是闰年)。

3.某大桥按不同型号征收车辆过桥费:自行车免费,摩托车2元,小汽车5元,大客车与货车8元,货柜车12元。

编写一个程序,按车辆的不同型号计算通过该大桥应征的过桥费。

(提示:可以用整数对不同型号的车辆进行编码)4.输入一位同学的考试成绩,若是90~100分,输出“Excellent”,80~89输出“Very good”,70~79输出“Good”,60~69输出“Pass”,60分以下输出“No Pass”。

5.旅行社的订票量小于10张时,航空公司给予10%的折扣;订票量大于或等于10张且小于20张时,航空公司给予15%的折扣;订票量大于或等于20张且小于30张时,航空公司给予30%的折扣;订票量大于或等于30张时,航空公司给予最高的45%的折扣。

《C语言程序设计》编程题库

《C语言程序设计》编程题库

《C语言程序设计》上机考试题库2019年6月一、顺序结构1. 从键盘输入矩形的长和宽,计算并在屏幕上显示该矩形的周长。

2. 输出学生成绩训练:本程序需要输出学生成绩:学生成绩包括学号、姓名以及各科成绩、总分和平均成绩。

首先定义字符型数组存放学生的姓名和学号,再定义多个实型变量用来存放学生各科成绩,最后利用输出变量值的方式来输出各科成绩,直接输出表达式值的方式来输出总分和平均分。

3. 从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出,否则,直接输出。

4.输入一个华氏温度,要求输出摄氏温度。

公式为:c=5/9(F-32)。

输出要有文字说明,取两位小数。

5. 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

6.编写程序,输入两个整数:1500和350,求出它们的商和余数并进行输出。

7.编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a、b、c。

8.输入一个三位正整数,将它反向输出。

(比如输入536,输出635.)9.小瑜是个爱吃糖果的馋鬼,天天嚷着要爸爸买糖果,可是爸爸很忙,哪有时间啊,于是就让小瑜自己去了,糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱?10.给出三个整数(键盘输入),请你设计一个程序,求出这三个数的和、乘积和平均数。

输出一行,包括三个的和、乘积、平均数。

数据之间用一个空格隔开,其中平均数保留小数后面两位。

11.从键盘上输入圆柱体的底面半径r和高h,计算圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积。

其中圆周率定义为3.1415926。

12.编写一程序,读入一数字字符('0'~'9'), 并把其转换为相应的整数后显示出来。

13.根据输入的三角形的三条边a、b、c,计算并输出面积。

三角形面积计算公式:area=√s(s−a)(s−b)(s−c),其中s=(a+b+c)/2。

c语言编程题解答

c语言编程题解答

六、编程题参考答案1.编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。

#include "stdio.h"#define N 50void main(){ float x; unsigned int s1,s2,s3,i;s1=s2=s3=0;for(i=1;i<=N;i++) {scanf("%f",&x);if(x<0) s1++; else if(x==0) s2++; else s3++;}printf("负数%u个,零%u个,正数%u个\n",s1,s2,s3);}2. 编程,计算并输出方程 X2+Y2=1989 的所有整数解。

#include "stdio.h"void main(){ int x,y;for(x=-45;x<=45;x++) {y=-45;while(y<=45) {if(x*x+y*y==1989)printf("%d*%d+%d*%d=%d\n",x,x,y,y,1989); y++;}}}3.编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制数。

#include "stdio.h"void main(){ unsigned int x;printf("请输入一个十进制正整数:");scanf("%u",&x);printf("%d=八进制数 %o=十六进制数%x\n",x,x,x);}4.编程,找出1000以内的所有完数,并输出其因子。

#include "stdio.h"void main(){ int i,j,s=1;for(i=1;i<=1000;i++,s=1) {for(j=2;j<=i/2;j++) if(i%j==0) s+=j; // 求 i的因子和if(s==i) {printf("%d=1",i); // 如果i 是完数则输出其各因子for(j=2;j<=i/2;j++)if(i%j==0) printf("+%d",j);printf("\n");}}}5. 输入一个正整数,输出它的所有质数因子。

C语言打印出1000以内完数及其因子算法

C语言打印出1000以内完数及其因子算法

{ printf( "%d ", j ); } } printf( "\n" ); } } return 0; } /* VC++6.0 输出的结果是 ================================================= 完数是:6,它的因子是:1 2 3 完数是:28,它的因子是:1 2 4 7 14 完数是:496,它的因子是:1 2 4 8 16 31 62 124 248 ================================================= */ 这个方法在理解起来是最简单的, 但是时间复杂度比较高, 考试的话没有什么问题的哦。
题目要求: 编写程序,输出 1000 以内的所有完数及其因子。所谓完数是指一个整数的值等于它的 因子之和,例如 6 的因子是 1,2,3,而 6=1+2+3,故 6 是一个完数。 /* 求出 1000 以内的所有完数以及它的因子 */ # include <stdio.h> int main( void ) { int i, j, sum; /* 第一个循环,检查从 1 到 1000 中的每一个数字是不是完数 如果是完数,输出完数和它所有的因子 */ for( i = 1; i <= 1000; ++i ) { /* 检查该数字是否是完数 方法:从 1 到 i-1,依次取余,余数为 0,说明是它的公约数, 累加公约数,最后的值如果等于 i,这说明 i 就是完数。 */ sum = 0; for( j = 1; j < i; ++j ) { if( i%j == 0 ) { sum += j; } } if( sum == i ) { printf( "完
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

问题:输出1000以内所有的完数,并输出其所有的因子。

完数的定义如下:一个数的所有因子(除其自身)之和恰好等于其自身。

分析:问题的关键为求解一个数的所有因子,并求其和。

假设当前的数m,计算其因子的过程,为遍历从1到 m-1所有的数,并判定是否可以整除m。

数据要求
问题中的常量:
#define N 1000 /*完数求解范围*/
问题的输入:

问题的输出:
int i /*当前完数*/
int j /*当前完数的因子*/
初始算法
1.因子和初始化为0
2.遍历当前整数的因子并计算因子和
3.判断是否完数
4.输出完数及其因子
算法细化
步骤2遍历当前整数的因子并计算因子和的细化:
计算整数m所有因子之和的过程如下:
sum=0;
for(j=1;j<m;j++)
{
if(m%j==0) /*j为m 的因子*/
sum=sum+j;
}
又根据一个数除本身以外的所有因数都小于或等于这个数的一半,可以对上述循环进一步处理,减少循环次数。

sum=0;
for(j=1;j<=m/2;j++)
{
if(m%j==0) /*j为m 的因子*/
sum=sum+j;
}
流程图
程序代码如下:
#include "stdio.h"
#include "math.h"
#define N 1000 /*完数求解范围*/
void main()
{
unsigned int i,j,sum;
for(i=1;i<N;i++)
{
sum=0;
for(j=1;j<=i/2;j++)
{
if(i%j==0)
sum=sum+j;
}
if(sum==i)
{
printf("\n%5d\n",i);
for(j=1;j<=i/2;j++)
{
if(i%j==0)
printf("%5d",j);
}
}
}
}
程序运行结果如下:
6
1 2 3
28
1 2 4 7 14
496
1 2 4 8 16 31 62 124 248。

相关文档
最新文档