2014年全国计算机等级考试二级C语言笔试真题与答案
全国计算机等级考试二级C语言笔试试题及答案

老当益壮,宁移白首之心;穷且益坚,不坠青云之志。——唐·王勃
D) 4 (31) 有如下类定义:
class XX( int xx; public: XX(): xx(0) {cout<<' A';} XX( int n):xx ( n) {tout<<' B';} }; Class YY:public XX( Int yy; public: YY(): yy ( 0) (cout+yy;} YY ( int n ): XX (n+1 ), yy(n) (cout<<yy;} YY ( int m, int n):XX (m), yy (n) (cout<<yy;} }; 下列选项中,输出结果为 A0 的语句是 A) YY y1 (0,0); B) YY y2(1); C) YYy3(0); D) YYy4; (32) 有如下程序: #include<iostream> Using namespace std; class A( public: virtual void f () (cout+1;} void g () (cout<<2;} }; class B:public A( public: virtual void f () (cout<<3;} void g()(ecut<<4;} }; void show (A &a)(a.f();a.g( ) ; } int main()( B b; show(b); return 0; } 运行时的输出结果是 A) 12 B) 34 C) 14 D) 32 (33) 有如下程序: #include<iostream> using namespace std; class Pair( int m; int n; public: Pair ( int i, int j ): m(i), n(j) (} boot operator > ( pair p ) const;//须在类体外给出定义 ); int main () { Pair Al(3,4),p2(4,3); p3(4,5); Cout<< (pl>p2) << (P2>P1) << (p2>p3) << (p3>p2); return 0; } 运算符函数。operator〉的功能是比较两个 Pair 对象的大小,当左边对象大时,返回 true,否则 返 回 false。比较规则是首先比较两对象的 m 成员,m 大者为大;当 m 相等时比较 n, n 大者为大。程序输 出 0101, 下列对运算符重载函数的正确定义是 A ) bool Pair::operator> ( Pair p ) const {if (m!=p.m) return m>p.m; return n>p.n;}
计算机二级c语言历年真题及答案

计算机二级c语言历年真题及答案【篇一:国家计算机二级c语言历年真题及答案】class=txt>c语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是a)循环队列b) 带链队列c) 二叉树d)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是a) 循环队列b) 栈c)队列d)二叉树(3)对于循环队列,下列叙述中正确的是a)队头指针是固定不变的b)队头指针一定大于队尾指针c)队头指针一定小于队尾指针d)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指a)算法在执行过程中所需要的计算机存储空间b)算法所处理的数据量c)算法程序中的语句或指令条数d)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是a) 低内聚低耦合b) 高内聚低耦合c) 低内聚高耦合d) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是a) 可封装d) 自顶向下c) 模块化d) 逐步求精(7)软件详细设计产生的图如下:该图是a) n-s图b) pad图c) 程序流程图d) e-r图(8)数据库管理系统是a)操作系统的一部分b) 在操作系统支持下的系统软件c) 一种编译系统d) 一种操作系统(9)在e-r图中,用来表示实体联系的图形是a) 椭圆图b) 矩形c) 菱形d) 三角形(10)有三个关系r,s和t如下:其中关系t由关系r和s通过某种操作得到,该操作为a) 选择b) 投影c) 交d) 并(11)以下叙述中正确的是a)程序设计的任务就是编写程序代码并上机调试b)程序设计的任务就是确定所用数据结构c)程序设计的任务就是确定所用算法d)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是a)voidb)8_8c)_0_d)unsigned(13)阅读以下程序#includemain(){ int case; float printf;printf(“请输入2个数:”);scanf(“%d %f”,case,pjrintf);printf(“%d %f\n”,case,printf);}该程序编译时产生错误,其出错原因是a)定义语句出错,case是关键字,不能用作用户自定义标识符b)定义语句出错,printf不能用作用户自定义标识符c)定义语句无错,scanf不能作为输入函数使用d)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是a)0b)3c)4d)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为a)-20b)-10c)0d)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是a)0,0c)3,2d)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是a)if(ab) c=a,a=b,b=c;b)if(ab) {c=a,a=b,b=c;}c)if(ab) c=a;a=b;b=c;d)if(ab) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是a)3b)5c)7d)9(19)以下程序段中,与语句:k=ab?(bc?1:0):0;功能相同的是 a)if((ab)(bc)) k=1;else k=0;b)if((ab)||(bc) k=1;else k=0;c)if(a=b) k=0;else if(b=c) k=1;d)if(ab) k=1;else if(bc) k=1;else k=0;20)有以下程序#include{ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]=’a’s[i]=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是a)0b)2c)3d)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++n++2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是a)0 2b)1 3c)5 7d)1 2(22)有以下定义语句,编译时会出现编译错误的是a)char a=’a’;b)char a=’\n’;c)char a=’aa’;d)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’a’+’8’-‘4’;c2=’a’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母a的ascii码为65,程序运行后的输出结果是a)e,68【篇二:2014年三月全国计算机二级c语言上机考试题库】txt>题库100套第01套:给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
全国计算机等级考试二级C语言真题题库4+2014年3月

