1000以内的完数求解

合集下载

一、题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔

一、题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔
程序源代码:
#include "stdio.h"
main()
{char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
shi=x%100/10;
ge=x%10;
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
}while(fabs(pre-this)>Epsilon);/*用解的精度,控制循环次数*/?
}?
printf("the root is %f",this);?
}
用牛顿迭代法求方程2*x*x*x-4*x*x+3*x-6的根
/*牛顿迭代法*/
#define Epsilon 1.0E-6 /*控制解的精度*/
成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正
整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
程序源代码:
/* zheng int is divided yinshu*/
为多少?

2.7循环总结(带答案)

2.7循环总结(带答案)

字符串操作问题:1.统计出字符串中字符“a”出现的次数Private Sub Form_Click()Dim s$, i%, n%s = InputBox("请输入一串字符串")n = 0For i = 1 To Len(s)If Mid(s, i, 1) = "a" Thenn = n + 1End IfNext iPrint nEnd Sub2.统计出所有小写字母出现的次数Private Sub Form_Click()Dim s$, i%, n%s = InputBox("请输入一串字符串")n = 0For i = 1 To Len(s)If Mid(s, i, 1) >= "a" And Mid(s, i, 1) <= "z" Then n = n + 1End IfNext iPrint nEnd Sub3.统计出所有大写字母出现的次数Private Sub Form_Click()Dim s$, i%, n%s = InputBox("请输入一串字符串")n = 0For i = 1 To Len(s)If Mid(s, i, 1) >= "A" And Mid(s, i, 1) <= "Z" Then n = n + 1End IfNext iPrint nEnd Sub4.将字符串的字符顺序倒置Private Sub Form_Click()Dim s$, i%, c$s = InputBox("请输入一串字符串")c = ""For i = Len(s) To 1 Step -1c = c & Mid(s, i, 1)Next iPrint cEnd Sub猴子摘桃问题:1.小猴摘了若干个桃,第一天吃掉一半多一个,第二天接着吃了剩余的一半多一个,以后每天都吃尚存的桃的一半多一个,到第七天要吃时只剩下1个了。

C语言程序设计经典100例(全)

C语言程序设计经典100例(全)

103f程序1】【题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序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,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

c程序设计第三版习题参考解答(全)

c程序设计第三版习题参考解答(全)

C程序设计(第三版)课后习题参考解答第1章 C语言概述1.5 参照本章例题,编写一个C程序,输出以下信息:******************************Very Good!******************************解:main ( ){printf(“****************************** \n”);printf(“\n”);printf(“ Very Good! \n”);printf(“\n”);printf(“****************************** \n”);}1.6 写一个程序,输入a,b,c三个值,输出其中最大者。

