《30套上机模拟试题.doc》由会员分享,可在线阅读,更多相关《30套上机模拟试题.doc(76页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、试卷编号:8105所属语言:C语言试卷方案:C语言期末模拟练习试卷总分:100分共有题型:3种一、程序填空 共1题 (共计30分)第1题 (30.0分) 题号:21/*-【程序填空】-功能:将一个字符串中的前N个字符复制到一个字符数组中去, 不许使用strcpy函数。-*/#include main ( ) char str180,str280; int i,n; /*SPACE*/ gets(【?】); scanf(%d,&n); /*SPACE*/ for (i=0; 【?】 ;i+) /*SPACE*/ 【?】; /*SPACE*/ 【?】; printf(%sn,str2);答案:=(
2、答案1)=str1=(答案2)=ii=或= i=i=(答案3)=str2i=str1i=或=*(str2+i)=*(str1+i)=或=*(str2+i)=str1i=或=str2i=*(str1+i)=(答案4)=str2n=0=或=str2i=0=或=str2n=0=或=str2i=0=或=*(str2+n)=0=或=*(str2+i)=0=或=*(str+n)=0=或=*(str2+i)=0二、程序改错 共1题 (共计30分)第1题 (30.0分) 题号:441/*- 【程序改错】-功能:请输入星期几的第一个字母来判断一下是星期几,如果第一 个字母一样,则继续判断第二个字母。-*/#in
3、clude conio.h#include void main() char letter; printf(please input the first letter of somedayn); /*FOUND*/ while (letter=getch()=Y) switch (letter) case S: printf(please input second lettern); if(letter=getch()=a) printf(saturdayn); else if (letter=getch()=u) printf(sundayn); else printf(data error
4、n); break; case F: printf(fridayn); break; case M: printf(mondayn); break; case T: printf(please input second lettern); /*FOUND*/ if(letter=getch()!=u) printf(tuesdayn); else if (letter=getch()=h) printf(thursdayn); else printf(data errorn); /*FOUND*/ break case W: printf(wednesdayn); break; default
5、: printf(data errorn); 答案:=(答案1)=while (letter=getch()!=Y)=(答案2)=if(letter=getch()=u)=(答案3)=break;三、程序设计 共1题 (共计40分)第1题 (40.0分) 题号:347/*-【程序设计】-功能:把20个随机数存入一个数组,然后输出该数组中的 最小值。其中确定最小值的下标的操作在fun函数中 实现,请给出该函数的定义。 -*/#include #define VSIZE 20 void wwjt(); int vectorVSIZE ; int fun(int list,int size) /*P
6、rogram*/ /* End */ main() int i; for (i=0;iVSIZE;i+) vectori=rand(); printf(Vector%d=%6dn,i,vectori); i=fun(vector,VSIZE); printf(nMininum: Vector%d=%6dn,i,vectori); wwjt(); void wwjt() int i,t; FILE *fp ; fp = fopen(out.dat, w) ; for (i=0;iVSIZE;i+) fprintf(fp,Vector%d=%6dn,i,vectori); t=fun(vector
7、,VSIZE); fprintf(fp,nMininum: Vector%d=%6dn,t,vectort); fclose(fp) ; 答案:-int i,min=0; for(i=1; i listi) min=i; return min;-试卷编号:8106所属语言:C语言试卷方案:C语言期末模拟练习试卷总分:100分共有题型:3种一、程序填空 共1题 (共计30分)第1题 (30.0分) 题号:457/*-【程序填空】-功能:功能:定义一个结构变量(包括年、月、日)计算给定日 期是该年的第几天。-*/#include #include main()/*SPACE*/ 【?】 date
8、int y,m,d; da; int f,n,p,a12=31,28,31,30,31,30,31,31,30,31,30,31; printf(y,m,d=); scanf(%d,%d,%d,&da.y,&da.m,&da.d); /*SPACE*/ f=da.y%4=0&da.y%100【?】0|da.y%400=0; /*SPACE*/ if(da.m12) exit(0); a11+=f; if(da.dada.m-1) exit(0); /*SPACE*/ for(n=【?】,p=1;pda.m;p+)n+=ap-1; printf(n=%dn,n);答案:=(答案1)=struct
9、=(答案2)=!=(答案3)=|=(答案4)=da.d二、程序改错 共1题 (共计30分)第1题 (30.0分) 题号:392/*- 【程序改错】-功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67, 75,92,66,则输出平均成绩为77.9,最低高分为56,得最 低分的人数为1人。-*/#include float Min=0;int J=0;float fun(float array,int n) int i;float sum=0,ave; Min=array0; for(i=0;iarray i) Mi
10、n=array i; /*FOUND*/ sum=+array i; /*FOUND*/ ave=sumn; for(i=0;in;i+) /*FOUND*/ if(array i=Min) J+; return(ave);main( ) float a10,ave; int i=0; for(i=0;i10;i+) scanf(%f,&ai); ave=fun(a,10); printf(ave=%fn,ave); printf(min=%fn,Min); printf(Total:%dn,J);答案:=(答案1)=sum+=arrayi;=或=sum=sum+array i;=(答案2)=
11、ave=sum/n;=(答案3)=if(array i=Min) J+;三、程序设计 共1题 (共计40分)第1题 (40.0分) 题号:330/*-【程序设计】-功能:计算出k以内最大的10个能被13或17整除的自然数之 和。(k3000)。-*/#include #includeconio.hvoid wwjt(); int fun(int k) /*Program*/ /* End */ main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %dn, fun(m); wwjt(); void wwjt(
12、) 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;-试卷编号:8134所属语言:C语言试卷方案:C语言期末模拟练习试卷总分:100分共有题型:3种一、程序填空 共1题 (共计30分)第1题 (30.0分) 题号:4
13、70/*-【程序填空】-功能:从两个数组中分别提取任意元素xi,yj,问|xi-yj| 的最小值是多少 ?-*/#include #include /*SPACE*/#define min(x, y) (【?】) int min_distance(int x, int y, int m, int n) int minimum = INT_MAX; int index_x = 0, index_y = 0; while (index_x m & index_y n) /*SPACE*/ if (【?】) minimum = min(minimum, xindex_x-yindex_y); ind
14、ex_y+; else minimum = min(minimum, yindex_y-xindex_x); /*SPACE*/ 【?】; return minimum;#include void main(void) int x = 1, 3, 7, 11, 18; int m = sizeof(x)/sizeof(int); int y = 4, 5, 8, 13, 22; int n = sizeof(y)/sizeof(int); int i, min_distance(int , int , int, int); printf(nCompute Minimum Distance Be
15、tween Two Sorted Arrays); printf(n=); printf(nnGiven Array #1 :); for (i = 0; i m; i+) printf(%5d, xi); printf(nnGiven Array #2 :); for (i = 0; i n; i+) printf(%5d, yi); printf(nnMinimum Distance = %d, min_distance(x, y, m, n);答案:=(答案1)=xx?x:y=(答案2)=xindex_x = yindex_y=或=yindex_y=xindex_x=(答案3)=inde
16、x_x+=或=index_x=index_x+1=或=+index_x二、程序改错 共1题 (共计30分)第1题 (30.0分) 题号:26/*- 【程序改错】-功能:实现3行3列矩阵的转置,即行列互换。-*/#include fun(int a33,int n) int i,j,t; for(i=0;in;i+) for(j=0;jn;j+) /*FOUND*/ scanf(%d,aij); for(i=0;in;i+) for(j=0;jn;j+) printf(%4d,aij); printf(n); for(i=0;in;i+) /*FOUND*/ for(j=0;jn;j+) /*F
17、OUND*/ aij=t; aij=aji; /*FOUND*/ t=aji; for(i=0;in;i+) for(j=0;jn;j+) printf(%4d,aij); printf(n); main() int b33; fun(b,3);答案:=(答案1)=scanf(%d,&aij);=或=scanf(%d,(*(a+i)+j);=(答案2)=for(j=0;jj;j+)=或=for(j=0;j=j;j+)=或=for(j=i+1;jn;j+)=或=for(j=i;jn;j+)=或=for(j=0;j=j;j+)=或=for(j=i+1;j=n-1;j+)=或=for(j=i;j=n
18、-i;j+)=(答案3)=t=aij;=(答案4)=aji=t;三、程序设计 共1题 (共计40分)第1题 (40.0分) 题号:341/*-【程序设计】-功能:删除所有值为y的元素。数组元素中的值和y的值由 主函数通过键盘输入。-*/#include #include#include#define M 20void wwjt(); void fun(int bb,int *n,int y) /*Program*/ /* End */main() int aaM,n,y,k; printf(nPlease enter n:);scanf(%d,&n); printf(nEnter %d pos
19、itive number:n,n); for(k=0;kn;k+) scanf(%d,&aak); printf(The original data is:n); for(k=0;kn;k+) printf(%5d,aak); printf(nEnter a number to deletede:);scanf(%d,&y); fun(aa,&n,y); printf(The data after deleted %d:n,y); for(k=0;kn;k+) printf(%4d,aak); printf(n); wwjt();void wwjt() FILE *IN,*OUT; int n
20、; 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); fun(i,&n,3); for(o=0;on;o+) fprintf(OUT,%dn,io); fclose(IN); fclose(OUT);答案:- int i,j; for(i=0;i*n;) if(bbi=y) for(j=i;j*n;j+) bb
21、j=bbj+1; *n=*n-1; else i+; -试卷编号:8107所属语言:C语言试卷方案:C语言期末模拟练习试卷总分:100分共有题型:3种一、程序填空 共1题 (共计30分)第1题 (30.0分) 题号:486/*-【程序填空】-功能:删除字符串中的数字字符。例如:输入字符串:48CTYP9E6,则输出:CTYPE。-*/#include /*SPACE*/void fun (【?】) char *p=s; while(*p) if(*p=0)&(*p=9) p+; /*SPACE*/ else *s+=【?】; /*SPACE*/ 【?】; main( ) char item10
22、0 ; printf(nEnter a string: ); gets(item); fun(item); printf(nThe string:%sn,item);答案:=(答案1)=char *s=或=char s=(答案2)=*p+=(答案3)=*s=0=或=*s=0二、程序改错 共1题 (共计30分)第1题 (30.0分) 题号:1/*- 【程序改错】-功能:在一个一维整型数组中找出其中最大的数及其下标。-*/#include #define N 10/*FOUND*/float fun(int *a,int *b,int n) int *c,max=*a; for(c=a+1;cma
23、x) max=*c; /*FOUND*/ b=c-a; return max;void main() int aN,i,max,p=0; printf(please enter 10 integers:n); for(i=0;iN;i+) /*FOUND*/ get(%d,ai); /*FOUND*/ m=fun(a,p,N); printf(max=%d,position=%d,max,p);答案:=(答案1)=int fun(int *a,int *b,int n)=(答案2)=*b=c-a;=(答案3)=scanf(%d,&ai);=或=scanf(%d, a + i );=(答案4)=
24、max=fun(a,&p,N);三、程序设计 共1题 (共计40分)第1题 (40.0分) 题号:339/*-【程序设计】-功能:判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大 于100。说明:所谓“同构数”是指这样的数,这个数出现在它的 平方数的右边。例如:输入整数5,5的平方数是25,5是25中右侧的数,所 以5是同构数。-*/#include void wwjt(); int fun(int x) /*Program*/ /* End */main() int x,y; printf(nPlease enter a integer numbers:); scanf(%d,&x); if(x100) printf(data error!n); exit(0); y=fun(x); if(y) printf(%d YESn,x); else printf(%d NOn,x); wwjt(); void wwjt() FIL