if(max==a[i].s)
b[j++]=a[i];/*找出成绩与max相等的学生的记录,存入结构体b中*/
returnj;/*返回最高成绩的学生人数*/
}
第87套:
(1)程序填空:
下列给定程序中,函数fun的功能是:
从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。
ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)N
(2)k (3)ss[i]
(2)程序修改:
下列给定程序中函数fun的功能是:
逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。
例如,若主函数中a字符串为"aBCDeFgH",b字符串为"Abcd",则c中的字符串应为"aBcdeFgH"。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!
【参考答案】
(1)intk=0;
(2)while(*p||*q)
(3)程序编辑:
规定输入的字符串中只包含字母和*号。
请编写函数fun,其功能是:
除了字符串前导的*号之外,将串中其它*号全部删除。
在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:
****A*BC*DEF*G*******,删除后,字符串中的内容应当是:
****ABCDEFG。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】
voidfun(char*a)
{
inti=0;
char*p=a;
while(*p&&*p=='*')
{a[i]=*p;i++;p++;}
while(*p)
{
if(*p!
='*')
{a[i]=*p;i++;}
p++;
}
a[i]='\0';
}
第88套:
(1)程序填空:
下列给定程序中,函数fun的功能是:
把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:
字符串的长度大于等于2)。
例如,形参s所指字符串为"abcdefgh",执行结果为"ahcbedgf"。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)1
(2)s[k]或*(s+k) (3)c
(2)程序修改:
下列给定程序中fun函数的功能是:
求表达式
s=aa…aa-…-aaa-aa-a
(此处aa…aa表示n个a,a和n的值在1至9之间)
例如,a=3,n=6,则以上表达式为:
s=333333-33333-3333-333-33-3
其值是296298。
a和n是fun函数的形参,表达式的值作为函数值传回main函数。
请改正程序中的错误,使它能计算出正确的结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)longs=0,t=0;
(2)t=t/10;
(3)程序编辑:
编写函数voidfun(char*tt,intpp[]),统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组中。
例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:
33322110000000000000000000
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】
voidfun(char*tt,intpp[])
{
inti;
for(i=0;i<26;i++)
pp[i]=0;/*初始化pp数组各元素为0*/
for(;*tt!
='\0';tt++)
if(*tt>='a'&&*tt<='z')
pp[*tt-'a']++;
}
第89套:
(1)程序填空:
下列给定程序中,函数fun的功能是:
在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回-1。
ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)N
(2)i (3)-1
(2)程序修改:
下列给定程序中函数fun的功能是:
从整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。
规定函数中al放个位数,a2放十位数。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!
【参考答案】
(1)a2=k/10;
(2)returni;
(3)程序编辑:
规定输入的字符串中只包含字母和*号。
请编写函数fun,其功能是:
将字符串尾部的*号全部删除,前面和中间的*号不动。
例如,字符串中的内容为:
"****A*BC*DEF*G*******",删除后,字符串中的内容应当是:
"****A*BC*DEF*G"。
在编写函数时,不得使用C语言提供的字符串函数。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】
voidfun(char*a)
{
while(*a!
='\0')
a++;
a--;/*指针a指向字符串的尾部*/
while(*a=='*')a--;/*指针a指向最后一个字母*/
*(a+1)='\0';/*在字符串最后加上结束标志符*/
}
第90套:
(1)程序填空:
下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)next
(2)t->data (3)t
(2)程序修改:
下列给定程序中函数fun的功能是:
将字符串中的字符逆序输出,但不改变字符串中的内容。
例如,若字符串为"abcd",则应输出:
"dcba"。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)voidfun(char*a)
(2)printf("%c",*a);
(3)程序编辑:
编写函数fun,其功能是:
比较字符串的长度,(不得使用C语言提供的求字符串长度的函数),函数返回较长的字符串。
若两个字符长度相同,则返回第一个字符串。
例如,输入beijingshanghai(为回车键),函数将返回shanghai。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】
char*fun(char*s,char*t)
{
inti,j;
for(i=0;s[i]!
='\0';i++);/*求字符串的长度*/
for(j=0;t[j]!
='\0';j++);
if(i<=j)/*比较两个字符串的长度*/
returnt;/*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/
else
returns;
}
第91套:
(1)程序填空:
下列给定程序中,函数fun的功能是:
逆置数组元素中的值。
例如:
若a所指数组中的数据为:
1、2、3、4、5、6、7、8、9,则逆置后依次为:
9、8、7、6、5、4、3、2、1。
形参n给出数组中数据的个数。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)n/2
(2)i (3)a[n-i-1]或a[n-1-i]
(2)程序修改:
下列给定程序中函数fun的功能是:
将一个由八进制数字字符组成的字符串转换成十进制整数。
规定输入的字符串最多只能包含5位八进制数字字符。
例如,若输入77777,则输出32767。
请改正程序中的错误,使它能得出正确结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。
【参考答案】
(1)n=*p-'0';
(2)n=n*8+*p-'0';
(3)程序编辑:
学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:
函数返回该学号的学生数据,指定的学号在主函数中输入。
若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。
(用于字符串比较的函数是strcmp)。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】
STRECfun(STREC*a,char*b)
{
inti;
STRECstr={"\0",-1};/*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1*/
for(i=0;iif(strcmp(a[i].num,b)==0)/*找到指定学号的学生数据*/
str=a[i];
returnstr;/*返回学生记录*/
}
第92套:
(1)程序填空:
下列给定程序的功能是:
调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回1,失败时返回0。
在复制的过程中,把复制的内容输出到屏幕。
主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)"r"
(2)fs (3)ft
(2)程序修改:
下列给定程序中函数fun的功能是:
将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。
高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数:
8642。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)if(d%2==0)
(2)s/=10;
(3)程序编辑:
函数fun的功能是:
将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为"ABCDEFG123456",其中字符A的ASCII码值为奇数,因此应当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当