解:main ( ){int a,b,c,max;printf(“请输入三个数a,b,c: \n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf(“最大数为:%d ”,max);}第2章程序的灵魂——算法2.1 什么叫结构化的算法?为什么要提倡结构化的算法?解:由一些基本结构顺序组成的算法称为结构化的算法。

由于在基本结构之间不存在非顺序的跳转,流程的转移只存在于一个基本结构范围之内,因而提高了算法的质量。

2.7 什么叫结构化程序设计?它的主要内容是什么?解:结构化程序就是用高级语言表示的结构化算法。

它的主要内容包括“自顶向下,逐步细化”的分析方法和“模块化设计”的解决方法,以及“结构化编码”的实现方法。

第3章数据类型、运算符与表达式3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。

注:如果没有学过二进制和补码,此题可以不做。

解:各数据在内存中的存储形式如下表所示:变量的类型25 -2 32769int型00 (000011001)8 位111111111111111015100 … 001(溢出)14long型00 (000011001)24 11 (1110)3100... 0100 (001)16 14short型100 (000011001)8 111111111111111015100 … 001(溢出)14signed char(8位)100011001 11111110 00000001(溢出)unsigned int型00 (000011001)8 11 (110)15100 (001)14unsigned long型00 (000011001)24 11 (110)3100... 0100 (001)16 14unsigned short型00 (000011001)8 11 (110)15100 (001)8unsigned char型00011001 11111110 00000001其中int和short类型,其取值范围是-32768~32767。

VFP程序设计复习题

VFP程序设计复习题

VFP程序设计复习题一.选择题1、在有关数据库的概念中,若干记录的集合称为 ( D )。

A.文件B.字段C.数据项D.表2、要计算职称为副教授或教授的工资总额,下列命令中错误的是 ( D)。

A.SUM 工资 FOR 职称="副教授".OR.职称="教授"B.SUM ALL 工资 FOR 职称="副教授".OR.职称="教授"C.SUM 工资 FOR "教授"$职称D.SUM 工资 FOR 职称="副教授".AND.职称="教授"3、不允许记录中出现重复索引值的索引是 ( C )。

A.主索引B.主索引、候选索引、普通索引C.主索引和候选索引D.主索引、候选索引和唯一索引4、在Visual FoxPro中,打开数据库的命令是 ( A )。

A.OPEN DATABASE <数据库名>E <数据库名>E DATABASE <数据库名>D.OPEN <数据库名>5、连续执行以下命令之后,最后一条命令的输出结果是 ( C )。

SET EXACT OFF X="A " ?IIF("A"=X,X-"BCD",X+"BCD")A.AB.BCDC.A BCDD.ABCD6、在以下四组函数运算中,结果相同的是 ( A )。

A.LEFT("Visual FoxPro",6)与SUBSTR("Visual FoxPro",1,6)B.YEAR(DATE())与SUBSTR(DTOC(DATE()),7,2)C.VARTYPE("36-5*4")与VARTYPE(36-5*4)D.假定A="this ", B="is a string", A-B与A+B7、在Visual Foxpro中,用于建立或修改过程文件的命令是 ( B)。

test 1

test 1

1. 编写Hello.java程序并运行。

public class Hello {public static void main(String args[]){System.out.println("Hello java!!!");}}2. 用Java语言编写一个应用程序在屏幕上输出1000之内的素数。

public class Testprime {public static void main(String args[]){int i,j,k;for( i=1;i<=1000;i++){k=0;for( j=2;j<=Math.sqrt(i);j++){ if(i%j==0){k=1;break;}}if(k==0)System.out.println(i + " is a prime");}}}3. 一个数如果恰好等于它的因子之和,这个数就称为“完数”,比如28=1+2+4+7+14。

编写一个应用程序在屏幕上输出1000之内的完数。

public class Testprime {public static void main(String args[]){int i,j;for(i=1;i<=1000;i++){int s;s=0;for(j=1;j<i;j++){if(i%j==0){s+=j;}}if(s==i)System.out.println(" "+i);}}}4. 求满足1!+2!+3!+ …+n!≤9999的最大整数n 。

public class Testor {public static void main(final String[] args) {int f(int n){int i=0;int z=1;for(i=1;i<=n;i++)z=z*i;return z;}int F(){int i =0;int sum =0;for(i=1;i<=n;i++){sum=sum+f(i);if(sum>9999)break;}return i-1;System.out .println(i-1);}}5. 一个三位的整数如果它的各位数字的立方之和等于这个三位数,就称此数为水仙花数,比如 333173371++=,编写一个应用程序在屏幕上输出所有水仙花数。

程序设计题

程序设计题
12. 若某整数平方等于某两个正整数平方之和的正整数称为弦数。例如:由于32+42=52,则5为弦数,求[100,200]之间弦数的数目 =11
13. 设有6个十进制数字a,b,c,d,f,e,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。 =2
14. 设某四位数的各位数字的平方和等于100,问共有多少个这种四位数?=49
59.已知S1=1, S2=1+2, S3=1+2+4, S4=1+2+4+8,S5=1+2+4+8+16,…,编制一个程序求S=S1+S2+S3+S4+S5+…+S20的值。=2097130
60.某些分数的分子和分母都是二位正整数的真分数具有下列特点:如果将该分数的分子的两位数字相加作分子,而将该分数的分母的两位数字相加作分母,得到的新分子跟原分子相等。例如,63/84=(6+3)/(8+4)。试求所有具有这样特点的真分子(非约简真分数)的分母之和。 =6756
40.50元兑换成5元、2元和1元的计算方法有多少种。=146
41. 若(x,y,z)满足方程:x^2+y^2+z^2=55^2(注:要求 x > y > z),则(x,y,z)称为方程的一个解。试求方程的所有整数解中x+y+z的最大值。=91
42.编写程序,求共有几组i,j,k符合算式ijk+kji=1534,其中i,j,k是[0,9]之间的一个整数。=2
51.当m的值为50时,计算下列公式之值:t=1-1/(2*2)-1/(3*3)-…-1/(m*m)

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

循环练习题(二)及答案

循环练习题(二)及答案

一、选择题1、以下程序段的输出结果是( D )int k, j, s=0;for(k=2;k<6;k++,k++){s = 1;for(j=k;j<6;j++)s+=j;}System.out.print(s);A)9 B)1 C)11 D)102、以下程序段的输出是( C )int i, j, m=0;for(i=1;i<=15;i+=4){for(j=3;j<=19;j+=4)m++;}System.out.print(m);A)12 B)15 C)20 D)253、以下程序段的输出是( A )int i,sum=0;for(i=1;i<6;i++)sum+=i;System.out.print(sum);A)15 B)14 C)不确定D)04、以下程序段的输出是( D )int x=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}System.out.print(“x=”+x+”,y=”+y+”,a=”+a);A)x=4,y=4,a=1 B)x=5,y=5,a=1 C)x=5,y=1,a=3 D)x=5,y=4,a=15、定义如下变量:int n = 10 ;则下列循环的输出结果是( B )while(n>7){n-- ;System.out.println(n) ;}A)10 B)9 C)10 D)99 8 9 88 7 8 77 66、以下程序段的输出是( C )int x=3;do{System.out.print(x-=2);}while(--x==0)A)1 B)3 0 C)1 -2 D)死循环7、以下程序段的输出是( B )int a,b;for(a=1,b=1;a<100;a++){if(b>=20) break;if(b%3==1){b+=3;continue;}b-=5;}System.out.print(a);A)7 B)8 C)9 D)108、以下程序段的输出是( C )int num=0;while(num<=2){num++;System.out.print(num);}A)1 B)2 2 C)1 2 3 D)1 2 3 49、以下循环体的执行次数是( C )int i,j ;for(i=0,j=1 ;i<=j+1 ;i+=2,j--)System.out.print(i) ;A)3 B)2 C)1 D)010、设j为int型变量,则下面for循环语句的执行结果是( B )for(j=10 ;j>3 ;j--){if(j%3 !=0)j-- ;--j ;--j ;System.out.print(j) ;}A)6 3 B)7 4 C)6 2 D)7 311、在循环for,while,do-while语句中,用于直接中断内层循环的语句是( C )A)switch B)continue C)break D)if二、填空题1、以下程序段的输出结果是_1024___int k, n, m;n = 10;m = 1;k = 1;while(k<=n){m = m*2;k++;}System.out.print(m);2、以下程序段的输出结果是_10___int x=2;while(x--!=0){System.out.print(x);}3、在循环中,continue语句与break语句的区别是:_continue语句是跳出本次循环,进入下一次循环;break语句是终止某个循环,程序跳转到循环块外的下一条语句。

