您的当前位置:首页全国计算机等级考试二级C语言笔试试题及答案

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

2022-01-24 来源:爱问旅游网
2006年9月全国计算机等级考试二级C语言笔试试题及答案

一 选择题(每小题2 分,共70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选

项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列选项中不符合良好程序设计风格的是______。

A)、源程序要文档化 B)、数据说明的次序要规范化C)、避免滥用goto 语句 D)、模块设计要保证高耦合,高内聚

(2)从工程管理角度,软件设计一般分为两步完成,它们是______。

A)、概要设计与详细设计 B)、数据设计与接口设计 C)、软件结构设计与数据设计 D)、过程设计与数据设计

(3)下列选项中不属于软件生命周期开发阶段任务的是______。 A)、软件测试 B)、概要设计 C)、软件维护 D)、详细设计 (4)在数据库系统中,用户所见的数据模式为______。 A)、概念模式 B)、外模式 C)、内模式 D)、物理模式

(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。 A)、编码设计 B)、测试阶段 C)、运行阶段 D)、物理设计 (6)设有如下三个关系表下列操作中正确的是 A)、T=R∩S B)、T=R∪S C)、T=R×S D)、T=R/S (7)下列叙述中正确的是

A)、一个算法的空间复杂度大,则其时间复杂度也必定大B)、一个算法的空间复杂度大,则其时间复杂度必定小C)、一个算法的时间复杂度大,则其空间复杂度必定小

D)、上述三种说法都不对

(8)在长为64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为______。 A)、63 B)、64 C)、6 D)、7

(9)数据库技术的根本目标是要解决数据的______。

A)、存储问题 B)、共享问题 C)、安全问题 D)、保护问题 (10)对下列二叉树: 进行中序遍历的结果是______。

A)、ACBDFEG B)、ACBDFGE C)、ABDCGEF D)、FCADBEG (11)下列有关内联函数的叙述中,正确的是______。

A)、内联函数在调用时发生控制转移B)、内联函数必须通过关键字inline 来定义 C)、内联函数是通过编译器来实现的D)、内联函数体的最后一条语句必须是rennin 语句 (12)下列情况中,不会调用拷贝构造函数的是______。

A)、用一个对象去初始化同一类的另一个新对象时B)、将类的一个对象赋予该类的另一个对象时C)、函数的形参是类的对象,调用函数进行形参和实参结合时D)、函数的返回值是

类的对象,函数执行返回调用时

(13)下列有关继承和派生的叙述中,正确的是______。

A)、如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员B)、派生类的成员函数可以访问基类的所有成员C)、基类对象可以赋值给派生类对象 D)、如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类 (14)下列运算不能重载为友元函数的是______。

A)、= ( ) [] -> B)、+ - ++ -- C)、> < >= <= D)、+= -= *= /= (15)关于在调用模板函数时模板实参的使用,下列表述正确的是______。

A)、对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略 B)、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,FC EA DBG则都可以省略C)、对于虚拟型参数所对应的模板实参,若能够省略则必须省 D)、对于常规参数所对应的模板实参,任何情况下都不能省略 (16)下列关于输入流类成员函数getline( )的描述中,错误的是______。

A)、该函数是用来读取键盘输入的字符串的B)、该函数读取的字符串长度是受限制的 C)、该函数读取字符串时,遇到终止符便停止D)、该函数读取字符串时,可以包含空格 (17)下列符号中,正确的C++标识符是______。 A)、enum B)、2b C)、foo-9 D)_32 (18)下列语句中,错误的是______。

A)、const int buffer=256; B)、const double*point;C)、int const buffer=256; D)、double*const point;

(19)if 语句的语法格式可描述为 格式1:if(<条件>)<语句> 或

格式2:if(<条件>)<语句1>else<语句2> 关于上面的语法格式,下列表述中错误的是

A)、<条件>部分可以是一个if 语句,例如if(if(a =0)?)?B)、<条件>部分可以是一个if 语句,例如if(?)if(?)?C)、如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功能不变 D)、<语句>部分可以是一个循环语句,例如if(?)while(?)? (20)有如下说明

int a [10]={1,2,3,4,5,,6,7,8,9,10},*p=a; 则数值为9 的表达式是______。

