份80110上全国计算机等级考试二级C语言答案与与真题课件.docx

上传人:b****7 文档编号:25829775 上传时间:2023-06-15 格式:DOCX 页数:41 大小:49.37KB
下载 相关 举报
份80110上全国计算机等级考试二级C语言答案与与真题课件.docx_第1页
第1页 / 共41页
份80110上全国计算机等级考试二级C语言答案与与真题课件.docx_第2页
第2页 / 共41页
份80110上全国计算机等级考试二级C语言答案与与真题课件.docx_第3页
第3页 / 共41页
份80110上全国计算机等级考试二级C语言答案与与真题课件.docx_第4页
第4页 / 共41页
份80110上全国计算机等级考试二级C语言答案与与真题课件.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

份80110上全国计算机等级考试二级C语言答案与与真题课件.docx

《份80110上全国计算机等级考试二级C语言答案与与真题课件.docx》由会员分享,可在线阅读,更多相关《份80110上全国计算机等级考试二级C语言答案与与真题课件.docx(41页珍藏版)》请在冰豆网上搜索。

份80110上全国计算机等级考试二级C语言答案与与真题课件.docx

份80110上全国计算机等级考试二级C语言答案与与真题课件

2016年3月份全国计算机等级考试二级C语言答案与与真题

第81套:

程序填空:

下列给定程序中,函数fun的功能是:

把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],以此类推。

例如,若a所指数组中的数据最初排列为:

9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:

1、9、2、8、3、7、4、6、5。

形参n中存放a所指数组中数据的个数。

规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)a[i]  

(2)a[j]  (3)a[j]

(2)程序修改:

下列给定程序中函数fun的功能是:

用递归算法计算斐波拉契数列中第n项的值。

从第1项起,斐波拉契数列为:

1、1、2、3、5、8、13、21、……

例如,若给n输入7,则该项的斐波拉契数值为13。

请改正程序中的错误,使它能得出正确结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。

【参考答案】

(1)去掉分号

(2)case1:

case2:

return1;

(3)程序编辑:

某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:

求出该学生的平均分,并放入记录的ave成员中。

例如,学生的成绩是:

85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。

注意:

部分源程序在文件PROG1.C中。

勿改动主函数main和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。

【参考答案】

voidfun(STREC*a)

{

inti;

a->ave=0.0;

for(i=0;i

a->ave=a->ave+a->s[i];/*求各门成绩的总和*/

a->ave/=N;/*求平均分*/

}

第82套

(1)程序填空:

下列给定程序中,函数fun的功能是进行数字字符转换。

若形参ch中是数字字符'0'~'9',则将'0'转换成'9','1'转换成'8','2'转换成'7',……,'9'转换成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)char 

(2)ch<='9' (3)'0'

(2)程序修改:

下列给定程序中函数fun的功能是:

将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,若给a输入字符串:

ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:

ABCDEFGHIJK。

请改正程序中的错误,使它能得出正确结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。

【参考答案】

(1)b[k]=*p;

(2)b[k]='';k++;

(3)程序编辑:

N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,其功能是:

求出平均分,并由函数值返回。

例如,若学生的成绩是:

85 76 69 85 91 72 64 87,则平均分应当是:

78.625。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

doublefun(STREC*h)

{

doubleave=0.0;

STREC*p=h->next;

while(p!

=NULL)

{

ave=ave+p->s;

p=p->next;

}

returnave/N;

}

第83套:

(1)程序填空:

下列给定程序中,函数fun的功能是:

求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。

ss所指字符串数组中共有M个字符串,且串长小于N。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)M  

(2)<  (3)k

(2)程序修改:

下列给定程序中函数fun的功能是:

将tt所指字符串中的小写字母全部改为对应的大写字母,其它字符不变。

例如,若输入"Ab,cD",则输出"AB,CD"。

请改正程序中的错误,使它能得出正确的结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)if((tt[i]>='a')&&(tt[i]<='z'))

(2)tt[i]-=32;

(3)程序编辑:

编写函数fun,其功能是:

将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。

例如,若输入17,则应输出:

4 6 8 9 10 12 14 15 16。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

voidfun(intm,int*k,intxx[])

