2012年3月全国计算机等级考试二级C语言上机题库(全)
作为函数值返回。规定,函数中a1放个位数,a2放十位数。
/**found**/ a2=k/10; /**found**/ return i; 3. 程序设计
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。 void fun(char *a) {
char *p=a;
while(*p)p++;p--; while(*p==’*’)p--; p++; *p=0; }
第三十五套 1. 程序填空
给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。 第一处 *n=0;
第二处 p=p->next;
第三处 fun(head,&num); 2. 程序修改
给定程序MODI1.C中函数fun的功能是:求出s所指字符串最后一次出现的t所指字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值NULL。 /**found**/ a=NULL; /**found**/ if(*r==*p) 3. 程序设计
函数fun的功能是:将s所指字符串中除了下标为偶数,同时ASCII指也为偶数的字符外,其余的全部都删除:串中剩余字符所形成的一个新串放在t所指的数组中。
void fun(char *s,char t[ ]) {
int i,j=0;
for(i=0;i 第三十六套 1. 程序填空 函数fun的功能是:进行数字字符转换。若形参ch中是数字字符‘0’—‘9’,则‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,……‘9’转换成 11 ‘0’;若是其他字符则保持不变,并将转换后的结果做 函数值返回。 第一处 char fun(char ch) 第二处 if(ch>=’0’&&ch<=’9’) 第三处 return ‘9’-(ch-‘0’); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:将p所指字符串中所有字符复制到b中,要求复制第三个字符之后插入一个空格。 /**found**/ b[k]=*p; /**found**/ b[k++]=’ ‘; 3. 程序设计 N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,它的功能是:求出平均分,有函数值返回。 double fun(STREC *h) { STREC *p=h->next; double av=0.0; int n=o; while(p!=NULL) { av=av+p->s; p=p->next; n++; } av/=n; return av; } 第三十七套 1. 程序填空 函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放a[0]、a[1]、a[2]……中,把奇数从数组中删除,偶数个数通过函数值返回。 第一处 if(a[i]%2==0){ 第二处 a[j]=a[i];j++; 第三处 return j; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:按以下递推公式求函数值。例如,当给n输出5时,函数值为18;当给n输入3时,函数值为14. /**found**/ fun(int n) /**found**/ if(n==1) 3. 程序设计 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。 2012年3月全国计算机等级考试二级C语言上机题库(全) void fun(char *a,int n) { char *p=a; int j=0; while(*p)p++;p--; while(*p==’*’)p--; p++; while(j 第三十八套 1. 程序填空 给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排列,并输入排序结果。ss所指定字符串数组中共有N个字符串,且串长小于M。 第一处 k=i 第二 if(strlen(ps[k]) 第三处 tp=ps[i];ps[i]=ps[k];ps[k]=tp; 2. 程序修改 已知一个数列从第0项开始的前三项分别是0、0、1以后的各项都是它相邻的前三项之和。给定程序MODI1.C中函数fun的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。 /**found**/ double fun(int n) /**found**/ return sum; 3. 程序设计 请编写函数fun,它的功能是:计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。 double fun(double x,int n) {double s=1.0,y=x; int i; for(i=1;i<=n;i++) { s+=y/(double)jc(i); y*=x; } return s; } 第三十九套 1. 程序填空 给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的 12 数作为函数值返回,在主函数中输出。 第一处 *av=s/N; 第二处 d=*av-x[i];j=i;} 第三处 return x[j]; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:根据整型形参n计算如下公式的值。例如:若n=10,则应输出:0.617977. /**found**/ float fun(int n) /**found**/ for(i=2;i<=n;i++) 3. 程序设计 程序定义了N×N的二维数组,并在主函数中自动赋值,请编写函数fun,它的功能是:使数组右上三角元素中的值乘以m。 int fun(int a[][N],int m) { int i,j; for(i=0;i 第四十套 1. 程序填空 给定程序中,函数fun的功能是:将s所指字符串所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。 第一处 j++; 第二处 s[i]=t1[i]; 第三处 for(i=0;i 给定程序MODI1.C中函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序排列。 /**found**/ for(j=i+1;j<6;j++) /**found**/ *(pstr+i)=*(pstr+j); 3. 程序设计 请编写函数fun,它的功能是:求出ss所指字符串中指定字符个数,并返回次值。 int fun(char *ss,char c) { int cnt=0; char *p=ss; while(*p){ if(*p==c)cnt++; p++; } return cnt; } 第四十一套 1. 程序填空 2012年3月全国计算机等级考试二级C语言上机题库(全) 给定程序中,函数fun的功能是:将形参s所指定字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。 第1处 if(isdigit(*s))sum+=*s-48; 第2处s++; 第3处return sum; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。K的值由主函数传入,若K的值为500.则主函数为4622。 /**found**/ if((k= =0││(k= =0)) /**found**/ } 3. 程序设计 请编写函数fun,它的功能是:求小于形参n同时能被3和7整除的所有自然数之和的平方根,并作函数的返回值。 double fun(int n) { double sum=0.0; int i; for(i=21;i<=n;i++) if((i%3= =0)&&(i%7= =0))sum +=i; return sqrt(sum); } 第四十二套 1 程序填空 给定程序中,函数fun的功能是:将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表节点数据域从头到位的数据为10、4、2、8、6,排序后链表结点数据域从头至尾的数据为2、4、6、8、10. 第1处q=p->next; 第2处while(q) 第3处 p=p->next; 2 程序修改 给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母顺序的后续字母(但Z转化成A,z转换为a),其它字符不变。 /**found**/ while(*s) /**found**/ s++; 3程序设计 void fun(int*w, int p, int n) { int i,j=0,b[N]; for(i=p+1;i for(i=0;i 13 第四十三套 1 程序填空 给定程序中,函数fun的功能是:判定形参a所指的N乘以N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值是1;不是,函数返回值为0.“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 第1处row=colum=0; 第2处 if((row!=colum)││(row!=m1))return 0; 第3处return 1; 2 程序修改 给定程序MODI1.C中函数fun的功能是:根据整型形参m计算如下公式的值。 /**found**/ t=t-1.0/i; /**found**/ return t; 3 程序设计 请编写一个函数,函数的功能是:删除字符串中所有的空格。 int fun(char *str) { char *p=str; int i=0; while(*p){ if(*p!=’ ’)str[i++]=*p; p++; } str[i]=0; } 第四十四套 1 程序填空 给定程序中,函数fun的功能是:将N乘以N矩阵中元素的值按列右移一个位置,右边被移出矩阵的元素绕回左边。 第1处for(i=0;i 给定程序MODI1.C中函数fun的功能是:计算并输出下列级数的前n项的和Sn,直到Sn+1大于q为止,q的值通过形参传入。 /**found**/ s=s+(n+1.0)/n; /**found**/ return t; 3程序编写 编写函数fun,它的功能是:求Fibonacci数列中大于t的最小一个数,结果由函数返回。其中Fibonacci数列F(n)定义为F(0)=0,F(1)=1,F(n)。。。 int fun(int t) { int f0=0,f1=1,f; do 2012年3月全国计算机等级考试二级C语言上机题库(全) {f=f0+f1; f0=f1; f1=f; }while(f 第四十五套 1 程序填空 给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2.。 第1处p=h->next; 第2处if (p= =0) return; 第3处p=q;q=r; 2 程序修改 给定MODI1.Cfun函数的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。 /**found**/ r=t; /**found**/ if(*r= =0) 3 程序设计 请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串,函数fun中给出的语句提供参考。 void fun (char a[M][N]),char *b) {int i;*b=0; for(i=0;i 第四十六套 1 程序填空 给定程序中,函数fun的功能是:将形参s所指字符串所有ASCII码小于97的字符存入形 第1处*(t+n)=*s;n++;} 第2处s++; 第3处return n; 2 程序修改 给定程序MODI1.C中函数fun的功能是:由形参给定n个实数,输出平均值以上(含平均值)的实数个数。 /**found**/ int j,c=0;float xa=0.0; /**found**/ if(x[j]>=xa) 3 程序设计 编写函数fun,其功能是:根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且要求m>n。 p=m!/(n!*(m-n)!) float fun(int m, int n) { float p; p=1.0*jc(m)/jc(n)/jc(m-n); return p; } 14 第四十七套 1 程序填空 234 函数fun的功能是:计算f(x)=1+x-x∕2!+x∕3!-X/4! n-6 直到∣x/n!∣<10 若x=2.5,函数值为:1.917915。 第1处t=x 第2处t*=(-1.0)*x/n; 第3处while(fabs(t)>=1e-6) 2 程序修改 给定程序MODI1.C中函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。 /**found**/ for(i=1;i<=y;i++) /**found**/ t=t00; 3程序设计 请编写函数fun,其功能是:计算并输出当x﹤0.97时下列多项式的值,直到Sn-Sn-1<0.000001为止。 double fun(double x) { int n=1; double sn=1; double xn=1,xn1=0; while(fabs(xn-xn1)>=0.000001) { xn=xn*x*(0.5-n+1)/n; n+=1; sn+=xn; } return(sn); } 第四十八套 1 程序填空 给定程序中,函数fun的功能是:计算出带有头节点的单向链表中各节点数据域中值之和作为函数值带回。 第1处s+=p->data; 第2处p=p->next; 第3处printf(“\\nsum=%d\\n”,fun(head)); 2 程序修改 给定程序MODI1.C中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。 /**found**/ while(*r) /**found**/ *a=*r;a++;r++; 3 程序设计 函数fun的功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。 void fun(char *s,char t[]) { int i,j=0; for(i=1;i 2012年3月全国计算机等级考试二级C语言上机题库(全) t[j]=0; } 第四十九套 1 程序填空 给定程序中,函数fun的功能是:把形参s所知字符串中最左边的n个字符复制到形参t所指字符数组中,形成一个新串,若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。 第1处if(n>=len)strcpy(t,s); 第2处t[j++]=s[i]; 第3处t[j]=0; 2 程序修改 给定程序MODI1.C中函数fun的功能是:找出一个大于形参m且紧随m的素数,并作为函数值带回。 /**found**/ if(i%k= =0) /**found**/ if(k>=i) 3 程序设计 编写函数fun,它的功能是:求出能整除形参x切不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 void fun(int x,int pp[],int*n) { int i; *n=0; for(i=1;i<=x;i++) if((x%i==0)&&(i%2))pp[(*n)++]=i; } 第五十套 1 程序填空 给定程序中,函数fun的功能是:将形参s所知字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 第1处p[j]=s[i];j++;} 第2处for(i=0;i 给定程序MODI1.C中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。 /**found**/ while(i 3 程序设计 函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s 所指串中剩余的字符形成的新串放在 t所指的数组中。 void fun(char *s,char t[]) { int i,j=0; for(i=0;i 15 if(!((i%2)= =0&&(s[i]%2))) t[j++]=s[i]; t[j]=0; } 第五十一套 1 程序填空 给定程序中,函数fun的功能是:计算下式 22 s=1/22+3/42+5/6…+(2×n-1)/(2×n)直到︱(2×n-1)/ 2-3 (2×n)︱《10并把计算结果作为函数值返回。例如, -3 若形参e的值le,函数值的返回值为2.735678。 第1处i=0; 第2处i++; 第3处x=(2.0*i-1) / ((2.0*i)* (2.0*i)); 2 程序修改 给定程序MODI1.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。 /**found**/ void fun(char*s, char *t) /**found**/ t[2*d]=’\\0’; 3 程序设计 函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 viod fun(char*s, chat t[]) { int i,j=0; for(i=1;i 第五十二套 1 程序填空 给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大,列上最小的那个元素,若没有符合条件的元素则输出相应信息。 第1处max=a[i][j];c=j;} 第2处find=0; 第3处i++; 2 程序修改 给定程序MODI1.C中函数fun的功能是:根据整形形参m的值:计算如下公式的值?……例如:若m中的值为5,则应输出:0.536389。 /**found**/ for(i=2;i<=m;i++) /**found**/ y-=1.0/(i*i); 3 程序设计 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。