C++编程基础题训练答案

C++编程基础题训练答案

.1、输入3个数,求最大数。

#include <iostream>using namespace std;int main(){int a,b,c,max;cout<<"请输入三个数字:"<<endl;cin>>a>>b>>c;max=(a>b)?a:b;if(c>max)max=c;cout<<"最大值:"<<max<<endl;return 0;}2、韩信点兵:有一个数,用3除余2;用5除余3;用7除余2;求满足条件的最小数。

#include <iostream>using namespace std;int main(){int a;for(a=1;a<1000;a++){if(a%3==2&&a%5==3&&a%7==2){cout<<a;break;}}return 0;}3、求1+2+3+…+100#include <iostream>using namespace std;int main(){int s=0;int a=1;do{.s=s+a;a=a++;}while(a<101);cout<<s<<endl;return 0;}4、求1-2+3-4+…-100#include <iostream>using namespace std;int main(){int a,s=0,s1=0,s2=0;for(a=1;a<101;a++,a++){s1+=a;}for(a=-2;a>-101;a=a-2){s2=s2+a;}s=s1+s2;cout<<s<<endl;return 0;}5、求1+1/2+1/3+…+1/100#include <iostream>using namespace std;void main(){float a,m;float s=0;for(a=1;a<101;a++){m=1/a;s=s+m;}cout<<"s="<<s<<endl;}6、求输入n,求n!(需判断n的合法性)递归调用#include <iostream>using namespace std;int fac(int n){if(n==0)return 1;elsereturn fac(n-1)*n;}int main(){while(1){int x,y,n;cout<<"输入一个整数:\n";cin>>x;fac(x);cout<<fac(x)<<endl;break;}return 0;}7、求1!+2!+3!+ (10)#include <iostream>using namespace std;int main(){int s=0;int t=1;int n;for(n=1;n<11;n++){t=t*n;s=s+t;}cout<<"1!+2!+3!+...+10!="<<s<<endl;return 0;}8、求1+1/2!+1/3!+…1/n!,直到1/n!<1E-5为止第一种方法:#include <iostream>using namespace std;void main(){double s=0;double t=1;double n=1;do{t=t*n;s=s+1/t;n++;}while (t<1e5);cout<<"1/1!+1/2!+1/3!+...+1/n!="<<s<<endl;}第二种方法:#include <iostream>using namespace std;void main(){double sum=0.0; //结果double now=1.0; //现在的1/n!double cnt=2.0; //现在的nwhile(now>=1e-5){sum+=now;now/=cnt;cnt+=1.0;}cout<<sum<<endl;}9、用公式求ex=1+x+x2/2!+x3/3!+…+xn/n!。

