C++模拟试题

更新时间:2024-06-04 15:45:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

模拟试题1

一、选择题

1有以下程序:

程序运行后的输出结果是( )。

参考答案:B

参考解析:第一次执行外循环,i的值为3,第一次执行内循环j的值为1,j<=2条件成立,打印i+j的值,即4;第二次执行内循环J的值为2,j<=2条件成立,打印i+j的值,即5;再判断条件不成立,打印回车换行符,跳出内循环。第二次执行外循环,i的值为2,内循环的执行同第一次一样,所以打印3和4,打印回车换行,结束内循环。第三次执行外循环i的值为1,同理内循环中打印2和3,打印回车换行符,结束内循环。

2表达式:(im)((double)9/2)一9%2的值是( )。

A.0B.3C.4D.5

参考答案:B

参考解析:先将整型数据9强制转换成double型,然后除以2得到的结果与double型保持一致,即为4.5,然后将4.5强制转换成整型数据4,然后计算9%2的值为1,最后计算4一l的值为3,所以选择B选项。

3有以下程序:

运行时,若输入1 2 3 4 5 0<回车>,则输出结果是( )。

A.66656B.6566456C.66666D.6666656

参考答案:B

参考解析:switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个e·*后面的常量表达式的值相等,就执行此ca*后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有ca$e后面的常量表达式都不等,则执行default后面前语句。然后退出。所以输入l时打印65,输入2时打印6,输入3时打印64,输入4时打印5,输入5时打印6。

4有以下程序:

当执行程序时,按下列方式输入数据(从第l列开始,代表回车,注意:回车也是一个字符]1234则输出结果是( )。

A.12B.123C.1234D.12343

参考答案:D

参考解析:按照从键盘输入的数据可以_判断字符l给了变量a,字符2给了变量b,字符即回车给了变量c,字符3给了变量d。所以打印输出的结果为D选项。

5有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母:

程序运行后的输出结果是( )。

A.ab cd EFg!B.Ab Cd EFg!C.ab cd EFG!D.aB cD EFG!

参考答案:D

参考解析:调用缸函数后,实参数组名sl传给形参指针P,P也指向数组sl。m函数的功能是遍历字符数组中的所有字符,如果某一个字符是空格并且前一个字符是小写字母的话,就把前一个字符转换为大写。程序中语句P[i一1]=P[i—1]一ga?+-A?;即P[i一1]=P[i一1]一32,意思是将P[i一1]中的字符转换为大写。因此D选项正确。

6有以下程序:

程序运行后的输出结果是( )。

A.6B.3C.8D.12

参考答案:A

参考解析:本题中第一次调用为fun(8,fun(5,6)),因为fun(5,6)返回值为5,所以第二次调用为fun(8,5)=6。所以选择A。

7在软件开发中,需求分析阶段产生的主要文档是( )。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划

参考答案:B

参考解析:A错误,可行性分析阶段产生可行性分析报告。c错误,概要设计说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设计阶段编写的文档。B正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。

8有三个关系R、S和T如下:

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

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

参考答案:D

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

9有以下程序:

程序执行后的输出结果是( )。

A.321,cbaB.abc,123C.123,abcD.lbe,a23

参考答案:D

参考解析:字符串是一个特殊的数组,所以按照数组的规则,sl应该指向的是数组的首地址,即“abc”的第一个字符的地址。s2指向的是“123”的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符?a?和?1?的内容,所以打印输出为D)。

10以下选项中不合法的标识符是( )。

A.&aB.FORC.pfintD.00

参考答案:A

参考解析: C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B选项中的。FOR。可以作为标识符来用。A选项中含有非法字符&,所以选择A。

11下列语句组中,正确的是( )。

A.char*s;s=”Olympic”;

B.char s[7];s=”Olympic”;

C.char*s;s={¨Olympic”};

