有关c语言文件的试题及答案,2015年计算机二级《C语言》精选练习题及答案(11)...

1[单选题] 下面选项中关于位运算的叙述正确的是

A.位运算的对象只能是整型或字符型数据

B.位运算符都需要两个操作数

C.左移运算的结果总是原操作数据2倍

D.右移运算时,高位总是补0

参考答案:A

参考解析:本题考查位运算。按位取反只需要一个操作数,所以B选项错误。左移一位是原操作数的2倍,其他情况不是,比如左移两位就是原操作数的4倍,所以C选项锗误,右移运算时。高位在某些情况下不是补0。

2[单选题] 以下关于C语言的叙述中正确的是( )。

A.C语言的数值常量中夹带空格不影响常量值的正确表示

B.C语言中的变量可以在使用之前的任何位置进行定义

C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致\

D.C语言中的注释不可以夹在变量名或关键字的中间

参考答案:D

参考解析:C语言的数值常量中不能夹带空格,所以A错误。C语言中的变量都必须先定义再使用,对变量的定义通常放在函数体内的前部,但也可以放在函数外部或复合语句的开头。不能随便放置,所以8错误。在C语言中运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致,所以C错误。

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

A.在c语言中分号是语句的组成部分

B.c语言程序由c语句组成,可以省略main函敷

C.分号是C语句之间的分隔符

D.所有程序行都必须用分号结束

参考答案:A

参考解析:C程序的人口函数是main(),C程序中有且只有一个main函数,故选项8错误。分号是c语言一条语句的结束标志,不是分隔符,c语言分隔符是用来分隔多个变量、数据项、表达式等的符号,包括逗号、空白符、分号和冒号等,选项C错误。c语言的程序不是以分号结束的,因为c语言是面向过程的,从main函数开始在main函数里结束,选项D错误。故答案为A选项。

4[单选题] 有三个关系R、S和T如下:

887a47a15528957c31a05c9e6b0e38c7.png

其中关系T由关系R和s通过某种操作得到,该操作为( )。

A.选择B.投影C.交D.井

参考答案:D

参考解析:关系T中包含了关系R与s中的所有元组,所以进行的是并的运算。

5[单选题] 以下选项中正确的定义语句是( )。

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后面应该是逗号而不是分号。

6[单选题] 有以下程序

d8db9b128f0de645a596a8742a3b3f7b.png

程序的输出结果是

A.8 4B.9 6C.9 4D.8 5

参考答案:A

参考解析:本题主要考查局部变量和全局变量的区别,题目中函数之外定义的d为全局变量,函数fun内定义的d为局部变量。所以执行fun函数后,打印出8,执行完d+=a++;后d变为4,所以答案为A。

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

A.转义字符要用双引号括起来,以便与普通的字符常量区分开

B.字符常量在内存中占2个字节

C.字符常量需要用单引号括起来

D.字符常量是不能进行关系运算的

参考答案:C

参考解析:B选项中,字符常量在内存中占1个字节;A选项中,转义字符是以反斜线"\"开头,后跟一个或几个字符;D选项中,字符常量可以进行关系运算,不能参与数值运算。因此C选项正确。

8[单选题] 有以下程序

1e6112156f757970cfb84ebfd96397b6.png

程序的输出结果是(  )

A.输出格式不合法,输出出错信息B.65,89C.65,90D.A,Y1

参考答案:B

参考解析:本题重点考查字符变量的相关知识。分别给字符型变量a和b分别赋值为'A'和'Y',Printf函数的%d控制符,输出的是数字,即A和Y的ASCII码,因此输出结果为65,89,因此B选项正确。

9[单选题] 有三个关系R、s和T如下:

f65f66288950a7083cdc1a5ddae8c902.png

由关系R和s通过运算得到关系T,则所使用的运算为( )。

A.并B.自然连接C.笛卡尔积D.交

参考答案:D

参考解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以8错误。笛卡尔积是用R集合中元素为第一元素,s集合中元素为第二元素构成的有序对,所以c错误。根据关系T可以很明显地看出是从关系R与关系s中取得相同的关系组所以取得是交运算,选择D。

10[简答题]下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。

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

63316ecfc2306d7f1ef9389507fbfd2a.png

82b53cbcedaf81a4d9e278b753068b07.png

参考解析:

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

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

【考点分析】

本题考查:冒泡排序算法;for循环语句格式;指针数组。

【解题思路】

(1)此处考查for语句的格式,各表达式之间应用“;”隔开。

(2)此处考查用指针表示数组元素的方法,}(pstr+I)表示pstr所指向数组的第1个元素,同理}(pstr+j)表示pstr所指向数组的第j个元素。

【解题宝典】

冒泡排序算法,其基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。依次类推,完成排序。

用代码实现数组s[N]的升序排列为:for(i=0;i

for(j=i十1;j

if(s[i]>s[j]){t-s[i];s[i]=s[j]s[j]=t;}

相关推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值