四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日)
(第一套) (60分钟)
一、程序调试题(40分)
磁盘上有一程序test1-1.c,其中函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长 请改正程序中的错误 ,使程序能得出正确的结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下: # include void fun(char (*ss)[N]) { int i,j,k=0,n,m,len; for(i=0;i for(i=0;i { m=n;len=strlen(ss); for(j=len;j>=0;j--) ss[i][m--]=ss[i][j]; for(j=0;j void main() { char ss[M][N]; int i; FILE *fp; fp=fopen(\ if(fp==NULL) { printf(\ exit(0); } for(i=0;i printf(\ for(i=0;i printf(\ printf(\ 第 1 页 共 16 页 四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日) fun(ss); for(i=0;i printf(\ fclose(fp); } 二、编写程序test1-2.c(60分) 程序的功能是:删除一个字符串中指定的字符。 编写fun函数,其功能是删除一个字符串中指定的字符。假设字符串为:turbo c and borland c++,指定要删除的字符为n,则删除后的字符串变为:turbo c ad borlad c++。如果输入的字符在字符串中不存在,则字符串照原样输出。同一字母的大、小按不同字符处理。 在main函数中输入一个字符串(可以有空格)和一个要删除的字符,调用函数fun,最后输出结果。 第 2 页 共 16 页 四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日) (第二套) (60分钟) 一、程序调试题(40分) 磁盘上有一个名为test2-1.c的C程序,其中函数fun的功能是:用下面的公式求?的近似值,直到最后一项的绝对值小于指定的数(参数num)为止: ?411?1?1??357?? 例如,程序运行后,输入0.0001,则程序输出3.1414 。 请改正程序中的错误,使程序能得出正确的结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下: # include float n,t,pi; t=1;pi=0;n=1;s=1; while(t>=num) { pi=pi+t; n=n+2; s=-s; t=s%n; } pi=pi*4; return; } main() { float n1,n2; FILE *fp; fp=fopen(\ if(fp==NULL) { printf(\ exit(0); } printf(\ scanf(\ n2=fun(); printf(\ fprintf(fp,\ fclose(fp); } 二、编写程序test2-2.c(60分) 编写函数fun,其功能是:将形参指针a指向的字符顺序放入形指针c指向的字符串中,再把形参指针b指针的字符串逆序放入形参指针c指向的字符串中。注:不能使用字符串的复制和连接函数。 例如:a指向的字符串为adcb,b指向的字符串为213,则字符串c中的内容为adcb312。 第 3 页 共 16 页 四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日) (第三套) (60分钟) 一、程序调试题(40分) 磁盘上有一个名为test3-1.c的C程序文件,其中函数fun的功能是:将数组a中n个整数进行移动,大于等于0的数放在数组的前面,小于0的数放在后面。 例如:数组中的数为:12 -34 56 -9 -10 25 9 -8 24 90,移动后的结果为:12 56 25 9 24 90 -34 -9 -10 -8 在main函数中,从一文本文件test3-1.in中读取10个整数放入整型数组中,调用函数fun,并输出最后的结果。 请改正程序中的错误,使其能得到正确的结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下: # include int i,j=0,b[20]; for(i=0;i b[j++]=a[i]; for(i=0;i void main() { int a[10],i; char filename[20]; FILE *fp; printf(\ scanf(\ if((fp=fopen(filename,\ printf(\ exit(0); } for(i=0;i<10;i++) fscanf(fp,\ fun(a,10); for(i=0;i<10;i++) printf(\ fclose(fp); } 二、编写程序test3-2.c(60分) 编写函数fun,函数fun的功能是:将字符串s最右边的n个字符赋值到新串t中,若n大于s的长度,则将s复制到t中。注:不能使用字符串的复制函数。 第 4 页 共 16 页 四川省第二十九次计算机二级考试C与C++语言 机试试题(2008年10月19日) 例如:字符串s为abcdefgh,n=5,则字符串t为defgh 。 main函数中输入一字符串s及n的值,调用fun函数并输出结果。 第 5 页 共 16 页