1、国家三级(网络技术)机试模拟试卷 79及答案与解析 一、程序设计题 1 请编写函数 void countValue(int*a, int *n),它的功能是:求出 1到 1000之内能被 7或 11整除但不能同时被 7和 11整除的所有整数并存放在数组 a中,并通过 n返回这些数的个数。 注意:部分源程序已给出。 请勿改动主函数 main()和写函数 writeDAT()的内容。 试题程序; #include conio. h #include stdio. h void countValue(int *a, int *n) main () int aa1000 ,n,k; clrscr (
2、); countValue (aa, for (k=0; k n; 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; k n; k+) if(k+l) %10=0) fprintf (fp, “%5d“, aak ); fprintf(fp,“n“); else fprintf(
3、fp,“%5d“,aak); fclose (fp); 国家三级(网络技术)机试模拟试卷 79答案与解析 一、程序设计题 1 【正确答案】 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整除。这里就要用到多个条件的布尔运算。