全国计算机等级考试二级C语言真题题库4 2014年3月(总分:43.00,做题时间:120分钟)一、—、选择题(每小题1分,共40分)(总题数:40,分数:40.00)1.在最坏情况下()。
(分数:1.00)A.快速排序的时间复杂度比冒泡排序的时间复杂度要小B.快速排序的时间复杂度比希尔排序的时间复杂度要小C.希尔排序的时间复杂度比直接插入排序的时间复杂度要小√D.快速排序的时间复杂度与希尔排序的时间复杂度是一样的解析:[解析]对长度为n的线性表排序常用排序方法时间复杂度如下表所示。
2.在深度为7的满二叉树中,度为2的节点个数为()。
(分数:1.00)A.64B.63 √C.32D.31解析:[解析]在树结构中,一个节点所拥有的后件个数称为该节点的度。
深度,定义一棵树的根节点所在的层次为1,其他节点所在的层次等于它的父节点所在的层次加1,树的最大层次称为树的深度。
满二叉树指除最后一层外,每一层上的所有节点都有两个子节点的二叉树。
一棵深度为K的满二叉树,整棵二叉树共有2K-1个节点;满二叉树在其第i层上有2i-1个节点。
在满二叉树中,只有度为2和度为0的节点。
深度为7的满二叉树,节点个数为27-1=127,第七层叶节点个数为27-1=64,则127—64=63,B选项正确。
3.设栈的顺序存储空间为S(1:m),初始状态为top=m+1。
现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为()。
(分数:1.00)A.30B.20C.m-19 √D.m-20解析:[解析]栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。
入栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。
栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。
初始状态为top=m+1,当top==20时,元素依次存储在单元20:m中,个数为m-19,故C选项正确。
4.算法空间复杂度的度量方法是()。
更新!2014年6月二级C省考题(含答案) (1)

