C语言上机实训.docx
- 文档编号:10338814
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:22
- 大小:18.14KB
C语言上机实训.docx
《C语言上机实训.docx》由会员分享,可在线阅读,更多相关《C语言上机实训.docx(22页珍藏版)》请在冰豆网上搜索。
C语言上机实训
C语言上机实训
试题2
所属语言:
C语言
试卷方案:
C语言上机实训
试卷总分:
100分
共有题型:
3种
一、程序填空共1题(共计30分)
第1题(30.0分)题号:
470
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
从两个数组中分别提取任意元素x[i],y[j],问|x[i]-y[j]|
的最小值是多少?
-------------------------------------------------------*/
#include
#include
/***********SPACE***********/
#definemin(x,y)(【?
】)x x: y intmin_distance(intx[],inty[],intm,intn) { intminimum=INT_MAX; intindex_x=0,index_y=0; while(index_x /***********SPACE***********/ if(【? 】)x[index_x]>=y[index_y] { minimum=min(minimum,x[index_x]-y[index_y]); index_y++; } else { minimum=min(minimum,y[index_y]-x[index_x]); /***********SPACE***********/ 【? 】index_x++ ; } 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**********/ inti,j; for(i=0;i<*n;) { if(bb[i]==y) {for(j=i;j<*n;j++) bb[j]=bb[j+1]; *n=*n-1; } else i++; } /**********End**********/ } main() { intaa[M],n,y,k; printf("\nPleaseentern: ");scanf("%d",&n); printf("\nEnter%dpositivenumber: \n",n); for(k=0;k printf("Theoriginaldatais: \n"); for(k=0;k printf("\nEnteranumbertodeletede: ");scanf("%d",&y); fun(aa,&n,y); printf("Thedataafterdeleted%d: \n",y); for(k=0;k printf("\n"); wwjt(); } voidwwjt() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(n=0;n<10;n++) { fscanf(IN,"%d",&i[n]); } fun(i,&n,3); for(o=0;o { fprintf(OUT,"%d\n",i[o]); } fclose(IN); fclose(OUT); } 答案: ---------------------- inti,j; for(i=0;i<*n;) { if(bb[i]==y) {for(j=i;j<*n;j++) bb[j]=bb[j+1]; *n=*n-1; } else i++; } ---------------------- 试题1 所属语言: C语言 试卷方案: C语言上机实训 试卷总分: 100分 共有题型: 3种 一、程序填空共1题(共计30分) 第1题(30.0分)题号: 417 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 利用全局变量计算长方体的体积及三个面的面积。 -------------------------------------------------------*/ #include ints1,s2,s3; intvs(inta,intb,intc) { intv; /***********SPACE***********/ v=【? 】; s1=a*b; /***********SPACE***********/ s2=【? 】; s3=a*c; returnv; } main() { intv,l,w,h; printf("\ninputlength,widthandheight: "); /***********SPACE***********/ scanf("%d%d%d",【? 】,&w,&h); /***********SPACE***********/ v=【? 】; printf("v=%ds1=%ds2=%ds3=%d\n",v,s1,s2,s3); } 答案: =======(答案1)======= a*b*c =========或========= a*b*c =======(答案2)======= b*c =========或========= b*c =======(答案3)======= &l =======(答案4)======= vs(l,w,h) =========或========= vs(l,w,h) 二、程序改错共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分)题号: 390 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 编写函数求1~100中奇数的平方和。 结果为166650.000000。 ------------------------------------------------*/ #include voidwwjt(); floatsum(intn) { /**********Program**********/ /**********End**********/ } main() { printf("sum=%f\n",sum(100)); wwjt(); } voidwwjt() { FILE*IN,*OUT; inti; floato; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(j=0;j<5;j++) { fscanf(IN,"%d",&i); o=sum(i); fprintf(OUT,"%f\n",o); } fclose(IN); fclose(OUT); } 答案: ---------------------- floats=0; inti; for(i=1;i<=n;i=i+2) s=s+i*i; return(s); ---------------------- 试题3 所属语言: C语言 试卷方案: C语言上机实训 试卷总分: 100分 共有题型: 3种 一、程序填空共1题(共计30分) 第1题(30.0分)题号: 410 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 有n个整数,使其前面各数顺序向后移m个位置,最后m个数 变成最前面的m个数 -------------------------------------------------------*/ #include /***********SPACE***********/ move(【? 】) intn,m,array[20]; { int*p,array_end; /***********SPACE***********/ array_end=*(【? 】); for(p=array+n-1;p>array;p--) /***********SPACE***********/ *p=*(【? 】); *array=array_end; m--; if(m>0)move(array,n,m); } main() { intnumber[20],n,m,i; printf("thetotalnumbersis: "); scanf("%d",&n); printf("backm: "); scanf("%d",&m); for(i=0;i scanf("%d,",&number[i]); scanf("%d",&number[n-1]); /***********SPACE***********/ move(【? 】); for(i=0;i printf("%d,",number[i]); printf("%d",number[n-1]); } 答案: =======(答案1)======= array,n,m =======(答案2)======= array+n-1 =========或========= array+n-1 =======(答案3)======= p-1 =========或========= p-1 =======(答案4)======= number,n,m 二、程序改错共1题(共计30分) 第1题(30.0分)题号: 413 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 读取7个数(1-50)的整数值,每读取一个值,程序打印 出该值个数的*。 ------------------------------------------------------*/ #include main() { inti,a,n=1; /**********FOUND**********/ while(n<7) { do { scanf("%d",&a); } /**********FOUND**********/ while(a<1&&a>50); /**********FOUND**********/ for(i=0;i<=a;i++) printf("*"); printf("\n"); n++; } } 答案: =======(答案1)======= while(n<=7) =========或========= while(n<8) =======(答案2)======= while(a<1||a>50); =========或========= while(a>50||a<1); =======(答案3)======= for(i=1;i<=a;i++) 三、程序设计共1题(共计40分) 第1题(40.0分)题号: 337 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 将两个两位数的正整数a、b合并形成一个整数放在 c中。 合并的方式是: 将a数的十位和个位数依次放 在c数的百位和个位上,b数的十位和个位数依次放 在c数的十位和千位上。 例如: 当a=45,b=12。 调用该函数后,c=2415。 ------------------------------------------------*/ #include voidwwjt(); voidfun(inta,intb,long*c) { /**********Program**********/ /**********End**********/ } main() { inta,b;longc; printf("inputa,b: "); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresult
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机