第一套
1. 1.程序填空
程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;
第二处for(i=0;i
22程序修改
给定程序MODI1.C中函数fun的功能是:在p 所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。/**found**/
q=p+i;
/**found**/
while(q>p)
3程序设计
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b 所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h)
{int i,j=0;
for(i=0;i if((a[i].s>=1&&a[i] .s<=h) b[j++]=a[i]; return j; } 第二套 1. 1.程序填空 给定程序中已建立一个带有头结点的单向链表,链表中的各结点 按数据域递增有序连 接。函数fun的功能是: 删除链表中数据域值 相同的结点,使之只保 留一个。 第一处 free(q); 第二处 q=p->next; 第三处 q=q->next; 2. 程序修改 给定程序MODI1.C中函 数fun的功能是:用选 择法对数组中的n各元 素按从小到大的顺序 进行排序。 /**found**/ p=j; /**found**/ p=i; 3. 程序设计 请编写一个fun函数, 它的功能是:求出1到 m之间(含m)能被7 或11整除的所有整数 放在数组a中,通过n 返回这些数的个数。 void fun(int m,int *a,int *n) { int i; *n=0; for(i=7;i<=m;i++) if((i%7==0)||(i%11= =0)) a[(*n)++]=i; } 第三套 1. 程序填空 函数fun的功能是:逆 置数组元素是的值。例 如:若a所指数组中的 数据依次为:1、2、3、 4、5、6、7、8、9,则 逆置后依次为:9、8、 7、6、5、4、3、2、1。 形参n给出数组中数组 中数据的个数。 第一处 for(i=0;i 第二处 a[i]=a[n-1-i]; 第三处 a[n-i-1]=t; 2程序修改 给定程序MODI1.C中函 数fun的功能是:将一 个由八进制数字字符 串组成的字符串转换 为与其面值相等的十 进制整数。规定输入的 字符串最多只能包含5 位八进制数字字符。 /**found**/ n=*p-‘0’; /**found**/ n=n*8+*p-‘0’; 3. 程序设计 学生的记录由学号和 成绩组成,N名学生的 数据已在主函数中放 入结构体数组s中,请 编写了函数fun,它的 功能是:函数返回指定 学号的学生数据,指定 的学生号在主函数中 输入,若没有找到指定 学号,在结构体变量中 给学号置空串,给成绩 置-1,作为函数值返 回。(用于字符串比较 的函数是strcmp)。 STREC fun(STREC*a,char *b) { STREC c; Int i; c.num[0]=’\0’; c.s=-1; for(i=0;i if(strcmp(a[i].num, b)==0) {strcpy(c.num,a[i]. num); c.s=a[i].s;break;} return c; } 第四套 1. 1. 程序填空 给定程序中,函数fun 的功能是:在带有头结 点的单向链表中,查找 数据域中值为ch的结 点。找到后通过函数值 返回该结点在链表中 所处的顺序号:若不存 在值为ch的结点,函 数值返回0. 第一处 while(p!=0) 第二处 if(p->data==ch)retu rn n; 第三处 k=fun(head,ch); 2. 程序修改 给定程序MODI1.C中函 数fun的功能是:删除 p所指字符串的所有空 白字符(包括制表符、 回车符及换行符)。输 入字符串时用‘#’结 束输入。 /**found**/ for(i=0,t=0;p[i];i+ +) /**found**/ c[t]=’\0’; 3. 程序设计 请编写一个函数fun, 将ss所指字符串中所 有下标为奇数位置上 的字母转换为大写(若 该位置上不是字母,则 不转换)。 void fun(char *ss) { int i; for(i=1;i );i+=2) {if(ss[i]>=’a’ &&ss[i]<=’z’) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数fun 的功能是:计算下式前 n项的和作为函数值返 回。例如:当形参n的 值为10 的时,函数返 回:9.6125588。 第一处 s=0; 第二处 for(i=1;i<=n;i++) 第三处 s=s+(2.0*i-1)*(2.0* i+1)/(t*t); 2. 程序修改 给定程序MODI1.C中函 数fun的功能是:统计 substr所指字符串在 str所指字符串中出现 伯次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==’ \0’) 3. 程序设计 请编写一个函数fun, 它的功能是:根据以下 公式求JI的值(要求 满足精度0.0005,即某 项小于0.0005时停止 送代):程序运行后, 如果输入精度为0.0005,则程序输出为3.14…。 double fun(double eps) { double s=1,t=1./3; int n=1; while(t>=eps) {s+=t;n++;t=t*n/(2. 0*n+1) ;} return(s*2.0); } 第六套 1. 程序填空 给定程序中,函数fun 的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。 第一处t[j]=s[i];j++; 第二处for(i=0;i t[j+i]=p[i]; 第三处 t[j+k]=0; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:将s 所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指定字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。 /**found**/ while(*w) /**found**/ if(*r==*p) 3. 程序设计 函数fun的功能是:将s所指字符串中ASCII 值为奇数的字符删除,串中剩余字符形成一个新串放在t所指定的数组中。 void fun(char *s,char t[]) { int i,j=0; for(i=0;i if(s[i]%2==0)t[j++ ]=s[i]; t[j]=0; } 第七套 1. 1.程序填空 程序通过定义学生结 构体变量,存储了学生 的学号、姓名和三门课 的成绩。函数fun的功 能是将形参a所指结构 体变量s中的数据进行 修改,并把a中地址作 为函数值返回主函数, 在主函数中输出修改 后的数据。 第一处struct student * fun(struct student*a) 第二处 for(i=0;i<3;i++) a->score[i]+=1; 第三处 return a; 2. 程序修改 给定程序 MODI1.C中函数fun的 功能是:从N个字符串 中找出最长的那个串, 并将其地址作为函数 值返回。各字符串在主 函数中输入,并放在一 个字符串数组中。 /**found**/ char *fun(char (*sq)[M]) /**found**/ return sp; 3. 程序设计 函数fun的功能是:将 a、b中的两位正整数合 并形成一个新的整数 放在c中。合并的方式 是:将a中的十位和个 位依次放在变量c的百 位和个位上,b中的十 位和个位数依次放在 变量c的十位和千位 上。 #include void fun(int a,int b,long *c) { *c=(b%10)*1000+(a /10)*100+(b/10)*10+ a%10; } 第八套 1. 程序填空 函数fun的功能是:将 形参观者工所指数组 中的前半部分元素中 的值和后半部分元素 中的值对换。形参n中 存放数组中数据的个 数,若n为奇书,则中 间元素不动。 第一处 p=(n%2==0)?n/2:n/2+ 1; 第二处 a[i]=a[p+i]; 第三处 a[p+i]=t; 2. 程序修改 给定程序MODI1.C中函 数fun的功能是:把主 函数中输入的三个数, 最大的放在a中,最小 的放在c中,中间的放 在b中。 /**found**/ float k; /**found**/ if(*a<*c) 3. 程序设计 学生的记录由 学号和成绩组成,N名 学生的数据已在主函 数中放入结构体数组s 中,请编写了函数fun, 它的功能是:把分数最 高的学生数据放在b所 指的数组中,注意:分 数最高的学生可能不 止一个,函数返回分数 最高的学生的人数。 int fun(STREC *a,STREC *b) { int i,max=a[0].s,n=0;