{

inti,j,n=0;

for(i=4;i

{

for(j=2;j

if(i%j==0)break;

if(j

}

*k=n;/*返回非素数的个数*/

}

第84套:

(1)程序填空:

下列给定程序中,函数fun的功能是:

将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。

例如,s所指的字符串为"def35adh3kjsdf7",执行后结果为"defadhajsdf3537"。

请在程序的下画线处填入正确的内容把下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)j++或j+=1或++j或j=j+1

(2)s[i]=t1[i]  

(3)j

(2)程序修改:

下列给定程序中函数fun的功能是:

用冒泡法对6个字符串进行升序排列。

请改正程序中的错误,使它能得出正确的结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)for(j=i+1;j<6;j++)

(2)*(pstr+i)=*(pstr+j);

(3)程序编辑:

编写函数fun,其功能是:

求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符为1,则输出3。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

intfun(char*ss,charc)

{

inti=0;

for(;*ss!

='\0';ss++)

if(*ss==c)

i++;/*求出ss所指字符串中指定字符的个数*/

returni;

}

第85套:

(1)程序填空:

下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。

函数fun的功能是:

把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)x  

(2)p  (3)s

(2)程序修改:

下列给定程序中函数fun的功能是:

计算正整数num各位上的数字之积。

例如,若输入252,则输出应该是20。

若输入202,则输出应该是0。

请改正程序中的错误,使它能得出正确的结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)longk=1;

(2)num/=10;

(3)程序编辑:

编写函数fun,其功能是:

计算n门课程的平均分,结果作为函数值返回。

例如:

若有5门课程的成绩是:

90.5,72,80,61.5,55,则函数的值为:

71.80。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中的填入你编写的若干语句。

【参考答案】

floatfun(float*a,intn)

{

inti;

floatav=0.0;

for(i=0;i

av=av+a[i];

return(av/n);/*返回平均值*/

}

第86套:

(1)程序填空:

下列给定程序中,函数fun的功能是:

将形参a所指数组中的前半部分元素中的值与后半部分元素中的值对换。

形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。

例如:

若a所指数组中的数据为:

1、2、3、4、5、6、7、8、9,则调换后为:

6、7、8、9、5、1、2、3、4。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)1  

(2)i  (3)a[p+i]或*(a+p+i)

(2)程序修改:

下列给定程序中函数fun的功能是:

把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。

例如,若输入的数为:

55 12 34,输出的结果应当是:

a=55.0,b=34.0,c=12.0。

请改正程序中的错误,使它能得出正确的结果。

注意:

部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构。

【参考答案】

(1)floatk;  

(2)if(*a<*c)

(3)程序编辑:

学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:

把分数最高的学生数据放在b所指的数组中。

注意:

分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

intfun(STREC*a,STREC*b)

{

inti,j=0,max=a[0].s;/*找出最大值*/

for(i=0;i

if(max

max=a[i].s;

for(i=0;i

if(max==a[i].s)

b[j++]=a[i];/*找出成绩与max相等的学生的记录,存入结构体b中*/

returnj;/*返回最高成绩的学生人数*/

}

第87套:

(1)程序填空:

下列给定程序中,函数fun的功能是:

从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。

ss所指字符串数组中共有N个字符串,且串长小于M。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)N  

(2)k  (3)ss[i]

(2)程序修改:

下列给定程序中函数fun的功能是:

逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。

例如,若主函数中a字符串为"aBCDeFgH",b字符串为"Abcd",则c中的字符串应为"aBcdeFgH"。

请改正程序中的错误,使它能得出正确的结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!

【参考答案】

(1)intk=0;

(2)while(*p||*q)

(3)程序编辑:

规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

除了字符串前导的*号之外,将串中其它*号全部删除。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:

****A*BC*DEF*G*******,删除后,字符串中的内容应当是:

****ABCDEFG。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

voidfun(char*a)

{

inti=0;

char*p=a;

while(*p&&*p=='*')

{a[i]=*p;i++;p++;}

while(*p)

{

if(*p!

='*')

{a[i]=*p;i++;}

p++;

}

a[i]='\0';

}

第88套:

(1)程序填空:

下列给定程序中,函数fun的功能是:

把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:

字符串的长度大于等于2)。

例如,形参s所指字符串为"abcdefgh",执行结果为"ahcbedgf"。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)1  

(2)s[k]或*(s+k)  (3)c

(2)程序修改:

下列给定程序中fun函数的功能是:

求表达式

s=aa…aa-…-aaa-aa-a

(此处aa…aa表示n个a,a和n的值在1至9之间)

例如,a=3,n=6,则以上表达式为:

s=333333-33333-3333-333-33-3

其值是296298。

