湖南省计算机二级考试_程序设计题目精选_C_部分1
- 格式:docx
- 大小:18.07 KB
- 文档页数:15
2022年湖南省常德市全国计算机等级考试C语言程序设计真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。
void delete(s,C)char s[],c;{int i,j;for(i=j=0;( );i++) if(s[i]!='c') s[j++]=s[i];s[j]="\0";}2. 性表的多种存储结构中,最简单的方法是【】。
3. 以下程序运行后的输出结果是【】。
#include <stdio.h>fun(int x){ if(x/2>0) fun(x/2);printf("%d",x);}main(){ fun(6); }4. 度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为______。
5. 以下程序运行后的输出结果是______。
main(){int a=1,b=2,c=3;if(c=A) printf("%d\n",C) ;else printf("%d\n",B) ;}6. 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。
请填空。
main(){ int i,a[20],sum,count;sum=count=0;for(i=0;i<20;i++) scanf("%d", 【】);for(i=0;i<20;i++){ if(a[i]>0){count++;sum+= 【】;}}printf("sum=%d,count=%d\n",sum,count);}7. C语言用于结构化程序设计的3种基本结构是______、选择结构和循环结构。
8. 函数compare的功能是比较两个字符串是否相等,若相等则函数返回值0,否则返回值1,请填空。
2022年湖南省永州市全国计算机等级考试C语言程序设计测试卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1. 在C语言中,退格符是A.\nB.\tC.\fD.\b2.函数原形中,下列()是不必要的。
A.函数的类型B.形式参数名C.函数名D.形式参数类型3.程序段:int x=12;doub1e y=3.141593;printf("%d%8.6f"x,y);的输出结果是______。
A.123.141593B.12 3.141593C.12,3.141593D.123,14159304.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容C.在C语言中,外部变量的隐含类型是自动存储类别D.在C语言中,函数形参的存储类型是自动(auto)类型的变量5.下列函数的功能是set(s,t){ char *s,*t;while((*s)&&(*t)&&(*t++==*s++));return(*s-*t);}A.A.求字符串的长度B.比较两字符串的大小C.将字符串s复制到字符串t中D.将字符串s连接到字符串t后6.7.下面关于线性表的叙述中,错误的是()。
A.线性表采用顺序存储,必须占用一片连续的存储单元B.线性表采用顺序存储,便于进行插入和删除操作C.线性表采用链接存储,不必占用一片连续的存储单元D.线性表采用链接存储,便于插入和删除操作8.当n=5时,函数输出为()A.5B.11C.29D.109.下面叙述中错误的是()。
A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执行测试计划,排除测试的随意性10. 设a,b,c,d,m和n均为int型变量,且a=5,b=6,c=7,d=m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为( )A.0B.1C.2D.311.12.下列描述中正确的是()。
1、找出2xM整型二维数组中最大元素的值,并将此值返回调用函数。
intfun(inta[][M]){inti,j,max=a[0][0];for(i=0;i〈2;i++)for(j=0;j<M;j++)if(max〈a[i][j])max=a[i][j];returnmax;}2、根据以下公式求n值。
doublefun(doubleeps){doubles=0。
0,s1=1。
0;intn=0;while(s1>=eps){s=s+s1;s1=s1*n/(2*n+1);n++;}return2*s;}3、求出1〜1000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数.voidfun(int*a,int*n){inti,j=0;for(i=1;i〈=1000;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}4、删除字符串中所有*号.voidfun(char*a){inti,j=0;for(i=0;a[i]!='\0';i++)if(a[i]!='*')a[j++]=a[i];a[j]='\0';}5、实现两个字符串的连接(不要同时使用库函数),即把p2所指的字符串连接到P1所指的字符串的后面。
voidfun(charp1[],charp2[]){inti,j;for(i=0;p1[i]!='\0';i++);for(j=0;p2[j]!='\0';j++)p1[i++]=p2[j];p1[i]='\0';}6、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能:求出平均分,并放入记录的ave成员中。
voidfun(STREC*a){inti;a—>ave=0.0;for(i=0;i<N;i++)a—〉ave=a—>ave+a—>s[i];a-〉ave/=N;}7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点.求出平均分,并由函数值返回doublefun(STREC*h){doubleave=0。
计算机二级C语言程序设计测试题及答案计算机二级C语言程序设计测试题及答案计算机二级考试是全国计算机等级考试四个等级中的一个等级,由教育部考试中心主办,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。
下面是店铺整理的计算机二级C语言程序设计测试题及答案,欢迎大家分享。
编程题1、三个整数a、b、c,由键盘输入,输出其中最大的数。
2、从键盘输入的10个整数中,找出第一个能被7整除的数。
若找到,打印此数后退出循环;若未找到,打印“not exist”。
3、有一个一维数组,内放10个学生成绩,写一个函数,求出平均分。
4、有N个学生,每个学生的`信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
参考答案:1、main(){ int a,b,c;printf(“请输入三个整数:”); scanf(“%d,%d,%d”,&a,&b,&c);if(a if(belse printf(“max=%d ”,b);else if(aelse printf(“max=%d ”,a); }2、#include”stdio.h”main(){ int I,a;for(I=1;I<=10;I++){ scanf(“%d”,&a);{ if(a%7==0)printf(“%d”,a); break; } }if(I==11)printf(“not exist”); }3、float average(float array[ ],int n){ int I;float aver,sum=array[0];for(I=1;Isum=sum+array[I];aver=sum/n;return(aver); }main(){ float ave,score[10];int I;for(I=0;I<10;I++)scanf("%f",&score[I]);ave=average(score,10);printf("%f ",ave); }4、 #include"stdio.h"#define N 3struct student{ long stu_num;char sex;char name[15];int score[4];float average; };main(){ int I,j,index;float sum,max;struct student stuarr[N];for(I=0;I{ printf("please input %d student information: ",I+1);scanf("%ld,%c,%s",&stuarr[I].stu_num,&stuarr[I].sex,stuarr[I]. name);for(j=0;j<4;j++)scanf("%d",&stuarr[I].score[j]); }for(I=0;I{ sum=0.0;for(j=0;j<4;j++)sum+=stuarr[I].score[j];stuarr[I].average=sum/4.0; }max=stuarr[0].average;index=0;for(I=1;Iif(stuarr[I].average>max){max=stuarr[I].average; index=I; }printf("总平均成绩最高的学生信息是学号=%ld,性别=%c,姓名=%s,平均成绩=%4.1f ",stuarr[index].stu_num,stuarr[index].sex,stuarr[index].name,stua rr[index].average); }。
湖南省计算机二级考试程序设计题目精选201 1 已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。
求[1,100]之间第10个能被其因子数目整除的正整数。
56#include <stdio.h>void main(){ int i,n,j,k=0;clrscr();f or (i=1;i<=100;i++){ n=0;f or (j=1;j<=i;j++)if (i%j==0) n++;if (i%n==0){ k++; printf("%5d",i);}if (k==10) {printf("\n%5d",i); break;}}}202 2 倒勾股数是满足公式:1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。
假定A>B>C,求A,B,C均小于或等于100的倒勾股数有多少组?5#include <stdio.h>#include <math.h>void main(){ int i,n=0,j,k;f or (i=1;i<=100;i++)f or (j=i;j<=100;j++)f or (k=j;k<=100;k++)if (fabs(1.0/(k*k)+1.0/(j*j)-1.0/(i*i))<1e-10){ n++;printf("%d,%d,%d\n",i,j,k); }printf("%d\n",n);}203 3 已知A<B,且A,B为正整数, 求满足个条件A×B=716699且A+B最小的A值。
563#include "stdio.h"#include "math.h"void main(){ long int a,b,i,j;i=716699;j=716699;f or(a=3;a<sqrt(716699);a+=2)f or(b=a;b<2*sqrt(716699);b+=2)if(a*b==716699){if((a+b)<(i+j)){i=a;j=b;}}printf("a=%ld,b=%1d",i,j);}204 1 求[666,777]范围内素数的个数。
湖南省程序设计经典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后再开方,如果开方后的结果满足如下条件,即是结果。
2022-2023学年湖南省郴州市全国计算机等级考试C语言程序设计真题一卷(含答案)学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.C语言中char类型数据占字节数为()。
A.3B.4C.1D.22.有以下程序:main{int i,j;for(j=10;j<11;j++){ for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}输出结果是( )。
A.11B.10C.9D.10 113. 设q1和q2是指向一个float型一维数组的指针变量,k为float型变量,则不能正确执行的语句是( )。
A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);4.以下程序的输出结果是().A.A.0B.29C.31D.无定值5.已知广义表的表头为A,表尾为(B,C),则此广义表为________A.(A,(B,C))B.(A,B,C)C.(A,B,C)D.((A,B,C))6.有以下程序段当执行上述程序段,从键盘上输A,55566 7777123后,y的值为( )。
A.566.0B.55566.0C.7777.0D.566777.07.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理8.若有以下程序则程序的输出结果是A.3B.7C.6D.109.若有定义“int * p[3];”,则以下叙述中正确的是()。
A.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int的指针B.定义了一个基类型为int的指针变量p,该变量具有3个指针C.定义了一个名为* p的整型数组,该数组含有3个int类型元素D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有3个int类型元素10.以下叙述中错误的是A.在函数外部定义的变量在所有函数中都有效B.在函数内部定义的变量只能在本函数范围内使用C.函数中的形参属于局部变量D.在不同的函数中可以使用相同名字的变量11.一个关系中属性个数为1时,称此关系为( )。
Program Pro Lang ProProblem ProLevel ProSource ProAnswer####2下面的程序是求500以内的所有的素数之和。
请修改程序中的错误,使它能得出正确的结果,并给出正确结果。
程序:0#include <conio.h>#include <stdio.h>#include <math.h>int prime(int n){ int yes, i;if(n<=1) {return 1;}yes=1;for(i=2; i<=sqrt(n); i++)if(n%i==0){ yes=0; break;}/*下行程序有错*/return 1;}main(){ int sum=0, i;clrscr();for(i=2;i<=500; i++)if(prime(i)) sum+=i;printf("%d\n", sum);}21536####2 下面的程序是求下式的和:s=1+1/(1+2)+1/(1+2+3)+......+1/(1+2+3+......+n)请改正程序中的错误,并运行修改后的程序, 当n=80时,给出程序运行结果(按四舍五入保留6位小数)。
程序:#include <stdio.h>#include <math.h>float fun(int n){ int i;float s=1.0, t=1.0;/*下行有错*/for(i=2; i<=n;i--){ t=t+i;s+=s+1/t;}return s;}main(){ printf("\n %f", fun(80));}1.975309####2下面的程序是求下式的和:s=1+1/(1+2)+1/(1+2+3)+......+1/(1+2+3+......+n)请改正程序中的错误,并运行修改后的程序, 当n=90时,给出程序运行结果(按四舍五入保留6位小数)。
Tubro C programming for HNCRE 20051题:100个学生一起买小吃,共花钱100元,其中每个大学生花5元,每个中学生花3元,每3个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)?程序:m ain( ){ int a,b,c;for(a=1;a<=20;a++)for(b=1;b<=33;b++){ c=100—a—b;if((20*a+33*b+c/3)= =100)pr intf(“%d,%d,%d\n”,a,b,c);}get ch( );}答案:6种:3,20,77;4,18,78;8,11,81;11,6,83;12,4,84.2题:50个小学生按1至50序号顺时针围成一圈,做出局游戏,老师站在圈外逆时针从最后一个人数起,每数到5时,这人从圈里出来,继续数1,2,3,4,5,数到第5个学生时,他就出局,已出局的位置不再参加记数,直至所有的学生出局为止,问最后一个出局的学生序号是多少号?程序:m ain(){int i,k,sum,l,t=0;int a[50];clr scr();for(i=1;i<=50;i++)a[i]=1;for(k=1,sum=0,l=0;k<=50;k++){f or(i=50;i>0;i--){sum+=a[i];if(sum==5) {sum=0;l++;a[i]=0;}if(l==49) {t=1;br eak;}}if(t==1)br eak;}for(i=1;i<=50;i++){if(a[i]==1) printf("%d",i);}get ch();}答案:32号3题:50元兑换成5元,2元和1元的计算方法有多少种?程序:m ain( ){ int x,f,t,n;x=0;f=0;while(f<=10){t=0;while (t<=25){n=50—f*5—T*2;if(n>=o) x++;t++:}f++;}pr intf(“%d”,x);}答案:1464题:A、B、C三个正整数,当满足1/A*A+1/B*B=1/C*C 关系时,称为倒勾股数。
2021年湖南省湘潭市全国计算机等级考试C语言程序设计真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 注释一般分为序言性注释和______注释。
2. 下面程序是计算100以内能被4整除且个位数为4的所有整数,请填空。
main(){int m,n;for(m=0;【】;m++){n=m*10+4;If(【】)continue;printf("%d\n",n);} }3. 若输入21、23、34、11、2、6,则以下程序的运行结果【】。
main(){ int i;char+p,num[6];for (i=0;i<5;i++)scanf("%d,",&num[i]);scanf("%d",&num[5]);p=&num[0];sort(p,6);for (i=0;i<5;i++) printf("%d,",num[i]);printf("%d\n",num[5]);}sort(p,m)char*p;int m;{ int i;char change,*p1,*p2;for (i=0;i<m/2;i++){ p1=p+i;p2=p+(m-1-i);change=*p1;*p1=*p2;*p2=change;}}4. 以下程序段的运行结果是( )。
#include<stdio.h>main() {int x=2,y=1:switch(x) {case 1: switch(y) {case 0:printf("x=2,y=1\n");break;case 1:printf("y=1\n");break;} case 2:printf("x=2\n");} }5. 若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是【】。
湖南省计算机二级考试程序设计题目精选 C 部分1201 1 已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。
求[1,100]之间第10个能被其因子数目整除的正整数。
56#include <stdio.h>void main(){ int i,n,j,k=0;clrscr();for (i=1;i<=100;i++){ n=0;for (j=1;j<=i;j++)if (i%j==0) n++;if (i%n==0){ k++; printf("%5d",i);}if (k==10) {printf("\n%5d",i); break;}}}202 2 倒勾股数是满足公式:1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。
假定A>B>C,求A,B,C均小于或等于100的倒勾股数有多少组? 5#include <stdio.h>#include <math.h>void main(){ int i,n=0,j,k;for (i=1;i<=100;i++)for (j=i;j<=100;j++)for (k=j;k<=100;k++)if (fabs(1.0/(k*k)+1.0/(j*j)-1.0/(i*i))<1e-10){ n++;printf("%d,%d,%d\n",i,j,k); }printf("%d\n",n);}203 3 已知A<B,且A,B为正整数, 求满足个条件A×B=716699且A+B最小的A值。
563#include "stdio.h"#include "math.h"void main(){ long int a,b,i,j;i=716699;j=716699;for(a=3;a<sqrt(716699);a+=2)for(b=a;b<2*sqrt(716699);b+=2)if(a*b==716699){if((a+b)<(i+j)){i=a;j=b;}}printf("a=%ld,b=%1d",i,j);}204 1 求[666,777]范围内素数的个数。
16#include <stdio.h>#include <math.h>void main(){ int i,n=0,j;for (i=666;i<=777;i++){ for (j=2;j<=sqrt(i);j++)if (i%j==0) break;if (j>sqrt(i)) {n++; printf("%5d",i);}}printf("\n%5d",n);}205 2 倒勾股数是满足公式:1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。
假定A>B>C,求A,B,C 之和小于100的倒勾股数有多少组? 2206 3 求方程X^3-2X-5=0在区间[1.5,2.5]上的一个实根。
要求:按四舍五入的方式精确到小数点后第二位。
2.09#include <stdio.h>#include <math.h>void main(){float x,x0=2.0,f,f0;do{x=x0;f=x*x*x-2*x-5;f0=3*x*x-2;x0=x-f/f0;} while(fabs(x-x0)>=1e-6);printf("%.2f",x);}207 1 求[351,432]之间所有既不能被3整除,又不能被8整除的正整数的个数。
47#include <stdio.h>void main(){int i,n=0;for (i=351;i<=432;i++)if (i%3!=0 && i%8!=0){n++; printf("%5d",i);}printf("\n%d",n);}208 2 倒勾股数是满足公式:1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。
假定A>B>C,且要求A,B,C均小于或等于100,求满足倒勾股数公式的A,B,C之和的最大值是多少?235209 3 求方程X^2-3*X+1=0在区间(0,1)内的解。
要求:按四舍五入的方式精确到小数点后第二位。
0.38210 1 求[444,666]范围内最大的素数是多少?661#include <stdio.h>#include <math.h>void main(){int i,j,k;for (i=444;i<=666;i++){ k=sqrt(i);for(j=2;j<k;j++)if (i%j==0) break;if (j>=k) printf("%5d",i);}}211 2 倒勾股数是满足公式:1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。
假定A>B>C,且要求A,B,C均小于或等于100,求满足倒勾股数公式的各组正整数(A,B,C)中A的值的和是多少?300212 3 已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述:F(1)=1 ifn=1 F(2)=1 ifn=2 F(n)=F(n-1)+F(n-2) if n>2 试求F(1)+F(2)+……+F(50)值。
提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。
32951280098#include <stdio.h>main(){ int i;double f[50]={1,1},s=0;for(i=2;i<50;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<50;i++){ if(i%2==0) printf("\n");s=s+f[i];printf("%15.0f",f[i]);} printf("\n%15.0f",s);}213 1 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13....(注:该数列从第二项开始,其分子是前一项的分子与分母的和,而其分母是前一项的分子),求出这个序列前24项的和。
要求:按四舍五入的方式精确到小数点后第二位。
39.13#include <stdio.h>main(){ float s1=2,s2=1,s,t=0,i;t=t+s1/s2;for (i=1;i<=23;i++){ s=s1;s1=s1+s2;s2=s;t=t+s1/s2;}printf("%.2f",t);214 2 倒勾股数是满足公式:1/A^2+1/B^2=1/C^2 的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/156^2+1/65^2=1/60^2。
假定A>B>C,且要求A,B,C均小于或等于100,求满足倒勾股数公式的各组正整数(A,B,C)中C值的和是多少?180 215 3 已知A<B,且A,B为正整数, 求满足条件A×B=716699且A+B最小的B值。
1273216 1 已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。
问[100,300]之间有多少个能被其因子数目整除的数。
19#include <stdio.h>void main(){ int i,n,j,k=0;clrscr();for (i=100;i<=300;i++){ n=0;for (j=1;j<=i;j++)if (i%j==0) n++;if (i%n==0){ k++; printf("%5d",i);}}printf("\n%5d",k);217 2 自然数对是指两个自然数的和与差都是平方数,如8和17的和8+17=25与其差17-8=9都是平方数,则称8和17是自然数对(8,17)。
假定(A,B)与(B,A)是同一个自然数对且假定A>=B,求所有小于或等于100(即:A<=100,B<=100)的自然数对中B之和。
1160#include "stdio.h"#include "math.h"void main(){ int a,b,n=0;float s1,s2;for(b=1;b<=100;b++)for (a=b+1;a<=100;a++){ s1=sqrt(a+b);s2=sqrt(a-b);if ( s1==(int)s1 && s2==(int)s2 ){ n=n+b;printf("%d,%d\t\t",a,b);} }printf("\n%d",n);}218 3 已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述:F(1)=1 ifn=1 F(2)=1 ifn=2 F(n)=F(n-1)+F(n-2) if n>2 试求F(2)+F(4)+F(6)+……+F(50)值。
提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。
20365011073219 1 求[1,5000]之间能同时被3和7整除的数的个数。
238#include "stdio.h"void main(){ int i,j=0;for(i=1;i<=5000;i++)if (i%3==0 && i%7==0){ j++;printf("%5d",i);}printf("\n%d",j);}220 2 水仙花数是一个三位正整数,它等于它的各位数字的立方之和. 例如:153=1^3+5^3+3^3,所以153是水仙花数.试求有多少个水仙花数? 4#include "stdio.h"void main(){ int i,a,b,c,n=0;for(i=100;i<=999;i++){ a=i/100;b=(i/10)%10;c=i%10;if (i==a*a*a+b*b*b+c*c*c){ n++;printf("%5d",i);}}printf("\n%d",n);}221 3 已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述:F(1)=1 ifn=1 F(2)=1 ifn=2 F(n)=F(n-1)+F(n-2) if n>2 试求F(45)值。