2级C语言上机题库Word文件下载.docx
《2级C语言上机题库Word文件下载.docx》由会员分享,可在线阅读,更多相关《2级C语言上机题库Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
);
fprintf(fp,"
%.6f"
4*pi);
fclose(fp);
}
运行结果:
3.141594
3.字母后移循环输出。
{charc;
c=getchar();
if(______1______)//c>
='
a'
&
&
c<
'
v'
c=c+5;
else
if(c>
z'
)
______2______//c=c-21;
putchar(c);
4.求满足条件的数。
{floaty=1.05;
intn=1;
FILE*p;
//以下开始做答
while(!
(pow(y,n)<
1e6&
pow(y,n+1)>
1e6))
n++;
p=fopen("
Design2.dat"
fprintf(p,"
%d,%.0f"
n,pow(1.05,n));
fclose(p);
283,992137
5.求满足条件的数。
{intm=0,t=1,n;
while(_____1________);
//(scanf("
%d"
n),n<
=0)
(t<
=n&
t*2>
=n)){
_____2_____//t=t*2;
m++;
%d\n"
m);
6.求平面点间的最短距离。
#definelen(x1,y1,x2,y2)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
{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("
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)
minc=c;
%f"
minc);
1.457944
7.Fibonacci数列求值问题。
_______1______//longf(intn);
{printf("
%ld\n"
f(30));
longf(intn)
{if(______2______)//n==1||n==2
return1;
returnf(n-1)+f(n-2);
832040
8.多项式求和问题。
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};
y=a[0];
for(i=1;
{t=t*x;
y=y+t*a[i];
y);
98.722542
9.整数转换为字符串。
#include<
voiditoa(longi,char*s)
{if(i==0)return;
/******1******/
*s='
1'
+i%10;
//*s='
0'
+i%10
itoa(i/10,s-1);
{longn;
charstr[7]="
"
;
%ld"
n);
/******2******/
itoa(n,str+6);
//itoa(n,str+5);
%s"
str);
10.Fibonacci数列求值问题。
floatf1=1.0,f2=2.0,t1=2.0,t2=3.0,s;
floatf,t;
s=t1/f1+t2/f2;
for(i=3;
40;
i=i+2)
{t1=t1+t2;
t2=t1+t2;
f1=f1+f2;
f2=f1+f2;
s=s+t1/f1+t2/f2;
s);
65.020950
11.数组赋值。
{inta[10],b[10],i;
\ninput10numbers:
"
for(i=0;
i<
i++)/*数组输入*/
&
a[i]);
for(i=1;
i++)
b[i]=______1______;
//b[i]=a[i]+a[i-1];
{printf("
%3d"
b[i]);
if(______2______)printf("
\n"
//i%3==0}}
12.求各点距离和。
#include<
floatx[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6};
floaty[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4};
floats=0.0;
s=s+sqrt(pow(x[i]-1,2)+pow(y[i]-1,2));
52.679447
13.十进制数转换为二进制数。
voiddec2bin(intm)
{intbin[32],j;
for(j=0;
m!
=0;
{bin[j]=______1______;
//m%2
m=m/2;
for(;
j!
j--)
______2______);
//bin[j-1]}
{intn;
dec2bin(n);
14.求符合条件的数列之和。
floats=0,a=81;
inti;
=30;
{s=s+a;
a=sqrt(a);
%.3f"
121.336
15.在字符串中删除数字字符。
string.h>
ctype.h>
voidf(char*s)
{inti=0;
while(s[i]!
\0'
){
if(isdigit(s[i]))____1____(s+i,s+i+1);
//strcpy
___2___i++;
}//else}
{charstr[80];
gets(str);
f(str);
puts(str);
16.求满足条件的数。
floatf(floatx,floaty),min;
intx,y,x1,y1;
p=fopen("
min=f(1,1);
for(x=1;
x<
=6;
x++)
for(y=1;
y<
y++)
if(f(x,y)<
min){x1=x;
y1=y;
min=f(x,y);
}
%d,%d"
x1,y1);
floatf(floatu,floatv)
{return(3.14*u-v)/(u+v);
1,6
17.去除数组中的负数。
voidf(int*a,int*m)
{inti,j;
*m;
if(a[i]<
0){
for(j=i--;
*m-1;
j++)a[j]=a[j+1];
_____1_____;
//*m=*m-1;
}}
{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};
_______2_______;
//f(x,&
n;
i++)printf("
%5d"
x[i]);
1346
18.二维数组中的运算。
{floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
floatx;
3;
{x=fabs(a[i][0]);
for(j=1;
if(fabs(a[i][j]>
x))x=fabs(a[i][j]);
a[i][j]=a[i][j]/x;
i++){
j++)fprintf(p,"
%10.6f"
a[i][j]);
0.3611110.7500001.000000
0.4255320.6382981.000000
0.7500001.0000000.317500
19.平面上各点距离计算。
stdlib.h>
{inti,n;
/*****1*****/
structaxy{floatx,y;
}a;
//structaxy{floatx;
floaty;
}*a;
a=(float*)malloc(n*2*sizeof(float));
/*****2*****/
%f%f"
a[i].x,a[i].y);
//scanf("
a[i].x,&
a[i].y);
if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<
=5)
%f,%f\n"
**试题本身有错误,a=(structaxy*)malloc(n*2*sizeof(float));
20.从a数组中找出偶数放入b数组。
voidmain()
{FILE*p;
inti,j,temp,n=0;
inta[10]={7,6,20,3,14,88,53,62,10,29},b[10];
if(a[i]%2==0)b[n++]=a[i];
n-1;
n-i-1;
if(b[j]>
b[j+1]){temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
{fprintf(p,"
if((i+1)%3==0)fputc(p,‘\n’);
61014
206288
21.求输入整数的各位数字之和。
{intn,s=0;
______1______//n=fabs(n);
while(n!
=0){
______2______//s+=n%10;
n=n/10;
22.关于生产能力的数学应用题。
intyear(intx)
{floatp=11.5;
inty=1999;
while(p<
=x)
{p=p*(1+0.098);
y++;
returny;
design.dat"
year(20),year(30));
2005,2010
23.穷举法求解方程。
intx,y,z,k=0;
for(x=-45;
45;
x++)
for(y=-45;
for(z=-45;
z<
z++)
if(x*x+y*y+z*z==2000)k++;
k);
144
24.字符串排序。
char*s="
634,.%@\\w|sq2"
c;
inti,j,k,n=strlen(s);
for(j=i+1;
if(*(s+j)<
*(s+i)){c=*(s+i);
*(s+i)=*(s+j);
*(s+j)=c;
i++)fputc(s[i],p);
%,.2346@\qsw|
25.将整数首尾倒置。
longf(longn)
{longm,y=0;
m=fabs(n);
while(m!
=0){
y=y*10+m%10;
______1______//m/=10;
if(n>
=0)returny;
else______2________//return–y;
%ld\t"
f(12345));
f(-34567));
54321-76543
26.求数组的平均值,及与平均数的差。
inti,k=0;
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++)v+=x[i];
v=v/10;
d=fabs(x[0]-v);
if(fabs(x[i]-v)<
d){d=fabs(x[i]-v);
k=i;
fprintf(p,”%.5f”,x[k]);
2.10000
27.求平方根数列之和。
doubles=0;
for(i=2;
=10;
s+=sqrt(i);
p=fopen(“design2.dat”,”w”);
fprintf(p,“%.10f\n”,s);
21.4682781862
28.求多项式之和
{inti,a,n;
longt=0;
/*********1*******/
s=0;
//longs=0;
%d%d"
=n;
/*******2******/
t=t*10+i;
//t=t*10+1
s=s+t;
s=s*a;
29.计算学生的平均成绩,并输出。
structSTUDENT
{charname[16];
intmath;
intenglish;
intcomputer;
intaverage;
};
voidGetAverage(structSTUDENT*pst)/*计算平均成绩*/
{intsum=0;
sum=___________1____________//sum+pst->
math+pst->
english+pst->
computer;
pst->
average=sum/3;
{inti;
structSTUDENTst[4]={{"
Jessica"
98,95,90},{"
Mike"
80,80,90},
{"
Linda"
87,76,70},{"
Peter"
90,100,99}};
4;
{GetAverage(____2________);
//st+i}
Name\tMath\tEnglish\tCompu\tAverage\n"
%s\t%d\t%d\t%d\t%d\n"
st[i].name,st[i].math,st[i].english,
st[i].computer,st[i].average);
30.求符合条件的数。
voidmain()
(p=fopen("
;
if(i%3==1&
i%5==3&
i%7==5&
i%9==7)break;
i);
313
31.求Armstrong数。
{inti,m,s=0;
printf("
armstrongnumbersin100-999:
for(i=100;
1000;
{m=i;
while(m!
{s+=pow(m%10,3);
m=m/10;
if(s==i)printf("
i);
153370371407
32.将两个字符串连接起来。
{chars1[80],s2[40];
inti=0,j=0;
print