2022年程序设计 .pdf
《2022年程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年程序设计 .pdf(36页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、试卷编号: 18337 所属语言: Turbo C 试卷方案: phq1 试卷总分: 220 分共有题型: 1 种一、程序设计共 22 题 (共计 220 分)第 1 题 (10.0 分)题号 :313 /*- 【程序设计】- 功能:调用函数fun 判断一个三位数是否 水仙花数 。在 main 函数中从键盘输入一个三位数,并输出判断结果。请编写fun 函数。说明:所谓 水仙花数 是指一 3 位数,其各位数字立方和等于该数本身。例如: 153 是一个水仙花数,因为153=1+125+27。-*/ #include stdio.h int fun(int n) /*Program*/ /* End
2、 */ main() int n,flag。 scanf(%d,&n)。 flag=fun(n)。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 36 页 if(flag) printf(%d 是水仙花数 n,n)。 else printf(%d 不是水仙花数n,n)。 getch()。 yzj()。 yzj() FILE *IN,*OUT。 int iIN,i。 int iOUT。 IN=fopen(in.dat,r)。 if(IN=NULL) printf(Please Verify The Currernt Dir.It May
3、Be Changed)。 OUT=fopen(out.dat,w)。 if(OUT=NULL) printf(Please Verify The Current Dir. It May Be Changed)。 for(i=0。i10 。 i+) fscanf(IN,%d,&iIN)。 iOUT=fun(iIN)。 fprintf(OUT,%dn,iOUT)。 fclose(IN)。 fclose(OUT)。答案: - int bw,sw,gw。bw=n/100 。sw=(n-bw*100)/10。gw=n%10 。 if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw) retur
4、n 1。 else return 0。- 第 2 题 (10.0 分)题号 :395 /*- 【程序设计】- 功能:产生20 个30,120上的随机整数放入二维数组精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 36 页 a54中, 求其中的最小值。-*/ #include stdlib.h #include stdio.h int amin(int a54) /*Program*/ /* End */ main() int a54,i,j。 clrscr()。 for(i=0。i5 。i+) for(j=0。j4 。j+) aij=r
5、andom(120-30+1)+30。 for(i=0。i5 。i+) for(j=0。j4 。j+) printf(%5d,aij)。 printf(n)。 printf(min=%dn,amin(a)。 yzj()。 getch()。 yzj() FILE *IN,*OUT。 int m,n。 int i54。 int o。 IN=fopen(in.dat,r)。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 36 页 if(IN=NULL) printf(Read File Error)。 OUT=fopen(out.dat,w)
6、。 if(OUT=NULL) printf(Write File Error)。 for(m=0。m5。m+) for(n=0。n4。n+) fscanf(IN,%d,&imn)。 o=amin(i)。 fprintf(OUT,%dn,o)。 fclose(IN)。 fclose(OUT)。答案: - int i,j,s。 s=a00。 for(i=0。i5 。i+) for(j=0。jaij)s=aij。 return(s)。- 第 3 题 (10.0 分)题号 :22 /*- 【程序设计】- 功能:从键盘为一维整型数组输入10 个整数,调用fun 函数找出其中最小的数,并在main 函数中
7、输出。请编写 fun 函数。-*/ #include stdio.h int fun(int x,int n) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 36 页 /*Program*/ /* End */ main() int a10,i,min。 for(i=0。i10 。 i+) scanf(%d,&ai)。 for(i=0。i10 。 i+) printf(%3d,ai)。 printf(n)。 min=fun(a,10)。 printf(%dn,min)。 yzj()。 yzj() FILE *IN,*OUT。 int
8、iIN10,i。 int iOUT,iCOUNT。 IN=fopen(4.in,r)。 if(IN=NULL) printf(Please Verify The Currernt Dir.It May Be Changed)。 OUT=fopen(4.out,w)。 if(OUT=NULL) printf(Please Verify The Current Dir. It May Be Changed)。 for(i=0。i10 。 i+) for(iCOUNT=0。iCOUNT10 。iCOUNT+) fscanf(IN,%d,&iINiCOUNT)。精选学习资料 - - - - - - -
9、 - - 名师归纳总结 - - - - - - -第 5 页,共 36 页 iOUT=fun(iIN,10)。 fprintf(OUT,%dn,iOUT)。 fclose(IN)。 fclose(OUT)。答案: - int min,i。min=x0。for(i=1。in 。i+) if(ximin) min=xi。 return min。- 第 4 题 (10.0 分)题号 :23 /*- 【程序设计】- 功能:从键盘输入一个大于3 的整数,调用函数fun 判断其是否素数,然后在main 函数中输出相应的结论信息。例如: 7 是素数, 8 不是素数。请编写fun 函数。素数是仅能被 1 和自
10、身整除的数-*/ #include stdio.h main() int m,flag。 printf(input an integer:)。 scanf(%d,&m)。 flag=fun(m)。 if(flag) printf(%d is a prime.n,m)。 else printf(%d is not a prime.n,m)。 yzj()。 int fun(int n) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 36 页 /*Program*/ /* End */ yzj() FILE *IN,*OUT。 int iI
11、N,iOUT,i。 IN=fopen(5.in,r)。 if(IN=NULL) printf(Please Verify The Currernt Dir.It May Be Changed)。 OUT=fopen(5.out,w)。 if(OUT=NULL) printf(Please Verify The Current Dir. It May Be Changed)。 for(i=0。i10 。 i+) fscanf(IN,%d,&iIN)。 iOUT=fun(iIN)。 fprintf(OUT,%dn,iOUT)。 fclose(IN)。 fclose(OUT)。答案: - int i
12、。int j。j= 1 。for(i=2。in 。i+) if(n%i=0) j= 0。 return j。- 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 36 页第 5 题 (10.0 分)题号 :33 /*- 【程序设计】- 功能:用do-while语句求 1100 的累计和。-*/ #include long int fun(int n) /*Program*/ /* End */ void main () int i=100。 printf(1100的累加和为:%ldn,fun(i)。 wwjt()。 wwjt() FILE
13、 *IN,*OUT。 int i。 int iIN。 long int iOUT。 IN=fopen(in.dat,r)。 if(IN=NULL) printf(Please Verify The Currernt Dir.It May Be Changed)。 OUT=fopen(out.dat,w)。 if(OUT=NULL) printf(Please Verify The Current Dir. It May Be Changed)。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 36 页 for(i=0。i5 。i+) fs
14、canf(IN,%d,&iIN)。 iOUT=fun(iIN)。 fprintf(OUT,%ldn,iOUT)。 fclose(IN)。 fclose(OUT)。 答案: int i =1, sum =0。 do sum = sum + i。 i+。 while ( i = n )。 return sum。第 6 题 (10.0 分)题号 :56 /*- 【程序设计】- 功能:求1 到 100 之间的偶数之积。-*/ #include stdio.h double fun(int m) /*Program*/ 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - -
15、- -第 9 页,共 36 页 /* End */ main() printf(ji=%fn,fun(100)。 yzj()。 yzj() FILE *IN,*OUT。 int iIN,i。 double dOUT。 IN=fopen(23.in,r)。 if(IN=NULL) printf(Please Verify The Currernt Dir.It May Be Changed)。 OUT=fopen(23.out,w)。 if(OUT=NULL) printf(Please Verify The Current Dir. It May Be Changed)。 for(i=0。i1
16、0 。 i+) fscanf(IN,%d,&iIN)。 dOUT=fun(iIN)。 fprintf(OUT,%fn,dOUT)。 fclose(IN)。 fclose(OUT)。答案: - double y=1。 int i。 for(i=1。i=m。i+) if(i%2=0)y*=i。 return y。- 第 7 题 (10.0 分)题号 :358 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 36 页/*- 【程序设计】- 功能:根据整型形参m,计算如下公式的值: y=1/5+1/6 1/7 1/8 1/9+1/10.1/(
17、m+5) 例如:若m=9,则应输出:1.168229 -*/ #include stdio.h double fun(int m) /*Program*/ /* End */ main() int n。 clrscr()。 printf(Enter n: )。 scanf(%d, &n)。 printf(nThe result is %1fn, fun(n)。 getch()。 yzj()。 yzj() FILE *IN,*OUT。 int s,i 。 int t。 float o。 IN=fopen(in.dat,r)。 if(IN=NULL) printf(Read File Error)
18、。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 36 页 OUT=fopen(out.dat,w)。 if(OUT=NULL) printf(Write File Error)。 for(i=0。i5 。i+) fscanf(IN,%d,&t)。 o=fun(t)。 fprintf(OUT,%fn,o)。 fclose(IN)。 fclose(OUT)。答案: - double y=0。 int i。 for(i=0。 i10) z=log(x+3) (x-3) z=sin(x)/(cos(x)+4) -*/ #include #
19、include double y(float x) /*Program*/ 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 36 页 /* End */ main() float x。 scanf(%f,&x)。 printf(y=%fn,y(x)。 yzj()。 getch()。 yzj() FILE *IN,*OUT。 int n。 float i。 double o。 IN=fopen(in.dat,r)。 if(IN=NULL) printf(Read File Error)。 OUT=fopen(out.dat,w)。 if
20、(OUT=NULL) printf(Write File Error)。 for(n=0。n10) z=exp(x)。 else if(x-3) z=log(x+3)。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 36 页 else z=sin(x)/(cos(x)+4)。 return(z)。- 第 9 题 (10.0 分)题号 :390 /*- 【程序设计】- 功能:编写函数求表达式的和(n 的值由主函数输入)。 1-1/2+1/3-1/4+.+1/m 例如:当n=20 时, 表达式的值为0.668771 。-*/ #inclu
21、de stdio.h float sum(int n) /*Program*/ /* End */ main() int n。 scanf(%d,&n)。 printf(sum=%fn,sum(n)。 yzj()。 getch()。 yzj() FILE *IN,*OUT。 int m,n。 int i10。 float o。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 36 页 IN=fopen(in.dat,r)。 if(IN=NULL) printf(Read File Error)。 OUT=fopen(out.dat,w)
22、。 if(OUT=NULL) printf(Write File Error)。 for(n=0。n5。n+) fscanf(IN,%d,&in)。 for(n=0。n5。n+) o = sum(in)。 fprintf(OUT,%fn,o)。 fclose(IN)。 fclose(OUT)。答案: - float s=0。 int i,k=1。 for(i=1。i=n 。i+) s=s+k*1.0/i。 k=-k。 return(s)。- 第 10 题 (10.0 分)题号 :328 /*- 【程序设计】- 功能:能计算从1 开始到 n 的自然数的和,n 由键盘输入,并在 main() 函数
23、中输出。-*/ #include stdio.h int fun(int n) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 36 页 /*Program*/ /* End */ main() int m。 printf(Enter m: )。 scanf(%d, &m)。 printf(nThe result is %dn, fun(m)。 yzj()。 getch()。 yzj() FILE *IN,*OUT。 int t。 int o。 int c。 IN=fopen(in.dat,r)。 if(IN=NULL) printf
24、(Read File Error)。 OUT=fopen(out.dat,w)。 if(OUT=NULL) printf(Write File Error)。 for(c=1。c=5。 c+) fscanf(IN,%d,&t)。 o=fun(t)。 fprintf(OUT,%dn,o)。 fclose(IN)。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 36 页 fclose(OUT)。答案: - int sum,i。sum =0。for(i=1。i=n 。i+) sum=sum+i 。 return(sum)。- 第 11 题
25、(10.0 分)题号 :361 /*- 【程序设计】- 功能:把20 个随机数存入一个数组,然后输出该数组中的最大值。-*/ #include stdio.h #define VSIZE 20 int vectorVSIZE 。int fun(int list,int size) /*Program*/ /* End */ main() int i。 clrscr() 。 for (i=0。iVSIZE 。i+) vectori=rand()。 printf(Vector%d=%6dn,i,vectori)。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年程序设计 2022 程序设计
限制150内