c语言循环例题

c语言循环例题

c 语言循环例题1.抓交通肇事犯。

一辆卡车违反交通规则,撞人后逃逸。

现场有三位目击者,但都没记住车号,只记下车号的一些特征。

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

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

2.假设银行一年整存零取的月息为0.63%。

现在某人手中有一笔钱,他打算在今后的一年中每年的年底取出1000 元,到第五年时刚好取完,请算出他存钱时应存入多少。

3.日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将2520个桔子分给六个儿子。

分完后,父亲说: “老大将分给你的桔子了1/8 给老二; 老二拿到后,连同原先的桔子分1/7 给老三; 老三拿到后,连同原先的桔子分1/6 给老四;老四拿到后,连同原先的桔子分1/5 给老五; 老五拿到后,连同原先的桔子分1/4 给老六; 老六拿到后,连同原先的桔子分1/3 给老大”。

结果大家手中的桔子正好一样多。

问六兄弟原来手中各有多少桔子。

4.个位数为6,且能被3整除的五位数共有多少个,分别把它们输出在屏幕上。

5.8 除不尽的自然数。

一个自然数被8除余1,所得商被8除也余1,再将第二次的商被8除后余7,最后得到的一个商为a。

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

求这个自然数。

6.4位反序数。

设N是一个四位数,它的9倍恰好是其反序数,求N7.完全数。

如果一个数恰好等于它的因子之和,则称该数为完全数。

如:6 的因子是1、2、3,而6=1+2+3,则 6 是个“完全数”。

