1、三级信息管理技术机试-189 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数 void eountValue(int *a,int *n),它的功能是:求出 11000 之内能被 7 或 11 整除但不能同时被 7 和 11 整除的所有整数并存放在数组 a 中,并通过 n 返回这些数的个数。注意:部分源程序已给出。请勿改动主函数 main()和写函数 writeDAT()的内容。试题程序#includestdlib.h#includestdio.hvoid writeDAT();void countValue(int *a,in
2、t *n)void main()int aa1000,n,k;system(“CLS“);countValue(aa,for(k=0;kn;k+)if(k+1)%10=0)printf(“%5d“,aak);printf(“kn“);else printf(“%5d“,aak);writeDAT();void writeDAT()int aa1000,n,k;FILE *fp;fP=fopen(“out10.dat“,“w“);countValue(aa,for(k=0;kn;k+)if(k+1)%10=0)fprintf(fp,“%5d“,aak);fprintf(fp,“/n“);else
3、 fprintf(fp,“%5d“,aak);fclose(fp);(分数:100.00)_三级信息管理技术机试-189 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数 void eountValue(int *a,int *n),它的功能是:求出 11000 之内能被 7 或 11 整除但不能同时被 7 和 11 整除的所有整数并存放在数组 a 中,并通过 n 返回这些数的个数。注意:部分源程序已给出。请勿改动主函数 main()和写函数 writeDAT()的内容。试题程序#includestdlib.h#includestd
4、io.hvoid writeDAT();void countValue(int *a,int *n)void main()int aa1000,n,k;system(“CLS“);countValue(aa,for(k=0;kn;k+)if(k+1)%10=0)printf(“%5d“,aak);printf(“kn“);else printf(“%5d“,aak);writeDAT();void writeDAT()int aa1000,n,k;FILE *fp;fP=fopen(“out10.dat“,“w“);countValue(aa,for(k=0;kn;k+)if(k+1)%10=
5、0)fprintf(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=1;i=1000;i+) /*在这个范围内寻找符合条件的数*/if(i%7=0 /*保存符合条件的数*/*n=*n+1; /*统计符合条件的数的个数*/a+;)解析:解析 本题的解题思路是:首先通过一个 for 循环来控制范围,用一个 if 语句来判断当前所取的数是否符合条件:可以被 7 整除而不可以被 11 整除,或者可以被 11 整除而不可以被 7 整除。最后保存符合条件的数,并统计个数。