}
53◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序中函数fun的功能是:统计带头结点的单向链表中结点的个数,并存放在形参n所指的存储单元中。 【答案】【1】*n【2】 next【3】head 【改错】下列给定程序中函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。 例如,当字符串中的内容为:\,t中内容为:\时,输出结果应是:abcdx。当字符串中的内容为:\,t中内容为:\时,则程序输出未找到信息:not be found!。
【答案】【1】a=NULL;
【2】if(*r==*p)
【编程】函数fun的功能是:将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为:\,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数,但在数组中的下标为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是\。 【答案】
void fun(char*s, char t[]) {
int i,j=0;
for(i=0;s[i]!=′\\0′;i++) if(i%2==0&&s[i]%2==0) t[j++]=s[i]; t[j]=′\\0′
}
54◆◆◆◆◆◆◆◆◆◆◆◆◆◆
【填空】下列给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级人数和学生信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 【答案】【1】STYPE 【2】FILE 【3】 fp
【改错】下列给定程序中函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面。例如,当s中的字符串为\时,则t中的字符串应为:\。
【答案】【1】for ( i=0; i 【编程】函数fun的功能是:将两个两位数的正整数 a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。 例如,当a=45,b=12时,调用该函数后c=4152。 【答案】 void fun(int a,int b,long *c) { *c=b+(a)*10+(b/10)*100+(a/10)*1000; } 55◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】程序通过定义学生结构体数组,存储若干名学生的学号、姓名和3门课的成绩。函数fun的功能是:将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。 【答案】【1】struct student 【2】n-1【3】 a[i].name,a[j].name 【改错】下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。 例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容应为:eABCDFGH。 【答案】【1】q=p+i; 【2】while(q>p) 【编程】学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 例如,输入的分数是60 69,则应当把分数在60~69的学生数据输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。 【答案】 int fun (STREC *a, STREC *b, int l, int h ) { int i,j=0; for(i=0;i if(a[i].s>=l&&a[i].s<=h) b[j++]=a[i]; return j; } 56◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出制定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 【答案】【1】 STU 【2】std[i].num 【3】std[i] 【改错】下列给定函数中函数fun的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为abcdabfab,t所指字符串的内容为ab,则函数返回整数3。 【答案】【1】if(*r= =*p) {r++;p++ ; }【2】if( *r= =′\\0′) 【编程】请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值为偶数的字符删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为ABCDEFG12345,其中字符B的ASCII码值为偶数,字符2的ASCII码值为偶数,都应当删除;其他依此类推,最后t所指的数组中的内容应是ACEG135。 【答案】 void fun(char *s, char t[]) { int i=0; for(;*s!='\\0';s++) if(*s%2==1) t[i++]=*s; t[i]='\\0'; } 57◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。 【答案】【1】std[i].year 【2】std[i] 【3】n 【改错】下列给定程序的功能是:读入一个整数k(2≤k≤10000),输出它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2、3、5、7、11。 【答案】【1】IsPrime(int n) 【2】if(!(n%i)) 【编程】已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。 【答案】 fun(STU a[], STU *s) { int i; *s=a[0]; for(i=0;i } 58◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。 【答案】【1】STU 【2】score[i] 【3】&std 【改错】下列给定程序中,函数fun的功能是:求k!(k<13),所求阶乘的值作为函数值返回。例如,若k=10,则应输出3628800。 【答案】if(k>1) 【编程】程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为: 1 9 7 a= 2 3 8 4 5 6 则返回主程序后a数组中的值应为: 3 9 7 6 9 8 12 15 18 【答案】 void fun(int a[][N],int n) { int i,j; for(i=0;i } 59◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。请在程序的下划线处填入正确的内容并把下画线删除,使程序得出正确的结果。 【1】std[]【2】PERSON 【3】(std) 【改错】给定程序中MODI1.C中函数fun的功能是:将m(1 【答案】【1】 int k,q,i;【2】 pt[i]=str[k][i]; 【编程】下列函数定义了N×N的二位数组,并在主函数中自动赋值。请编写一个函数fun(inta[ ][N]),该函数的功能是:将数组左下半三角元素中的值全部置0。例如a数组值为: 1 9 7 2 3 8 4 5 6 则返回主程序后a数组中的值为: 0 9 7 8 0 0 0 0 0 【答案】 void fun (int a[][N]) { int i,j; for(i=0;i for(j=0;j<=i;j++) a[i][j]=0; } 60◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 【答案】【1】std[0]【2】 std[i].age【3】max.name 【改错】下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给a和b分别输入60和65,输出为:a=65 b=60 【答案】【1】void fun(int *a,int *b) 【2】t=*b;*b=*a;*a=t; 【编程】请编一个函数void fun(int tt[M][N], int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依此放入pp所指的一维数组中。二维数组中的数已在主函数中给出。 【答案】 void fun(int tt[M][N],int pp[N]) { int i,j,max; for(j=0;j max=tt[0][j]; for(i=0;i } 61◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 【填空】程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 【答案】【1】tt 【2】tt.score[i] 【3】std 【改错】下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和 a[1] 中的数对调。 【答案】 【1】void fun(int *a, int n) 【2】m=i; 【编程】编写函数fun,w是一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后n-1位的数作为函数值返回。 例如,w值为5923,则函数返回923;若w值为923,则函数返回23。 【答案】 unsigned fun(unsigned w) { int n=1,j,s=1; unsigned t; t=w; { } for(j=1;j t=t/10; n++;