三级C语言_南开100题_上机考试题库
全国计算机等级考试三级C语言上机100题题库 考试必备品
![全国计算机等级考试三级C语言上机100题题库 考试必备品](https://img.taocdn.com/s3/m/03060def998fcc22bcd10d2c.png)
三级C语言上机100题
几点说明:
1、题目标题号前用“☆”显示的是2005年4月份本人根据各大论坛考生聩的题号集中而来,题号前加“★”为2005年9月上机考试题,其中难免有题型相同而题号增加的现象,此类标明,仅供参考。
2、每种题目,只用一种解题方法,兰色部分为解题答案,此种方法本人觉得容易理解,不易出错,适合初学者。
请勿改动主函数main()和写函数writeDat()的内容。
#include <conio.h>
#include <stdio.h>
void readwriteDat();
int isP(int m)
{
int i;
for(i=2;i<m;i++)
if(m % i==0)return 0;
}
void readwriteDat()
{
int m,n,xx[1000], i;
FILE *rf,*wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%d %d",&m,&n);
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>
全国计算机等级考试三级C语言上机题库(含答案,考试作弊必备)
![全国计算机等级考试三级C语言上机题库(含答案,考试作弊必备)](https://img.taocdn.com/s3/m/a98d11e9aeaad1f346933f60.png)
题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。
int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsV al(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
void jsVal(){ int i,j,qw,bw,sw,gw;for(i=0;i<MAX;i++){qw=a[i]/1000; bw=a[i]/100%10;sw=a[i]%100/10; gw=a[i]%10; if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}}★题目3函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。
三级考试南开100题上机题库
![三级考试南开100题上机题库](https://img.taocdn.com/s3/m/2d90a4d7b9f3f90f76c61b97.png)
替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。
void encryptChar() /*标准答案*/
{int I;
除标点符号,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT6.DAT中。
void StrOL(void) /*标准答案*/
{int I,j,k,strl,l;char c;
for(I=0;I<MAXLINE;I++)
char *pf;
for(I=0;I<MAXLINE;I++)
{pf=xx[I];
while(*pf!=0)
{if(*pf*11%256>130||*pf*11%256<=32);
else
*pf=*pf*11%256;
pf++; }
}
}
9题目:
题目9:函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中; 请编制函数SortCharD( ), 其函数的功能是: 以行为单位对字符按从大到小的顺序进行排序, 排序后的结果仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT2.DAT中。
else if(strcmp(sell[I].dm,sell[j].dm)==0)
if(sell[I].je<SELL[J].JE)
三级网络上机南开100题标准答案61-80(绝对没错)
![三级网络上机南开100题标准答案61-80(绝对没错)](https://img.taocdn.com/s3/m/40c3d124ccbff121dd368360.png)
{
int i, data;
for (i=0; i<MAXNUM; i++)
{
if (!xx[i])
break;
if (xx[i] > 0)
totNum++;
data = xx[i]>>1;
if (data%2)
{
totCnt++;
totPjz += xx[i];
half++;
for (j=half; j<strl-1; j++)
for (k=j+1; k<strl; k++)
if (xx[i][j] > xx[i][k])
{
ch = xx[i][j];
xx[i][j] = xx[i][k];
xx[i][k] = ch;
}
}
}
题目72:
int i, thou, hun, ten, data, j;
int ab, cd;
for (i=0; i<200; i++)
{
thou = a[i]/1000;
hun = a[i]%1000/100;
ten = a[i]%100/10;
data = a[i]%10;
if (data==0 || hun==0)
if(isPrime(i) && isPrime(i+4) && isPrime(i+10))
三级C语言上机南开100题_修订word版
![三级C语言上机南开100题_修订word版](https://img.taocdn.com/s3/m/45c54f35eefdc8d376ee32e5.png)
*******************************************************************************☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
void jsVal(){ int i,j,qw,bw,sw,gw;for(i=0;i<MAX;i++){ qw=a[i]/1000; bw=a[i]/100%10;sw=a[i]%100/10; gw=a[i]%10;if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}}******************************************************************************★题目3(字符型题)函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。
三级c语言机试答案南开100题打印版(1)
![三级c语言机试答案南开100题打印版(1)](https://img.taocdn.com/s3/m/5cf4fa3610661ed9ad51f3de.png)
****************************** ********三级c语言机试答案(南开100题打印版)****************************** ********第1题void num(int m,int k,int xx[]){int data=m+1;int half,n=0,I;while(1){half=data/2;for(I=2;I<=half;I++) if(data%I==0)break;if(I>half){xx[n]=data;n++;}if(n>=k)break;data++;}}***************************第2题void jsVal(){int bb[4];int I,j,k,flag;for (I=0;I<200;I++){bb[0]=a[I]/1000;bb[1]=a[I]%1000/100;bb[2]=a[I]%100/10;bb[3]=a[I]%10;for (j=0;j<4;j++){if (bb[j]%2==0)flag=1;else{flag=0;break;}}if (flag==1){ b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if (b[I]<b[j]){k=b[I];b[I]=b[j];b[j]=k;}}**************************第3题void StrOR(void){int I,j,k,index,strl;char ch;for(I=0;I<maxline;I++){strl=strlen(xx[I]);index=strl;for(j=0;j<strl;j++)if(xx[I][j]=='o'){for(k=j;k<strl-1;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题void StrOL(void){int I,j,k,strl,l;char c;for(I=0;I<maxline;I++)for(j=0;j<strlen(xx[I]);j++){c=xx[I][j];if((c>='A'&&c<='Z')||(c>='a'&&c<='z')||c==' ');else xx[I][j]=' ';}for(l=0;l<maxline;l++){char ch[80]={0};char pp[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);}}***************************第5题void jsSort(){int I,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;}else if(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];}*****************************************第6题void jsSort(){int I,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;}else if(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];}*****************************************第7题void SortDat( ){int I,j;PRO xy;for(I=0;I<99;I++)for(j=I+1;j<100;j++)if(strcmp(sell[I].dm,sell[j].dm)<0){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].dm,sell[j].dm)==0)if(sell[I].je<sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}*****************************************第8题void encryptChar( ){int I;char *pf;for(I=0;I<maxline;I++){pf=xx[I];while(*pf!=0){if(*pf*11%256>130||*pf*11%256<= 32);else*pf=*pf*11%256;pf++;}}}****************************** ***********第9题void SortCharD(void){int I,j,k,strl;char ch;for(I=0;I<maxline;I++){strl=strlen(xx[I]);for(j=0;j<strl-1;j++)for(k=j+1;k<strl;k++)if(xx[I][j]<xx[I][k]){ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}}}****************************** ***********第10题void ConvertCharA(void){int I,j,str;for(I=0;I<maxline;I++){str =strlen(xx[I]);for(j=0;j<str;j++)if(xx[I][j]=='z')xx[I][j]='a';else if(xx[I][j]>='a'&&xx[I][j]<='y') xx[I][j]+=1;}}****************************** ***********第11题void chg(char*s){while(*s)if(*s=='z'||*s=='Z'){*s-=25;s++;}else if(*s>='a'&&*s<='y'){*s+=1;s++;}else if(*s>='A'&&*s<='Y'){*s+=1;s++;}else s++;} *****************************************第12题void SortDat( ){int I,j;PRO xy;for(I=0;I<99;I++)for(j=I+1;j<100;j++)if(strcmp(sell[I].mc,sell[j].mc)>0){xy=sell[I];sell [I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].mc,sell[j].mc)==0)if(sell[I].je>sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}*****************************************第13题void SortDat( ){int I,j;PRO xy;for(I=0;I<99;I++)for(j=I+1;j<100;j++)if(strcmp(sell[I].mc,sell[j].mc)>0){xy=sell[I];sell [I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].mc,sell[j].mc)==0)if(sell[I].je<sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}*****************************************第14题void jsVal(){int I,j,flag=0;int k;for(I=0;I<MAX-5;I++){for(j=I+1;j<=I+5;j++){if (a[I]>a[j])flag=1;else {flag=0;break;}if (a[I]%2==0)flag=0;}if (flag==1){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if (b[I]>b[j]){k=b[I];b[I]=b[j];b[j]=k;}}*****************************************第15题void jsVal(){int I,j;int a1,a2,a3,a4,k;for (I=0;I<MAX;I++){a1=a[I]/1000;a2=a[I]%1000/100;a3=a[I]%100/10;a4=a[I]%10;if((a1<=a2)&&(a2<=a3)&&(a3<=a4)&&(a[I]%2==0)){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if (b[I]>b[j]){k=b[I];b[I]=b[j];b[j]=k;}}*****************************************第16题void StrCharJR(void){int I,j,strl;for(I=0;I<maxline;I++){strl=strlen(xx[I]);for(j=0;j<strl;j++)xx[I][j]+=xx[I][j]>>4;}}*****************************************第17题void ChA(void){int I,j,k,str;char ch;for(I=0;I<maxline;I++){str=strlen(xx[I]);ch=xx[I][0];for(j=0;j<str-1;j++)xx[I][j]+=xx[I][j+1];xx[I][str-1]+=ch;for(j=0,k=str-1;j<str/2;j++,k--){ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}}}****************************** ***********第18题void encryptChar( ){int I;char *pf;for(I=0;I<maxline;I++){pf=xx[I];while(*pf!=0){if(*pf%2==0||*pf*11%256<=32) ;else*pf=*pf*11%256;pf++;}}}****************************** ***********第19题int findStr(char *str,char *substr){ int n;char *p , *r;n=0;while ( *str ){ p=str;r=substr;while(*r)if(*r==*p) { r++; p++; }else break;if(*r=='\0')n++;str++;}return n;}****************************** ***********第20题int jsValue(int t){ int f1=0,f2=1,fn;fn=f1+f2;while(fn<=t){f1=f2;f2=fn;fn=f1+f2;}return fn;}****************************** *********第21题float countValue(){float x0,x1=0.0;while(1){x0=x1;x1=cos(x0);if(fabs(x0-x1)<1e-6) break; }return x1;}*****************************************第22题double countValue(int n){double xy=0.0;int I;for(I=1;I<n;I++)if(I%3==0&&I%7==0) xy+=I;xy=sqrt((double)xy);return xy;}*****************************************第23题void CalValue(){int I;double x,sum=0;for (I=0;I<MAXNUM;I++){sumint=sumint+(int)xx[I];x=xx[I]-(int)xx[I];sumdec=sumdec+x;sum=sum+xx[I];}aver=sum/MAXNUM;}*****************************************第24题int jsValue(int bb[]){int I,j,k=0;int hun,ten,data;for(I=100;I<=999;I++){j=10;while(j*j<=I){if (I==j*j){hun=I/100;data=I-hun*100;ten=data/10;data=data-ten*10;if(hun==ten||hun==data||ten==data){bb[k]=I;k++;}}j++;}}return k;}*****************************************第25题int jsValue(long n){int I,strl,half;char xy[20];ltoa(n,xy,10);strl=strlen(xy);half=strl/2;for(I=0;I<half;I++)if(xy[I]!=xy[--strl]) break;if(I>=half) return 1;else return 0;}*****************************************第26题void CalValue(void){int I,data;for(I=0;I<MAXNUM;I++){if(!xx[I]) break;if(xx[I]>0) totNum++;data=xx[I]>>1;if(data%2==0){totCnt++;totPjz+=xx[I];}}totPjz/=totCnt;}*****************************************第27题void jsValue(){int I,thou,hun,ten,data,j;for(I=0;I<300;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if (thou-hun-ten-data>0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]>b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第28题void jsVal(){int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I<200;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;ab=10*thou+ten;cd=10*data+hun;?LVAL ?•€ f •€ f •• •• •if ((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0) {b[cnt]=a[I];cnt++;} } for(I=0;I<cnt-1;I++) for(j=I+1;j<cnt;j++) if(b[I]<b[j]) {data=b[I]; b[I]=b[j]; b[j]=data;} } ***************************************** 第29题 void jsVal() { int I,thou,hun,ten,data,j; int ab,cd; for(I=0;I<200;I++) {thou=a[I]/1000; hun=a[I]%1000/100; ten=a[I]%100/10; data=a[I]%10; ab=10*thou+ten; cd=10*data+hun; if((ab-cd)>=10&&(ab-cd)<=20&&ab%2==0&&cd%2==0&&ab!=0&&cd!=0) {b[cnt]=a[I];cnt++;} } for(I=0;I<cnt-1;I++) for(j=I+1;j<cnt;j++) if(b[I]<b[j]) {data=b[I]; b[I]=b[j]; b[j]=data;} } ***************************************** 第30题 void jsVal() {int I,j,flag=0; for(I=0;I<MAX-5;I++) {for(j=I+1;j<=I+5;j++) {if(a[I]<a[j]) flag=1; else flag=0; if(a[I]%2!=0) flag=0; if (flag==0) break;} if(flag==1) {b[cnt]=a[I];cnt++;} } for(I=0;I<cnt-1;I++) for(j=I+1;j<cnt;j++) if(b[I]>b[j]) {flag=b[I]; b[I]=b[j]; b[j]=flag;} } **************************************** 第31题 void SortDat( ) {int I,j; PRO xy; for(I=0;I<99;I++) for(j=I+1;j<100;j++) if(sell[I].je<sell[j].je) {xy=sell[I]; sell [I]=sell[j]; sell[j]=xy;} else if(sell[I].je==sell[j].je) if(strcmp(sell[I].dm,sell[j].dm)<0) {xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;} } ***************************************** 第32题 void SortDat( ) {int I,j; PRO xy; for(I=0;I<MAX-1;I++)for(j=I+1;j<MAX;j++) if(strcmp(sell[I].mc,sell[j].mc)<0) {xy=sell[I]; sell [I]=sell[j]; sell[j]=xy;} else if(strcmp(sell[I].mc,sell[j].mc)==0) if(sell[I].je>sell[j].je) {xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;} } ***************************************** 第33题 int ReadDat(void) {FILE *fp; int I,j; if((fp=fopen("IN.DAT","r"))==NULL) return 1; 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); return 0;} void Compute(void) {int I, 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<even;I++) totfc+=(yy[I]-ave2)*(yy[I]-ave2)/even; } ***************************************** 第34题 void countValue() {int I,j,half,hun,ten,data; for(I=101;I<1000;I++) {hun=I/100; ten=I%100/10; data=I%10; if(hun==(ten+data)%10) {half=I/2; for(j=2;j<half;j++) if(I%j==0) break; if(j>=half) {cnt++;sum+=I;} } } } ***************************************** 第35题 void jsValue() {int a1=1,a2=1,n=1,an; int sum0,sum; sum0=a1+a2; while(1) {an=a1+a2*2; sum=sum0+an; a1=a2; a2=an; n++; if (sum0<100&&sum>100) b[0]=n; if (sum0<1000&&sum>1000) b[1]=n; if (sum0<10000&&sum>10000) {b[2]=n; break;} sum0=sum; } } ***************************************** 第36题 void encryptChar( ) {int I; char *pf; for(I=0;I<maxline;I++) {pf=xx[I]; while(*pf!=0){if((*pf*11%256>='0'&&*pf*11%25 6<='9')||*pf*11%256<=32){pf++;continue;}*pf=*pf*11%256;pf++;}}}****************************** ***********第37题void encryptChar( ){int I;char *pf;for(I=0;I<maxline;I++){pf=xx[I];while(*pf!=0){ if((*pf>='A'&&*pf<='Z')||*pf*11%256 <=32){pf++;continue;}*pf=*pf*11%256;pf++;}}}****************************** ***********第38题void SortDat( ){int I,j;PRO xy;for(I=0;I<MAX-1;I++)for(j=I+1;j<MAX;j++)if(strcmp(sell[I].dm,sell[j].dm)>0) {xy=sell[I];sell[I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].dm,sell[j].dm)==0) if(sell[I].je>sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}****************************** ***********第39题void CountRs(void){int I,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++;}else str++; if(j!=0&&j!=10){str=xx[I];k=0;while(*str)if(*str++=='1') yy[k++]+=1;else k++;}}}*****************************************第40题void CalValue(){int I,thou,hun,ten,data;int ab,sum=0;for(I=0;I<MAXNUM;I++){if(xx[I]>0) totNum++;{thou=xx[I]/1000;hun=xx[I]%1000/100;ten=xx[I]%100/10;data=xx[I]%10;ab=thou+hun+ten+data;if (ab%2==0){totCnt++;sum=sum+xx[I];}}}totPjz=sum/totCnt;}****************************************第41题void countValue(){int I=100;while(1){if(3*I%2==0&&3*I/2>=1000&&3*I/2<=9999){cnt++;sum+=I+3*I/2;I++;}else I++;if (I>999||3*I/2>9999) break;}}*****************************************第42题void SortDat( ){int I,j;PRO xy;for(I=0;I<99;I++)for(j=I+1;j<100;j++)if(strcmp(sell[I].mc,sell[j].mc)<0){xy=sell[I];sell [I]=sell[j];sell[j]=xy;}elseif(strcmp(sell[I].mc,sell[j].mc)==0)if(sell[I].je<sell[j].je){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}*****************************************第43题void jsSort(){int I,j,k,strl;char ch;for(I=0;I<20;I++){strl=strlen(xx[I]);for(j=1;j<strl-2;j=j+2)for(k=j+2;k<strl;k=k+2)if (xx[I][j]>xx[I][k]){ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}}}*****************************************第44题void jsSort(){int I,j,k,strl,half;char ch;for(I=0;I<20;I++){strl=strlen(xx[I]);half=strl/2;for(j=0;j<half-1;j++)for(k=j+1;k<half;k++)if (xx[I][j]<xx[I][k]){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;}}}*****************************************第45题void jsVal(){int I,j,flag=0;for(I=5;I<MAX-5;I++){for(j=I-5;j<I;j++){if(a[I]>a[j])flag=1;else flag=0;if(a[I]%2!=0)flag=0;if (flag==0) break;}if(flag==1) {b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){flag=b[I];b[I]=b[j];b[j]=flag;}}****************************** ***********第46题void jsVal(){int I,j,flag=0;for(I=5;I<MAX-5;I++){for(j=I-5;j<I;j++){if(a[I]>a[j])flag=1;else {flag=0;break;}}if(flag==1&&a[I]%2==1&&a[I]%7==0) {b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){flag=b[I];b[I]=b[j];b[j]=flag;}}**************************第47题void SortDat( ){int I,j;PRO xy;for(I=0;I<MAX-1;I++)for(j=I+1;j<MAX;j++)if(sell[I].je<sell[j].je){xy=sell[I];sell [I]=sell[j];sell[j]=xy;}else if(sell[I].je==sell[j].je)if(strcmp(sell[I].dm,sell[j].dm)>0){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}****************************** ******第48题void jsValue(){int I,thou,hun,ten,data,j;for(I=0;I<300;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if(thou+data==hun+ten){b[cnt]=a[I];cn t++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]>b[j]){data=b[I];b[I]=b[j];b[j]=data;} }*****************************************第49题void jsValue(){int I,thou,hun,ten,data,n=0;for(I=0;I<300;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if (thou-hun-ten-data>0){cnt++;pjz1+=a[I];}else {n++;pjz2+=a[I];}}pjz1/=cnt;pjz2/=n;}*****************************************第50题void jsSort(){int I,j,k,strl,half;char ch;for(I=0;I<20;I++){strl=strlen(xx[I]);half=strl/2;for(j=0;j<half-1;j++)for(k=j+1;k<half;k++)if (xx[I][j]>xx[I][k]){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;}}}****************************************第51题void jsVal(){int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I<200;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;ab=10*thou+ten;cd=10*data+hun;if(isprime(ab)&&isprime(cd)&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第52题void jsVal(){int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I<200;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;ab=10*thou+data;cd=10*hun+ten;if(ab%2==1&&cd%2==1&&(ab%5==0||cd%5==0)&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第53题void jsValue(){int I,thou,hun,ten,data,j;for(I=0;I<300;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if (data-thou-hun-ten>0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第54题void jsValue(){int I,thou,hun,ten,data,j;for(I=0;I<300;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if(thou+hun==data+ten){b[cnt]=a[I];cn t++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}****************************** ***********第55题void jsValue(){int j,I,value;for(I=0;I<300;I++)if(isP(a[I])) {b[cnt]=a[I];cnt++;}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]>b[j]){value=b[I];b[I]=b[j];b[j]=value;}}****************************** ***********第56题void encryptChar( ){int I;char *pf;for(I=0;I<maxline;I++){pf=xx[I];while(*pf=0){ if((*pf*11%256>='a'&&*pf*11%256< ='z')||*pf*11%256<=32){pf++;continue;}*pf=*pf*11%256;pf++;}}}****************************** ***********第57题void Josegh(void){int I,j,k,s1,w;s1=s;for(I=1;I<=n;I++) p[I-1]=I;for(I=n;I>=2;I--){s1=(s1+m-1)%I;if (s1==0) s1=I; w=p[s1-1];for(j=s1;j<=I-1;j++) p[j-1]=p[j];p[I-1]=w;}}*****************************************第58题void CountRs(void){int I,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++;}else if (*pf=='0') {pf++;j++;}}}}*****************************************第59题void jsVal(){int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I<200;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;ab=10*thou+ten;cd=10*data+hun;if(((ab-cd)<0&&ab%2==1&&ab%5!=0)&&cd%2!=1&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第60题int jsSort(){int I,cnt=0,j;Data ch;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<cnt-1;I++)for(j=I+1;j<cnt;j++)if(bb[I].x2+bb[I].x3<bb[j].x2+bb[j].x3){ ch=bb[I];bb[I]=bb[j];bb[j]=ch;}return cnt;}****************************************第61题void SortDat( ){int I,j;PRO xy;for(I=0;I<99;I++)for(j=I+1;j<100;j++)if(sell[I].je>sell[j].je){xy=sell[I];sell [I]=sell[j];sell[j]=xy;}else if(sell[I].je==sell[j].je)if(strcmp(sell[I].dm,sell[j].dm)<0){xy=sell[I];sell[I]=sell[j];sell[j]=xy;}}*****************************************第62题void encryptChar( ){int I;char *pf;for(I=0;I<maxline;I++){pf=xx[I];while(*pf!=0){if((*pf*13%256)/2*2==*pf||*pf*13%256<=32){pf++;continue;}*pf=*pf*13%256;pf++;}}}*****************************************第63题void chg(char *s){int I,strl;char ch;strl=strlen(s);ch=*s;for(I=0;I<strl-1;I++)*(s+I)=*(s+I+1);*(s+strl-1)=ch;}****************************** ***********第64题void countValue(){int I,count=0,xx[30];int j,k,m;cnt=0;sum=0;for(I=1;I<=90;I++)if(isPrime(I)) {xx[count]=I;count++;} for(I=0;I<count;I++)if(isPrime(xx[I]+4)&&isPrime(xx[I]+1 0)){cnt++;sum+=xx[I];}}****************************** ***********第65题void CalValue(void){int I,thou,hun,ten,data;for(I=0;I<MAXNUM;I++){if (!xx[I]) break;if (xx[I]>0) totNum++;thou=xx[I]/1000;hun=xx[I]%1000/100;ten=xx[I]%100/10;data=xx[I]%10;if ((thou+hun+ten+data)%2){totCnt++;totPjz+=xx[I];}}totPjz/=totCnt;}****************************** ***********第66题void countValue(){int I,j,half,yy[100];for(I=500;I<=800;I++){half=I/2;for(j=2;j<half;j++)if (I%j==0) break;if (j>=half) {yy[cnt]=I;cnt++;}}for (I=0,j=-1;I<cnt;I++){j=j*-1;sum+=j*yy[I];}}****************************** ***********第67题void countValue(){int I,thou,hun,ten,data;for(I=5000;I>=1000;I--){thou=I/1000;hun=I%1000/100;ten=I%100/10;data=I%10; if(thou+hun==ten+data&&thou+hun==(data-thou)*10){cnt++;sum+=I;}}}*****************************************第68题void jsVal(){int I,thouhun,ten,data,j;for(I=0;I<200;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if(thou%2!=0&&hun%2!=0&&ten%2!=0&&data%2!=0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第69题void jsVal(){int I,thou,hun,ten,data,j;for(I=0;I<MAX;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if ((thou-hun-ten-data>=0)&&a[I]%2==1){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]>b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第70题void CalValue(void){int I,data;for(I=0;I<MAXNUM;I++){if(!xx[I]) break;if(xx[I]>0) totNum++;data=xx[I]>>1;if (data%2) {totCnt++;totPjz+=xx[I];}}totPjz/=totCnt;}*****************************************第71题void jsSort(){int I,j,k,strl,half;char ch;for(I=0;I<20;I++){strl=strlen(xx[I]);half=strl/2;for(j=0;j<half-1;j++)for(k=j+1;k<half;k++)if (xx[I][j]<xx[I][k]){ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}if (strl%2) half++;for(j=half;j<strl-1;j++)for(k=j+1;k<strl;k++)if (xx[I][j]>xx[I][k]){ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}}}*****************************************第72题void jsVal(){int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I<MAX;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;ab=10*data+thou;cd=10*hun+ten;if((ab%9==0||cd%9==0)&&ab%2!=1&&cd%2!=1&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第73题void ConvertCharD(){int I;char *pf;for(I=0;I<maxline;I++){pf=xx[I];while (*pf)if (*pf=='a'){*pf='z';pf++;}else if (*pf>='b'&&*pf<='z'){*pf-=1;pf++;}else pf++;}}****************************** ***********第74题void StrCharJL(void){int I,j,str;for(I=0;I<maxline;I++){str=strlen(xx[I]);for(j=0;j<str;j++)if (xx[I][j]<<4<=32||xx[I][j]<<4>100) ;else xx[I][j]+=xx[I][j]<<4;}}****************************** ***********第75题int jsSort(){int I,j,count=0;Data val;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<count-1;I++)for(j=I+1;j<count;j++)if(bb[I].x1+bb[I].x3<bb[j].x1+bb[j].x3) {val=bb[I];bb[I]=bb[j];bb[j]=val;}return count;}****************************** ***********第76题void jsVal(){int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I<200;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;ab=10*data+thou; cd10*hun+ten;if((ab%2!=1&&cd%2==1)||(ab%2==1&&cd%2!=1)&&(ab%17==0||cd%17==0)&&ab!=0&&cd!=0)){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第77题void jsVal(){int I,thou,hun,ten,data,j;for(I=0;I<MAX;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if((thou+ten==hun+data)&&a[I]%2!=1){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]>b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第78题void jsVal(){int I,thou,hun,ten,data,j;for(I=0;I<MAX;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if((thou>=hun)&&(hun>=ten)&&(ten>=data)&&a[I]%2!=0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]>b[j]){data=b[I];b[I]=b[j];b[j]=data;}}*****************************************第79题void countValue(int *a,int *n){int I;*n=0;for(I=1;I<=1000;I++)if(I%7==0&&I%11){*a=I;*n=*n+1;a++;}else if(I%7&&I%11==0){*a=I;*n=*n+1;a++;}}*****************************************第80题void jsValue(){int I,thou,hun,ten,data,n=0;for(I=0;I<300;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if (data-thou-hun-ten>0){cnt++;pjz1+=a[I];}else {n++;pjz2+=a[I];}}pjz1/=cnt;pjz2/=n;}*****************************************第81题void jsValue(){int I,thou,hun,ten,data,n=0;for(I=0;I<300;I++){thou=a[I]/1000;hun=a[I]%1000/100;ten=a[I]%100/10;data=a[I]%10;if (thou+hun==ten+data){cnt++;pjz1+=a[I];}else {n++;pjz2+=a[I];}}pjz1/=cnt;pjz2/=n;}*****************************************第82题void jsValue(){int I;for (I=0;I<300;I++)if (isP(a[I])) {pjz1+=a[I];cnt++;}else pjz2+=a[I];pjz1=pjz1/cnt;pjz2=pjz2/(300-cnt);。
三级C上机南开100题的分类
![三级C上机南开100题的分类](https://img.taocdn.com/s3/m/6f1a3d6c1eb91a37f1115c5d.png)
第1类:100个产品销售记录排序[共10题:7,12,13,31,32,38,42,47,61,99]第2类:英文文章--字符串处理第1组:字符排序、移动[共10题:3,4,(9,88,)(字母变换10,73)(16,17,74,100)]第2组:字符串数组中的字符替代[共10题:8,18,36,37,56,62,95,96,97,98]第3类:300个四位数问题[此类共10题:27,48,53,54,55//49,80,81,(82素数),87]第1组:产生数组B,并对B按一定要求排序。
(27,48,53,54,55)第2组:求满足条件的数的个数、平均值……及不满足条件的数的平均值等。
(49,80,81,82,87)第4类:200个四位数按要求统计个数、排序[共20+2题]第1组各位数字从新组合、排序,有歧义[共8题:28,29,51,(被某数整除52,72,76),59,86]第2组各位数字加减、统计个数、排序[共4题:69,77,85,89]第3组比较各位数字大小后统计个数、排序[共2题:15,78]第4组依次取出4个数,奇偶数、排序[共4题:14,30,45,46]第5组排序[共2题:2,68]第6组200个正整数(1000~9999之间)排序[共2题:5,6]第5类:200个整数读至数组,奇偶性平均值、整除[共2题:91和94]第6类:小于200个四位正整数[共4题:(26,70),(40,65)]第7类:1000个十进制整数,奇偶性、平均值、方差等[共3题:33,83,93]第8类:素数相关、被某些数整除[共7题:1,34,64,66;;22,79,92]第9类:200组3位数[共2题:60,75]第10类:小于200个实数求平均值等[23]第11类:字符串操作[共7题:43,44,50,71;;11,63;;19]第12类:选票数据[共3题:39,58,84]第13类:求有特点的数[共3题:24;;25回文数;;67各位数字的操作]第14类:特殊求解[共3题:35级数;;21迭代求实根;;20 Fibonacci数列]第15类:几人围坐报数[57]第16类:正整数数列重排[90]第17类:计算满足条件的自然数个数[41]。
全国计算机等级考试三级C语言上机南开100题
![全国计算机等级考试三级C语言上机南开100题](https://img.taocdn.com/s3/m/91b57b6f1eb91a37f1115cff.png)
tem[k++]=xx[i][s];
for(s=0;s<righto;s++)
if(xx[i][s]!='o')
tem[k++]=xx[i][s];
strcpy(xx[i],tem);
}
else continue;
}
}
*******************************************************************************
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT1.DAT中。
if(isP(m)) { xx[s++]=m; k--;}
}
☆题目2
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
{xy=sell[i]; sell [i]=sell[j]; sell[j]=xy;}
南开大学100题c语言
![南开大学100题c语言](https://img.taocdn.com/s3/m/9e7140e4ddccda38376bafd2.png)
1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;/lugoi6liilyrf67for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;xcfb}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
全国计算机等级考试三级C语言上机100题答案
![全国计算机等级考试三级C语言上机100题答案](https://img.taocdn.com/s3/m/5994c008caaedd3383c4d378.png)
全国计算机等级考试三级C语言上机100题一.排序类:1.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>#define MAX 200int a[MAX], b[MAX], cnt = 0 ;void jsVal(){int i,j,t;for(i=0;i<MAX;i++){t=a[i];if(t%2+t/10%2+t/100%2+t/1000%2==0)b[cnt++]=t;}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}}void readDat(){int i ;FILE *fp ;fp = fopen("in.dat", "r") ;fclose(fp) ;}void main(){int i ;readDat() ;jsVal() ;printf("满足条件的数=%d\n", cnt) ;for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;printf("\n") ;writeDat() ;}writeDat(){FILE *fp ;int i ;fp = fopen("out.dat", "w") ;fprintf(fp, "%d\n", cnt) ;for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ; fclose(fp) ;}2. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b 中。
计算机三级上机:适用于三级网络技术、数据库等(南开100题)
![计算机三级上机:适用于三级网络技术、数据库等(南开100题)](https://img.taocdn.com/s3/m/076328dc65ce050876321380.png)
全国计算机等级考试三级C语言上机100题几点说明:**********************************☆题目1请编写一个函数jsValue(intm,intk,intxx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入175则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include<conio.h>#include<stdio.h>voidreadwriteDat();intisP(intm){inti;for(i=2;i<m;i++)if(m%i==0)return0;return1;}voidnum(intm,intk,intxx[]){ints=0;for(m=m+1;k>0;m++)if(isP(m)){xx[s++]=m;k--;}}main(){intm,n,xx[1000];clrscr();printf("\nPleaseentertwointegers:");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d",xx[m]);printf("\n");readwriteDat();}voidreadwriteDat(){intm,n,xx[1000],i;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}*********************************☆题目2已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
C语言上机南开100题_答案及详解
![C语言上机南开100题_答案及详解](https://img.taocdn.com/s3/m/d22fba2558fb770bf78a5567.png)
上机答案及详解 1) 考查知识点:采用递归算法求数的阶乘。 解题思路:所谓递归法,可以这样来理解:若要求 10!,则可看作是 9!×10,因此要求 10!,则需要知 道 9!;同理,9!=8!×9,则要求知道 8!;以此类推, 直到知道了 1!的值,才能得到 10!的值。这一过程 就是递归问题的第一个阶段回推。而 1!值(通常 初始值都是已知的或能很容易求得的)是已知的 (1!=1)。这里需要注意,必须要有条件使递归调用 终止,否则就会成为无终止调用,成为死循环。则 通过已知条件 1!=1,推得下一个结果 2!=1!×2=1 ×2=2。同理,也可推得 3!、4!直到推得 10!。这一 过程就是递归问题的第二个阶段递推。递推的共 同特点是从一个已知的事实出发,按一个共同的规 律推出下一个事实,再从这个新的已知事实出发, 再向下推出一个新的事实。 因此可用下面的递归公式表示 n!
{ if(*p<*q) c[k]=*q; /*这句和下句是把 a 或 b
中大的一个值存入 c*/ else c[k]=*p; /*如果两个数组不等长,就把长的一个数
组的剩余部分继续拷贝到 c 数组中*/ if(*p) p++; if(*q) q++; k++;
}
【参考答案】: 第 1 处:int k = 1; 应改为 int k = 0; 第 2 处:while(*p != *q) 应改为 while(*p || *q)
函数类型 函数名(数据类型 形式参数; 数据 类型 形式参数...) /*此处不能用";"*/
{ 函数体;
}
(2)if 语句的声明如下:
if(条件) { 语句或复合语句}
全国计算机等级考试三级上机题库(南开100题)
![全国计算机等级考试三级上机题库(南开100题)](https://img.taocdn.com/s3/m/a0ad7b38ee06eff9aef8077f.png)
if (b[I]<b[j])
{k=b[I];b[I]=b[j];b[j]=k;}
}
题目1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现函数的要求 ,最后调用函数readwriteDAT()把结果输出到文件out.dat中。 例如:若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序已给出。
请勿改动主函数main()和函数readwriteDAT()的内容。
--------------
类型:素数。
void num(int m,int k,int xx[]) /*标准答案*/
{int data=m+1;
int half,n=0,I;
while(1)
{half=data/2;for(I=2;I<=half;I++)
if(data%I==0)break;
if(I>half)
{xx[n]=data;n++;}
if(n>=k)break;
data++;
} }
题目2:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意: 部分源程序存在文件PROG1.C文件中。
南开计算机等级考试上机100题(三级)
![南开计算机等级考试上机100题(三级)](https://img.taocdn.com/s3/m/2597cf9fad51f01dc381f13d.png)
南开计算机等级考试上机100题(三级)1. 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS10.DAT中。
替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。
部分源程序已给出,原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include#include#include#includeunsigned char xx[50][80];int maxline=0;/*文章的总行数*/int ReadDat(void)void WriteDat(void)void encryptChar(){ int i,j;char *p;for(i=0;i='a'&&xx[j]='0'&&p='A'&&p='0'&&xx[j]='A'&&xx[j] ='a'&&p130);else xx[j]=p; } }11.函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串长度均小于80)。
请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
计算机三(和谐)级上机C语言南开100题答案
![计算机三(和谐)级上机C语言南开100题答案](https://img.taocdn.com/s3/m/e549d484b9d528ea81c77907.png)
}
}
第5题答案
void jsSort()
{
int i, j, data;
/*对数组aa的所有200个数进行选择排序 */
for (i=0; i<199; i++)
for (j=i+1; j<200; j++)
{
/*按每个数后三位的大小进行升序排列 */
}
}
第4题答案
void StrOL(void)
{
int i, j, k, strl, l;
/*循环遍历英文文章的全部字符,将既不是字母也不是空格的字符替换成空格 */
for (i=0; i<maxline; i++)
for (j=0; j<(int)strlen(xx[i]); j++)
strcpy(buf, &xx[i][j+1]);/*将后半截字符串复制到缓存行buf中 */
/*从第1个字符开始循环遍历前半截字符串 */
k = j = 0;
while (xx[i][j])
{
/*循环往后遍历,找出第1个小写字母'o'的位置或到达字符串末尾 */
while (xx[i][j]!='o' && xx[i][j])
{
int i,j,k;
char buf[80];
for (i=0; i<maxline; i++)/*循环以遍历英文文章的每一行 */
{
j = strlen(xx[i])-1;/*求出当前行最后一个字符的位置 */
三级PC上机题库南开100题
![三级PC上机题库南开100题](https://img.taocdn.com/s3/m/e83d83966bec0975f465e286.png)
三级PC南开100题第一题:一、请编制程序,其功能是:将内存中由SOURCE指示的40个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域,存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素。
例如:内存中有1EH,91H,74H,91H,42H,30H,81H,F3H,18H,25H结果为06H,1EH,74H,42H,30H,18H,25H,04H,91H,91H,81H,F3H部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。
运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT 中。
填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。
调试中若发现整个程序中存在错误之处, 请加以修改。
试题程序:EXTRN LOAD:FAR,SAVE:FARN EQU 40STAC SEGMENT STACKDB 128 DUP(?)STAC ENDSDATA SEGMENTSOURCE DB N DUP(0)RESULT DB N+2 DUP(0)NAME0 DB 'INPUT1.DAT',0NAME1 DB 'OUTPUT1.DAT',0NDATA DB N DUP(0)PDATA DB N DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACSTART PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX ;置附加段寄存器LEA DX,SOURCE ;数据区起始地址LEA SI,NAME0 ;原始数据文件名MOV CX,N ;字节数CALL LOAD ;从'INPUT1.DAT'中读取数据;****BEGIN****LEA SI,SOURCEMOV DI,OFFSET PDATA ;PDATA为正数数组存放缓冲区首址MOV BX,OFFSET NDATA ;NDATA为负数数组存放缓冲区首址XOR DX,DXMOV CX,NCLDMAIN1: LODSBTEST AL,00HJZ MAIN2INC DH ;-MOV [BX],ALINC BXJMP MAIN3MAIN2: INC DLMOV [DI],AL ;+INC DIMAIN3: LOOP MAIN1LEA SI,PDATALEA DI,RESULTMOV [DI],DLINC DIXOR CX,CXMOV CL,DLMAIN4: MOV AL,[SI]MOV [DI],ALINC DIINC SILOOP MAIN4_MOV [DI],DHINC DIXOR CX,CXMOV CL,DHMOV BX,OFFSET NDATAMAIN5: MOV AL,[BX]MOV [DI],ALINC DIINC BXLOOP MAIN5;****END****LEA DX,RESULT ;结果数据区首址LEA SI,NAME1 ;结果文件名MOV CX,N+2 ;字节数CALL SAVE ;保存结果到文件RETSTART ENDPCODE ENDSEND START第二题:一、请编制程序,其功能是:内存中连续存放着10个无符号8位格雷码表示的数,现将此十个数转换成十个8位二进制数,结果存入内存,其转换方法为二进制数的最高位D7与格雷码的最高位G7相同,二进制数的其余七位D K(k=6,…,0)分别为格雷码的位G K(k=6,…,0)与二进制数的位D K+1(k=6,…,0)异或的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国计算机等级考试三级C语言程序设计南开100题上机考试题库【终极无错版】【注:三级除PC技术考汇编外,其它均考C语言,其上机题库是一样的】【这是最经典的04版,我仔细对比了所谓的06版题库及08版上机模拟软件中的题,其实都是04版的。
09年笔试大纲有变动,但是机试题库应该不会换,因为再编个南开100题(库)没有必要,也很累,还不能保证正确性(起码要经过多番验证才能投入使用)。
参加09年三级考试的朋友请放心使用。
就算变动也不过是把改一下个别数组名、把“升序排列”改为“降序排列”、把“从小到大”改为“从大到小”等,所以请大家消除疑虑,放心使用】资料收集整理:(以后该网站将发布(收集和原创)计算机二三级资源、电脑常见问题的解决视频教程、网络相关问题文章,如果你遇到了电脑、网络方面的问题可以到这来查找视频和图文教程或咨询,也欢迎高手来此帮助他人解决问题)下载地址:http://cid-/sel f.aspx/.Public(有自带VC++的上机系统下载)题目前带★号的是在2004年4月份考试被考生们所确定了的上机题。
题目前带☆号的是在2004年9月份考试被考生们所确定了的上机题。
05年后抽到的题没作标识。
题目中所提示的“无忧id xx”指的是2004年上半年版无忧模拟系统中的固定抽题序号题目中所提示的“捷成id xx”指的是2004年上半年版捷成模拟系统中的固定抽题序号********************************题目1(无忧id 14、id 27(提供isP()函数;捷成id 23题)请编写一个函数jsValue(int m,int k,intxx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include <conio.h>#include <stdio.h>void readwriteDat();int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}main(){int m,n,xx[1000];system("cls");printf("\nPlease enter two integers:"); scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d ",xx[m]);printf("\n");readwriteDat();}void readwriteDat(){int m,n,xx[1000], i;FILE *rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d %d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}无忧id 14题(无isP()函数)#include <stdio.h>void jsValue(int m,int k,int xx[]){ int i,j,s=0;for(i=m+1;k>0;i++){ for(j=2;j<i;j++)if(i%j==0) break;if(i==j) { xx[s++]=i; k--;}}}main(){int m,n,zz[100];printf("\n请输入两个整数:");scanf("%d%d",&m,&n);jsValue(m,n,zz);for(m=0;m<n;m++)printf("%d ",zz[m]);printf("\n");writeDat();}writeDat(){int m,n,zz[100],i;FILE *in,*out;in=fopen("in.dat","r");out=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(in,"%d%d",&m,&n);jsValue(m,n,zz);for(m=0;m<n;m++)fprintf(out,"%d",zz[m]);fprintf(out,"\n");}fclose(in);fclose(out);}另一解法:void num(int m,int k,int xx[]){int n=0,data=m+1;while(n<k){if(isP(data)) xx[n++]=data;data++;}}********************************★题目2(无忧id 143 整数排序题)已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>#define MAX 200int a[MAX], b[MAX], cnt = 0 ;void jsVal(){ int i,j,qw,bw,sw,gw;for(i=0;i<MAX;i++){ qw=a[i]/1000; bw=a[i]/100%10;sw=a[i]%100/10; gw=a[i]%10;if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i];}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]) { qw=b[i]; b[i]=b[j];b[j]=qw;}}void readDat(){int i ;FILE *fp ;fp = fopen("in.dat", "r") ;for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d",&a[i]) ;fclose(fp) ;}void main(){int i ;readDat() ;jsVal() ;printf("满足条件的数=%d\n", cnt) ;for(i = 0 ; i < cnt ; i++) printf("%d ",b[i]) ;printf("\n") ;writeDat() ;}writeDat(){FILE *fp ;int i ;fp = fopen("out.dat", "w") ;fprintf(fp, "%d\n", cnt) ;for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n",b[i]) ;fclose(fp) ;}********************************★☆题目3(无忧id 133题;捷成id59、99字符串位置倒置题)函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。
最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。
例如:原文:n any field.Yu cancreate an indexyou have the correctrecord.结果:n any field. Yu cancreate an indexrd. yu have the crrectrec原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序存放在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include <stdio.h>#include <string.h>#include <conio.h>char xx[50][80] ;int maxline = 0 ; /* 文章的总行数*/int ReadDat(void) ;void WriteDat(void) ;void StrOR(void){int i,righto,j,s,k;char tem[80];for(i=0;i<maxline;i++) /*倒序循环*/for(j=strlen(xx[i])-1;j>=0;j--){ k=0;memset(tem,0,80); /*初始化字符串数组tem*/if(xx[i][j]=='o') /*如果当前字符为'o',进入以下语句*/{righto=j; /*则将此字符中位置j的值赋给righto*/for(s=righto+1;s<strlen(xx[i]);s++)tem[k++]=xx[i][s]; /*从righto的下一跳开始将其后所有的字符都存入到tem中*/for(s=0;s<righto;s++) /*从当前行首部开始到出现字符'o'的位置(righoto)之前开始循环*/if(xx[i][s]!='o')tem[k++]=xx[i][s]; /*将不是字符'o'的字符全存入到tem中*/strcpy(xx[i],tem); /*将当前已处理的字符重新存入当前行xx*/}else continue;}}void main(){clrscr() ;if(ReadDat()) {printf("数据文件IN.DAT不能打开!\n\007") ;return ;}StrOR() ;WriteDat() ;}int ReadDat(void){FILE *fp ;int i = 0 ;char *p ;if((fp = fopen("IN.DAT", "r")) == NULL)return 1 ;while(fgets(xx[i], 80, fp) != NULL) {p = strchr(xx[i], '\n') ;if(p) *p = 0 ;i++ ;}maxline = i ;fclose(fp) ;return 0 ;}void WriteDat(void){FILE *fp ;int i ;clrscr() ;fp = fopen("OUT5.DAT", "w") ;for(i = 0 ; i < maxline ; i++) {printf("%s\n", xx[i]) ;fprintf(fp, "%s\n", xx[i]) ;}fclose(fp) ;}解法二:void StrOR(void){ int i;char a[80],*p;for(i=0;i<maxline;i++){ p=strchr(xx[i],'o');while(p){ memset(a,0,80);memcpy(a,xx[i],p-xx[i]);strcpy(xx[i],p+1);strcat(xx[i],a);p=strchr(xx[i],'o');}}}解法三:void StrOR(void){ int i,j; char yy[80],*p;for(i=0; i<maxline;i++)for(j=0; j<strlen(xx[i]); j++)if(xx[i][j]=='o'){ p=&xx[i][j+1];strcpy(yy,p); /*将指针p所指向的字符串拷贝到字符串yy中去*/strncat(yy,xx[i],j); /*将字符串xx[i]中前j个字符连接到yy中*/strcpy(xx[i],yy); /*将字符串yy 重新拷贝到字符串xx[i]中去*/j=0; /* 开始下一次的扫描。