《程序设计(中).doc》由会员分享,可在线阅读,更多相关《程序设计(中).doc(58页珍藏版)》请在金锄头文库上搜索。
1、试卷编号:18338所属语言:Turbo C试卷方案:phq2试卷总分:340分共有题型:1种一、程序设计 共34题 (共计340分)第1题 (10.0分) 题号:380/*-【程序设计】-功能:给定n个数据, 求最大值出现的位置(如果最大值出 现多次,求出第一次出现的位置即可)。-*/#includeint station(int s,int n) /*Program*/ /* End */main() int a100,n,i,t; clrscr(); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); t=station(a,n); printf(th
2、e max_value position is:%dn,t); yzj(); getch();yzj() FILE *IN,*OUT; int n; int i10; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(n=0;n10;n+) fscanf(IN,%d,&in); o=station(i,10); fprintf(OUT,%dn,o); fclose(IN); fclose(
3、OUT);答案:-int i,k; k=0; for(i=1;isk) k=i; return(k+1);-第2题 (10.0分) 题号:321/*-【程序设计】-功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的积,并在fun() 函数中输出。-*/#include stdio.h main() int i,j,s,a33; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); s=fun(a); printf(Sum=%dn,s); yzj(); getch();int fun(int a33) /*Program*
4、/ /* End */ yzj() FILE *IN,*OUT; int m; int n; int i33; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(m=0;m3;m+) for(n=0;n3;n+) fscanf(IN,%d,&imn); o=fun(i); fprintf(OUT,%dn,o); getch(); fclose(IN); fclose(OUT);答案:-in
5、t sum;int i,j;sum=1;for(i=0;i3;i+) sum=sum*aii; return sum;-第3题 (10.0分) 题号:331/*-【程序设计】-功能:计算出k以内最大的10个能被13或17整除的自然数之 和。(k3000)。-*/#include stdio.h#includeconio.h int fun(int k) /*Program*/ /* End */ main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %dn, fun(m); yzj(); getch(); y
6、zj() FILE *IN,*OUT; int s ; int t; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(s=1;s=2)&(b10)if(k%13=0)|(k%17=0) a=a+k;b+; k-; return a;-第4题 (10.0分) 题号:370/*-【程序设计】-功能:编写函数判断一个整数m的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函
7、数找出 100200之间满足条件的所有数。-*/#include stdio.hint sub(int m) /*Program*/ /* End */main() int i; for(i=100;i=200;i+) if(sub(i)=1) printf(%4d,i); yzj(); getch();yzj() FILE *IN,*OUT; int n; int i10; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Writ
8、e File Error); for(n=0;n10;n+) fscanf(IN,%d,&in); for(n=0;n10;n+) o=sub(in); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);答案:-int k,s=0; do s=s+m%10; m=m/10; while(m!=0); if(s%7=0)k=1; else k=0; return(k);-第5题 (10.0分) 题号:367/*-【程序设计】-功能:求一组数中大于平均值的数的个数。例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。-*/ #include stdio.hint fun(int a,int n) /*Program*/ /* End */ main() int a10=1,3,6,9,4,23,35,67,12,88