1、第01套: 给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去 除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回 所指变量。 解题思路: 一:10。二:0。三:x。 一:if (n=0)。二:语句后缺少分号给定源程序: long fun ( char *p) int i, len, t; long x=0; len=strlen(p); if(p0=-) t=-1; len-; p+; else t=1; return x*t; 第02套: 给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本 文件中,再用字符方式从此文本文件中逐个
2、读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。 一:FILE *。二:fp。三:ch。一:sj+=si;。 二:sj=0;. void fun(char sN, char *b) int i,j,n=0; for(i=0; i N;i+) for(j = 0 ; j 。 三:fwrite。 一::p=s;。 二::while(*p+);。 参考答案: void fun( int *a, int *b) int i, j ; for(i = 0 ; i M ; i+) bi = 0 ; for(i = 0 ; i 10) bM - 1+ ;
3、else bj+ ; double rnd() static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return(double)r/m); 第05套: 给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本 文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将 字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 一:FILE *。 二:fclose(fp)。 三:fp。 一: 语句最后缺少分号。 二: 应该使用方括号,而不是圆括号。 int fu
4、n(int a, int n) int i, j = 1, k = a0 ; for(i = 1 ; i n ; i+) if(k != ai) aj+=ai ; k = ai ; aj = 0 ; return j ; 第06套: 给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正 确时, 程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000 一:double。 二:f1。 三:f2。 一:char *fun(char *s,char *t) 二:ss+;。 三:tt+;。 void fun1(char *w) int
5、 i; char t; t=w0; for(i=0;istrlen(w)-1;i+) wi=wi+1; wstrlen(w)-1=t; void fun(char *w, int m) int i; for(i = 0 ; i am) m=k;。 unsigned fun ( unsigned w ) if(w10000) w %= 10000 ; else if(w1000) w %= 1000 ; else if(w100) w %= 100 ; else if(w10) w %=10 ; return w ; 第08套: 给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号
6、、 姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 一:STU。 二:scorei。 三:&std。 一:条件判断缺少圆括号二:判断相等的符号是=。 int fun ( int aN, int n ) int i, j; for(i = 0 ; i N ; i+) for(j = 0 ; j = i; j+) aij *= n ; 第09套: 给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点
7、数据域从头至尾的数据为:2、4、6、8、10。 一:p.next。 二:q。 三:p.next。 一:while(*s)。 二::s+;。 void fun(int *w, int p, int n) int i, j = 0, bN ; for(i = p + 1 ; i n ; i+) bj+ = wi ; for(i = 0 ; i = p ; i+) bj+ = wi ; for(i = 0 ; i next。 二:0。 三:r。 一:r=t;。 二::if(*r=0)。 #include #define M 3 #define N 20 void fun(char aMN, char
8、 *b) /* 以下代码仅供参考 */ int i; *b=0; for(i = 0 ; i M ; i+) strcat(b, ai) ; 第12套: 给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中 从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次 为:10、8、6、4、2。 一:NODE *。 二:next。 三:r。 一:if(i%2 | si%2=0)。 二::tj=0;。 void fun(int (*s)10, int *b, int *n, int mm, int nn) /* 以下代码仅供参考 */ int i,j,np=0
9、; /* np用作b数组下标 */ for(i = 0 ; i nn ; i+) for(j = 0 ; j next。 二:p-next。 三:(或=)。 一:p=h-next;。 二: :p=p-next, void fun(int (*s)10, int *b, int *n, int mm, int nn) int i, j, k ; for(i = 0 ; i mm ; i+) for(j = 0 ; j next; 二:p=p-next; int fun(char *str) int i, j = strlen(str) ; for(i = 0 ; i s; STREC *p; p
10、=h-next; while(p) if(p-smax ) max=p-s; p=p-next; return max; STREC * creat( double *s) STREC *h,*p,*q; int i=0; h=p=(STREC*)malloc(sizeof(STREC);p-s=0; while(is=si; i+; p-next=q; p=q; /* 宏为世纪教育 */ p-next=0; return h; outlist( STREC *h) STREC *p; p=h-next; printf(head); do printf(-%2.0f,p-s);p=p-next
11、; while(p!=0); printf(nn); 第16套: 给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的 长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串 数组中共有M个字符串,且串长N。 一:ssi。 二:n+j。 三:1。 一:关键字int错写成INT。 二:该行括号没有配对,所以只要加上一个右括号即可。 int fun(char *s,int num) char ch ; int i, j ; for(i = 1 ; i 6 ; i+) for(j = i + 1 ; j 6 ; j+) if(*(s + i) p)。 nt f
12、un( STREC *a,STREC *b,int l, int h ) int i,j = 0 ; for(i = 0 ; i = l & ai.s = h) bj+ = ai ; return j ; 第18套: 给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序 前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如,s所指字符串为:asd123fgh543df,处理后新字符串为:asdfghdf123543。 一:si。 二: k。 三:0。 一:while(*w)。 二:if错写成If。 void fun(char *s, char t) int i
13、, j = 0 ; for(i = 0 ; i scorei。 三:a。 一:char *fun(char (*sq)M)。 二::return sp;。 void fun(int a, int b, long *c) *c = (b%10)*1000+(a/10)*100+(b/10)*10+a%10; 第20套: 给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定 所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平 均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均 值和移动后的数据。 例如,有10个正数:46 30 32
14、40 6 17 45 15 48 26,平均值为: 30.500000 一:N。 二:j+。 三:i是while循环体的控制变量,每做一次循环均要加1。 一:numk=0;。 二:switch(*s)。 int fun ( int aMN ) int tot = 0, i, j ; for(i = 0 ; i N ; i+) tot += a0i ; tot += aM-1i ; for(i = 1 ; i M - 1 ; i+) tot += ai0 ; tot += aiN-1 ; return tot ; 第21套: 给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规
15、定 所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平 均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均 值和移动后的数据。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为: 30.500000 一:s/N。 二:j+。三:-1。 一,在include前漏写了#。 二: upfst(char *p)。 |double fun ( int wN ) int i, j, n=0; double sum=0; for ( i =0; iN; i+ ) sum+=w0i+wN-1i; n+=2; for ( i =1
16、; iN - 1; i+ ) sum +=wi0+wiN-1; n+=2; return sum/n; 第22套: 给定程序中,函数fun的功能是:将自然数110以及它们的平方根写到名为 myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果。 一: fp。 二: fclose(fp)。 三:文件名,所以本处只能写文件名变量fname或者直接给出文件名myfile3.dat。 一:for循环的终止值应该n或者是=n-1。 二:p=i;。 void fun(int a, int b, long *c) *c=(b%
17、10)*1000+(a%10)*100+(b/10)*10+(a/10); 第23套: 给定程序中,函数fun的功能是:找出NN矩阵中每列元素中的最大值,并按 顺序依次存放于形参b所指的一维数组中。 一:a0i。 二:。 三:x,y。 一:,所以应定义为int *x,int *y。 二t=*x;*x=*y;*y=t;。 int fun(int lim, int aaMAX) int i,j,k=0; for(i=2;i=lim;i+) for(j = 2 ; j (i/2) aak+ = i; return k; 第24套: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函
18、 数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数 进行输出。 例如:传给形参a的数据中,学号、姓名、和三门课的成绩依次是:10001、 ZhangSan、95、80、88,修改后的数据应为:10002、LiSi、96、81、89。 #。 一:struct student。 二:a.name。 三:a.scorei。 一条件语句中的小写p错写成大写P了。 二:: ai=ai+1;。 int fun( STREC *a, STREC *b ) int i, j = 0, min=a0.s ; for(i = 0 ; i ai.s) j = 0 ; bj+ = ai ;
19、 min = ai.s ; else if(min = ai.s) bj+ = ai ; return j ; 第25套: 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入 结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据, 作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 一:STU。 二:stui.num。 三:stdi。 一:语句后缺少分号。 二:if(*r=0)。 void fun(char *s, char t) int i, j = 0 ; for(i = 0 ; i strlen(s); i+) if(si %
20、 2) tj+ = si ; tj = 0 ; 第26套: 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递 增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一 个。 一q。 二next。 三: next。 一:语句后缺少分号。 二:p = i;。 #include #define M 100 void fun ( int m, int *a , int *n ) int i ; *n=0 ; for(i=7 ; i=eps) s+=t; n+; t=t*n/(2.0*n+1); return (s*2.0); 第28套: 给定程序中,函数fun的功能
21、是:统计形参s所指字符串中数字字符出现的次 数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字 符串为:abcdef35adgh3kjsdf7。输出结果为:4。 一:si。 二:9。 三:*t=n。 一: t=*x;*x=y;。 二为return(t);。 void fun (int *a, int *n) int i ; *n = 0 ; for(i = 7 ; i no。 二:-name。 三:&t。 一: 第二个变量定义的保留字double写错。 二: 变量x0错写成xo了。 double fun( STREC *a, STREC *b, int *n ) doub
22、le t=0 ; int i ; *n = 0 ; for(i = 0 ; i N ; i+) t = t + ai.s ; t = t / N ; for(i = 0 ; i t) b(*n)+ = ai ; return t ; 第30套: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函 数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修 改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、 和三门课的成绩依次是:10001、ZhangSan、95、80、88,则修改后输出b中的 数据应为:10002、LiSi、95、8
23、0、88。 。 一:a。 二:b.name。 三:scorei。 一::sj+=si;。 二::sj=0;。 void fun( char *a ) char *p,*q; int n=0; p=a; while(*p=*) n+; p+; q=a; while(*p) *q=*p; p+;q+; for(;n0;n-) *q+=*; *q=0; 第31套: 给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按 ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符 数组中,形成一个新串。 例如,形参s所指的字符串为:baawrskjghzlicda,执
24、行后p所指字符数组中 的字符串应为:aachjlsw。 第一处: t=i。 第二处: i。 第三处: 0。 第一处: while(fabs(t)=num)。 第二处: t=s/n;。 参考答案: void fun (char a, char b, int n) strncpy(b, a, n) ; bn = 0 ; /* 宏为世纪教育 */ strcat(b, a + n + 1) ; 第32套: 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超 过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共 有N个字符串,且串长小于M。 请在程序的下划线处
25、填入正确的内容并把下划线删除, 使程序得出正确的结 果。 第一处: M。 第二处: N。 第三处: 0(或0)。 第一处: t应为1。 第二处: 根据公式/2得出,所以返回时应原有s的基础上乘以2作为返回值。 串前导的*号数。 参考答案: void fun( char *a, int n ) /* 以下代码仅供参考 */ int i=0,j,k=0; while(ak=*) k+; /* k为统计*字符个数 */ if(kn) i=n;j=k; /* 以下完成将下标为k至串尾的字符前移k-n个位置 */ for(; aj !=0 ; j+) ai+=aj; ai = 0; 第33套: 给定程序
26、的功能是:调用函数fun将指定源文件中的内容复制到指定的目标 文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复 制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放 在变量tfname中。 第一处:要求打开一个读方式的源文件,因此可以填上r或r+。打开读文件操作的流是fs。 第二处:用while循环来判断源文件是否已读到文件结束符,int feof(FILE *stream),因此,此处只能填写fs。 第三处:把已经读取的字符写入目标文件中,打开写文件操作的流是ft,因此,此处只能填写ft。 解题思路: 第一处:判断相等的条件是=。 第二处:整除
27、的符号是/。 参考答案: void fun(int a, int b, long *c) *c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10); 第34套: 用筛选法可得到2n(n10000)之间的所有素数,方法是:首先从素数2开 始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数 表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下 一个数等于n为止。这样会得到一个序列: 2,3,5,7,11,13,17,19,23, 函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值 返回。 请在程序的下划线处
28、填入正确的内容并把下划线删除,使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 解题思路: 第一处:ai。 第二处: ai。 第三处: 0。 第一处:变量y错写成Y。 第二处:给变量d进行赋值,所以应改为:d=a-i;。 参考答案: double fun(int n) int i; double sum=0.0; for(i=1; i=n; i+) if(i%5 = 0 | i%9 = 0) /* 被5或9整除 */ sum+=1.0/i; return sum; 第35套: 给定程序中,函数fun的功能是建立一个NN的矩阵
29、。 矩阵元素的构成规律 是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值 全部为3,依次类推。例如,若N=5,生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 第一处: N。 第二处: i。 第三处: i+1。 第一处: aai=m%k;。 第二处printf(%d,aai-1);。 参考答案: fun(char(*a)81,int num,char *max) int i,k=0,maxlen; /* k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长 */ maxlen=strlen(
30、ak); for(i=1;i maxlen) maxlen = strlen(ai) ; k = i ; *max=ak; 第36套: 给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数, 存放在形参n所指的存储单元中。 第一处*n。 第二处: next。 第三处: head。 第一处: Null应NULL。 第二处: if(*r=*p)。 参考答案: void fun(char *s, char t) int i, j = 0 ; for(i = 0 ; i strlen(s) ; i += 2) if(si % 2 = 0) tj+ = si ; tj = 0 ; 第3
31、7套: 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参 substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串 数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1, s2)的功能是在 s1串中查找s2子串,若没有,函数值为0,若有,为非0。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 第一处: N。 第二处substr。 第三处: 0。 第一处: fun(int x,int y, int z)。 第二处:
32、 程序中三个数的最小公倍数是用j处理的,所以应返回j的值。 参考答案: void fun( char *a, int n,int h,int e ) char *p=a ; int j=0,len=0; while(*p) p+; len+; while(jlen-h-e) aj=ah+j; j+; aj=0; 第38套: 函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a0、 a1、a2、中,把偶数从数组中删除,奇数个数通过函数值返回。例如: 若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a 所指数组中的数据为:9、1、3、5、7,返回值为5。
33、请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 第一处应填:1。 第二处应填:j+。 第三处:应填:j。 第一处应改为:t=a;a=b;b=t;。 第二处:应改为:return(b);。 参考答案: void fun( char *a ) int j =0 ; char *p=a; while(*p) if(*p != *) aj+=*p ; p+ ; aj=0; 第39套: 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长 超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符 串,且串长小于M。 请在程序的下划线处填入