福建省高校计算机等级考试二级c(2014年6月题库)一、选择题【01~05】CCABC 【06~10】BADBB 【11~15】BDDBB 【16~20】BDDBA1、C语言程序中的函数是由()组成A、函数名和函数体B、返回值类型和函数名C、函数首部和函数体D、函数名和参数2、下列叙述错误的是()a)C语言程序一行内可以有多条语句b)C语言程序一条语句可以分写在多行c)一个C语言程序可以有多个main()函数d)一个C语言程序只能有一个main()函数3、结构化程序设计的3种基本结构是顺序结构、()和循环结构。
a)选择结构b)逻辑结构c)递归结构d)嵌套结构4、结构化程序设计采用的方法不包括()a)模块化设计b)封装、继承和多态c)自顶向下、逐步细化d)结构化编码5、下列关于C语言程序的叙述错误的是()a)注释内容必须放在/*和*/之间b)一个C语言程序由一个或多个函数组成c)编译时注释部分的错误会被发现d)可以在“{}”内写若干条语句,构成复合语句6、Turbo C中,每个signed short int型数据占用的内存空间为()字节a)8个b)2个c)1个d)4个7、若已定义:int x=2,y=3,z=5;则表达式值为2的是()。
a)z=x,zb)x+y+zc)z=(x,z)d)x=y=z8、下列叙述错误的是()a)程序中算术表达式的书写形式与数学公式完全相同b)赋值运算符的结合方式是“自右向左”c)整数与字符型变量混合运算的结果是整数d)自增和自减运算符可以用于float型变量9、要使语句scanf(“%d,%d”,&m,&n);能够正确接收从键盘输入的值,正确的数据输入形式是()。
a)10 20b)10,20c)1020d)102010、能正确表示数学关系式“k≤0或k≥10”的C语言表达式是()。
a)(k<=0)&&(k>=10)b)(k<=0) || (k>=10)c)(k>=0) || (k<=10)d)(k>=0) && (k<=10)11、若已定义:char c=‟E‟;int a=9;float x=5;则表达式c/x-a的值是()【已知‟A‟的ASCII 码为65】a)13.8b) 4.8c) 4d) 512、()为合法用户标识符。
计算机二级C语言真题及答案

