源程序题目80道

合集下载

C语言经典例题100道

C语言经典例题100道

经典C源程序100例题目:有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语言编程实例100题

C语言编程实例100题

C语言程序实例100个(一)【程序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语言源程序100例(最常见的)

经典C语言源程序100例(最常见的)

我的经典C语言程序设计源程序100例(精品)【程序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后再开方,如果开方后的结果满足如下条件,即是结果。

100个经典c语言例题(带答案)

100个经典c语言例题(带答案)

100个经典c语言例题(带答案)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

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

2.程序源代码:m...C语言经典程序100例2009-02-26 19:44 | (分类:默认分类)经典C源程序100例- -1 经典C源程序100例【程序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.程序分析:请利用数轴来分界,定位。

C语言编程实例100题

C语言编程实例100题

C语言程序实例100个(一)【程序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万元的部分,可可提成%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

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

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

C语言编程实例100题.doc

C语言编程实例100题.doc

C语言程序实例100个(一)【程序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语言经典源程序100例

C语言经典源程序100例

C语言经典源程序100例1. Hello, World!这是C语言中最基本的程序,用于显示"Hello, World!"。

```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 计算两数之和这个程序用于计算两个整数的和,并将结果输出。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两数之和为:%d\n", sum);return 0;}```3. 判断奇偶数这个程序用于判断一个整数是奇数还是偶数。

```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该数是偶数。

\n");} else {printf("该数是奇数。

\n");}}```4. 求输入数字的平均值这个程序用于求输入数字的平均值。

```c#include <stdio.h>int main() {int count, i;double num, sum = 0.0, average;printf("请输入数字的个数:");scanf("%d", &count);printf("请输入这 %d 个数字:\n", count); for (i = 0; i < count; i++) {scanf("%lf", &num);sum += num;}average = sum / count;printf("平均值为:%lf\n", average);}```5. 判断闰年这个程序用于判断一个年份是否为闰年。

Visual Basic程序设计语言常用算法例题源代码30题

Visual Basic程序设计语言常用算法例题源代码30题

