1、程序设计上机全试卷编号:8398所属语言:大学计算机基础试卷方案:h试卷总分:1160分共有题型:1种一、程序设计 共116题 (共计1160分)第1题 (10.0分) 题号:387/*-【程序设计】-功能:用函数求N个10,60上的整数中能被5整除的最大 的数,如存在则返回这个最大值,如果不存在则 返回0。-*/int find(int arr,int n) int m=0; /*Program*/ /* End */ return(m);#define N 30#include stdlib.h#include stdio.hmain() int aN,i,k; for(i=0;iN;i+
2、) ai=random(51)+10; for(i=0;iN;i+) printf(%5d,ai); if(i+1)%5=0) printf(n); k=find(a,N); if(k=0) printf(NO FOUNDn); else printf(the max is:%dn,k); yzj(); getch();yzj() FILE *IN,*OUT; int n; int i5; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) prin
3、tf(Write File Error); for(n=0;n5;n+) fscanf(IN,%d,&in); o=find(i,5); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);答案:-int i; for(i=0;im) m=arri;-第2题 (10.0分) 题号:365/*-【程序设计】-功能:求一个四位数的各位数字的立方和。-*/#include stdio.h int fun(int n) /*Program*/ /* End */ main() int k; k=fun(1234); printf(k=%dn,k); yzj(); g
4、etch();yzj() FILE *IN,*OUT; int iIN,iOUT,i; 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); for(i=0;i0) d=n%10; s+=d*d*d; n/=10; return s;-第3题 (10.0分) 题号:398/*-【程序设计
5、】-功能:编写函数fun(str,i,n),从字符串str中删除第i个 字符开始的连续n个字符(注意:str0代表字符串 的第一个字符)。-*/#include stdio.hmain() char str81; int i,n; printf(请输入字符串str的值:n); scanf(%s,str); printf(你输入的字符串str是:%sn,str); printf(请输入删除位置i和待删字符个数n的值:n); scanf(%d%d,&i,&n); while (i+n-1strlen(str) printf(删除位置i和待删字符个数n的值错!请重新输入i和n的值n); scanf(
6、%d%d,&i,&n); fun(str,i,n); printf(删除后的字符串str是:%sn,str); getch(); yzj();fun(char str,int i,int n) /*Program*/ /* End */yzj() FILE *IN,*OUT; int n; char i200; char o200; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); fscanf(IN,%s,i
7、); fun(i,2,8); fprintf(OUT,%sn,i); fclose(IN); fclose(OUT);答案:-while(stri+n-1) stri-1=stri+n-1; i+; stri-1=0;-第4题 (10.0分) 题号:23/*-【程序设计】-功能:从键盘输入一个大于3的整数,调用函数fun判断 其是否素数,然后在main函数中输出相应的结论 信息。例如:7是素数,8不是素数。请编写fun函数。素数是 仅能被1和自身整除的数-*/#include stdio.h main() int m,flag; printf(input an integer:); scanf
8、(%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) /*Program*/ /* End */yzj() FILE *IN,*OUT; int iIN,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
9、(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;int j;j= 1;for(i=2;in;i+)if(n%i=0) j= 0;return j;-第5题 (10.0分) 题号:381/*-【程序设计】-功能:用辗转相除法求两个整数的最大公约数。-*/#includeint gcd(int n,int m) /*Program
10、*/ /* End */main() int n,m,result; clrscr(); scanf(%d%d,&n,&m); result=gcd(n,m); printf(the gcd is %dn,result); yzj(); getch();yzj() FILE *IN,*OUT; int m,n; int i2; 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;n6
11、;n+) for(m=0;m2;m+) fscanf(IN,%d,&im); o=gcd(i0,i1); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);答案:-int r,t; if(nm) t=n;n=m;m=t; r=n%m; while(r!=0) n=m;m=r;r=n%m; return(m);-第6题 (10.0分) 题号:380/*-【程序设计】-功能:给定n个数据, 求最大值出现的位置(如果最大值出 现多次,求出第一次出现的位置即可)。-*/#includeint station(int s,int n) /*Program*/ /*
12、End */main() int a100,n,i,t; clrscr(); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); t=station(a,n); printf(the 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(Wr
13、ite File Error); for(n=0;n10;n+) fscanf(IN,%d,&in); o=station(i,10); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);答案:-int i,k; k=0; for(i=1;isk) k=i; return(k+1);-第7题 (10.0分) 题号:350/*-【程序设计】-功能:从低位开始取出长整型变量s奇数位上的数,依次 构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的数为:7531。-*/#include stdio.hlong fun (long s,long t
14、) /*Program*/ /* End */return t; main() long s, t,m; clrscr(); printf(nPlease enter s:); scanf(%ld, &s); m=fun(s,t); printf(The result is: %ldn, m); getch(); yzj();yzj() FILE *IN,*OUT; int n; long i,t,m; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) prin
15、tf(Write File Error); for(n=0;n 0) s = s/100; t = s%10*sl + t;sl = sl * 10;-第8题 (10.0分) 题号:351/*-【程序设计】-功能:请编一个函数void fun(int ttMN,int ppN), tt指向一个M行N列的二维数组,求出二维数组每列 中最小元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。-*/#include#include#define M 3#define N 4 void fun(int ttMN,int ppN) /*Program*/ /* End */main()
16、 int tMN=22,45,56,30, 19,33,45,38, 20,22,66,40; int pN,i,j,k; clrscr(); printf(The original data is:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%6d,tij); printf(n); fun(t,p); printf(nThe result is:n); for(k=0;kN;k+) printf(%4d,pk); printf(n); getch(); NONO();NONO() int i,j, array34,p4; FILE *rf, *wf ;
17、rf = fopen(in.dat, r) ; wf = fopen(out.dat, w) ; for (i=0; i 3; i+) for (j=0; j 4; j+) fscanf(rf, %d, &arrayij); fun(array,p); for (j=0; j 4; j+) fprintf(wf, %7d, pj); fprintf(wf, n); fclose(rf) ; fclose(wf) ; 答案:- int i,j; for(j=0;jN;j+) ppj=tt0j; for(i=1;iM;i+) if(ttijppj) ppj=ttij; -第9题 (10.0分) 题
18、号:501/*-【程序设计】-功能:有一个一维数组score,内放10个学生的成绩,用一 个函数来求平均成绩。例如:如果10个学生的成绩分别为92,87,68,56,92,84, 70,65,90,60 则平均成绩为:76.400000-*/ #include stdio.hfloat average (float array10) /*Program*/ /* End */main() float score=92,87,68,56,92,84,70,65,90,60; printf(average score is %fn,average (score); wwjt();wwjt() FI
19、LE *IN,*OUT; int i; float fIN10; float fOUT; 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); for(i=0;i10;i+) fscanf(IN,%f,&fINi); fOUT=average (fIN); fprintf(OUT,%fn,fOUT); fclose(IN); fclose(OUT);答案:- int i; float aver,s
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2