最后一次信息技术实训综合实验题.docx
- 文档编号:9892248
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:40
- 大小:41.10KB
最后一次信息技术实训综合实验题.docx
《最后一次信息技术实训综合实验题.docx》由会员分享,可在线阅读,更多相关《最后一次信息技术实训综合实验题.docx(40页珍藏版)》请在冰豆网上搜索。
最后一次信息技术实训综合实验题
第0套综合实验
1、程序填空题
给定程序中,函数fun的功能是:
在形参ss所指字符串数组中,将所有串长超过k的字符串右边的字符删除,只保留左边的k个字符。
ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构。
#include
#include
#defineN5
#defineM10
/**********found**********/
voidfun(char(*ss)__1__,intk)
{inti=0;
/**********found**********/
while(i<__2__){
/**********found**********/
ss[i][k]=__3__;i++;}
}
main()
{charx[N][M]={"Create","Modify","Sort","skip","Delete"};
inti;
printf("\nTheoriginalstring\n\n");
for(i=0;i fun(x,4); printf("\nThestringafterdeleted: \n\n"); for(i=0;i } 2、程序修改题 给定程序MODI1.C中函数fun的功能是: 根据以下公式求 值,并作为函数值返回。 例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include #include doublefun(doubleeps) {doubles,t;intn=1; s=0.0; /************found************/ t=0; while(t>eps) {s+=t; t=t*n/(2*n+1); n++; } /************found************/ return(s); } main() {doublex; printf("\nPleaseenteraprecision: ");scanf("%lf",&x); printf("\neps=%lf,Pi=%lf\n\n",x,fun(x)); } 3、程序设计题 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 将字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为: *******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是: ****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为: *******A*BC*DEF*G****。 n的值在主函数中输入。 在编写函数时,不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include voidfun(char*a,intn) { } main() {chars[81];intn;voidNONO(); printf("Enterastring: \n");gets(s); printf("Entern: ");scanf("%d",&n); fun(s,n); printf("Thestringafterdeleted: \n");puts(s); NONO(); } voidNONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*in,*out; inti,n;chars[81]; in=fopen("in.dat","r"); out=fopen("out.dat","w"); for(i=0;i<10;i++){ fscanf(in,"%s",s); fscanf(in,"%d",&n); fun(s,n); fprintf(out,"%s\n",s); } fclose(in); fclose(out); } 第1套综合实验 1、程序填空题 给定程序的功能是: 从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。 然后将文件的内容读出显示在屏幕上。 文件的读写分别由自定义函数ReadText和WriteText实现。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构。 #include #include #include voidWriteText(FILE*); voidReadText(FILE*); main() {FILE*fp; if((fp=fopen("myfile4.txt","w"))==NULL) {printf("openfail! ! \n");exit(0);} WriteText(fp); fclose(fp); if((fp=fopen("myfile4.txt","r"))==NULL) {printf("openfail! ! \n");exit(0);} ReadText(fp); fclose(fp); } /**********found**********/ voidWriteText(FILE___1___) {charstr[81]; printf("\nEnterstringwith-1toend: \n"); gets(str); while(strcmp(str,"-1")! =0){ /**********found**********/ fputs(___2___,fw);fputs("\n",fw); gets(str); } } voidReadText(FILE*fr) {charstr[81]; printf("\nReadfileandoutputtoscreen: \n"); fgets(str,81,fr); while(! feof(fr)){ /**********found**********/ printf("%s",___3___); fgets(str,81,fr); } } 2、程序修改题 给定程序MODI1.C中函数fun的功能是: 从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。 高位仍在高位,低位仍在低位。 例如,当s中的数为: 7654321时,t中的数为: 7531。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include /************found************/ voidfun(longs,longt) {longsl=10; *t=s%10; while(s>0) {s=s/100; *t=s%10*sl+*t; /************found************/ sl=sl*100; } } main() {longs,t; printf("\nPleaseenters: ");scanf("%ld",&s); fun(s,&t); printf("Theresultis: %ld\n",t); } 3、程序设计题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是: 把分数最低的学生数据放在b所指的数组中,注意: 分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #defineN16 typedefstruct {charnum[10]; ints; }STREC; intfun(STREC*a,STREC*b) { } main() {STRECs[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GA01",91},{"GA07",72}, {"GA08",64},{"GA06",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91}, {"GA011",91},{"GA017",64},{"GA018",64},{"GA016",72}}; STRECh[N]; inti,n;FILE*out; n=fun(s,h); printf("The%dlowestscore: \n",n); for(i=0;i printf("%s%4d\n",h[i].num,h[i].s); printf("\n"); out=fopen("out.dat","w"); fprintf(out,"%d\n",n); for(i=0;i fprintf(out,"%4d\n",h[i].s); fclose(out); } 第2套综合实验 1、程序填空题 给定程序中已经建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构。 #include #include #defineN8 typedefstructlist {intdata; structlist*next; }SLIST; voidfun(SLIST*p) {SLIST*t,*s; t=p->next;s=p; while(t->next! =NULL) {s=t; /**********found**********/ t=t->___1___; } /**********found**********/ printf("%d",___2___); s->next=NULL; /**********found**********/ free(___3___); } SLIST*creatlist(int*a) {SLIST*h,*p,*q;inti; h=p=(SLIST*)malloc(sizeof(SLIST)); for(i=0;i {q=(SLIST*)malloc(sizeof(SLIST)); q->data=a[i];p->next=q;p=q; } p->next=0; returnh; } voidoutlist(SLIST*h) {SLIST*p; p=h->next; if(p==NULL)printf("\nThelistisNULL! \n"); else {printf("\nHead"); do{printf("->%d",p->data);p=p->next;}while(p! =NULL); printf("->End\n"); } } main() {SLIST*head; inta[N]={11,12,15,18,19,22,25,29}; head=creatlist(a); printf("\nOutputfromhead: \n");outlist(head); printf("\nOutputfromtail: \n"); while(head->next! =NULL){ fun(head); printf("\n\n"); printf("\nOutputfromheadagain: \n");outlist(head); } } 2、程序修改题 给定程序MODI1.C中fun函数的功能是: 将字符串中的字符按逆序输出,但不改变字符串中的内容。 例如,若字符串为abcd,则应输出: dcba。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include /************found************/ fun(chara) {if(*a) {fun(a+1); /************found************/ printf("%c"*a); } } main() {chars[10]="abcd"; printf("处理前字符串=%s\n处理后字符串=",s); fun(s);printf("\n"); } 3、程序设计题 请编写一个函数fun,它的功能是: 比较两个字符串的长度(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。 若两个字符串长度相同,则返回第一个字符串。 例如,输入beijing 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include char*fun(char*s,char*t) { } main() {chara[20],b[20]; voidNONO(); printf("Input1thstring: "); gets(a); printf("Input2thstring: "); gets(b); printf("%s\n",fun(a,b)); NONO(); } voidNONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*fp,*wf; inti; chara[20],b[20]; fp=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<10;i++){ fscanf(fp,"%s%s",a,b); fprintf(wf,"%s\n",fun(a,b)); } fclose(fp); fclose(wf); } 第3套综合实验 1、程序填空题 给定程序中,函数fun的功能是: 计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。 注意: 要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 123 456 789 fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构。 #include #defineN4 fun(intt[][N],intn) {inti,sum; /**********found**********/ ___1___; for(i=0;i /**********found**********/ sum+=___2___; for(i=0;i /**********found**********/ sum+=t[i][n-i-___3___]; returnsum; } main() {intt[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j; printf("\nTheoriginaldata: \n"); for(i=0;i {for(j=0;j printf("\n"); } printf("Theresultis: %d",fun(t,N)); } 2、程序修改题 给定程序MODI1.C中函数fun和funx的功能是: 用二分法求方程 的一个根,并要求绝对误差不超过0.001。 例如,若给m输入-100,给n输入90,则函数求得的一个根值为2.000。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include #include doublefunx(doublex) {return(2*x*x*x-4*x*x+3*x-6);} doublefun(doublem,doublen) { /************found************/ intr; r=(m+n)/2; /************found************/ while(fabs(n-m)<0.001) {if(funx(r)*funx(n)<0)m=r; elsen=r; r=(m+n)/2; } returnr; } main() {doublem,n,root; printf("Entermn: \n");scanf("%lf%lf",&m,&n); root=fun(m,n); printf("root=%6.3f\n",root); } 3、程序设计题 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 除了字符串前导和尾部的*号之外,将串中其他*号全部删除。 形参h已指向字符串中的第一个字母,形参p已指向字符串中最后一个字母。 在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为: ****A*BC*DEF*G********,删除后,字符串中的内容应当是: ****ABCDEFG********。 在编写函数时,不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。 #include voidfun(char*a,char*h,char*p) { } main() {chars[81],*t,*f; voidNONO(); printf("Enterastring: \n");gets(s); t=f=s; while(*t)t++; t--; while(*t=='*')t--; while(*f=='*')f++; fun(s,f,t); printf("Thestringafterdeleted: \n");puts(s); NONO(); } voidNONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*in,*out; inti;chars[81],*t,*f; in=fopen("in.dat","r"); out=fopen("out.dat","w"); for(i=0;i<10;i++){ fscanf(in,"%s",s); t=f=s; while(*t)t++; t--; while(*t=='*')t--; while(*f=='*')f++; fun(s,f,t); fprintf(out,"%s\n",s); } fclose(in); fclose(out); 第4套综合实验 1、程序填空题 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。 函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。 例如: a所指变量s中的学号、姓名和三门课的成绩依次是: 1001、“ZhangSan”、95、80、88,修改后输出t中的数据应为: 1002、“LiSi”、96、81、89。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构。 #include #include structstudent{ longsno; charname[10]; floatscore[3]; }; /**********found**********/ __1__fun(structstudent*a) {inti; a->sno=10002; strcpy(a->name,"LiSi"); /**********found**********/ for(i=0;i<3;i++)__2__+=1; /**********found**********/ return__3__; } main() {structstudents={10001,"ZhangSan",95,80,88},*t; inti; printf("\n\nTheoriginaldata: \n"); printf("\nNo: %
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最后 一次 信息技术 综合 实验