千万建筑资料下载 →
二级(C语言程序设计)上机题汇总
一、程序调试题
(一)程序填空
练习一:
/*该程序功能:对x=1,2,,,,,,10,f(x)=x*x*-5*x+sin(x)的最大值。*/#include<stdio.h>
#include<math.h>
#definef(x)x*x-5*x+sin(x)
voidmain()
{intx;floatmax;
for(x=2;x<=10;x++)
___if(max<f(x))max=f(x);___
printf("%f\n",max);
}
练习二:
/*该程序功能:输入三个整数,按由小到大的顺序输出这三个数。*/
#include<stdio.h>
voidswap(__int*pa,int*pb____)
{/*交换两个数的位置*/
inttemp;
temp=*pa;
*pa=*pb;
*pb=temp;
}
voidmain()
{
inta,b,c,temp;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
swap(&a,&b);
if(b>c)
swap(&b,&c);
if(__a>b___)
swap(&a,&b);
printf("%d,%d,%d",a,b,c);
}
练习三:
/*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。*/
#include<stdio.h>
1
voidDec2Bin(intm)
{
intbin[32],j;
for(j=0;m!=0;j++)
{
bin[j]=__m%2___;
m=m/2;
}
for(;j!=0;j--)
printf("%d",);
}
voidmain()
{
intn;
scanf("%d",&n);
Dec2Bin(n);
}
练习四:
/*该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1
#include<stdio.h>
voidf(int*a,int*m)
{inti,j;
for(i=0;i<*m;i++)
if(a[i]<0){
for(j=i--;j<*m-1;j++)a[j]=a[j+1];
}
}
voidmain()
{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};
for(i=0;i<n;i++)printf("%5d",x[i]);
printf("\n");
}346*/
练习五:
/*该程序功能:输出6~1000之间的完数(1个数的因子和等于其自身的数:6=1+2+3,28=1+2+4+7+14,则6,28都是完数)*/
#include<stdio.h>
voidmain()
{inti,j,s;
for(i=6;i<=1000;i++){
___s=1;___
2
for(j=2;___j<i___;j++)if(i%j==0)s+=j;
if(s==i)printf("%d\n",s);
}
}
练习六:
/*该程序功能:输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。*/
#include<stdio.h>
voidmain()
{intm=0,t=1,n;
while(_while(!(t<=n&&t*2>=n)){
___t=t*2;___
m++;
}
printf("%d\n",m);
}
练习七:
/*该程序功能:函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:4567123*/
#include<stdio.h>
voidf(int*a,intn,intk)
{inti,j,t;
for(i=0;i<k;i++){
_for()a[j-1]=a[j];
a[n-1]=t;
}
}
voidmain()
{inti,x[7]={1,2,3,4,5,6,7};
f(x,7,3);
for(i=0;i<7;i++)printf("%5d",x[i]);printf("\n");
}
练习八:
/*该程序功能:调用函数f,求二维数组a中全体元素的和.*/
#include<stdio.h>
floatf(_float*x[],intm,intn_____)
{floaty=0;inti,j;
for(i=0;i<m;i++)for(j=0;j<n;j++)y=y+*(*(x+i)+j);
returny;
3
}
voidmain()
{floata[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*b[3];
inti;
for(i=0;i<3;i++)b[i]=____;
printf("%.2f\n",f(b,3,4));
}
练习九:
/*该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。*/#include<stdio.h>
#include<math.h>
voidmain()
{
intn,s=0;
scanf("%d",&n);
_____
while(n!=0){
____s+=n%10;____
n=n/10;
}
printf("%d\n",s);
}
练习十:
/*该程序功能:数组的第1,2项均为1,此后各项值均为该项前二项之和。计算数组第30项的值。*/
#include<stdio.h>
__longf(intn);
voidmain()
{
printf("%ld\n",f(30));
}
longf(intn)
{
if(_____n<=2)
return1;
else
returnf(n-1)+f(n-2);
}
练习十一:
/*该程序功能:输入m,n(要求输入均大于0,且m>=n),输出它们的最大公约数*/#include<stdio.h>
4
voidmain()
{intm,n,k;
while(scanf("%d%d",&m,&n),for(k=n;n%k!=0||m%k!=0;k--);
printf("%d\n",k);
}练习十二:
/*程序功能:输入一个整数后,输出该数的位数,如3114,则输出4。*/
#include<stdio.h>
voidmain()
{intn,k=0;
scanf(“%d”,&n);
while(n!=0){
k++;n=n/10;
}
printf(“%d\n”,k);
}
练习十三:
/*程序功能:调用函数f,计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*xx,当x=1.7时的值。*/
#include<stdio.h>
floatf(float,float*,int);
voidmain()
{floatb[5]={1.1,2.2,3.3,4.4,5.5};
printf("%f\n",f(1.7,b,5));
}
floatf()
{floaty=a[0],t=1;inti;
for(i=1;i<n;i++){t=t*x;y=y+a[i]*t;}
}
练习十四:
/*程序功能:调用函数f,从字符串中删除所有的数字字符。*/
#include<stdio.h>
#include<string.h>
#include<ctype.h>
voidf(char*s)
{inti=0;
while(s[i]!='\0')
if(isdigit(s[i]))strcpy(s+i,s+i+1);
5
二级(C语言程序设计)上机题汇总.doc下载else
}i++;
(二)程序修改
练习一:
/*该程序功能:运行是输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。*/
#include<stdio.h>
#include<math.h>
voidmain()
{intn,s=0;
scanf("%d",&n);
n=fabs(n);
/********1*******/
while(n>1){//n>1改成n
s=s+n%10;
/********2******/
n=n%10;//n=n%10;改成n=n/10;
}
printf("%d\n",s);
}
练习二:
/*该程序功能:输入m,n(要求输入均大于0,且m>=n),输出它们的最小公倍数*/#include<stdio.h>
voidmain()
{intm,n,k;
/********1*********/
while(scanf("%d%d",&m,&n),m<0&&n<0);//m<0&&n<0改成m<0||n<0||m<nfor(k=m;k%n!=0;)
/********2********/
k=k+n;//k=k+n;改成k=k+m;
printf("%d\n",k);
6
}
练习三:
/*该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母,输出该字符串。*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidmain()
{intn,i;
/*****1*****/
charstr;//charstr;改成char*str;
scanf("%d\n",&n);str=(char*)malloc(n);gets(str);
/*****2*****/
for(i=1;i<strlen(str);i++)//i=1;改成i=0;或i<strlen(str);改成i<=strlen(str);
if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-('a'-'A');
puts(str);
}
练习四:
/*该程序功能:输人1个字符串,按字母出现次序输出其中所出现过的大写英文字母。如运行时输入字符串“FONTNAMEandFILENAME”应输出“FONTAMEIL”。*/#include<stdio.h>
voidmain()
{charx[80],y[26];inti,j,ny=0;
gets(x);
for(i=0;x[i]!='\0';i++)
if(x[i]>='A'&&x[i]<='Z'){
for(j=0;j<ny;j++)
/*****1*****/
if(y[i]==x[j])continue;//y[i]==x[j]改成y[j]==x[i]
continue;改成break;
if(j==ny){y[ny]=x[i];ny++;}
}
/*****2*****/
for(i=0;i<26;i++)//i<26;改成i<ny;
printf("%c",y[i]);
printf("\n");
}
练习五:
/*程序功能:将一个char型数的高4位和低4位分离,分别输出,如22(二进制:00010110)输出1,6*/
7
#include<stdio.h>
voidmain()
{
chara,b1,b2,c;
scanf("%d",&a);
/******1******/
b1=a<<4;/*b1存放高4位*///
c=~(~0<<4);
/******2******/
b2=a|c;/*b2存放低4位*///
printf("%d,%d",b1,b2);
}b1=a<<4;改成b1=a>>4;b2=a|c;改成b2=a&c;
练习六:
/*在考生目录下的Paper子目录下,有Modify.c文件,该文件中”/*****N*****/”的下一行中有错误,请改正(注意:不得加行,减行,加句,减句,否则后果自负)。该程序功能:输入x和正数,eps计算多项式1-x+x*x/2!-x*x*x/3!….的和直到末项的绝对值小于eps为止。*/
#include<stdio.h>
#include<math.h>
voidmain()
{floatx,eps,s=1,t=1,i=1;
scanf("%f%f",&x,&eps);
do{
/*****1*****/
t=-t*x/++i;//t=-t*x/++i;改成t=-t*x/i++;
s+=t;
/*****2*****/
}while(fabs(t)>=eps)//少;
printf("%f\n",s);
}
练习七:
/*程序功能:输入n,输出n的所有质数因子,(如n=13860,输出2、2、3、3、5、7、11)。*/
#include<stdio.h>
voidmain()
{intn,i;
scanf(“%d”,&n);
/********1*******/
i=1;//i=1;改成i=2;
while(n>1)
if(n%i==0){
printf(“%d\t”,i);
8
n/=i;
}
else
/*******2********/
n--;//
}
练习八:
/*程序功能:输入a,n,分别为3,6,则输出表达式的值3+33+333+3333+33333+333333*/
#include<stdio.h>
voidmain()
{inti,a,n;longt=0;
/********1*******/
s=0;//s=0;改成longs=0;
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++){
/********2*******/
t=t*10+i;//t=t*10+i;改成t=t*10+1;
s=s+t;
}
s=s*a;
printf("%ld\n",s);
}
练习九:
程序功能:输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。
voidmain()
{charstr[80];
gets(str);f(str);puts(str);
}
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
voidmain()
{
inti,n;
/*****1*****/
structaxy{floatx,y;}a;//改为structaxy{floatx;floaty;}*a;
scanf("%d",&n);
a=(float*)malloc(n*2*sizeof(float));
for(i=0;i<n;i++)
9n--;改成i++;
/*****2*****/
scanf("%f%f",a[i].x,a[i].y);//
&a[i].y);
for(i=0;i<n;i++)
if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)
printf("%f,%f\n",a[i].x,a[i].y);
}改为scanf("%f%f",&a[i].x,
练习十:
程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
#include<stdio.h>
#include<ctype.h>
voidmain()
{chara[80];intn[5]={0},i;gets(a);
for(i=0;a[i]!='\0';i++)
/*****1*****/
switch(toupper(a[i])){//改为switch(tolower(a[i]))case'a':n[0]++;break;
case'e':n[1]++;break;
case'i':n[2]++;break;
case'o':n[3]++;break;
/*****2*****/
case'U':n[4]++;//改为case'u':n[4]++;
}
for(i=0;i<5;i++)printf("%d\n",n[i]);
练习十一:
/*考生的目录Paper子目录下,有Modify.c文件,该文件中/*****N*****/的下一行中请改正。该程序功能:运行时输入10个数,然后分别输出其中的最大,最小的值。*/#include<stdio.h>
voidmain()
{floatx,max,min;inti;
/********1*******/
for(i=0;i<=10;i++){//i<=10;改成i<10;
scanf("%f",&x);
/*******2********/
if(i=1){max=x;min=x;}//i=1改成i==0
if(x>max)max=x;
if(x<min)min=x;
}
printf("%f,%f\n",max,min);
}
10
二、程序设计题
练习一:
/*设计程序:z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值区间为[0,10]的整数,找出使z取最小值的x1,y1,并将x1,y1以格式“%d,%d”写到考生目录中Paper下目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{
FILE*p;
intx,y,x1,y1;floatz,z1;
/*考生在这里添加程序*/
p=fopen("design.dat","w");
z1=0;
for(x=0;x<=10;x++)
for(y=0;y<=10;y++)
{z=10*cos(x-4)+5*sin(y-2);
if(z<z1)
{z1=z;x1=x;y1=y;}
}
fprintf(p,"%d,%d",x1,y1);
fclose(p);
}
练习二:
/*设计程序:计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+......的值,并将其值
以格式"%.6f"写到考生目录中Paper下目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{
FILE*p;
inti;floatx=2.345,t=1.0,y=0.0;
floata[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};
/*考生在这里添加程序*/
y=y+a[0];
p=fopen("design.dat","w");
for(i=1;i<10;i++)
{t=t*x;
11
第11 / 20页
y+=a[i]*sin(t);}
fprintf(p,"%.6f",y);
fclose(p);
}
练习三:
/*设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...的值,并将其值一格式"%f"写到考生目录中Paper下目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{FILE*p;inti;floatx=1.279,t=1,y=0;
floata[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
/*考生在这里添加程序*/
p=fopen("design.dat","w");
for(i=0;i<10;i++)
{t=t*x;
y+=a[i]*t;}
fprintf(p,"%f",y);
fclose(p);
}
练习四:
/*设计程序:累加a字符串各个字符的ASCII码值,然后将累加和以形式“%d”写到考生目录中Paper下目录下的新建文件design.dat中*/
#include<stdio.h>
voidmain()
{FILE*p;ints=0,i=0;
char*a="r235%^%34cdDW,.";
/*考生在这里添加程序*/
p=fopen("design.dat","w");
for(;a[i]!='\0';i++)
s+=a[i];
fprintf(p,"%d",s);
fclose(p);
}
练习五:
/*设计程序:寻找并输出11到999之间的数m,它满足m,m*m,m*m*m均为回文数。所谓回文数是指各位数字左右对称,例如121,676,94249等。满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。请编制函数intJSValue(longm)实现此功能,如果是回文数,则函数返回为1,反之则返回0。*/
#include<stdio.h>
#include<stdlib.h>
12
#include<string.h>
intJSValue(longm)
{
/*考生在这里添加程序*/
inta[10],i=0,n;
while(m)
{a[i]=m%10;
m=m/10;
i++;}
for(--i,n=i;i>n/2;i--)
if(a[i]!=a[n-i])
return0;
return1;
}
voidmain()
{
FILE*p;longm;
p=fopen("design.dat","w");
for(m=11;m<1000;m++)
{
if(JSValue(m)&&JSValue(m*m)&&JSValue(m*m*m))
fprintf(p,"%ld",m);
}
fclose(p);
}
练习六:
/*设计程序:数列各项为1,1,2,3,5,8,13,21,…,求其前40项之和,并将求和的结果以格式“%d”写到考生目录下的新建文件design.dat中*/#include<stdio.h>
voidmain()
{FILE*p;longs=0,i,a[40];
/*考生在这里添加程序*/
p=fopen("design.dat","w");
for(i=0;i<40;i++)
{if(i==1||i==0)a[i]=1;
elsea[i]=a[i-2]+a[i-1];
}
for(i=0;i<40;i++)
s+=a[i];
fprintf(p,"%d",s);
fclose(p);
}
13
练习七:
/*设计程序:计算数列1,-1/3!,1/5!,-1/7!,1/9!,…的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以“%.6f”写到考生目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{FILE*p;floats=1,t=1,i=3;
/*考生在这里添加代码*/
p=fopen("design.dat","w");
do{
t=-t*i*(i-1);
s=s+1/t;
i+=2;
}while(fabs(1/t)>=1e-5);
fprintf(p,"%.6f",s);
fclose(p);
}
练习八:
/*设计程序:a,b,c为区间[1,100]的整数,统计使等式c/(a*a+b*b)=1成立的所有解的个数
(若a=1,b=3,c=10是1个解,则a=3,b=1,c=10也是解)。*/
#include<stdio.h>
voidmain()
{FILE*p;intn=0,a,b,c;
/*考生在这里添加代码*/
p=fopen(“design.dat”,”w”);
for(a=1;a<=100;a++)
for(b=1;b<=100;b++)
for(c=1;c<=100;c++)
if(c/(a*a+b*b)==1)
n++;
fprintf(p,“%d”,n);
fclose(p);
}
练习九:
/*设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式“%.5f”写到考生目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{FILE*p;inti;floatk=0;
14
floatx[10]={7.23,-1.5,5.24,2.1,-12.45,6.3,-5,3.2,-0.7,9.81},d,v=0;
for(i=0;i<10;i++)v+=x[i];v=v/10;d=fabs(x[0]-v);
/*考生在这里添加代码*/
p=fopen("design.dat","w");
for(i=0;i<10;i++)
if(d>fabs(x[i]-v))
{d=fabs(x[i]-v);
k=x[i];}
fprintf(p,"%.5f",k);
fclose(p);
}
练习十:
/*设计程序:在正整数中找出1个最小的,被3,5,7,9除余数分别为1,3,5,7的数,将该数以格式“%d”写到考生的目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{/*考生在这里添加代码*/
FILE*p;inti;
p=fopen(“design.dat”,”w”);
for(i=1;;i++)
if((i%3==1)&&(i%5==3)&&(i%7==5)&&(i%9==7))break;
fprintf(p,"%d",i);
fclose(p);
}
练习十一:
/*设计程序:将满足条件pow(1.05,n)<1e6<pow(1.05,n+1)的n,pow(1.05,n)值以格式“%d,%.0f”写到生目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{floaty=1.05;intn=1;FILE*p;
/*考生在这里添加代码*/
p=fopen(“design.dat”,”w”);
for(;pow(y,n)>1e6||pow(y,n+1)<1e6;n++);
fprintf(p,"%d,%.0f",n,pow(1.05,n));
fclose(p);
}
练习十二:
/*设计程序:计算2的平方根,3的平方根,…,10的平方根之和,要求计算结果具有小数点后10有效位数,以“%.10f\n”写到考生的目录下的新建文件design.dat中*/
15
第15 / 20页
#include<stdio.h>
#include<math.h>
voidmain()
{FILE*p;
/*考生在这里添加代码*/
floatx=0;inti;
p=fopen("design.dat","w");
for(i=2;i<=10;i++)
x+=sqrt(i);
fprintf(p,"%.10f",x);
fclose(p);
}
练习十三:
/*设计程序:将a数组的每1行均除以该行上绝对值最大的元素,然后将a数组写到考生的目录的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
FILE*p;floatx;inti,j;
/*考生在这里添加代码*/
for(i=0;i<3;i++)
{x=a[i][0];
for(j=0;j<3;j++)
if(fabs(x)<fabs(a[i][j]))x=a[i][j];
for(j=0;j<3;j++)
a[i][j]=a[i][j]/x;
}
p=fopen("design.dat","w");
for(i=0;i<3;i++){
for(j=0;j<3;j++)fprintf(p,"%10.6f",a[i][j]);
fprintf(p,"\n");
}
fclose(p);
}
练习十四:
/*设计程序:x[i],y[i]分别表示平面上1个点的x,y坐标,求下列5点各点间距离总和,并将该数以格式“%.4f”写到考生的目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{FILE*p;floats,x[5]={-1.5,2.1,6.3,3.2,-0.7};
16
floaty[5]={7,5.1,3.2,4.5,7.6};inti,j;
/*考生在这里添加代码*/
p=fopen("design.dat","w");
s=0;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
s+=sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2));
fprintf(p,"%.4f",s);
fclose(p);
}
练习十六:
/*设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符串中的位置值与该字符
的ASCII码值的乘积。位置值从1开始依次递增。将每个字符的权重值,以格式“%d”写到考生的目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{
FILE*p;inti,w;
char*s="we45*&y3r#$1";
/*考生在这里添加代码*/
p=fopen(“design.dat”,”w”);
w=0;
for(i=1;s[i]!='\0';i++)
w+=s[i]*i;
fprintf(p,”%d”,w);
fclose(p);
}
练习十七:
/*程序设计:在6至1000内找出所有的合数,用语句“fprintf(p,”%6d”,n);”输出。说明(某个数等于其诸因子之和,则该数为合数:6=1+2+3,28=1+2+4+7+14,6,28都是合数)*/
#include<stdio.h>
voidmain()
{FILE*p;intn,j,s;
/*考生在这里添加代码*/
p=fopen(“design.dat”,”w”);
for(n=6;n<=1000;n++){
s=0;
for(j=1;j<n;j++)
if(n%j==0)s+=j;
17
if(s==n)fprintf(p,"%d\n",n);
}
fclose(p);
}
练习十八:
/*程序设计题:统计满足条件x*x+y*y+z*z==2000的所有解的个数,并将统计结果以格式"%d"写入到考生目录下新建的文件design.dat。说明:若a、b、c是1个解,则a、c、b也是1个解,等等。*/
#include<stdio.h>
voidmain()
{FILE*p;intx,y,z,k=0;
/*考生在这里添加代码*/
p=fopen(“design.dat”,”w”);
for(x=-45;x<45;x++)
for(y=-45;y<45;y++)
for(z=-45;z<45;z++)
if(x*x+y*y+z*z==2000)k++;
fprintf(p,”%d”,k);
fclose(p);
}
练习十九:
/*程序设计题:数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式"%f"写到考生目录下新建文件design.dat。*/
#include<stdio.h>
#include<math.h>
#definelen(x1,y1,x2,y2)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
voidmain()
{FILE*p;inti,j;floatc,minc;
floatx[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
floaty[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};
minc=len(x[0],y[0],x[1],y[1]);
/*考生在这里添加代码*/
p=fopen("design.dat","w");
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{c=len(x[i],y[i],x[j],y[j]);
if(i!=j&&minc>c)
minc=c;}
fprintf(p,"%f",minc);
fclose(p);
}
18
练习二十:
/*程序设计题:求Fibonacci数列中大于t的最小一个数结果由函数JSValue返回,F(n)定义为F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2),分别计算出当t=1000和3000时的结果*/
#include<stdio.h>
intJSValue(intt)
{/*考生在这里添加代码*/
intf1=0,f2=1,flag=0;
while(flag==0)
{f1=f1+f2;
f2=f2+f1;
if(t>=f1&&t<=f2)
{flag=1;
returnf2;}
}
}
voidmain()
{FILE*p;
p=fopen(“design.dat”,”w”);
fprintf(p,”%d,%d”,JSValue(1000),JSValue(3000));
fclose(p);
}
练习二十一:
/*设计程序:计算27的小于1.00001的2n次方根(27的2n-2次方根不小于1.00001),以格式%d写到考生目录下的新建文件design.dat中*/
#include<stdio.h>
#include<math.h>
voidmain()
{FILE*p;floatx=27;intn=0;
/*考生在这里添加代码*/
p=fopen(“design.dat”,”w”);
n=n+1;
for(;!((pow(x,1/(2*n))<1.00001)&&(pow(x,1/(2*n-2)))>1.00001);n++)
fprintf(p,"%d",n);
fclose(p);
}
练习二十二:
/*设计程序:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数cnt及这些数字的和sum到^^^*/
#include<stdio.h>
voidmain()
19
{
FILE*p;
intcnt,sum;
/*考生在这里添加代码*/
inta[4],t,s,i;
cnt=0;sum=0;
p=fopen("design.dat","w");
for(t=1000;t<=5000;t++)
{s=t;i=0;
while(s)
{a[i]=s%10;
s=s/10;
i++;
}if(((a[3]+a[2])==(a[0]+a[1]))&&((a[2]+a[3])/(a[3]-a[0])==10)){cnt++;
sum+=t;
}
}
fprintf(p,"%d,%d",cnt,sum);
fclose(p);
}
20
久久建筑网m.kkreddy.com提供大量:建筑图纸、施工方案、工程书籍、建筑论文、合同表格、标准规范、CAD图纸等内容。