计算机二级C语言机试题库.docx
- 文档编号:3942581
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:123
- 大小:63.91KB
计算机二级C语言机试题库.docx
《计算机二级C语言机试题库.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言机试题库.docx(123页珍藏版)》请在冰豆网上搜索。
计算机二级C语言机试题库
第1套
1程序填空
给定程序中,函数fun的功能是:
对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。
第1处t=i;
第2处for(j=i+2;j 第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.6125588 s=(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].sno>s[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;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;i for(i=0;i {j=a[i]/10; if(j>10)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(m<10)名学生来,将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 STU*fun(STUa[],intm) {STUb[N],*t; inti,j,k; /*****found******/ t=(STU*)calloc(sizeof(STU),m); for(i=0;i b[i]=a[i]; for(k=0;k {for(i=j=0;i if(b[i].s>b[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;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处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;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;i<2;i++){ /*****found******/ m=i; for(k=i+1;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(k>0) 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;i for(j=0;j<=i;j++) a[i][j]*=n; } 第9套 1程序填空 给定程序中,函数fun的功能是: 将形参n中,各位上为偶数的数取出,并按原来从高位到低们的顺序组成一个新的数。 并作为函数值返回。 第1处i=1; 第2处while(s) 第3处x=x+t*i;i=i*10; 2程序修改 给定程序MODI1.C中函数fun的功能是: 输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。 /*******found******/ intfun(intn,intxx[][M]) {inti,j,sum=0; printf(“\nThe%dx%dmatrix: \n”,M,M); for(i=0;i {for(j=0;j /*******found******/ printf(“%d”,xx[i][j]); printf(“\n”); } for(i=0;i sum+=xx[i][i]+xx[i][n-i-1]; return(sum); } 3程序设计 函数fun的功能是: 将a、b中的两个两位正整数合并形成一个新的整数放在c中。 合并的方式是: 将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。 voidfun(inta,intb,long*c) { *c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10); } 第10套 1程序填空 给定程序中,函数fun的功能是: 判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。 “幻方”的判定条件是: 矩阵每行、每列、主对角线及反对角线上元素之和都相等。 第1处row=colum=0; 第2处if((row! =colum)||(row! =m1))return0; 第3处return1; 2程序修改 给定MODI1.Cfun函数的功能是: 根据整型形参m,计算如下公式的值。 t=1-1/2-1/3-……-1/m. #include doublefun(intm) { doublet=1.0; inti; for(i=2;i<=m;i++) /********found***********/ t=t-1.0/i; /********found***********/ returnt; } 3程序设计 请编写一个函数,函数的功能是删除字符串中的所有空格。 intfun(char*str) { char*p=str; inti=0; while(*p){ if(*p! =’’)str[i++]=*p; p++; } str[i]=0; } 第11套 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中指定部位的错误,使它能得出正确的结果。 #include #include #defineN80 intfun(char*s,char*t) {intn; char*p,*r; n=0; while(*s) {p=s; /*******found******/ r=t; while(*r) if(*r==*p){r++;p++;} elsebreak; /*******found******/ if(*r==0) n++; s++; } returnn; } 3程序设计 请编写函数fun,函数的功能是: 将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串,函数fun中给出的语句供供参考。 voidfun(chara[M][N]),char*b) {inti;*b=0; for(i=0;i } 第12套 1程序填空 给定程序中,函数fun的功能是将不带头结点的单向链表逆置。 即若原链表中从头至尾结点数据域依次为: 2、4、6、8、10,逆置后,从头至尾结点数据域依次为: 10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第1处NODE*fun(NODE*h) 第2处r=q->next; 第3处q=r; 2程序修改 给定程序MODI1.C中函数fun的功能是: 将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。 #include #include #defineN80 voidfun(char*s,chart[]) {inti,j=0; for(i=0;i /*******found******/ if(i%2||s[i]%2==0) t[j++]=s[i]; /*******found******/ t[j]=’\0’; } 3程序设计 请编写函数fun,函数的功能是: 将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 函数fun中给出的语句仅供参考。 #include voidfun(int(*s)[10],int*b,int*n,intmm,intnn) { inti,j,np=0; for(i=0;i for(j=0;j { b[np]=s[j][i]; np=i*mm+j+1; } *n=np; } 第13套 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所指字符串的长度相同。 intfun(char*s,char*t1,char*t2,char*w) { inti;char*p,*r,*a; strcpy(w,s) while(*w) {p=w;r=t1; /*******found******/ while(*r) if(*r==*p) {r++;p++;} elsebreak; if(*r==’\0’) {a=w;r=t2; while(*r){ /*******found******/ *a=*r;a++;r++; } w+=strlen(t2); } elsew++; } } 3程序设计 函数fun的功能是: 将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。 voidfun(char*s,chart[]) { inti,j=0; for(i=1;i t[j++]=s[i]; t[j]=0; } 第14套 1.程序填空 给定程序中,函数fun的功能是根据形参i的值返回某个函数年值。 当调用正确时,程序输出: x1=5.000000 x2=3.000000. x1*x1+x1*x2=40.000000 第一处: doublefun(inti,doublex,doubley) 第二处: returnf1(x); 第三处: returnf2(x,y); 2.程序修改 给定程序MODI1.C中函数fun的功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。 #include /*****found******/ char*fun(char*s,char*t) { intsl=0,tl=0; char*ss,*tt; ss=s;tt=t; while(*ss) {sl++; /*****found******/ ss++; } while(*tt) {tl++; /*****found******/ tt++; } if(tl>sl)returnt; elsereturns; } 3.程序设计 请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符,平均移到字符串的最后,把第m+1个到最后的;字符移到字符串的前部。 voidfun(char*w,intm) { inti; for(i=0;i fun1(w); } 第15套 1程序填空 程序通过定义学生结构体变量,存储了学生的学号,姓名和3门课的成绩。 所有学生数据均以二进制方式输出到student.dat文件中。 函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的背后数据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第1处while(! feof(fp)) 第2处if(n.sno==sno)break; 第3处fseek(fp,-1L*sizeof(STU),SEEKCUR); 2程序修改 给定程序MODI1.C中函数fun的功能是: 利用插入排序法对字符串中的字符按从小到大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 试题库
![提示](https://static.bdocx.com/images/bang_tan.gif)