Visual Basic程序设计语言常用算法源代码30例题1、统计随机产生的十个两位正整数中偶数与奇数的个数,并求出偶数与奇数各自的总和Option ExplicitPrivate Sub Form_Click()Dim x As Integer, s1 As Integer, s2 As IntegerDim n1 As Integer, n2 As Integer, i As IntegerRandomizeFor i = 1 To 10_x=int(90*rnd)+10__Print x;If _ x mod 2=0 Thenn2 = n2 + 1s2 = s2 + xElse___n1=n1+1_s1 = s1 + xEnd IfNext iPrintPrint "奇数个数="; n1; "偶数个数="; n2;End Sub2.从字符串中分离数字和字母Private Sub Command1_Click()Dim s As String, i As IntegerConst ch As String = “0123456789.”s = "2L0A09U.0SI3V.24"For i = 1 To Len(s)If InStr(ch, Mid(s, i, 1)) = 0 Thenst1 = Mid(s, i, 1) & st1Elsest2 = st2 & Mid(s, i, 1)End IfNext iPrint st1: Print st2End Sub3. 统计字符串中“O”的个数Private Sub Command1_Click()a = "THERE IS A BOOK ON THE DESK"m = len(a)For i = 1 To mb =mid(a,i,1)If b = "O" Then num=num+1Next iPrint numEnd Sub4.从给定的字符串中只分离出数字Private Sub Command1_Click()Dim s As String, t As StringDim i As Integers = Text1.TextFor i = 1 To Len(s)If Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= 9 Thent = t & Mid(s, i, 1)End IfNext iText2.Text = tEnd Sub5.(一)将正整数转化成二进制数Private Sub Command1_Click()Dim n As Long, t As Stringn = Val(Text1.Text)Dot = n Mod 2 & tn = n \ 2Loop Until n = 0Text2.Text = tEnd Sub5、(二)将正整数转化成16进制Private Sub Command1_Click()Dim n As Long, t As String, g As Stringn = Val(Text1.Text)Dog = n Mod 16If Val(g) > 9 Theng = Chr(55 + Val(g))End Ift = g & tn = n \ 16Loop Until n = 0Text2.Text = tEnd Sub5、(三)将正整数转化成8进制Private Sub Command1_Click()Dim n As Long, t As Stringn = Val(Text1.Text)Dot = n Mod 8 & tn = n \ 8Loop Until n = 0Text2.Text = tEnd Sub6.找出100以内的所有勾股数(不包括100)Private Sub Form_Click()Dim a As Integer, b As Integer, c As Integer, n As IntegerFor a = 1 To 99For b = 1 To 99For c = 1 To 99If a ^ 2 + b ^ 2 = c ^ 2 And a <> b Thenn = n + 1Print a; b; c; “; “;If n Mod 5 = 0 ThenPrintEnd IfEnd IfNext cNext bNext aPrint nEnd Sub7.找出三位数字中的所有升序数(各位数字>十位数字>百位数字)Private Sub Form_Click()Dim a As Integer, b As Integer, c As Integer, n As IntegerFor a = 1 To 9For b = 1 To 9For c = 1 To 9If a < b And b < c Thenn = n + 1Print a * 100 + b * 10 + c;If n Mod 10 = 0 Then '控制每行打印10个PrintEnd IfEnd IfNext cNext bNext aPrint nEnd Sub或Dim n As Integer, a1 As Integer, a2 As Integer, a3 As Integer, js As Integer For n = 100 To 999a1 = n \ 100 ‘取出百位数字a2 = n \ 10 Mod 10 ‘取出十位数字a3 = n Mod 10 ‘取出个位数字If a1 < a2 And a2 < a3 Thenjs = js + 1Print n;If js Mod 10 = 0 ThenPrintEnd IfEnd IfNext nPrint jsEnd Sub利用过程调用思想求升序数例找出a-b范围内的所有升序数,a>=100,b<=30000Private sub command1_click()Dim a as integer,b as integer,i as integera=text1:b=text2For i=a to bIf sx(i) thenList1.additem iEnd ifNext iEnd subPrivate sub function sx(byval n as integer) as booleanDim a() as integer,k as integer,i as integerDoK=k+1Redim preserve a(k)a(k)=n mod 10n=n\10loop until n<=0for i=1 to ubound(a)-1if a(i+1)>=a(i) then exit function (应该去判断a(1)>a(2)……a(k)但是不好判断,遇难则反,只要有一个a(i+1)>=a(i)这不是升序数)next isx=trueend function8.最小公倍数Private Sub Form_Click()Dim m%, n%, tem%m = Val(Text1.Text)n = Val(Text2.Text)tem = mDo While tem Mod n <> 0tem = tem + mLoopPrint m; "和"; n; "的最小公倍数是:"; temEnd Sub9.求一维数组a(n)各元素的和:Dim s as integer , I as intgers=0for i=1 to ns=s+a(i)next i10.求二维数组a(n,m)各元素的和Dim s as integer, i as integer, j as integers=0For i=1 to nfor j=1 to ms=s+a(i,j)next jNext i11. 求二维数组a(m,n)周边元素的和Dim s as integer, i as integerS=0For i=1 to ns=s+a(1,i)+a(m,i) (求第一行与最后一行的和)Next ifor i=2 to m-1s=s+a(i,1)+a(i,n) (求第二行到倒数第二行第一列与最后一列的和)Next i12、求二维数组a(n,n)主对角线元素的和(理解主对角线)Dim s as integer,i as integerS=0For i=1 to ns=s+ a (i,i)Next i13、求二维数组a(n,n)次对角线元素的Dim a as integer, i as integerS=0For i=1 to ns=s+a(i,n+1-i)Next i14、三种排序法(1)选择排序法是逐个比较,逆序交换;冒泡法是两两比较,逆序交换.(2)直接排序法(以降序为例)特点:比较后不立即互换元素,而是记下较大值的位置,并在每一轮比较完毕后和S(i)互换选择排序法(比较排序法)基本过程(以降序为例):将第一个元素顺序与其后面的元素比较,比第一个大则进行交换,第一轮完毕后,最大的元素被挪到了第一个位置,第二轮从第二个元素开始重复上面的过程,结束后得到第二个最大的元素,如此下去经过N-1 轮的比较,可将N 个数排好(3)冒泡法排序(以升序为例),则方法为:将相邻两个数比较,把小数对调到前边,如此进行一轮后,就会把最大的数互换到最后,再进行一次,则会把第二大数排在倒数第二的位置上,进行N-1次后,整个数列即可排好.在这种排序过程中,小数如同气泡一样逐层上浮,而大数逐个下沉,因此,被形象的喻为“冒泡”.选择法对数组经行降序排列Option explicitOption base 1Private sub command1_click()Dim sort(10) as integer, temp as integer , i as integer, j as integerFor i=1 to 10Sort(i)=int(rnd*99)+1Text1=text1 & str(sort(i))Next iFor i= 1 to 9For j=i+1 to 10If sort(i)<sort(j) thenTemp=a(i)a(i)=a(j)a(j)=tempend ifnext jtext2=text2 & str(sort(i))next itext2=text2 & str(sort(i))end sub直接排序法的精髓(降序)For i=1 to N-1pointer=I‘初始化pointer,在每轮比较开始处for j=I+1 to Nif Sort(pointer)< Sort(j) then pointer= j next jif I<> pointer thentemp=Sort(i) ‘交换Sort(i)=Sort(pointer)Sort(pointer)=tempend ifNext I冒泡排序法的精髓(升序)For i=1 to N-1for j=1 to N-i ‘比较次数逐次减少if S(j) > S(j+1) thent=S(j)S(j)=S(j+1)S(j+1)=t ‘立即互换end ifnext jnext i15、求三个数的和!Private Sub ifnum(str1 As String, n As Integer)Dim k As IntegerFor k = 1 To Len(str1) ‘逐个字符判断是否为数字If Asc(Mid(str1, k, 1)) < 48 Or Asc(Mid(str1, k, 1)) > 57 Thenn = 0: Exit SubEnd IfNext kn = 1End SubPrivate Sub Command1_Click()Dim a As String, b As String, c As StringDim y1 As Integer, y2 As Integer, y3 As Integera = Text1.Text ‘a,b,c用来取得三个文本框的字符串b = Text2.Textc = Text3.TextCall ifnum(a, y1) '用来判断a,b,c是否为数字串,为数字串时y1,y2,y3都为1 Call ifnum(b, y2)Call ifnum(c, y3)If y1 = 1 And y2 = 1 And y3 = 1 ThenText4.Text = Val(a) + Val(b) + Val(c)ElseText4.Text = "三个文本框内有非数字串"End IfEnd Sub16.求三个数的最小公倍数Option ExplicitPrivate Sub Command1_Click()Dim A As Integer, B As IntegerDim L As Long, C As IntegerA = Text1B = Text2C = Text3L = LCM(LCM(A, B), C)Text4 = LEnd SubPrivate Function LCM(ByVal X As Integer, ByVal Y As Integer)Dim M As Long, Flg As BooleanFlg = FalseDo Until FlgM = M + XIf M Mod Y = 0 ThenFlg = TrueEnd IfLoopLCM = MEnd Function17.打印九九乘法表Private sub form_clickDim I as integer, j as integerFor i=1 to 9For j=1 to iPrint j;”*”I;”=”i*j;Next jprintNext iEnd sub18判断完数(一个数如果恰好等于他所有因子之和,这个数就是完数。

经典C源代码30例

经典C源代码30例

经典C源代码30例==============================================================【程序80】题目:海滩上有一堆桃子,五只猴子来分。

第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。

第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?1.程序分析:2.程序源代码:main(){int i,m,j,k,count;for(i=4;i<10000;i+=4){ count=0;m=i;for(k=0;k<5;k++){j=i/4*5+1;i=j;if(j%4==0)count++;elsebreak;}i=m;if(count==4){printf("%d\n",count);break;}}}作者:zhlei81 2005-1-22 11:32 回复此发言--------------------------------------------------------------------------------16 回复:经典C源程序100例【程序81】题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。

求??代表的两位数,及809*??后的结果。

1.程序分析:2.程序源代码:output(long b,long i){ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);}main(){long int a,b,i;a=809;for(i=10;i<100;i++){b=i*a+1;if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)output(b,i); }}==============================================================【程序82】题目:八进制转换为十进制1.程序分析:2.程序源代码:main(){ char *p,s[6];int n;p=s;gets(p);n=0;while(*(p)!='\0'){n=n*8+*p-'0';p++;}printf("%d",n);}============================================================== 【程序83】题目:求0—7所能组成的奇数个数。