精心整理2014年3月计算机二级C语言真题及答案一、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除(假设D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划?B)软件详细设计说明书C)用户手册?D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构?B)GOTO跳转间的联系是A)1:1联系?B)1:m联系C)m:1联系?D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接?B)交?C)除?A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A)1,234?B)'\123'C)123?D)"\x7G"(14)以下选项中可用作C程序合法实数的是当执行上述程序段,并从键盘输入:name=Lilinum=1001<回车>后,name的值为A)LiliB)name=LiliC)Lilinum=D)name=Lilinum=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值?B)必须是整数值C)必须是正数?#include?main(){ints;scanf("%d",&s);while(s>0){switch(s){case1:printf("%d",s+5);case2:printf("%d",s+4);break; case3:printf("%d",s+3); default:printf("%d",s+1);break;switch(n){case1:case3:printf("%d\n",n);break; case2:case4:printf("%d\n",n);continue;case0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是程序运行后的输出结果是A)0?B)3?C)7?D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++)printf("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次printf("\n");}程序运行后的输出结果是A)ABCDEF?B)AbCdEf?C)aBcDeF?D)abcdef(24)设有定义:doublex[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f",&x[6]);?fun(a);printf("\n");}程序运行后的输出结果是A)BY?B)BT?C)YT?D)YE(26)有以下程序段#include{intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);}程序运行后的输出结果是A)3?B)2?{if(*c>='a'&&*c<='z')*c=*c-('a'-'A'); c++;}}main(){chars[81]; gets(s);? fun(s);? puts(s); }?A)x+i?B)&x[i+1]C)x+(i++)?D)&x[++i](31)有以下程序#includemain(){chara[30],b[30]; scanf("%s",a);(32)设有如下函数定义intfun(intk){if(k<1)return0;elseif(k==1)return1; elsereturnfun(k-1)+1;}若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是A)2?B)3?C)4?A)3?B)6?C)8?D)12(34)有以下程序#includeintfun() {staticintx=1;x*=2;returnx;#defineS(x)4*(x)*x+1 main(){intk=5,j=2;printf("%d\n",S(k+j)); }程序运行后的输出结果是A)197?B)143?C)33?D)28printf("%d,",++(p->x));printf("%d\n",++(p->y)); }程序运行后的输出结果是A)1,2?B)4,1?C)3,4?D)2,3(38)有以下程序#include?structS{unsignedchara=8,c; c=a>>3;printf("%d\n", C);}程序运行后的输出结果是A)32?B)16?C)1?D)0操作D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称【5】是关系A的外码。
计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0123C. 0x123.456D. 0123456答案:A解析:在C语言中,十六进制常量以0x或0X开头,后跟十六进制数字。
选项A表示十六进制数,是合法的整型常量。
选项B表示八进制数,选项C表示浮点数,选项D是无效的表示。
2. 下列哪个选项是C语言中的关键字?A. switchB. caseC. defaultD. all of the above答案:D解析:在C语言中,switch、case和default都是关键字。
switch用于条件分支,case用于指定分支条件,default用于指定默认分支。
3. 在C语言中,以下哪个选项是合法的字符常量?A. 'A'B. "A"C. '\t'D. 'AB'答案:C解析:在C语言中,字符常量用单引号括起来,可以是单个字符或转义字符。
选项A是合法的字符常量,但选项B是字符串常量。
选项C 是合法的转义字符,表示水平制表符。
选项D是两个字符,不是合法的字符常量。
4. 在C语言中,以下哪个选项是合法的数组声明?A. int a[];B. int b[10];C. int c[10] = {0};D. all of the above答案:D解析:在C语言中,A选项声明了一个未指定大小的整型数组,B选项声明了一个大小为10的整型数组,C选项声明了一个大小为10的整型数组并初始化所有元素为0。
所有选项都是合法的数组声明。
5. 在C语言中,以下哪个选项是合法的函数声明?A. int func(int x);B. int func(int);C. int func();D. int func(int, int);答案:D解析:在C语言中,函数声明需要指定返回类型、函数名和参数列表。
全国计算机等级考试二级C语言真题题库1+2014年9月
全国计算机等级考试二级C语言真题题库1 2014年9月(总分:43.00,做题时间:120分钟)一、选择题(每小题1分,共40分)(总题数:40,分数:40.00)1.面向对象方法中,实现对象的数据和操作结合于统一体中的是()。
(分数:1.00)A.结合B.封装√C.隐藏D.抽象解析:[解析]对象的基本特点是:标识唯一性、分类性、多态性、封装性、模块独立性好。
封装是指隐藏对象的属性和实现细节,将数据和操作结合于统一体,仅对外提供访问方式,故B选项正确。
2.在进行逻辑设计时,将E—R图中实体之间联系转换为关系数据库的()。
(分数:1.00)A.关系√B.元组C.属性D.属性的值域解析:[解析]E-R模型和关系模式的对照表如下。
联系转换为关系数据库的关系,故A选项正确。
3.线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有()。
(分数:1.00)A.节省存储空间B.插入与删除运算效率高√C.便于查找D.排序时减少元素的比较次数解析:[解析]顺序表和链表的优缺点比较如下表所示。
率高,故B选项正确。
4.深度为7的完全二叉树中共有125个节点,则该完全二叉树中的叶子节点数为()。
(分数:1.00)A.62B.63 √C.64D.65解析:[解析〕在树结构中,定义一棵树的根节点所在的层次为1,其他节点所在的层次等于它的父节点所在的层次加1,树的最大层次称为树的深度。
完全二叉树指除最后一层外,每一层上的节点数均达到最大值,在最后一层上只缺少右边的若干节点。
深度为6的满二叉树,节点个数为26-1=63,则第7层共有125—63=62个叶子节点,分别挂在第6层的左边62个节点上,加上第6层的最后1个叶子节点,该完全二叉树共有63个叶子节点,故B选项正确。
5.下列叙述中正确的是()。
(分数:1.00)A.所谓有序表是指在顺序存储空间内连续存放的元素序列B.有序表只能顺序存储存连续的存储空间内C.有序表可以用链接存储方式存储在不连续的存储空间内√D.任何存储方式的有序表均能采用二分法进行查找解析:[解析]“有序”是特指元素按顺序排列但允许相邻元素相等,A选项错误。
全国计算机等级考试二级C语言真题题库
全国计算机等级考试二级C语言真题题库2 2014年3月(总分43, 做题时间120分钟)一、选择题(每小题1分,共40分)1. 下列叙述中正确的是()。
A 每一个节点有两个指针域的链表一定是非线性结构B 所有节点的指针域都为非空的链表一定是非线性结构C 循环链表是循环队列的链式存储结构D 线性结构的存储节点也可以有多个指针答案:D[解析]一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有—个前件,也最多有一个后件,则称为线性结构,在数据结构中习惯称为线性表。
双向链表节点具有两个指针域,属于线性结构,故A选项错误。
循环链表所有节点的指针域都为非空,属于线性结构,故B选项错误。
循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位置插入、删除,故C选项错误。
双向链表节点具有多个指针域,故D选项正确。
2. 使用白盒测试方法时,设计测试用例应根据()。
A 程序的内部逻辑B 程序的复杂结构C 程序的功能D 使用说明书答案:A[解析]白盒测试又称为结构测试或逻辑驱动测试,它允许测试人员利用程序内部的逻辑结构及有关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试,故A选项正确。
3. 在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在多个科室治疗,则实体医生和患者之间的联系是()。
A 多对多B 多对一C 一对多D 一对一答案:A[解析]一般来说,实体集之间必须通过联系来建立连接关系,分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。
医生可为多位患者看病,患者也可以找多位医生看病,实体医生与患者联系是多对多,故A选项正确。
4. 设序列长度为n,在最坏情况下,时间复杂度为O(log2n)的算法是()。
A 二分法查找B 顺序查找C 分块查找D 哈希查找答案:A[解析]对长度为n的线性表排序,最坏情况下时间复杂度,二分法查找为O(log2n);顺序查找法为O(n);分块查找时间复杂度与分块规则有关;哈希查找时间复杂度为O(1),因其通过计算HashCode来定位元素位置,所以只需一次即可。
计算机二级c语言笔试题库及答案
计算机二级c语言笔试题库及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 以下哪个函数用于将字符串s2连接到字符串s1的末尾?A. strcat(s1, s2)B. strcpy(s1, s2)C. strncpy(s1, s2, n)D. strcmp(s1, s2)答案:A3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 若有以下定义:int a[5] = {1, 2, 3, 4, 5}; 则表达式a[0] +a[2] + a[4]的值是多少?A. 8B. 10C. 12D. 15答案:C5. 在C语言中,以下哪个函数用于将一个字符串复制到另一个字符串?A. strcat()B. strcpy()C. strncpy()D. strcmp()答案:B6. 在C语言中,以下哪个关键字用于声明一个函数?A. intB. voidC. returnD. function答案:A7. 在C语言中,以下哪个关键字用于声明一个变量?A. varB. letC. intD. var答案:C8. 在C语言中,以下哪个函数用于将一个整数转换为字符串?A. atoi()B. itoa()C. sprintf()D. strcpy()答案:B9. 在C语言中,以下哪个函数用于打开一个文件?A. fopen()B. fclose()C. fread()D. fwrite()答案:A10. 在C语言中,以下哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. ref答案:C二、填空题(每题2分,共20分)1. 在C语言中,________关键字用于定义一个宏。
答案:#define2. 在C语言中,________关键字用于定义一个枚举类型。
2014年春计算机等级二级考试C语言笔试试题
2014年春计算机等级二级考试C语言笔试试题第二部分C语言程序设计一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)21、以下选项中,不能用作变量名的是____(21)_____。
A. switchB. _0_C. ForD. sqrt22、已知有声明“int x=1;”,以下语句中有语法错误的是______(22)_______。
A. if(*x) x=1;B. if(!x) x=1;C. if(x++) x=0;D. if((char)x) x=0;23、执行程序段“char c=255; c=c+1; printf("%d",c);”后,输出结果为___(23)____。
A. 256B. -255C. 1D. 024、以下有关continue语句的描述中正确的是__(24)___。
A. 可以出现在程序中任何位置B. 只能出现在循环语句中C. 只能出现在switch语句中D. 只能出现在循环语句中或switch语句中25、以下实现“仅当变量a或b的值中只有一个小于c值时输出c值”这一功能的语句中,正确的是__(25)__。
A. if(a<c&&!(b<c)||b<c&&!(a<c)) printf("%d",c);B. if(a<c||b>c&&a>c||b<c) printf("%d",c);C. if(a<c||b<c) printf("%d",c);D. if(a<c&&b<c) printf("%d",c);26. 以下数组声明中正确的是_______(26)_____。
A. int a[];B. int a[3.14];C. int a[2+3]={0};D. int a[3]={1,2,3,4};27. 以下选项中,可以正确计算a数组中元素个数的表达式是___(27)_____。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014年全国计算机等级考试二级C语言笔试真题一、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是A)1:1联系B)1:m联系C)m:1联系D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接B)交C)除D)并(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A)1,234 B)'\123'C)123 D)"\x7G"(14)以下选项中可用作C程序合法实数的是A).1e0 B)3.0e0.2C)E9 D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A)Lili B)name=LiliC)Lili num= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序#include <stdio.h>main(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case 1:printf("%d",s+5);case 2:printf("%d",s+4); break;case 3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行(21)有以下程序#include <stdio.h>main(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)3 C)7 D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#include <stdio.h>main(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);}printf("\n");}程序运行后的输出结果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程序(说明:字母A的ASCII码值是65)#include <stdio.h>void fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a);printf("\n");程序运行后的输出结果是A)BY B)BT C)YT D) YE(26)有以下程序段#include <stdio.h>main(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#include <stdio.h>main(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3 B)2 C)1 D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s; B)p=k; C)p=s[0]; D)k=s;(29)有以下程序#include <stdio.h>void fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s);puts(s);}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello BeijingC)HELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#include <stdio.h>#define N 10void fun(int x[N]){ int i=0;while(i <N) scanf(“%d”,_______);}在程序中下划线处应填入的是A)x+i B)&x[i+1]C)x+(i++) D)&x[++i](31)有以下程序#include <stdio.h>main(){ char a[30],b[30];scanf("%s",a);gets(b);printf("%s\n %s\n",a,b);}程序运行时若输入:how are you? I am fine<回车>则输出结果是A)how are you? B)howI am fine are you? I am fineC)how are you? I am fine D)how are you?(32)设有如下函数定义int fun(int k){ if (k<1) return 0;else if(k==1) return 1;else return fun(k-1)+1;}若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是A)2 B)3 C)4 D)5(33)有以下程序#include <stdio.h>int fun (int x,int y){ if (x!=y) return ((x+y)/2);else return (x);}main(){ int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序运行后的输出结果是A)3 B)6 C)8 D)12(34)有以下程序#include <stdio.h>int fun(){ static int x=1;x*=2;return x;}main(){ int i,s=1;for(i=1;i<=3;i++) s*=fun();printf("%d\n",s);}程序运行后的输出结果是A)0 B)10 C)30 D)64(35)有以下程序#include <stdio.h>#define S(x) 4*(x)*x+1main(){ int k=5,j=2;printf("%d\n",S(k+j));}程序运行后的输出结果是A)197 B)143 C)33 D)28(36)设有定义:struct {char mark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;(37)有以下程序#include <stdio.h>struct ord{ int x,y;}dt[2]={1,2,3,4};main(){struct ord *p=dt;printf("%d,",++(p->x)); printf("%d\n",++(p->y));}程序运行后的输出结果是A)1,2 B)4,1 C)3,4 D)2,3(38)有以下程序#include <stdio.h>struct S{ int a,b;}data[2]={10,100,20,200};main(){ struct S p=data[1];printf("%d\n",++(p.a));}程序运行后的输出结果是A)10 B)11 C)20 D)21(39)有以下程序#include <stdio.h>main(){ unsigned char a=8,c;c=a>>3;printf("%d\n",c);}程序运行后的输出结果是A)32 B)16 C)1 D)0(40)设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是A)写操作结束后可以从头开始读B)只能写不能读C)可以在原有内容后追加写D)可以随意读和写二、填空题(1)有序线性表能进行二分查找的前提是该线性表必须是【1】存储的。