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

合集下载

编程题——精选推荐

编程题——精选推荐

编程题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.编⼀个程序,打⼊⽉份号,输出该⽉的英⽂⽉名,要求⽤指针数组处理。

2021年大连东软期末C语言考试题库总结

2021年大连东软期末C语言考试题库总结

C语言编程练习题1.从键盘上输入两个整型数据a和b值, 计算它们加、减、乘、除成果, 并将成果输出在屏幕上。

2.从键盘上输入两个float类型数据a和b值, 计算它们加、减、乘、除成果, 并将成果输出在屏幕上。

3.从键盘上输入两个double类型数据a和b值, 计算它们加、减、乘、除成果, 并将成果输出在屏幕上。

4.从键盘上输入两个字符型数据a和b值, 将它们输出在屏幕上。

5.定义两个整型变量分别表达长方形长和宽, 从键盘上输入长和宽值, 将这两个值显示在屏幕上, 并将长方形面积和周长也显示在屏幕上。

6.定义一种浮点型变量表达圆半径, 从键盘上输入该半径值, 计算出圆面积并输出在屏幕上。

7.求任意半径球体积。

球体积计算公式为: v=8.49.310.π11.r12.313.。

定义一种浮点型变量表达一种人身高(以厘米为单位), 计算并输出其黄金分割点位置在哪?从键盘输入三角形三边长a、b、c(假定输入保证了它们能构成三角形), 用公式求该三角形面积。

求三角形面积公式:area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s=(a+b+c)/2。

用“*”符号在屏幕上输出一种“∟”形形状。

显示形状类似下图:******** * * * * * * * * *用“*”符号在屏幕上输出一种“∠”形形状。

显示形状类似下图:******** * * * * * * * *用“*”符号在屏幕上输出一种“△”形形状。

显示形状类似下图:** ** ** ** ** ** ** * * * * * * * * * * * * * * * * *14.从键盘上输入一种秒数, 将其转换成相应小时数、分钟数和秒数。

例如, 输入5000, 则输出应为“1小时23分钟20秒”。

15.从键盘上输入一种天数, 将其转换成相应年数、月数和天数(假设每年均为360天, 每月均为30天)。

例如: 输入1000, 则输出应为“2年9个月10天”。

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 为亲密数。

C语言寒假编程题

C语言寒假编程题

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

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

其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。

【4.20】编写程序,输出如图所示高度为n的图形。

【4.21】编写程序,输出如图所示高度为n的图形。

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

【4.23】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。

1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9图4.19 n=5时的螺旋方阵【4.24】输入n值,输出如图所示回型方阵。

【4.25】输出如图所示的数字金字塔【4.26】输入n值,输出如图所示图形。

【4.27】输入顶行字符和图形的高,输出如图所示图形。

【4.28】输入首字符和高后,输出如图所示回型方阵。

A A A A AA B B B AA B C B AA B B B AA A A A A图 4.24 首字符为'A'、高为5的方阵【4.29】输入中心字符和高后,输出如图所示回型方阵。

X X X X XX Y Y Y XX Y Z Y XX Y Y Y YX X X X X图4.25 中心字符为'Z'、高为5的方阵【4.30】编写程序,输出如图所示上三角形式的乘法九九表。

【4.31】编写程序,输出如图所示下三角乘法九九表。

【4.32】编写程序,输入三角型的三条边长,求其面积。

注意:对于不合理的边长输入要输出数据错误的提示信息。

【4.33】编写程序求出555555的约数中最大的三位数是多少。

【4.34】编写程序计算下列算式的值:直到某一项A<=0.000001时为止。

C++上机考试复习题

C++上机考试复习题

