您当前所在位置:首页 > 计算机等级考试

计算机三级考试网络技术机练习题2016

编辑:sx_shangjianm

2016-07-22

很多同学知识掌握的不扎实,对考试感到迷茫,不知道该如何进行下去。以下是为您提供的计算机三级考试网络技术机练习题

1.已知数据文件IN17.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue( ),其功能是:求出个位数上的数减千位数上数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从大到小的顺序进行排序,最后调用函数writeDat()把数组b中的数输出到OUT17.DAT文件中。

例如:1239,9-1-2-3>0,则该数满足条件,存入数组b中,且个数cnt=cnt+1。

8129,9-8-1-2<0,则该数不满足条件,忽略。

注意:部分源程序已给出。

程序中已定义数组:a[300],b[300],已定义变量:cnt。

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

#include

int a[300],b[300],cnt=0;

void readDat();

void writeDat();

void jsValue()

{

int i,j; /*定义循环控制变量*/

int a1,a2,a3,a4; /*定义变量保存4位数的每位数字*/

int temp; /*定义数据交换时的暂存变量*/

for(i=0;i<300;i++) /*逐个取每一个4位数*/

{

a4=a[i]/1000; /*求4位数的千位数字*/

a3=a[i]%1000/100; /*求4位数的百位数字*/

a2=a[i]%100/10; /*求4位数的十位数字*/

a1=a[i]%10; /*求4位数的个位数字*/

if(a1-a3-a2-a4>0) /*如果个位数减千位数减百位数减十位数大于零*/

{

b[cnt]=a[i]; /*则将满足条件的数存入数组b中*/

cnt++; /*统计满足条件的数的个数*/

}

}

for(i=0;i

for(j=i+1;j

if(b[i]

{

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

void main()

{

int i;

readDat();

jsValue();

writeDat();

printf("cnt=%d\n",cnt);

for(i=0;i

printf("b[%d]=%d\n",i,b[i]);

}

void readDat()

{

FILE *fp;

int i;

fp=fopen("IN17.DAT","r");

for(i=0;i<300;i++)

fscanf(fp,"%d,",&a[i]);

fclose(fp);

}

void writeDat()

{

FILE *fp;

int i;

fp=fopen("OUT17.DAT","w");

fprintf(fp,"%d\n",cnt);

for(i=0;i

fprintf(fp, "%d\n",b[i]);

fclose(fp);

}

2.下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些4位自然数的个数cnt及这些数的和sum。请编写函数countValue()实现程序的要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT18.DAT中。

注意:部分源程序已给出。

请勿改动主函数main()和写函数writeDAT()的内容。

#include

int cnt,sum;

void writeDAT();

void countValue()

{

int i; /*循环控制变量*/

int a1,a2,a3,a4; /*定义变量保存4位数的每位数字*/

for(i=5000;i>=1000;i--) /*依次取每一个数进行判断*/

{

a4=i/1000; /*求4位数的千位数字*/

a3=i%1000/100; /*求4位数的百位数字*/

a2=i%100/10; /*求4位数的十位数字*/

a1=i%10; /*求4位数的个位数字*/

if(a4+a3==a2+a1 && a4+a3==(a1-a4)*10)

{ /*千位数与百位数之和等于十位数与个位数之和,且千位数与百位数之和等于个位数与千位数之差的10倍*/

cnt++; /*则统计满足条件的数的个数*/

sum+=i; /*将满足条件的数求和*/

}

}

}

void main()

{

cnt=sum=0;

countValue();

printf("满足条件的自然数的个数=%d\n",cnt);

printf("满足条件的自然数的值的和=%d\n",sum);

writeDAT();

}

void writeDAT()

{

FILE *fp;

fp=fopen("OUT18.DAT","w");

fprintf(fp,"%d\n%d\n",cnt,sum);

fclose(fp);

}

3.已知数据文件IN19.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal( ),其功能是:把一个4位数的千位数上的值减百位数上的值再减十位数上的值最后减个位数上的值,如果得出的值大于等于零且此4位数是奇数,则统计出满足此条件的数的个数cnt并把这些4位数存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用函数writeDat()把结果cnt及数组b中的符合条件的4位数输出到out19.dat文件中。

注意:部分源程序已给出。

程序中已定义数组:a[200],b[200],已定义变量:cnt。

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

#include

#define MAX 200

int a[MAX],b[MAX],cnt=0;

void writeDat();

void jsVal()

{

int i,j; /*定义循环控制变量*/

int a1,a2,a3,a4; /*定义变量保存4位数的每位数字*/

int temp; /*定义数据交换时的暂存变量*/

for(i=0;i<200;i++) /*逐个取每一个4位数*/

{

a4=a[i]/1000; /*求4位数的千位数字*/

a3=a[i]%1000/100; /*求4位数的百位数字*/

a2=a[i]%100/10; /*求4位数的十位数字*/

a1=a[i]%10; /*求4位数的个位数字*/

if((a4-a3-a2-a1>=0) && a1%2!=0)

/*如果千位数减百位数再减十位数最后减个位数得出的值大于等于零且此4位数是奇数*/

{

b[cnt]=a[i]; /*则将该数存入数组b中*/

cnt++; /*统计满足条件的数的个数*/

}

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

void readDat()

{

int i;

FILE *fp;

fp=fopen("IN19.DAT","r");

for(i=0;i

fscanf(fp,"%d",&a[i]);

fclose(fp);

}

void main()

{

int i;

readDat();

jsVal();

printf("满足条件的数=%d\n",cnt);

for(i=0;i

printf("%d ",b[i]);

printf("\n");

writeDat();

}

void writeDat()

{

FILE *fp;

int i;

fp=fopen("out19.dat","w");

fprintf(fp,"%d\n",cnt);

for(i=0;i

fprintf(fp,"%d\n",b[i]);

fclose(fp);

}

4.已知数据文件IN20.DAT中存有200个4位数,并已调用读函数readDat( )把这些数存入数组a中,请编制一函数jsVal( ),其功能是:如果一个4位数的千位数字上的值加十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt及数组b中符合条件的4位数输出到OUT20.DAT文件中。

注意:部分源程序已给出。

程序中已定义数组:a[200],b[200],已定义变量:cnt。

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

#include

#define MAX 200

int a[MAX],b[MAX],cnt=0;

void writeDat();

void jsVal( )

{

int i,j; /*定义循环控制变量*/

int a1,a2,a3,a4; /*定义变量保存4位数的每位数字*/

int temp; /*定义数据交换时的暂存变量*/

for(i=0;i<200;i++) /*逐个取每一个4位数*/

{

a4=a[i]/1000; /*求4位数的千位数字*/

a3=a[i]%1000/100; /*求4位数的百位数字*/

a2=a[i]%100/10; /*求4位数的十位数字*/

a1=a[i]%10; /*求4位数的个位数字*/

if((a4+a2==a3+a1) && a[i]%2!=1)

{ /*如果千位数加十位数等于百位数加上个位数,并且此数是偶数*/

b[cnt]=a[i]; /*则将满足条件的数存入数组b中*/

cnt++; /*统计满足条件的数的个数*/

}

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

void readDat( )

{

int i;

FILE *fp;

fp=fopen("IN20.DAT","r");

for(i=0;i

fscanf(fp,"%d",&a[i]);

fclose(fp);

}

void main()

{

int i;

readDat();

jsVal();

printf("满足条件的数=%d\n",cnt);

for(i=0;i

printf("%d ",b[i]);

printf("\n");

writeDat();

}

void writeDat()

{

FILE *fp;

int i;

fp=fopen("OUT20.DAT","w");

fprintf(fp,"%d\n",cnt);

for(i=0;i

fprintf(fp, "%d\n",b[i]);

fclose(fp);

}

这篇计算机三级考试网络技术机练习题,希望对您有所帮助!

相关推荐:

计算机三级考试网络技术备考重点汇总

2016年计算机三级软件测试技术模拟试题汇总

免责声明

精品学习网(51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。