重要说明:本题库为从题中一题一题复制出来工作量大,而且有许多表达式无法在word中快速表示出来(这样会加大工作量)故而省略,或者表达错位,有的地方可能或者肯定会有错,我相信准备参加C语言二级考试的同学应当能够对照参考答案看出来,这是最新版最完整考试题库,相信大家一定都能通过!
第一套
程序填空
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。如输入一个数:27638496,新的数为729
第一空:{ t=*n%10;
第二空:if(t%2!=0)
第三空:*n=x;
2.程序修改
给定程序modi1.c中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。
double fun(int n )
{ double result=1.0;
/*****found******/
if(n==0)
return 1.0;
while(n>1&&n<170)
/*****found******/
result*=n--;
return result;
}
程序设计
请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。
long fun(char *p)
{
int i,len,t;
long x=0;
len=strlen(p);
if(p[0]==’-‘)
{ t=-1;len--;p++;}
else t=1;
while(*p)
x=x*10-48+(*p++);
return x*t;
}
第二套
1. 给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
第1 处 FILE * fp;
第2 处 while (!feof(fp)) {
第3 处 putchar(ch); ch = fgetc(fp); }
2.程序修改
给定程序MODI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。
void fun( char *s )
{ int i,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列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
void fun(char s[][N],char *b)
{
int i,j,n=0;
for(i=0;i<N;i++)
/*请填写其相应语句完成其功能*/
{
for(j=0;j<M;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(int n,int m)
{ NODE *h=NULL,*p,*s;
int i;
/*****found******/
p=( NODE *) malloc(sizeof(NODE));
h=p;
p->next=null;
for(i=1;i<=n;i++)
{s=( NODE *) malloc(sizeof(NODE));
计算机二级c语言选择题库s->data=rand()%m;
s->next=p->next;
p->next=s;
p=p->next;
}
/*****found******/
return h;
}
3. 程序设计
请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。
int fun(char *s)
{
int k=1;
while(*s)
{ if(*s==’’)k++;
s++; }
return k;
}
第四套
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.
void fun(char s[ ],int n)
{
char a[80],*p;
int i;
/*****found******/
p=s;
for(i=0;i<n;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]中。结果在主函数中输出。
void fun(int *a, int *b)
{
int i,j;
for(i=0;i<M;i++)b[i]=0;
for(i=0;i<N;i++)
{ j=a[i]/10;
if(j>10)b[M-1]++;
else b[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(STU a[ ],int m)
{ STU b[N],*t;
int i,j,k;
/*****found******/
t=(STU *)calloc(sizeof(STU),m);
for(i=0;i<N;i++)
b[i]=a[i];
for(k=0;k<m;k++)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论