试求出1000 以内的全部“完全数”。

8.亲密数。

如果整数A的全部因子(包括1但不包括A本身)之和等于B,且整数B的全部因子(包括1,但不包括A本身)之和等于A,则将整数A和B称为亲密数。

求3000 以内的全部亲密数。

9.求任意两个正整数的最大公约数和最小公倍数。

10.新娘和新郎。

循环编程练习(带答案)

循环编程练习(带答案)

循环编程练习1、求100211001+++=∑= n n 的值。

解(while 循环): #include<stdio.h> int main() { int i,s; i=1; s=0;while(i<=100) { s=s+i; i++;}printf("s=%d\n",s);return 0;}另解(do while 循环): #include<stdio.h> int main() { int i,s; i=1; s=0; do {s=s+i;i++;}while(i<=100); printf("s=%d\n",s);return 0;}另解(for 循环): #include<stdio.h> int main() { int i,s; s=0;for(i=0;i<=100;i++){ s=s+i;}printf("s=%d\n",s); return 0;}2、求1021!10⨯⨯⨯= 的值。

解:#include<stdio.h> int main() { int i,s;s=1;for(i=1;i<=10;i++) { s=s*i;}printf("s=%d\n",s); return 0;}3、求∑=101!i i 的值。

解(for 循环): #include<stdio.h> int main() { int i,s,t; s=0; t=1;for(i=1;i<=10;i++) { t=t*i; s=s+t;}printf("s=%d\n",s);return 0;}另解(嵌套for 循环): #include<stdio.h>int main() { int i,j,s,t; s=0;t=1;for(i=1;i<=10;i++) { for(t=1,j=1;j<=i;j++) {t=t*j; }s=s+t;}printf("s=%d\n",s);return 0;}4、求100994321-++-+- 的值。

C语言题库

C语言题库

C语言题库1. 输入一个整数,判断它是几位数?(*)2. 编制一函数,得到一个整数的某一位的数字。

(*)3. 求出所有的水仙花数。

水仙花数是一个三位数,其各位数字的立方和等于该数。

例如153=1^3+5^3+3^3。

(**)4、编写函数fun求1000以内所有7的倍数之和。

(*)int fun(int m){ }5、将一个数组中的元素按逆序存放。

(*)6、输入三个整数x,y,z,请把这三个数由小到大输出。

(*)7、递归调用计算阶乘, 输入n,求n的阶乘(*)8、删除字符串中的数字字符。

例如:输入字符串:48CTYP9E6,则输出:CTYPE。

(**)9、计算并输出500以内最大的10个能被13或17整除的自然数之和。

(*)10、统计一个字符串中的字母、数字、空格和其它字符的个数。

(*)11、不用第三个变量,实现两个数的对调操作。

(**)12、求1!+3!+5!+……+n!的和。

(**)13、求一批数中最大值和最小值的差。

(*)14、编写函数fun,函数的功能是:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。

每一分数的分母是前两项的分母之和;每一分数的分子是前两项的分子之和。

例如:求前20项之和的值为32.660259。

(**)15、打印出如下图(菱形)(**)*************************16、用冒泡法对数组a进行由小到大的排序。

(*)17、求出二维数组中的最大元素值(*)18、输入一个字符串,对字符串逆序输出(*)19、已知一个数列,它的头两项分别是0和1,从第三项开始以后的每项都是其前两项之和。

编程打印此数,直到某项的值超过200为止。

(***)20、计算平均成绩并统计90分以上人数。

(*)21、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?(***)22、判断101-200之间有多少个素数,并输出所有素数。

C语言正式上机题

C语言正式上机题