C语言程序设计经典100例

C语言程序设计经典100例

日志分享给好友复制网址隐藏签名档小字体上一篇下一篇返回日志列表[转] 课后答案上:C语言程序设计经典100例,用到的编辑 | 删除 | 权限设置 | 更多▼更多▲∙设置置顶∙推荐日志∙转为私密日志转载自于洋转载于2010年05月08日 20:50 阅读(0) 评论(0) 分类:个人日记权限: 公开【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

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

2.程序源代码:#include "stdio.h"#include "conio.h"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);}getch();}==============================================================【程序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.程序分析:请利用数轴来分界,定位。

经典C程序100例(91-100)

经典C程序100例(91-100)

【程序91】题目:时间函数举例12.程序源代码:#include "stdio.h"#include "time.h"void main(){ time_t lt; /*define a longint time varible*/lt=time(NULL);/*system time and date*/printf(ctime(<)); /*english format output*/printf(asctime(localtime(<)));/*tranfer to tm*/printf(asctime(gmtime(<))); /*tranfer to Greenwich time*/}==============================================================【程序92】题目:时间函数举例22.程序源代码:/*calculate time*/#include "time.h"#include "stdio.h"main(){ time_t start,end;int i;start=time(NULL);for(i=0;i<3000;i++){ printf("\1\1\1\1\1\1\1\1\1\1\n");}end=time(NULL);printf("\1: The different is %6.3f\n",difftime(end,start));}==============================================================【程序93】题目:时间函数举例32.程序源代码:/*calculate time*/#include "time.h"#include "stdio.h"main(){ clock_t start,end;int i;double var;start=clock();for(i=0;i<10000;i++){ printf("\1\1\1\1\1\1\1\1\1\1\n");}end=clock();printf("\1: The different is %6.3f\n",(double)(end-start));}==============================================================【程序94】题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢。

