您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 全国计算机等级考试2级C语言上机题库
第一套:1.1填空给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶函数的数去除,剩余的书按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。voidfun(unsignedlong*n){unsignedlongx=0,i;intt;i=1;while(*n)/**********found**********/{t=*n%10;/**********found**********/if(t%2!=0){x=x+t*i;i=i*10;}*n=*n/10;}/**********found**********/*n=x;}1.2改错给定程序MODI1.C中函数fun的功能是:计算n!。doublefun(intn){doubleresult=1.0;/************found************/if(n==0)return1.0;while(n1&&n170)/************found************/result*=n--;returnresult;}1.3程序请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。longfun(char*p){/*以下代码仅供参考*/inti,len,t;/*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;}第二套:2.1填空给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数些到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。voidfun(char*s,inta,doublef){/**********found**********/FILE*fp;charch;fp=fopen(file1.txt,w);fprintf(fp,%s%d%f\n,s,a,f);fclose(fp);fp=fopen(file1.txt,r);printf(\nTheresult:\n\n);ch=fgetc(fp);/**********found**********/while(!feof(fp)){/**********found**********/putchar(ch);ch=fgetc(fp);}putchar('\n');fclose(fp);}2.2改错给定程序MODI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数fun中指定部位的错误,使它能得出正确的结果。#includestdio.hvoidfun(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';}2.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';}第三套:3.1填空程序通过定义学生机构体变量,存储了学生的学号,姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。voidfun(char*filename,STUn){FILE*fp;/**********found**********/fp=fopen(filename,rb+);/**********found**********/fseek(fp,-1L*sizeof(STU),SEEK_END);/**********found**********/fwrite(&n,sizeof(STU),1,fp);fclose(fp);}3.2改错给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。typedefstructaa{intdata;structaa*next;}NODE;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.3程序请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。(有问题)intfun(char*s){intk=1;while(*s){if(*s=='')k++;s++;}returnk;}第四套:4.1填空程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排列后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename){FILE*fp;inti,j;STUs[N],t;/**********found**********/fp=fopen(filename,rb);fread(s,sizeof(STU),N,fp);fclose(fp);for(i=0;iN-1;i++)for(j=i+1;jN;j++)/**********found**********/if(s[i].snos[j].sno){t=s[i];s[i]=s[j];s[j]=t;}fp=fopen(filename,wb);/**********found**********/fwrite(s,sizeof(STU),N,fp);fclose(fp);}4.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);}4.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将字符串转换成响应的整数、浮点数,然后将其显示在屏幕上。voidfun(char*s,inta,doublef){/**********found**********/FILE*fp;charstr[100],str1[100],str2[100];inta1;doublef1;fp=fopen(file1.txt,w);fprintf(fp,%s%d%f\n,s,a,f);/**********found**********/fclose(fp);fp=fopen(file1.txt,r);/**********found**********/fscanf(fp,%s%s%s,str,str1,str2);fclose(fp);a1=atoi(str1);f1=atof(str2);printf(\nTheresult:\n\n%s%d%f\n,str,a1,f1);}5.2改错给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩按从高到低的顺序找出前m(≤10)名学生出来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首笛子作为函数值返回。typedefstructss{charnum[10];ints;}STU;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;}5.3程序请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:2223445666677899101010。删除后,数组中的内容应该是:2345678910。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的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。doublef1(doublex){returnx*x;}doublef2(doublex,doubley){returnx*y;}/**********found**********/doublefun(inti,doublex,doubley){if(i==1)/**********found**********/returnf1(x);else/**********found**********/returnf2(x,y);}6.2改错给定程序MODI1.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。/**********found**********/char*fun(char*s,char*t){intsl=0,tl=0;char*ss,*tt;s
本文标题:全国计算机等级考试2级C语言上机题库
链接地址:https://www.777doc.com/doc-6943223 .html