C语⾔正式上机题C语⾔上机实验题⽬1 打印图形1.输⼊n值,打印下列图形:**************** 当n = 4时2.输⼊n值,打印下列⾼和上底均为n 的等腰梯形:**************************** 当n = 4时3.输⼊n值,打印下列⾼和下底均为n 的等腰梯形:**************************** 当n = 4时4.输⼊n值,打印下列⾼和上底均为n的等腰空⼼梯形:****** ** ** ************** 当n = 5时5.输⼊n值,打印下列⾼和下底均为n的等腰空⼼梯形:************** ** ** ****** 当n=5时6.编写程序打印下列上三⾓形式的乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————1 2 3 4 5 6 7 8 94 6 8 10 12 14 16 1825 30 35 40 4536 42 48 5449 56 6364 72817.编写程序打印下列乘法九九表:1 2 3 4 5 6 7 8 9 ——————————————————8164 7249 56 6336 42 48 5425 30 35 40 4516 20 24 28 32 369 12 15 18 21 24 274 6 8 10 12 14 16 181 2 3 4 5 6 7 8 98.编程打印数字⾦字塔:11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 9.编程打印数字⾦字塔:1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 11 2 3 4 5 6 7 6 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 110.输⼊n值,打印边长为n的空⼼正六边形:******* ** ** ** ** ** ** ** ** ******* 当n = 6时11.编写程序输出下⾯的图形,要求输⼊顶⾏字符和图形的⾼。

循环结构程序设计习题及答案

循环结构程序设计习题及答案

第6章循环结构程序设计6-1.比较while语句、do–while语句和for语句的异同。

答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。

