程序设计编程能力考核题测试用例131题答案.docx
- 文档编号:25651899
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:22
- 大小:18.88KB
程序设计编程能力考核题测试用例131题答案.docx
《程序设计编程能力考核题测试用例131题答案.docx》由会员分享,可在线阅读,更多相关《程序设计编程能力考核题测试用例131题答案.docx(22页珍藏版)》请在冰豆网上搜索。
程序设计编程能力考核题测试用例131题答案
1.键盘上输入n个数,输出最大值最小值
#include
voidmain()
{
intarray[50];
inti,n;
printf("pleaseinputnumbers,input'0'tostop\n");
for(i=0;;i++)
{scanf("%d",&array[i]);
if(array[i]==000)
break;
}
for(n=0;n<=i-2;n++)
if(array[0]>=array[n+1])
array[0]=array[n+1];
printf("theminnumberis%d\n",array[0]);
for(n=0;n<=i-2;n++)
if(array[0]<=array[n+1])
array[0]=array[n+1];
printf("themaxnumberis%d\n",array[0]);
}
2.求一个3位数abc使得a的阶乘+b的阶乘+c的阶乘=abc
#include
voidmain()
{
intjiecheng(inta);
inta,b,c;
for(a=1;a<=9;a++)
for(b=1;b<=9;b++)
for(c=1;c<=9;c++)
if(jiecheng(a)+jiecheng(b)+jiecheng(c)==a*100+b*10+c)
printf("ais%d,bis%d,cis%d\n",a,b,c);
}
intjiecheng(inta)
{
inti,s=1;
for(i=1;i<=a;i++)
s=s*i;
returns;
}
//输出145
3.题目:
有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
#include
void main()
{
int i;
float m=1,n=1,t,s=0;
for(i=1;i<=20;i++) /*就是进行二十次循环,求个和*/
{
t=m+n;
s=s+t/n;
m=n;
n=t;
}
printf("%9.6f\n",s);
}
4.输入整数N,求N的阶乘
#include
voidmain()
{
inti,j=1,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
j=j*i;
printf("%d\n",j);
}
/*注意在实际打的时候,i,j要定义为float型,其初值比都是1*/
5.输入一串正整数,倒序输出
#include
voidmain()
{
inta[10],i;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=9;i>=0;i--)
printf("%d\n",a[i]);
}
6.求10~1000之间所有数字之和为5的整数的个数
#include
intmain()
{
inti;
intcounter=0;
for(i=100;i<1000;++i)
if(i/100+(i/10)%10+i%10==5)++counter;
printf("%d\n",counter);
return0;
}
7.输入字符串打印除小写元音字母之外的。
用数组
#include
voidmain()
{
inti,j;
chars[20];/*字符串长度(实际上是字符总数)不超过20*/
for(i=0;i<20;i++)/*从s[0]开始,逐个字符输*/
scanf("%c",&s[i]);
for(j=0;j<20;j++)
{
if(s[j]!
='a'&&s[j]!
='e'&&s[j]!
='i'&&s[j]!
='o'&&s[j]!
='u')
printf("%c",s[j]);/*不换行,各字符在一行输出*/
}
}
8.从键盘输入10个整数,计算其中偶数的和以及偶数平均数,(用小数表示)
#include
voidmain()
{
inta[10],sum=0,i;
floatb;
for(i=0;i<=9;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<=9;i++)
{
if(a[i]%2==0)
{
printf("%d\n",a[i]);
sum=sum+a[i];
}
}
b=(float)sum/10;
printf("%d\n",sum);
printf("%f\n",b);
}
9.从键盘输入10个整数,计算其中奇数之和以及奇数的平均数,(用小数表示)
#include
voidmain()
{
inta[10],i,sum=0;
floatm;
for(i=0;i<=9;i++)
{
scanf("%d",&a[i]);
if(a[i]%2!
=0)
{
sum=sum+a[i];
m=(float)(sum)/10;
}
}
printf("%f\n",m);
}
10.循环语句求Sn=a+aa+aaa+…+aaa…a(n个a)的值其中a是一个数字n由键盘输入
#include
main()
{
doublen1,x,t,t1;
intcx,i;
scanf("%lf,%d",&n1,&cx);
t=n1;
t1=n1;
for(i=1;i { t=t*10+n1; t1+=t; } printf("%0.0lf",t1); } 11.求1! +2! +3! +…+n! (当n=10时得4037913) #include voidmain() { inti,j=1,n,sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { j=j*i; sum=sum+j; } printf("%d\n",sum); } 12.1*1+2*2+….+n*n<=1000的最大数n #include #include voidmain() { inti,j=1,k,sum=0; for(i=1;sum<=1000;j++) { i=j*j; sum=sum+i; } k=sqrt(i)-1; printf("%d\n",k); } 13.0~1000同时被7和13整除的数 #include voidmain() { intn; for(n=1;n<=1000;n++) { if(n%7==0&&n%13==0) printf("%d\n",n); } } 14.1/1+1/2+1/3+…+1/20 #include voidmain() { inti,j=1,n; floatsum=0; n=1+2*(20-1); for(i=1;i<=n;) { sum=sum+j/(float)(i);/*变i或变j都一样,运算后自然向高级靠拢,不能都变! */ i=i+2; } printf("%f\n",sum); } 15.sum=1-1/3+1/5-1/7+…+1/n(1/n<0.0001) #include #include voidmain() { inti,j=1; floatk=1,sum=0; for(i=1;fabs((float)(j)/i)>1e-4;) { sum=sum+(float)(j)/i; if(i>0) { i=i+2; i=-i; } else { i=i-2; i=-i; } } printf("%f\n",sum); } 16.求e用e=1+1/1! +1/2! +…+1/n! (1/n! <10的-6次方) #include voidmain() { inti,j=1,n=1; floatsum=1; for(i=1;((float)(i)/n)>1e-6;j++) { n=n*j; sum=sum+(float)(i)/n; } printf("%f\n",sum); } 17.用л∕4约等于1-1/3+1/5-1/7+…直到某一项的绝对值小于10的-6次方为止 #include #include voidmain() { floatj=1,pi=0,n=1.0;/*pi就是∏*/ inti=1; while(fabs(j)>1e-6)/*最后一项绝对值大于10的-6次方,用到了数学函数*/ { pi=pi+j; i=-i; n=n+2; j=i/n; } pi=pi*4; printf("%10.6f\n",pi);/*规定长为十位,有六位小数*/ } 18.输出1~10的阶乘,分行打出 #include void main() { int i,j=1; for(i=1;i<=10;i++) { j=j*i; printf("%d\n",j); } } 19.输入正数,判断是否是素数 #include voidmain() { inti,m; scanf("%d",&m); for(i=2;i<=m;i++) if(m%i==0)break;/*这句话很关键*/ if(i printf("%d不是一个素数",m); else printf("%d是一个素数",m); } 20.1+(1+2)+(1+2+3)+…+(1+2+…+n)输入n=20,得1540 #include voidmain() { inti,n,temp=0,sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { temp=temp+i; sum=sum+temp; } printf("%d\n",sum); } 21.输入年月,输出该月有多少天。 #include voidmain() { inta,c; scanf("%d,%d",&a,&c); if(((a%4==0)&&(a%100! =0))||(a%400==0)) { if(c==2) printf("29\n"); } else { if(c==2) printf("28\n"); } switch(c) { case1: case3: case5: case7: case8: case10: case12: printf("%d\n",31);break; case4: case6: case9: case11: printf("%d\n",30);break; } } 22.编一个计算器,可以计算“+”“-”“*”“/” #include voidmain() { floata,b; charf; scanf("%f",&a); f=getchar(); scanf("%f",&b); switch(f) { case'+': printf("a+b=%f",a+b);break; case'-': printf("a-b=%f",a-b);break; case'*': printf("a*b=%f",a*b);break; case'/': printf("a/b=%f",a/b);break; default: printf("inputerror! \n"); } } 23.求555555的约数中最大的3位数: 777 #include voidmain() { longj=555555; inti; for(i=999;i>=100;i--) if(j%i==0) { printf("%d\n",i); break; } } 24.韩信点兵: 士兵5人一行,末行一人;6人一行,末行5人;7人一行,末行4人,11人一行,末行10人。 求士兵人数〉11: 2111 #include voidmain() { inti; for(i=11;i<=3000;i++) { if(i%5==1&&i%6==5&&i%7==4&&i%11==10) printf("%d\n",i); } } 25.爱因斯坦阶梯问题(119) #include voidmain() { inti; for(i=1;i<=200;i++) { if(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0) printf("%d\n",i); } } 26.输入m,n求其最小公倍数 #include voidmain() { intm,n,max,min,i; printf("请输入两个数(逗号隔开): "); scanf("%d,%d",&m,&n); if(m>n) { i=m; m=n; n=i; } for(i=m;i>0;i--) { if(m%i==0&&n%i==0) { max=i; min=m*n/max; break; } } printf("这两个数的最小公倍数是%d\n",min); } 27输入m,n求其最大公约数 #include voidmain() { intm,n,max,i; printf("请输入两个数(逗号隔开): "); scanf("%d,%d",&m,&n); if(m>n) { i=m; m=n; n=i; } for(i=m;i>0;i--) { if(m%i==0&&n%i==0) { max=i; break; } } printf("这两个数的最大公约数是%d\n",max); } ps: 1.输入两个正整数,m和n,求其最大公约数和最小公倍数。 #include voidmain() { intm,n,max,min,i; printf("请输入两个数(逗号隔开): "); scanf("%d,%d",&m,&n); if(m>n) { i=m; m=n; n=i; } for(i=m;i>0;i--) { if(m%i==0&&n%i==0) { max=i; min=m*n/max; break; } } printf("这两个数的最大公约数是%d,最小公倍数是%d\n",max,min); } 28输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。 #include voidmain() { charc; intletters=0,space=0,digit=0,other=0; printf("请输入一行字符: \n"); while((c=getchar())! ='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; elseif(c=='') space++; elseif(c>='0'&&c<='9') digit++; else other++; } printf("字母数: %d\n空格数: %d\n数字数: %d\n其他字符数: %d\n",letters,space,digit,other); } 29.输入十个数,将其排序 #include voidmain() { inti,j,k,a[10]; printf("Pleaseinput10numbers: "); for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=0;j<9;j++) for(i=0;i<9-j;i++) { if(a[i]>a[i+1]) { k=a[i]; a[i]=a[i+1]; a[i+1]=k; } } for(i=0;i<10;i++) printf("%d\n",a[i]); } 30.输出100~200之间的素数 #include intjudge(inta) { intj=1,i; for(i=2;i<=a-1;i++) { if(a%i==0) j=0; } return(j); } voidmain() { intb,c; printf("Theprimenumbersin100~200are: \n"); for(b=0;b<10;b++) for(c=0;c<10;c++) { if(judge(100+10*b+c)) printf("%d",100+10*b+c); } } 31.由36块砖,男人一次可以搬4块,女人一次可以搬3块,2个小孩一次可以搬一块,问男人女人小孩各需多少人可以一次性将砖搬完。 (key: man3woman3child30) #include voidmain() { inta,b,c,d; for(a=0;a<=9;a++) for(b=0;b<=12;b++) for(c=0;c<=72;c++) { if(4*a+3*b+0.5*c==36&&a+b+c==36) printf("Itneed%dmen\nItneed%dwomen\nItneed%dchildren\n",a,b,c); } } 计算100元可以分成几个一元,两元,五元相加的总和(可以只由一种面值组成) #include voidmain() { inta,b,c,d=0; for(a=0;a<=100;a++) for(b=0;b<=50;b++) for(c=0;c<=20;c++) { if(a+2*b+5*c==100) d++; } printf("Thereare%dkindsofpossible",d); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 编程 能力 考核 测试 131 答案