A)、*p+9` B)、*(p+8) C)、*p+=9 D)、p+7 (21)或下面的函数调用 fun(a+b,3,max(n-1)b)

则fun 的实参个数是______。

A)、3 B)、4 C)、5 D)、6

(22)以下关键字不能用来声明类的访问权限的是______。 A)、public B)、static C)、protected D)、private (23)在公有继承的情况下,允许派生类直接访问的基类成员包括______。

A)、公有成员 B)、公有成员和保护成员 C)、公有成员、保护成员和私有成员 D)、保护成员

(24)关于运算符重载,下列表述中正确的是______。

A)、C++已有的任何运算符都可以重载 B)、运算符函数的返回类型不能声明为基本数据类型 C)、在类型转换符函数的定义中不需要声明返回类型 D)、可以通过运算符重载来创建C++中原来没有的运算符

(25)关于关键字class 和typename,下列表述中正确的是______。

A)、程序中的typename 都可以替换为class B)、程序中的class 都可以替换为typename C)、在模板形参表中只能用typename 来声明参数的类型 D)、在模板形参表中只能用class 或typename 来声明参数的类型 (26)有如下程序 #include #include

using namespace std; int main(){

count<<12,345<<&NBSP;<<34,567; return 0; }

若程序的输出是: **12.345**34.567

则程序中下划线处遗漏的操作符是______。

A)、setprecision(3) B)、fixed C)、setfill(*) D)、stew(8) (27)有如下程序 #include #include

using namespace std; class MyClass{ public:

MyClass(){cout<<‟A”;}

MyClass(char c {cout<~MyClass(){sout<<‟B”;} }; Int main(){ MyClassp1,*p2 p2=new MyClass(„X‟);

delete p2; return 0; }

执行这个程序幕上将显示输出______。

A)、ABX B)、ABXB C)、AXB D)、AXBB (28)有如下程序 #include

using namespace std; int i=1; class Fun{ public; static int i;

int value(){return i-1} int value ()const{return i+1;} };

int Fun;;i=2; int main(){ int i=3; Fun Fun1 const Fun fun2; return 0; }

若程序的输出结果是: 123

则程序中下划线处遗漏的语句是______。 A)、cout< B)、cout< C)、cout<

(29)有如下程序 #include

using namespace std; class Obj{ static int i; public: Obj(){i++;} ~Obj(){i--;}

static int getVal(){teturn i;}

D)、cout<

};

int Obj::i=0;

void f (){Obj ob2;cout Obj obl; F();

Obj*ob3=new Obj;cout Delete ob3;cout }

程序的输出结果是______。

A)、232 B)、231 C)、222 D)、221 (30)有如下程序 #include

using namespace std; class Base{ protected; Base(){cout<<‟A‟;} Base(char c){cout<}; class Derived; public Base{ public:

Derived(char c ){cout <}; int main(){ Derived d1(„B‟); return 0; }

执行这个程序屏幕上将显示输出______。 A)、B B)、BA C)、AB D)、BB (31)有如下类定义: class MyBase{ int k; public;

MyBase(int n=0):k(n){} int value()const{return k;} };

class MyDerived; MyBase{ int j; public;

MyDerived(int i): j(i){}

int getK()const {return k;} int gutj()const{return j;} };

编译时发现有一处语法错误,对这个错误最佳准确的描述是

A)、函数getK 试图访问基类的私有成员变量K B)、在类MyDerived 的定义中,基类名MyBase 前缺少关键字public、protected 或private C)、类MyDerived 缺少一个无参的构造函数 D)、类MyDerived 的构造的数没有对基数数据成员K 进行初始化 (32)在一个派生类对象结束其生命周期时

A)、先调用派生类的析构函数后调用基类的析构函数 B)、先调用基类的析构函数后调用派生类的析构函数 C)、如果基数没有定义析构函数,则只调用派生类的析构函数 D)、如果派生类没有定义析构函数,则只调用基类的析构函数 (33)有如下的运算重载函数定义:

Double operator+(int i, int k){return double(i+k);} 但定义有错误,对这个错误的最准确的描述是______。

A)、+只能作为成员函数重载,而这里的+是作为非成员函数重载的 B)、两个int 型参数的和应该是int 型,而这里将+的返回类型声明为double C)、没有将运算符重载函数声明为某个类的友元 D)、C++已经提供了求两个int 型数据之和运算符+,不能再定义同样的运算符

(34)语句ofstreamf(“SALARY.DAT”,ios_base::app)的功能是建立流对象f,并试图打开文件SALARY.DAT 与f 关联,而且______。

A)、若文件存在,将其置为空文件;若文件不存在,打开失败 B)、若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 C)、若文件存在,将文件指针定位于文件首;若文件不存在,打开失败 D)、若文件存在,打开失败;若文件不存在,建立一个新文件 (35)有如下程序 #include

using namespace std; class A{ public:

virtual Void funcl(){cout<< “A1”;} void fune2(){cout<< “A2”;} };

class B: public A{ public:

void func1(){cout<< “B1”;} void func2(){cout<< “B2”;} };

Int main(){ A*p=new B; p->funcl(); p->func2(); retum0; }

运行程序,屏幕上将显示输出______。

A)、B1B2 B)、A1A2 C)、B1A2 D)、A1B2

二、填空题(每空2 分,共30 分)请将每一个空的正确答案写在答题卡[1]~[15]序号的横线上,答在试卷上不得分。

(1)下列软件系统结构图的宽度为 [1] 。 (2) [2] 的任务是诊断和改正程序中的错误。 (3)一个关系表的行为 [3] 。

(4)按“行进后出”原则组织数据的数据结构是 [4] 。

(5)数据结构分为线性结构和非线性结构,带链的队列属于 [5] 。 (6)若有定义语句:int*a,b;,则变量b 的数据类型是 [6] 。

(7)已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标为i-1 的单元,其中1≤i<n。例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a中元素为2,3,4,4。请将语句补充完整:

For(int i=0;i(8)已知递归函数f 的定义如下: int f (int n) {

If(n<=1)return 1;//递归结束情况

else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是 [8] 。

(9)创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是 [9] 。 #include

using namespace std; class Foo{ public:

Foo(int X){cout <<‟A”} Foo(){} }; int main()

Foo f[3],g(3); return 0; }

(10)习惯性在下列程序的输出结果是42,请将画线处缺失的部分补充完整。 #include

Using namespace atd; Class Foo{ int value; public: Foo():value(0){} Void setvalue(int value)

{ [10] =value; //给Foo 的数据成员value 赋值}void print(){cout<}; Int main() { Foo f; f.setvalue(42); f.print(); retum0; }

(11)如果不能使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是 [11] 。 #include

using namespace std; class Base{ public:

Void print(){cout<< „B‟;}}; class Derived: public Base{ public

void print(){cout<< „D‟;}} int main() {

Derived*pd=new Dreived); Base*pb=pd; pb->print(); pd->print(); delete pd; return 0;

}

(12)在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承 private。已知有如下类定义: class Base{ protected: void fun(){} };

Class Derived: Base{};

则Base 类中的成员函数fun(),在Derived 类中的访问权限是 [12] (注意:要求填写private、protected 或public 中的一项)。

(13)在MyClass 类的定义中,对赋值运算符=进行重载。请将画线处缺失的部分补充完整。

[13] MyClass::operator=(const MyClass rhs) {

if(this=&rhs)return*this; value=rhs. value; return*this; }

(14)插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置,InsertSort 类的成员函数sort()实现了插入排序算法,请将画线处缺失的部分补充完整。 class InsertSort{ public:

InsertSort(int*a0,int n0):a(a0),n(n0){}//参数组首地址,n 是数组元素个数 void sort()

{//此函数假设已排离序列初始化状态只包含a[0],未排序序列初始为a[1]?a[n-1] for (int i=1;iint j; for( [14] j>0;--j){ if(t>a[j-1])break; a[j]=a[j-1];} a[j]=t;}} protected:

int*a,n;//指针a 用于存放数组首地址,n 用于存放数组元素个数 };

(15)下列程序的输出结果是 [15] #include

using namespace std;

class A{ int a public: A():a(9){}

virtual void print() const {cout<}; class B:public A{ char b; public: B(){b= „S‟;}

void print()const{cout<}; void show(Aa&X){X,print()} int main() { Ad1;*p; Bd2; p=&d2; d1,print(); d2,print(); p->print(); show(d1); show(d2); return 0;}

2007年4月全国计算机等级考试二级笔试试卷C语言程序设计

一、选择题((1)—(10)每小题2分,(11)—(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是(B)

A)算法的效率只与问题的规模有关,而与数据的存储结构无关B)算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻辑结构与存储结构是一一对应的D)算法的时间复杂度与空间复杂度一定相关 (2)在结构化程序设计中,模块划分的原则是(D)

A)各模块应包括尽量多的功能 B)各模块的规模应尽量大 C)各模块之间的联系应尽量紧密 D)模块内具有高内聚度、模块间具有低耦合度 (3)下列叙述中正确的是(A)

A)软件测试的主要目的是发现程序中的错误B)软件测试的主要目的是确定程序中错误的位置C)为了提高软件测试的效率,最好由程序编制者自己来完成软

件测试的工作D)软件测试是证明软件没有错误

(4)下面选项中不属于面向对象程序设计特征的是(C) A)继承性 B)多态性 C)类比性 D)封装性 (5)下列对队列的叙述正确的是(D)

A)队列属于非线性表 B)队列按“先进后出”原则组织数据 C)队列在队尾删除数据 D)队列按“先进先出”原则组织数据 (6)对下列二叉树 A

B C

D E F X

Y Z

进行前序遍历的结果为(C)

A) DYBEAFCZX B) YDEBFZXCA C) ABDYECFXZ D) ABCDEFXYZ

(7) 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为(A)

A) n+1 B) n-1 C) 2n D) n/2

(8) 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是(B) A) 并 B)交 C)投影 D)笛卡儿乘积 (9)在E-R图中,用来表示实体之间联系的图形是(C) A) 矩形 B)椭圆形 C)菱形 D)平行四边形 (10)下列叙述中错误的是(A)

A) 在数据库系统中,数据的物理结构必须与逻辑结构一致 B) 数据库技术的根本目标是要解决数据的共享问题 C) 数据库设计是指在已有数据库管理系统的基础上建立数据库 D)数据库系统需要操作系统的支持

11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的(C) A)正当性 B)可行性 C)确定性 D)有穷性 (12)下列叙述中错误的是(D)

A)计算机不能直接执行用C语言编写的源程序 B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件 C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行 (13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B) A)大写字母 B)连接符 C)数字字符 D)下划线

(14)以下叙述中错误的是(C)

A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法

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

A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

(16)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)(D)

A)10□X□20□Y〈回车〉 B)10□X20□Y〈回车〉

C)10□X〈回车〉 D)10X〈回车〉 20□Y〈回车〉 20Y〈回车〉 (17)若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是(C)

A)sqrt(abs(n^x+e^x)) B) sqrt(fabs(pow(n,x)+pow(x,e))) C)sqrt(fabs(pow(n,x)+exp(x))) D) sqrt(fabs(pow(x,n)+exp(x)))

(18)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A) A)k++ B)k+=1 C)++k D)k+1 (19)有以下程序,其中%u表示按无符号整数输出(B) main()

{unsigned int x=0xFFFF; /* x的初值为十六进制数*/ printf(“%u\\n”,x); }

程序运行后的输出结果是

A)-1 B)65535 C)32767 D)0xFFFF

(20)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是(C)

A)if(x++); B)if(x>y&&y!=0); C)if(x>y) x- - D)if(y<0) {;} else y++; else x++; (21)以下选项中,当x为大于1的奇数时,值为0的表达式(D)

A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0 (22)以下叙述中正确的是(C)

A)break语句只能用于switch语句体中

B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环 C)break语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用相同 (23)有以下程序(A) main() {int k=5,n=0; do {switch(k)

{case1: case3:n+=1; break;

default;n=0;k--;

case2: case4:n+=2;k--;break; }

printf(“%d”,n); }while(k>0&&n<5); }

程序运行后的输出结果是

A)235 B)0235 C)02356 D)2356 (24)有以下程序

mian() {int i,j;

for(i=1;i<4;i++)

{for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j); printf(“\\n”); } }

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

A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=3

2*1=2 2*2=4 2*2=4 2*3=6 3*1=3 3*3=9 C) 1*1=1 D) 1*1=1

1*2=2 2*2=4 2*1=2 2*2=4 1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9 (25)以下合法的字符型常量是(A)

A)”\\x13” B)”\\018” C)”65” D)”\\n”

(26)在C语言中,函数返回值的类型最终取决于(A)

A)函数定义时在函数首部所说明的函数类型 B)return语句中表达式值的类型 C)调用函数时主函数所传递的实参类型 D)函数定义时形参的类型 (27)已知大写字母A的ASCII码是65,小写字母aASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是(D)

A)c=(c-A)&+‟a‟ B)c=c+32 C)c=c-„A‟+‟a‟ D)c=(„A‟+c)&-„a‟ (28)有以下函数 int fun(char *s) {char *t=s; while(*t++); return(t-s); }

该函数的功能是(B)

A)比较两个字符的大小 B)计算s所指字符串占用内存字节的个数 C)计算s所指字符串的长度 D)将s所指字符串复制到字符串t中 (29)设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是(D)

A)float *p=1024; B)int *p=(float x); C)float p=&x; D)c=(„A‟+c)&-„a‟ (30)有以下程序 #include main()

{int n,*p=NULL;

*p=&n;

printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d\\n”,p); }

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是(A)

A)int n,*p=NULL; B)*p=&n; C)scanf(“%d”,&p) D)printf(“%d\\n”,p); (31)以下程序中函数f的功能是:当flag为1时,进行有由小到大排序;当flag为0时,进行由大到小排序。 void f(int b[],int n,int flag) {int i,j,t; for(i=0;i for (j=i+1;j

if(flag?b[i]>b[j]:b[i] } main()

{int a[10]={5,4,3,2,1,6,7,8,9,10},i; f(&a[2],5,0); f(a,5,1);

for(i=0;i<10;i++) printf(“%d,”a[i]); }

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

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, (32)有以下程序 void f(int b[]) {int i;

for(i=2;i<6;i++) b[i]*=2; } main()

{int a[10]={1,2,3,4,5,6,7,8,9,10},i; f(a);

for(i=0;i<10;i++) printf(“%d,”,a[i]); }

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

A)1,2,3,4,5,6,7,8,9,10, B)1,2,6,8,10,12,7,8,9,10 C)1,2,3,4,10,12,14,16,9,10, D)1,2,6,8,10,12,14,16,9,10,

(33)有以下程序 typedef struct{int b,p;}A;

void f(A c) /*注意:c是结构变量名*/ {int j; c.b+=1; c.p+=2; } main() {int i; A a={1,2}; f(a);

printf(“%d,%d\\n”,a.b,a.p); }

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

A)2,3 B)2,4 C)1,4 D)1,2 (34)有以下程序 main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t; for(i=0;i<4;i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/ for(i=0;i<4;i++)printf(“%d,”,a[i][j]); }

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

A)1,6,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1, (35)有以下程序 main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t; for(i=0;i<3;i++)

for(k=i+i;k<4;k++) if(a[i][i] for(i=0;i<4;i++)printf(“%d,”,a[0][i]); }

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

A)6,2,1,1, B)6,4,3,2, C)1,1,2,6, D)2,3,4,6, (36)有以下程序 void f(int *q) {int i=0;

for( ; i<5;i++)(*q)++; } main()

{int a[5]={1,2,3,4,5},i; f(a);

for(i=0;i<5;i++)printf(“%d,”,a[i]); }

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

A)2,2,3,4,5, B)6,2,3,4,5, C)1,2,3,4,5, D) 2,3,4,5,6, (37)有以下程序 #include main()

{char p[20]={„a‟,‟b‟,‟c‟,‟d‟},q[]=”abc”, r[]=”abcde”; strcpy(p+strlen(q),r); strcat(p,q); printf(“%d%d\\n”,sizeof(p),strlen(p)); }

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

A)20 9 B)9 9 C)20 11 D)11 11 (38)有以下程序 #include main()

{char p[20]={„a‟,‟b‟,‟c‟,‟d‟},q[]=”abc”, r[]=”abcde” strcat(p,r); Strcpy(p+strlen(q),q); Printf(“%d \\n”,sizeof(p)); }

程序运行后的输出结果是(B) A)9 B)6 C)11 D)7 (39)有以下程序 #include main()

void f(char p[][10], int n ) /* 字符串从小到大排序 */ { char t[10]; int i,j; for(i=0;i for(j=i+1;j

if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); } } main()

{char p[5][10]={“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”}; f(p,5);

printf(“%d\\n”,strlen(p[0])); }

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

A) 2 B) 4 C) 6 D) 3 (40)有以下程序 void f(int n, int *r) {int r1=0;

if(n%3==0) r1=n/3; else if(n%5==0) r1=n/5; else f(--n,&r1); *r=r1; } main() {int m=7,r;

f(m,&r); printf(“%d\\n,r”); }

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

A) 2 B) 1 C)3 D) 0 (41)有以下程序

main(int argc,char *argv[]) {int n=0,i;

for(i=1;i n=n*10+*argv[i]-„0‟; printf(“%d\\n”,n); }

编译连接后生成可执行文件tt.exe,若运行时输入以下命令行 tt 12 345 678

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

A) 12 B) 12345 C)12345678 D) 136 (42)有以下程序

int a=4; int f(int n)

{int t=0; static int a=5; if(n%2) {int a=6; t+=a++;} else {int a=7;t+=a++;} return t+a++; }

main() {int s=a,i=0;

for(;i〈2;i++) s+=f(i); printf (“%d\\n”,s); }

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

A)24 B)28 C)32 D)36 (43) 有一个名为init.txt的文件,内容如下: #define HDY(A,B) A/B

# define PRINT(Y) Printf(“y=%d\\n.,Y) 有以下程序

#include “init.txt” main()

{int a=1,b=2,c=3,d=4,k; K=HDY(a+c,b+d); PRINT(K); }

下面针对该程序的叙述正确的是(D)

A)编译有错 B)运行出错 C)运行结果为y=0 D)运行结果为 y=6 (44) 有以下程序 main()

{char ch[]=“uvwxyz”,*pc; Pc=ch; printf(“%c\\n”,*(pc+5)); }

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

A)z B)0 C)元素ch[5]的地址 地址

(45) 有以下程序 struct S {int n; int a[20];}; void f(struct S *P) {int i,j,t; for(i=0;in-1;i++) for(j=i+1;jn;j++)

D)字符y的 if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t; } } main()

{int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}}; f(&s);

for(i=0;i printf(“%d”,s.a[i]); }

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

A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)2,3,1,6,8,7,5,4,10,9, D)10,9,8,7,6,1,2,3,4,5, (46)有以下程序

struct S{ int n; int a[20]; }; void f(int *a,int n) {int i;

for(i=0;i a[i]+=i; } main()

{int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}}; f(s.a, s.n);

for(i=0;i printf(“%d”,s.a[i]); }

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

A)2,4,3,9,12,12,11,11,18,9, B)3,4,2,7,9,8,6,5,11,10, C)2,3,1,6,8,7,5,4,10,9, D)1,2,3,6,8,7,5,4,10,9, (47)有以下程序段

typedef struct node { int data; struct node *next; } *NODE; NODE p;

以下叙述正确的是(C)

A)p是指向struct node结构变量的指针的指针 B)NODE p;语句出错

C)p是指向struct node结构变量的指针 D)p是struct node结构变量 (48)有以下程序 main()

{unsigned char a=2,b=4,c=5,d; d=a|b; d&=c; printf(“%d\\n”,d); } 程序运行后的输出结果是(B)

A)3 B)4 C)5 D)6 (49)有以下程序 #include main()

{FILE *fp; int k,n,a[6]={1,2,3,4,5,6}; fp=fopen(“d2.dat”,”w”);

fprintf(fp,”%d%d\\n”,a[0],a[1],a[2]); fprintf(fp, “%d%d%d \\n”,a[3],a[4],a[5]); fclose(fp);

fp=fopen(“d2.dat”,”r”);

fscanf(fp, “%d%d”,&k,&n); printf(“%d%d\\n”,k,n); fclose(fp); }

程序运行后的输出结果是(D) A)1 2 B)1 4 C)123 4 D) 123 456 (50)有以下程序 #include main ()

{FILE *fp; int i,a[6]={1,2,3,4,5,6k}; fp=fopen(“d3.dat”,”w+b”); fwrite(a,sizeof(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/

fread(a,sizeof(int),3,fp); fclose(fp); for(i=0;i<6;i++) printf(“%d,”,a[i]); }

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

A)4,5,6,4,5,6, B)1,2,3,4,5,6, C)4,5,6,1,2,3, D)6,5,4,3,2,1, 二.填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须写完整. (1) 在深度为7的满二叉树中,度为2的结点个数为___63____。

(2) 软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于__黑箱(或黑盒) 测试。

(3) 在数据库系统中,实现各种数据管理功能的核心软件称为 __数据库管理系统__。

(4) 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维

护阶段。编码和测试属于 开发_____阶段。

(5)在结构化分析使用的数据流图(DFD)中,利用数据字典 对其中的

图形元素进行确切解释。

(6)执行以下程序后的输出结果是 a=14 。 main() {int a=10;

a=(3*5,a+4); printf(“a=%d\\n”,a); }

(7)当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行 0 次。 #include main() {char ch;

While((ch=getchar())==‟0‟) printf(“#”); }

(8)以下程序的运行结果是 m=4 k=4 i=5 k=5 。 int k=0; void fun(int m)

{ m+=k; k+=m; printf(“m=%d\\n k=%d ”,m,k++);} main() { int i=4;

fun(i++); printf(“i=%d k=%d\\n”,i,k); }

(9)以下程序的运行结果是 #& 。 main()

{int a=2,b=7,c=5; switch(a>0) {case 1:switch(b<0)

{case 1:switch(“@”); break;

Case 2: printf(“!”); break; }

case 0: switch(c==5)

{ case 0: printf(“*”); break; case 1: printf(“#”); break; case 2: printf(“$”); break; }

default : printf(“&”); }

printf(“\\n”); }

(10)以下程序的输出结果是 9

# include main()

{ printf(“%d\\n”,strlen(“IBM\\n012\\1\\\\”)); }

(11)已定义char ch=”$”;int i=1,j;执行j=!ch&&i++以后,i的值为1 (12)以下程序的输出结果是 5 4 # include main()

{ char a[]={„\\1‟,‟\\2‟,‟\\3‟,‟\\4‟,‟\\0‟}; printf(“%d %d\\n”,sizeof(a),srelen(a)); }

(13)设有定义语句:int a[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为0 (14)以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{int x[10],a[9],I; for (i=0;i<10;i++) scanf(“%d”,&x[i]); for( i=1 ;i<10;i++) a[i-1]=x[i]+ x[i-1] ; for(i=0;i<9;i++) printf(“%d”,a[i]);

printf(“\\n”);

(15)以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上,请填空:

main()

{int x,y,z,max,*px,*py,*pz,*pmax; scanf(“%d%d%d”,&x,&y,&z); px=&x; py=&y; pz=&z; pmax=&max;

*pmax=*px(或*pmax=x) ; if(*pmax<*py)*pmax=*py; if(*pmax<*pz)*pmax=*pz; printf(“max=%d\\n”,max); }

(16)以下程序的输出结果是10 int fun(int*x,int n) {if(n==0) return x[0];

else return x[0]+fun(x+1,n-1); } main()

{int a[]={1,2,3,4,5,6,7}; printf(“%d\\n”,fun(a,3)); }

(17)以下程序的输出结果是 35 # include main()

{char *s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char)); *s1=15; *s2=20; m=*s1+*s2; printf(“%d\\n”,m);

}

(18)设有说明

struct DATE{int year;int month; int day;};

请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day依次赋初值2006、10、1: struct DATA d={2006,10,1}; (19)设有定义:FILE *fw;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。 fw=fopen(“readme.txt”, \"a\" )

黑龙江省高校非计算机专业学生计算机等级考试二 级 C 卷

一、计算机基础知识(共30分) (一)单选题(每题1分,共20分) 1.计算机系统的软件通常分为?()。

A.管理软件和控制软件 B.系统软件和应用软件C.高级软件和一般软件 D.网络软件和办公软件

2.在计算机应用领域中,CAD、CAI、CAT所代表的中文含意依次是()。 A.计算机辅助设计、计算机辅助制造、计算机辅助教学 B.计算机辅助制造、计算机辅助测试、计算机辅助设计 C.计算机辅助设计、计算机辅助教学、计算机辅助测试 D.计算机辅助教学、计算机辅助制造、计算机辅助设计 3.下列一组数据中最大的数是()。

A. (157)8 B. (1EF)16 C. (101011)2 D. (498)10 4.下列四种存储器中,存取速度最快的是()。 A.磁带 B.软盘 C.硬盘 D.内存储器

5.在计算机中,一条指令代码由()和操作码两部分组成。

A.指令码 B.地址码 C.运算符 D.控制符 6.以下措施不能防止计算机病毒的是(.)

A.软盘未写保护B.先用杀毒软件对其他计算机上拷贝来的文件查杀病毒 C.不用来历不明的磁盘D.经常进行放毒软件升级

7.在Windows中,配置声音方案就是定义在发生某些事件时所发出的声音,配置声音方案应通过() 选项。

A.“我的电脑”的“声音” B.“网络邻居”的“声音” C.“控制面板”的“声音” D.“资源管理器”的“声音” 8.下列有关删除文件的说法中不正确的是()。

A.软盘上的文件被删除后不能被恢复 B.网络上的文件被删除后不能恢复 C.在MS—DOS方式中被删除的文件不能被恢复D.直接用鼠标拖到“回收站”的文件不能被恢复

9. 在下列操作中,(.)直接删除文件而不把删除文件送入回收站。 A.Del B.Shift+Del C.Alt+Del D.Ctrl+Del 10. 在Windows中,关于文件名的说法,不正确的是()。

A.在同一个文件夹中,文件(夹)不能重名B.文件名中可以包含空格 C.文件名中可以使用汉字D.一个文件名中最多可包含256个字符 11. 把当前活动窗口作为图形复制到剪贴板上,使用()组合键。 A.Alt+Print Screen B.Print Screen C.Shift+Print D.Ctrl+Print Screen

12. 在 Windows环境中,可以使用()键在英文标点及中标点之间进行切换。 A.CTRL+SPACE B.CTRL+SHIFT C. SHIFT+SPACE D. CTRT+

13. Internet使用的最重要的协议是TCP/IP是一个完整的协议集,它的全称是()。

A.传输控制协议 B.传输控制/网际协议C.应用协议 D.远程登录协议

转贴于:14. 下列关于计算机病毒描述,正确的是()

A.计算机病毒只感染.exe或.com文件B.计算机病毒是由于软盘表面不卫生引起C.计算机病毒是通过读写软盘、光盘或internet传播D.计算机病毒是通过电力网传播的

15. 下列E-MAIL地址正确的是()。

A.@yhm.163.com B.yhm@163.com C.@163.com.yhm D.163.com.yhm 16. 以下统一资源定位器的写法正确的是()。

A.http: \\\\www.sina.com\\que\\que.html B.http: //www.sina.com\\que.html C.http: //www.sina.com/que.html D.http://www.sina.com\\que/que.htm

17. Internet的域名中,顶级域名为gov代表()。 A.教育机构 B.商业机构 C.政府部门 D.军事部门 18. 以下哪一个选项按顺序包括了OSI模型的各个层次()

A.物理层,数据链路层,网络层,运输层,会话层,表示层和应用层 B.物理层,数据链路层,网络层,运输层,系统层,表示层和应用层 C.物理层,数据链路层,网络层,转换层,会话后,表示层和应用层 D.表示层,数据链路层,网络层,运输层,会话层,物理层和应用层 19.()不是多媒体技术的特征。

A.集成性 B.交互性 C.高速性 D.实时性 20. ()是多媒体关键技术。

A.信息数字化技术B.信息的编码压缩C.硬件核心D.超媒体超文本

计算机二(二)填空题(每空1分,共10分)

1. 世界首次提出存储程序计算机体系结构的科学家是()。 2. 在计算机中,表示信息数据编码的最小单位是()。

3. 计算机内部常用字节作为基本单位,一个字节是()个二进制位。 4.在Windows中,为保护文件不被修改,可将它的属性设置为()。 5. 中文Windows 2000是一个()操作系统。

6. 在Windows中,可用()键进行中英文标点的转换。

7. 在计算机网络中,通常把提供并管理共享资源的计算机称为()。 8. 网址中的http是指()。

9. 多媒体计算机系统包括多媒体计算机软件系统和()。 10. 计算机网络从逻辑功能上可以分为通信子网和()两部分。 二、办公软件Office(共25分,专科必答;本科不答,答者不得分) (一)单选题(每题1分,共10分)

1. 要创建一个名字为myfile.doc文档,正确的操作是()。

A.利用“文件”菜单中的“打开”命令,在“打开”文件对话框中输入文件名 B.利用“文件”菜单中的“新建”命令,创建一个空文档,输入编辑完毕后保存,在弹出的“另存为”对话框中输入文件名

C.利用“插入”菜单中“文件”命令,输入文件名 D.利用“窗口”菜单中的“新建窗口”命令 2.在Word的编辑状态,选定表格中的一个单元格,然后进行删除操作时()。 A.只能删除该单元格所在的一行B.只能删除该单元格所在的一列 C.将删除该单元格所在的一行和一列

D.可删除一行,也可删除一列,也可只删除一个单元格

3.()不是Word提供的视图。 A.普通视图B.页面视图 C.打印预览D.合并视图

4. 在Word 2000的编辑状态,要想为当前文档中的文字设定上、下标效果,应当使用“格式”菜单中的()。

A.“字体”命令 B.“段落”命令 C.“分栏”命令 D.“样式”命令 5. 在Excel工作表中,表示一个以单元格C5、N5、C8、N8为四个顶点的单元

格区域,正确的是()。 A.C5:C8:N5:N8 B.C5:N8 C.C5:C8 D.N8:N5

6. 在当前工作表的B1:C5单元格区域已经填入数值型数据,如果要计算这10个单元格的平均值并把结果保存在D1单元格中,则要在D1单元格中输入()。 A.=AVERAGE(B1:C5) B.=MAX(B1:C5) C.=SUM(B1:C5) D.=COUNT(B1:C5) 7. 一个Excel2000的“工作簿”()。

A.只有一张工作表 B.只有一张工作表和一张图表 C.包括1~256张工作表 D.有三张工作表,即Sheet1、Sheet2、Sheet3 8. 在PowerPoint超级链接的目标中不包括()。 A.书签 B.文件 C.文件夹 D.Web页

9. 在Powerpointer 2000中,通过()可以设置放映幻灯片时的动画效果。

A.“幻灯片放映”菜单中的“动画方案„”选项 B.“工具”菜单中的“自定义„”选项

C.“插入”菜单中的“对象„”选项 D.“格式”菜单中的“幻灯片设计„”选项 10. 下列的 ()方式,不是幻灯片文本框中文本的对齐方式。 A.左对齐 B.分散对齐 C.居中 D.顶端对齐 (二)填空题(每空1分,共10分)

1. 当用户在对文档进行编辑操作过程中,如果对先前所做的工作不满意,想恢复到操作前状态,可利用“常用”工具栏的()按钮。

2. 在Word的编辑状态,要想为当前文档中的文字设定行间距,应当使用格式菜单中的()。

3. 在Word表格中,可对表格的内容进行排序。不能作为排序类型的有()。 4. 在Word 2000编辑状态设置了标尺,可以同时显示水平标尺和垂直标尺的视图方式是()。

5. 在Excel中输入的数据类型有数值型、文本型及()三种类型。

6. 在Excel中,使用()菜单中的排序命令,可以对整个报表或部分报表进行排序。

7. Excel工作表的基本单位是()。

8. 在PowerPoint2000中,保存演示文稿文件时系统默认的文件扩展名为()。 9. 在PowerPoint编辑状态下的()视图中,不可对幻灯片进行移动、复制、排序等操作。

10. 选择“格式”菜单中( )命令可以设置幻灯片的背景颜色和效果。

级考试_考试大

(三)判断题(每题1分,共5分)

1. Word的查找和替换功能十分强大,能够查找图形对象。

2. 在Word的编辑状态,将鼠标移到文档左侧的空白区内,当鼠标指针变为指向右上方的箭头后,连续单击三次,则选中全文。

3. 在Excel中“清除”命令,可选择清除单元格内的数据,但不清除单元格的本身。

4.在Excel中,不连续的单元格区域也可以被复制。 5. 幻灯片应用模板一旦选定,就不可以改变。

三、C语言(共70分,本科必答,专科只答指定的45分)

(一)单选题(每小题1分,共9分,本科、专科必答。) 1、设以下变量均为int型,表达式的值不为7的是 (1) 。 A. (x=y=6,x+y,x+1) B. (x=y=6,x+y,y+1)

C. (x=6,x+1,y=6,x+y) D. (y=6,y+1,x=y,x+1)

2、以下能对一维数组a进行正确初始化的语句是 ____(2)___ 。

A.int a[10]=(0,0,0,0,0); B.int a[10]={ };C.int a[10]={0};D.int a[10]={10*1};

3、一个C语言程序总是从 (3) 开始执行。

A. 主函数 B. 主过程 C. 子程序 D. 主程序

4、以下程序的输出结果是 (4) 。 Main()

{ int a,I;a=0; For (i=1;i<5;i++) { switch(i) { case 0; case 3:a+=2; case 1; case 2:a+=3; default:a+=5; }

}printf(“%d\\n”,a); }

A. 31 B. 13 C. 10 D. 20

5、当a=4, b=1, c=3, d=7时,表达式a>b | |c==d&&d的值为 (5) 。 A. 2 B.0 C. -1 D. 1

6、设有以下说明语句 typedef struct {int n; char ch[8]; }PER;

则下面的叙述正确的是 (6) 。

A. PER是结构体变量 B. PER是结构体类型名

C. typedef struct是结构体类型 D. struct是结构体类型名

7、设int x=3,y=2;float a=2.5, b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为 (7) 。

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

8、若有如下语句 int x=3;

do{printf(“%d\\n”,x-=2);}

while(!(--x)); 则上面程序段 (8) 。

A.输出的是1 B. 输出的是1和-2

C. 输出的是3和0 D. 是死循环 9、执行下列程序段后,输出的结果是 (9) 。 Main();

{ char a[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘\\n’ };int i,j;

i=sizeof(a);j=strlen(a); printf(\"%d,%d\\b\ }

A. 9,9 B. 8,9 C. 1,8 D. 9,8

(二)写出程序运行结果(每小题4分,共20分,本科、专科必答。)1、程序 main()

{int i,j,x=0; for(i=0;i<2;i++) {x++;

for(j=0;j<3;j++) {if(j%2)continue; x++; } x++;

‘h’, }

printf(\"x=%d\\n\ }

2、程序

main()

{int i,s=0;

for(i=0;i<=20;i++) if(i%2==0) s+=i; printf(\"s=%d\\n\ }

3、程序 main() {

static int a[]={5,8,7,3,2,9}; int s1,s2,i,*ptr; s1=s2=0; ptr=&a[0]; for (i=0;i<5;i+=2) {

s1+=*(ptr+i); s2+=*(ptr+i+1); }

printf(\"s1=%d,s2=%d\\n\ } 4、程序 main() {int x =23; do

{printf(“%d”,x--);}

while(!x); }

5、程序 fun(int x)

{static int a=3 ; a+=x ; return(a) ;} main( )

{int k=2,m=1,n; n=fun(k); n=fun(m);

printf(\"n=%d\\n\

(三)程序填空(每空2分,共18分,专科只答第1、第2小题,本科全答。) 1、下面程序的功能是:将一个字符串的内容颠倒过来 Viod fun(char str[]) { int i,j,__(1)__; for(i=0,j=____(2)____;i { k=str[i];

str[i]=___(3)___; str[j]=k; } }

2、以下程序的运行结果是输出如下图形。 ******* ***** *** * void a(int i) { int j, k ;

for (j=0 ; j<7-i ; j++ ) printf (' ') ;

for (k=0 ; k<=[(4)]; k++ ) printf ('*') ; printf ('\\n') ; } main() {int i;

for (i=3 ; i>=0 ; i-- ) [(5)]; }

3、下面程序的功能是:删除一个字符串中的所有数字字符。 #include \"stdio.h\" void delnum(char *s) {int i,j;

for(i=0,j=0; s[i]!='\\0';i++) if(s[i]<'0' || s[i]>'9') { (6) ;j++;} s[j]='\\0'; } main () {char *item;

printf(\"\\n input a string:\\n\"); gets(item); (7) ;

printf(\"\\n%s\ }

4、以下程序的功能是将一个数组中的元素按逆序存放,请填空。 #define N 7 main () {

static int a[N]={12,9,16,5,7,2,1},k,s; printf(\"\\n the original array:\\n\");

for (k=0;k printf(\"M\ for (k=0;k { s=a[k];

a[k]= [(8) ]; [(9) ] ;} printf(\"\\n the changed array:\\n\"); for (k=0;k printf (\"M\ }

(四)阅读程序回答问题

(每小题6分,共18分,专科只答第1小题,本科全答。)

1、程序

void swap (int p[],int j) {int t; t=p[j-1]; p[j-1]=p[j]; p[j]=t; }

void bubble(int a[],int m) {int i,j; for(i=0;i for(j=m-1;j>i;j--) if(a[j-1] } main()

{int a[]={11,33,27,33,-1,22,-8,12),i; bubble(a,8);

for(i=0;i<8;i++) printf(\"M\ }

问题1:此程序的运行结果为什么? 问题2:若将bubble函数中的语句: if(a[j-1] 改成:

if(a[j-1]>a[j]) swap(a,j); 则程序的运行结果为什么? 2、程序 main( )

{ int a[6][6] ; int i, j ;

for (i=0 ; i<5 ; i++ ) {a[i][i]=1; a[i][0]=1;} for (i=2 ; i<6 ; i++ ) for (j=1 ; j<=i-1 ; j++ ) a[i][j]= a[i-1][j-1]+ a[i-1][j]; for (i=0 ; i<6 ; i++ ) {for (j=0 ; j<=i ; j++ ) printf(\"M\ printf ('\\n') ;} }

问题3:程序的功能是什么? 问题4:写出程序的运行结果。 3、 程序 #include void inverse(str) char str[];

{ char t; int n,i,j; n=strlen(str); for(i=0,j=n-1;i

{t=str[i];str[i]=str[j];str[j]=t; } } main()

{ char str[81]; gets(str); inverse(str); printf(\"%s \\n\ }

问题5:可否将程序的第二行和第三行改成 void inverse(char str[ ])?

问题6:如果从键盘输入的字符串为ABCDEFGH,则输出结果是什么?

(五)程序改错

(共5分,不准更改程序结构,不准增删语句行,专科不答,本科必答。) 1、下面程序的功能是:计算正整数num的各位上的数字之平方和。 #include #include

long fun(long num) {

long k=1; /*********错误1*********/ do {

k+=(num)*(num);

num/=10;

}while(num) /*********错误2*********/

return(k); } main() { long n; clrscr();

printf(\"\\Please enter a number:\");

scanf(\"%ld\

printf(\"\\n%ld\\n\

}

错误1处应改为: 错误2处应改为:

黑龙江省高校非计算机专业学生计算机等级考试预测试卷之二

(一)单选题(每题1分,共20分)

1. 第二代电子计算机所采用的逻辑元件是()。

A.小规模集成电路 B.大规模、超大规模集成电路 C.晶体管 D.电子管 2. 运算器和控制器总称为()。

A.主机 B.CPU C.外部设备 D.硬件系统 3. 计算机能直接识别和处理的语言是()。

A.汇编语言 B.自然语言 C.机器语言 D.高级语言 4. I/O接口位于()。

A.总线和I/0设备之间B.总线和主机之间C.CPU和主存储器之间D.CPU和外存储器之间 5. 显示器的()越高,显示的图象越清晰。

A.对比度 B.亮度 C.对比度和亮度 D.分辨率 6. 计算机的存储容量常用KB为单位,其中1KB表示的是()。

A.1024个字节 B.1024个二进制位 C.1000个字节 D.1000个二进制位 7. 把 Windows 的窗口和对话框作比较窗口可以移动和改变大小,而对话框()。 A.既不能移动,也不能改变大小B.仅可以移动,不能改变大小 C.不能移动,仅可以改变大小D.既能移动,也能改变大小 8. Windows 中的“剪切板”是()。

A.硬盘中的一块区域 B.软盘中的一块区域C.高速缓存中的一块区域D.内存中的一块区域 9. 资源管理器窗口分左、右窗格,右窗格是用来()。

A.显示活动文件夹中包含的文件夹或文件B.显示被删除文件夹中包含的文件夹或文件 C.显示被复制文件夹中包含的文件夹或文件D.显示新建文件夹中包含的文件夹或文件 10. 在Windows 中,呈浅灰色显示的菜单意味着()。 A. 该菜单当前不能选用 B. 选中该菜单后将弹出对话框 C. 该菜单正在使用 D. 选中该菜单后将弹出下级子菜单

11.在中文Windows文件或文件夹窗口中,若要选定一组非连续文件或文件夹,在单击选定的第一个文件或文件夹名(或图标)后,按下()键不放,单击欲选定的文件或文件夹名(或图标),则这些非连续文件或文件夹被选中。

A.Alt B.Esc C.Shift D.Ctrl

答案

2006年9月全国计算机等级考试二级C语言

一、 选择题:

01—05 DACBD 06—10 CDBBA 11—15 ADDAD 16—20 CCBBC 21—25 DACBC 26—30 ABCDC 31—35 ADBAD 36—40 BBADC 41—45 CBBCD 46—50 BABDC

二、 填空题:

1、3 2、调试 3、元组 4、栈 5、线性 6、12346.0

7、10 11 8、1 9、 7 4 10、n=n/10 11、(x+8)

12、sin(x) 13、0 14、i%2==0 15、s-- 16、*s++ 17、18 18、16 11 19、->data 20、”rb”

2007年4月全国计算机等级考试二级C语言

一、选择题:

1-5 24134 6-10 31321 11-15 34231 16-20 43113 21-25 43421 26-30 14241 31-35 22412 36-40 23232 41-45 42411 46-50 13241 二、填空题:

1. 63 2,墨盒 3.DBNS 4,开发 5,数据 字典 6,a-14 7,0 8,无答案 9,# 与号 10,9 11,1 12,5_4 13,13 0 14,i=1 15,X[i-1] 16,无答案 17,10 18,40 19,无答案 20,\"20a\"

黑龙江省高校非计算机专业学生计算机等级考试预测试卷之一答案

一、计算机基础知识(共30分) (一)单选题(每题1分,共20分)

1、答案:B2、答案:C解析:CAD计算机辅助设计 CAI计算机辅助教学

CAT计算机辅助测试 CAM计算机辅助制造

3、答案:D 解析:如果要判断几种不同进制数值的大小,最简便的方法是将他们转化为某一种相同进制的数字,在这里把四个选项全部转化为十进制数: (157)8=(111)10;(1EF)16=(495)10;(101011)2=(43)10

4、答案:D 5、答案:A 6、答案:A 7、答案:C 8、答案:D 9、答案:B 10、答案:D 解析:一个文件名中最多可包含255个字符 11、答案:A 12、答案:C 13、答案:B

解析:TCP传输控制协议的主要功能是对网络中的计算机和通信设备的管理,规定了信息包应该怎样分层、分组,又怎样在收到信息包后重组数据,以何种方式在线路上传输信号。 IP网际协议的功能是无连接数据报传送,数据报路由选择,差错处理等。 14、答案:C

15、答案:B 解析:电子邮件格式为:用户名@主机域名, 其中,符号“@”读作英文的“at”;“@”左侧的字符串是用户的信箱名,右侧是邮件服务器的主机名。 16、答案:C 解析:URL即统一资源定位器,用来定位网上信息资源的位置和方式,其基本语法格式为:通信协议://主机/路径/文件名 17、答案:C 解析:机构顶级域名见下表: com net edu gov mil org int web arts info 商业组织 网络和服务提供商 教育机构 除军事部门以外的政府组织 军事组织 除以上组织以外的组织 国际组织 强调其活动与Web有关的组织 从事文化和娱乐活动的组织 提供信息服务的组织 18、答案:A 19、答案:C解析:多媒体技术具有多样性、交互性、实时性和集成性等主要特点。20、答案:B 转贴(二)填空题(每空1分,共10分) 1、答案:冯·诺依曼 2、答案:位 3、答案:8 4、答案:只读 5、答案:单用户多任务 6、答案:Ctrl+· 7、答案:服务器 8、答案:超文本传输协议 解析:HTTP(Hyper Text Transfer Protocol)协议,采用超文本、超媒体的方式进行信息的存储与传递,并能把各种信息资源有机地结合起来,具有图文并茂的信息集成能力及超文本链接能力。 9、答案:多媒体计算机硬件系统 10、答案:资源子网 解析:计算机网络由通信子网和资源子网构成,通信子网负责计算机间的数据通信,也就是数据传输,资源子网是通过通信子网连接在一起的计算机,向网络用户提供可共享的硬件、软件和信息资源。 二、办公软件Office(共25分,专科必答;本科不答,答者不得分) (一)单选题(每题1分,共10分) 1、答案:B 2、答案:D 3、答案:D 4、答案:A 5、答案:B 6、答案:A 7、答案:C 8、答案:C 9、答案:A 10、答案:D (二)填空题(每空1分,共10分)

1、答案:撤消 2、答案:段落命令 3、答案:偏旁部首 4、答案:页面方式 5、答案:日期时间型 6、答案:数据 7、答案:单元格 8、答案:ppt 9、答案:备注页 10、答案:背景 (三)判断题(每题1分,共5分)

1、答案:不正确 2、答案:正确 3、答案:正确 4、答案:不正确 5、答案:不正确

三、C语言(共70分,本科必答,专科只答指定的45分)

(一)单选题(每小题1分,共9分,本科、专科必答。)

1、 答案:C 2、 答案:C 3、 答案:A 4、 答案:A 5、 答案:D

6、 答案:B 解析:本题中,typedef声明新的了性名PER来代替已有的类型名,PER代表

上面指定的一个结构体类型,此时,也可以用PER来定义变量。

7、 答案:D 8、 答案:B 解析:do-while语句的一般格式为:do循环体语句while(表

达式);先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行printf(“%d\\n”,x-=2)后,值为x=x-2,即为1。判断表达式的值,!(--x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式!(--x)的值为0,结束循环。

9、 答案:D 解析:sizeof是求字节运算符,在字符数组a中,‘\\n’也作为字节保存,是

a数组的一个成员,所以sizeof(a)的值为9,strlen是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括‘\\n’在内,所以strlen(a)的值为8。

于:考(二)写出程序运行结果(每小题4分,共20分,本科、专科必答。) 1、答案:x=8 解析:该题是一个for循环嵌套语句。第一层for循环循环2次,第二层循环3次,但j等于0和1时,将执行continue语句,不执行x++运算,所以每次执行完内循环后,x的增量为1,最后一个x++运算将每次累加起来就是x的值。

2、答案:s=110 解析:因为For循环开始时,NextChar=MaxSize,执行Seek #1,NextChar,文件指针指向文件尾,EOF(1)为真,循环结束后文件指针指向文件的开始处。

3、答案:s1=14 s2=20

4、答案:23 解析:先要清楚do…while语句的执行过程:先执行依次指定的循环体语句,本题中执行x—后判断表达式,表达式的值为!x为假,程序结束循环。 5、答案:n=6

(三)程序填空(每空2分,共18分,专科只答第1、第2小题,本科全答。)

(1)k (2)strlen(str) (3)str[j] (4)2*i+1 (5) a(i) (6)s[j]=s[i] (7)delnum(item) (8)a[N-k-1] (9)a[N-k-1]=s

(四)阅读程序回答问题(每小题6分,共18分,专科只答第1小题,本科全答。)

答1: 33 33 27 22 12 11 -1 -8 答2: -8 -1 11 12 22 27 33 33 答3:打印出杨辉三角形 答4: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

1 5 10 10 5 1 答5:可以 答6:HGFEDCBA

(五)程序改错(共5分,不准更改程序结构,不准增删语句行,专科不答,本科必答。)

错误1处应改为:long k=0; 错误2处应改为:while(num);

试_考试

因篇幅问题不能全部显示,请点此查看更多更全内容