您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 2012年3月计算机二级C语言机试题库
-1-助考天使2012年03月天使出品2012-3-1-第1套1程序填空给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。第1处t=i;第2处for(j=i+2;jn;j=j+2)第3处p[j]=0;2程序修改给定程序MODI1.C中函数fun的功能是:用下面的公式求∏的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:例如:程序0.0001,则程序输出3.1414∏/4≈1-1/3+1/5-1/7+……floatfun(floatnum){ints;floatn,t,pi;t=1;pi=0;n=1;s=1;/*******found******/while((fabs(t))=num){pi=pi+t;n=n+2;s=-s;/*******found******/t=s/n;}pi=pi*4;returnpi;}3程序设计请编写一个函数voidfun(chara[],charb[],intn),其功能是:删除一个字符串指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的n中存入指定的下标。voidfun(chara[],charb[],intn){strncpy(b,a,n);b[n]=0;strcat(b,a+n+1);}第2套1程序填空给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如,当形参n的值为10时,函数返回:9.6125588s=(1*3)/22+(3*5)/42+(5*7)/62+(2*n-1)*(2*n+1)/(2*n)2(考试时公式用分式表示)第1处s=0;第2处for(i=1;i=n;i++)第3处s=s+(2.0*i-1)*(2.0*i+1)/(t*t);2程序修改给定程序MODI1.C中函数fun的功能是:统计substr所指子字符串在str所指字符串中出现伯次数。fun(char*str,char*substr){inti,j,k,num=0;/*******found******/for(i=0;str[i];i++)for(j=i,k=0;substr[k]==str[j];k++,j++)/*******found******/if(substr[k+1]==’\0’){num++;break;}returnnum;}3程序设计请编写一个函数fun,它的功能是:根据以下公式求Л的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度0.0005,则程序输出为3.14….Л/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……doublefun(doubleeps){doubles=1,t=1./3;intn=1;while(t=eps){s+=t;n++;t=t*n/(2.0*n+1);}return(s*2.0);}第3套1程序填空函数fun的功能是进行数字字符转换。若形参ch中是数字字符‘0’--‘9’,则‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,……‘9’转换成‘0’;若是其它字符则保持不变;并将转换后的结果作为函数值返回。第1处charfun(charch)第2处if(ch=’0’&&ch=’9’)第3处return‘9’-(ch-‘0’);2程序修改给定程序MODI1.C中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求复制第三个字符之后插入一个空格。voidfun(char*p,char*b){inti,k=0;while(*p){i=1;while(i=3&&*P){/*******found******/b[k]=*p;k++;p++;i++;}if(*p){/*******found******/b[k++]=’’;}}b[k]=’\0’;}3程序设计N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。doublefun(STREC*h){STREC*p=h-next;doubleav=0.0;intn=0;while(p!=NULL){av=av+p-s;p=p-next;n++;}av/=n;returnav;}第4套1.程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。第1处fp=fopen(filename,rb);第2处if(s[i].snos[j].sno)第3处fwrite(s,sizeof(STU),N,fp);2.程序修改给定程序MODI1.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,差且覆盖原串。注意:字符串的长度最长允许为79.voidfun(chars[],intn){chara[80],*p;inti;/*****found******/p=s;for(i=0;in;i++)a[i]=’*’;do{a[i]=*p;i++;}/*****found******/while(*p++)a[i]=0;strcpy(s,a);}3.程序设计请编写函数fun,函数的功能是:统计各年龄段的人数,N个年龄能过调用随机函数获得,并放在主函数的age数组中:要求函数把0至9岁的年龄段的人数放在d[0]中,把10至19岁的年龄段的人数放在d[1]中,把20至29岁的年龄段的人数放在d[2]中,其余依次类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。voidfun(int*a,int*b){inti,j;for(i=0;iM;i++)b[i]=0;for(i=0;iN;i++){j=a[i]/10;if(j10)b[M-1]++;elseb[j]++;}}第5套1.程序填空给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文件文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串换成相应的整数和浮点数,然后将其显示在屏幕上。第1处:FILE*fp;第2处:fclose(fp);第3处:fscanf(fp,”%s%s%s”,str,str1,str2);2.程序修改给定程序MODI1.C中函数fun的功能是:对N名学生的学生成绩,按从高到低的顺序找出前m(m10)名学生来,将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。STU*fun(STUa[],intm){STUb[N],*t;inti,j,k;/*****found******/t=(STU*)calloc(sizeof(STU),m);for(i=0;iN;i++)b[i]=a[i];for(k=0;km;k++){for(i=j=0;iN;i++)if(b[i].sb[j].s)j=i;/*****found******/t[k]=b[j];b[j].s=0;}returnt;}3.程序设计请编写函数fun,函数的功能是,删去一维数组中所有相同的数,使之只剩一个。数组中的数已按从小到大的顺序排序,函数返回删除后数组中数据的个数。intfun(inta[],intn){inti,j=1,k=a[0];for(i=1;in;i++)if(k!=a[i]){a[j++]=a[i];k=a[i];}a[j]=0;returnj;}第6套1程序填空给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在_2_处使f指向函数f1,在_3_处使f指向函数f2。当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。第1处double(*f)();-2-助考天使2012年03月天使出品2012-3-2-第2处f=f1;第3处f=f2;2程序修改给定程序MODI1.C是建立一个带头点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。intfun(NODE*h){intsum=0;NODE*p;/*******found******/p=h-next;while(p){if(p-data%2==0)sum+=p-data;/*******found******/p=p-next;}returnsum;}3程序设计请编写函数fun,函数的功能是:判断字符串是否为回文?叵是,函数返回1,主函数中输出:YEX,否则返回0,主函数中输出NO。回文是指顺读t和倒读都一样的字符串。intfun(char*str){inti,j=strlen(str);for(i=0;ij/2;i++)if(str[i]!=str[j-i-1])return0;return1;}第7套1.程序填空程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息,函数fun的功能是输出这位学生的信息。第1处voidshow(STUtt)第2处printf(“%5.1f”,tt.score[i]);第2处show(std)2.程序修改给定程序MODI1中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。intfun(int*a,intn){inti,m,t,k;for(i=0;i2;i++){/*****found******/m=i;for(k=i+1;kn;k++)/*****found******/if(a[k]a[m])m=k;t=a[i];a[i]=a[m];a[m]=t;}}3.程序设计请编写一个unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n=2)位的整数,函数求出w的后n-1位的数作为函数值返回。例如:w值为5923,则函数返回923;w值为923则函数返回23。unsignedfun(unsignedw){if(w=10000)returnw%10000;if(w=1000)returnw%1000;if(w=100)returnw%100;returnw%10;}第8套1.程序填空给定程序通过定义并赋值的方式,利用结构体变量存储了一名学生学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系统a。第1处voidmodify(STU*ss,floata)第2处ss-score[i]*=a;第3处modify(&std,a);2.程序修改给定程序MODI1.C中函数fun的功能是:求k!13,所求阶乘的值作为函数值返回。例如:若k=10,则应输出:3628800。longfun(intk){/*****found******/if(k0)return(k*fun(k-1));/*****found******/elseif(k==0)return1L;}3.程序设计程序定义了N*N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N],intn),函数的功能是:使数组左下三角元素中的值乘以n。intfun(inta[][N],intn){inti,j;for(i=0;iN;i++)for(j=0;j=i;j++)a[i][j]*=n;}第9套1程序填空给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低们
本文标题:2012年3月计算机二级C语言机试题库
链接地址:https://www.777doc.com/doc-3031355 .html