国二上机考试习题库(4) 2019-08-01 23:01 { char *lp,*rp; /**********found**********/ lp= __1__ ; rp=s+strlen(s)-1; while((toupper(*lp)==toupper(*rp)) && (lp/**********found**********/ if(lpmain() { char s[81]; printf(\ \ scanf(\ if(fun(s)) printf(\ else printf(\} 30、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:46 32 40 45 48 30 6 17 15 26 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 10 double fun(double *x) { int i, j; double s, av, y[N]; s=0; for(i=0; i for(i=j=0; iav ){ /**********found**********/ y[__2__]=x[i]; x[i]=-1;} for(i=0; i/**********found**********/ if( x[i]!= __3__) y[j++]=x[i]; for(i=0; imain() { int i; double x[N]; for(i=0; i printf(\ printf(\ for(i=0; i31、给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 typedef struct node { int data; struct node *next; 16 } NODE; /**********found**********/ __1__ fun(NODE *h) { NODE *p, *q, *r; p = h; if (p == NULL) return NULL; q = p->next; p->next = NULL; /**********found**********/ while (__2__) { r = q->next; q->next = p; p = q; /**********found**********/ q = __3__ ; } return p; } NODE *creatlist(int a[]) { NODE *h,*p,*q; int i; h=NULL; for(i=0; i { q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL; if (h == NULL) h = p = q; else { p->next = q; p = q; } } return h; } void outlist(NODE *h) { NODE *p; p=h; if (p==NULL) printf(\ else { printf(\ \ do { printf(\ } while(p!=NULL); printf(\ } } main() { NODE *head; int a[N]={2,4,6,8,10}; head=creatlist(a); printf(\ outlist(head); head=fun(head); printf(\ outlist(head); 32、给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 10 /**********found**********/ void fun(char (*ss) __1__, int k) { int i=0 ; /**********found**********/ 17 while(i< __2__) { /**********found**********/ ss[i][k]=__3__; i++; } } main() { char x[N][M]={\ int i; printf(\ for(i=0;i printf(\ for(i=0; i 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 5 typedef struct student { long sno; char name[10]; float score[3]; } STU; void fun(char *filename, long sno) { FILE *fp; STU n; int i; fp = fopen(filename,\/**********found**********/ while (!__1__) { fread(&n, sizeof(STU), 1, fp); /**********found**********/ if (n.sno__2__) break; } if (!feof(fp)) { for (i=0; i<3; i++) n.score[i] += 3; /**********found**********/ fseek(fp, -1L*__3__, SEEK_CUR); fwrite(&n, sizeof(STU), 1, fp); } fclose(fp); } main() { STU t[N]={ {10001,\ {10003,\ {10004,\ {10005,\ int i,j; FILE *fp; fp = fopen(\ fwrite(t, sizeof(STU), N, fp); fclose(fp); printf(\ fp = fopen(\ fread(ss, sizeof(STU), N, fp); fclose(fp); for (j=0; j { printf(\ Name: %-8s Scores: \ for (i=0; i<3; i++) printf(\ printf(\ } fun(\ fp = fopen(\ fread(ss, sizeof(STU), N, fp); 18 fclose(fp); printf(\ for (j=0; j { printf(\ Name: %-8s Scores: \ for (i=0; i<3; i++) printf(\ printf(\ } } 34、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 5 typedef struct student { long sno; char name[10]; float score[3]; } STU; void fun(char *filename) { FILE *fp; int i, j; STU s[N], t; /**********found**********/ fp = fopen(filename, __1__); fread(s, sizeof(STU), N, fp); fclose(fp); for (i=0; i/**********found**********/ if (s[i].sno __2__) { t = s[i]; s[i] = s[j]; s[j] = t; } fp = fopen(filename, \/**********found**********/ __3__(s, sizeof(STU), N, fp); fclose(fp); } main() { STU t[N]={ {10005,\ {10002,\ {10001,\ int i,j; FILE *fp; fp = fopen(\ fwrite(t, sizeof(STU), 5, fp); fclose(fp); printf(\ for (j=0; j { printf(\ Name: %-8s Scores: \ for (i=0; i<3; i++) printf(\ printf(\ } fun(\ printf(\ fp = fopen(\ fread(ss, sizeof(STU), 5, fp); fclose(fp); for (j=0; j { printf(\ Name: %-8s Scores: \ for (i=0; i<3; i++) printf(\ printf(\ } } 35、给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主 19 函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 主函数中输出:m=30.0 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 10 double fun(double x[],double *av) { int i,j; double d,s; s=0; for(i=0; i for(i=0; i if(x[i]<*av && *av - x[i]<=d){ /**********found**********/ d=*av-x[i]; j=__2__;} /**********found**********/ return __3__; } main() { int i; double x[N],av,m; for(i=0; i printf(\ printf(\ printf(\} 36、给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如,s所指字符串为:asd123fgh543df,处理后新字符串为:asdfghdf12543。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include char *fun(char *s) { int i, j, k, n; char *p, *t; n=strlen(s)+1; t=(char*)malloc(n*sizeof(char)); p=(char*)malloc(n*sizeof(char)); j=0; k=0; for(i=0; i { if(((s[i]>='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))) { /**********found**********/ t[j]=__1__; j++;} else { p[k]=s[i]; k++; } } /**********found**********/ for(i=0; i<__2__; i++) t[j+i]=p[i]; /**********found**********/ t[j+k]= __3__; return t; } main() { char s[80]; printf(\ scanf(\ printf(\} 20 共10页: 上一页12345678910下一页 国二上机考试习题库(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决! 下载这篇word文档