湖南省C语言二级程序题库含答案.docx
- 文档编号:7515389
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:22
- 大小:18.64KB
湖南省C语言二级程序题库含答案.docx
《湖南省C语言二级程序题库含答案.docx》由会员分享,可在线阅读,更多相关《湖南省C语言二级程序题库含答案.docx(22页珍藏版)》请在冰豆网上搜索。
湖南省C语言二级程序题库含答案
湖南省C语言二级程序题库
知abc+cba=1333,其中a,b,c均为一位数,编程求满足条件的a,b,c的组合共有多少种。
请改正程序中的错误,并运行修改后的程序,给出正确程序运行结果,填入相应窗口。
#include
voidmain()
{
intnum,a,b,c,count=0;
/*下行有错*/
while(num=101;num<1000;num++)
{
a=num/100;
b=num%100/10;
c=num%10;
/*下行有错*/
if(num+c*100+b*10+a=1333)
count++;
}
printf("%d\n",count);
}
答案:
#include"stdio.h"
#include"stdafx.h"
voidmain()
{
intnum,a,b,c,count=0;
for(num=101;num<1000;num++)
{
a=num/100;
b=num%100/10;
c=num%10;
if(num+c*100+b*10+a==1333){
count++;
}
}
printf("%d\n",count);
}
下面程序是求[5,75]之间的所有奇数的立方和。
请将程序补充完整,把程序运行的正确结果填入相应窗口。
程序:
#include
#include
#include
main()
{
longsum;
___________
sum=0;
for(i=5;i<=75;i++)
{
if(fmod(i,2)!
=0)
____________
}
printf("%ld",sum);
}
答案:
#include"stdafx.h"
#include
#include
#include
main()
{
longsum;
inti;
sum=0;
for(i=5;i<=75;i++)
{
if(fmod(i,2)!
=0)
sum+=i*i;
}
printf("%ld",sum);
}
输入两个正整数m和n,求其最小公倍数。
请编写程序。
给出当输入m=284,n=96时的结果。
答案:
#include"stdafx.h"
#include
#include
constintMAX=2000;
intlcm(intm,intn)
{
inti,t;
if(m {t=m;m=n;n=t;} for(i=m;i>=1;i++) //if(i/m*m==m&&i/n*n==n)这样是不对的i/m是整除的,比如3/4=1 if(i%m==0&&i%n==0)//判断整除是这么判断的 break; returni; } intmain(void) { intm,n; scanf("%d%d",&n,&m); printf("%d\n",lcm(n,m)); return0; } 3025这个数具有一种独特的性质: 将它平分为两段,即30和25,使之相加后求平方,即(30+25)*(30+25),恰好等于3025本身。 下面程序的功能是: 求出具有这种性质,即abcd=(ab+cd)*(ab+cd)的最小四位数。 请改正程序中的错误,并运行修改后的程序,给出正确程序运行结果,填入相应窗口。 #include main() { intn,a,b; for(n=1000;n<10000;n++) { /*下行有错*/ a=n\100; b=n%100; if((a+b)*(a+b)==n) { printf("%d\n",n); /*下行有错*/ continue; } } } 答案: #include"stdafx.h" #include main() { intn,a,b; for(n=1000;n<10000;n++) { a=n/100; b=n%100; if((a+b)*(a+b)==n) { printf("%d\n",n); break; } } } 函数fun的功能是: 计算并输出3到n之间所有素数的平方根之和。 请将程序补充完整,并运行程序,把正确结果填入相应窗口。 #include #include doublefun(intn) { intm,k,i; doubles=0.0; for(m=3;__________;m++) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) s+=sqrt(m); } __________ } main() { printf("%f\n",fun(100)); } 答案: #include"stdafx.h" #include #include doublefun(intn) { intm,k,i; doubles=0.0; for(m=3;m { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) s+=sqrt(m); } returns; } main() { printf("%f\n",fun(100)); } 已知24有8个因子1,2,3,4,6,8,12,24,而24正好能被8整除,称这样的数为幸运数,求[1,100]之间幸运数的个数。 #include"stdafx.h" #include"stdio.h" voidmain(){ inti,j; intn=0,s; for(i=1;i<100;i++) { s=0; for(j=1;j<=i;j++) if(i%j==0)s++; if(i%s==0)n++; } printf("%d",n); } 以下程序求[1,650]之间能被5或6整除的数的个数。 请改正程序中的错误,并运行修改后的程序,给出正确程序运行结果,填入相应窗口。 #include #include main() { inti; intcount; count=0; for(i=1;i<=650;i++) {/*下行有错*/ if((fmod(i,5)==1)&&(fmod(i,6)==1)) /*下行有错*/ count=count+i; } printf("%d\n",count); } 答案: #include"stdafx.h" #include #include main() { inti; intcount; count=0; for(i=1;i<=650;i++) {/*下行有错*/ if((fmod(i,5)==1)||(fmod(i,6)==1)) /*下行有错*/ count++; } printf("%d\n",count); } 下面的程序是求表达式的值: s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*......*n)/(3*5*7*......(2*n+1)) 请将程序补充完整,并给出当n=40时,将程序的运行结果填入相应窗口(按四舍五入保留10位小数) 程序: #include #include #include doublefun(intn) {doubles,t;inti; ________ t=1.0; for(i=1;i<=n;i++) {t=t*i/(2*i+1); ___________ } returns; } main() {printf("%12.10lf",fun(40)); } 答案: #include #include #include #include doublefun(intn) {doubles,t;inti; s=0.0; t=1.0; for(i=1;i<=n;i++) {t=t*i/(2*i+1); s+=t; } returns; } main() {printf("%12.10lf",fun(40)); } 设有十进制数字a,b,c,d和e,它们满足下列式子: abcd*e=bcde(a不等于0,e不等于0或1),求满足上述条件的最大四位数abcd的值。 #include #include voidmain() { inta,b,c,d,e,i; for(i=9999;i>=1000;i=i-1) { a=i/1000; b=i/100%10; c=i/10%10; d=i%10; for(e=2;e<10;e++) if(i*e==b*1000+c*100+d*10+e) { printf("abcd=%d,e=%d\n",i,e); i=0; break; } } } 下面的程序是求[20,700]之间所有的素数的个数。 请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序: #include #include intprime(intn) {intyes,i; if(n<=1){return0;} /*下行有错*/ yes=0; for(i=2;i<=sqrt(n);i++) if(n%i==0){yes=0;break;} returnyes; } main() {intcount=0,i; for(i=20;i<=700;i++) if(prime(i))count+=1; printf("%d\n",count); } 答案: #include #include #include intprime(intn) {intyes,i; if(n<=1){return0;} /*下行有错*/ for(i=2;i<=sqrt(n);i++) if(n%i==0){break;} returnn; } main() {intcount=0,i; for(i=20;i<=700;i++) if(prime(i))count+=1; printf("%d\n",count); } 所谓回文数是从左至右与从右至左读起来都是一样的数字,如: 121。 编一个程序,计算在100—200的范围内回文数的累加和。 请将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include"stdio.h" intfun(inta,intb) { inti,count=0,low,high; for(i=a;i<=b;i++) { low=i%10; high=i/100; if(low==high) _____________; } returncount; } main() { printf("%d\n",_____________); } 答案: #include #include"stdio.h" intfun(inta,intb) { inti,count=0,low,high; for(i=a;i<=b;i++) { low=i%10; high=i/100; if(low==high) count++; } returncount; } main() { printf("%d\n",fun(100,200)); } 根据算式S=1-x+(x^2)/2! -(x^3)/3! +…+(-1*x)^n/n! x^n表示x的n次方,求当n=15,x=0.5时,S的值,结果保留4位小数。 请编写程序。 有点问题答案: #include"stdafx.h" #include"math.h" #include"stdio.h" voidmain(){ doublesum=1.0,m=1.0; intn,x; scanf("%c%c",&n,&x); for(inti=1;i<=n;i++){ m=m*i; sum+=pow(x,i)/m; } printf("%sum",sum); } 下面的程序是求500以内的所有的素数之和。 请修改程序中的错误,使它能得出正确的结果,并给出正确结果。 程序: #include #include intprime(intn) {intyes,i; if(n<=1){return0;} yes=1; for(i=2;i<=sqrt(n);i++) if(n%i==0){yes=0;break;} /*下行程序有错*/ return1; } main() {intsum=0,i; for(i=2;i<=500;i++) if(prime(i))sum+=i; printf("%d\n",sum); } 答案: #include"stdafx.h" #include #include intprime(intn) {intyes,i; if(n<=1){return0;} yes=1; for(i=2;i<=sqrt(n);i++) if(n%i==0){yes=0;break;} return1; } main() {intsum=0,i; for(i=2;i<=500;i++) if(prime(i))sum+=i; printf("%d\n",sum); } 一辆卡车违犯交通规则,撞人逃跑。 现场三人目击事件,但都没记住车号,只记下车号的一些特征。 甲说: 牌照的前两位数字是相同的;乙说: 牌照的后两位数字是相同的;丙是位数学家,他说: 四位的车号刚好是一个整数的平方。 请根据以上线索编写程序,求出车号。 答案: #include"stdafx.h" #include main() { inta,b,c; for(a=0;a<=9;a++) for(b=0;b<=9;b++) for(c=32;c<=99;c++) if(1100*a+11*b==c*c) printf("%d",c*c); } 下面的程序是求[20,700]之间所有的素数的个数。 请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序: #include #include intprime(intn) {intyes,i; if(n<=1){return0;} /*下行有错*/ yes=0; for(i=2;i<=sqrt(n);i++) if(n%i==0){yes=0;break;} returnyes; } main() {intcount=0,i; for(i=20;i<=700;i++) if(prime(i))count+=1; printf("%d\n",count); } 答案: #include #include #include intprime(intn) {intyes,i; if(n<=1){return0;} for(i=2;i<=sqrt(n);i++) if(n%i==0){break;} returnn; } main() {intcount=0,i; for(i=20;i<=700;i++) if(prime(i))count+=1; printf("%d\n",count); } 所谓回文数是从左至右与从右至左读起来都是一样的数字,如: 121。 编一个程序,求出在300—900的范围内回文数的个数。 请将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include"stdio.h" intfun(inta,intb)答案 上面有 { inti,count=0,low,high; for(i=a;i<=b;i++) { low=i%10; high=i/100; if(_____________) count++; } returncount; } main() { printf("%d\n",_____________); } 下面的程序是求下式的和: s=1+1/(1+2)+1/(1+2+3)+......+1/(1+2+3+......+n) 请改正程序中的错误,并运行修改后的程序,当n=80时,给出程序运行结果(按四舍五入保留6位小数)。 程序: #include #include floatfun(intn) {inti; floats=1.0,t=1.0; /*下行有错*/ for(i=2;i<=n;i--) {t=t+i; s+=1/t; } returns; } main() {printf("\n%f",fun(80)); } 答案: #include #include #include floatfun(intn) {inti; floats=1.0,t=1.0; for(i=2;i<=n;i++) {t=t+i; s+=1/t; } returns; } main() {printf("\n%f",fun(80)); } 求这样的四位正整数,各位数字的和为10,且该数是偶数,求有多少个这样的四位正整数。 请将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include"stdio.h" main() { intn,a,b,c,d,i=0; for(n=1000;n<=9999;n++) { a=n/1000; b=(n-a*1000)/100; c=_____________; d=n%10; if(_____________) i=i+1; } printf("%d\n",i); } 答案: #include"stdafx.h" #include"stdio.h" main() { intn,a,b,c,d,i=0; for(n=1000;n<=9999;n++) { a=n/1000; b=(n-a*1000)/100; c=n%100/10; d=n%10; if(a+b+c+d==10&&d/2==0) i=i+1; } printf("%d\n",i); } 一个数如果恰好等于它的所有真因子之和,这个数就称为“完数”。 例如,6的真因子为1,2,3,而6=1+2+3,因此,6是“完数”。 求[8100,8200]之间的完数。 答案: #include"stdafx.h" #include"stdio.h" voidmain() { for(intN=100;N<10000;N++) { intsum=0; for(intnum=1;num { if(N%num==0) sum+=num; } if(sum==N) printf("%d\n",N); } } 以下程序求10000以内的所有完全数的个数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 "完全数"是指: 一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如: 6=1+2+3,则6就是一个完全数。 程序: 跟上面一样: #include #include main() { intcount,n,m,s,k; count=0; for(n=3;n<=10000;n++) { /*下行有错*/ s=1; k=n/2+1; for(m=1;m if(n%m==0) /*下行有错*/ s+=1; if(s==n) { count+=1; } } printf("%d",count); } 下面的程序是求表达式的值: s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*......*n)/(3*5*7*......(2*n+1)) 请将程序补充完整,并给出当n=40时,将程序的运行结果填入相应窗口(按四舍五入保留10位小数) 程序: #include #include #include doublefun(intn) {doubles,t;inti; ________ t=1.0; for(i=1;i<=n;i++) {t=t*i/(2*i+1); ___________ } returns; } main() {printf("%12.10lf",fun(40)); } 答案: #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南省 语言 二级 程序 题库 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)