二级上机题目.docx
- 文档编号:30300775
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:78
- 大小:44.27KB
二级上机题目.docx
《二级上机题目.docx》由会员分享,可在线阅读,更多相关《二级上机题目.docx(78页珍藏版)》请在冰豆网上搜索。
二级上机题目
1./*输入一个N,求M满足2的M次小与等于N,2的M+1次大于等于N*/
#include
voidmain()
{intm=0,t=1,n;
while(______1_______);
while(!
(t<=n&&t*2>=n)){
_____2__________;
m++;
}
printf("%d\n",m);
}
答案:
#include
voidmain()
{intm=0,t=1,n;
while(scanf("%d",&n),n<=0);
while(!
(t<=n&&t*2>=n)){
t=t*2;
m++;
}
printf("%d\n",m);
}
2./*数列第一项是81,此后各项均为他前一项的正平方根,统计该数列前30项之和,并以格式“。
3%”写入考生文件夹中PAPER文件夹下新建立文件DESIGN1.DAT*/
#include
#include
voidmain()
{FILE*p;floats=0,a=81;inti;
s=a;
if((p=fopen("design1.dat","w"))==NULL)
{
printf("error");
exit(0);
}
for(i=0;i<30;i++)
{
s=s+sqrt(a);
a=sqrt(a);
}
fprintf(p,"%.3f",s);
fclose(p);
}
3.数列的前1,2项均为1,此后各项均为该项前二项之和,计算数列前30项之和
#include
_______1______
voidmain()
{
printf("%ld\n",f(30));
}
longf(intn)
{
if(______2______)
return1;
else
returnf(n-1)+f(n-2);
}
答案:
#include
longf(intn);
voidmain()
{
printf("%ld\n",f(30));
}
longf(intn)
{
if(n==1||n==0)
return1;
else
returnf(n-1)+f(n-2);
}
4.数组元素x[I].y[I]表示平面上某点坐标,统计10个点中处在圆(方程为:
(x-1)*(x-1)+(y+0.5)*(y+0.5)=25)内的点数k,并将变量k的值以格式”%d”
写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat
#include
#include
voidmain()
{FILE*p;inti,k=0;
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};
/*
*
*
*考生在这里添加代码
*
*
*/
}
#include
#include
voidmain()
{FILE*p;inti,k=0;
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};
if((p=fopen("design4.dat","w"))==NULL)
{
printf("error");
exit(0);
}
for(i=0;i<10;i++)
{
if(((x[i]-1)*(x[i]-1)+(y[i]-0.5)*(y[i]-0.5))<=25)
k++;
}
fprintf(p,"%d",k);
fclose(p);
}
5.程序功能:
调用find函数在输入的字符串中查找是否出现”the”这个单词,
如果查到返回出现的次数;如果未找到返回0。
#include
intfind(char*str)
{
char*fstr="the";
inti=0,j,n=0;
while(str[i]!
='\0')
{
for(______1______)
if(str[j+i]!
=fstr[j])break;
if(______2______)n++;
i++;
}
returnn;
}
答案:
voidmain()
{chara[80];
gets(a);
printf("%d",find(a));
}
#include
intfind(char*str)
{
char*fstr="the";
inti=0,j,n=0;
while(str[i]!
='\0')
{
for(j=0;j if(str[j+i]! =fstr[j])break; if(j==3)n++; i++; } returnn; } voidmain() {chara[80]; gets(a); printf("%d",find(a)); } 6.程序功能: 输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中, 再将字符串中的字符按逆序连接到字符串t后面。 #include #include voidfun(char*s,char*t) { inti,sl; sl=strlen(s); for(i=0;i t[i]=s[i]; for(i=0;i /********1********/ t[sl+i]=s[sl-i]; /********2********/ t[sl]="\0"; } voidmain() { chars[100],t[100]; scanf("%s",s); fun(s,t); printf("%s",t); } 答案: #include #include voidfun(char*s,char*t) { inti,sl; sl=strlen(s); for(i=0;i t[i]=s[i]; for(i=0;i /********1********/ t[sl+i]=s[sl-i-1]; /********2********/ t[2*sl]='\0'; } voidmain() { chars[100],t[100]; scanf("%s",s); fun(s,t); printf("%s",t); } 7.程序功能: 运行时输入整数n,输出n各位数字之和。 (例如: n=1308则输出12,n=-3204则输出9) #include #include voidmain() {intn,s=0; scanf("%d",&n); n=fabs(n); /********1*******/ while(n>1){ s=s+n%10; /********2******/ n=n%10; } printf("%d\n",s); } 答案: #include #include voidmain() {intn,s=0; scanf("%d",&n); n=fabs(n); /********1*******/ while(n>0){ s=s+n%10; /********2******/ n=n/10; } printf("%d\n",s); } 8.设计编写并运行程序,完成以下功能: z=f(x,y)=(3.14*x-y)/(x+y),若x,y取值为区间[1,6]的整数,找出使z取最小值的x1,y1 并将x1,y1以格式”%d,%d”写入到考生文件夹中Paper子文件夹下的新建文件Designl.dat #include voidmain() {FILE*p;floatf(floatx,floaty),min; intx,y,x1,y1; /* * * *考生在这里添加代码 * * */ } floatf(floatu,floatv) {return(3.14*u-v)/(u+v);} 答案: #include voidmain() {FILE*p;floatf(floatx,floaty),min; intx,y,x1,y1; if((p=fopen("design1.dat","w"))==NULL) { printf("error"); exit(0); } min=0.0; for(x=1;x<=6;x++) for(y=1;y<=6;y++) { printf("%d%d%f\n",x,y,f(x,y)); if(min>f(x,y)) {x1=x; y1=y; } } fprintf(p,"%d%d",x1,y1); fclose(p); } floatf(floatu,floatv) {return(3.14*u-v)/(u+v);} 9.程序功能: 运行时输入10个数,然后分别输出其中的最大值,最小值。 #include voidmain() {floatx,max,min;inti; /********1*******/ for(i=0;i<=10;i++){ scanf("%f",&x); /*******2********/ if(i=1){max=x;min=x;} if(x>max)max=x; if(x } printf("%f,%f\n",max,min); } #include voidmain() {floatx,max,min;inti; /********1*******/ for(i=0;i<10;i++){ scanf("%f",&x); /*******2********/ if(I==0){max=x;min=x;} if(x>max)max=x; if(x } printf("%f,%f\n",max,min); } 10.设计编写并运行程序,完成以下功能: 将数组a的每1行均除以该行上绝对值了大的元素,然后 将a数组写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat #include #include voidmain() {floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE*p;floatx;inti,j; /* * * *考生在这里添加代码 * * */ 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); } 答案: #include #include 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++) {for(j=0;j<3;j++) { if(j==0) x=a[i][j]; if(fabs(x) x=a[i][j]; } for(j=0;j<3;j++) { a[i][j]=a[i][j]/x; printf("%10.6f\n",a[i][j]); } } p=fopen("design4.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); } 11.设计编写并运行程序,完成以下功能: 将满足条件pow(1.05,n) 写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat #include #include voidmain() {floaty=1.05;intn=1;FILE*p; /* * * *考生在这里添加代码 * * */ fprintf(p,"%d,%.0f",n,pow(1.05,n)); fclose(p); } 答案: #include #include voidmain() {floaty=1.05;intn=1;FILE*p; if((p=fopen("design1.dat","w"))==NULL) { printf("error"); exit(0); } while(! (pow(1.05,n)<1e6&&1e6 n++; printf("%d,%.0f",n,pow(1.05,n)); fclose(p); } 12.程序功能: 输入x和正数eps,计算多项式1-x+x*x/2! -x*x*x/3! +…的和直到末项的 绝对值小于eps为止。 #include #include voidmain() {floatx,eps,s=1,t=1,i=1; scanf("%f%f",&x,&eps); do{ /*****1*****/ t=-t*x/++i; s+=t; /*****2*****/ }while(fabs(t) printf("%f\n",s); } 答案: #include #include voidmain() {floatx,eps,s=1,t=1,i=1; scanf("%f%f",&x,&eps); do{ /*****1*****/ t=-t*x/i++; s+=t; /*****2*****/ }while(! (fabs(t) printf("%f\n",s); } 13.设计编并运行程序,完成以下功能: 将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],…..)然后将a数组写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat #include voidmain() {floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE*p; /* * * *考生在这里添加代码 * * */ for(inti=0;i<3;i++){ for(intj=0;j<3;j++)fprintf(p,"%10.6f",a[i][j]); fprintf(p,"\n"); } fclose(p); } 答案: #include voidmain() {floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE*p; intm,n,i,j; if((p=fopen("design2.dat","w"))==NULL) { printf("error"); exit(0); } for(m=0;m<3;m++) for(n=0;n<3;n++) { a[m][n]=a[m][n]/a[m][m]; } for(i=0;i<3;i++){ for(j=0;j<3;j++)fprintf(p,"%10.6f",a[i][j]); fprintf(p,"\n"); } fclose(p); } 14.该文件中“__N__“是根据程序功能需要直充部分,请完成程序填充。 (注意: 不行加行,减行,加句,减句,否则后果自负)。 程序功能: 将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换 结果输出。 #include voidDec2Bin(intm) { intbin[32],j; for(j=0;m! =0;j++) { bin[j]=______1______; m=m/2; } for(;j! =0;j--) printf("%d",______2______); } voidmain() { intn; scanf("%d",&n); Dec2Bin(n); } 答案: #include voidDec2Bin(intm) { intbin[32],j; for(j=0;m! =0;j++) { bin[j]=m%2; m=m/2; } for(;j! =0;j--) printf("%d",bin[j-1]); } voidmain() { intn; scanf("%d",&n); Dec2Bin(n); } 15.设计编写并运行程序,完成以下功能: 数组元素x[I],y[I]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式 “%f”写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat #include #include #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]); /* * * *考生在这里添加代码 * * */ } 答案: #include #include #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]); if((p=fopen("design1.dat","w"))==NULL) { printf("error"); exit(0); } for(i=0;i<10;i++) for(j=0;j<10;j++) { if(i! =j) { c=len(x[i],y[i],x[j],y[j]); printf("%f\n",c); if(c minc=c; } } printf("%f",minc); fclose(p); } 16.该文件中”/*****N*****/”的下一行中有错误,请改正。 (注意: 不得加行,减行,加句,减句,否则后果自负)。 程序功能: 用递归法将一个六位整数n转换成字符串。 (例如: 输入123456,应输出字符串“123456”) #include voiditoa(longi,char*s) { if(i==0) return; /******1******/ *s='1'+i%10; itoa(i/10,s-1); } voidmain() { longn; charstr[7]=""; scanf("%ld",&n); /******2******/ itoa(n,str+6); printf("%s",str); } 答案: #include voiditoa(longi,char*s) { if(i==0) return; /******1******/ *s='0'+i%10; itoa(i/10,s-1); } voidmain() { longn; charstr[7]=""; scanf("%ld",&n); /******2******/ itoa(n,str+5); printf("%s",str); } 17.设计编写并运行程序,完成以下功能: 计算多项多a0+a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 上机 题目