C程序100题

C程序100题

【程序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程序100例

经典c程序100例

经典c程序100例【程序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。

C 代码详细二十道大题

C  代码详细二十道大题

第一题#include<iostream.h>#include<string.h>class Student{char name[10],num[10];public:Student(char*s1,char*s2){strcpy(name,s1);strcpy(num,s2);}void dsp(){cout<<"Name:"<<name<<endl<<"Number:"<<num<<endl;}};class Score{unsigned int mat,phy,eng;public:Score(unsigned int i1,unsigned int i2,unsigned int i3) :mat(i1),phy(i2),eng(i3){}void show(){cout<<"Mathematics:"<<mat<<"\nPhyics:"<<phy<<"\nEnglish:"<<eng<<endl;}};void main(){Student a("Wang","123456789");Score a1(72,82,92);a.dsp();a1.show();}第二题#include<iostream.h>#include<string.h>class Student{private:char name[10],num[10];friend voidshow(Student&st)//友元函数的声明和定义{cout<<"Name:"<<<<endl<<"Number:"<<num<<endl;}public:Student(char*s1,char*s2){strcpy(name,s1);strcpy(num,s2);}};class Score{unsigned int mat,phy,eng;friend void show_all(Student&,Score*);//友元函数的声明public:Score(unsigned int i1,unsigned int i2,unsigned int i3):mat(i1),phy(i2),eng(i3){}};void show_all(Student&st,Score*sc)//友元函数的定义{show(st);cout<<"Mathematics:"<<sc->mat<<"\nPhyics:"<<sc->phy<<"\nEnglish:"<<sc->eng<<endl;}void main(){Student wang("Wang","9901");Score ss(72,82,92);show_all(wang,&ss);}第三题#define strmax32#include<string.h>#include<iostream.h>class myclass{int x,y;char*string;public:myclass(int vx,int vy,char*str);friend int sum(myclass c1);//友元函数的声明friend int strlength(myclass c1);//友元函数的声明friend void print(myclass c1);//友元函数的声明};myclass::myclass(int vx,int vy,char*str){x=vx;y=vy;string=new char[strmax];strcpy(string,str);}int sum(myclass c1)//友元函数的定义{return c1.x+c1.y;}int strlength(myclass c1)//友元函数的定义{return strlen(c1.string);}void print(myclass c1)//友元函数的定义{cout<<"x="<<c1.x<<"y="<<c1.y<<endl;cout<<"string:"<<c1.string<<endl;}void main(){myclass c1(10,10,"my myclass object!");cout<<"the sum is:"<<sum(c1)<<endl;cout<<"the string is:"<<strlength(c1)<<endl;print(c1);}第四题#define maxcard32#include<iostream.h>class realset;enum errcode{noerr,overflow};//定义一个枚举class intset//定义一个整数集合类{int elem[maxcard];int card;public:intset(){card=0;}errcode addelem(int);//向集合中增加符点数元素void print();void settoreal(realset*set);//将当前对象的整数集合,转换成符点数集合};class realset//定义一个浮点数集合类{float elem[maxcard];int card;public:realset(){card=0;}errcode addelem(float);void print();};errcode intset::addelem(int elem1){for(int i=0;i<card;i++)if(elem[i]==elem1)return noerr;if(card<maxcard){elem[card++]=elem1;return noerr;}else return overflow;}void intset::print(){cout<<"{";for(int i=0;i<card-1;++i)cout<<elem[i]<<",";if(card>0)cout<<elem[card-1];cout<<"}\n";}void intset::settoreal(realset*set){for(int i=0;i<card;i++)set->addelem((float)elem[i]); }errcode realset::addelem(float elem1) {for(int i=0;i<card;i++)if(elem[i]==elem1)return noerr;if(card<maxcard){elem[card++]=elem1;return noerr;}else return overflow;}void realset::print(){cout<<"{";for(int i=0;i<card-1;++i)cout<<elem[i]<<",";if(card>0)cout<<elem[card-1];cout<<"}\n";}void main(){intset set1;realset*set2;set2=new realset;set1.addelem(12);set1.addelem(278);set1.addelem(54);set1.addelem(459);set1.print();set1.settoreal(set2);set2->print();delete set2;}第五题#include<iostream.h>#include<string.h>class Student;//声明引用的类名class Score{unsigned int mat,phy,eng;public:Score(unsigned int i1,unsigned int i2,unsigned int i3):mat(i1),phy(i2),eng(i3){} void show(){cout<<"Mathematics:"<<mat<<"\nPhyics:"<<phy<<"\nEnglish:"<<eng<<endl;}void show(Student&);};class Student{friend void Score::show(Student&);//声明友元成员char name[10],num[10];public:Student(char*s1,char*s2){strcpy(name,s1);strcpy(num,s2);}};void Score::show(Student&st){cout<<"Name:"<<<<"\n";show();}void main(){Student wang("Wang","9901");Score ss(72,82,92);ss.show(wang);}第六题#include<iostream.h>#include<string.h>class Student{friend class Score;//声明Score类为Student类的友元类char name[10],num[10];public:Student(char*s1,char*s2){strcpy(name,s1);strcpy(num,s2);}};class Score{unsigned int mat,phy,eng;public:Score(unsigned int i1,unsigned int i2,unsigned int i3):mat(i1),phy(i2),eng(i3){}void show(){cout<<"Mathematics:"<<mat<<"\nPhyics:"<<phy<<"\nEnglish:"<<eng<<endl;}void show(Student&);};void Score::show(Student&st){cout<<"Name:"<<<<"\n";show();}void main(){Student wang("Wang","9901");Score ss(72,82,92);ss.show(wang);}第七题#include<iostream.h>class stack;//超前声明stack类,因为node类中要将它声明为友员class node//定义node类{int data;//结点值node*prev;//指向上一结点的指针public:node(int d,node*n)//构造函数{data=d;prev=n;}friend class stack;//声明友元类};class stack//定义堆栈类{node*top;//堆栈头public:stack(){top=0;}void push(int i);//压栈int pop();//弹栈};void stack::push(int i){node*n=new node(i,top);top=n;}int stack::pop(){node*t=top;if(top){top=top->prev;int c=t->data;delete t;return c;}return0;}void main(){int c;stack s;for(int i=0;i<10;i++){cin>>c;s.push(c);}for(i=0;i<10;i++)cout<<s.pop()<<"";cout<<"\n";}第八题#include<iostream.h>class Complex{double real;double image;public:Complex(double r=0,double i=0){real=r;image=i;}friend void inputcomplex(Complex&comp);friend Complex addcomplex(Complex&c1,Complex&c2);friend Complex subcomplex(Complex&c1,Complex&c2);friend Complex mulcomplex(Complex&c1,Complex&c2);friend void outputcomplex(Complex&comp);};void inputcomplex(Complex&comp){cin>>comp.real>>comp.image;}Complex addcomplex(Complex&c1,Complex&c2){Complex c;c.real=c1.real+c2.real;c.image=c1.image+c2.image;return c;}Complex subcomplex(Complex&c1,Complex&c2){Complex c;c.real=c1.real-c2.real;c.image=c1.image-c2.image;return c;}Complex mulcomplex(Complex&c1,Complex&c2){Complex c;c.real=c1.real*c2.real-c1.image*c2.image;c.image=c1.real*c2.image+c1.image*c2.real;return c;}void outputcomplex(Complex&comp){cout<<"("<<comp.real<<","<<comp.image<<")"; }void main(){Complex c1,c2,result;cout<<"请输入第一个复数的实部和虚部:"<<endl;inputcomplex(c1);cout<<"请输入第二个复数的实部和虚部:"<<endl;inputcomplex(c2);result=addcomplex(c1,c2);outputcomplex(c1);cout<<"+";outputcomplex(c2);cout<<"=";outputcomplex(result);cout<<"\n-------------------------"<<endl;result=subcomplex(c1,c2);outputcomplex(c1);cout<<"-";outputcomplex(c2);cout<<"=";outputcomplex(result);cout<<"\n-------------------------"<<endl;result=mulcomplex(c1,c2);outputcomplex(c1);cout<<"*";outputcomplex(c2);cout<<"=";outputcomplex(result);cout<<endl;}第九题#include<iostream.h>class vehicle//基类vehicle类的定义{private://私有数据成员float weight;int wheels;public://公有函数成员vehicle(int in_wheels,float in_weight){wheels=in_wheels;weight=in_weight;}int get_wheels(){return wheels;}float get_weight(){return weight;}};class car:public vehicle//派生类car类的定义{private://新增私有数据成员int passenger_load;public://新增公有函数成员car(int in_wheel,float in_weight,int people=5):vehicle(in_wheel,in_weight){passenger_load=people;}int get_passengers(){return passenger_load;}};void main(){car bm(4,1000);//声明car类的对象cout<<"The message of bm(wheels,weight,passengers):"<<endl;cout<<bm.get_wheels()<<",";//访问派生类从基类继承来的公有函数cout<<bm.get_weight()<<",";//访问派生类从基类继承来的公有函数cout<<bm.get_passengers()<<endl;//访问派生类的公有函数}第十题#include<iostream.h>class vehicle//基类vehicle类的定义{private://私有数据成员int wheels;float weight;public://公有函数成员vehicle(int in_wheels,float in_weight){wheels=in_wheels;weight=in_weight;}int get_wheels(){return wheels;}float get_weight(){return weight;}};class car:private vehicle//定义派生类car类{private://新增私有数据成员int passenger_load;public://新增公有函数成员car(int in_wheels,float in_weight,int people=5):vehicle(in_wheels,in_weigh){passenger_load=people;}int get_wheels(){return vehicle::get_wheels();}//重新定义get_wheels()float get_weight(){return vehicle::get_weight();}//重新定义get_weight() int get_passengers(){return passenger_load;}};void main(){car bm(4,1000);//定义car类对象cout<<"The message of bm(wheels,weight,passengers):"<<endl;cout<<bm.get_wheels()<<","//输出小汽车的信息<<bm.get_weight()<<","<<bm.get_passengers()<<endl;}第十一题#include<iostream.h>class vehicle//定义基类vehicle{private://私有数据成员int wheels;protected://保护数据成员float weight;public://公有函数成员vehicle(int in_wheels,float in_weight){wheels=in_wheels;weight=in_weight;}int get_wheels(){return wheels;}float get_weight(){return weight;}};class car:protected vehicle//定义派生类car{private://新增私有数据成员int passenger_load;public://新增公有函数成员car(int in_wheels,float in_weight,int people=5):vehicle(in_wheels,in_weight){passenger_load=people;}int get_wheels()//重新定义get_wheels(){return vehicle::get_wheels();}float get_weight()//重新定义get_weight(){return weight;}int get_passengers(){return passenger_load;}};void main(){car bm(4,1000);//定义car类的对象cout<<"The message of bm(wheels,weight,passengers):"<<endl;cout<<bm.get_wheels()<<","//输出小汽车的信息<<bm.get_weight()<<","<<bm.get_passengers()<<endl;}第十二题#include<iostream.h>class data{int x;public:data(int x){data::x=x;cout<<"class data\n";}};class a{data d1;public:a(int x):d1(x){cout<<"class a\n";}};class b:public a{data d2;public:b(int x):a(x),d2(x){cout<<"class b\n";}};class c:public b{public:c(int x):b(x){cout<<"class c\n";}};void main(){c object(5);}第十三题#include<iostream.h>#include<string.h>class ST_COM{protected:char name[10];unsigned int num;float mat,eng,phy;public:ST_COM(char*na,unsigned int n,float ma,float en,float ph): num(n),mat(ma),eng(en),phy(ph){strcpy(name,na);}};class EL_DEP:public ST_COM{float pex,elnet,dst;public:EL_DEP(char*na,unsigned int n,float ma,float en,float ph,float pe,float el,float d):ST_COM(na,n,ma,en,ph),pex(pe),elnet(el),dst(d)void operator!(){cout<<"Name:"<<name<<"Number:"<<num<<endl;cout<<"Matchematics Scor:"<<mat<<endl;cout<<"English Scor:"<<eng<<endl;cout<<"Physics Scor:"<<phy<<endl;cout<<"Exchange Scor:"<<pex<<endl;cout<<"Elec_net Scor:"<<elnet<<endl;cout<<"Data_struct Scor:"<<dst<<endl;}};void main(){EL_DEP a("wang",1234,71,72,73,81,82,83);!a;}第十四题#include<iostream.h>#include<string.h>class ST_COM{protected:char name[10];unsigned int num;float mat,eng,phy,avg;public:ST_COM(char*na,unsigned int n,float ma,float en,float ph):num(n),mat(ma),eng(en),phy(ph){strcpy(name,na);avg=(mat+eng+phy)/3;}void operator!(){cout<<"Name:"<<name<<"Number:"<<num<<endl;cout<<"Matchematics Scor:"<<mat<<endl;cout<<"English Scor:"<<eng<<endl;cout<<"Physics Scor:"<<phy<<endl;}};class EL_DEP:public ST_COMfloat pex,elnet,dst,avg;public:EL_DEP(char*na,unsigned int n,float ma,float en,float ph,float pe,float el,float d):ST_COM(na,n,ma,en,ph),pex(pe),elnet(el),dst(d){avg=((pex+elnet+dst)/3+ST_COM::avg)/2;}void operator!(){ST_COM::operator!();cout<<"Exchange Scor:"<<pex<<endl;cout<<"Elec_net Scor:"<<elnet<<endl;cout<<"Data_struct Scor:"<<dst<<endl;cout<<"Average Scor:"<<avg<<endl;}};void main(){EL_DEP a("wang",1234,71,72,73,81,82,83);!a;}第十五题#include<iostream.h>class person{char*name;int age;char*add;public:person(){cout<<"the constructor of class person!\n";}~person(){cout<<"the destructor of class person!\n";}};class student:public person{char*department;int level;public:student(){cout<<"the constructor of class student!\n";}~student(){cout<<"the destructor of class student!\n";}};class teacher:public person{char*major;float salary;public:teacher(){cout<<"the constructor of class teacher!\n";}~teacher(){cout<<"the destructor of class teacher!\n";} };void main(){student d1;teacher d2;}第十六题#include<iostream.h>class Bed{public:Bed():weight(){}void Sleep(){cout<<"Sleeping...\n";}void SetWeight(int i){weight=i;}protected:int weight;};class Sofa{public:Sofa():weight(){}void WatchTV(){cout<<"Watching TV.\n";}void SetWeight(int i){weight=i;}protected:int weight;};class SleeperSofa:public Bed,public Sofa//多重继承{public:SleeperSofa(){}void FoldOut(){cout<<"Fold out the sofa.\n";}};void main(){SleeperSofa ss;ss.WatchTV();ss.FoldOut();ss.Sleep();ss.SetWeight(20);//出现二义性}第十七题#include<iostream.h>class Furniture//定义家具类{public:Furniture(){}void SetWeight(int i){weight=i;}int GetWeight(){return weight;}protected:int weight;};class Bed:virtual public Furniture//Furniture类作为Bed类的虚基类{public:Bed(){}void Sleep(){cout<<"Sleeping...\n";}};class Sofa:virtual public Furniture//Furniture类作为Sofa类的虚基类{public:Sofa(){}void WatchTV(){cout<<"Watching TV.\n";}};class SleeperSofa:public Bed,public Sofa{public:SleeperSofa():Sofa(),Bed(){}void FoldOut(){cout<<"Fold out the sofa.\n";}void main(){SleeperSofa ss;ss.SetWeight(20);cout<<ss.GetWeight()<<endl;}第十八题#include<iostream.h>class base{public:base(){cout<<"this is base class!\n";}};class base2{public:base2(){cout<<"this is base2class!\n";}};class level1:public base2,virtual public base {public:level1(){cout<<"this is level1class!\n";}};class level2:public base2,virtual public base {public:level2(){cout<<"this is level2class!\n";}};class toplevel:public level1,virtual public level2 {public:toplevel(){cout<<"this is toplevel class!\n";}};void main(){toplevel topobj;第十九题#include<iostream.h>class OBJ1{public:OBJ1(){cout<<"OBJ1\n";}~OBJ1(){cout<<"destructing OBJ1"<<endl;}};class OBJ2{public:OBJ2(){cout<<"OBJ2\n";}~OBJ2(){cout<<"destructing OBJ2"<<endl;}};class Base1{public:Base1(){cout<<"Base1\n";}~Base1(){cout<<"destructing Base1"<<endl;}};class Base2{public:Base2(){cout<<"Base2\n";}~Base2(){cout<<"destructing Base2"<<endl;}};class Base3{public:Base3(){cout<<"Base3\n";}~Base3(){cout<<"destructing Base3"<<endl;}};class Base4{public:Base4(){cout<<"Base4\n";}~Base4(){cout<<"destructing Base4"<<endl;}};class Derived:public Base1,virtual public Base2,public Base3,virtual public Base4 {public:Derived():Base4(),Base3(),Base2(),Base1(),obj2(),obj1()cout<<"Derived ok.\n";}~Derived(){cout<<"destructing Derived"<<endl;} protected:OBJ1obj1;OBJ2obj2;};void main(){Derived aa;}二十题#include<iostream.h>template<class T>class tem{T*data;int size;public:tem(int);~tem(){delete[]data;}T&operator[](int i){return data[i];}};template<class T>tem<T>::tem(int n){data=new T[n];size=n;}void main(){tem<int>x(5);int i;for(i=0;i<5;i++)x[i]=i;for(i=0;i<5;i++)cout<<x[i]<<'';cout<<'\n';。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

