1、C语言循环控制试卷编号: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/*- 【程序改错】-功能:请输入星期几的第一个字母来判断一下是星期几,如果第一 个字母一样,则继续判断第二个字母
3、。-*/#include 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(dat
4、a errorn); 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;
5、default: 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 si
6、ze) /*Program*/ /* 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
7、(vector,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*/ 【?
8、】 date 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)
9、=struct=(答案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;iarra
10、y i) Min=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;
11、=(答案2)=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(); voi
12、d wwjt() 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
13、分) 题号:470/*-【程序填空】-功能:从两个数组中分别提取任意元素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_
14、y); index_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 Dist
15、ance Between 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=(答案
16、3)=index_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;
17、j+) /*FOUND*/ 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-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*/
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2