计算机二级南开百题 程序填空题要点 联系客服

发布时间 : 星期日 文章计算机二级南开百题 程序填空题要点更新完毕开始阅读4513e97da26925c52cc5bfa9

程序填空题

1.给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长0; j--) /**********found**********/ ss[i][j]='*'; }} 2.给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长

int fun(char (*ss) ___1___, int *n) /**********found**********/ if(i==0) *n=___2___; /**********found**********/ ___3___;

第一空: [N] 第二空:len 第三空 *n=len

3.函数fun的功能是:把形参a所指数组中最大值放在a[0]中,接着求出a所指数组中最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中次小值放在a[3]中;其余依次类推。例如:若a所指数组中的数组最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5.形参n中存放a所指数组中数据的个数. /**********found**********/ void fun(int ___1___, int n) for (i=0; i

第一空:*a或a[N] 第二空:2 第三空:i+1

4.给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制过程中,把复制的内容输出到终端屏幕.主函数中源文件中入在变量sfname k ,目标文件名放在变量tfname中. /**********found**********/

if((fs=fopen(source, ___1___))==NULL) /**********found**********/ while(!feof(___2___))

/**********found**********/ fputc(ch,___3___);

第一空: ”r” 第二空:fs 第三空:ft

5.用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所表倍数;依次类推,直到所找的下一个数等于n为止。这样会得一个序

列:2,3,5,7,11,13,17,19,23??函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。

/**********found**********/

for (j=a[i]*2; j<=n; j+=___1___) /**********found**********/ while (___2___==0)

/**********found**********/ if (a[i]!=___3___)

第一空:a[i] 第二空:a[i] 第三空0

6.函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。例如:当a=3,b=5,c=4时,中数为4

/**********found**********/

t = (a>b) ? (b>c? b :(a>c?c:___1___)) : ((a>c)?___2___ : ((b>c)?c:___3___)); 第一空:a 第二空:a 第三空:b 7.函数fun的功能是:计算

x)?1?x?x22!???xnf(n!

直到

xn?10?6n!。若x=2.5,函数值为:12.182494。 /**********found**********/ f = 1.0+___1___;

/**********found**********/ t *= x/___2___;

/**********found**********/ f += ___3___;

第一空:x 第二空:n 第三空:t

8.给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长n[j]) ___2___; /**********found**********/ strcpy(ss[k],___3___);

第一空:i+1 第二空:k=j 第三空:t

9.函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。

{/**********found**********/ max = min = ___1___;

/**********found**********/ if (max<___2___)

/**********found**********/ if (min>___3___)

第一空:a[i] 第二空:a[j] 第三空:a[j]

10.给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。

/**********found**********/ max= ___1___;

/**********found**********/

if(max.age<___2___) max=std[i]; /**********found**********/

printf(\ Age : %d\\n\ ___3___,max.age);}

第一空:*std 第二空:std[i].age 第三空:max.name 11.给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。

/**********found**********/ t2[j]=s[i]; ___1___; } /**********found**********/ for(i=0; i

for(i=0; i<___3___; i++) s[k+i]=t2[i];} 第一空:j++; 第二空:s[i]=t1[i];第三空:j

12.函数fun的功能是:把形参a所指数组中的奇数原顺序依次放到a[0]、a[1]、a[2]、??中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中数据为:9、1、3、5、7,返回值为5。

/**********found**********/ if (a[i]%2==___1___){ /**********found**********/ a[j] = a[i]; ___2___; } /**********found**********/ return ___3___;}

第一空:1 第二空:j++ 第三空j 13.给定程序中,函数fun的功能是:对形参s所指字符串下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

/**********found**********/ ___1___;

/**********found**********/

for(j=___2___+2 ; j

第一空:t=i 第二空:i 第三空 0

14.给定函数int MySearch(char *str,char *s)的功能是:统计字符串s在字符串str中出现的次数。例如,若输入字符串”12 123 12345”和”23”,则应输出2(表示字符串”23”在字符串”12 123 12345”中出现了两次)。若输入字符串”33333”和”33”,则应输出4(表示字符串”33”在字符串”33333”出现了四次)。

/***************found***************/ if( ( p = strstr( str, s ) ) != ___1___ )

/***************found***************/ ___2___;

/***************found***************/ return( ___3___ );}

第一空:NULL 第二空:*str=0 第三空:n

