30套上机模拟试题.docx
- 文档编号:28832750
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:201
- 大小:52.41KB
30套上机模拟试题.docx
《30套上机模拟试题.docx》由会员分享,可在线阅读,更多相关《30套上机模拟试题.docx(201页珍藏版)》请在冰豆网上搜索。
30套上机模拟试题
试卷编号:
8105
所属语言:
C语言
试卷方案:
C语言期末模拟练习
试卷总分:
100分
共有题型:
3种
一、程序填空共1题(共计30分)
第1题(30.0分)题号:
21
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
将一个字符串中的前N个字符复制到一个字符数组中去,
不许使用strcpy函数。
-------------------------------------------------------*/
#include
main()
{
charstr1[80],str2[80];
inti,n;
/***********SPACE***********/
gets(【?
】);
scanf("%d",&n);
/***********SPACE***********/
for(i=0;【?
】;i++)
/***********SPACE***********/
【?
】;
/***********SPACE***********/
【?
】;
printf("%s\n",str2);
}
答案:
=======(答案1)=======
str1
=======(答案2)=======
i =========或=========n>i =========或=========i<=n-1 =========或=========n-1>=i =======(答案3)======= str2[i]=str1[i] =========或=========*(str2+i)=*(str1+i) =========或=========*(str2+i)=str1[i] =========或=========str2[i]=*(str1+i) =======(答案4)======= str2[n]='\0' =========或=========str2[i]='\0' =========或=========str2[n]=0 =========或=========str2[i]=0 =========或=========*(str2+n)='\0' =========或=========*(str2+i)='\0' =========或=========*(str+n)=0 =========或=========*(str2+i)=0 二、程序改错共1题(共计30分) 第1题(30.0分)题号: 441 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 请输入星期几的第一个字母来判断一下是星期几,如果第一 个字母一样,则继续判断第二个字母。 ------------------------------------------------------*/ #include"conio.h" #include voidmain() { charletter; printf("pleaseinputthefirstletterofsomeday\n"); /**********FOUND**********/ while((letter=getch())='Y') { switch(letter) { case'S': printf("pleaseinputsecondletter\n"); if((letter=getch())=='a') printf("saturday\n"); elseif((letter=getch())=='u') printf("sunday\n"); elseprintf("dataerror\n"); break; case'F': printf("friday\n"); break; case'M': printf("monday\n"); break; case'T': printf("pleaseinputsecondletter\n"); /**********FOUND**********/ if((letter=getch())! ='u') printf("tuesday\n"); elseif((letter=getch())=='h') printf("thursday\n"); else printf("dataerror\n"); /**********FOUND**********/ break case'W': printf("wednesday\n"); break; default: printf("dataerror\n"); } } } 答案: =======(答案1)======= while((letter=getch())! ='Y') =======(答案2)======= if((letter=getch())=='u') =======(答案3)======= break; 三、程序设计共1题(共计40分) 第1题(40.0分)题号: 347 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 把20个随机数存入一个数组,然后输出该数组中的 最小值。 其中确定最小值的下标的操作在fun函数中 实现,请给出该函数的定义。 ------------------------------------------------*/ #include #defineVSIZE20 voidwwjt(); intvector[VSIZE]; intfun(intlist[],intsize) { /**********Program**********/ /**********End**********/ } main() { inti; for(i=0;i { vector[i]=rand(); printf("Vector[%d]=%6d\n",i,vector[i]); } i=fun(vector,VSIZE); printf("\nMininum: Vector[%d]=%6d\n",i,vector[i]); wwjt(); } voidwwjt() { inti,t; FILE*fp; fp=fopen("out.dat","w"); for(i=0;i { fprintf(fp,"Vector[%d]=%6d\n",i,vector[i]); } t=fun(vector,VSIZE); fprintf(fp,"\nMininum: Vector[%d]=%6d\n",t,vector[t]); fclose(fp); } 答案: ---------------------- inti,min=0; for(i=1;i if(list[min]>list[i]) min=i; returnmin; ---------------------- 试卷编号: 8106 所属语言: C语言 试卷方案: C语言期末模拟练习 试卷总分: 100分 共有题型: 3种 一、程序填空共1题(共计30分) 第1题(30.0分)题号: 457 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 功能: 定义一个结构变量(包括年、月、日)计算给定日 期是该年的第几天。 -------------------------------------------------------*/ #include #include main() { /***********SPACE***********/ 【? 】date { inty,m,d; }da; intf,n,p,a[12]={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.m<1【? 】da.d>12)exit(0); a[11]+=f; if(da.d<1||da.d>a[da.m-1])exit(0); /***********SPACE***********/ for(n=【? 】,p=1;p printf("n=%d\n",n); } 答案: =======(答案1)======= 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 floatMin=0; intJ=0; floatfun(floatarray[],intn) { inti;floatsum=0,ave; Min=array[0]; for(i=0;i { if(Min>array[i])Min=array[i]; /**********FOUND**********/ sum=+array[i]; } /**********FOUND**********/ ave=sum\n; for(i=0;i /**********FOUND**********/ if(array[i]=Min)J++; return(ave); } main() { floata[10],ave; inti=0; for(i=0;i<10;i++) scanf("%f",&a[i]); ave=fun(a,10); printf("ave=%f\n",ave); printf("min=%f\n",Min); printf("Total: %d\n",J); } 答案: =======(答案1)======= sum+=array[i]; =========或========= sum=sum+array[i]; =======(答案2)======= ave=sum/n; =======(答案3)======= if(array[i]==Min)J++; 三、程序设计共1题(共计40分) 第1题(40.0分)题号: 330 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 计算出k以内最大的10个能被13或17整除的自然数之 和。 (k〈3000)。 ------------------------------------------------*/ #include #include"conio.h" voidwwjt(); intfun(intk) { /**********Program**********/ /**********End**********/ } main() { intm; printf("Enterm: "); scanf("%d",&m); printf("\nTheresultis%d\n",fun(m)); wwjt(); } voidwwjt() { FILE*IN,*OUT; ints; intt; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(s=1;s<=5;s++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); } 答案: ---------------------- inta=0,b=0; while((k>=2)&&(b<10)) {if((k%13==0)||(k%17==0)) {a=a+k;b++;} k--; } returna; ---------------------- 试卷编号: 8134 所属语言: C语言 试卷方案: C语言期末模拟练习 试卷总分: 100分 共有题型: 3种 一、程序填空共1题(共计30分) 第1题(30.0分)题号: 470 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 从两个数组中分别提取任意元素x[i],y[j],问|x[i]-y[j]| 的最小值是多少? -------------------------------------------------------*/ #include #include /***********SPACE***********/ #definemin(x,y)(【? 】) intmin_distance(intx[],inty[],intm,intn) { intminimum=INT_MAX; intindex_x=0,index_y=0; while(index_x /***********SPACE***********/ if(【? 】) { minimum=min(minimum,x[index_x]-y[index_y]); index_y++; } else { minimum=min(minimum,y[index_y]-x[index_x]); /***********SPACE***********/ 【? 】; } returnminimum; } #include voidmain(void) { intx[]={1,3,7,11,18}; intm=sizeof(x)/sizeof(int); inty[]={4,5,8,13,22}; intn=sizeof(y)/sizeof(int); inti,min_distance(int[],int[],int,int); printf("\nComputeMinimumDistanceBetweenTwoSortedArrays"); printf("\n=================================================="); printf("\n\nGivenArray#1: "); for(i=0;i printf("%5d",x[i]); printf("\n\nGivenArray#2: "); for(i=0;i printf("%5d",y[i]); printf("\n\nMinimumDistance=%d",min_distance(x,y,m,n)); } 答案: =======(答案1)======= x x: y =========或========= y>x? x: y =======(答案2)======= x[index_x]>=y[index_y] =========或========= y[index_y]<=x[index_x] =======(答案3)======= index_x++ =========或========= index_x=index_x+1 =========或========= ++index_x 二、程序改错共1题(共计30分) 第1题(30.0分)题号: 26 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 实现3行3列矩阵的转置,即行列互换。 ------------------------------------------------------*/ #include fun(inta[3][3],intn) { inti,j,t; for(i=0;i for(j=0;j /**********FOUND**********/ scanf("%d",a[i][j]); for(i=0;i { for(j=0;j printf("%4d",a[i][j]); printf("\n"); } for(i=0;i /**********FOUND**********/ for(j=0;j { /**********FOUND**********/ a[i][j]=t; a[i][j]=a[j][i]; /**********FOUND**********/ t=a[j][i]; } for(i=0;i { for(j=0;j printf("%4d",a[i][j]); printf("\n"); } } main() { intb[3][3]; fun(b,3); } 答案: =======(答案1)======= scanf("%d",&a[i][j]); =========或========= scanf("%d",(*(a+i)+j)); =======(答案2)======= for(j=0;j =========或========= for(j=0;i>j;j++) =========或========= for(j=0;j<=i;j++) =========或========= for(j=0;i>=j;j++) =========或========= for(j=i+1;j =========或========= for(j=i;j =========或========= for(j=0;j<=i-1;j++) =========或========= for(j=0;i-1>=j;j++) =========或========= for(j=i+1;j<=n-1;j++) =========或========= for(j=i;j<=n-i;j++) =======(答案3)======= t=a[i][j]; =======(答案4)======= a[j][i]=t; 三、程序设计共1题(共计40分) 第1题(40.0分)题号: 341 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 删除所有值为y的元素。 数组元素中的值和y的值由 主函数通过键盘输入。 ------------------------------------------------*/ #include #include #include #defineM20 voidwwjt(); voidfun(intbb[],int*n,inty) { /**********Program**********/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 30 上机 模拟 试题