您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 历年国家计算机二级C语言上机国二真题整理100套
第一套程序填空给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。如输入一个数:27638496,新的数为729第一空:{t=*n%10;第二空:if(t%2!=0)第三空:*n=x;2.程序修改给定程序modi1.c中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。doublefun(intn){doubleresult=1.0;/*****found******/if(n==0)return1.0;while(n1&&n170)/*****found******/result*=n--;returnresult;}程序设计请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。longfun(char*p){inti,len,t;longx=0;len=strlen(p);if(p[0]==’-‘){t=-1;len--;p++;}elset=1;while(*p)x=x*10-48+(*p++);returnx*t;}第二套1.给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。第1处FILE*fp;第2处while(!feof(fp)){第3处putchar(ch);ch=fgetc(fp);}2.程序修改给定程序MODI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。voidfun(char*s){inti,j;for(i=0,j=0;s[i]!=’\0’;i++)if(s[i]=’0’&&s[i]=’9’)/*****found******/s[j++]=s[i];/*****found******/s[j]=’\0’;}3.程序设计题请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。voidfun(chars[][N],char*b){inti,j,n=0;for(i=0;iN;i++)/*请填写其相应语句完成其功能*/{for(j=0;jM;j++){b[n]=s[j][i];n=i*M+j+1;}}b[n]=’\0’;}第三套1.程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指的文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。第1处:fp=fopen(filename,”rb+”)第2处:fseek(fp,-1L*sizeof(STU),SEEK_END);第3处:fwrite(&n,sizeof(STU),1,fp);2.程序修改给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。NODE*Creatlink(intn,intm){NODE*h=NULL,*p,*s;inti;/*****found******/p=(NODE*)malloc(sizeof(NODE));h=p;p-next=null;for(i=1;i=n;i++){s=(NODE*)malloc(sizeof(NODE));s-data=rand()%m;s-next=p-next;p-next=s;p=p-next;}/*****found******/returnh;}3.程序设计请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。intfun(char*s){intk=1;while(*s){if(*s==’’)k++;s++;}returnk;}第四套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]++;}}第五套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;}第六套1.程序填空给定程序中,函数fun的功能是根据形参i的值返回某个函数年值。当调用正确时,程序输出:x1=5.000000x2=3.000000.x1*x1+x1*x2=40.000000第一处:doublefun(inti,doublex,doubley)第二处:returnf1(x);第三处:returnf2(x,y);2.程序修改给定程序MODI1.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。#includestdio.h/*****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(tlsl)returnt;elsereturns;}3.程序设计请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平均移到字符串的最后,把第m+1个到最后的;字符移到字符串的前部。voidfun(char*w,intm){inti;for(i=0;im;i++)fun1(w);}第七套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;}第八套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;}第九套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中函数
本文标题:历年国家计算机二级C语言上机国二真题整理100套
链接地址:https://www.777doc.com/doc-2612232 .html