15.给定函数 char *MyDelete(char *str,char c)的功能是:在字符串str中删除变量c中的字符,有几个删几个,并返回所删字符的个数。例如,若输入字符串”ab abc bcdef”和字符?b?,则应输出字符串”a ac cdef”和3(表示删了3个字符?b?)。

/***************found**************/ { str[ j ]= str[i]; ___1___; } /***************found**************/ str[j]=___2___ ;

/***************found**************/ return( ___3___ );}

第一空:j++ 第二空:0 第三空:k

16.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据从小到大顺序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点仍保持从小到大顺序排序。 /**********found**********/ s->data=___1___;

/**********found**********/ q=___2___;

/**********found**********/ q->next=___3___;}

第一空:x 第二空:p 第三空:s

17.给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。 /**********found**********/

if((fs=fopen(source, ___1___))==NULL) /**********found**********/ while(!feof(___2___))

/**********found**********/ fputc(ch,___3___);

第一空: “r” 第二空:fs 第三空:ft

18.给定程序中,函数fun的功能是:读自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。 /**********found**********/

fprintf(___1___,\/**********found**********/ ___2___;

/**********found**********/

if((fp=fopen(___3___,\

第一空:fp 第二空:fclose(fp) 第三空:fname

19.给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。

/**********found**********/ void WriteText(FILE ___1___) /**********found**********/ fputs(___2___,fw);

/**********found**********/ printf(\

第一空:*fw 第二空:str 第三空:str

20.给定程序的功能是:调用fun函数建立班级通讯录。通讯录中记录每个学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到myfile5.dbf的二进制文件中。 /**********found**********/ int fun(___1___ *std){

/**********found**********/ ___2___ *fp; int i;

/**********found**********/

fwrite(&std[i], sizeof(STYPE), 1, ___3___);

第一空:STYPE 第二空:FILE 第三空:fp 21.给定程序的功能是用冒泡法对6个字符进行排序 /**************found**************/ if(strcmp(*(pstr+i),___1___)>0) /**************found**************/ pstr[i] = ___2___ ;

/**************found**************/ *(pstr + j) = ___3___ ; }} }}

第一空:*(pstr+j)或pstr[j] 第二空:*(pstr+j)或pstr[j] 第三空:p

22.给定程序的功能是将十进制整数m转换成k进制(2≤k≤9)数的数字输出。例如,如果输入8和2,则应该输出1000。

/**********found**********/ aa[i] = ___1___;

/**********found**********/ m /= ___2___; }

/**********found**********/ printf( \第一空;m%k 第二空:k 第三空:aa

23.给定程序的功能是将未在字符串s中出现、而在字符串t中出现的字符,形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,但是去掉重复字符。例如:当s=”12345”,t=”24677”,u中的字符为”67” /************found************/ if (t[i] == u[k]) ___1___ ; if (k>=ul)

/************found************/ u[ul++] = ___2___ ; /************found************/ ___3___='\\0';}

第一空:break 第二空:t[i] 第三空:u[ul]

24.给定程序的功能是将在字符串s中出现、而未在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符。例如:当s=”112345”,t=”2467”时,u中的字符串为”1135”。

/************found************/ if (s[i] == t[j]) ___1___ ; /************found************/ *u++ = ___2___; } /************found************/ ___3___ = '\\0';}

第一空:break 第二空:s[i] 第三空:*u

25.给定程序的功能是将在字符串s中下标为奇数位置上的字符,紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中字符出现的逆序排列(注意0为偶数)。例如:当s=”23516”,t=”1133”。 /************found************/ if(sl%2) sl-=2; ___1___ sl--; /************found************/ for (i=sl, j=___2___; i>=0; i-=2) /************found************/ t[2*j +1] = ___3___ ;

第一空:else 第二空:0 第三空:s[i]或t[2*j]

26.给定程序的功能是将大写字母转换对应的小写字母的第五个字母;若小写字母v~z,使小写字母的值减去21。转换后的小写字母作为函数值返回。例如,若形参使字母A,则转换为小写字母f;若形参为字母W,则转换为小写字母b。

/**************found**************/ c=c+___1___;

/**************found**************/ return ___2___ ;}

/**************found**************/ c2=fun(___3___);

第一空:5 第二空:c 第三空:c1

27.给定程序的功能是计算s=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+ …f(n)的值。例如,当n为5时,函数值应该为:10.407143。

┌(x+1)/(x-2) x>0

f(x)= ┤0 x=0或x=2

