国家二级C++机试(C++流)模拟试卷6
国家二级C++机试(C++流)模拟试卷6(总分:44.00,做题时间:90分钟)一、选择题(总题数:22,分数:44.00)1.下列关于C++流的说明中,正确的是( )。
(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现√B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin是一个预定义的输入流类D.输出流有一个名为open的成员函数,其作用是生成一个新的流对象解析:解析:此题考查的是C++流的概念。
从输入流中提取数据称为提取操作,把表达式插入到输出流中的操作称为插入操作,故选项B错误;cin是一个预定义的输入流对象而不是流类,故选项C错误;输入输出流中没有open成员函数,故选项D错误。
2.在语句cin>>data;中,cin是( )。
(分数:2.00)A.C++的关键字B.类名C.对象名√D.函数名解析:解析:此题考查的是预定义流对象。
C++有4个预定义的流对象:cin—标准输入;cout—标准输出;cerr—标准出错信息输出:clog—带缓冲的标准出错信息输出。
3.如果利用C++流进行输入输出,下面的叙述中正确的是( )。
(分数:2.00)A.只能借助于流对象进行输入输出√B.只能进行格式化输入输出C.只能借助于cin和cout进行输入输出D.只能使用运算符>>和<<进行输入输出解析:解析:此题考查的知识点是C++流。
利用C++流既可以进行有格式输入输出,也可以进行无格式输入输出,所以选项B错误;C++的4个预定义的流对象为:cin—标准输入,cout—标准输出,cerr—标准出错信息输出,clog—带缓冲的标准出错信息输出,选项C错误;C++流除了可以使用提取“>>”插入““”进行输入输出外,还可以通过流对象的一些成员函数进行输入输出,故选项D错误。
4.下列有关C++流的叙述中,错误的是( )。
(分数:2.00)A.C++操作符setw设置的输出宽度永久有效√B.C++操作符end1可以实现输出的回车换行C.处理文件I/O时,要包含头文件fstreamD.进行输入操作时,eof()函数用于检测是否到达文件尾解析:解析:此题考查的是C++流。
C++操作符setw0的作用是设置输入输出宽度,且只对当前一次有效,并非永久有效,故选项A叙述错误。
5.在语句“cout<<'A';”中,cout是( )。
(分数:2.00)A.类名B.对象名√C.函数名D.C++的关键字解析:解析:C++有四个预定义的流对象:cin标准输.cout标准输出,cerr标准出错信息输出,clog带缓冲的标准出错信息输出。
6.下列关于C++流的描述中,错误的是( )。
(分数:2.00)A.cout>>'A'表达式可输出字符A √B.eof()函数可以检测是否到达文件尾C.对磁盘文件进行流操作时,必须包含头文件fstreamD.以ios_base::out模式打开的文件不存在时,将自动建立一个新文件解析:解析:Cout是一个标准输出流对象。
>>称之为提取运算符,它的功能是从输入流中提取数据赋值给一个变量。
<<为插入运算符,其功能是把表达式的值插入到输出流中。
当系统执行cout<<x操作时,首先根据x值的类型调用相应的插入运算符重载器函数,把x的值传送给对应的形参,接着执行函数体,把x的值输出到显示器屏幕上,在当前屏幕光标位置处显示出来,然后返回ostream流,以便继续使用插入运算符输出下一个表达式的值。
对于本题来说,要输出字符‘A’的值应该写成cout<'A',因而选项A)是错误的。
7.在C++中,cin是一个( )。
(分数:2.00)A.类B.对象√C.模板D.函数解析:解析:Cin为istream流类的对象。
8.下列关于C++预定义流对象的叙述中,正确的是( )。
(分数:2.00)A.cin是C++预定义的标准输入流对象√B.cin是C++预定义的标准输入流类C.cout是C++预定义的标准输入流对象D.cout是C++预定义的标准输入流类解析:解析:Cin为istream流类的标准输入对象,标准输入设备就是指键盘。
9.C++系统预定了4个用于标准数据流的对象,下列选项中不属于此类对象的是( )。
(分数:2.00)A.coutB.cinC.cerrD.cset √解析:解析:C++流有4个预定义的流对象,它们分别是:cin标准输入;cout标准输出;cerr标准出错信息输出:clog带缓冲的标准出错信息输出。
10.要利用C++流实现输入输出的各种格式控制,必须在程序中包含的头文件是( )。
(分数:2.00)A.fstreamB.istrearaireamD.iomanip √解析:解析:要使用setw、fixed等操作符,须包含iomanip这个文件。
11.在C++中,打开一个文件时与该文件建立联系的是( )。
(分数:2.00)A.流对象√B.模板C.函数D.类解析:解析:在C++中,打开一个文件时与该文件建立联系的是流对象。
12.下列关于输入输出流的叙述中,正确的是( )。
(分数:2.00)A.一个文件流可以与一个数据文件相联系√B.cin是专门从键盘输入数据的输入流类C.流运算符<<用来从输入流中读取数据D.宽度设置的效果永久有效解析:解析:当程序与外界环境进行信息交换时,存在着两个对象,一个是程序中的流对象,另一个是文件对象。
程序建立一个流对象,并指定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作用。
13.在C++中既可以用于文件输入又可以用于文件输出的流类是( )。
(分数:2.00)A.fstream √B.ifstreamC.ofstreamD.iostream解析:解析:文件流以磁盘文件以及其他可按文件方式进行管理的外部设备为输入输出对象。
ifstream是文件输入流类,ofstream是文件输出流类,fstream是文件输入输出流类,当使用cin、cout的预定义流对象进行针对标准设备的I/O操作,则需要使用iostream文件。
14.对于语句cout<<end<<x;中的各个组成部分,下列叙述中错误的是( )。
(分数:2.00)A.cout是一个输出流对象B.end1的作用是输出回车换行C.x是一个变量D.<<称作提取运算符√解析:解析:此题考查的是C++语言的输出流。
符号“<<”是预定义插入符,提取运算符是“>>”。
15.有如下程序: #inc1ude<iostream> using namespace std; int main() { cout.fill('*');cout.width(6); cout.fill('#'); cout<<123<<end1; retum 0; } 执行后的输出结果是( )。
(分数:2.00)A.##123 √B.123##C.***123D.123***解析:解析:此题考查的是I/O格式化输出。
函数width(int n)设置输入输出宽度,当实际数据宽度小于制定的宽度时,多余的位置用填充字符填满;当实际数据宽度大于设置的宽度时,仍按实际宽度输出;函数fill(charc)用来设置填充字符。
16.下面关于C++流的叙述中,正确的是( )。
(分数:2.00)A.cin是一个输入流对象√B.可以用ifstream定义一个输出流对象C.执行语句序列char *y="PQMN";cout<<y;将输出字符串"PQMN"的地址D.执行语句序列char x[80];cin.getline(x,80);时,若键入Happy new year 则x中的字符串是"Happy" 解析:解析:此题考查的是C++流的概念和I/O的格式化。
cin是类的对象,亦即输入流对象;ifstream是输入文件流类,不能定义一个输出流对象:C选项中最后输出的是字符串“PQMN”;D选项中x中字符串应该是“Happy new year”。
17.有如下程序: #inc1ude<iostream> #inc1ude<iomanip> using namespace std; int main() { cout.fill('*'); cnut<<left<<setw(4)<<123<<"OK"<<end1; return (); } 执行这个程序的输出结果是( )。
(分数:2.00)A.123*OK √B.123*OK**C.*123OKD.*123**OK解析:解析:此题考查了输出流的格式控制。
cout的fill()是设置填充字符;left和end1分别是使输出数据左对齐和换行:setw()函数的作用是设置输入输出的宽度,此设置效果只对以此输入或输出有效。
此题中,输出整数123时宽度为4且左对齐,得到“123*”;输出字符串“OK”时宽度没有定义实际大小输出,结果得到OK;故最后得到的输出结果是123*OK。
18.下列关于输入流类成员函数getline()的描述中,错误的是( )。
(分数:2.00)A.该函数是用来读取键盘输入的字符串的√B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格解析:解析:此题考查的是getline()函数。
getline()函数的原型为:istream.__t)rpe&getline(char_type*s,streamsize,char_type delim);。
其功能是从当前输入位置开始提取字符存入s所指向的具有n个字节的字符空间中。
遇到以下情况时停止:已提取并存储了n—1个字符;到流尾,无字符可取;下一个要提取的字符等于结束标志字符delim。
故选项B、C、D都是正确的。
getline()函数不仅可以用来读取键盘输入的字符串,还可以用来读取文件等数据流,故选项A错误。
19.有如下程序 #inc1ude<iostream> #inc1ude<iomanip> using namespace std; int main(){ cout <<setprecision(3)<<fixed<<setfill('*')<<setw(8); cout<<12.345<<<<34.567; return 0; } 若程序的输出是: **12.345**34.567 则程序中下划线处遗漏的操作符是( )。
(分数:2.00)A.setprecision(3)B.fixedC.setfill('*')D.setw(8) √解析:解析:此题考查的是输出函数的格式控制。
国家二级C语言机试(公共基础知识)模拟试卷6(题后含答案及解析)
国家二级C语言机试(公共基础知识)模拟试卷6(题后含答案及解析)题型有:1. 选择题选择题1.在E-R图中,用来表示实体联系的图形是A.椭圆形B.矩形C.菱形D.三角形正确答案:C解析:构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型(Entity)一用矩形表示;属性(Attribute)-椭圆形表示,联系(Relationship)一用菱形表示,菱形框内写明联系名。
知识模块:公共基础知识2.在E-R图中,用来表示实体的图形是A.矩形B.椭圆形C.菱形D.三角形正确答案:A解析:在E一R图中,用矩形表示实体集,在矩形内写上该实体集的名字;用椭圆形表示属性;用菱形(内部写上联系名)表示联系。
知识模块:公共基础知识3.数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段正确答案:C解析:E—R模型(实体联系模型)是将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们间的两种基本联接关系,并且可用一种图非常直观地表示出来。
它属于数据库设计的概念设计阶段。
知识模块:公共基础知识4.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是A.一对一B.一对多C.多对一D.多对多正确答案:B解析:两个实体集间的联系可以有下面几种:一对一的联系、一对多或多对一的联系和多对多的联系。
由于一个宿舍可以住多个学生,所以它们的联系是一对多联系。
知识模块:公共基础知识5.一个工作人员可使用多台计算机,而一台计算机被多个人使用,则实体工作人员与实体计算机之间的联系是A.一对一B.一对多C.多对多D.多对一正确答案:C解析:如果一个工作人员只能使用一台计算机且一台计算机只能被一个工作人员使用,则关系为一对一:如果一个工作人员可以使用多台计算机,但是一台计算机只能被一个工作人员使用,则关系为一对多;如果一个工作人员可以使用多台计算机,一台计算机也可以被多个工作人员使用,则关系为多对多。
国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析)
国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析) 题型有:1. 选择题选择题1.下列选项中不属于结构化程序设计原则的是( )。
A.可封装B.自顶向下C.模块化D.逐步求精正确答案:A解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
知识模块:选择题2.有两个关系R和T如下:则由关系R得到关系T的操作是( )。
A.投影B.交C.选择D.并正确答案:A解析:从表图中可以看出,关系T是从关系R中选取一部分字段(A和C)及其值构成新的关系,是一种纵向操作产生新列,属于投影,正确选项为A。
知识模块:选择题3.有以下程序:#include <stdio.h>main( ){printf(″%d\n”,NULL);}程序运行后的输出结果是( )。
A.1B.变量无定义,输出不确定C.—1D.0正确答案:D解析:NULL为一个符号常量,对应的ASCⅡ码值为0,答案选D。
知识模块:选择题4.有以下程序:#include<stdio.h>#define f(x)x*x*xmain( ){int a=3,s,t;s=f(a+1);t=f((a+1));printf(″%d,%d\n″,s,t);}程序运行后的输出结果是( )。
A.10,64B.10,10D.64,64正确答案:A解析:C语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修改。
所以s=f(a+1)=a+1*a+1*a+1,t=f((a+1))=(a+1)*(a+1)*(a+1),所以有无括号的运算结果是不同的。
知识模块:选择题5.有以下程序:#include<stdio.h>int f(int x,int y){return((y—x) * x);}void main( ){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(″%d\n″,d);}程序运行后的输出结果是( )。
国家二级MSOffice高级应用机试模拟题2019年(6)_含答案与解析)-交互12
国家二级(MS Office高级应用)机试模拟题2019年(6)(总分100, 做题时间120分钟)选择题1.一个栈的初始状态为空。
现将元素1、2、3、A、B、C依次入栈,然后再依次出栈,则元素出栈的顺序是( )。
SSS_SINGLE_SELA123ABCB321CBACCBA123DCBA321分值: 1答案:D栈是一种受限的线性表,只允许一端进行入栈和退栈操作,遵循“先进后出”或“后进先出”的原则,因此退栈的顺序是CBA321。
2.下列数据结构中,不能采用顺序存储结构的是( )。
SSS_SINGLE_SELA非完全二叉树B栈C队列D堆分值: 1答案:A顺序存储的特点是内存空间连续。
栈和队列可以用顺序存储,堆是完全二叉树结构,完全二叉树从根节点开始按从左到右从上到下的顺序给每一个节点进行编号,它的节点号是连续的,说明它可以用顺序存储,而非完全二叉树的节点编号是不连续的,不能用顺序存储。
3.一棵树的度为3,且没有度为2的节点,叶子节点数为5,那么度为3的节点数是( )。
SSS_SINGLE_SELA1BC3D不可能有这样的树分值: 1答案:B树中的最大节点的度称为树的度。
本题中树的度为3,那么至少有1个度为3的节点,且没有度为2的节点。
叶子落点数为5,如下图,故度为3的节点数有2个。
4.下列不属于结构化程序设计的结构是( )。
SSS_SINGLE_SELA选择结构B循环结构C顺序结构D递归结构分值: 1答案:D结构化程序设计的基本结构包括:顺序结构、选择结构和循环结构。
递归结构是一种算法思想。
不属于程序设计结构。
5.软件生命周期分为定义阶段、开发阶段和维护阶段,下列属于定义阶段任务的是( )。
SSS_SINGLE_SELA软件设计B软件测试C可行性研究D数据库设计分值: 1答案:C定义阶段包括:问题定义、可行性研究和需求分析。
问题定义是系统分析员和用户进行交流,弄清“用户需要计算机解决什么问题”,提出“系统目标与范围的说明”,提交用户审查和确认;可行性研究把待开发的系统目标以明确的语言描述出来,从经济、技术、法律等多方面进行可行性分析;需求分析是弄清用户对系统的全部需求。
国家二级C++机试(运算符重载、模板和C++流)模拟试卷6
国家二级C++机试(运算符重载、模板和C++流)模拟试卷6(总分:58.00,做题时间:90分钟)一、选择题(总题数:29,分数:58.00)1.若在表达式y/x中,''/''是作为成员函数重载的运算符,则该表达式还可以表示为( )。
(分数:2.00)A.x.operator/(y)B.operator/(x,y)C.y.operator/(x) √D.operator/(y,x)解析:解析:运算符函数的函数名是由运算符前加关键字operator构成的。
所以当“/”作为运算符重载后,其格式为operator/。
所以其作为成员函数调用时的格式为y.operator/(x)。
2.有类定义如下: class Type{ public: Type(int i=0); Type operator-(int); friend Type operator+(Type,Type); private: int val; };若有对象定义Type c1;则下列语句序列中,错误的是( )。
(分数:2.00)A.Type(3)+c1;B.e1+Type(3);C.3-c1:√D.c1-3;解析:解析:由于在类Type中对“-”进行了重载,所以根据“-”重载的形式定义,c1-3是正确的,而3-c1是错误的表达式。
3.若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。
(分数:2.00)A.Data+(Data);B.Data operator+{Data};√C.Data+operator{Data};D.operator+(Data,Data);解析:解析:“+”是一个二元运算符,因此作为成员函数重载时参数表中只有一个参数,对应于第二个操作数,而第一个操作数是对象本身。
运算符函数的函数名是由运算符前加关键字operator构成的。
4.若要对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是( )。
国家二级(C语言)机试模拟试卷61(题后含答案及解析)
国家二级(C语言)机试模拟试卷61(题后含答案及解析)题型有:1. 选择题 2. 程序填空题 3. 程序修改题 4. 程序设计题选择题1.下列叙述中正确的是A.栈与队列都只能顺序存储B.循环队列是队列的顺序存储结构C.循环链表是循环队列的链式存储结构D.栈是顺序存储结构而队列是链式存储结构正确答案:B解析:栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者均即可以顺序存储也可以链式存储。
为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列,因此循环队列是队列的一种顺序存储结构,B选项正确。
2.设某二叉树的前序序列为ABC,中序序列为CBA,则该二叉树的后序序列为A.BCAB.CBAC.ABCD.CAB正确答案:B解析:二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。
前序序列为ABC,则A为根节点。
中序序列为CBA,则C和B均为左子树节点或右子树节点,且C 为B父节点,可知后序序列为CBA,B选项正确。
3.下列排序方法中,最坏情况下时间复杂度最小的是A.冒泡排序B.快速排序C.堆排序D.直接插入排序正确答案:C解析:在最坏情况下,对长度为n的线性表排序,冒泡排序、快速排序、直接插入排序的时间复杂度均为O(n2),堆排序时间复杂度为O(nlog2n),复杂度最小。
C选项正确。
4.为了对有序表进行对分查找,则要求有序表A.只能顺序存储B.只能链式存储C.可以顺序存储也可以链式存储D.任何存储方式正确答案:A解析:二分法查找也称拆半查找,是一种高效的查找方法。
能使用二分法查找的线性表必须满足两个条件:用顺序存储结构;线性表是有序表。
A选项正确。
5.软件设计中模块划分应遵循的准则是A.低耦合低内聚B.高耦合高内聚C.低耦合高内聚D.内聚与耦合无关正确答案:C解析:模块的独立程度可以由两个定性标准度量:内聚性和耦合性。
国家二级C语言(C语言基础知识)机试模拟试卷9(题后含答案及解析)
国家二级C语言(C语言基础知识)机试模拟试卷9(题后含答案及解析)题型有:1. 选择题选择题1.下列叙述中错误的是A.C程序可以由多个程序文件组成B.一个C语言程序只能实现一种算法C.C程序可以由一个或多个函数组成D.一个C函数可以单独作为一个C程序文件存在正确答案:B解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。
在C语言中一个算法是用函数来实现的。
一个C语言源程序由许多函数组成,这些函数都是根据实际任务,确定具体的算法,由用户自己编写。
C语言源程序可以放在不同的文件中,同一个源程序中的函数也可放在不同的文件中,所以一个C 语言程序可以实现多种算法。
知识模块:C语言基础知识2.关于算法,以下叙述中错误的是A.同一个算法对于相同的输入必能得出相同的结果B.一个算法对于某个输入的循环次数是可以事先估计出来的C.某个算法可能会没有输入D.任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕正确答案:D解析:算法和程序不同,算法满足以下特性:算法有5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或多个输出。
算法的确定性是指算法中的每一个步骤都必须有明确定义,不允许有模棱两可的解释,也不允许有多义性,因此对于相同的输入必有相同的输出,同时可以事先估计算法的时间复杂度,对于有循环的算法,以循环体内的循环次数来估测时间复杂度。
知识模块:C语言基础知识3.有以下程序,在VC6平台上编译运行,程序运行后的输出结果是#include <stdio.h>main( ){int s,t,A=10;double B=6:s=sizeof(A);t=sizeof(B);printf(“%d,%d\n”,s,t);}A.4,4B.2,4C.4,8D.10,6正确答案:C解析:关键字sizeof用于测试不同类型变量所占的内存空间,返回所占的字节数。
在VC编译系统中,整型燹量占用4个字节的内存空间,而双精度型变量占用8个字节的内存空间。
国家二级C语言机试(选择题)模拟试卷118(题后含答案及解析)
国家二级C语言机试(选择题)模拟试卷118(题后含答案及解析) 题型有:1.1.下列叙述中正确的是( )。
A.二分查找法只适用于顺序存储的有序线性表B.二分查找法适用于任何存储结构的有序线性表C.二分查找法适用于有序循环链表D.二分查找法适用于有序双向链表正确答案:A解析:二分查找法(又称对分查找法)只适用于顺序存储的有序表。
在此所说的有序表是指线性表的中元素按值非递减排列(即从小到大,但允许相邻元素值相等)。
知识模块:公共基础知识2.下列不属于软件设计阶段任务的是( )。
A.软件总体设计B.算法设计C.制定软件确认测试计划D.数据库设计正确答案:C解析:从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计,所以A、B、D选项正确,C选项为软件测试阶段的任务。
知识模块:公共基础知识3.以下选项中合法的实型常量是A..914B.3.13e-2.1C.0D.2.0”10正确答案:A解析:实型常量又称实数或浮点数,一般用小数形式或指数形式来表示。
实型常量分为以下两种形式:①小数形式:小数形式是山数字和小数点组成的一种实数农示形式。
例如0.345、.123、0.0等是合法的实数。
这种表示形式必须要有小数点。
②指数形式:在C语言中,用“e”或“E”后跟一个整数来表示以10为底的幂数。
注意:字母“e”或“E”之前必须要有数字,后面的指数必须为整数。
选项B)中e后必须为整数,选项C)没有小数点,向选项D)则出现非法字符*。
知识模块:C语言基础知识4.以下叙述中正确的是A.整型常量和实型常量都是数值型常量B.常量的类型不能从字面形式上区分,需要根据类型名来决定C.预定义的标识符是C语言关键字的一种,不能另作它用D.只能在函数体内定义变量,其他地方不允许定义变量正确答案:A解析:整型常量和实型常量都是数值型常量,选项A正确;常量的类型可以从字面上区分,比如整型常量不能有小数点,组成字符为0~9等,选项B错误:预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更改了原有的含义,选项C错误;变量可以定义住程序中任何的地方,属于不同的变量,选项D错误。
国家二级C语言机试(操作题)模拟试卷602(题后含答案及解析)
国家二级C语言机试(操作题)模拟试卷602(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.使用VC++2010打开考生文件夹下blank1中的解决方案。
此解决方案的项目中包含一个源程序文件blank1.c。
在此程序中,函数fun的功能是将不带头结点的单向链表逆置,即若原链表中从头至尾结点数据域依次为2、4、6、8、10,逆置后,从头至尾结点数据域依次为10、8、6、4、2。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<stdlib.h>#define N5typeclef struct node{int data;struct node*next;}NODE;/*********found*********/【1】*fun(NODE*h){NODE*p,*q,*r;p=h;if(p==NULL)return NULL;q=p->next;p->next=NULL;while(q){/*********found*********/r=q->【2】;q->next=p;p=q;/*********found*********/q=【3】;}return p;}NODE*creatlist(int a[]){NODE*h,*p,*q;int i;h=NULL;for(i=0;i<N;i++){q=(NODE*)malloc(sizeof(NODE));q->data=a[i];q->next=NULL;if(h==NULL)h=p=q;else{p->next;=q;p=q;}}return h;}void outliSt(NODE*h){NODE*p;p=h;if(p==NULL)printf(“The list is NULL!\n”);else{printf(“\nttead”);do{printf(“->%d”,p->data);p=p->next;}while(P!=NULL);prAntf(“->End\n”j;}}main( ){NODE*head;int a[N]={2,4,6,8,10};head=creatlist(a);printf(“\nThe original list:\n”);outlist(head);head=fun(head);printf(“\nThe list after inverting:\n”);outlist(head);}正确答案:(1)NODE(2)next(3)r解析:填空1:本题考查了函数指针变量的函数返回值的类型,*fun(NODE*h)的返回值为p,而p的数据类型为NODE,因此本空应该填写NODE。
国家二级C语言程序设计机试(选择题)模拟试卷3
国家二级C语言程序设计机试(选择题)模拟试卷3(总分:80.00,做题时间:90分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,属于非线性结构的是( )。
(分数:2.00)A.循环队列B.带链队列C.二叉树√D.带链栈解析:解析:线性结构的特点:①有且只有一个根结点;②每一个结点最多有一个前驱,也最多有一个后继。
不满足线性结构条件的称为非线性结构,二叉树的非叶子结点最多可以用两个后继结点,属于非线性结构。
2.算法的空间复杂度是指( )。
(分数:2.00)A.算法在执行过程中所需要的计算机存储空间√B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数解析:解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为A。
3.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。
(分数:2.00)A.循环队列B.栈√C.队列D.二叉树解析:解析:栈是按“先进后出”的原则组织数据的;队列是按“先进先出”的原则组织数据的,因此本题答案为B。
4.软件设计中划分模块的一个准则是( )。
(分数:2.00)A.低内聚、低耦合B.高内聚、低耦合√C.低内聚、高耦合D.高内聚、高耦合解析:解析:一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为B。
5.结构化程序的三种基本控制结构是( )。
(分数:2.00)A.顺序、选择和重复(循环) √B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移解析:解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环),故正确答案为A。
6.软件需求规格说明书在软件开发中的作用不包括( )。
(分数:2.00)A.软件设计的依据B.软件可行性分析的依据√C.软件验收的依据D.用户和开发人员对软件要做什么的共同理解解析:解析:需求分析就是分析软件用户的需求是什么,描述需求的文档称为软件需求规格说明书。
国家二级C语言机试(C语言基础知识)模拟试卷20
国家二级C语言机试(C语言基础知识)模拟试卷20(总分:60.00,做题时间:90分钟)一、选择题(总题数:30,分数:60.00)1.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。
关于转换以下说法错误的是(分数:2.00)A.一条C语句可能会被转换成多条机器指令B.一条C语句对应转换成一条机器指令√C.一条C语句可能会被转换成零条机器指令D.某种类型和格式的C语句被转换成机器指令的条数是固定的解析:解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。
这些二进制指令命令机器计算,这些就是机器指令,而C语言的语句条数和机器指令的条数不是一对一的关系。
2.以下选项中不属于C语言程序运算符的是(分数:2.00)A.sizeofB.()C.<> √D.&&解析:解析:sizeof为测试内存的运算符,()为算术运算符,&&为逻辑运算符。
而<>不是C语言的运算符,C语言中!=表示不等于。
3.若变量已正确定义并赋值,以下不能构成C语句的选项是(分数:2.00)A.A=a+b;B.B++;C.a=a+b √D.A?a:b;解析:解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。
4.以下叙述中正确的是(分数:2.00)A.程序必须包含所有三种基本结构才能成为一种算法B.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达C.只有简单算法才能在有限的操作步骤之后结束D.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令√解析:解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来描述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。
由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。
