c语言入门习题训练_第1页
c语言入门习题训练_第2页
c语言入门习题训练_第3页
c语言入门习题训练_第4页
已阅读5页,还剩165页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/・【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?兔子的规律为数列1,1,2,3,5,8,13,21*/#include<stdio.h>voidmain()(inta,b,t,p,sum,month;a=1;b=1;printf("Pleaseenterthemonth:");scanf("%d",&month);printf("Thereare2rabbitsAn");for(a=0,b=1,t=0,p=0,sum=0;month>1&&p<month;p++)(t=a+b;a=b;b=t;sum=t*2;printf("Thereare%drabbitsAn",sum);I・【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用ー个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。*1#include<stdio.h>voidmain()(inta,amount;for(amount=0,a=101;100<a&&a<201;a++)(if(a%2!=0)(amount=amount+1;printf(',a=%d\tM,a);)})/・【程序序题目:打印出所有的"水仙花数",所谓"水仙花数”是指ー个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。*/#include<stdio.h>voidmain()(inta,b,c,i;for(i=100;i>99&&i<1000;i++)(a=i/100;b=(i-a*100)/10;c=(i-a*100-b*10);if(a*a*a+b*b*b+c*c*c==i)

printf(Hi=%d\nH,i);))/・【程序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>voidmain()(inta,i,j;printf("Pleaseenteryournumber:\n");scanf("%d",&a);printf("%d=1",a);for(i=2,j=0;i<=a;i++)(for(;a%i==0;)(j=i;printf("*%d",j);a=a/j;)}printf("\n");

【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1.程序分析:(a>b)?a:b这是条件运算符的基本例子。*1#include<stdio.h>voidmain()(intscore;printfC'Pleaseenterthescore:*');scanf("%d",&score);(score>=90)?printf("A\n"):(score>=60&&score<=89)?printf("B\n"):printf("C\n");【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是ー个数字。例如2+22+222+2222+22222(此时共有5个数相加),儿个数相加有键盘控制。1.程序分析:关键是计算出每ー项的值。*/#include<stdio.h>voidmain()(inta,b,i,j,e,sum;printf(HPleaseenterthea:");scanf("%d”,&a);printf("Pleaseenterthetimes:*');scanf("%d",&b);for(i=1,sum=0;i<=b;i++)(for(j=1,e=1;j<=i;j++)(e=e*10+1;}sum=e*a+sum;)printf("sum=%d\n",sum);}Clanguage入门习题训练(二)2010-12-0400:29:53|分类:C语用字号订阅/*1已知银行整存整取存款不同期限的月息利率分别为:已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。7#include<stdio.h>voidmain()(floatmoney,year;floata=0.003;inti;printf("Pleaseenteryourmoney:\nM);scanf(H%r,&money);printf(HPleaseenteryouryear:\nH);scanf(H%f,,&year);a=1.0+a+0.00015*year;for(i=1;i<year;i++)(money=a*money;)printf(nmoney=%f',money);)〃2输入年份year和月month,求该月有多少天。判断是否为闰年,〃可用如下C语言表达式:year%4==0&&year%100!=0||year%400==0o〃若表达式成立(即表达式值为1),则year为闰年;否则,表达式不成立〃(即值为〇),year为平年。#include<stdio.h>voidmain()(intyear,month;printf("Pleaseentertheyear:*');scanf("%dH,&year);printfC'Pleaseenterthemonth:'*);scanf(,*%d**,&month);if(year%4==0&&year%100!=0||year%400==0)printf("Aleapyear!\n");}else(printf(MNotaleapyear!\nM);}switch(month)(case1:case3:case5:case10:case12:printf(Hlthave31days!\nM);break;case4:case6:case9:case11:printf(Hlthave30days!\nM);break;default:printfC'lthave29days!\nM);else(printf(Hlthave28days!\nM);}})}/*3、编写ー个简单计算器程序,输入格式为:datalopdata2o其中datal和data2是参加运算的两个数,op为运算符,它的取值只能是+、ー、*、/□*/#include<stdio.h>voidmain()(intdatel,date2,result;charop;printf("Pleaseenterthedatel:\n");scanf("%d",&date1);getchar();printf("Pleaseentertheoperator:\nH);scanf("%cM,&op);printf("Pleaseenterthedate2:\n");scanf("%d”,&date2);if(opニニ屮)(result=date1+date2;}if(op=='-')(result=date1-date2;}if(op=='*')(result=date1*date2;)if(op==V)(result=date1/date2;}printf("result=%d\n",result);4、输入n值,输出如图所示矩形。#include<stdio.h>voidmain()(intprintf("Pleaseenterthen:M);scanf("%d",&n);for(i=1;i<=n;i++)(for(j=1;j<=n;j++)(printf("*");)printf("\n");)}5、输入n值,输出如图所示平行四边形。#include<stdio.h>voidmain()intij.n;printf("Pleaseenterthen:");scanf("%d",&n);for(i=1;i<=n;i++)(for(j=n-i;j>0;j-)printf("");for(j=1;j<=n;j++)printf("*");printf("\n");}6、输入n值,输出如图所示高为n的等腰三角形。#include<stdio.h>voidmain()(inti,j;for(i=1;i<=4;i++)(for(j=4-i;j>0;j-)for(j=1;j<=2*i-1;j++)printf("*");for(j=4-i;j>0;j-)printf("");printf("\n");))7、输入n值,输出如图所示高为n的等腰三角形。#include<stdio.h>voidmain()(inti.j;f0r(i=i;i<=4;i++)(for(j=1;j<=i;j++)printf("");for(j=2*(4-i)-1;j>0;j-)printf("*");for(j=1;j<=i;j++)printf("");printf("\n");8、输入n值,输出如图所示高和上底均为n的等腰梯形。#include<stdio.h>voidmain()(intij,n;printf("Pleaseenterthen:");scanf("%d",&n);for(i=n;i<2*n;i++)(for(j=2*n-i;j>0;j-)printf("");for(j=n;j<=2*i-1l;j++)printf("*");printf("\n");)}9、输入n值,输出如图所示高和上底均为n的等腰空心梯形。#include<stdio.h>voidmain()(intn,i,j,k,g,h,q,w;printf("Pleaseenteryourn:\n");

scanf(”%d”,&n);w=n;for(g=1;g<=n;g++){printfCM);)for(k=n;k<=2*n-1;k++)(printf("巧;}printfCVT);for(i=1;i<n-1;i++)(for(j=n-i;j>0;j-)(printfC1H);}printfC'*1');for(h=1;h<=n+2*(i-1);h++))printf("*");printf("\n");}printf("");for(k=1;k<=3*n-2;k++)(printf("*");}}10、输入n值,输出如图所示边长为n的空心正六边型。#include<stdio.h>voidmain()(intn,i,j,k,g,h,w,q;printf(HPleaseenteryourn:\n");scanf(n%dn,&n);w=n;for(g=1;g<=n;g++)(printf("");}for(k=n;k<=2*n-1;k++)(printf("*");}printf("\n");for(i=1;i<n-1;i++)(for(j=n-i;j>0;j-)(printf("");)printf("*");for(h=1;h<=n+2*(i-1);h++)(printf("");)

for(i=1;i<=n-1;i++)(q=n-i;for(j=1;j<=i;j++)(printf("り;)printf("巧;for(h=n+2*(q-1);h>0;h-){printf(n'1);)printf("巧;printfC'\nw):}for(g=1;g<=n;g++)(printf("り;}for(k=n;k<=2*n-1;k++)

)printf(M\nM);)11、输入n值,输出如图所示图形。#include<stdio.h>voidmain()(intn,i,j,k,g;printf("Pleaseenterthen:");scanf("%d",&n);k=n;for(i=1;i<=n-1;i++)(for(j=1;j<=i;j++)(printf("");)printf("*");for(j=2*(n-i)-1;j>O;j-)printf("");printf("巧;printfC'\n");}for(i=1;i<=n;i++)(printfCッ;}printf(',*\n,');for(i=1;i<n;i++)(for(g=n-i;g>0;g-)(printf("");)printf("*");for(j=1;j<=2*(i-1)+1;j++)(printf("");)printf("*");printf("\n");

12、输入n值,输出如图所示图形。#include<stdio.h>voidmain()(intn,i,j;printfC'Pleaseenteryourn:M);scanf("%d”,&n);for(i=1;i<=n;i++)(printf("*n);}printf(M\nH);for(i=1;i<n-1;i++)(for(j=2*(n-i)-1;j>0;j-){printf("");}printfC'*");pnntf(H\n");)for(i=1;i<=n;i++)(printf("*");)printf("\n");}13、输入n值,输出如图所示图形。#include<stdio.h>voidmain()(intn.i.j;printf("Pleaseenterthen:");scanf("%d",&n);for(i=1;i<n;i++)(printf("*");printf("巧;printf("\n”);}printf(,,*\nH);for(i=1;i<n;i++)(printf(,'*H);forO=1;j<=i;j++)(printf(HH);)printf(ザ;printf(H\nM);))14、输入n值,输出如图所示图形。#include<stdio.h>voidmain()printfC'Pleaseenteryourn:");scanf(',%d'\&n);printf("巧;for(i=0;i<=n;i++)(printfCM);)printf(,,*H);printf("\nH);for(i=1:i<n;i++)(printf("*");for(j=i;j<n;j++)(printfC");}printf("*");for(j=1;j<=i;j++)(printfC");)printf("*");printf("\n");

}printf("*");for(i=0;i<=n;i++)(printf("");)printf("*\n");}15、输入n值,输出如图所示图形。#include<stdio.h>voidmain()(intn,i,j;printf("Pleaseenteryourn:M);scanf("%d”,&n);for(i=1;i<=n;i++)(forg=2*n-2*i;j>0;j-)printf("");)for(j=1;j<2*i;j++)(printf("*");)printf("\n");}for(i=1;i<=n;i++)(for(j=1;j<=2*i;j++)(printf("");)for(j=2*(n-i);j>1;j-)(printf("*");)printf("\n");}}16、输入n值,输出如图所示图形。(例为n=6时)#include<stdio.h>voidmain()printf("Pleaseenteryourn:");scanf("%d",&n);for(i=1;i<=n;i++)(printf("");}printf("*\n");for(i=1;i<n;i++)(for(j=n-i;j>0;j-)(printf("");)printf("*");for(j=1;j<2*i;j++)(printf("");)printf("*");printf("\n");

17、编写程序,输出如图所示sin(x)函数0到2t!的图形。#definePAI3.14159#include<math.h>#include<stdio.h>main()(doublex;inty,i,yy;for(i=1;i<80;i++){ if(i==40)printf(M*M);elseprintf(“-");}for(x=10.0;x<=360.0;x+=10.0){y=40+30*sin(x*PAI/180.0);yy=40>y?40:y;

if(i==y)printf("巧;elseif(i==40)printf('T');elseprintf(M*');)printf(”\n“);)}18、编写程序,在屏幕上输出ー个由・号围成的空心圆。#include<stdio.h>#include<math.h>main()doublex;

for(x=-10;x<10;x++)(y=2.0*sqrt(1OO-x*x);for(j=0;j<30-y;j++)(printf("");)printf("*");for(j=30-y;j<30+y;j++)(printf("");)printf("*");#defineN100voidmain()(inta[N];intn,i;printf(HPleaseenteryourn:M);scanf("%d”,&n);for(i=0;i<n*n;i++)(a[i]=i+1;if(i%n==0)(printf("\n");)printf("%6d",a[i]);)printf("\n");)Clanguage入门习题训练(三)2010-12-0400:31:351分类:C语言I字号订阅voidmain()inti,j,m,n,k=1;printf("Pleaseenterthen:M);scanf("%d”,&n);for(i=1;i<n;i++)(m=k;for(j=1;j<n-i+1;j++)(printf("%3d",m);m=m+i+j;)k=k+i;printf("\n");}22、输入n值,输出如图所示图形。#include<stdio.h>voidmain()|inti,j,n,k=1,p;inta[50][50];printf("Pleaseenterthen:");scanf("%d",&n);for(i=0;i<n;i++)(for(j=0;j<=i;j++)(P=1;printf("%2d",p);)for(k=2;k<n-i+1;k++)(printf("%2d",k);)24、输入n值,输出如图所示回型方阵。#include<stdio.h>#defineN50;#defineM50;voidmain()(inti,j,n;chara[50][50];printfC'Pleaseenterthen:");scanf("%d”,&n);for(i=0;i<2*n;i++)(for(j=o;j<2*n;j++)a[i][j]=a[i-1][j-1]-1;)elseif(i<n&&j>=n)(矶皿=矶}elseif(i>=n&&j<n)(a[i][j]=aU][i];)elseif(i>=n&&j>=n)(a[i][j]=a[2*n-i-1][j];}if(0==i||2*n-1==i)(a[i]O]=n;if(j==0||2*n-1==j)a[i]O]=n;}printf("%4d",a[i][j]);#include<stdio.h>voidmain()|intn,i,j,k;printf("Pleaseenterthen:");scanf("%d",&n);for(i=1;i<=n;i++)(forO=n-i;j>0;j-)(printf("");)for(k=1;k<i;k++)(printf("%d",k);)for(k=i;k>0;k-)(printf("%d",k);)26、输入n值,输出如图所示图形。#include<stdio.h>voidmain()(intn,i,j;charx=91,q=90;printf("Pleaseenterthen:");scanf("%d",&n);for(i=0;i<n;i++)(printf("");)printf("%c",x-1);printf("\n");for(i=1;i<n;i++)printf("");)x=x-2;printf("%c",x);forO=0;j<2*i-1;j++)(printf("");)q=q-2;printf("%c",q);printf("\n");}x=x-n+6;q=q-n+6;for(i=1;i<n-1;i++)(for(j=-1;j<i;j++)(printf("");)x=x-2;printf("%c",x);printf("");)q=q-2;printf("%c\n",q);}for(i=0;i<n;i++)(printf("");}printf("%c",x-2);}27、输入顶行字符和图形的高,输出如图所示图形。#include<stdio.h>voidmain()(inti,j,n;charx=65,y=65;scanf("%d”,&n);for(i=0;i<n;i++)(printf("");)printf("%c\n",x);for(i=1;i<n;i++)(forO=n-i;j>0;j-)(printf("");)x=x+1;printf("%c",x);for(j=0;j<2*i-1;j++)(printf("");)printf("%c",x);printf("\n");)y=y+n-1;for(i=0;i<n-2;i++)printf("");)y=y-i;printf("%c",y);for(j=2*(n-i)-6;j>0;j-)(printf("");)printf("");printf("%c\n",y);}for(i=0;i<n;i++)(printf("");}printf("%c",y-1);28、输入首字符和高后,输出如图所示回型方阵。AAAAAABBBAABCBAABBBAAAAAA图4.24首字符为TV、高为5的方阵1128、输入首字符和高后,输出如图所示回型方阵。#include<stdio.h>//#defineN50;//#defineM50;voidmain()(inti,j,n,b;chara[50][50];printf(HPleaseenterthecharacter:1*);scanf(**%c**,&b);printf(**Pleaseentertheheight:**);scanf(**%d**,&n);for(i=0;i<n;i++)if(i<n/2&&j<n/2)(a[i]0]=a[i-1]D-1]+1;)if(i<n/2&&j>n/2)(a[i]0]=a[i-1]Q+1]+1;}if(i>=n/2&&j<n/2)(a[i][j]=aU][i];}if(i>=n/2&&j>=n/2)(a[i]0]=a[n-i-1]0J;)if(i==n/2+1/2)(a[i][j]=a[i-1]0];}if(j==n/2+1⑵(a[i][j]=a[i][j-1];if(i==n/2+1/2&&j==n/2+1/2)(a[i][j]=a[i-1]0-1]+1;}if(i==0||j==0||i==n-1||j==n-1)(a[i][j]=b;)printf("%3c",a[i][j]);}printf("\n");}}29、输入中心字符和高后,输出如图所示回型方阵。XXXXXXYYYXXYZYXXYYYYXXXXX图4.25中心字符为,Z,、高为5的方阵同28题30、编写程序,输出如图所示上三角形式的乘法九九表。〃编写程序,输出如图所示上三角形式的乘法九九表

#include<stdio.h>voidmain()(inti,j,a=1,b=1;for(i=1;i<=9;i++)(printfC'%3dw,i);}printf("\n");for(i=0;i<=3*9;i++)(printf("-w);}printf(”\n");for(i=1;i<=9;i++)(a=i*i;forQ=0;j<3*(i-1);j++)printf(Mfor(j=9-i;j>0;j-)(a=a+i;printf("%3d",a);)printf("\n");}31、编写程序,输出如图所示下三角乘法九九表。〃编写程序,输出如图所示下三角乘法九九表。#include<stdio.h>voidmain()for(i=1;i<=9;i++)(printf("%3d",i);}printf("\n");for(i=0;i<27;i++)(printf("-");}printf("\n");for(i=0;i<9;i++)(b=(9-i)*(9-i);forO=3*(8-i);j>0;j-)(printf("");)printf("%3d",b);for(j=0;j<i;j++)b=b+(9-i);printf("%3d",b);printf("\n");))32、编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误的提示信息。〃编写程序,输入三角型的三条边长,求其面积。注意:对于不合理的边长输入要输出数据错误的提示信息#include<math.h>#include<stdio.h>voidmain()(floata,b,c;doublep,s;printf(HPleaseenterthefirstside:11);scanf("%r,&a);printf("Pleaseenterthesecondside:'*);scanf(H%r,&b);printf("Pleaseenterthethirdside:'*);scanf(H%r,&c);p=(a+b+c)/2.0;if(a+b>c&&a+c>b&&b+c>a)(s=sqrt(p*(p-a)*(p-b)*(p-c));printf("s=%f',s);}elseprintf("Error!\n");}33、编写程序求出555555的约数中最大的三位数是多少。〃编写程序求出555555的约数中最大的三位数是多少#include<stdio.h>voidmain()|inti.j;for(j=0,i=1;i<1000;i++)(if(555555%i==0)((j=i;}printf("max=%d\ng",j);)34、编写程序计算下列算式的值:直到某ー项A<=0.000001时为止。输出最后C的值。#include<stdio.h>voidmain()(floatc,a,x;printf(HPleaseenterthex:H);scan軍%fl&x);if(x>1)(for(a=1/x;a>0.000001;x=x*x,a=1/x)(c=1+a;)printf("c=%f',c);}elseprintf(MError!\nM);)35、从键盘输入任意的字符,按下列规则进行分类计数。第一类,O','T,2,'3','4','5','6',7,'8','9'第二类第三类其它字符当输入字符'V时先计数,然后停止接收输入,打印计数的结果。从键盘输入任意的字符,按下列规则进行分类计数。第一类,O','T,'2','3','4','5','6',7','8','9'第二类,+', '*',ソ','%',':第三类其它字符*/#include<stdio.h>voidmain()chara;intfirst=0,second=0,third=0,n,i;printf("Howmanycharactersdoyouwant:");scanf("%d",&n);for(i=0;i<n;i++)printf("Pleaseenteryourcharacter:\n");getchar();scanf("%c",&a);if((a>47&&a<58)||(a==43||a==45||a==47||a==37||a==61))(if(a>47&&a<58)(printf("第一类'n");first=first+1;printf("first=%d\n",first);}if(a==43||a==45||a==47||a==37||a==61)(printf("第二类\n");second=second+1;printf("second=%d\n",second);})elseprintf("第三类\n");third=third+1;printf("third=%d\nH,third);}))37、编写程序计算当x=0.5时下述级数和的近似值,使其误差小于某一指定的值epsilon(例如:epsilon=0.000001):〃37、编写程序计算当x=0.5时下述级数和的近似值,使其误差小于某一指定的值epsilon//(例如:epsilon=0.000001):#include<stdio.h>#include<math.h>intjiecheng(intj)(inty=1,i;for(i=1;i<=j;i++)

y=y*i;}return(y);)voidmain()(intn;doublex=0.5;doubley=0;do(y=y+x+pow(x,2*n+1)/((2*n+1))*pow(-1,n);n++;}while(y>0,000001);printf("%d\n",y);)38、编写程序计算下式的值:#include<stdio.h>

inti.j;for(j=0,i=1;i<=a;i++)(j=j+i;)return(j);}intIeijia2(inta)(intij;for(j=0,i=1;i<=a;i++)(j=(j+i)*(j+i);}return(j);}intIeijia3(inta)(intij;for(j=0,i=1;i<=a;i++)}return(j);)voidmain()(ints,s1,s2,s3;s1=leijia(100);s2=leijia2(50);s3=leijia3(10);s=s1+s2+s3;printf(w%dw,s);)39、编写程序计算下列序列的值:要求最后ー项小于。.001时、或者当N=20时尚未达到精度要求,则停止计算。#include<stdio.h>#include<math.h>floats;if(n==1)(s=1;}else(s=(n*(n-1));}return(s);}voidmain()|inti,n1,n2,k=0;floats=0.0;printf("pleaseenterthen:");scanf("%d",&n1);n2=n1+1;for(i=1;i<=n2;i++)k=k+1;s=s+pow(liangge(k),-1);)printf("%f\n",s);)Clanguage入门习题训练(四)2010-12-0400:36:30|分类:C语言|字号订阅41、从键盘输入十个整数,用插入法对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。〃41.从键盘输入卜个整数,用插入法对输入的数据按照从小到大的顺序进行排序,将排序后的结果输出。#include<stdio.h>intmain(){inta[10];intfor(i=0;i<10;i++)printf("Pleaseenterthenumber:");scanf("%d",&a[i]);}for(j=0;j<10;j++){ (注意,在此处j是数组的下标,i是其后剩余的需要被ーー进行比较的数的个数)for(i=1;i+j<10;i++)(if(aO]>aO+i])(t=aO];aO]=aO+i];a[j+i]=t;))}for(i=0;i<10;i++)(printf("%d\n",a[i]);}return(0);42、输入一个正整数,要求以相反的顺序输出该数。例如输入12345,输出位54321。〃42、输入ー个正整数,要求以相反的顺序输出该数。例如输入12345,输出位54321#include<string.h>#include<stdio.h>intmain()(chara[50];inti;gets(a);strrev(a);puts(a);return(0);}43、编写程序,读入ー个整数N;若N为非负数,则计算N到2、N之间的整数和;若N为一个负数,则求2xN到N之间的整数和。分别利用for和while写出两个程序。“43、编写程序,读入ー个整数N;,则计算若N为非负数N到2、N之间的整数和:若N为一个负数,〃则求2xN到N之间的整数和。分别利用for和while写出两个程序。#include<stdio.h>intmain()inta,b=O;inti;printf("Pleaseenterthea:”);scanf("%d”,&a);if(a>0)(for(i=a;i<=2*a;i+=2)(b=b+i;)}if(a<0)(for(i=2*a;i<=a;i+=2)(b=b+i;))printf("%d\n",b);return(0);44、求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶?/*44、求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶?*/#include<stdio.h>intmain()(inti,j=7;for(i=7;(i-1)%2!=0||(i-2)%3!=0||(i-4)%5!=0||(i-5)%6!=0||i%7!=0;i++)(j=j+1;}printf("%d\n",j);return(0);}45、ー个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到ー个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到ー个商是a的2倍。编写程序求这个自然数。“46、编写程序,用二分法求一元二次方程2x3*4x2+3x-6=0在(10,10)区间的根。#include<stdio.h>#include<math.h>doublefangcheng(doublex)(doubley;y=2*pow(x,3)-4*pow(x,2)+3*x-6;return(y);)intmain()(inti,n;doublex;inta=-10,b=10;doublec;printfC'Pleaseenterthecishu");scanf("%d”,&n);for(i=0;i<n;i++)x=(a+b)/2;c=fangcheng(x);if(c*fangcheng(a)<0)(b=(a+b)/2;)else(a=(a+b)/2;)}printf("%lf',x);return(0);47、中国古代科学家祖冲之采用正多边形逼近的割圆法求出了!!的值。请编写ー程序,采用割圆法求出!t的值,要求精确到小数点之后的第十位。〃47、中国古代科学家祖冲之采用正多边形逼近的割圆法求出了〃!!的值。请编写ー程序,采用割圆法求出!!的值,要求精确到小数点之后的第十位。单位圆,内接6边形弦长y(1)=1I周长d(1)=2A0*6*y,pi的近似值p(1)=d/2=3*2A〇・y=3y(1)=3同时,利用勾股定理计算12边形弦长y(2),y2*y2=2-sqrt(4-y1*y1)=2-sqrt(3)p(2)=3*2A1*y(2)=6y(2)同样地,24边弦长y3,y3*y3=2-sqrt(4-y2*y2)p(3)=3*2A2*y(3)=12y(3)*/#include<stdio.h>#include<math.h>intsplitcircle(intn)(inti;doublek,y2;for(i=0,k=3.0,y2=1.0;i<n;++i,k*=2.0)printf("sides=%d,pi(%d)=%,24f\n",3*(1«i),i,k*sqrt(y2));y2=2-sqrt(4-y2);}returni;)intmain()|returnsplitcircle(12);)48、A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三竿,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。C、D、E依次醒来,也按同样的方法拿鱼。编写程序求出他们合伙至少捕了多少条鱼。I*48、A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三竿,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的ー份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的ー份。C、D、E依次醒来,也按同样的方法拿鱼。编写程序求出他们合伙至少捕了多少条鱼。*/#include<stdio.h>intyu(inti)(inta,b,c,d,e;intj;if((i-1)%5==0)(a=0;}else(a=1;}if(((i-1)/5-1)*(4/5)%5==0)(b=0;)else(b=1;}if((((i-1)/5-1)*(4/5)/5-1)*(4/5)%5==0)c=0;}else(c=1;}if(((((i-1)/5-1)*4/5/5-1)-1)*(4/5)%5==0)(d=0;}else(d=1;)if((((((i-1)/5-1)/5-1)-1)-1)%5==0)(e=0;}else(e=1;}if(a==O&&b==O&&c==O&&d==O&&e==O)j=0;}else(j=1;}return(j);)intmain()(inti,j=5;for(i=5;yu(i)!=0;i++)(j=j+1;}printf("%d",j);return(O);49、-・辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的ー些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的:丙是位数学家,他说:四位的车号刚好是ー个整数的平方。请根据以上线索求出车号。/*49、一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的ー些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是ー个整数的平方。请根据以上线索求出车号。#include<stdio.h>intche(inti)(inta,b,c;intk,l=O;if(i/1000==i%1000/100&&i%100/10==i%10)(a=0;)for(k=0;k<100;k++)if(k*k==i)

b=0;)if(a==O&&b==O)(c=0;}return(c);intmain()intij=1;for(i=1000;che(i)!=0;i++){j=j+1;)printf("%d",j);return(O);50、若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,编写程序求出共有多少种不同的颜色搭配。

