第 1 页:选择题 |
第 5 页:程序填空题 |
第 6 页:程序改错题 |
一、选择题
1执行下列程序后,变量a,b,C的值分别是( )。
int x=5,y=4;
int a,b,c;
a=(--x==y++)?x=++y;
b=++x;
c=y:
A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5, b=6,c=5 D.a=1,b=5,c=6
参考答案:B
参考解析:本题考查自加(++)、自减(--)运算符的使用。“++x,--x”,在变量x前使用,先使x的值加1或者减1,再使用此时的表达式的值参与运算;“x++,x”,先把使用x的值参与运算,在使用x之后,再使X的值加1或者减1。对于表达式--x=4,y++=4,两者相等,--x=y++为真,所以a=x=4,执行完此语句后y的值是5。第2个表达式b=++x,x的值先加1,然后赋给b,即b=x+1=5;表达式c=y=5。故选项B正确。
2若有以下程序段:
jnt c1=1,c2=2,c3:
c3=c1/c2:
执行后的输出结果是( )。
A.0B.1/2C.0.5D.1
参考答案:A
参考解析:cl和c2都是整数,1/2取整得0,舍弃小数点。因此正确答案为A。
3若有定义:“int a=4,b=5;float x=3.4,y=2.1;”,则下列表达式的值为( )。
A.5.5B.55C.5.500000 D.55.00000
参考答案:C
参考解析:在计算(float)(a+b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。
在计算(int)x%(int)y时,先将x和y通过强制类型转换成int型,再进行求余运算,结果为1。又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。
类型转换的一般规则是低级类型从高级类型进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→log→float→double。
4下列程序的执行结果是( )。
A.3,14,1B.3,l4,2C.2,04,1D.2,14,l
参考答案:A
参考解析:本题主要考查自加减运算符(++,--)的使用。①如果作为前缀变量“++a,--a”,在使用a之前,先使a的值加1或者减1,再使用表达式的值参与运算;②后缀变量“a++,a--”,先使用表达式的值参与运算,在使用a之后,再使i的值加1或者减1。在本题中计算表达式c=(a++)-1时先使用a的值进行计算,结果为c=2-1=l,然后将a的值加1,即执行完此句后a的值是3;表达式c+=-a+++(++b)也可写成c=c+(-a++)+(++b),c=1+(-3)+3=l,此时a=4,b=3。
5下列程序的输出结果是( )。
A.19B.18C.6D.8
参考答案:D
参考解析:本题考查switch ease开关语句,default退出继续循环。当i=1时,执行case 1,因为没有break语句,所以依次往下运行,a=a+2=2,a=a+3=5;当i=2时,执行case 2,没有break语句,所以依次往下运行,a=a+2=7,a=a+3=10;当i=3时,执行case 3,当a=a+1=11,没有break语句,所以依次往下运行,a=a+2=13,a=a+3=16;当i=4时,没有case语句,则执行default,a=a+3=19,i=5不成立,循环结束。
6下面程序的功能是输出以下形式的金字塔图案:
在横线处应填入的是( )。
A.iB.2*i一1C.2*i+1D.i+2
参考答案:B
参考解析:通过观察可知图形共4行,主函数中通过一个for循环四次,输出4行。第一行输出3个空格和1个“*”,第2行输出2个空格和3个“*”,第3行输出3个空格和5个“*”,第四行输出7个“*”,主函数中通过第二个循环控制每行的输出空格数,第三个for循环控制输出的“*”的个数,总结规律:每行输出的“*”的个数,总比前一行的多2个,且第一行的个数为1,可以断定每行输出的“*”的个数组成了一个公差为2的等差数列,所以每行输出“*”的个数即该等差数列的通项,故该空格处应该填写2*i-1。
7设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是( )。
A.0B.1C.2D.3
参考答案:C
参考解析:因为a>b不成立,故表达式a>b的值为0,即把0赋给m,因此&&左边表达式的值为0,0与任何值&&运算都为0,于是不再计算&&右边表达式的值,所以此时的n仍然为2。
8有下列二叉树:
进行中序遍历的结果是( )。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
参考答案:A
参考解析:有3种遍历方法:前序、中序和后序。中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。结果为ACBDFEC-。
9下列描述错误的是( )。
A.继承分为多重继承和单继承
B.对象之间的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
参考答案:C
参考解析:对象的封装性是指从外面看只能看到对象的外部特性,而对象的内部,其处理能力的实行和内部状态对外本来就是不可见的、隐蔽的。
10若有以下说明,则( )不是对strcpy库函数正确的调用。
A.strcpy(str2,str1)
B.B.strcpy(str3,str1)
C.strcpy(str1,str2)
D.strcpy(str5,str1)
参考答案:C
参考解析:strcpy(s1,s2)函数的功能是将字符串s2复制到字符串s1中。要保证sl存储区能容纳下s2字符串。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |