您的当前位置:首页2015年计算机等级考试《二级C语言程序设计》机考操作题题库(8)附答案

2015年计算机等级考试《二级C语言程序设计》机考操作题题库(8)附答案

2021-02-03 来源:世旅网
2015年计算机等级考试《二级C语言程序

设计》机考操作题题库(8)

本卷共分为3大题15小题,作答时间为240分钟,总分200分,120分及格。一、程序填空题(共50分)1、请补充函数proc(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,若一维数组中的数据是:11222344556667781010。删除后,数组中的内容应该是:1234567810。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。试题程序:2、请补充main()函数,该函数的功能是:输出一个44的矩阵,要求必须使用行指针表示输出变量。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。试题程序:3、给定程序的功能是将n个人的考试成绩进行分段统计,考试成绩放在a数组中,各分段的人数存到b数组中:成绩为60~69的人数存到b[0]中,成绩为70~79的人数存到b[1]中,成绩为80~89的人数存到b[2]中,成绩为90~99的人数存到b[3]中,成绩为l00的人数存到b[4]中,成绩为60分以下的人数存到b[5]中。例如,当a数组中的数据是:93、85、,77、68、59、43、94、75、98,调用该函数后,b数组中存放的数据应是:1、2、1、3、0、2。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:4、数组xx[M]保存着一组4位无符号整数,其元素的个数通过变量num传人函数proc()。请补充函数proc(),该函数的功能是:从数组XX中找出个位和百位上的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。例如,当xx[8]={11112413232122224245333314145335)时,yy[6]={1111222233331414}。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。试题程序:5、请补充main()函数,该函数的功能是:打印出1~10000中满足个位数字的立方等于其本身的所有的数。本题的结果为:164125216729注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。试题程序:二、程序改错题(共100分)6、下列给定程序中,函数proc()的功能是:根据整型形参n,计算如下公式的值。例如,若n=12,则应输出0.618026。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:7、下列给定程序中,函数proc()的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,…例如,若给n输入8,该项的斐波拉契级数值为21。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:8、下列给定程序中,函数proc()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,则输出后的字符是“456789”。请修改函数proc()中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:9、下列给定的程序中,函数proc()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:10、下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:三、程序设计题(共50分)11、请编写函数proc(),对长度为9个字符的字符串,除首、尾字符外,将其余7个字符按ASCⅡ码值降序排列。例如,原来的字符串为HabcdefA,则排序后输出为HfedcbaA。注意:部分源程序给出如下。请勿改动main()和其他函数中的任何内容,仅在函数proc()中填入所编写的若干语句。试题程序:12、请编写函数proc(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p到n-1(p≤n-1)的数组元素平移到数组的前面。例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,P的值为4。移动后,一维数组中的内容应为5,6,7,8,9,10.11,12,13,14,1,2,3,4。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:13、请编写函数proc(),该函数的功能是:将两个两位数的正整数num1,num2合并形成一个整数放在num中。合并的方式是:将num1数的十位和个位数依次放在num数的十位和千位上,num2数的十位和个位数依次放在c数的百位和个位上。例如,当num1=64,num2=18时,调用到该函数后,num=4168。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:14、请编写函数proc(),该函数的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如,有6门课程的成绩是90.5,72,80,61.5,55,60,则函数的值为69.83。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:15、请编写一个函数voidproc(char*str),其功能是:将字符串str中所有下标为偶数位置上的字母转化为大写(若该位置上不是字母,则不转换)。例如,若输入字符串:“thankyou6verymuch”,则应输出:“TbAnKYoU6vErYMuCh”。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:以下为参考答案部分,大部分试题都有解析哦1、参考答案【1】t==arrEi]【2】arr[j++]=t【解析】要实现删去一维数组中所有相同的数,可以通过将不同的字符放在原数组中来实现。当后一个字符跟前一个字符相同时,不做任何操作,因此【1】填“t==arr[i]”;当后一个字符与前一个字符不同时,放入数组arr中,因此【2】填“are[j++]=t”。2、参考答案【1】arr【2】*(*(p+i)+j)【解析】题目中要求必须使用行指针表示输出变量,由程序可知变量p为行指针,其应该初始化为数组的首地址,因此【1】处应填“arr”;每输出一个数组元素时,变量p为上一行的末地址加上该行的偏移量,因此【2】处填“*(*(p+i)+j)”。3、参考答案【1】n【2】else【3】a,b【解析】分段统计题。fun()函数中第一个循环的功能是将数组b清零;第二个循环的作用是分别记录各分数段的人数,具体步骤是遍历数组a取出第i个考生的成绩,将此成绩依次做判断,找到它的分数段,然后将记录该分数段的人数的变量加1,遍历结束数组b中存放的就是各分数段人数的记录。4、参考答案【1】xx[i]%101【2】yy[n++]=xx[i]【3】n【解析】要找出个位和百位上的数字相等的所有无符号整数,首先要得到数组xx中每一个元素的个位和百位数字,然后进行比较。因此,【1】处填xx[i]%10。当个位和百位相等时,把数组xx中的该元素放到数组yy中。因此,【2】处填yy[n++]=xx[i]。由函数proc()可知,数组yy的个数存放在变量n中,最后返回到主函数当中。因此,【3】处填n。5、参考答案【1】i%10【2】k*k*k==i【解析】要得到个位数字的立方等于其本身的所有数,首先要得到1~10000中所有数字的个位数,因此【1】处填“i%10”;变量k中存放每一个数字的个位数,要满足题目中要求,因此【2】“k*k*k==i”。6、参考答案:(1)错误:intproc(intn)正确:floatproc(intn)(2)错误:for(i=2;i

因篇幅问题不能全部显示,请点此查看更多更全内容