1[填空题]下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]…中,把偶数从数组中删除,奇数个数通过函数值返回。
例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除偶数后,a所指数组中的数据为:9,1,3,5,7,返回值为5。
请在程序的下画线处填入正确的内容并将下画线删除.使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
【参考答案】
(1)1 (2)J++ (3)J
【考点分析】
本题考查:if语句,条件表达式;自增、自减运算符;函数返回值。
【解题思路】
填空l:根据题目要求,需进行奇偶数的判定,可以通过if条件语句来判断数组元素是否为奇数,如果元素不能被2整除,则为奇数,所以填入if(a[i]%2==1)。
填空2:将为奇数的元素重新存放到数组的前面,同时下标增1。
填空3:函数返回值需要返回数组中奇数的个数,因此返
回变量J。
【解题宝典】
奇数和偶数的判定方法,对2求余运算,结果为0是偶数,结果为1是奇数。
自增l、自减1运算符:自增l运算符记为“++”,其功能是使变量的值自增1;自减1运算符记为“一一”,其功能是使变量值自减l。自增1、自减1运算符均为单目运算符,具有右结合性,有以下几种形式:
++i:i自增l后再参与其他运算。
_-i:1’自减1后再参与其他运算。
i++:i参与运算后,i的值再自增1 0
i一一:i参与运算后,i的值再自减1。
2[单选题] 若有以下程序
则程序的输出结果是
A.5,6,0B.6,0,0C.6。6,1D.5,6,1
参考答案:C
参考解析:本题重点考查C语言中for语句和逻辑表达式,for语句的一般形式为:
for(表达式1;表达式2;表达式3)语句其循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但“;”不能缺省。该题目中省了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。for(;a&&(b==0);){b+=a s a-=e++;}相当于while(a&&(b==0)){b+=a;a-=c++;}。因此c选项正确。
3[单选题] 以下选项中正确的定义语句是( )。
A.double,a,b;B.double a=b=7;C.double a;b;D.double a=7,b=7;
参考答案:D
参考解析:A选项中变量类型符double后面不能有逗号。B选项中变量b不能先使用再定义,应该写成选项D中的格式。C选项中变量a后面应该是逗号而不是分号。
4[单选题] 有以下程序
程序要求输出结构体中成员a的数据,以下不能填入横线处的内容是
A.a.aB.*P.aC.P->aD.(*p).a
参考答案:B
参考解析:本题考查结构体变量的引用,题目中要求输出结构体中成员a的数据,P为指针,* P为结构体变量,那么*P.a可以表示为结构体中成员a的数据。
5[单选题] 下列关于二叉树的叙述中,正确的是( )。
A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个
C.叶子结点数是度为2的结点数的两倍
D.度为2的结点数是度为1的结点数的两倍
参考答案:B
参考解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个。所以选择8。
6[单选题] 数据库管理系统是
A.操作系统的一部分
B.在操作系统支持下的系统软件
C.一种编译系统
D.一种操作系统
参考答案:B
参考解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。
7[单选题] 有以下程序:
则以下函数调用语句错误的是( )。.
A.k=f(a,B.;B.k=add(a,B.;C.k=(*f)(a,B.;D.k={f(a,B.;
参考答案:D
参考解析:s与()的优先级,()的优先级高于*,因为(+f)()定义函数指针f。f指向函数的指针。f=add,将函数8dd()的首地址赋给指针f,所以调用函数add()可以写为f(),其返回值是整型,不是指针类型,不能用t取指针指向的内存单元的数据,故k=*f(a,b)的调用方式错误。答案为D选项。
8[单选题] 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。
参考答案:A
参考解析:B选项中switch((int)x);语句中不应该有最后的分号。switch(exprl),中的exprl不能用浮点类型或10n9类型,也不能为一个字符串,所以c错误。ca”后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。
9[单选题] 以下关于字符串的叙述中正确的是( )。
A.空串比空格打头的字符串小
B.两个字符串中的字符个数相同时才能进行字符串大小的比较
C.可以用关系运算符对字符串的大小进行比较
D.C语言中有字符串类型的常量和变量
参考答案:A
参考解析:字符串比较大小是以第l个不相同字符的大小为标准的,跟长度没有关系,B选项不正确;字符串比较大小除了使用库函数s协emp()以外,就只能靠自己写代码来实现了。而不能通过关系运算符来比较大小。因为字符串在表达式中相当于const char+,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。c选项不正确。C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为l,因此A选项是正确的。
10[单选题] 以下叙述中错误的是( )。
A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
参考答案:A
参考解析:关键字typedef的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A错误。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |