历年国家计算机二级C语言上机国二真题整理100套.docx
- 文档编号:2431829
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:128
- 大小:56.76KB
历年国家计算机二级C语言上机国二真题整理100套.docx
《历年国家计算机二级C语言上机国二真题整理100套.docx》由会员分享,可在线阅读,更多相关《历年国家计算机二级C语言上机国二真题整理100套.docx(128页珍藏版)》请在冰豆网上搜索。
历年国家计算机二级C语言上机国二真题整理100套
第一套
程序填空
给定程序中,函数fun的功能是:
将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
如输入一个数:
新的数为729
第一空:
{t=*n%10;
第二空:
if(t%2!
=0)
第三空:
*n=x;
2.程序修改
给定程序modi1.c中函数fun的功能是:
计算n!
。
例如,给n输入5,则输出120.。
doublefun(intn)
{doubleresult=1.0;
/*****found******/
if(n==0)
return1.0;
while(n>1&&n<170)
/*****found******/
result*=n--;
return result;
}
程序设计
请编写一个函数fun,它的功能是:
将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。
long fun(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;i /*请填写其相应语句完成其功能*/ { for(j=0;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); 1.程序修改 给定程序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; } 1.程序设计 请编写函数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].sno>s[j].sno) 第3处fwrite(s,sizeof(STU),N,fp); 1.程序修改 给定程序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); } 1.程序设计 请编写函数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]++; } } 第五套 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; } 第六套 1.程序填空 给定程序中,函数fun的功能是根据形参i的值返回某个函数年值。 当调用正确时,程序输出: x1=5. x2=3.. x1*x1+x1*x2=40. 第一处: 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,int m) { inti; for(i=0;i fun1(w); } 第七套 1.程序填空 程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息,函数fun的功能是输出这位学生的信息。 第1处 voidshow(STU tt) 第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; i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 历年 国家 计算机 二级 语言 上机 国二真题 整理 100