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如下:
其中关系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[单选题] 有以下程序
程序的输出结果是
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[单选题] 有以下程序
程序的输出结果是( )
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如下:
由关系R和s通过运算得到关系T,则所使用的运算为( )。
A.并B.自然连接C.笛卡尔积D.交
参考答案:D
参考解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以8错误。笛卡尔积是用R集合中元素为第一元素,s集合中元素为第二元素构成的有序对,所以c错误。根据关系T可以很明显地看出是从关系R与关系s中取得相同的关系组所以取得是交运算,选择D。
10[简答题]下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
参考解析:
(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;}
相关推荐: