三级上机南开一百题.docx
- 文档编号:29829587
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:55
- 大小:26.42KB
三级上机南开一百题.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;I for(j=I+1;j if(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;I for(j=I+1;j if(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;I totfc+=(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;I totfc+=(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;i if(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;I if(xx[I]==max)cnt++; pj=(float)(j*100/k)/100; 或者: cnt=0;max=xx[0];pj=0.0; for(i=0;i if(max for(i=0;i if(xx[i]==max)cnt++; for(i=0;i if(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;i if(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;j if(xx[I][j]=='o') {for(k=j;k xx[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;I for(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;j for(k=j+1;k if(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;j if(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;j xx[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;j xx[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;j for(k=j+2;k if(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;j for(k=j+1;k if(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;j for(k=j+1;k if(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;j for(k=j+1;k if(xx[I][j] {ch=xx[I][j]; xx[I][j]=xx[I][k]; xx[I][k]=ch;} if(strl%2)half++; for(j=half;j for(k=j+1;k if(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;i for(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;j for(k=j+1;k if(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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三级 上机 南开 一百