└(x-1)/(x-2) x<0

/************found************/ return ___1___;

/************found************/ for (i= -n; i<=___2___; i++)

/************found************/ return ___3___;}

第一空: 0 第二空:n 第三空:s

28.给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。例如输入圆的半径值为:19.527输入为:s=598.950017。 {/**********found**********/ return 3.14159 * ___1___ /2.0;} /**********found**********/ { ___2___ x;

/**********found**********/ scanf ( \

第一空:r*r 第二空:float 第三空:&x

29.给定程序的功能是将既在字符串s中出现、又在字符串t中出现的字符形成一个新字符串放在u中,u中字符按原字符串中字符顺序排列,但去掉重复字符。例如:当s=”42562”,t=”34”,u中的字符串为:”5”。 /************found************/ if (s[i] _1_ u[k]) break; /************found************/ u[ul++]=___2___ ; }} /************found************/ ___3___ = '\\0';}

第一空:== 第二空:s[i] 第三空:u[ul]

30.给定程序的功能是从字符串s尾部开始,按逆序把相邻的两个字符交换位置,并一次把每个字符紧随其后重复出现一次,放在一个新串t中。例如:当s中的字符串为:“12345”时,则t中的字符串应为:“4455223311”。

/************found************/ sl = ___1___;

/************found************/ ___2___;}

/************found************/ scanf(\

第一空:strlen(s) 第二空:t[j]=0 第三空: s 31.给定程序的功能是将仅在字符串s中出现而不在字符中t中出现的字符,和仅在字符串t中出现而不在字符串s中出现的字符,构成一个新字符串放在u中,u中的字符按原字符串s中字符顺序排列,不去掉重复字符。例如:当s中字符串为:“112345”时,t=“24677”时,u中的字符串应为:“1135677”。 /************found************/ if (j ___1___ tl)

/************found************/ if (j ___2___ sl)

/************found************/ ___3___ = '\\0';}

第一空:== 第二空:=== 第三空:*u

32.给定程序的功能是将在字符串s中出现、而未在字符串t中出现的字符,构成一个新的字符串放在u中,u中字符按原字符串中字符顺序的逆序排列,不去掉重复字符。例如:当s中的字符串为:“112345”时,t=“24677”,u中的字符串应为:“5311” /************found************/ if (s[i] == t[j]) ___1___ ; /************found************/ if(j ___2___ tl) *u++ = s[i]; }

/************found************/ r = ___3___ ;

第一空:break 第二空:== 第三空:up[i]

33.给定程序的功能是计算并输入下列级数的前N项之和S(N),直到S(N+1)大于q为止,q的值通过形参传入

S?N??21?32?43???N?1N例如:若q的值为50.0,则函数值为50.416687。

/************found************/

while (s ___1___ q)

/************found************/ ___2___ ; }

/************found************/ ___3___ ;}

第一空:<= 第二空:n++; 第三空: return s

34.给定程序的功能是求K!(K<13),并通过函数名传回主函数。例如:若K=10,则应该输入:3628800 。 {/************found************/ if (k ___1___ 0)

/************found************/ return (k*fun(___2___)); /************found************/ else if ( k ___3___ 0 )

第一空:> 第二空:k-1 第三空:==

35.给定程序的功能是读入一个整数K(2≤k≤10000),打印它的所有质因子(就是所有为素数的因子)。例如:若输入整数:3410,则应输出:2、5、11、13。 /************found************/ if (!( n ___1___ i )) {

/************found************/ m = 0; ___2___ ; }

/************found************/ scanf( \

第一空:% 第二空:break 第三空:&k

36.给定程序的功能是分别统计字符串中大写字母和小写字母的个数。 #include

/**********found**********/ ___1___ ;

/**********found**********/ ___2___ ;

/**********found**********/

printf( \ lower = %d\\n\第一空: (*a)++ 第二空:(*b)++ 第三空:upper,lower 37.给定程序的功能是判断字符ch是否与串str中的某个字符相同;若相同,什么也不做,若不同,则插在串的最后。

/**********found**********/ if ( *str ___1___ ch )

/**********found**********/ ___2___ = 0; }}

/**********found**********/ fun(___3___) ;

第一空:!= 第二空:*(str+1)或*(++str) 第三空: s,c

38.给定程序的功能是根据形参m(2≤m≤9),在二维数组中存放一张m行m列的表格,由main()函数输出。例如:若输入 3 则输出: 1 2 3