必胜高考网 > 计算机类 > 计算机等级 > 资讯 >

2015年计算机二级考试《C语言》提高练习题汇总三份(2)

时间: 家辉2 资讯

  1[填空题]从键盘输入一组小写字母,保存在字符数组str中。请补充函数proc(),该函数的功能是:把字符数组str中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入abcdefg,输出aBcDeFg。

  注意:部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在函数proe()的横线上填入所编写的若干表达式或语句。

  试题程序:

  参考解析:

  【解析】要将字符串中所有下标为奇数的小写字母转化为大写字母,应该检查字符串str中从第一个到最后一个字符,判断其下标是否为奇数,因此【l】填“str[i]!= ˊ\0ˊ”。每找到一个下标为奇数的小写字母。就将其转换为大写字母,大写字母的ASCⅡ码值比与其对应的小写字母小32,因此【2】填“32”。每判断完一个字符,要为检查下一个字符做准备,因此【3】填“i++”。

  2[填空题]数组xx[M]保存着一组3位数的无符号正整数,其元素的个数通过变量m传人函数proc()。请补充函数proc(),该函数的功能是:从数组xx中找出十位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。

  例如,当xx[8]={234 339 666 850 220 448 528 440)时,bb[5]={339 666 220 448 440}。

  注意:部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

  试题程序:

  参考解析:

  【解析】要找出数组xx中十位和百位数字相等的所有整数,首先要得到数组中每一个整数的十位和百位数字,因此,【1】处填“(xx[i]/10)%10”;如果十位和百位数字相等,则将该整数放在数组bb ee,因此,【2】处填“bb[n++]=xx[i]”;符合条件的整数个数放在变量n中,返回给主函数,因此,【3】处填“n”。

  3[简答题]编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。

  例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。

  注意:部分源程序给出如下。

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

  试题程序:

  参考解析:

  【参考答案】

  【考点分析】

  本题考查:如何判断非素数;循环判断结构;数组的引用。

  【解题思路】

  题目要求将1一m之间的非素数存入数组中,应使用循环判断结构。循环语句用来遍历l一m之间的每个数,判断语句用来判断该数是否为素数,若不是素数,则将其存入数组中。本题是考查一个数是否为素数的简单延伸,只要掌握了判断素数的方法,问题便能顺利解决。

  【解题宝典】

  判定一个数是否为素数,即判断该数是否除了能被l和它本身整除外,不能被任何数整除。

  代码实现如下:

  此语句需要熟记,很多判断素数的题目可通过此法解决。

  4[填空题]请补充函数proc(),该函数的功能是判断一个数的十位数字和百位数字之和是否等于其个位上的数字,是则返回“yes!”,否则返回“no!”

  注意:部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

  试题程序:

  参考解析:

  【1】n/100 【2】yes 【3】no!

  由函数proc()可知,变量b存放的是整数n百位上的数,因此’【l】处填“n/100”;根据题目要求,十位数与百位数之和等于其个位数返回yes,因此,【2】处填“yes!”;十位数与百位数之和不等于其个位数返回ri0,因此,【3】处填“no!”。

  5[填空题]请补充fun()函数,该函数的功能是:把字符的ASCII码中为奇数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输人,其长度作为参数传人fun()函数。

  例如,输入“abcdef”,则输出“bdf”。

  注意:部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在mare()函数的横线上填入所编写的若干表达式或语句。

  试题程序:

  参考解析:

  【解析】先判断ASCⅡ码的奇偶。

  第一空:根据主函数“fun(str,len);”调用语句,其中len为字符串str的长度,用来控制循环。根据主函数中对应的调用语句,补全fun()函数定义,第一空填“fun(char s[],intn)”。

  第二空:“s[j++]=s[i];”语句中j的变量在使用前要对其取值进行初始化,因为数组下标是由0开始的,初始化值为0,所以第二空填“j-0”。

  第三空:新生成的字符串要加尾符标志,所以第三空填“s[j]= ˊ\0ˊ”。

  6[单选题] 在数据库设计中,将E—R图转换成关系数据模型的过程属于( )。

  A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段

  参考解析:E—R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。

  7[单选题] 对如下二叉树进行后序遍历的结果为(  )。

  A.ABCDEFB.DBEAFCC.ABDECF D.DEBFCA

  参考答案:D

  参考解析:所谓的后序遍历是指,首先遍历左子树,然后遍历右子树,最后访问根结点,并且在遍历左、右树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。因此,后序遍历二叉树的过程也是一个递归过程。

  8[单选题] 对线性表进行二分法检索,其前提条件是(  )。

  A.线性表以顺序方式存储,并按关键码值排好序

  B.线性表以顺序方式存储,并按关键码的检索频率排好序

  C.线性表以链式方式存储,并按关键码值排好序

  D.线性表以链式方式存储,并按关键码的检索频率排好序

  参考答案:A

  参考解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序。

  9[单选题] 以下叙述中正确的是( )。

  A.C语句必须在一行内写完

  B.C程序中的每一行只能写一条语句

  C.C语言程序中的注释必须与语句写在同一行

  D.简单C语句必须以分号结束

  参考答案:D

  参考解析:C语句可以跨行来写,但是必须以分号结束,所以A选项错误。c程序中的一行可以有多条语句,所以B选项错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C选项错误。

  10[单选题] 在满足实体完整性约束的条件下( )。

  A.一个关系中应该有一个或多个候选关键字

  B.一个关系中只能有一个候选关键字

  C.一个关系中必须有多个候选关键字

  D.一个关系中可以没有候选关键字

  参考答案:A

  参考解析:实体完整性约束要求关系的主键中属性值不能为空值,所以选择A。

55638