计算机三级考试上机最新南开100精简版

发布时间 : 星期一 文章计算机三级考试上机最新南开100精简版更新完毕开始阅读

s=countValue(n); fprintf(wf,\ }

fclose(fp); fclose(wf); }

********************************************************************* 题目23 (实数运算题)

已知在文件in.dat中存有N个(个数<200)实数,函数readdat()读取这N个实数并存入数组xx中。请编制函数calvalue(),其功能要求: 1、求出这N个实数的平均值aver;

2、分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数writedat()把所求的结果输出到文件out.dat中。 注意:部分源程序已给出。

请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。 #include #include #define MAXNUM 200

float xx[MAXNUM] ;

int N= 0 ; /* 文件IN.DAT中共有多少个实数 */ double aver=0.0;/*平均值*/

double sumint=0.0;/*整数部分之和*/ double sumdec=0.0;/*小数部分之和*/

int ReadDat(void) ; void WriteDat(void) ;

void CalValue(void) {int i;

for (i=0;i

{sumint+=(long)xx[i];

sumdec+=xx[i]-(long)xx[i]; aver+=xx[i]; }

aver/=N; }

void main() { int i ; clrscr() ;

for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ; if(ReadDat()) {

printf(\数据文件IN.DAT不能打开!\\007\\n\ return ; }

Calvalue() ;

printf(\文件IN.DAT中共有实数=%d个\\n\ printf(\平均值=%.2lf\\n\

printf(\整数部分之和=%.2lf\\n\ printf(\小数部分之和=%.2lf\\n\ WriteDat() ; system(\}

int ReadDat(void) {

FILE *fp ; int i = 0 ;

if((fp = fopen(\ while(!feof(fp)) {

fscanf(fp, \ }

fclose(fp) ; return 0 ; }

void WriteDat(void) {

FILE *fp ;

fp = fopen(\T\

fprintf(fp, \ fclose(fp) ; }

**************************************************************************** 题目24(完全平方数问题)

下列程序prog1.c的功能是:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。 请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。 最后调用函数writeDat()把结果输出到文件out.dat中。 请勿改动主函数main()和写函数writeDat()的内容。 #include

int jsValue(int bb[]) {int i,j,k=0;

int hun,ten,data; for(i=10;i<32;i++) {j=I*I; hum=j/100; ten=j0/10; data=j;

if(hum==ten||hum==data||ten==data) bb[k++]=j;} return k; }

main() {

int b[20],num; num=jsValue(b); writeDat(num,b); }

writeDat(int num,int b[]) {

FILE *out; int i;

out=fopen(\printf(\

fprintf(out,\

for(i=0;i

***************************************************************** ★题目25 (回文数问题)

下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int svalue(long m)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out.dat中。 注意:部分源程序已给出。 请勿改动主函数main()的内容。

#include

int jsValue(long n) {int i,strl,half; char xy[20];

ltoa(n,xy,10); /*注意这里不能使用itoa()函数,因为n是long 型的*/ strl=strlen(xy); half=strl/2;

for(i=0;i

if(xy[i]!=xy[--strl]) break; if(i>=half) return 1; else return 0; }

main() {long m; FILE *out;

out=fopen(\ for(m=11;m<1000;m++)

{ if(jsValue(m)&&jsValue(m*m)&&jsValue(m*m*m))

{ printf(\

fprintf(out,\ } }

fclose(out);

system(\}

或者下面的解法: int jsValue(long n) {long int s=0,k; k=n; while(k)

{ s=s*10+k; k/=10; }

if(s==n) return 1; if(s!=n) return 0; }

输出结果为:

m= 11,m*m= 121,m*m*m= 1331 m= 101,m*m= 10201,m*m*m= 1030301 m= 111,m*m= 12321,m*m*m= 1367631

************************************************************************* ★☆题目26(整数统计运算题)

已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。 部分源程序存在文件prog1.c中。

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include

联系合同范文客服:xxxxx#qq.com(#替换为@)