2.编写程序,判断某整数是否为素数。
3.编写一个函数,求出数组中最大元素的下标。
4.假设对整型数组 a、b、t 已按下述方式进行了说明并对 a 赋了初值:
int a[8]={2, 33, -6, 5, -82, 30, 99, 21}, b[8], t[8][8];
编程序实现:
ave=13.25
n=4
y= 23 55 -6 0 -12
具有如下原型: void ChgXTo10 (int n, int x);并编写主函数对它进行调用来验证其正确性。
2.编程求解母牛问题。若一头母牛,从出生起第四个年头开始每年生一头母牛,按这规律,第n年时有多少头母牛?
n为用户在运行时指定的数值。
3.输入任意二维数组,找出鞍点,即该位置的元素在该行上最大,在该列上最小(也可能没有鞍点)。
例如,输入2038,输出应为:n + x = 2038 + 8302 = 10340。
4.对于一个二维数组,分别求各行、各列及所有元素之和。
三、第三类题目(共3道,选做其中的1道,每题8分,共8分)
1. 一球从100m落下,每次落地后反跳回原高度的一半,再落下。编程求它在第10次落地时,共经过多少m?第10次反弹多高?
4. 求方程 的根,用三个函数分别求当 、 和 的根,并输出结果。从主函数输入系数。
5. 求4×4矩阵中每一行元素的最小值并输出。
二、第二类题目(共4道,选做其中的2道,每题7分,共14分)
1. 实现用户输入的三个整数的排序。
2.采用循环结构完成1至100之间的偶数相加。
3.编写一个函数,要求键盘输入正整数n,求出n 与其反序数x 之和并输出。

C语言机考习题(参考答案)

C语言机考习题(参考答案)

2010-2011学年第一学期程序设计基础机试题库一、选择结构程序设计部分1.从键盘接收两个整数,屏幕输出其中较大的一个。

#include<stdio.h>void main(){int a,b;scanf("%d%d",&a,&b);if(a>b) printf("大数是:%d\n",a);else printf("大数是:%d\n",a);}2.从键盘接收三个整数,屏幕输出最大的一个。

#include<stdio.h>void main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf("大数是:%d\n",max);}3.从键盘接收一个字母,如果接收的是‘y’或者‘Y’,则输出“正确”。

否则输出“错误”#include<stdio.h>void main(){char a;scanf("%c",&a); /*a=getchar();这句这么写也可以*/if(a=='Y'||a=='y') printf("正确\n");else printf("错误\n");}4.从键盘上接收一个十进制整数,转换成二进制输出。

#include<stdio.h>void main(){int x,a[32],i=0;printf("请输入一个十进制整数.\n");scanf("%d",&x);while(x!=0){a[i++]=x%2;x=x/2;}for(i--;i>=0;i--)printf("%d",a[i]);printf("\n");}5.从键盘上接收一个十进制整数,转换成八进制输出。

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的迭加图形。

循环实验带答案

循环实验带答案

实验标题:循环实验1 完善程序A_计算s=1+1/2+1/3+…+1/n的值实验内容和要求:【程序功能】从键盘输入正整数n,计算1+1/2+1/3+…+1/n并存放到考生文件夹中,删除扩展名为dsp、ncb、dsw、plg、opt、obj和exe等文件。

main(){int i,n;float sum=0;printf("please input n: ");scanf("%d",&n);for(i=1; i<=n ;i++)sum=sum+ 1.0/n ;printf("n=%d,sum= %.2f ",n,sum);system("pause");}实验标题:循环实验2 完善程序A_输出九九乘法表实验内容和要求:【程序功能】输出如下格式的九九乘法表1 12 2 43 3 6 94 4 8 12 165 5 10 15 20 256 6 12 18 24 30 367 7 14 21 28 35 42 498 8 16 24 32 40 48 56 649 9 18 27 36 45 54 63 72 811 2 3 4 5 6 7 8 9 【要求】最左边一列为行序号,最下面一行为列序号,其它数据为对应行序号与列序号的乘积。

将源程序保存为文件xh2.c,并存放到考生文件夹中,删除扩展名为dsp、ncb、dsw、plg、opt、obj和exe等文件。

main (){int i, j;for (i = 1; i <=9; i++) /*对列进行循环*/{printf ("%-3d", i); /*输出列的序号*/for (j = 1; j<=i ; j++) /*输出三角形乘法表*/printf ("%-3d", i*j );printf ("\n");}printf (" ");for (i = 1; i <=9; i++) /*输出最下面一行的列序号*/printf ("%3d",i);system("pause");}实验标题:循环实验3 完善程序B_输出m到n之间的素数并统计素数个数实验内容和要求:【程序功能】从键盘输入正整数m和n,显示m到n之间的所有素数。

