1、国家三级(数据库技术)机试模拟试卷 71及答案与解析 一、程序设计题 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+1) %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+1)%10=0) fprintf(fp,“%5d“,aak); fprintf(fp,“n“); else fprintf (fp,“%5d“,aak)
3、; fclose(fp); 国家三级(数据库技术)机试模拟试卷 71答案与解析 一、程序设计题 1 【正确答案】 void countValue(int *a, int *n) int i; *n=0; for(i=1;i =1000;i+) if(i%7=0 *n-*n+1; /*统计个数 */ a+; else if (i%7 *n=*n+1; /*统计个数 */ a+; 【试题解析】 本题考查的知识点如下: (1)指针的使用。 (2)“%” 运算符。 (3)判断结构中多个条件的布尔运算。 本题中,函数 countValue()以指针为参数,这里就要涉及到指针的使用。 a是指向数组的指针,初始时,指向数组的第一个元素。地址每加 1时,依次指向后面的元素。一个数 a若能被 b整除,则 a除以 b取余得数为 0。能被 7或 11整除,但不能被 7和 11同时整除,则有两种情况,能被 7整除但不能被 11整除,能被 11整除但不能被 7整除。这里就要用到多个条件的布尔运算。