(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。

(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.(4)一般而言,三种循环语句可等价实现.6-2 仔细阅读下面的程序,指出程序的运行结果.#include<>void main(){ int i;for(i=0;++i;i<5){ if(i==3){printf("%d\n",++i);break;}printf("%d\n",++i);}}答:24思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何6-3 仔细阅读下面的语的程序,指出程序的运行结果。

#include""void main(){ int i, a=0;for(i=1;i<=5;i++){do{i++;a++;} while(i<3);}i++;printf("a=%d,i=%d",a,i);}答:a=3,i=7思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗6-4编写程序,用1000个单词”computer”填充屏幕,每行60个 .解:#include<>void main(){ int i;for(i=1;i<=1000;i++){ printf("computer.");if(i%60==0)printf("\n");}}思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么没有此语句将会是什么状况6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。

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%的折扣。

labview每日一练

labview每日一练

1、产生100个随机数,求其最小值和最大值以及平均值2、题目:1 用for循环产生4行100列的二维数组,数组成员如下:1,2,3.......100;100,99,98.......1;6,7,8.......105;105,104,103......6;从这个数组中提取2行50列的二维数组,数组成员如下:50,49,48......1;56,57,58 (105)将这2个数组用数组显示件显示在前面板.3、:编写一个程序测试自己在程序前面板上输入以下字符所用的时间:A virtual instruments isa program in the graphical programming language.4、编写一个程序,在前面板上放3个按钮,当按下某个按钮时,输出按钮的编号.5、编写计算以下等式的程序:y1=x3-x2+5y2=m*x+bx的范围是0---10。

y1和y2用数组显示件显示在前面板。

6、编程求Josephus(约瑟夫环)问题:m个小孩子围成一圈,从第一个小孩子开始顺时针方向数数字,到第n个小孩子离开,这样反反复复,最终只剩下一个小孩子,求第几个小孩子留下?7、猴子吃绦子问题,每天吃完全部的桃子一半又一个,到第10天的时候还剩下一个,编程求第一天桃子的总数.8、编程求1000以内的所有水仙花数,"水仙花数"指一个三位数,它的各位数字的立方和等于她本身.例如:371=3*3*3+7*7*7+1*1*1;9、编程求1000以内的"完数","完数"是指一个数恰好等于它本身的因子之和,例如28=14+7+4+2+1;10、在一个chart中显示3条曲线,分别用红,绿,蓝3种颜色表示范围0-1,0-5,0-10的3个随机数.11、在一个Graph中用2种不同的的线宽显示1条正弦曲线和一条余弦曲线,每条曲线长度为128个点.正弦曲线x0=0,Dealt x=1,余弦曲线x0=2,Dealt x=10.12、用XY Graph显示一个半径为1的圆13、产生一个10行10列的二维数组,数组成员为0--100的数字,并用强度图显示.14、画出Labview图形显示,以及放大缩小功能,以及在此图标上添加可改变的labVIEW字体样式.。

C++基础练习题1-9章 自测题 题库带答案

C++基础练习题1-9章 自测题 题库带答案

1.概念填空题1.1用编写的程序称为“源程序”。

计算机(能/不能)直接识别源程序,必须将其翻译成二进制代码才能在机器上运行。

一旦编译成功,目标程序就可以反复执行。

1.2 C++的程序由一个或多个组成,其中一定有一个称为主函数的函数。

在组成程序的函数中,它是程序执行的,也是程序运行的。

对函数的描述由“{ }”中的语句序列完成,每个语句以符号结束。

C++程序大小写。

1.3布尔型数值只有两个:,。

在C++的算术运算式中,分别当作,。

1.4字符由括起来,字符串由括起来。

字符只能有个字符,字符串可以有个字符。

空串的表示方法为。

1.5 &&与||表达式按的顺序进行计算,以&&连接的表达式,如果左边的计算结果为,右边的计算就不需要进行了,整个逻辑表达式的结果为。

以||连接的表达式,如果左边的计算结果为,就能得到整个逻辑表达式的结果为。

1.6 >>运算符将一个数右移n位,相当于将该数2n,<<运算数将一个数左移n位,相当于将该数2n。

1.7 前置++、--的优先级于后置++、--。

2.概念填空题1.1用高级语言编写的程序称为“源程序”。

计算机不能(能/不能)直接识别源程序,必须将其翻译成二进制代码才能在机器上运行。

一旦编译成功,目标程序就可以反复执行。

1.2 C++的程序由一个或多个函数组成,其中一定有一个称为主函数的main函数。

在组成程序的函数中,它是程序执行的入口,也是程序运行的结束点。

对函数的描述由“{ }”中的语句序列完成,每个语句以;符号结束。

C++程序区别大小写。

1.3布尔型数值只有两个:true ,false。

在C++的算术运算式中,分别当作1,0。

1.4字符由‘括起来,字符串由“括起来。

字符只能有1个字符,字符串可以有0-多个个字符。

空串的表示方法为NULL 。

1.5 &&与||表达式按优先级的顺序进行计算,以&&连接的表达式,如果左边的计算结果为false,右边的计算就不需要进行了,整个逻辑表达式的结果为false。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
}
}
}
程序运行结果:
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,
{
printf("%-5d its factors are: ",i); //是完数,输出
for(j=1;j<=i/2;j++) //再次找出这个完数的因子
{
一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000以内的所有完数,并按下面格式输出其因子:6
its 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()
{ iΒιβλιοθήκη t i,j,sum; //sum用来存放因子之和
if(i%j==0) // 如果是因子
{
sum+=j; //把当前的因子累加到sum中
}
}
if(sum==i) //判断是不是完数,即因子之和等于自身
}
}
}
java 代码:
public class Test {
/**
* by: fantasy0707
*/
public static void main(String[] args) {
int i,j,sum; //sum用来存放因子之和
{
if(i%j==0) //输出各个因子
System.out.print(j+", ");
}
System.out.println();
if(i%j==0) //输出各个因子
printf("%d,",j);
}
printf("\n");
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) //判断是不是完数,即因子之和等于自身
for(i=1;i<1000;i++) //对1到1000以内的数依次尝试
{
sum = 0; //给sum赋值,同时也是对上一次的值清空
for(j=1;j<=i/2;j++) //查找因子
{
{
System.out.print(i+" its factors are: "); //是完数,输出
for(j=1;j<=i/2;j++) //再次找出这个完数的因子
相关文档
最新文档