/*50、若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,编写程序求出共有多少种不同的颜色搭配。*/#include<stdio.h>intmain()|intred;intwrite;intblack;inti=0;for(red=0;red<=3;red++)(for(write=0;write<=3;write++)(for(black=0;black<=6;black++)(if(red+write+black==8)(i++;printf("red=%d,write=%d,black=%d\n",red,write,black);)}return(O);}51、100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。/*bighouse+normalhouse+smallhouse==100;51、100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。*/#include<stdio.h>intmain()(intbighouse,normalhouse,smallhouse;for(bighouse=0;bighouse<=100;bighouse++)for(normalhouse=0;normalhouse<=100;normalhouse++)for(smallhouse=0;smallhouse<=100;smallhouse++)(if(bighouse+normalhouse+smallhouse==100&&bighouse*3+normalhouse*2+smallhouse==100)(printf(',bighouse=%d,normalhouse=%d,smallhouse=%d',,bighouse,normalhouse,smallhouse);))})return(O);)52、编写程序,输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法。〃52、编写程序,输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法。#include<stdio.h>intmain()intonecent,twocent,fivecent;inta=0;for(onecent=0;onecent<=100;onecent++){for(twocent=0;twocent<=50;twocent++)(for(fivecent=0;fivecent<=20;fivecent++)(if(onecent+2*twocent+5*fivecent==100)(a++;printf("%4d%4d%4d\n",onecent,twocent,fivecent);)})}printf("种return(O);)53、显示200以内的完全平方数和它们的个数。(完全平方数:A2+B2=C2,求A、B、C)〃53.显示200以内的完全平方数和它们的个数。(完全平方数:A2+B2=C2,求A、B、C)intmain()(inta,b,c;intd=0;for(a=0;a<=200;a++)(for(b=0;b<=200;b++)(for(c=0;c<=200;c++)(if(a*a+b*b==c*c)(printf("a=%d,b=%d,c=%d\n",a,b,c);d++;)})}printf("number=%d\n",d);return(O);54、设N是ー个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。1154、设N是ー个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。#include<stdio.h>intmain()(inti;inta,b,c,d;for(i=1000;i<10000;i++)a=i/1000;b=i%1000/100;c=i%100/10;d=i%10;if(i*9==1000*d+c*100+b*10+a)(printf("n=%d",i);)}return(O);55、将一个数的数码倒过来所得到的新数叫原数的反序数。如果ー个数等于它的反序数,则称它为对称数。求不超过1993的最大的二进制的对称数。#include<iostream.h>intcount(intn)(inta[4];inti=0;while(n!=0)a[i]=n%10;n=n/10;i++;}if(i==2)if(a[O]==a[1])return1;elsereturn0;if(i==3)•f(a[0]==a[2])return1;if(i==4)if(a[0]==a[3]&&a[1]==a[2])return1;elsereturn0;voidmain()for(inti=10;i<2000;i++)(if(count(i))cout«i«””;)cout«endl;)56、编写程序求解下式中各字母所代表的数字。PEAR—ARAPEA/*56、编写程序求解下式中各字母所代表的数字。PEAR-ARAPEA*/intmain()(intp,e,a,r;printffPEAR\n");printff-ARA\nu);printf(H \nM);printffPEA\nH);for(p=1;p<10;p++)(for(e=0;e<10;e++)(for(a=0;a<10;a++)(for(r=0;r<10;r++)(if(1000*p+100*e+10*a+r-a*100-r*10-a==p*100+e*10+a)printf("p=%d,e=%d,a=%d,r=%d\n",p,e,a,r);))}return(O);58、请验证2000以内的哥德巴赫猜想,对于任何大于4的偶数均可以分解为两个素数之和。/*58、请验证2000以内的哥德巴赫猜想,对于任何大于4的偶数均可以分解为两个素数之和。*/#include<stdio.h>intfen(inti)for(a=2;a<i;a++)(if(i%a==O)(b=b+1;)}if(b==O)(c=0;}return(c);)intmain()(intn;intij;printf(HPleaseenterthenumber:'*);scanf(“%d”,&n);for(j=i;i<=2000;i++)for(j=1;j<=2000;j++)if(i+j==n)(if(fen(i)==O&&fen(j)==O)(printf("%d=%d+%d\n",n,i,j);}))}return(O);}59、如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。如407=43+03+73就是ー个阿姆斯特朗数。编写程序求1000以内的所有阿姆斯特朗数。/*59、如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。如407=43+03+73就是ー个阿姆斯特朗数。编写程序求1000以内的所有阿姆斯特朗数。*/#include<stdio.h>intmain()inta,b,c;for(a=0;a<10;a++)(for(b=0;b<10;b++)(for(c=0;c<10;c++)(if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)(printf("%d\n",a*100+b*10+c);)})}return(O);60、任意输入ー个偶数,请将它分解为两个素数之和。〃60、任意输入ー个偶数,请将它分解为两个素数之和。intfen(inti)(intc,a,b=O;for(a=2;a<i;a++)(if(i%a==O)(b=b+1;)}if(b==O)(c=0;}return(c);)intmain()intn;inti.j;printf("Pleaseenterthenumber:");scanf("%d",&n);for(i=1;i<=n;i++)(for(j=1;j<=n;j++)(if(i+j==n)(if(fen(i)==O&&fen(j)==O)(printf("%d=%d+%d\n",n,i,j);}}}}return(O);)61、如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。I*61、如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1.不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。#include<stdio.h>intqin(intn)(ints=0,a;for(a=1;a<n;a++)(if(n%a==0)(s=s+a;)}return(s);}intmain()(inta,b;for(a=0;a<=3000;a++)for(b=0;b<=3000;b++)if(qin(a)==b&&qin(b)==a)(printf("a=%d,b=%d\n",a,b);})}return(O);}62、猜数游戏。由计算机"想"ー个数请人猜,如果人猜对了,则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录人猜的次数,以此可以反映出猜数者"猜"的水平。/*62、猜数游戏。由计算机"想"ー个数请人猜,如果人猜对了,则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录人猜的次数,以此可以反映出猜数者"猜"的水平。*/#include<stdio.h>#include<stdlib.h>#include<time.h>intmain()inta,b,c,d=O;srand(time(NULL));a=rand()%100;for(c=0;b!=a;c++)(d=d+1;printfC'Pleaseenterthenumber:");scanf("%d",&b);if(a>b){printf("small\n");)if(b>a){printf("big\n");}if(a==b)(printf("%d\n",d);)}return(O);63、编写程序求出100〇!后有多少个零。〃63、编写程序求出100〇!后有多少个零。#include<stdio.h>intmain()(inti,j;inta=O,c;for(i=i;i<=iooo;i++){c=i;for(j=1;c%5==0;j++){if(c%5==0)(c=c/5;a=a+1;})}printf("%d\nM,a);return(O);64、求矩阵A[2*3]的转置矩阵B[3*2]O设矩阵A为:r123-I「14ラA=|IB=|25|1-456」「36」〃64、求矩阵A[2*3]的转置矩阵B[3*2]o设矩阵A为:「123ラr14-)#include<stdio.h>intmain()|inta[2][3];intb[3][2];intij;for(i=0;i<2;i++)(for(j=0;j<3;j++)(a皿]=3*i+j+1;printf("%2d",a[i]0]);)printf("\n");}for(i=0;i<3;i++)(for(j=0;j<2;j++)(b[i][j]=a[j][i];printf("%2d",b[i][j]);}printf("\n");}return0;)65、十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将自己手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次调整后大家手中的糖的块数都一样?每人各有多少块糖?I*65、十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将自己手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次调整后大家手中的糖的块数都一样?每人各有多少块糖?*/#include<stdio.h>intmain()(inti,j,m=O,n=O;inta[10]={10,2,8,22,16,4,10,6,14,20);for(j=0;m!=1;j++)(for(i=0;i<10;i++)(n=n+1;a[i+1]=a[i+1]+a[i]/2;for(i=0;i<10;i++)(if(a[i+1]==a[i])(m=1;}printf("Timeis%d\n",n);return0;)67、编写程序,以字符形式输入ー个十六进制数,将其变换为ー个十进制整数后输出。/67、编写程序,以字符形式输入一个十六进制数,将其变换为ー个十进制整数后输出。#include<stdio.h>intmain()(inta;printfC'PleaseenteranumberAn");scanf("%x”,&a);printf(wtheresultis%d'n”,a);return0;)Clanguage入门循环结构计算s=1+3+7+…+97+99。要求写出用while,do-while,for三种解法。#include<stdio.h>voidmain()(inti,s;s=0,i=0;do(s=s+2*i+1;i=i+1;)while(i<50);printf(Ms=%d\n,,,s);)#include<stdio.h>voidmain()(inti,s;s=0,i=0;do