经典C源程序题目80道【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....#include<stdio.h>void main(){int i,j,n,m,k;printf("Please input time:");scanf("%d",&m);i=0;j=1;n=0;for(k=1;k<=m;i=j,j=n,k++)/*数量是n*/{n=i+j;}printf("There are %d rabbits\n",n);}==============================================================【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

==============================================================【程序3】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

#include<stdio.h>void main(){int a,b,c,d,s;for(s=100;s<=999;s++){a=s/100;b=(s-a*100)/10;c=s-a*100-b*10;d=a*a*a+b*b*b+c*c*c;if(s==d)printf("%d\n",s);}}==============================================================【程序4】题目:将一个正整数分解质因数。

例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

#include<stdio.h>void main(){int n,j,k;scanf("%d",&n);printf("%d=",n);for(j=2;j<=n;){k=n%j;if(!k){if(n==j){printf("%d\n",j);n=n/j;}else{n=n/j;printf("%d*",j);}}elsej++;}}==============================================================【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

1.程序分析:(a>b)?a:b这是条件运算符的基本例子。

#include<stdio.h>void main(){int a;char max;scanf("%d",&a);max=(a>=90&&a<=100)?'A':(a<60?'C':'B');printf("%c\n",max);}==============================================================【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

==============================================================【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1.程序分析:利用while语句,条件为输入的字符不为'\n'.==============================================================【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

1.程序分析:关键是计算出每一项的值。

==============================================================【程序9】题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如6=1+2+3.编程找出1000以内的所有完数。

1. 程序分析:请参照程序<--上页程序14.==============================================================【程序10】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?1.程序分析:见下面注释【程序11】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

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

==============================================================【程序12】题目:企业发放的奖金根据利润提成。

利润(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.程序分析:请利用数轴来分界,定位。

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

==============================================================【程序13】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

请看具体分析:==============================================================【程序14】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

==============================================================【程序15】题目:输入三个整数x,y,z,请把这三个数由小到大输出。

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

【程序16】题目:用*号输出字母C的图案。

1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。

==============================================================【程序17】题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!1.程序分析:字符共有256个。

不同字符,图形不一样。

==============================================================【程序18】题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

==============================================================【程序19】题目:要求输出国际象棋棋盘。

1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

==============================================================【程序20】题目:打印楼梯,同时在楼梯上方打印两个笑脸。

1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。

【程序21】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

1.程序分析:采取逆向思维的方法,从后往前推断。

==============================================================【程序22】题目:两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定比赛名单。

有人向队员打听比赛的名单。

a 说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

==============================================================【程序23】题目:打印出如下图案(菱形)****************************1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。

相关文档
最新文档