计算机三级上机百题整理版.docx
《计算机三级上机百题整理版.docx》由会员分享,可在线阅读,更多相关《计算机三级上机百题整理版.docx(55页珍藏版)》请在冰点文库上搜索。
计算机三级上机百题整理版
10个人100行的选票
★☆题目39。
对10个候选人进行选举,全选或不选均为无效的选票.
{intI,j=0,k=0;
char*str;
for(I=0;I<10;I++)
yy[I]=0;
for(I=0;I<100;I++)
{str=xx[I];j=0;
while(*str)
if(*str=='1'){j++;str++;}
elsestr++;
if(j!
=0&&j!
=10)
{str=xx[I];k=0;
while(*str)
if(*str++=='1')yy[k++]+=1;
elsek++;}
}}
★☆题目58。
对10个候选人进行选举,若一张选票人数小于等于5个人时被认为无效的选票。
{intI,count,j;
char*pf;
for(I=0;I<10;I++)yy[I]=0;
for(I=0;I<100;I++)
{pf=xx[I];count=0;
while(*pf)
if(*pf=='1'){count++;pf++;}
elsepf++;
if(count>5)
{pf=xx[I];j=0;
while(*pf)
if(*pf=='1'){yy[j]+=1;j++;pf++;}
elseif(*pf=='0'){pf++;j++;}
}
}}
★题目84。
对10个候选人进行选举,若一张选票人数大于5个人时认为无效的选票.
{inti,j,k;
for(i=0;i<10;i++)
{k=0;
for(j=0;j<10;j++)
if(xx[i][j]=='1')k++;
if(k>5)continue;
for(j=0;j<10;j++)
if(xx[i][j]=='1')yy[j]++;}
}
200个正整数
★☆题目5。
在文件in.dat中有200个正整数,1000至9999之间。
按原先的数值进行降序排列。
{intI,j,data;
for(I=0;I<199;I++)
for(j=I+1;j<200;j++)
{if(aa[I]%1000>aa[j]%1000)
{data=aa[I];aa[I]=aa[j];aa[j]=data;}
elseif(aa[I]%1000==aa[j]%1000)
if(aa[I]{data=aa[I];aa[I]=aa[j];aa[j]=data;}
}
for(I=0;I<10;I++)
bb[I]=aa[I];
}
题目6。
在文件in.dat中有200个正整数,1000至9999之间。
按原先的数值进行升序排列。
{intI,j,data;
for(I=0;I<199;I++)
for(j=I+1;j<200;j++)
{if(aa[I]%1000{data=aa[I];aa[I]=aa[j];aa[j]=data;}
elseif(aa[I]%1000==aa[j]%1000)
if(aa[I]>aa[j])
{data=aa[I];aa[I]=aa[j];aa[j]=data;}
}
for(I=0;I<10;I++)
bb[I]=aa[I];}
200组数据
题目60。
在文件in.dat中有200组数据,每组有3个数,按照每组数据的第二个数加第三个之和的大小进行降序排列
{intI,cnt=0,j;
Datach;
for(I=0;I<200;I++)
if(aa[I].x2>aa[I].x1+aa[I].x3)
{bb[cnt]=aa[I];cnt++;}
for(I=0;Ifor(j=I+1;jif(bb[I].x2+bb[I].x3{ch=bb[I];bb[I]=bb[j];bb[j]=ch;}
returncnt;
}
★☆题目75。
在文件in.dat中有200组数据,每组有3个数,按照每组数据的第一个数加第三个之和的大小进行升序排列
{intI,j,count=0;
Dataval;
for(I=0;I<200;I++)
if(aa[I].x1>aa[I].x2+aa[I].x3)
{bb[count].x1=aa[I].x1;
bb[count].x2=aa[I].x2;
bb[count].x3=aa[I].x3;
count++;}
for(I=0;Ifor(j=I+1;jif(bb[I].x1+bb[I].x3{val=bb[I];bb[I]=bb[j];bb[j]=val;}
returncount;}
请编制
题目83。
请编制函数ReadDat()读取1000个十进制整数,计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2,奇数的方差totfc的值,
{FILE*fp;
intI,j;
if((fp=fopen(""IN.DAT"",""r""))==NULL)return1;
for(I=0;I<100;I++)
{for(j=0;j<10;j++)
fscanf(fp,""%d,"",&xx[I*10+j]);
fscanf(fp,""'n"");
if(feof(fp))break;}
fclose(fp);
return0;}
voidCompute(void)
{intI,yy[MAX];
for(I=0;I<1000;I++)
if(xx[I]%2){odd++;ave1+=xx[I];yy[odd-1]=xx[I];}
else{even++;ave2+=xx[I];}
ave1/=odd;
ave2/=even;
for(I=0;Itotfc+=(yy[I]-ave1)*(yy[I]-ave1)/odd;
}
★题目33。
请编制函数ReadDat()读取1000个十进制整数,计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2,方差totfc的值,
{FILE*fp;
intI,j;
if((fp=fopen(""IN.DAT"",""r""))==NULL)return1;
for(I=0;I<100;I++)
{for(j=0;j<10;j++)
fscanf(fp,""%d,"",&xx[I*10+j]);
fscanf(fp,""'n"");
if(feof(fp))break;}
fclose(fp);
return0;}
voidCompute(void)
{intI,yy[MAX];
for(I=0;I<1000;I++)
if(xx[I]%2){odd++;ave1+=xx[I];}
else{even++;ave2+=xx[I];yy[even-1]=xx[I];}
ave1/=odd;
ave2/=even;
for(I=0;Itotfc+=(yy[I]-ave2)*(yy[I]-ave2)/even;
}
★题目93。
请编制函数ReadDat()读取1000个十进制整数,计算出xx中奇数的个数odd,偶数的个数even,平均值aver,方差totfc的值,
intReadDat(void)
{FILE*fp;
intI,j;
if((fp=fopen(""IN.DAT"",""r""))==NULL)return1;
for(I=0;I<100;I++)
{for(j=0;j<10;j++)
fscanf(fp,""%d,"",&xx[I*10+j]);
fscanf(fp,""'n"");
if(feof(fp))break;}
fclose(fp);
return0;}
voidCompute(void)
{intI;
for(I=0;I<1000;I++)
{if(xx[I]%2)odd++;}
else{even++;
aver=aver+xx[I];}}
aver/=even;
for(I=0;I<1000;I++)
totfc+=(xx[I]-aver)*(xx[I]-aver)/MAX;
}
★题目94。
请编制程序,读取200个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2,算术平均值pj(保留2位小数)。
{if(xx[I]%2)cnt1++;
elsecnt2++;
if(I%2){j+=xx[I];k++;}
}
pj=(float)(j*100/k)/100;
或者:
cnt1=0;cnt2=0;pj=0.0;k=0;
for(i=0;iif(xx[i]%2)cnt1++;
elsecnt2++;
for(i=1;i{k++;pj+=xx[i];}
pj/=k;
☆题目92
请编制程序prog1.c,读取200个整数,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj(保留2位小数)。
for(I=1,k=0;I{if(xx[I]>max)max=xx[I];
if(xx[I]%3==0||xx[I]%7==0)
{j+=xx[I];k++;}
}
for(I=0,cnt=0;Iif(xx[I]==max)cnt++;
pj=(float)(j*100/k)/100;
或者:
cnt=0;max=xx[0];pj=0.0;
for(i=0;iif(maxfor(i=0;iif(xx[i]==max)cnt++;
for(i=0;iif(xx[i]%3==0||xx[i]%7==0)
{pj+=xx[i];k++;}
pj/=k;
题目91。
请编制程序,读取200个整数,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx下标为偶数的元素值的算术平均值pj(保留2位小数)。
{if(xx[I]%2)cnt1++;
elsecnt2++;
if(I%2==0){j+=xx[I];k++;}
}
pj=(float)(j*100/k)/100;
或者:
cnt1=0;cnt2=0;pj=0.0;
for(i=0;iif(xx[i]%2)cnt1++;
else
{cnt2++;pj+=xx[i];}
pj/=cnt2;
编写
题目19。
编写一个函数findStr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。
返回值是6。
{intn;
char*p,*r;
n=0;
while(*str)
{p=str;
r=substr;
while(*r)
if(*r==*p){r++;p++;}
elsebreak;
if(*r=='\0')
n++;
str++;}
returnn;
}
题目20。
编写函数jsValue,它的功能是:
求Fibonacci数列中大于t的最小的一个数,
{intf1=0,f2=1,fn;
fn=f1+f2;
while(fn<=t)
{f1=f2;
f2=fn;
fn=f1+f2;}
returnfn;
}
函数ReadDat()
★☆题目3。
函数ReadDat(),StrOR(),其函数的功能是:
小写字母o,o删除,输出到文件OUT5.DAT
{intI,j,k,index,strl;
charch;
for(I=0;I{strl=strlen(xx[I]);
index=strl;
for(j=0;jif(xx[I][j]=='o')
{for(k=j;kxx[I][k]=xx[I][k+1];
xx[I][strl-1]='';
index=j;}
for(j=strl-1;j>=index;j--)
{ch=xx[I][strl-1];
for(k=strl-1;k>0;k--)
xx[I][k]=xx[I][k-1];
xx[I][0]=ch;}
}}
★☆题目4。
函数ReadDat(),StrOL(),其函数的功能是:
以行为单位倒排。
输出到文件OUT6.DAT中。
{intI,j,k,strl,l;charc;
for(I=0;Ifor(j=0;j{c=xx[I][j];
if((c>='A'&&c<='Z')||(c>='a'&&c<='z')||c=='');
elsexx[I][j]='';}
for(l=0;l{charch[80]={0};charpp[80]={0};
strl=strlen(xx[l]);
I=strl-1;k=1;
while
(1)
{while(((xx[l][I]>='a'&&xx[l][I]<='z')||(xx[l][I]>='A'&&xx[l][I]<='z'))&&I>=0)
{for(j=k;j>=0;j--)
pp[j+1]=pp[j];pp[0]=xx[l][I];k++;I--;}
strcat(ch,pp);strcpy(pp,"""");k=1;
if(I==-1)break;
while((xx[l][I]<'A'||xx[l][I]>'z')&&I>=0)
{for(j=k;j>=0;j--)
pp[j+1]=pp[j];pp[0]=xx[l][I];k++;I--;}
strcat(ch,pp);strcpy(pp,"""");
k=0;
if(I==-1)break;}
strcpy(xx[l],ch);
}}
★☆题目9。
函数ReadDat(),SortCharD(),其函数的功能是:
从大到小,输出到文件OUT2.DAT中。
VoidSortCharD(void)
{intI,j,k,strl;
charch;
for(I=0;I{strl=strlen(xx[I]);
for(j=0;jfor(k=j+1;kif(xx[I][j]{ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}
}}
题目10。
函数ReadDat(),ConvertCharA(),其函数的功能是:
字母z,改成字母a。
输出到文件OUT3.DAT中。
{intI,j,str;
for(I=0;I{str=strlen(xx[I]);
for(j=0;jif(xx[I][j]=='z')xx[I][j]='a';
elseif(xx[I][j]>='a'&&xx[I][j]<='y')xx[I][j]+=1;
}
}
★题目16。
函数ReadDat(),StrCharJR(),其函数的功能是ASCII值右移4位,ASCII值再加上原字符的ASCII值,输出到文件OUT8.DAT中。
{intI,j,strl;
for(I=0;I{strl=strlen(xx[I]);
for(j=0;jxx[I][j]+=xx[I][j]>>4;
}
}
☆题目17。
函数READDAT(),CHA(),其函数功能是:
以行为单位第一个ASCII加第二个ASCII,得到亲朋字符第二个ASCII加第三个ASCII,,依此类推,输出到文件OUT9.DAT
{intI,j,k,str;
charch;
for(I=0;I{str=strlen(xx[I]);
ch=xx[I][0];
for(j=0;jxx[I][j]+=xx[I][j+1];
xx[I][str-1]+=ch;
for(j=0,k=str-1;j{ch=xx[I][j];
xx[I][j]=xx[I][k];
xx[I][k]=ch;}
}
}
☆题目43。
函数ReadDat(),jsSort(),其函数的功能是:
以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,输出到文件out.dat中。
{intI,j,k,strl;
charch;
for(I=0;I<20;I++)
{strl=strlen(xx[I]);
for(j=1;jfor(k=j+2;kif(xx[I][j]>xx[I][k])
{ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}
}}
题目44。
函数ReadDat(),jsSort(),其函数的功能是:
以行为单位对字符串按给定的条件进行排序, 条件:
一分为二,左边ASCII降序,左边与右边交换。
长度为奇数,
{intI,j,k,strl,half;
charch;
for(I=0;I<20;I++)
{strl=strlen(xx[I]);
half=strl/2;
for(j=0;jfor(k=j+1;kif(xx[I][j]{ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}
for(j=half-1,k=strl-1;j>=0;j--,k--)
{ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}}}
★题目50。
函数ReadDat(),jsSort(),其函数的功能是:
以行为单位条件:
一分为二,左边ASCII升序排序,左边与右边交换。
原字符串为奇数,
{inti,strl,half,j,k;
charch;
for(i=0;i<20;i++)/*行循环*/
{strl=strlen(xx[i]);/*每行长度*/
half=strl/2;
for(j=0;jfor(k=j+1;kif(xx[i][j]>xx[i][k])
{ch=xx[i][j];/*每次将最小数赋给xx[i][j]*/xx[i][j]=xx[i][k];xx[i][k]=ch;}
for(j=half-1,k=strl-1;j>=0;j--,k--)
{ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}
}
}
☆题目71。
函数ReadDat(),jsSort(),xx输出到文件out.dat中. 条件:
一分为二,左边按ASCII值降序排序,右边按ASCII值升序排序。
如果为奇数,
{intI,j,k,strl,half;
charch;
for(I=0;I<20;I++)
{strl=strlen(xx[I]);
half=strl/2;
for(j=0;jfor(k=j+1;kif(xx[I][j]{ch=xx[I][j];
xx[I][j]=xx[I][k];
xx[I][k]=ch;}
if(strl%2)half++;
for(j=half;jfor(k=j+1;kif(xx[I][j]>xx[I][k])
{ch=xx[I][j];
xx[I][j]=xx[I][k];
xx[I][k]=ch;}
}}
★题目73。
函数ReadDat(),ConverCharD(),其函数的功能是:
a改写成z。
输出到文件OUT4.DAT中。
{intI;
char*pf;
for(I=0;I{pf=xx[I];
while(*pf)
if(*pf=='a'){*pf='z';pf++;}
elseif(*pf>='b'&&*pf<='z')
{*pf-=1;pf++;}
elsepf++;
}
}
题目74。
函数ReadDat(),StrCharJL(),其函数的功能是:
ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,输出到文件OUT7.DAT中。
{inti,j;
charc;
for(i=0;ifor(j=0;j{c=xx[i][j]<<4;
if(!
(c<=32||c>100))
xx[i][j]+=c;}
}
题目88。
函数ReadDat(),SORTChARA(),其函数的功能是:
从小到大,输出到文件OUT1.DAT中。
VoidConvertCharA()
{intI,j,k,strl;
charch;
for(I=0;I{strl=strlen(xx[I]);
for(j=0;jfor(k=j+1;kif(xx[I][j]>xx[I][k])
{ch=xx[I][j];
xx[I][j]=xx[I][k];
xx[I][k]=ch;}
}}
★题目100。
函数ReadDat(),CharConvA(),其函数的功能是:
最后一个ASCII右移4位后加最后第二个字符的ASCII值,第二个ASCII值右移4位后加最后第三个ASCII值,依此类推,第一个ASCII值加原ASCII值,输出到文件OUT10.DAT中。
{intI,j,strl;
charch;
for(I=0;I{strl=strlen(xx[I]);
ch=xx[I][strl-1];
for(j=strl-1;j>0;j--)
{xx[I][j]>>=4;
xx[I