浙江工商大学计算机二级上机题.docx
《浙江工商大学计算机二级上机题.docx》由会员分享,可在线阅读,更多相关《浙江工商大学计算机二级上机题.docx(67页珍藏版)》请在冰点文库上搜索。
浙江工商大学计算机二级上机题
程序填空题
1、
#include
intfind(char*str)
{
char*fstr="the";
inti=0,j,n=0;
while(str[i]!
='\0')
{
for(______1______)//for(j=0;j<=2;j++)
if(str[j+i]!
=fstr[j])break;
if(______2______)n++;//j==3
i++;
}
returnn;
}
voidmain()
{chara[80];
gets(a);
printf("%d",find(a));
}
2、
#include
voidmain()
{intn,k=0;
scanf("%d",&n);
while(_____1_____)//1)n2)n!
=0;
{
k++;
_____2_____;n=n/10
}
printf("%d\n",k);
}
3、
#include
#include
#definef(x)x*x-5*x+sin(x)
voidmain()
{intx;floatmax;
______1______//max=f
(1);
for(x=2;x<=10;x++)
______2______//if(f(i)>max)max=f(i);
printf("%f\n",max);
}
4、
#include
voidmain()
{
charc;
c=getchar();
if(______1______)//c>='a'&&c<'v'
c=c+5;
else
if(c>='v'&&c<='z')
______2______//c=c-21;
putchar(c);
}
5、
#include
voidDec2Bin(intm)
{
intbin[32],j;
for(j=0;m!
=0;j++)
{
bin[j]=______1______;//m%2
m=m/2;
}
for(;j!
=0;j--)
printf("%d",______2______);//bin[j-1]
}
voidmain()
{
intn;
scanf("%d",&n);
Dec2Bin(n);
}
6、
#include
#include
voidmain()
{
intn,s=0;
scanf("%d",&n);
______1______//n=(n>0?
n:
-n);2)n=fabs(n);
while(n!
=0){
______2______//s=s+n%10;
n=n/10;
}
printf("%d\n",s);
}
7、
/#include
voidswap(______1______)//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(______2______)//a>b
swap(&a,&b);
printf("%d,%d,%d",a,b,c);
}
8、
#include
_______1______//longf(intn);
voidmain()
{
printf("%ld\n",f(30));
}
longf(intn)
{
if(______2______)//n==1||n==2
return1;
else
returnf(n-1)+f(n-2);
}
9、
#include
voidmain()
{
chars[80];
inti,j;
gets(s);
for(i=j=0;______1______;i++)//s[i]!
=’\0’
if(s[i]!
='c')
{
s[j]=s[i];
______2______//j++;
}
s[j]='\0';
puts(s);
}
10、
#include
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;
}
voidmain()
{
inti;
structSTUDENTst[4]={{"Jessica",98,95,90},{"Mike",80,80,90},
{"Linda",87,76,70},{"Peter",90,100,99}};
for(i=0;i<4;i++)
{
GetAverage(______2______);//&st[i]
}
printf("Name\tMath\tEnglish\tCompu\tAverage\n");
for(i=0;i<4;i++)
{
printf("%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);
}
}
11、
#include
voidmain()
{intm=0,t=1,n;
while(_____1________);//scanf(“%d”,&n),n<=0
while(!
(t<=n&&t*2>=n)){
_____2_____//t=t*2;
m++;
}
printf("%d\n",m);
}
12、
#include
#include
longf(longn)
{longm,y=0;m=fabs(n);
while(m!
=0){
y=y*10+m%10;
____1____//m=m/10;
}
if(n>=0)returny;
else_____2_____//return(-y);
}
voidmain()
{
printf("%ld\t",f(12345));printf("%ld\n",f(-34567));
}
13、
#include
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(_______1________)//floatx,floata[],intn
{floaty=a[0],t=1;inti;
for(i=1;i_____2_____//returny
}
14、
#include
#include
#include
voidf(char*s)
{inti=0;
while(s[i]!
='\0'){
if(isdigit(s[i]))____1____(s+i,s+i+1);//strcpy
___2___i++;}//else
}
voidmain()
{charstr[80];
gets(str);f(str);puts(str);
}
15、
#include
#include
voidmain()
{chara[80];intn[3]={0},i;gets(a);
________1________//for(i=0;a[i]!
=’\0’;i++)
{if(tolower(a[i])>='a'&&tolower(a[i])<='z')/*统计字母个数*/
n[0]++;
elseif(________2________)/*统计数字个数*////a[i]>='0'&&a[i]<='9'
n[1]++;
else
n[2]++;
}
for(i=0;i<3;i++)printf("%d\n",n[i]);
}
16、
#include
#include
voidmain()
{
inti,a,b,c;
for(i=100;i<=999;i++)
{
a=i/100;
_______1_______//b=i%100/10;
c=i%10;
if(________2________)//i==a*a*a+b*b*b+c*c*c
printf("%disaArmstrongnumber!
\n",i);
}
}
17、
#include
voidmain()
{intm,n,k;
while(scanf("%d%d",&m,&n),_______1______);m<0||n<0
for(____2____;n%k!
=0||m%k!
=0;k--);1)k=mm:
n2)k=m3)k=n
printf("%d\n",k);
}
18、
#include
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];
_____1_____;//*m=*m-1;
}
}
voidmain()
{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};
_______2_______;f(x,&n);
for(i=0;iprintf("\n");
}
19
#include
voidmain()
{
inta[10],b[10],i;
printf("\nInput10numbers:
");
for(i=0;i<10;i++)/*数组输入*/
scanf("%d",&a[i]);
for(i=1;i<10;i++)
b[i]=______1______;/*计算b数组中的元素*///a[i]+a[i-1]
for(i=1;i<10;i++)
{
printf("%3d",b[i]);
if(______2______)printf("\n");/*每行打印3个数据*///i%3==0
}
}
20、
#include
#include
chartrans(intx)
{
if(x<10)return'0'+x;
else_______1________//return'a'+x-10;
}
intDtoH(intn,char*str)
{
inti=0;
while(n!
=0)
{
________2________//str[i]=trans(n%16);
n/=16;i++;}
returni-1;
}
voidmain()
{
inti,k,n;
char*str;
scanf("%d",&n);
k=DtoH(n,str);
for(i=0;i<=k;i++)printf("%c",str[k-i]);
}
21、在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充
部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
运行时输出下列结果。
abcdefg
abcde
abc
a
#include
voidmain()
{inti,j;chark;
for(i=1;i<=4;i++){
for(j=1;j
1;//k=’a’
for(j=9-2*i;j>0;j--){
k=(char)k++;
printf(“%c”,2);//k-1
}
putchar('\n');
}
}
22、在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充
部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
输入n和平面上n个点的坐标,计算各点间距离的总和。
#include
#include
#definef(x1,y1,x2,y2)sqrt(pow(x2-x1,2)+pow(y2-y1,2))
1//#include或#include
voidmain()
{float*x,*y,s=0;inti,j,n;
scanf("%d",&n);
x=(float*)malloc(sizeof(float)*n*2);
y=x+2;//n
for(i=0;ifor(i=0;ifor(j=i+1;js+=f(x[i],y[i],x[j],y[j]);
printf("%.2f\n",s);
}
23、在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充
部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
调用函数f,求二维数组a中全体元素之和。
#include
floatf
(1)//float**x,intm,intn//运行结果:
78.00
{floaty=0;inti,j;
for(i=0;iy=y+*(*(x+i)+j);
returny;
}
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]=2;//&a[i][0]或a[i]
printf("%.2f\n",f(b,3,4));
}
24、在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充
部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
调用函数f,求a数组中最大值与b数组中最小值之差。
#include
floatf(float*x,intn,intflag)//运行结果:
11
{floaty;inti;
1;//y=x[0]
for(i=1;iif(flag*x[i]>flag*y)
y=x[i];
returny;
}
voidmain()
{floata[6]={3,5,9,4,2.5,1},b[5]={3,-2,6,9,1};
printf("%.2f\n",f(a,6,1)-2));//f(b,5,-1)
}
25、在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充
部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
调用函数f用以求1元2次方程x*x+5*x-2=0的实根。
#include
#include//运行结果:
0.37-5.37
intf(floata,floatb,floatc,float*x1,float*x2)
{if(b*b-4*a*c<0)1;//return1;
*x1=(-b+sqrt(b*b-4*a*c))/2/a;
*x2=(-b-sqrt(b*b-4*a*c))/2/a;
return0;
}
voidmain()
{floatu1,u2;floata=1,b=5,c=-2;
if(f
(2))printf("实数范围内无解\n");//a,b,c,&u1,&u2
elseprintf("%.2f%.2f\n",u1,u2);
}
26、在考生目录下,有Modify2.c程序,该程序中"____N____"是根据程序功能需要填充
部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
函数f将数组循环左移k个元素,输出结果为:
4567123
#include
voidf(int*a,intn,intk)
{inti,j,t;
for(i=0;i1;//t=a[0]
for
(2)//j=1;ja[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");
}
27、.在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
调用函数f,将字符串中的所有字符逆序存放,然后输出。
例如,
输入字符串为"123456",则程序的输出结果为"654321"。
#include
#include
voidmain()
{chars[60],*f(char*);
gets(s);
printf("%s\n",f(s));
}
1f(char*x)//char*
{chart;inti,n;
2;//n=strlen(x)
for(i=0;it=x[i];x[i]=x[n-1-i];x[n-1-i]=t;
}
returnx;
}
28、在考生目录下,有Modify.c程序,该程序中"____N____"是根据程序功能需要填
充部分,请完成程序填充(注意:
不得加行、减行、加句、减句,否则后果自负)。
该程序功能:
输出6~1000之间的完数(1个数的因子和等于其自身的数:
6=1+2+3、
28=1+2+4+7+14,则6、28都是完数)。
#include
voidmain()//运行结果:
628496
{inti,j,s;
for(i=6;i<=1000;i++){
1;//s=0;
for(j=1;2;j++)//j
if(i%j==0)
s+=j;
if(s==i)printf("%d\n",s);
}
}
}
程序调试
1、
#include
#include
voidfun(char*s,char*t)
{
inti,sl;
sl=strlen(s);
for(i=0;it[i]=s[i];
for(i=0;i/********1********///t[sl+i]=s[s1-1-i];
t[sl+i]=s[sl-i];
/********2********/
t[sl]="\0";//t[sl+s1]=’\0’;
}
voidmain()
{
chars[100],t[100];
scanf("%s",s);
fun(s,t);
printf("%s",t);
}
2、
#include
voidmain()
{intn,i;
scanf("%d",&n);
/******1******/
i=1;//i=2;
while(n>1)
if(n%i==0){
printf("%d\t",i);
n/=i;
}
else
/********2*******/
n++;//i++;
}
3、
#include
#include
voidmain()
{intn,s=0;
scanf("%d",&n);
n=fabs(n);
/********1*******/
while(n>1){//1}n2}n!
=0
s=s+n%10;
/********2***