1、三级网络技术机试-24 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数 void countValue(int*a, int *n),它的功能是:求出 1 到 1000 之内能被 7 或 11 整除但不能同时被 7 和 11 整除的所有整数并存放在数组 a 中,并通过 n 返回这些数的个数。注意:部分源程序已给出。请勿改动主函数 main()和写函数 writeDAT()的内容。试题程序;#includeconio. h#includestdio. hvoid countValue(int *a, int *n)main ()i
2、nt aa1000 ,n,k;clrscr ( );countValue (aa, for (k=0; kn; k+)if(k+l) %10 =0)printf(“%5d“,aak);printf (“/n“);else printf(“%5d“,aak);writeDAT ();writeDAT ( )int aa1000,n,k;FILE *fp;fp=fopen (“out79. dat“, “w“);countValue (aa, for (k=0; kn; k+)if(k+l) %10=0)fprintf (fp, “%5d“, aak );fprintf(fp,“/n“);else
3、 fprintf(fp,“%5d“,aak);fclose (fp);(分数:100.00)_三级网络技术机试-24 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数 void countValue(int*a, int *n),它的功能是:求出 1 到 1000 之内能被 7 或 11 整除但不能同时被 7 和 11 整除的所有整数并存放在数组 a 中,并通过 n 返回这些数的个数。注意:部分源程序已给出。请勿改动主函数 main()和写函数 writeDAT()的内容。试题程序;#includeconio. h#includes
4、tdio. hvoid countValue(int *a, int *n)main ()int aa1000 ,n,k;clrscr ( );countValue (aa, for (k=0; kn; k+)if(k+l) %10 =0)printf(“%5d“,aak);printf (“/n“);else printf(“%5d“,aak);writeDAT ();writeDAT ( )int aa1000,n,k;FILE *fp;fp=fopen (“out79. dat“, “w“);countValue (aa, for (k=0; kn; k+)if(k+l) %10=0)f
5、printf (fp, “%5d“, aak );fprintf(fp,“/n“);else fprintf(fp,“%5d“,aak);fclose (fp);(分数:100.00)_正确答案:(void countValue(int *a,int *n)int i;*n=0;for(i=1l;i=1000;i+)if (i%7=0 *n=*n+l; /*统计个数*/a+;else if(i%7 *n=*n+1; /*统计个数*/a+;)解析:解析 本题考查的知识点如下:(1)指针的使用。(2)“%”运算符。(3)判断结构中多个条件的布尔运算。本题中,函数 count Value()以指针为参数,这里就要涉及到指针的使用。a 是指向数组的指针,初始时,指向数组的第一个元素。地址每加 1 时,依次指向后面的元素。一个数 a 若能被 b 整除,则 a 除以 b 取余得数为 0。能被 7 或 11 整除,但不能被 7 和 11 同时整除,则有两种情况,能被 7 整除但不能被 11 整除,能被 11 整除但不能被 7 整除。这里就要用到多个条件的布尔运算。