2012年9月全国计算机等级考试二级C++笔试试卷与答案
全国计算机等级考试二级C笔试试卷(含参考答案)
全国计算机等级考试二级C笔试试卷(含参考答案)以下各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(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)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图(7)以下表达中正确的选项是A)软件交付使用后还需要进展维护B)软件一旦交付使用就不需要再进展维护C)软件交付使用后其生命周期就完毕D)软件维护是指修复程序中被破坏的指令(8)数据库设计的根本目标是要解决A)数据共享问题 B)数据平安问题C)大量数据存储问题 D)简化数据维护(9)设有如下关系表:R S TA B C A B C A B C1 123 1 3 1 1 22 23 2 2 33 1 3那么以下操作中正确的选项是A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S(10)数据库系统的核心是A)数据模型 B)数据库管理系统 C)数据库 D)数据库管理员(11)以下表达中错误的选项是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(12)以下表达中错误的选项是A)C语句必须以分号完毕B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(13)以下表达中正确的选项是A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码(14)以下关于函数的表达中正确的选项是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(15)假设有语句:char *line[5];,以下表达中正确的选项是A)定义line是一个数组,每个数组元素是一个基类型为char 的指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针(16)有以下程序段typedef struct NODE{ int num; struct NODE *next;} OLD;以下表达中正确的选项是A)以上的说明形式非法 B)NODE是一个构造体类型C)OLD是一个构造体类型 D)OLD是一个构造体变量(17)以下表达中错误的选项是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句 FILE fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1(19)以下不能正确计算代数式值的C语言表达式是A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2)(20)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(21)以下程序的功能是:给r输入数据后计算半径为r的圆面积s。
全国计算机等级考试二级公共基础知识真题2012年9月
全国计算机等级考试二级公共基础知识真题2012年9月(总分:40.00,做题时间:90分钟)一、选择题(总题数:10,分数:20.00)1.下列链表中,其逻辑结构属于非线性结构的是________。
(分数:2.00)A.循环链表B.二叉链表√C.双向链表D.带链的栈解析:2.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为________。
(分数:2.00)A.0或35 √B.20C.16D.15解析:3.下列关于栈的叙述中,正确的是________。
(分数:2.00)A.栈操作遵循先进后出的原则√B.栈顶元素一定是最先入栈的元素C.栈底元素一定是最后入栈的元素D.以上三种说法都不对解析:4.在关系数据库中,用来表示实体间联系的是________。
(分数:2.00)A.属性B.网状结构C.二维表√D.树状结构解析:5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。
则实体部门和职员间的联系是________。
(分数:2.00)A.1:1联系B.1:m联系√C.m:n联系D.m:1联系解析:6.有两个关系R和S如下:R得到关系S的操作是________。
(分数:2.00)A.自然连接B.投影C.选择√D.并解析:7.数据字典(DD)所定义的对象都包含于________。
(分数:2.00)A.软件结构图B.方框图C.程序流程图D.数据流图(DFD图)√解析:8.软件需求规格说明书的作用不包括________。
(分数:2.00)A.软件验收的依据B.软件设计的依据C.软件可行性研究的依据√D.用户与开发人员对软件要做什么的共同理解解析:9.下面属于黑盒测试方法的是________。
(分数:2.00)A.语句覆盖B.逻辑覆盖C.路径覆盖D.边界值分析√解析:10.下面不属于软件设计阶段任务的是________。
2012年9月全国计算机的等级考试二级C语言笔试试卷答案详解及解析汇报汇报
(1)下列链表中,其逻辑结构属于非线性结构的是_________。
A)双向链表B) 带链的栈 C) 二叉链表D) 循环链表(1)C 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps 中第13张说明:链表存储结构是数据的存储结构;排除链表因素,从数据逻辑结构来看,线性结构包括线性表、栈和队;非线性结构包括树形结构和图形结构,所以二叉树是树形结构,即非线性结构。
(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A) 20 B) 0或35 C) 15 D) 16(2)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第100-101张关于入队(Q.rear=Q.rear+1)与退队(Q.front=Qfront+1)运算规则,此外第一次入队为Q.rear=1;第一次退队为Q.front=1。
并假定循环队列最大个数为maxsize,其相应存储空间为1: maxsize,则循环队列的入队与退队图例和运算后元素个数的确定原则如下:循环队列中的元素个数或称队列长度通用计算公式:(Q.rear-Q.front+ maxsize)% maxsize 例如,Q.rear=20,Q.front=15,则循环队列中的元素个数=(20-15+35)%35=5;Q.rear=40,Q.front=15,则循环队列中的元素个数=(40-15+35)%35=25;本题根据Q.rear=Q.front=15,maxsize=35,则循环队列中元素个数=(15-15+35)%35=0或35;(3)下列关于栈的叙述中,正确的是A) 栈底元素一定是最后入栈的元素B) 栈操作遵循先进后出的原则C) 栈顶元素一定是最先入栈的元素D) 以上三种说法都不对(3)B 【解析】见/uuxzhang上全国计算机二级考试参考资料_数据结构.pps中第63张幻灯片说明:栈元素入、退原则:先进后出(FILO)或后进先出(LIFO)。
全国计算机等级考试二级C++真题2012年9月
全国计算机等级考试二级C++真题2012年9月(总分:100.00,做题时间:90分钟)一、选择题(每小题2分,共70分) (总题数:35,分数:70.00)1.下列链表种,其逻辑结构属于非线性结构的是(分数:2.00)A.循环链表B.双向链表C.带链的栈D.二叉链表√解析:2.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(分数:2.00)A.16B.20C.0或35 √D.15解析:3.下列关于栈的叙述中,正确的是(分数:2.00)A.栈顶元素一定是最先入栈的元素B.栈操作遵循先进后出的原则√C.栈底元素一定是最后入栈的元素D.以上三种说法都不对解析:4.在关系数据库中,用来表示实体间联系的是(分数:2.00)A.二维表√B.树状结构C.属性D.网状结构解析:5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是(分数:2.00)A.m:1联系B.1:m联系√C.1:1联系D.m:n联系解析:6.有两个关系R和S 如下R得到关系S的操作是(分数:2.00)A.自然连接B.选择√C.并D.投影7.数据字典(DD)所定义的对象都包含于(分数:2.00)A.程序流程图B.数据流图(DFD图)√C.方框图D.软件结构图解析:8.软件需求规格说明书的作用不包括(分数:2.00)A.软件可行性研究的依据√B.用户与开发人员对软件要做什么的共同理解C.软件验收的依据D.软件设计的依据解析:9.下面属于黑盒测试方法的是(分数:2.00)A.逻辑覆盖B.语句覆盖C.路径覆盖D.边界值分析√解析:10.下面不属于软件设计阶段任务的是(分数:2.00)A.数据库设计B.算法设计C.软件总体设计D.制定软件确认测试计划√解析:11.下列关于函数重载的叙述中,错误的是(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同√D.重载函数的参数个数或参数类型必须有所不同解析:12.下列关于类成员对象构造函数调用顺序的叙述中,正确的是(分数:2.00)A.与它们在初始化列表中顺序相同B.与它们在类中声明的顺序相同√C.与析构函数的调用顺序相同D.顺序不确定解析:13.下列关于派生类的叙述中,错误的是(分数:2.00)A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变√14.下列关于运算符重载的叙述中,正确的是(分数:2.00)A.通过运算符重载机制可以为C++语言扩充新的运算符B.运算符重载的作用是使已有的运算符作用于类的对象√C.重载运算符的操作数类型可以全部为基本类型D.所有运算符都可以重载解析:15.下列关于模板的叙述中,错误的是(分数:2.00)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义√D.类模板的实例是一个类对象解析:16.下列关于输入输出流的叙述中,正确的是(分数:2.00)A.一个文件流可以与一个数据文件相联系√B.cin是专门从键盘输入数据的输入流类C.流运算符<<用来从输入流中读取数据D.宽度设置的效果永久有效解析:17.下列选项中可以做C++标识符的是(分数:2.00)A._256 √B.fat/pigC.deleteD.5char解析:18.关键字unsigned不能修饰的类型是(分数:2.00)A.char √B.intC.floatD.long int解析:19.有如下程序: #include using namespace std; int main(){ char a; cin>>a; if(a='*') cout<<"***"<<<"###"<(分数:2.00)A.***B.### √C.***###D.无输出解析:20.下列对一维数组a的定义中,语法正确的是(分数:2.00)A.int a(10)B.int n=7,a[n];C.int n;cin>>n;int a[n];D.const int size=10;int a[size]; √解析:21.假设函数fun已经定义,其原型为”void fun(int a,int b=7,char *p=”**”);”,下列函数调用中错误的是(分数:2.00)A.fun(5)B.fun(5,8)C.fun(6,”##”)√D.fun(0,0.”==”)解析:22.已经函数print()没有返回值,如果在类中将之声明为常成员函数,正确的是(分数:2.00)A.void print()const; √B.const void print();C.void const print();D.void print(const);解析:23.已知基类Employees只有一个构造函数,其定义如下: Employee::Employee(int n):id(n){} Manager 是Employees的派生类,则下列对Manager的构造函数的定义中,正确的是(分数:2.00)A.Manager::Manager(int n):id(n){}B.Manager::Manager(int n){id=n;}C.Manager::Manager(int n):Employee(n){} √D.Manager::Manager(int n){Employee(n);}解析:24.已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的对象,则表达式c1+c2*c1等价于(分数:2.00)A.c1.operator*(c2.operator+(c1))B.c1.operator+(c2.operator*(c1)) √C.c1.operator*(c1.operator+(c2))D.c2.operator+(c1.operator*(c1))解析:25.下列类模板的定义中语法格式错误的是(分数:2.00)A.template class Buffer{/*…*/};B.template class Buffer{/*…*/};C.template class Buffer{/*…*/};D.template class Buffer{/*…*/};√解析:26.在C++中既可以用于文件输入又可以用于文件输出的流类是(分数:2.00)A.fstream √B.ifstreamC.ofstreamD.iostream解析:27.有如下类定义:class MyClass{ int b;char a;double c; public: MyClass():c(0.0),b(0),a(','){} }; 创建这个类的对象时,数据成员的初始化顺序是(分数:2.00)A.a,b,cB.c,b,a √C.b,a,cD.c,a,b解析:28.有如下类定义 class MyClass{ int x; public: MyClass():x(0),y(0){} int GetX(){return x;} void SetX(int xx){x==xx;} int y; }; 已知obj是类MyClass的对象,下列语句中违反类成员访问控制权限的是(分数:2.00)A.obj.x; √B.obj.y;C.obj.GetX();D.obj.SetX(0);解析:29.有如下类定义 class Test{ char a; const char b; public:Test(char c){a=c;b=c;} //第1行 void f(char a)const{this->a=a;} //第2行void g(char b){this->b=b;} //第3行char h()const{return a;} //第4行 }; 编译时没有错误的行是(分数:2.00)A.第1行B.第2行C.第3行√D.第4行解析:30.有如下程序:#include using namespace std; class A{ public: A(){cout<<'C';} }; class B:public A{ public: B(){cout<<'G';} ~B(){cout<<'T';} }; int main(){ B obj; return 0; } 运行这个程序的输出结果是(分数:2.00)A.GATCB.AGTC √C.GACTD.AGCT解析:31.有如下程序: #include using namespace std; class Base{ public; void fun(){cout<<'B';} }; class Derived:public Base{ public; void fun(){ cout<<'D';} }; int main(){ Derived d; d.fun(); return 0; } 若程序的输出结果是BD,则划线处缺失的部分是(分数:2.00)A.fun()B.Base.fun()C.Base::fun() √D.Base->fun()解析:32.有如下程序:#include using namespace std; class B{ public; virtual void f() {cout<<"B";} void g(){cout<<"B";} } class D;public B { public; void f(){cout<<"D";} void g(){coun<<"D";} } void h(B*p){p->f();p->g();} int main(){ D obj; h(&obj); return 0; } 运行这个程序的输出结果是:(分数:2.00)A.DDC.BDD.DB √解析:33.有如下程序: #include #include using namespace std; class MyString{ public; char str[80]; MyString(const char*s) {strcpy(str,s);} MyString&operator+=(MyString a){ strcat(str,a.str); return*this; } }; ostream&operator<<(ostream&s,const MyString&z){return s << z.str} intmain(){ MyString x("abc"),y("cde"); cout<<(分数:2.00)A.abcB.cdeC.abcdeD.abccde √解析:34.有如下程序: #include #include using namespace std; intmain(){ cout<<setfill('#')<<setw(4)<<"OK"<<123<(分数:2.00)A.##OK123 √B.##OK#123C.OK##123D.OK##123#解析:35.有如下语句序列: ifstream infile("DATA.DAT"); if(infile.good())cout<<"A"; else{ cout<<"B"; ofstream outfile("DATA.DAT"); if(outfile.fail())cout<<"C";else cout<<"D"; } 若执行这个语句序列显示的是BD,则说明文件DATA.DAT(分数:2.00)A.以读方式打开成功B.以读方式打开失败,但以写方式打开成功C.以读方式打开失败,以写方式打开也失败√D.以读方式打开成功,以写方式打开也成功解析:二、填空题(每空2分,共30分) (总题数:15,分数:30.00)36.一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】。
全国计算机等级考试二级C语言机试真题2012年09月
全国计算机等级考试二级C语言机试真题2012年09月(总分:100.00,做题时间:90分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。
函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#include <stdlib.h>#define N 8typedef struct listint data;struct 1ist * next;SLIST;void fun(SLIST * h, int x)SLIST * P, * q, * s;s=(SLIST* )malloc(sizeof(SLIST));/********** found********** /s->data=______;q=h;p=h->next;while(p! =NULL && x>p->data)/********** found********** /q=______;p=p->next;s->next=p;/********** found********** /q->next=______;SLIST * creatlist(int * a)SLIST * h, * p, * q; int i;h=p=(SLIST * )malloc(sizeof(SLIST));for(i=0; i<N; i ++)q=(SLIST * )malloc(sizeof(SLIST));q->data=a[i]; p->next=q; p=q;p->next=0;return h;void outlist(SLIST * h)SLIST * p;p=h->next;if(p==NULL)printf("/nThe list is NULL! /n");elseprintf("/nHead");do printf("->% d", p->data);p=p->next;while(p!=NULL);printf("->End/n");main()SLIST * head; int x;int a[N]=11, 12, 15, 18, 19, 22, 25, 29;head=creatlist(a);printf("/nThe list before inserting: /n");outlist(head);printf("/nEnter a number: ");scanf("%d", &x);fun(head, x);printf("/nThe list after inserting: /n");outlist(head);(分数:30.00)填空项1:__________________ (正确答案:(1)x (2)p (3)s)解析:[考点] 本题考查:链表的基本操作。
2012年9月计算机二级C语言上机题库及答案(破译版)课件
计算机二级c语言上机题库内部资料,切勿外传!..第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序:#include <stdio.h>long fun(int n){if (___1___)return (n*fun(___2___));return ___3___;}main(){p rintf("10!=%ld\n", fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2 and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i))编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。
2012年9月份全国计算机等级考试二级C语言_笔试+上机题库
2012年9月份全国计算机等级考试二级C语言笔试+上机题库(全)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b;D)double(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 (21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd (26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′}; C)char a={′A′,′B′,′C′};D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main()fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>{ int y;if(x==0||x==1) return(3);-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67 B)0 C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
全国计算机等级考试二级C历年真题及答案(2009.3-2012.3)
2012年上半年计算机二级C语言试题:文字版一、选择题1、下列叙述中正确的是( A )。
A.循环队列是队列的一种顺序存储结构B.循环队列是队列的一种链式存储结构C.循环队列是非线性结构D.循环队列是一直逻辑结构2、下列叙述中正确的是( D )。
A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈和队列都是非线性结构D.以上三种说法都不对3、一棵二叉树共有25个节点,其中5个叶子节点,那么度为1的节点数为( D )。
A.4B.6C.10D.164、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是(A )。
A.内模式B.外模式C.概念模式D.逻辑模式5、在满足实体完整性约束的条件下( D )。
A、一个关系中可以没有候选关键词B、一个关系中只能有一个候选关键词C、一个关系中必须有多个候选关键词D、一个关系中应该有一个或者多个候选关键词6、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是( C )。
A.自然连接B.并C.差D.交7、软件生命周期中的活动不包括( B )。
A.软件维护B.市场调研C.软件测试D.需求分析8、下面不属于需求分析阶段任务的是( C )。
A.确定软件系统的功能需求B.确定软件系统的系统的系能需求C.制定软件集成测试计划D.需求规格说明书审评9、在黑盒测试方式中,设计测试用例的主要根据是( A )。
A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图10、在软件设计中不使用的工具是( D )。
A.系统结构图B.程序流程图C.PAD图D.数据流图(DFD图)11、针对简单程序设计,以下叙述的实施步骤正确的是( A )。
A.确定算法和数据结构、编码、调试、整理文档B.编码、确定算法和数据结构、调试、整理文档C.整理文档、确定算法和数据结构、编码、调试D.确定算法和数据结构、调试、编码、整理文档12、关于C语言中数的表示,以下叙述正确的是( B )。
2012年计算机二级C 五套笔试模拟试题及答案分析
一、选择题 在下列各题的 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正 确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)循环链表的主要优点是 A)不再需要头指针了 B)从表中任一结点出发都能访问到整个链表 C)在进行插入、删除运算时,能更好的保证链表不断开 D)已知某个结点的位置后,能够容易的找到它的直接前件 (2)栈底至栈顶依次存放元素 A、B、C、D,在第五个元素 E 入栈前,栈中元素可 以出栈,则出栈序列可能是 A)ABCED B)DCBEA C)DBCEA D)CDABE (3)n 个顶点的强连通图的边数至少有 A)n-1 B)n(n-1) C)n D)n+1 (4)在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序 的效率相比,人们更重视程序的
int num; public: test(); int getint(){return num;} ~test();}; test :: test() { num =0;} test::~test() { cout<<"Destructor is active"<
void main()
{ test x[3]; cout<<"Exiting main"<
X=3 Y=3 H=4 W=6 (30)有以下程序 #include void ss(char *s,char t) { while(*s) { if(*s==t)*s=t-′a′+′A′; s++;}} void main() { char str1[100]="abcddfefdbd",c=′d′; ss(str1,c); cout << str1;} 程序运行后的输出结果是 A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd (31)有以下程序 #include void main() { int a=5,b=0,c=0; if(a=b+c)cout << "***"<
2012年9月全国计算机等级考试二级C语言上机题库(完整版)
第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。
/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n 返回这些数的个数。
计算机等级二级公共基础知识2012年09月真题
计算机等级二级公共基础知识2012年09月真题一、单项选择题下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1、下列链表中,其逻辑结构属于非线性结构的是A) 循环链表 B) 双向链表C) 带链的栈 D) 二叉链表2、设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A) 16 B) 20 C) 0或35 D) 153、下列关于栈的叙述中,正确的是A) 栈顶元素一定是最先入栈的元素B) 栈操作遵循先进后出的原则C) 栈底元素一定是最后入栈的元素D) 以上三种说法都不对4、在关系数据库中,用来表示实体间联系的是A) 二维表 B) 树状结构 C) 属性 D) 网状结构5、公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。
则实体部门和职员间的联系是A) m:1联系 B) 1:m联系 C) 1:1联系 D) m:n联系6、有两个关系R和S如下:RA B Ca 1 2b 2 1C 3 1SA B CC 3 1则由关系R得到关系S的操作是A) 自然连接 B) 选择 C) 并 D) 投影7、数据字典(DD)所定义的对象都包含于A) 程序流程图 B) 数据流图(DFD图)C) 方框图 D) 软件结构图8、软件需求规格说明书的作用不包括A) 软件可行性研究的依据B) 用户与开发人员对软件要做什么的共同理解C) 软件验收的依据D) 软件设计的依据9、下面属于黑盒测试方法的是A) 逻辑覆盖 B) 语句覆盖C) 路径覆盖 D) 边界值分析10、下面不属于软件设计阶段任务的是A) 数据库设计 B) 算法设计C) 软件总体设计 D) 制定软件确认测试计划二、填空题1、一棵二叉树共有47个结点,其中有23个度为2的结点。
假设根结点在第1层,则该二叉树的深度为______。
2012年9月全国计算机等级考试二级C语言笔试真题与答案
2012年9月全国计算机等级考试二级C语言笔试真题与答案2012年9月全国计算机 (1)下列链表种,其逻辑结构属于非线性结构的是 A )循环链表 B )双向链表 C )带链的栈 D )二叉链表 (2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为 A )16 B )20 C )0或35 D )15 (3)下列关于栈的叙述中,正确的是 A )栈顶元素一定是最先入栈的元素 B )栈操作遵循先进后出的原则 C )栈底元素一定是最后入栈的元素 D )以上三种说法都不对 (4)在关系数据库中,用来表示实体间联系的是 A )二维表 B )树状结构 C )属性 D )网状结构 (5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是 A )m:1联系 B )1:m 联系 C )1:1联系 D )m:n 联系 (6) 有两个关系R 和S 如下: R S A B C A B C a 1 2 c 3 1 b 2 1 c 3 1 则由关系R 得到关系S 的操作是 A )自然连接 B )选择 C )并 D )投影 (7)数据字典(DD )所定义的对象都包含于 A )程序流程图 B )数据流图(DFD 图) C )方框图 D )软件结构图(8)软件需求规格说明书的作用不包括 A )软件可行性研究的依据 B )用户与开发人员对软件要做什么的共同理解 C )软件验收的依据 D )软件设计的依据 (9)下面属于黑盒测试方法的是 A 逻辑覆盖 B )语句覆盖 C )路径覆盖 D )边界值分析 (10)下面不属于软件设计阶段任务的是 A )数据库设计 B )算法设计 C )软件总体设计 D )制定软件确认测试计划 (11)以下叙述中正确的是 A 在C 语言程序中,main 函数必须放在其他函数的最前面 B )每个后缀为.C 的C 语言源程序都可以单独进行编译 C 在C 语言程序中,只有main 函数才可单独进行编译 D 每个后缀为.C 地点C 语言源程序都应该包含一个main 函数 (12)C 语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是 A )预定义标识符(如库函数中的函数名)可用作用标识符,但失去原有含义 )用户标识符可以由字母和数 )关键字可用作用户标识符, 13)以下选项中表示一个合(说明:符号 表示 )9 9 9 B )0Xab C ))2.7e 14C 语言主要是借助以下哪个功能来实现程序模块化 A )定义函数 B )定义常量和外部变量 C )三种基本结构语句 D )丰富的数据类型 (15)以下叙述中错误的是A )非零的数值类型常量有正直和负值的区分B )常量是在程序运行过程中值不能被改变的量C )定义符号常量必须用类型名来设定常量的类型D )用符号名表示的常量叫符号常量 (16)若有定义和语句:int a,b; scanf(“%d,%d ”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a 、5赋给变量b 的是 A )3,5 B )3,5,4 C )3 ,5 D )3,5 (17)C 语言中char 类型数据占字节数为 A )3 B )4 C )1 D )2 (18)下列关系表达式中,结果为“假”的是 A )(3+4)>6 B )(3!=4)>2 C )3<=4||3 D )(3<4)==1 (20)有以下程序 #include<stdio.h> main() { int a=-2,b=0; while(a++&&++b); printf("%d,%d\n",a,b);} 程序运行后的输出结果是 A )1,3 B )0,2 C )0,3 D )1,2 (21)设有定义:int x=0,*p; ,立刻执行以下语句,正确的语句是 A )p=x; B )*p=x; C )p=NULL; D )*p=NULL; (22)下列叙述中正确的是 A )可以用关系运算符比较字符串的大小 B )空字符串不占用内存,其内存空间大小是0 C )两个连续的单引号是合法的字符常量 D )两个连续的双引号是合法的字符串常量 (23)有以下程序 #include <stdio.h> main() { char a='H'; a=(a>='A'&&a<='Z')?(a-'A'+'a'):a; printf("%c\n",a);} 程序运行后的输出结果是A )AB )aC )HD )h (24)有以下程序 #include <stdio.h> int f(int x); main() { int a,b=0; for(a=0;a<3;a++) {b=b+f(a); putchar('A'+b);}} int f(int x) {return x*x+1;} 程序运行后的输出结果是 A )ABE B )BDI C )BCF D )BCD (25)设有定义:int x[2][3];,则以下关于二维数组x 的叙述错误的是 A )x[0]可看作是由3个整型元素组成的一维数组 B )x[0]和x[1]是数组名,分别代表不同的地址常量 C )数组x 包含6个元素 D )可以用语句x[0]=0;为数组所有元素赋初值0 (26)设变量p 是指针变量,语句p=NULL;是给指针变量赋NULL 值,它等价于 A )p= ""; B )p= '0'; C )p=0; D )p= ''; (27)有以下程序 #include <stdio.h> main() {int a[]={10,20,30,40},*p=a,i; for(i=0;i<=3;i++){a[i]=*p;p++;} printf("%d\n",a[2]);} 程序运行后的输出结果是 A )30 B )40 C )10 D )20 (28)有以下程序 #include <stdio.h> #define N 3 void fun(int a[][N],int b[]) { int i,j; for(i=0;i<N;i++) { b[i]=a[i][0]; for(j=i;j<N;j++) if(b[i]<a[i][j]) b[i]=a[i][j];}} main()A )42B )0C )1D )41 (36)有以下程序 void f(struct STU a[]) { struct STU b={"Zhao",'m',85,90}; a[1]=b;} main() { struct STU c[2]={{"Qian",'f',95,92},{"Sun ",'m',98,99}}; f(c); printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]); printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]);} 程序运行后的输出结果是 A )Zhao,m,85,90,Sun,m,98,99 B )Zhao,m,85,90,Qian,f,95,92 C )Qian,f,95,92,Sun,m,98,99 D )Qian,f,95,92,Zhao,m,85,90 (37)以下叙述中错误的是 A )可以用typedef 说明的新类型名来定义变量 B )typedef 说明的新类型名必须使用大写字母,否则会出编译错误 C )用typedef 可以为基本数据类型说明一个新名称 D )用typedef 说明新类型的作用是用一个新的标识符来代表已存在的类型名 (38)以下叙述中错误的是 A )函数的返回值类型不能是结构体类型,只能是简单类型 B )函数可以返回指向结构体变量的指针 C )可以通过指向结构体变量的指针访问所指结构体变量的任何成员 D )只要类型相同,结构体变量之间可以整体赋值 (39)若有定义语句int b=2;则表达式(b<<2)/(3||b)的值是 A )4 B )8 C )0 D )2 (40)有以下程序 #include <stdio.h> main() { FILE *fp;int i,a[6]={1,2,3,4,5,6}; fp=fopen("d2.dat","w+"); for(i=0;i<6;i++) fprintf(fp,"%d\n",a[i]); rewind(fp); for(i=0;i<6;i++) fscanf(fp,"%d",&a[5-i]); fclose(fp); for(i=0;i<6;i++) printf("%d ,",a[i]);} 程序运行后的输出结果是 A )4,5,6,1,2,3, B )1,2,3,3,2,1, C )1,2,3,4,5,6, D )6,5,4,3,2,1, 二、填空题(每空2分,共30分) (1)一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】 。
2012年9月全国计算机2级考试(C语言程序设计)笔试模拟试题及答案
2012年9月全国计算机2级考试(C语言程序设计)笔试模拟试题及答案2012年9月全国计算机等级考试二级笔试模拟试题C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是()A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是()A)栈 B)树 C)队列 D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是()A)10 B)8 C)6 D)4(4)下列排序方法中,最坏情况下比较次数最少的是()A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是() A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序(6)下面叙述中错误的是()A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。
下列叙述中正确的是()A)提高耦合性降低内聚性有利他哦高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元索间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是()A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训(9)有两个关系R, S如下:由关系R通过运算得到关系S,则所使用的运算为()A)选择 B)投影 C)插入 D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为()A)属性 B)键 C)关系 D)域(11)以下选项中合法的标识符是()A)1_1 B)1-1 C)_11 D)1_ _(12)若函数中有定于语句:int k;,则()A)系统将自动给K赋初值0B)时k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值(13)以下选项中,能用作数据常量的是()A)0115 B)0118 C)1.5e1.5 D)115L(14)设有定义:int x=2;,以下表达式中,值不为6的是()A)x*=x+1 B)x++,2*x C)x*=(i+x) D)2*x, x+=2(15)程序段:int x=12; double y=3.141593; printf(“%d%8.6f”, x, y);的输出结果是() A)123.141593 B)12 3.141593 C)12, 3.141593 D)123.1415930(16)若有定义语句:double x, y,*px,*pY; 执行了px=&x; py=&y;之后,正确的输入语句是() A)scarf(“%f%1”,x,y);B)scarf(“%f%f”,&x,&y);C)scarf(“%lf%1e”,px,py);D)scarf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:()if〔表达式)语句其中“表达式”A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(18)有以下程序A)n=0; while((ch=getchar())!='\n’) n++;B)n=0; while(getchar()!='1n‘) n++;C)for( n=0;getchar()!='\n';n++);D)n=0; for( ch=getchar(); ch! ='\n';n++);(23)有以下程序#include <stdio.h>main(){int al,a2;char cl,c2;scanf(“%d%c%d%c”,&a1,&cl,&a2,&c2);printf(“%d, %c. %d, %c”,a1,c1,a2, c2);}若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为自负b,程序输出的结果是:12,a,34,b 则正确的输入格式是(以下~代表空格,<CR>代表回车)()A)i2a34b<CR>B)12~a~34~b<CR>C)12,a,34,b<CR>D)12~a34~b<CR>(24)有以下程序#include <stdio.h>int f(int x,int y){return((y-x)*x);)main(){int a=3,b=4,c=5,d;d=f(f(a,b),f(a, c));printf(“od\n”,d);}程序运行后的输出结果是()A)10 B)9 C)8 D)7(25)有以下程序#include <stdio.h>void fun (char *s){while(*s){if(*s%2==0)printf(“%c”,*s);s++;}}main(){char a[]=(“good”};fun(a);printf(“\n”);}注意:字母a的ASCII码值为97,程序运行后的输出结果是()A)d B)go C)god D)good(26)有以下程序#include <stdio.h>void fun(int *a,int *b){int *c;c=a;a=b;b=c;}main(){int x=3, y=5,*p=&x, *q=&y;fun (p,q);printf(“%d,%d,”,*P,*q):fun(&X, &y);printf(“%d,%d\n”;*p.*q);}程序运行后的输出结果是()A)3,5.5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3(27)有以下程序#include <stdio.h>void flint *p,int *q);main()int m=l,n=2,*r=&m;f (r, &n);printf(“%d,od”,m, n);}void f(int *p,int *q){p=p+l: *q=*q+1;}程序运行后的输出结果是()A)1,3 B)2,3 C)1,4 D)1,2(28)以卜函数按每行8个输出数组中的数据vold fun( int *w,int n){int i;for(i=0;i<n;i++){_____________printf(“%d”,w[i]);}printf(“\n”);}下划线处应填入的语句是()A)if(i/8==0)printf(“\n”);B)if(i/8==0)continue;C)if(i%8==0)printf(“\n”);D)if(i%8==0)contInue;(29)若有以下定义int x[1O], *pt=x;则对x数组元素的正确引用是()A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3(30)设有定义:char s[81]; int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是()A)gets(s);B)while((s[i++]=getchar())!='\n’);s[i]= '\0';C)scarf(“%s”,s);D)do{ scarf(“%c”,&s[i]); }while(s[i++]!='\n‘); s[i]='\0';(31)有以下程序#include <stdio.h>nain(){char *a[ ]=(“abed”,“ef”,“gh”,“ijk”}; int I;for(i=0;i<4;i++)printf(“%c”,*a[i]);}程序运行后的输出结果是()A)aegiB)dfhkC)abedD)abcdefghijk(32)以下选项中正确的语句组是()A)char s[]; s=“BOOK!”;B)char * s={“BOOK!”};C)char sf10}; s=“BOOK!”;D)char* s=“BOOK!”;(33)有以下程序#include <stdio.h>int fun(int x,int y){if (x==y) return(x);else return((x+y)/2);main()( int a=4,b=5,c=6;ptintf(“%d\n”, fun (2*a,fun(b,c)));}程序运行后的输出结果是()A)3 B)6 C)8 D)12(34)设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是()A)autoB)registerC)staticD)auto或register(35)有以下程序#include <stdio.h>int b=2.;int fun(int *k){b=*k+b; return (b);}main(){int a〔10],{1,2,3, 4,5,6,7,8),i;for(i=2;i<4;i++)(b=fun(&a[i])+b; printf(“%d”;b);printf(“\n”);}程序运行后的输出结果是()A)10 12 B)8 10 C)10 28 D)10 1b(36)有以下程序#include <stdio.h>#define PT 3 .5;#define S(x) PT*x*x;main(){ int a=1,b=2;printf(“%4 .if\n”, S(a+b));}程序运行后的输出结果是()A)14.0 B)31.5 C)7.5 D)程序有错无输出结果(37)有以下程序#include <stdio.h>struct ord{int x,y;}bt[2]={1,2,3,4};main(){struct ord *p=dt;printf(“%d”,++p->x); printf(“%d\n”,++p->y);}程序的运行结果是()A)1,2 B)2,3 C)3,4 D)4,1(38)设有宏定义:#define IsDIV(k,n)((k%n=I)?1:0)且变量m己正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是()A)判断m是否能被5或者7整除B)判断m是否能被5和7整除C)判断m被5或者7整除是否余1D)判断m被J和7整除是否都余(39)有以一下程序main(){int a=5,b=1, t;t=(a《2)|b; printf(“%d\n”,t);}程序运行后的输出结果是()A)21 B)11 C)6 D)1(40)有以下程序#include <stdio.h>main(){FILE *f;f=fopen(“filea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为()A)helloabc B)abclo C)abc D)ahchelln二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
全国计算机等级考试二级Access真题2012年9月
全国计算机等级考试二级Access真题2012年9月(总分:100.00,做题时间:90分钟)一、注意事项 (总题数:1,分数:0.00)二、选择题(每小题2分,共70分) (总题数:35,分数:70.00)1.下列链表中,其逻辑结构属于非线性结构的是________。
(分数:2.00)A.循环链表B.二叉链表√C.双向链表D.带链的栈解析:循环链表、双向链表、带链的栈都是线性结构,二叉链表是非线性结构二叉树的链式存储结构,只有它是非线性结构。
此处答案为B。
2.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为________。
(分数:2.00)A.0或35 √B.20C.16D.15解析:在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。
因此,从队头指针front指向的后一个位置到队尾指针rear指向的位置之间所有的元素均为队列中的元素。
循环队列的初始状态为空,即rear=front=m,每进行一次入队运算,队尾指针就进一。
每进行一次出运运算,队头指针就进一。
此题中rear=front=15,可能出现的情况是入队的元素全部出队,此时队列中元素个数为0;也可能是执行入队出队的次数不一样,最终状态是队列为满的状态,此时队列中元素个数为35。
故答案为A。
3.下列关于栈的叙述中,正确的是________。
(分数:2.00)A.栈操作遵循先进后出的原则√B.栈顶元素一定是最先入栈的元素C.栈底元素一定是最后入栈的元素D.以上三种说法都不对解析:栈(Stack)是限定在一端进行插入与删除的线性表。
在栈中,允许插入与删除的这一端称为栈顶,而不允许插入与删除的另一端称为栈底。
栈是按照“先进后出”或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表,所以答案为A。
2012年9月全国计算机等级考试二级C语言笔试试题和答案(含公共基础题)全解
29 1)main() { char a[10]="abcde",b[]="fgh"; int i=0; strcpy(a+1,b+2); printf("%s",a); } 请详细解释一下”strcpy(a+1,b+2)”这句语句 2)main() { char s[][10]={"a","good",world"}; strcat(s[0],s[1]); printf("%s",s[0]);}请详细解释一下”strcat(s[0],s[1])”这句语句strcpy()是字符串复制函数。
连字符串的结束标志‘\0’一同复制。
对于strcpy(a+1,b+2);中的b+2则是数组里的“h\0”的首地址。
a+1则是数组里的“bcde”的首地址。
即此函数的意义是:把“h\0”复制到“bcde”的位置。
字符串遇到‘\0’结束即结果是:ah。
对于strcat(s[0],s[1]);中的二为数组可以看成是多个一维数组组成的。
所以s[0]代表的是“a”的首地址,s[1]代表的是“good”的首地址。
这是字符串连接函数。
即把good 放到了a的后面。
结果是:agood。
二级C语言程序设计答案及详解一、选择题(11)B)【解析】每一个C 语言的文件或函数都可以单独编译,但只有main 函数的才可以执行。
(12)A)【解析】预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin 等和编译预处理命令名(如define 和include)。
预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。
(13)B)【解析】0xab 是十六进制表示的常量。
(14)A)【解析】C语言用函数实现软件的模块化设计。
(15)C)【解析】C语言中,常常用一个标识符来代表一个常量,称为符号常量。
2012年9月全国计算机等级考试二级C语言笔试试题和答案-------2013
29 1)main(){char a[10]="abcde",b[]="fgh";int i=0;strcpy(a+1,b+2);printf("%s",a);}请详细解释一下”strcpy(a+1,b+2)”这句语句2)main(){char s[][10]={"a","good",world"};strcat(s[0],s[1]);printf("%s",s[0]);}请详细解释一下”strcat(s[0],s[1])”这句语句strcpy()是字符串复制函数。
连字符串的结束标志…\0‟一同复制。
对于strcpy(a+1,b+2);中的b+2则是数组里的“h\0”的首地址。
a+1则是数组里的“bcde”的首地址。
即此函数的意义是:把“h\0”复制到“bcde”的位置。
字符串遇到…\0‟结束即结果是:ah。
对于strcat(s[0],s[1]);中的二为数组可以看成是多个一维数组组成的。
所以s[0]代表的是“a”的首地址,s[1]代表的是“good”的首地址。
这是字符串连接函数。
即把good 放到了a的后面。
结果是:agood。
二级C语言程序设计答案及详解一、选择题(11)B)【解析】每一个C 语言的文件或函数都可以单独编译,但只有main 函数的才可以执行。
(12)A)【解析】预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin 等和编译预处理命令名(如define 和include)。
预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。
(13)B)【解析】0xab 是十六进制表示的常量。
(14)A)【解析】C语言用函数实现软件的模块化设计。
(15)C)【解析】C语言中,常常用一个标识符来代表一个常量,称为符号常量。
2012年9月 全国计算机等级考试 二级C语言 笔试试卷、答案及解析
2012年9月22日网上发布的全国计算机等级考试二级C语言笔试答案一、选择题:(1)C、(2)B、(3)B、(4)D、(5)A(6)C、(7)C、(8)B、(9)A、(10)A(11)B、(12)A、(13)B、(14)A、(15)C(16)C、(17)C、(18)B、(19)D、(20)D(21)B、(22)D、(23)D、(24)B、(25)D(26)C、(27)A、(28)B、(29)C、(30)A(31)C、(32)A、(33)B、(34)A、(35)D(36)D、(37)B、(38)A、(39)B、(40)D二、填空题【1】6【2】20【3】逻辑独立【4】选择【5】系统软件【6】a>b【7】%lf%f【8】224【9】16【10】4321【11】7【12】22【13】2【14】6【15】p=p->next2012年9月22日评阅者注释的全国计算机等级考试二级C语言笔试答案一、选择题:(1)C、(2)B、(3)B、(4)D、(5)A(6)C、(7)C、(8)B、(9)A、(10)A(11)B、(12)A、(13)B、(14)A、(15)C(16)C、(17)C、(18)B、(19)D、(20)D(21)B?、(22)D、(23)D、(24)B、(25)D(26)C?、(27)A、(28)B、(29)C、(30)A(31)C、(32)A、(33)B、(34)A、(35)D(36)D、(37)B、(38)A、(39)B、(40)D二、填空题【1】6【2】20【3】逻辑独立性【4】选择【5】系统软件【6】a>b【7】%lf%f【8】224【9】16【10】4321【11】7【12】22【13】2【14】6【15】p=p->next2012年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(⑴-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
using namespace std; class Base{ public; void fun(){cout<<'B';} }; class Derived:public Base{ public; void fun(){ cout<<'D';} }; int main(){ Derived d; d.fun(); return 0; } 若程序的输出结果是BD,则划线处缺失的部分是 A)fun() B)Base.fun() C)Base::fun() D)Base->fun() (32)有如下程序: #include<iostream> using namespace std; class B{ public; virtual void f() {cout<<"B";} void g(){cout<<"B";} } class D;public B { public; void f(){cout<<"D";} void g(){coun<<"D";} } void h(B*p){p->f();p->g();} int main(){ D obj; h(&obj); return 0; } 运行这个程序的输出结果是: A)DD B)BB C)BD D)DB (33)有如下程序: #include<iostream> #include<cstring> using namespace std; class MyString{ public;
(28)有如下类定义 class MyClass{ int x; public: MyClass():x(0),y(0){} int GetX(){return x;} void SetX(int xx){x==xx;} int y; }; 已知obj是类MyClass的对象,下列语句中违反类成员访问控制权限 的是 A)obj.x; B)obj.y; C)obj.GetX(); D)obj.SetX(0); (29)有如下类定义 class Test{ char a; const char b; public:Test(char c){a=c;b=c;} //第1行 void f(char a)const{this->a=a;} //第2行 void g(char b){this->b=b;} //第3行 char h()const{return a;} //第4行 }; 编译时没有错误的行是 A)第1行 B)第2行 C)第3行 D)第4行 (30)有如下程序: #include<iostream> using namespace std; class A{ public: A(){cout<,'A';} ~A(){cout<<'C';} }; class B:public A{ public: B(){cout<<'G';} ~B(){cout<<'T';} }; int main(){ B obj; return 0; } 运行这个程序的输出结果是 A)GATC B)AGTC C)GACT D)AGCT (31)有如下程序: #include<iostream>
else cout<<"###"<<endl; return 0; } A)*** B)### C)***### D)无输出 (20)下列对一维数组a的定义中,语法正确的是 A)int a(10) B)int n=7,a[n]; C)int n;cin>>n;int a[n]; D) const int size=10;int a[size]; (21)假设函数fun已经定义,其原型为”void fun(int a,int b=7,char *p=”**”);”,下列函数调用中错误的是 A)fun(5) B)fun(5,8) C)fun(6,”##”) D)fun(0,0.”==”) (22)已经函数print()没有返回值,如果在类中将之声明为常成员函 数,正确的是 A)void print()const; B)const void print(); C)void const print(); D)void print(const); (23)已知基类Employees只有一个构造函数,其定义如下: Employee::Employee(int n):id(n){} Manager是Employees的派生类,则下列对Manager的构造函数的 定义中,正确的是 A)Manager::Manager(int n):id(n){} B)Manager::Manager(int n){id=n;} C)Manager::Manager(int n):Employee(n){} D)Manager::Manager(int n){Employee(n);} (24)已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和 c2是类Complex的对象,则表达式c1+c2*c1等价于 A)c1.operator*(c2.operator+(c1)) B)c1.operator+(c2.operator* (c1)) C)c1.operator*(c1.operator+(c2)) D)c2.operator+(c1.operator* (c1)) (25)下列类模板的定义中语法格式错误的是 A)template<class T>class Buffer{/*…*/}; B)template<typename T>class Buffer{/*…*/}; C)template<class T1,class T2>class Buffer{/*…*/}; D)template<T>class Buffer{/*…*/}; (26)在C++中既可以用于文件输入又可以用于文件输出的流类是 A)fstream B)ifstream C)ofstream D)iostream (27)有如下类定义: class MyClass{ int b;char a;double c; public: MyClass():c(0.0),b(0),a(','){} }; 创建这个类的对象时,数据成员的初始化顺序是 A)a,b,c B)c,b,a C)b,a,c D)c,a,b
2012年9月全国计算机等级试二级笔试试卷 C++语言程序设计
(考试时间90分钟,满分100分) 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正 确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列链表种,其逻辑结构属于非线性结构的是 A)循环链表 B)双向链表 C)带链的栈 D)二叉链表 (2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现 经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元 素个数为 A)16 B)20 C)0或35 D)15 (3)下列关于栈的叙述中,正确的是 A)栈顶元素一定是最先入栈的元素 B)栈操作遵循先进后出的 原则 C)栈底元素一定是最后入栈的元素 D)以上三种说法都不对 (4)在关系数据库中,用来表示实体间联系的是 A)二维表 B)树状结构 C)属性 D)网状结构 (5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一 个部门可以有多名职员,则实体部门和职员间的联系是 A)m:1联系 B)1:m联系 C)1:1联系 D)m:n联系 (6) 有两个关系R和S 如下: R S A B C A B C a 1 2 c 3 1 b 2 1 c 3 1 则由关系R得到关系S的操作是 A)自然连接 B)选择 C)并 D)投影 (7)数据字典(DD)所定义的对象都包含于 A)程序流程图 B)数据流图(DFD图) C)方框图 D)软件 结构图 (8)软件需求规格说明书的作用不包括 A)软件可行性研究的依据 B)用户与开发人员对软件要做什么 的共同理解s C)软件验收的依据 D)软件设计的依据 (9)下面属于黑盒测试方法的是 A)逻辑覆盖 B)语句覆盖 C)路径覆盖 D)边界值分析 (10)下面不属于软件设计阶段任务的是
A)数据库设计 B)算法设计 C)软件总体设计 D)制定软件确认测试计划 (11)下列关于函数重载的叙述中,错误的是 A)重载函数的参数个数可以不同 B)重载函数的参数类型可以不同 C)重载函数的返回值类型必须不同 D)重载函数的参数个数或参数类型必须有所不同 (12)下列关于类成员对象构造函数调用顺序的叙述中,正确的是 A)与它们在初始化列表中顺序相同 B)与它们在类中声明的顺序相同 C)与析构函数的调用顺序相同 D)顺序不确定 (13)下列关于派生类的叙述中,错误的是 A)派生类至少要有一个基类 B)派生类中包括了从基类继承的成员 C)一个派生类可以作为另一个派生类的基类 D)基类成员被派生类继承以后访问权限保持不变 (14)下列关于运算符重载的叙述中,正确的是 A)通过运算符重载机制可以为C++语言扩充新的运算符 B)运算符重载的作用是使已有的运算符作用于类的对象 C)重载运算符的操作数类型可以全部为基本类型 D)所有运算符都可以重载 (15)下列关于模板的叙述中,错误的是 A)调用模板函数时,有时可以省略模板实参 B)函数模板的每个实例就是一个函数定义 C)类模板的每个实例就是一个类定义 D)类模板的实例是一个类对象 (16)下列关于输入输出流的叙述中,正确的是 A)一个文件流可以与一个数据文件相联系 B)cin是专门从键盘输入数据的输入流类 C)流运算符<<用来从输入流中读取数据 D)宽度设置的效果永久有效 (17)下列选项中可以做C++标识符的是 A)_256 B)fat/pig C)delete D)5char (18)关键字unsigned不能修饰的类型是 A)char B)int C)float D)long int (19)有如下程序: #include<iostream> using namespace std; int main(){ char a; cin>>a; if(a='*') cout<<"***"<<endl;