s=s+2*i+1;i=i+1;}while(i<50);printf("s=%d\nH,s);}#include<stdio.h>voidmain()(ints,i;for(s=0,i=0;i<50;i++)s=s+2*i+1;printf("s=%d\n",s);)用while编程计算书本例5-6〇#include<stdio.h>voidmain()

intij,s;for(s=0,i=1;i<=10;i++)for(j=1;j<=i;j++)s=s+j;printf("s=%d\nn,s);)(4)任意输入10个数,分别计算输出其中正数和负数的和。〃任意输入10个数,分别计算输出其中正数和负数的和.#include<stdio.h>voidmain()(inta,b,c,d,e,f,g,h,ij,sum1,sum2;printff'Entertennumber:");scanf("%d%d%d%d%d%d%d%d%d%d”,&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);sum1=0;sum2=0;if(a>0)(sum1=sum1+a;elseif(a<=0)sum2=sum2+a;if(b>0){sum1=sum1+b;}elseif(b<=0)sum2=sum2+b;if(c>0)(sum1=sum1+c;}elseif(c<=0)sum2=sum2+c;if(d>0)(sum1=sum1+d;}elseif(d<=0)sum2=sum2+d;if(e>0)(sum1=sum1+e;)elseif(e<=0)sum2=sum2+e;sum1=sum1+f;)elseif(f<=0)sum2=sum2+f;if(g>o)(sum1=sum1+g;}elseif(g<=0)sum2=sum2+g;if(h>0){sum1=sum1+h;}elseif(h<=0)sum2=sum2+h;if(i>0)(sum1=sum1+i;}elseif(i<=0)sum2=sum2+i;sum1=sum1+j;}elseif(j<=0)sum2=sum2+j;printf(Hsum1=%d,sum2=%d\nM,sum1,sum2);)(5)计算1〜100以内所有含6的数的和。#include<stdio.h>voidmain()(inti,s;for(i=1,s=0;i<=100;i++)(if(i%6==0)(s=s+i;)}printf("s=%d\n",s);(6)输出所有的3位水仙花数。所谓水仙花数是指所有位的数字的立方之和等于该数,例如:153=1"3+5"3+3"3〃输出所有的3位水仙花数。所谓水仙花数是指所有位的数字的立方之和等于该数,例如:153=1A3+5A3+3A3#include<stdio.h>voidmain()(inta,b,c,j;forO=100;j<1000;j++)(a=j/1OO;b=g-100*a)/10;c=(j-100*a-10*b);if(a*a*a+b*b*b+c*c*c==j)(printf("j=%d\n",j);)/・编写程序输出下面图形。要求用循环12345678910*/#include<stdio.h>voidmain()(intij;intaa=1;for(i=1;i<=4;i++)(for(j=0;j<i;j++)printf("%d",aa++);printf("\n");)(8)编写程序输出下面图形。要求用循环#include<stdio.h>voidmain()(intij;for(i=1;i<=4;i++)(for(j=4-i;j>0;j-)printf("");forG=1;j<=2*i-1;j++)printf("*");for(j=4-i;j>0;j-)printf("");printf("\n");}for(i=1;i<=4;i++)for(j=1;j<=i;j++)printf("");for(j=2*(4-i)-1;j>0;j-)printf("*");for(j=1;j<=i;j++)printf("");printf("\n");)}〃9输入10个学生的成绩,求出及格的人数#include<stdio.h>voidmain()(inta,b,result;for(result=0,a=1;a<=10;a++)(printf("PleaseentertheMark:");scanf("%d",&b);result=result+1;}printf(',result=%d\nH,result);)(10)输入10个学生的成绩,求出及格分中每个分数段的人数。(如100,99〜90,89〜8〇…)#include<stdio.h>voidmain()(inta,b,r1,r2,r3,r4,r5;for(r1=0,r2=0,r3=0,r4=0,r5=0,a=1;a<=10;a++)(printf(nPleaseentertheMark:'*);scanfC'%dH,&b);if(59<b&&b<70)(r1=r1+1;}r2=r2+1;if(79<b&&b<90)(r3=r3+1;)if(89<b&&b<100)(r4=r4+1;)if(b==100)(r5=r5+1;))printf("69~60=%d,79~70=%d,89~80=%d,99~90=%d,100=%d"lr1,r2,r3,r4,r5);}Clanguage入门选择结构2010-12-0400:14:031分类:C语渇|字号订阅//(1)输入二个整数x,y,请把这二个数中较小的数。#include<stdio.h>intx,y;printf(HPleaseentertwonumbers:\nM);scanf(H%d%d",&x,&y);if(x<y)x=y;printf("Themaxis%d.\n",x);)//(2)输入三个整数x,y,z,请把这三个数由小到大输出。#include<stdio.h>voidmain()(intx,y,z,t;printfC'Pleaeenterthreenumber:\nM);scanf("%d%d%d”,&x,&y,&z);t=x;x=y;y=t;}if(x>z)(t=x;x=z;Z=t;}if(y>z)(t=y;y=z;z=t;}printf("%d%d%d\n",x,y,z);//(3)输入学生成绩并判断是否及格,若及格输出"pass”,否则输出"false"。#include<stdio.h>inta;printf(HPleaseenterthemark:");scanf("%d",&a);if(a>=60)printf("pass!\n");elseprintf("false!\n");)II(4)输入一个字符并判断是否是小写字母,若是则直接输出,否则先转化为小写字母再输出。#include<stdio.h>voidmain()(chara,b;printf("Pleaseenterthecharacter:");scanf("%c",&a);if(97<=a&&a<=122)putchar(a);elseb=a+32;printf(w%c\nM,b);//(5)分段函数y=(x+2)(x・2),x>0;y=0,x=0或x=-2;y=(x+2)(x-4),x<0;输入任后、x»求y值〇#include<stdio.h>voidmain()(intx,y;printf(HPleaseenterthex:\nM);scanf("%d”,&x);if(x>0)y=(x-2)*(x+2);if(x<0)y=(x+2)*(x-4);printf("y二%d\n,y);n(6)从键盘输入ー个正整数作为年份,编程判断该年是不是闰年。#include<stdio.h>voidmain()(inta;printf("Pleaseenterthreyear:'*);scanf("%d”,&a);if(a%400==0)printf("Yes!\nH);if(a%100==0&&a%400!=0)printf(MNO!\nM);if(a%100!=0&&a%4==0)printf("Yes!\nH);elseprintf(MNO!\nM);//(7)输入2个字符,输出这两个数的关系。如若输入的数据为a,b;则输出a!=b。否则输出a=bo#include<stdio.h>voidmain()chara,b;a=getchar();getchar();b=getchar();if(a==b)printf(Ma=b\nw);elseprintf("a!=b\n");)〃(8)输入整数a,b,c代表方程axA2+bx+c=0的3个系数,求出x的两个解(虚数用i表示)。

#include<math.h>voidmain()(inta,b,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论