a和n是fun函数的形参,表达式的值作为函数值传回main函数。

请改正程序中的错误,使它能计算出正确的结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)longs=0,t=0;

(2)t=t/10;

(3)程序编辑:

编写函数voidfun(char*tt,intpp[]),统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组中。

例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:

33322110000000000000000000

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

voidfun(char*tt,intpp[])

{

inti;

for(i=0;i<26;i++)

pp[i]=0;/*初始化pp数组各元素为0*/

for(;*tt!

='\0';tt++)

if(*tt>='a'&&*tt<='z')

pp[*tt-'a']++;

}

第89套:

(1)程序填空:

下列给定程序中,函数fun的功能是:

在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回-1。

ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)N  

(2)i  (3)-1

(2)程序修改:

下列给定程序中函数fun的功能是:

从整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。

规定函数中al放个位数,a2放十位数。

请改正程序中的错误,使它能得出正确的结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!

【参考答案】

(1)a2=k/10;

(2)returni;

(3)程序编辑:

规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:

"****A*BC*DEF*G*******",删除后,字符串中的内容应当是:

"****A*BC*DEF*G"。

在编写函数时,不得使用C语言提供的字符串函数。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

voidfun(char*a)

{

while(*a!

='\0')

a++;

a--;/*指针a指向字符串的尾部*/

while(*a=='*')a--;/*指针a指向最后一个字母*/

*(a+1)='\0';/*在字符串最后加上结束标志符*/

}

第90套:

(1)程序填空:

下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)next  

(2)t->data  (3)t

(2)程序修改:

下列给定程序中函数fun的功能是:

将字符串中的字符逆序输出,但不改变字符串中的内容。

例如,若字符串为"abcd",则应输出:

"dcba"。

请改正程序中的错误,使它能得出正确的结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)voidfun(char*a)

(2)printf("%c",*a);

(3)程序编辑:

编写函数fun,其功能是:

比较字符串的长度,(不得使用C语言提供的求字符串长度的函数),函数返回较长的字符串。

若两个字符长度相同,则返回第一个字符串。

例如,输入beijingshanghai(为回车键),函数将返回shanghai。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

char*fun(char*s,char*t)

{

inti,j;

for(i=0;s[i]!

='\0';i++);/*求字符串的长度*/

for(j=0;t[j]!

='\0';j++);

if(i<=j)/*比较两个字符串的长度*/

returnt;/*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/

else

returns;

}

第91套:

(1)程序填空:

下列给定程序中,函数fun的功能是:

逆置数组元素中的值。

例如:

若a所指数组中的数据为:

1、2、3、4、5、6、7、8、9,则逆置后依次为:

9、8、7、6、5、4、3、2、1。

形参n给出数组中数据的个数。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)n/2  

(2)i  (3)a[n-i-1]或a[n-1-i]

(2)程序修改:

下列给定程序中函数fun的功能是:

将一个由八进制数字字符组成的字符串转换成十进制整数。

规定输入的字符串最多只能包含5位八进制数字字符。

例如,若输入77777,则输出32767。

请改正程序中的错误,使它能得出正确结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。

【参考答案】

(1)n=*p-'0';

(2)n=n*8+*p-'0';

(3)程序编辑:

学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:

函数返回该学号的学生数据,指定的学号在主函数中输入。

若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。

(用于字符串比较的函数是strcmp)。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

【参考答案】

STRECfun(STREC*a,char*b)

{

inti;

STRECstr={"\0",-1};/*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1*/

for(i=0;i

if(strcmp(a[i].num,b)==0)/*找到指定学号的学生数据*/

str=a[i];

returnstr;/*返回学生记录*/

}

第92套:

(1)程序填空:

下列给定程序的功能是:

调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回1,失败时返回0。

在复制的过程中,把复制的内容输出到屏幕。

主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:

部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)"r"  

(2)fs  (3)ft

(2)程序修改:

下列给定程序中函数fun的功能是:

将长整型数中各位上为偶数的数依次取出,构成一个新数放在t中。

高位仍在高位,低位仍在低位。

例如,当s中的数为87653142时,t中的数:

8642。

请改正程序中的错误,使它能得出正确的结果。

注意:

部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!

【参考答案】

(1)if(d%2==0)

(2)s/=10;

(3)程序编辑:

函数fun的功能是:

将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。

例如,若s所指字符串中的内容为"ABCDEFG123456",其中字符A的ASCII码值为奇数,因此应当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1