网络技术 百分网手机站

计算机网络技术考试试题「有答案」

时间:2017-06-05 11:20:19 网络技术 我要投稿

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

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

  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( )把结果输出到文件out9.dat中。

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

  请勿改动主函数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("实根=%f\n",countValue( ));

  printf("%f\n",cos(countValue( ))-countValue( ));

  writeDAT( );

  }

  void writeDAT( )

  {

  FILE *wf;

  wf=fopen("out9.dat","w");

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

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

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

  #include

  #include

  #define MAXNUM 200

  int xx[MAXNUM] ;

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

  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("数据文件IN11.DAT不能打开!\007\n");

  return ;

  }

  CalValue() ;

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

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

  printf("平均值=%.2lf\n", totPjz);

  Writedat() ;

  }

  int ReadDat(void)

  {

  FILE *fp;

  int i = 0 ;

  if((fp = fopen ("IN11.DAT", "r")) == NULL)

  return 1 ;

  while(! feof(fp))

  {

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

  }

  fclose(fp) ;

  return 0 ;

  }

  void Writedat(void)

  {

  FILE *fp;

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

  fprintf(fp, "%d\n%d\n%.2lf\n", totNum, totCnt, totPjz) ;

  fclose(fp) ;

  }

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

  例如: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=%d\n", cnt);

  for(i=0; i

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

  }

  void readDat()

  {

  FILE *fp;

  int i;

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

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

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

  fclose(fp);

  }

  void writeDat()

  {

  FILE *fp;

  int i;

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

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

  for(i=0; i

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

  fclose(fp);

  }

【2017计算机网络技术考试精选试题「有答案」】相关文章:

1.2017计算机三级考试网络技术复习试题「有答案」

2.2017计算机等级考试单选试题「有答案」

3.2017计算机网络技术考试模拟试题「附答案」

4.2017计算机网络技术考试题「附答案」

5.2017计算机网络技术考试训练试题「附答案」

6.2017计算机与网络技术试题「附答案」

7.2017职称计算机考试Excel试题「有答案」

8.2017计算机网络技术考试练习试题「附答案」