D.char s[7];s={\

参考答案:A

参考解析:字符型指针变量可以用选项A的赋值方 法:char$s;s=”Olympic”,选项C的写法:char$s。s={¨Olympic”};是错误的。字符数组可以在定义的时候初始化:char s[]={¨Olympic”};?或者char s[]=”Olympic”,都是正确的。但是不可以在定义字符数组后,对数组

名赋值。(数组名是常量,代表数组首地址)所以选项8和选项D都是错误的。对于本例,选项B、D中字符数组s的大小至少为8,才能存放下字符串。(字符串的末尾都有结束标识?、0?)。

12在软件开发中,需求分析阶段产生的主要文档是( )。

A.软件集成测试计划

B.软件详细设计说明书

C.用户手册。

D.软件需求规格说明书

参考答案:D

参考解析:需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。

13下列数据结构中,属于非线性结构的是( )。

A.循环队列B.带链队列C.二叉树D.带链栈

参考答案:C

参考解析:树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。

14有以下程序:

程序运行后的输出结果是( )。

A.1,2B.1,0C.3,2D.0, 0

参考答案:A

参考解析:首先打印b=a+b=1+0=1的值l,此时已给b赋值为1。然后打印a=2}b=2{1=2的值2。所以结果是1,2。

15以下程序中函数f的功能是:当na9为1时,进行由小到大排序;当na9为0时,进行由大到小排序。

程序运行后的输出结果是( )。

A.1,2,3,4,5,6,7,8,9,10,

B.3,4,5,6,7,2,1,8,9,10,

C.5,4,3,2,1,6,7,8,9,10,

D.10,9,8,7,6,5,4,3,2,1,

参考答案:B

参考解析:本题重点考察函数的参数传递,函数的参数传递分为传值和传地址两种情况。本题就是结合数组考查参数传递的情形。函数f完成的功能是对数据进行排序,语句f(&a[2],5,O)的作用是对从a[2]开始的5个元素进行从大到小排序。注意:这里传递的是地址&a[2],所以排序操作可看作是直接对数组a操作,执行后的结果为5,4,7,6,3,2,1,8,9,10。语句f(a,5,1)对数组a的前5个元素从小到大排序,排序后数组为:3,4,5,6,7,2,1,8,9,10。因此B选项正确。

16有以下程序段:

以下关于程序段执行情况的叙述,正确的是( )。

A.for循环语句固定执行8次

B.当产生的随机数n为4时结束循环操作

C.当产生的随机数n为1和2时不做任何操作

D.当产生的随机数n为0时结束程序运行

参考答案:D

参考解析:Case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的ease语句,就从此cafle子旬执行下去,不再进行判断,直到碰到break或函数结束为止。简单的说break是结束整个循环体,而continue是结束单次循环。B选项中当产生的随机数n为4时要执行打印操作。C选项中当产生的随机数为l和2时分别执行cage3与case4后面语句的内容。由于存在break语句所以for循环不是固定执行8次,执行次数与产生的随机数n有关系。

17算法的有穷性是指( )。

A.算法程序的运行时问是有限的。

B.算法程序所处理的数据量是有限的

C.算法程序的长度是有限的

D.算法只能被有限的用户使用

参考答案:A

参考解析:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。

18有如下嵌套的if语句:

以下选项中与上述if语句等价的语句是( )。

A.k=(aC.?b:C.;B.k=(a

参考答案:B

19有以下程序:

程序运行后的输出结果是( )。

A.0B.1C.2D.3

参考答案:B

参考解析:第一次执行外循环i的值为1,满足条件,判断第一次内循环,j的值为3,不满足条件,跳出内循环。第二次执行外循环i的值为2,同理也不满足内循环条件,跳出内循环。第三次执行外循环i的值为3,此时进入内循环判断条件时,条件成立,执行m=m%j,m的值为1,跳出内循环,跳出外循环打印m的值。

20有三个关系R、S和T如下:

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

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

参考答案:D

参考解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T关系中的有序组可知R与S进行的是自然连接操作。

21有以下程序(说明:字母A的ASCIl码值是65):

程序运行后的输出结果是( )。

A.BTB.YEC.YTD.BY

参考答案:B

参考解析:本题中执行fun(a)时,会取字符串a的第一个字母B,因为字母B的ASCIl码值为66,所以不会输出字母8,函数只会输出ASCIl码值为奇数的字母,字母Y的ASCIl码值为89,字母T的ASCIl码值为84,字母E的ASCII码值为69。因此B选项正确。

22下列叙述中正确的是( )。

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

D.链式存储结构比顺序存储结构节省存储空间

参考答案:A

参考解析:链式存储结构既可以针对线性结构也可以针对非线性结构,所以B与C错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D错误。

23软件测试的目的是( )。

A.评估软件可靠性

B.发现并改正程序中的错误

C.改正程序中的错误

D.发现程序中的错误

参考答案:D

参考解析:软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能。不是为了评估软件或改正错误。

24软件生命周期是指( )。

A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

参考答案:A

参考解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

25以下关于retllm语句的叙述中正确的是( )。

A.一个自定义函数中必须有一条return语句

B.一个自定义函数中可以根据不同情况设置多条retum语句

C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

参考答案:B

参考解析:在函数中允许有多个IettLrll语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,c选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用处,A、D选项描述错误。因此B选项正确。

26在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。

A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)

参考答案:C

参考解析:当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较l092n次,而顺序查找需要比较n次。

27若有定义语句:double x,y,*px,*PY;执行了laX=&x;lay=&y;之后,正确的输入语句是( )。

A.scanf(”%If%le”,px,lay);

B.seanf(”%f%f¨&x,y);

C.seanf(”%f%f\,x,y);

D.8canf(”%If%If'·,x,y):

参考答案:A

参考解析:因为X,Y都是double型数据,所以输入时的格式字符应为%If,所以B与C错误。D选项中scanf(”%lf%%?,x,Y);应为sc“(”%If%If'?,,&)r);。

28

程序运行后的输出结果是( )。

A.1002,ZhangDa,1202.0

B.1002,ChangRon9。1202.0

C.1001,ChangRon9,1098.0

D.1001,ZhangDa,1098.0

参考答案:B

参考解析: 本题考查结构体变量的引用以及作为函数参数,题目虽然看似复杂,其实比较容易,f函数的参数是结构体变量,然后对参数重新赋值并返回,所以该题目的答案为B选项。

29当变量c的值不为2、4、6时,值也为”真”的表达式是( )。

A.(c>=2&&c<=6)&&(c%2 1=1)

B.(c==2)l l(e==4)II(C==6)

C.(C>=2&&c<=6)&&!(c%2)-

D.(c>=2&&c<=6)I l(c!=3)I|(C!=5)

参考答案:D

参考解析:逻辑或运算符中只要有一个运算量为真结果就是真,当c>=2&&C<=6条件不成立时c的值肯定不是2、3、4…5 6所以C!=3,与C!=5均成立。所以D选项的结果一定为真。

30以下选项中关于C语言常量的叙述错误的是( )。

A.经常被使用的变量可以定义成常量

B.常量分为整型常量、实型常量、字符常量和字符串常量

C.常量可分为数值型常量和非数值型常量.

D.所谓常量,是指在程序运行过程中,其值不能被改变的量

参考答案:A

参考解析:C语言中,常量是指在程序运行过程中其值不能被改变的量,变量是指运行过程中其值可以改变的量,二者不能混淆,所以A选项错误。

31C源程序中不能表示的数制是( )。

A.十六进制B.八进制C.十进制D.二进制

参考答案:D

参考解析:在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,所以选择D。

32有以下程序:

程序运行后的输出结果是( )。

A.1B.11C.6D.21

参考答案:D

参考解析:本题考查位运算,以及按位或操作,将a左移一位相当于是将a乘以了4,所以a<<2等于20,二进制表示为00010100,与b按位或得到00010101,即21,所以选项D正确。

33设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是( )。

A.++kB.k+=1C.k++D.k+1

参考答案:C

参考解析:先使k的值自增l后再使用,k++是先取得k的值再将k的值自增l,所以c选项中表达式的值为0,而其他三个表达式的值均为1,所以选择c。

34有以下程序:

程序运行后的输出结果是( )。

A.AfternoonB.ftemoonC.MorningD.oming

参考答案:A

参考解析:本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和一般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给

指向字符指针的指针,所以数组名a可以用做函数fun()的实参。在fun()函数中,++P操作使形参P往后移动一个字符指针的位置,即指针a[1]的位置。故最后通过础nd()函数输出的字符串为“Afternoon”。因此A选项正确。

35有以下程序:

程序执行后的输出结果是( )。

A.PrphsbnB.ProhsbnC.ProgsbnD.Program

参考答案:B

参考解析:(*q)++是q所指的字符加l,q++就是指针移到下一个字符。因此B选项正确。

36有以下程序:

程序执行后的输出结果是( )。

A.1B.2C.4D.死循环

参考答案:A

参考解析:一一k先自减再使用,所以第一次判断条件即为while(4),条件为真,执行打印k的值k=4—3,结果为1;第二次判断条件即为while(0),条件为假,结束循环,打印回车换行符。所以选择A选项。

37以下叙述中错误的是( )。

A.可以给指针变量赋一个整数作为地址值

B.函数可以返回地址值

C.改变函数形参的值,不会改变对应实参的值

D.当在程序的开头包含头文件stdi0.h时,可以给指针变量赋NULL

参考答案:A

参考解析:不能将一个整数直接赋给指针变量作为地址,所以A是错误的。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。

38在E—R图中,用来表示实体联系的图形是( )。

A.椭圆形B.矩形C.菱形D.三角形

参考答案:C

参考解析:在E—R图中实体集用矩形,属性用椭圜,联系用菱形。

39有以下程序:

程序运行后的输出结果是( )。

A.3B.4C.5D.6

参考答案:B

参考解析:&按位与,如果两个相应的二进制位都为l,则该位的结果值为1,否则为0。l按位或,两个相应的二1进制位中只要有一个为l,该位的结果值为l。2的二进制为1 00000010,4的二进制为00000100,所以做或运算结果为1 00000110,该数与5即00000101做与操作结果为00000100,1即4。

40程序调试的任务是( )。

A.设计测试用例

B.验证程序的正确性

C.发现程序中的错误

D.诊断和改正程序中的错误

参考答案:D

参考解析:程序调试的任务是诊断和改正程序中的错误。

二、程序填空题

41下列给定程序的功能是:从键盘输入若干行字符串(每行不超过80个字符),写入文件myfile4.txt中,用一1作字符串输入结束的标志,然后将文件的内容显示在屏幕上。文件的读写分别由函数Readrext和Write-.Text实现。

请在程序的下划线处填人正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中.不得增行或删行,也不得更改程序的结构!

参考解析:

(1)}fw

(2)str

(3)str

【考点分析】

本题考查:函数定义以及文件指针;fputs函数的功能是向指定的文件写入—个字符串,其调用形式为:fputs(字符串,文件指针)。

【解题思路】

填空1:定义函数,函数的形参是一个文件类型的指针。

填空2:此处考查fputs函数的形式,应填入str。

填空3:依据plintf函数的格式,输出字符串内容,即printf(”%8”,str);。

三、程序改错题

42下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。

例如,若输入“Ab,cD”,则输出“AB,CD”。

请改正程序中的错误,使它能得出正确的结果。

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

参考解析:

(1)if((tt[i]>=?a?)&&(tt[i]<=?z?))

(2)tt[i]一=32;

【考点分析】

本题考查:if语句条件表达式;小写字母转大写字母的方法。

【解题思路】

(1)分析本题可知,要判断字符是否为小写字母,即判断其是否在a—z之间,所以这里需要进行连续的比较,用&&。(2)从ASCIl码表中可以看出,小写字母的ASCIl码值比对应大写字母的ASCIl值大32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASCIl码值判断该字母是不是小写字母,若是,则ASCIl码值减32即可。

四、程序设计题

43某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。

例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。注意:部分源程序在文件PROGl.C中。

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

参考解析:

void fun(STREC*a)

inti:

a一>ave=0.0:

fbr(i=0;iave=a—>ave+·一>s[i];/*求各门成绩的总和}/

a->ave/=N;/}求平均分*/}

【解题思路】

本题考查自定义形参的相关知识点,程序流程是这样的:在如n()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC·a,此时,引用成员的方式可以使用指向运算符,即a一>ave和a—>s[i],当然也可用(*a),ave和(*a).S[i]。

模拟试题2

一、选择题

1以下函数实现按每行8个输出W所指数组中的数据:

在横线处应填人的语句是( )。

A.if(i/8==0)printf(”\\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(??\\n”);

D.if(i%8==0)continue;

参考答案:C

参考解析:要按照每行8个输出数据的话,横线处语句的功能应该为:当i是8的倍数时(即i%8==0),输出一个换行符。因此C选项正确。

2有以下程序:

在VC 6.0平台上编译运行,程序运行后的输出结果是( )。

A.10,6B.4,4C.2,4D.4。8

参考答案:D

参考解析:C语言中利用sizeof()函数判断数据类型长度,在VC 6.0平台中,整型int占有4个字节,doable型数据占有8个字节。

3有以下函数:

以下关于aaa函数功能叙述正确的是( )。

A.将串s复制到串t

B.比较两个串的大小

C.求字符串s的长度

D.求字符串s所占字节数

参考答案:C

参考解析:本题重点考察的知识点while循环语句的应用。一()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针t不断递增,直到t指向字符串结束标识处。当t指向结束标识处时,由于后缀++运算符的原因,它还会被再递增1,所以接下来的t一一;语句让它回到结束标识处。最后返回t—s,s还是指向字符串第l个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。因此C选项正确。

4在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( )。

参考答案:B

参考解析:while语句中条件表达式E的值不为0即为真,认为满足条件,所以与B选项中表达式的含义正好相反,选择B选项。

5有以下程序:

程序运行后的输出结果是( )。

A.7B.10C.8D.9

参考答案:D

参考解析:调用f(a,b)函数返回3,调用f(a,c)函数返回6,所以外层调用f(f(a,b),f(a,c));即调用f(3,6)函数返回9。

6有以下程序:

程序运行后的输出结果是( )。

A.1,1,2,0B.0,0,0,3C.编译有错D.0,1,2,0

参考答案:C

参考解析:本题中ff(a=1)b=1;与else d=3;之间多了语句c=2;所以会出现else语句的位置错误的编译失败提示。

7已知字符?A?的ASCII代码值是65,字符变量cl的值是?A?,c2的值是?D?。则执行语句printf(”%d,%d”,cl,c2—2);的输出结果是( )。

A.65,68B.A,68C.A,BD.65,66

参考答案:D

参考解析: 打印时以%d整型格式打印输出,所以字符标量cl的值打印出来就是65,从c2—2的值打印出来就是68—2,即66。所以选择D。

8下列叙述中正确的是( )。

A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性

参考答案:B

参考解析:线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。

9以下选项中正确的定义语句是( )。

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

10以下关于C语言数据类型使用的叙述中错误的是( )。

A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

B.若要保存带有多位小数的数据,可使用双精度类型

C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型

D.整数类型表示的自然数是准确无误差的

参考答案:C

参考解析:C语言中没有逻辑类型,所以c错误。若要保存带有多位小数的数据,可以用单精度类型也可以用双精度类型。处理包含不同类型的相关数据可以定义为结构体类型。整数类型可以无误差的表示自然数。

11下列关于栈的叙述正确的是( )。

A.栈按“先进先出”组织数据,

B.栈按“先进后出”组织数据

C.只能在栈底插入数据

D.不能删除数据

参考答案:B

参考解析:栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作。

12以下叙述中正确的是( )。

A.c语言规定必须用main作为主函数名,程序将从此开始执行

B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C.c语言程序将从源程序中第一个函数开始执行、

D.main的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等

参考答案:A

参考解析:C语言中的主函数只能是main()函数,不能任意指定,所以B选项错误。C语言从主函数main()开始,到主函数main()结束,所以C选项错误。主函数必须写成小写的main,不能混淆大小写,所以D选项错误。

13有以下程序:

程序运行后的输出结果是( )。

A.let=4B.m=2C.m=6D.m=5

参考答案:C

参考解析:第一次外循环i的值为l,第一次内循环j的值为3,不满足条件执行in}=i}j即m的值为3;第二次j的值为2,不满足条件执行m·=i*j,即m的值为6;第三次j的值为1,不满足条件执行nl*=i*j,即m的值仍为6。第二次外循环i的值为2,j的值为3,满足条件,执行break语句,跳出循环。

14对于一个正常运行的C程序,以下叙述中正确的是( )。

A.程序的执行总是从main函数开始,在程序的最后一个函数中结束

B.程序的执行总是从程序的第一个函数开始,在main函数结束

.C.程序的执行总是从main函数开始、

D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

参考答案:C

参考解析:任何一个c程序都是从主函数main开始,至主函数main结束,所以选择c选项。

15下列选项中属于面向对象设计方法主要特征的是( )。

A.继承B.自顶向下C.模块化D.逐步求精

参考答案:A

参考解析:面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A。

16有以下程序:

程序运行后的输出结果是( )。

A.1,2,3,0,0,0,0,0,0,0,

B.1,2,3,1,2,3,0,0,0,0,

C.123,0,0,0,0,123,0,0,0,0,

D.1,2,3,0,0,1,2,3,0,0,

参考答案:D

参考解析:本题考查文件操作函数,两次fwrite后,币文件中已经写入l,2,3,O,0,l,2,3,0,0然后将文件币中的内容重新写人数组a中,最后输出a为1。2,3,0,0,1,2,3,0,0,所以选项D正确。

17有三个关系R、S和T如下:

则由关系R和s得到关系T的操作是( )。

A.自然连接B.并C.交D.差

参考答案:D

参考解析:关系T中的元组是关系R中有面关系s中没有的元组的集合,即从关系R中除去与关系s中相同元组后得到的关系T。所以做的是差运算。

18有三个关系R、S和T如下:

则由关系R和s得到关系T的操作是( )。

A.自然连接B.交C.投影D.并

参考答案:A

参考解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和s做的是自然连接操作。

19对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

参考答案:D

参考解析:除了堆排序算法的比较次数是O(nlog2n),其他的都是n(n-1)/2。

20以下叙述中正确的是( )。;

A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D.c语言中的文件是流式文件,因此只能顺序存取数据

参考答案:A

参考解析:B选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第l个数据,可以用fseek()函数进行重新定位即可。D选项中,C语言中的文件可以进行随机读写。

21有以下程序:

程序运行后的输出结果是( )。

A.4B.34C.31D.32

参考答案:C

参考解析:本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数4.0,这样对应定义fun函数首部有三种形式,这里采用了第一种形式——行指针,这样在fun函数对s[i][j]进行操作实际上就是对主函数中的a[i][j]进行操作,再分析fun函数的作用便可知,是求二维数组第0列中最大的那个元素。因此C选项正确。

22下列叙述中正确的是( )。

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

本文来源:https://www.bwwdw.com/article/vrm6.html

Top