1正确地上机50套题目 2.docx
《1正确地上机50套题目 2.docx》由会员分享,可在线阅读,更多相关《1正确地上机50套题目 2.docx(126页珍藏版)》请在冰豆网上搜索。
1正确地上机50套题目2
第二十一套
给定程序中,函数fun的功能是:
将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如,s所指字符串为:
asd123fgh5##43df,
处理后新字符串为:
123543asdfgh##df。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
#include
#include
#include
#include
char*fun(char*s)
{inti,j,k,n;char*p,*t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0;k=0;
for(i=0;i{if(isdigit(s[i])){
/**********found**********/
p[__1__]=s[i];j++;}
else
{t[k]=s[i];k++;}
}
/**********found**********/
for(i=0;i<__2__;i++)p[j+i]=t[i];
p[j+k]=0;
/**********found**********/
return__3__;
}
main()
{chars[80];
printf("Pleaseinput:
");scanf("%s",s);
printf("\nTheresultis:
%s\n",fun(s));
}
第1空参考答案:
j
第2空参考答案:
k
第3空参考答案:
p
给定程序MODI1.C中函数fun的功能是:
首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数的尾部。
例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,c所指数组中的内容应该为“a4b3c2d1efg”;而当a所指字符串中的内容为“1234”,b所指内容的内容为“abcdefg”时,c所指数组中的内容应该为“1g2f3e4dcba”。
请改正程序中的错误,使它能得出正确的结果。
#include
#include
voidfun(char*a,char*b,char*c)
{
inti,j;charch;
i=0;j=strlen(b)-1;
/************found************/
while(i>j)
{ch=b[i];b[i]=b[j];b[j]=ch;
i++;j--;
}
while(*a||*b){
/************found************/
If(*a)
{*c=*a;c++;a++;}
if(*b)
{*c=*b;c++;b++;}
}
*c=0;
}
main()
{
chars1[100],s2[100],t[200];
printf("\nEnters1string:
");scanf("%s",s1);
printf("\nEnters2string:
");scanf("%s",s2);
fun(s1,s2,t);
printf("\nTheresultis:
%s\n",t);
}
第1处参考答案:
while(i第2处参考答案:
if(*a)
函数fun的功能是:
将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除:
而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其他以此类推。
最后t所指的数组中的内容应为“BDF12345”。
#include
#include
voidfun(char*s,chart[])
{
}
main()
{
chars[100],t[100];voidNONO();
printf("\nPleaseenterstringS:
");scanf("%s",s);
fun(s,t);
printf("\nTheresultis:
%s\n",t);
NONO();
}
voidNONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
chars[100],t[100];
FILE*rf,*wf;
inti;
rf=fopen("C:
\\k01\\24000101\\in.dat","r");
wf=fopen("C:
\\k01\\24000101\\out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%s",s);
fun(s,t);
fprintf(wf,"%s\n",t);
}
fclose(rf);
fclose(wf);
}
第二十二套
给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回:
并将大于平均值的数放在形参y所指数组中,在主函数中输出。
列如,有10个正数:
4630324061745154826,平均值为:
30.500000
主函数中输出:
4632404548
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
#include
#include
#defineN10
doublefun(doublex[],double*y)
{inti,j;doubleav;
/**********found**********/
av=__1__;
/**********found**********/
for(i=0;ifor(i=j=0;i/**********found**********/
if(x[i]>av)y[__3__]=x[i];
y[j]=-1;
returnav;
}
main()
{inti;doublex[N]={46,30,32,40,6,17,45,15,48,26};
doubley[N];
for(i=0;iprintf("\n");
printf("\nTheaverageis:
%f\n",fun(x,y));
for(i=0;y[i]>=0;i++)printf("%5.0f",y[i]);
printf("\n");
}
第1空参考答案:
0
第2空参考答案:
x[i]/N
第3空参考答案:
j++
给定程序MODI1.C中函数fun的功能是:
根据整型形参m计算如下公式的值。
y=
#include
/************found************/
fun(intm)
{doubley=0,d;
inti;
/************found************/
for(i=100,i<=m,i+=100)
{d=(double)i*(double)i;
y+=1.0/d;
}
return(y);
}
main()
{intn=2000;
printf("\nTheresultis%lf\n",fun(n));
}
第1处参考答案:
doublefun(intm)
第2处参考答案:
for(i=100;i<=m;i=i+100
#include
#include
#defineN10
typedefstructss
{charnum[10];ints;}STU;
voidfun(STUa[],STU*s)
{
}
main()
{STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;
inti;voidNONO();
printf("*****Theoriginaldata*****\n");
for(i=0;ifun(a,&m);
printf("*****THERESULT*****\n");
printf("Thelowest:
%s,%d\n",m.num,m.s);
NONO();
}
voidNONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*rf,*wf;
STUa[N],m;
inti;
rf=fopen("C:
\\k01\\24000101\\in.dat","r");
wf=fopen("C:
\\k01\\24000101\\out.dat","w");
for(i=0;i<10;i++)fscanf(rf,"%s%d",a[i].num,&a[i].s);
fun(a,&m);
fprintf(wf,"Thelowest:
%s,%d\n",m.num,m.s);
fclose(rf);
fclose(wf);
}
第二十三套
#include
#include
#defineN10
doublefun(doublex[],double*av)
{inti,j;doubled,s;
s=0;
for(i=0;i/**********found**********/
__1__=s/N;
d=32767;
for(i=0;iif(x[i]<*av&&*av-x[i]<=d){
/**********found**********/
d=*av-x[i];j=__2__;}
/**********found**********/
return__3__;
}
main()
{inti;doublex[N]={46,30,32,40,6,17,45,15,48,26};
doubleav,m;
for(i=0;iprintf("\n");
m=fun(x,&av);
printf("\nTheaverageis:
%f\n",av);
printf("m=%5.0f",m);
printf("\n");
}
第1空参考答案:
*av
第2空参考答案:
i
第3空参考答案:
x[j]
#include
/************found************/
intfun(intn)
{floatA=1;inti;
/************found************/
for(i=2;iA=1/(1+A);
returnA;
}
main()
{intn;
printf("\nPleaseentern:
");
scanf("%d",&n);
printf("A%d=%f\n",n,fun(n));
}
第1处参考答案:
floatfun(intn)
第2处参考答案:
for(i=1;i#include
#include
#defineN5
voidfun(inta[][N],intm)
{
}
main()
{inta[N][N],m,i,j;voidNONO();
printf("*****Thearray*****\n");
for(i=0;i{for(j=0;j{a[i][j]=rand()%20;printf("%4d",a[i][j]);}
printf("\n");
}
dom=rand()%10;while(m>=3);
printf("m=%4d\n",m);
fun(a,m);
printf("THERESULT\n");
for(i=0;i{for(j=0;jprintf("\n");
}
NONO();
}
voidNONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*rf,*wf;
inti,j,n,a[5][5];
rf=fopen("C:
\\k01\\24000101\\in.dat","r");
wf=fopen("C:
\\k01\\24000101\\out.dat","w");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
fscanf(rf,"%d",&a[i][j]);
fscanf(rf,"%d",&n);
fun(a,n);
for(i=0;i<5;i++){
for(j=0;j<5;j++)fprintf(wf,"%4d",a[i][j]);
fprintf(wf,"\n");
}
fclose(rf);
fclose(wf);
}
第二十四套
#include
#include
#defineN10
doublefun(double*x)
{inti,j;doubles,av,y[N];
s=0;
for(i=0;i/**********found**********/
av=__1__;
for(i=j=0;iif(x[i]>av){
/**********found**********/
y[__2__]=x[i];x[i]=-1;}
for(i=0;i/**********found**********/
if(x[i]!
=__3__)y[j++]=x[i];
for(i=0;ireturnav;
}
main()
{inti;doublex[N]={46,30,32,40,6,17,45,15,48,26};
for(i=0;iprintf("\n");
printf("\nTheaverageis:
%f\n",fun(x));
printf("\nTheresult:
\n",fun(x));
for(i=0;iprintf("\n");
}
第1空参考答案:
s/N
第2空参考答案:
j++
第3空参考答案:
-1
#include
#include
/************found************/
include
/************found************/
voidupfst(charp)
{intk=0;
for(;*p;p++)
if(k)
{if(*p=='')k=0;}
elseif(*p!
='')
{k=1;*p=toupper(*p);}
}
main()
{charchrstr[81];
printf("\nPleaseenteranEnglishtextline:
");gets(chrstr);
printf("\n\nBeforechanging:
\n%s",chrstr);
upfst(chrstr);
printf("\nAfterchanging:
\n%s\n",chrstr);
}
第1处参考答案:
#include"stdio.h"
第2处参考答案:
upfst(char*p)
#include
#include
#defineN5
doublefun(intw[][N])
{
}
main()
{inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};
inti,j;voidNONO();
doubles;
printf("*****Thearray*****\n");
for(i=0;i{for(j=0;j{printf("%4d",a[i][j]);}
printf("\n");
}
s=fun(a);
printf("*****THERESULT*****\n");
printf("Thesumis:
%lf\n",s);
NONO();
}
voidNONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*rf,*wf;
inti,j,a[5][5];doubles;
rf=fopen("C:
\\k01\\24000101\\in.dat","r");
wf=fopen("C:
\\k01\\24000101\\out.dat","w");
for(i=0;i<5;i++)
for(j=0;j<5;j++)fscanf(rf,"%d",&a[i][j]);
s=fun(a);
fprintf(wf,"%lf\n",s);
fclose(rf);
fclose(wf);
}
第二十五套
#include
#include
#defineN10
doublefun(double*x)
{inti,j;doubleav,y[N];
av=0;
/**********found**********/
for(i=0;ifor(i=j=0;iif(x[i]/**********found**********/
y[j]=x[i];x[i]=-1;__2__;}
i=0;
while(i{if(x[i]!
=-1)y[j++]=x[i];
/**********found**********/
__3__;
}
for(i=0;ireturnav;
}
main()
{inti;doublex[N];
for(i=0;iprintf("\n");
printf("\nTheaverageis:
%f\n",fun(x));
printf("\nTheresult:
\n",fun(x));
for(i=0;iprintf("\n");
}
第1空参考答案:
x[i]/N
第2空参考答案:
j++
第3空参考答案:
i++
#include
voidfun(char*s,intnum[5])
{intk,i=5;
for(k=0;k
/**********found**********/
num[i]=0;
for(;*s;s++)
{i=-1;
/**********found**********/
switch(s)
{case'a':
case'A':
{i=0;break;}
case'e':
case'E':
{i=1;break;}
case'i':
case'I':
{i=2;break;}
case'o':
case'O':
{i=3;break;}
case'u':
case'U':
{i=4;break;}
}
if(i>=0)
num[i]++;
}
}
main()
{chars1[81];intnum1[5],i;
printf("\nPle