当前位置:首页 > 二级c南开百题
新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数必须是一个奇数,另一个为偶数并且两个十位数中至少有一个数能被17整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到
OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
void jsVal() {int
i,j,thou,hun,ten,data,ab,cd; for(i=0;i if((ab%2!=cd%2)&&((ab==0||cd==0)&&ab>=10&&cd>=10)) b[cnt++]=a[i]; } for(i=0;i {data=b[i];b[i]=b[j];b[j]=data;} } ★☆题目77(整数各位运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值加上十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a[200],b[200],已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 void jsVal() {int i,j,thou,hun,ten,data; for(i=0;i if((thou+ten==hun+data)&&a[i]%2==0) b[cnt++]=a[i]; } for(i=0;i {thou=b[i];b[i]=b[j];b[j]=thou;} } ★题目78(整数各位统计排序题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,以及十位数字上的值大于等于个位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a[200],b[200],已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 void jsVal() {int i,j,thou,hun,ten,data; for(i=0;i if(thou>=hun&&hun>=ten&&ten>=data&&a[i]%2) b[cnt++]=a[i]; } for(i=0;i {thou=b[i];b[i]=b[j];b[j]=thou ;} } ★题目79(数字运算题) 请 编 写 函 数 void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writeDAT()的内容。 void countValue(int *a,int *n) { int i; *n=0; for(i=1;i<=1000;i++) if(i%7==0&&i||i%7&&i==0) a[(*n)++]=i; } 题目80(整数各位数运算题) 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:1239,9-1-2-3>0,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 8129,9-8-1-2<0,则该数不满足条件计算平均值pjz2。 部分源程序存在文件prog1.c中。 17 程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 jsValue() {int i,j,thou,hun,ten,data,n=0; for(i=0;i<300;i++) {thou=a[i]/1000; hun=a[i]/100; ten=a[i]0/10; data=a[i]; if(data-thou-hun-ten>0) { cnt++; pjz1+=a[i];} else { n++; pjz2+=a[i];} } if(cnt==0) pjz1=0; else pjz1/=cnt; if(n==0) pjz2=0; else pjz2/=n; } ☆题目81(整数各位数运算题) 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+1<>2+9,则该数不满足条件计算平均值pjz2。 部分源程序存在文件prog1.c中。 程序中已定义数组:a[300],已定义变量: cnt,pjz1,pjz2。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 jsValue() {int i,thou,hun,ten,data,n=0; for(i=0;i<300;i++) {thou=a[i]/1000; hun=a[i]00/100; ten=a[i]0/10; data=a[i]; if(thou+hun==ten+data) {cnt++;pjz1+=a[i];} else {n++;pjz2+=a[i];} } if(cnt==0) pjz1=0; else pjz1/=cnt; if(n==0) pjz2=0; else pjz2/=n; } ★题目82(素数题) 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果cnt,pjz1,pjz2输 出到out.dat文件。 例如:5591是素数,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件计算平均值pjz2。 部分源程序存在文件prog1.c中。 程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 int isP(int m) {int i; for(i=2;i for(i=0;i<300;i++) if(isP(a[i])) {pjz1+=a[i];cnt++;} else pjz2+=a[i]; if(cnt==0) pjz1=0; else pjz1/=cnt; if(300-cnt==0) pjz2=0; else pjz2/=(300-cnt); } ☆题目83(方差运算题) 请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: N 2 totfc=1/N ∑ (xx[i]-ave1) i=1 设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000) 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writeDat()的内容。 for(i=0;i {fscanf(fp,\ if((i+1)==0) fscanf(fp,\ } /*******************************************/ fclose(fp); return 0; } void Compute(void) { int i,yy[MAX]; for(i=0;i else { even++; ave2+=xx[i];} if(odd==0) ave1=0; else ave1/=odd; if(even==0) ave2=0; else ave2/=even; for(i=0;i totfc+=(yy[i]-ave1)*(yy[i]-ave1)/odd; } ☆题目84(选票问题) 现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。 18 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 void CountRs(void) { int i,j,count; for(i=0;i<100;i++) { count=0; for(j=0;j<10;j++) if(xx[i][j]=='1') count++; if(count>5) continue; for(j=0;j<10;j++) if(xx[i][j]=='1') yy[j]++; } } ☆题目85(整数各位数运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的个位数字上的值减去千位数字上的值再减去百位数字上的值最后减去十位数字上的值,如果得出的值大于等于零且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a[200],b[200],已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 void jsVal() {int i,j,thou,hun,ten,data; for(i=0;i if(data-thou-hun-ten>=0&&a[i]%2==0) b[cnt++]=a[i]; } for(i=0;i {thou=b[i];b[i]=b[j];b[j]=thou;} } 题目86(整数各位打散组合运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组: a[200],b[200],已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 void jsVal() {int i,j,thou,hun,ten,data,ab,cd; for(i=0;i ab=10*thou+ten; cd=10*data+hun; if((ab-cd)>0&&(ab%2!=1&&ab%5==0)&&cd%2==1&&ab>=10&&cd>=10) {b[cnt]=a[i];cnt++;} } for(i=0;i ☆题目87(整数各位运算统计题) 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到out.dat文件。 例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+9<>1+2,则该数不满足条件计算平均值pjz2。 部分源程序存在文件prog1.c中。 程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 jsValue() { int i,gw,sw,bw,qw,cnt2=0; for(i=0;i<300;i++) {gw=a[i]; sw=a[i]/10; bw=a[i]/100; qw=a[i]/1000; if((qw+gw)==(sw+bw)) { cnt++;pjz1+=a[i]; } else { cnt2++;pjz2+=a[i]; } } if(cnt==0) pjz1=0; else pjz1/=cnt; if(cnt2==0) pjz2=0; else pjz2/=cnt2; } 题目88(字符串排序题) 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharA(),其函数的功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT1.DAT中。 例:原文:dAe,BfC. CCbbAA 结果:,.ABCdef AACCbb 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 19 void SortCharA(void) {int i,j,k,strl; char ch; for(i=0;i 题目89(整数统计排序题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a[200],b[200],已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 void jsVal() { int i,j,gw,sw,bw,qw; for(i=0;i if((qw+gw)==(sw+bw)&&a[i]%2) b[cnt++]=a[i]; } for(i=0;i ★题目90(整数排序题) 下列程序的功能是:将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数jsValue()实现此功能,最后调用writeDat()函数将新序列输出到文件out.dat中。 说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。 例 : 序 列 {6,8,9,1,2,5,4,7,3} 经重排后成为{3,4,5,2,1,6,8,9,7} 部分源程序存在文件prog1.c中。 请勿改动主函数main()和写函数writeDat()的内容。 #include jsValue(int a[10][9]) { int i,j,k,val,num; for(i=0;i<10;i++) { val=a[i][0]; for(j=0;j<9;j++) if(a[i][j] } } 题目91(整数统计运算题) 请编制程序prog1.c,从文件in.dat中读取200个整数至数 组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx下标为偶数的元素值的算术平均值pj(保留2位小数)。 结果cnt1,cnt2,pj输出到out.dat中。 部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。 /**********************/ sum=0; pj=0.0; cnt1=cnt2=0; for(i=0;i /***********************/ ☆题目92(整数统计运算题) 请编制程序prog1.c,从文件IN.DAT中读取200个整数至数组xx中,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj(保留2位小数)。 结果max,cnt,pj输出到OUT.DAT中。 部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。 /*********************/ cnt=0; max=xx[0]; pj=0.0; n=0; for(m=0;m if(xx[m]%3==0||xx[m]%7==0) { pj+=xx[m]; n++; } } pj/=n; /*********************/ ☆题目93(方差运算题) 请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute(),分别计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: N 2 totfc=1/N ∑ (xx[i]-aver) i=1 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000) 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writeDat()的内容 /***************编制函数ReadDat()*****************/ for(i=0;i /*********************************************/ fclose(fp); return 0; } void Compute(void) { int i; for(i=0;i aver/=MAX; for(i=0;i 20
共分享92篇相关文档