C语言编程题与答案解析

C语言编程题与答案解析
}
9.(*)试编程:判断输入的正整数是否既是 5,又是 7 的整数倍 数。若是则输出 yes;否 则输出 no。
10.(*)已有函数调用语句 c=add(a,b);请编写 aad 函数,计算两 个实数 a 和 b 的和,并返回和值。
11.(*)有人想将手中一张面值 100 元的人民币换成 5 元、1 元、 0.5 元面值的零钱 100 张,以上三种面值的零钱至少有一张,问共有几
12.(*)求 Sn=a+aa+aaa+aaaa+aaaaa 的前 5 项之和,其中 a 是一个
数字,例如:
2+22+222+2222+22222
程序 1:main()
{int i, a,n;
long sum=0, b=1,c=1;
scanf("%d,%d",&a,&n);
for(i=1;i<=n;i++) {sum+=a*c;
} 14.(*)用近似1 公式1 求自然对数的底 e 的值。
e≈12+!1!+3! + +…… #include"math.h" main() {float i,j,e,p=1.0,sum=0.0; for(i=1;i<10 ;i++)
{for(j=1;j<=i;j++) p=p*j;
sum=sum+1.0/p; p=1.0;} e=i+sum; printf("%f\n",e); } 15.(*)请编程,用 scanf()函数输入三个字符,对这三个字符各 加一个整数 1 后,用 putchar()函数输出,且每输出一个字符换一行。 16.(*)请编程,用 scanf()函数输入三个整数,输出其中不大不 小的那个数,输出宽度为五位。 int findmid(int i,int j,int k) {int n;

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,。

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

输出1000以内所有的完数和其所有的因子
问题中的常量:
#define N 1000/*完数求解范围*/
问题的输入:

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

江苏省计算机二级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码加左右括号,输入其他字符则结束输入。

完全数计算公式范文

完全数计算公式范文

完全数计算公式范文完全数是指一个数恰好等于它的因子之和。

举例来说,6的因子为1、2、3,而1+2+3=6,因此6是一个完全数。

完全数是数论中的经典问题之一,自古以来就受到人们的广泛关注和研究。

为了计算完全数,我们可以采用暴力的方法。

具体操作如下:1.首先,我们需要确定待计算的完全数的范围。

假设我们要计算1到N之间的所有完全数。

2.对于每一个数x,我们需要找到它的所有因子。

通常情况下,一个数的因子是从1到该数本身的所有整数,并且这些因子中不能包含大于x/2的数。

3.对于每一个数x,我们需要计算它的因子之和。

这可以通过一个循环遍历x的所有因子,并将它们累加起来的方式实现。

4.接下来,我们需要判断因子之和是否等于x本身。

如果相等,则x是一个完全数,如果不相等,则x不是一个完全数。

5.最后,我们将所有的完全数打印输出。

下面是一个示例的Python代码实现:```pythondef find_perfect_numbers(N):perfect_numbers = []for x in range(1, N+1):factors = []for i in range(1, x//2+1):if x % i == 0:factors.append(i)factor_sum = sum(factors)if factor_sum == x:perfect_numbers.append(x)return perfect_numbersN = int(input("请输入计算范围N:"))perfect_numbers = find_perfect_numbers(N)print("找到的完全数有:")for number in perfect_numbers:print(number, end=" ")```这段代码首先定义了一个函数find_perfect_numbers,它接受一个参数N,表示计算范围的上限。

c语言程序设计第五版课后答案谭浩强第五章课后答案

c语言程序设计第五版课后答案谭浩强第五章课后答案

c语⾔程序设计第五版课后答案谭浩强第五章课后答案c语⾔程序设计第五版课后答案谭浩强1.请画出例5.6中给出的3个程序段的流程图流程图1:流程图2:流程图3:2.请补充例5. 7程序,分别统计当“fabs(t)>= le- 6”和“fabs(t)> = le- 8”时执⾏循环体的次数。

fabs(t)>= le- 6 ,⽰例代码# include <stdio.h># include <math.h>int main(){int sign = 1;double pi = 0.0, term = 1.0;int n = 0;while (fabs(term) >= 1e-6){n++;term = 1.0 / (2 * n - 1)*sign;pi += term;sign = -sign;}pi *= 4;printf("pi的近似值是%lf\n", pi);printf("循环体循环了%d次\n", n);return 0;}运⾏截图:fabs(t)> = le- 8,⽰例代码# include <stdio.h># include <math.h>int main(){int sign = 1;double pi = 0.0, term = 1.0;int n = 0;while (fabs(term) >= 1e-8){n++;term = 1.0 / (2 * n - 1)*sign;pi += term;sign = -sign;}pi *= 4;printf("pi的近似值是%lf\n", pi);printf("循环体循环了%d次\n", n);return 0;}运⾏截图:3.输⼈两个正整数m和n,求其最⼤公约数和最⼩公倍数答案解析:该题题⽬直接使⽤“辗转相除法”来求解最⼤公约数,以除数和余数反复做除法运算,当余数为 0 时,就取得当前算式除数为最⼤公约数。

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语言程序设计》复习题库(1)

《C语言程序设计》复习题库(1)

复习题库
当n=5时
93.有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它
插入到数组中。

94.将一个数组中的值按逆序重新存放。

例如,原来顺序为8,6,5,4,1。

要求
改为1,4,5,6,8
95.编程先输入某班10个学生某门课的成绩(成绩均为float型数据),
对全班10个学生成绩进行由高到低排序,并打印输出排序结果。

96.从键盘任意输入某班10个学生的成绩,输出最高分并统计出不及格
人数。

97.写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的
信息
98.编写函数实现两个整型变量值的交换。

99.用递归调用的方法求n!,要求n由用户输入。

100.从键盘任意输入10个整数并放入一个数组,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。

101.写一个函数,使给定的一个3X3的二维整形数组转置,即行列互换102.写一个函数,将两个字符串连接
103.写一个函数,使输入的一个字符串按反序存放。

104.输入两个实数,用一个函数求出它们之和。

105.有一个一维数组score,内放10个学生成绩,写一个函数求平均成绩。

106.输出所得水仙花数,所谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*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( "完

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. 输入一个正整数,输出它的所有质数因子。

编程序找出1000之内的所有完数,并按下面格式输出其因子

编程序找出1000之内的所有完数,并按下面格式输出其因子

编程序找出1000之内的所有完数,并按下⾯格式输出其因⼦编程序找出1000之内的所有完数,并按下⾯格式输出其因⼦:6 its factors are 1,2,3答案解析:因⼦:整数a除以整数b(b≠0) 的商正好是整数⽽没有余数,我们就说b是a的因⼦。

整数n除以m,结果是⽆余数的整数,那么我们称m就是n的因⼦。

需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成⽴。

因⼦是不包括⾃⾝的举⼀个例⼦:20 = 4 * 5,则4和5就是20的因⼦,也被称之为因⼦代码⽰例:#include<stdio.h>int main(){int data, fator, sum; /* data表⽰要判断的数,fator表⽰因⼦,sum表⽰因⼦之和*/for (data = 2; data <= 1000; data++){//1是所有整数的因⼦,所以因⼦之和从1开始sum = 1;for (fator = 2; fator <= data / 2; fator++){/* 判断data能否被fator整除,能的话fator即为因⼦因⼦不包括⾃⾝ */if (data % fator == 0){sum += fator;}}// 判断此数是否等于因⼦之和 */if (sum == data){printf("%d its factors are 1, ", data);for (fator = 2; fator <= data / 2; fator++){if (data % fator == 0){printf("%d, ", fator);}}printf("\n");}}return 0;}运⾏截图:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#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;
问题:输出1000以内所有的完数,并输出其所有的因子。完数的定义如下:一个数的所有因子(除其自身)之和恰好等于其自身。
分析:问题的关键为求解一个数的所有因子,并求其和。假设当前的数m,计算其因子的过程,为遍历从1到 m-1所有的数,并判定是否可以整除m。
数据要求
问题中的常量:
#define N 1000/*完数求解范围*/
问题的输入:

问题的输出:
inti/*当前完数*/
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;
}
流程图
程序代码如下:
}
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
相关文档
最新文档