浙江省计算机等级二级考试C语言机考题库
二级考试(C语言)上机部分试题
1.三个数比较大小。
输入三个整数,按由大到小的顺序输出这三个数。
#include
void swap(int *pa,int *pb)
{ /*交换两个数的位置*/
int temp; temp = *pa; *pa = *pb; *pb = temp; } void main()
{ int a,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); }
2.表达式求和。
将计算结果以格式“%。6f”写入到考生文件夹中
#include #include
void main()
{ FILE *fp;
float n=1,t=1,pi=0;
int i;
i=1;
while(fabs(t)>=1e-6)
{ pi=pi+t; i=-i; n=n+2; t=i/n; }
fp=fopen("Design1.dat","w");
fprintf(fp,"%.6f",4*pi);
fclose(fp); }
运行结果:3.141594
3.字母后移循环输出。
输入的一个小写字母,将字母循环后移5个位置后输出。#include
void main()
{ char c; c=getchar();
If(c>='a' && c<'v')
c=c+5;
else
if (c>='v' && c<='z')
c=c-21;
putchar(c); }
4.求满足条件的数。
#include
#include
void main()
{ float y=1.05; int n=1; FILE *p;
while(!(pow(y,n)<1e6 && pow(y,n+1)>1e6))
n++;
计算机二级c语言选择题库p=fopen("Design2.dat","w");
fprintf(p,"%d,%.0f",n,pow(1.05,n));
fclose(p); }
运行结果:283,992137
5.求满足条件的数。
输入整数n(n>0),求m使得2的m次方小于或等于n,
#include
void main()
{ int m=0,t=1,n;
while(scanf("%d",&n),n<=0);
while(!(t<=n&&t*2>=n)){
t=t*2;
m++; }
printf("%d\n",m); }
6.求平面点间的最短距离。
数组元素x[i]
#include #include
#define len(x1,y1,x2,y2) sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)) void main()
{ FILE *p; int i,j; float c,minc;
float x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; float y[]={-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("Design1.dat","w");
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if((c=len(x[i],y[i],x[j],y[j]))<minc)< bdsfid="140" p=""></minc)<>
minc=c;
fprintf(p,"%f",minc);
fclose(p); }
运行结果:1.457944
7.Fibonacci数列求值问题。
数列的第1 此后各项值均为该项前二项之和。
#include
long f(int n);
void main()
{ printf("%ld\n",f(30)); }
long f(int n)
{ if(n==1 || n==2 )
return 1;
else
return f(n-1)+f(n-2); }
运行结果:832040
8.多项式求和问题。
计算多项式
#include #include
void main()
{ FILE *p; int i; float x=1.279,t=1,y=0;
float a[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
p=fopen("Design2.dat","w");
y=a[0] ;
for(i=1;i<10;i++)
{ t=t*x; y=y+t*a[i]; }
fprintf(p,"%f",y);
fclose(p); }
运行结果:98.722542
9.整数转换为字符串。
用递归法将一个六位整数转换成字符串。
#include
void itoa(long i,char *s)
{ if(i==0) return;
/****** 1 ******/
*s = '1'+i%10; //*s='0'+i%10
itoa(i/10,s-1); }
void main()
{ long n; char str[7]=""; scanf("%ld",&n);
/****** 2 ******/
itoa(n,str+6); // itoa(n,str+5);
printf("%s",str); }
10.Fibonacci数列求值问题。
有数列
#include
void main()
{ FILE *p; int i; float f1=1.0,f2=2.0,t1=2.0,t2=3.0,s; float f,t;
s=t1/f1+t2/f2;
p=fopen("Design1.dat","w");
for(i=3;i<40;i=i+2)
{ t1=t1+t2; t2=t1+t2; f1=f1+f2; f2=f1+f2; s=s+t1/f1+t2/f2; }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论