当前位置:学者斋 >

计算机 >网络技术 >

2017计算机网络技术考试精选试题“有答案”

2017计算机网络技术考试精选试题“有答案”

1.下列程序的功能是:利用以下所示的简单迭代方法求方程:

2017计算机网络技术考试精选试题“有答案”

cos (x) -x=0的一个实根。

xn+1=cos(xn )

迭代步骤如下:

(1)取x1初值为0.0。

(2)x0=x1,把x1的值赋给x0。

(3)x1=cos(x0),求出一个新的x1。

(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。

(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。

请编写函数countValue ( )实现程序要求,最后调用函数writeDAT( )把结果输出到文件中。

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

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

#include

#include

#include

void writeDAT();

float countValue( )

{

float x0,x1=0.0; /*定义两个浮点型变量进行迭代*/

while(1) /*无条件循环*/

{

x0=x1; /*将x1赋值给x0*/

x1=cos(x0); /*求出新的x1*/

if(fabs(x0-x1)<1e-6) break; /*若x0-x1的绝对值小于0.000001,则结束循环*/

}

return x1; /*返回 x1的值*/

}

void main( )

{

system("CLS");

printf("实根=%fn",countValue( ));

printf("%fn",cos(countValue( ))-countValue( ));

writeDAT( );

}

void writeDAT( )

{

FILE *wf;

wf=fopen("","w");

fprintf(wf,"%fn",countValue( ));

fclose(wf);

}

2.请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。

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

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

#include

#include

void writeDAT();

void countValue(int *a,int *n)

{

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

*n=0 ; /*初始化计数器变量*/

for(i=1;i<=1000;i++) /*在这个范围内寻找符合条件的数*/

if((i%7==0 && i%11!=0)||(i%7!=0 && i%11==0))

/*如果当前的数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/

{

*a=i; /*保存符合条件的数*/

*n=*n+1; /*统计个数*/

a++;

}

}

void main()

{

int aa[1000],n,k;

system("CLS");

countValue(aa,&n);

for(k=0;k

if((k+1) %10 ==0)

{

printf("%5d",aa[k]);

printf("n");

}

else printf("%5d",aa[k]);

writeDAT();

}

void writeDAT()

{

int aa[1000],n,k;

FILE *fp;

fp=fopen("","w");

countValue(aa,&n);

for(k=0;k

if((k+1)%10==0)

{

fprintf(fp,"%5d",aa[k]);

fprintf(fp,"n");

}

else fprintf(fp,"%5d",aa[k]);

fclose(fp);

}

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

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

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

#include

#include

#define MAXNUM 200

int xx[MAXNUM] ;

int totNum = 0 ; /* 文件中共有多少个正整数 */

int totCnt = 0 ; /* 符合条件的正整数的个数 */

double totPjz = 0.0 ; /* 平均值 */

int ReadDat(void) ;

void Writedat(void) ;

void CalValue(void)

{

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

int data; /*用于保存处理后产生的新数*/

for(i=0;i<200;i++) /*逐个取数组xx中的数进行统计*/

if(xx[i]>0) /*判断是否正整数*/

{

totNum++; /*统计正整数的个数*/

data=xx[i]>>1; /*将数右移一位*/

if(data%2==0) /*如果产生的新数是偶数*/

{

totCnt++; /*统计这些数的个数*/

totPjz+=xx[i]; /*并将满足条件的原数求和*/

}

}

totPjz/=totCnt; /*求满足条件的这些数(右移前的值)的算术平均值*/

}

void main()

{

int i ;

system("CLS");

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

xx[i] = 0 ;

if (ReadDat ())

{

printf("数据文件不能打开!07n");

return ;

}

CalValue() ;

printf("文件中共有正整数= %d 个n", totNum);

printf("符合条件的正整数的个数= %d 个n", totCnt);

printf("平均值=%.2lfn", totPjz);

Writedat() ;

}

int ReadDat(void)

{

FILE *fp;

int i = 0 ;

if((fp = fopen ("", "r")) == NULL)

return 1 ;

while(! feof(fp))

{

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

}

fclose(fp) ;

return 0 ;

}

void Writedat(void)

{

FILE *fp;

fp = fopen("", "w") ;

fprintf(fp, "%dn%dn%.2lfn", totNum, totCnt, totPjz) ;

fclose(fp) ;

}

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

例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。

8129,8+9≠1+2,则该数不满足条件,忽略。

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

程序中已定义数组: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(a4+a1==a3+a2) /*如果千位数加个位数等于百位数加十位数*/

{

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

cnt++; /*统计满足条件的数的个数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 main()

{

int i;

readDat();

jsValue();

writeDat();

printf("cnt=%dn", cnt);

for(i=0; i

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

}

void readDat()

{

FILE *fp;

int i;

fp = fopen("", "r");

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

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

fclose(fp);

}

void writeDat()

{

FILE *fp;

int i;

fp = fopen("", "w");

fprintf (fp, "%dn",cnt);

for(i=0; i

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

fclose(fp);

}

  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/jsj/wl/d9dklm.html