2007年4月全国计算机等级考试二级C语言笔试试题-中大网校

合集下载

20072013全国计算机二级C等级考试真题及答案

20072013全国计算机二级C等级考试真题及答案

2007年9全国计算机等级考试二级笔试试卷一、选择题(每小题2分,共70分)(11)在函数中,可以用auto,extem,register,和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是 AA autoB extemC registerD static(12)对于一个类定义,下列叙述中错误的是BA 如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B 如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数C 如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D 如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数(13)如果派生类以public方式继承基类,则原基类的protected成员和public成员在派生类中的访问类型分别是 DA public和publicB public和protectedC protected 和publicD protected 和protected(14)下列运算符函数中肯定不属于类FunNumber的成员函数的是DA int operator-(FunNumber)B FunNumber operator-()C FunNumber operator-(int)D int operator – (FunNumber)(15)C++中的模板包括CA 对象模板和函数模板B 对象模板和类模板C 函数模板和类模板D 变量模板和对象模板(16)如果调用C++流进行输入输出,下面的叙述中正确的是AA 只能借助于流对象进行输入输出B 只能进行格式化输入输出C 只能借助于cin和cout进行输入输出D 只能使用运算符》和《进行输入输出(17)下列符号中不属于C++关键字的是DA friendB namespaceC continueD byte(18)下列各组的量申明中,含义相同的一组是 BA unsigned long int 和longB signed short int 和shortB unsigned short 和short D short int 和int(19) 必须用一对打括号括起来的程序段是DA switch 语句中的case标号语句B if 语句的分支C 循环语句的循环体D 函数的函数体(20)语句的int*p=&k定义于指针P,于这个语句等效的语句序列是AA int*p;p=&kB int*p;p=kC int*p;*p=&kD int*p;*p=k(21)关于函数重载,下列叙述中错误的是CA 重载函数的函数名必须相同B 重载函数必须在函数个数或类型上有所不同C 重载函数的返回值类型必须相同D 重载函数的函数体可以有所不同(22)有如下头文件Int f1();Static int f2();Class MA{PublicInt f3();Static int f4();(静态函数)};在所描述的函数中,具有隐含的this指针的是 CA f1B f2C f3D f4(23)派生类的成员函数不能访问基类的CA 共有成员和保护成员B 共有成员C 私有成员D 保护成员(24)下列关于运算符重载的描述中,正确的是 AA 运算符重载为成员函数时,若参数表中五参数,重载的是一元运算符B 一元运算符只能作为成员函数重载C 二元运算符重载为非成员函数时,参数表中有一个参数D C++中可以重载所有的运算符(25)下列关于类模板的模板参数的叙述中,错误的是 DA 模板参数可以作为数据成员的类型B 模板参数可以作为成员函数的返回类型C 模板参数可以作为成员函数的参数类型D 模板函数不能作为成员函数的局部变量的类型(26)已知一程序运行后执行的第一个输出操作是BCout<<setw(10)<<setfill(*)<<1234则此操作的输出结构是A 1234B ******1234C **********1234D 1234******(27)有如下程序#include <iostrcam>Using namespace std;Class myclass{Public:MyClass(){++count;}~MyClass(){--count;}Static int getcount(){return count;}PrivateStatic int count;};Int MyClass::count=0;Int main(){Myclass obj;Cout<<obj,getCount();MyClass*ptr=new MyClass;Cout<<MyClass::getcount();Delete ptr;Cout<<MyClass::gercount();Return();}程序的输出结果是 AA 121B 232C 221D 122程序的输出结果是CA val=10 const:val=20B const:val=10 const:val=20C const:val=10 val=20D val=10 val=20(29)有如下程序#include <iostream>Using namespace std;Class part{Public;Part(int x=(\):val(x){cout<<val;}-part(){cout<<val;}Private;Int val;};Class whole{Public;Whole(int x,int y,int z=0):p2(x),p1(y),val(z){cout<<val;}Whole(){count<<val;}Private;Part p1,p2;Int val;};Int maint{Whole obj(1,2,3);Resturn();}程序输出的结果是DA 123321B 213312C 213(30) 有如下程序:#include <iostream>Using namespace std;Class base{Public:Base(int x=0){cout<<x;}};Class derived : public base{Public:Derivedrin(x=y){cout<<x;}Priblic:Base val;};Int main(){Derived d(!);Return();}程序的输出结果是CA 0B 1C 01D 001(31)若有如下类定义:Classs B {Void fun1(){}Protected;Double varl;Public:Void fun2(){}};Class D:public B{Protected;Void fun3(){}};已知obj是类D的对象,下列语句中不违反成员访问控制的权限的是CA obj.fun1();B obj.var1;C obj.fun2();D obj.fun3();(32)有如下程序:#include<iostream>Using namespace sid;Class base{Public;Void output(){cout<<1;}Virtual void print() {cout<<B;}};Class derived:public base{Public:Void output(){cout<<2;}Void pri nt(){cout<<’D’;}};Int main()Base * passnew derived;Ptr->output();Ptr->print();Delete ptr;Return();}程序的输出结果是DA 1B B 1DC 2BD 2D33.下列是重载乘法运算的函数原型声明,其中错误的是AA myclass operator*(double,double);B myclass operator*(double,myclass);C myclass operator*(myclass,double);D myclass operator*( myclass , myclass);*是二元运算符,而且标准库里面已经有double*double的运算符定义,返回值为double,所以A的重载是错误的34.A(35) 有如下程序:#include <iostream>using namespace std;class B{public:virtual void show(){cout<<"b";}};class D:public B {public:void show(){cout<<"D";}};void fun1(B*ptr){ptr->show();}void fun2(B &ref){ref.show();}void fun3(B b){b.show();}void main(){B b,*p=new D;D d;fun1(p);fun2(b);fun3(d);}程序的输出结果是DA DBDB BBDC DBBD Dbb二、填空题(每空2分,共三十分)(6).在有定义语句:int a=3,b=2,c=1;则表达式a<b?a:b的值是_____(7).执行下列语句后,变量sum的值是____.Int sum =0;For (int j=I;j<=I;j++)For (int j=I;j<=I;j++)Sum++;(8).已知有函数f的定义如下:Int f(){Static int -6;s-2;return s}则在某程序中第二次执行函数用语句f();时,函数f的返回值是_____.(9)已知如下程序得输出结果时23,请将划线处缺失得部分补充完整。

计算机二级c语言.考试题库及答案

计算机二级c语言.考试题库及答案

计算机二级c语言.考试题库及答案一、选择题1. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,以下哪个选项是正确的字符串声明?A. char str[5] = "hello";B. char str[] = "hello";C. char str[5] = {'h', 'e', 'l', 'l', 'o'};D. char str = "hello";答案:B3. 下列哪个选项是C语言中的整型常量?A. 0x1AB. 1.5C. 0.1D. 1e2答案:A4. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(int a, b);答案:A5. C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][] = {1, 2, 3, 4, 5, 6};C. int array[3][];D. int array[2, 3];答案:A二、填空题1. 在C语言中,字符常量可以用单引号括起来,例如:'A'。

那么,以下哪个选项是正确的字符常量声明?________答案:'B'2. C语言中,以下代码段的输出结果是什么?```cint a = 10;printf("%d", a++);```输出结果为:________答案:103. 在C语言中,以下代码段的输出结果是什么?```cint a = 5, b = 10;if (a < b) {printf("%d", a);} else {printf("%d", b);}```输出结果为:________答案:5三、编程题1. 编写一个C语言程序,计算并输出两个整数的和。

计算机二级c语言笔试题库

计算机二级c语言笔试题库

计算机二级c语言笔试题库第一题:请编写一个C语言程序,计算并输出1到100之间所有偶数的和。

解答:```c#include <stdio.h>int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```第二题:请编写一个C语言程序,判断一个输入的整数是否为素数(质数),如果是素数则输出"Yes",否则输出"No"。

解答:```c#include <stdio.h>int main() {int num, i, isPrime = 1;printf("请输入一个整数:");scanf("%d", &num);for(i = 2; i <= num / 2; ++i) {if(num % i == 0) {isPrime = 0;break;}}if (isPrime)printf("%d是素数\n", num); elseprintf("%d不是素数\n", num); return 0;}```第三题:请编写一个C语言程序,将一个字符串中的大写字母转换为小写字母,并输出转换后的结果。

解答:```c#include <stdio.h>void convertToLowercase(char *str) {while(*str) {if(*str >= 'A' && *str <= 'Z')*str += 32;str++;}}int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin);convertToLowercase(str);printf("转换后的字符串为:%s\n", str);return 0;}```以上是三道计算机二级C语言笔试题的题目和解答,希望对您有帮助。

全国计算机二级c语言考试真题及答案

全国计算机二级c语言考试真题及答案

全国计算机二级c语言考试真题及答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义int a[5] = {1, 2, 3, 4, 5};,则a[0]的值是?A. 1B. 2C. 3D. 4答案:A3. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. do答案:B4. 在C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A5. 若有定义int x = 10;,则表达式x++的值是多少?A. 9B. 10C. 11D. 无法确定答案:B6. 在C语言中,以下哪个关键字用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B7. 下列哪个选项是C语言中的合法整型常量?A. 012B. 0x1AC. 1.2E3D. 0b1010答案:A8. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A9. 若有定义int a = 5, b = 10;,则表达式a + b 的值是多少?A. 15B. 5C. 10D. 无法确定答案:A10. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. structB. unionC. enumD. typedef答案:C二、程序填空题(每空2分,共20分)给定以下C语言程序片段,请在空白处填入正确的代码。

```c#include <stdio.h>int main() {int a, b, sum;scanf("%d %d", &a, &b);sum = a + b; // 计算两数之和printf("Sum is: %d\n", sum);return 0;}```若要计算两数之差,请在空白处填入正确的代码。

全国计算机等级考试二级C语言笔试模拟试题(4)-中大网校

全国计算机等级考试二级C语言笔试模拟试题(4)-中大网校

中大网校引领成功职业人生 中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn 全国计算机等级考试二级C语言笔试模拟试题(4) 总分:100分 及格:60分 考试时间:120分

每小题1分,共40分 (1)以下描述错误的是 A. C程序中,函数可以直接或间接的调用自己 B. 函数调用时,函数名必须与所调用的函数名字完全一致 C. 函数说明语句中的类型必须与函数返回值的类型一致 D. 实参数可以与形参个数不一致

(2)下述关于数据库系统的叙述中正确的是 A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余 C. 数据库系统中数据的一致性是指数据类型一致 D. 数据库系统比文件系统能管理更多的数据

(3)下面程序的输出结果是 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

(4)阅读如下程序段,则执行后程序的输出结果是 #include main() {structa{int x; int y;}num[2]={{20,5},{6,7}}; printf("%d\n",num[0].x/num[0].y*num[1].y);} A. 0 B. 28 C. 20 D. 5

(5)设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x; printf("%d",s); 则 A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 中大网校引领成功职业人生 中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn (6)对以下说明语句的正确理解是 int a[10]={6,7,8,9,10}; A. 将5个初值依次赋给a[1]至a[5] B. 将5个初值依次赋给a[0]至a[4] C. 将5个初值依次赋给a[6]至a[10] D. 因为数组长度与初值的个数不相同,所以此语句不正确

全国计算机二级c考试真题及答案

全国计算机二级c考试真题及答案

全国计算机二级c考试真题及答案一、单项选择题(每题1分,共40分)1. 在C语言中,以下哪个关键字用于声明函数?A. structB. unionC. functionD. void答案:D2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name答案:C3. C语言中,哪个运算符用于计算两个数的和?A. +=B. +=C. -D. +答案:D4. 若有定义:int a=5, b=6; 则表达式 a++ + b 的值是多少?A. 10B. 11C. 12D. 13答案:B5. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcat()B. strcpy()C. strcmp()D. strncpy()答案:B二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个结构体。

答案:struct2. 若变量x和y都是int类型,且x=1,y=2,则表达式x++ + y++的值为________。

答案:33. 在C语言中,使用________函数可以将一个浮点数转换为字符串。

答案:sprintf()4. 若有数组定义:int arr[5] = {1, 2, 3, 4, 5}; 则表达式arr[0] + arr[2]的值为________。

答案:45. 在C语言中,使用________函数可以打开一个文件。

答案:fopen()三、编程题(每题20分,共40分)1. 编写一个C语言函数,该函数接受一个整数数组和数组的大小,然后计算并返回数组中所有元素的总和。

答案:```cint sumArray(int arr[], int size) {int sum = 0;for (int i = 0; i < size; i++) {sum += arr[i];}return sum;}```2. 编写一个C语言程序,该程序接受用户输入的两个整数,然后计算并输出这两个整数的乘积。

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

全国计算机等级考试二级C语言笔试试题及答案一、选择题(每小题2分,共70分)(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是A)10B)8C)6D)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)选择C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)对C++编译器区分重载函数无任何意义的信息是A)参数类型B)参数个数C)返回值类型D)常成员函数关键字coast(12)有如下类定义和变量定义:class A{publie:A(){data=0;}~A(){}int GetData () coast { return data;}void SetData(int n) {data=n;}private:int data;};ccnst A a;A b;下列函数调用中错误的是A)a .GetData();B)a .SetData(10);C)b .GetData();D)b .SetData(10);(13)有如下类定义和变量定义:class Parents{public:int publicuata;private:int privateData;};class ChildA:public Parents{/*类体略*/};class ChildB:private Parents{/*类体略*/);ChildA a;ChildBb;下列语句中正确的是A)cout<<a.publicData <<endl ;B)cout<<a.privateData <<endl ;C)cout<<b.publicData <<endl ;D)cout<<b.privateData <<endl ;(14)运算符重载时不需要保持的性质是A)操作数个数B)操作数类型C)优先级D)结合性(15)下列关于函数模板的描述中,错误的是A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参D)模板参数表不能为空(16)要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是 A)ifstream fin=ifstream.open(“file.dat”);B)ifstream*fir.=new ifstream(“file.dat”);C)ifstream fin; fin.open(“file.dat”);D)ifstream *fin=new ifstream();fin一>open(“file.dat”);(17)下列描述中,不属于面向对象思想主要特征的是A)封装性B)跨平台性C)继承性D)多态性(18)有如下程序段:Tnt i=4;int j=l;int main(){int i=8,j=i;cout<<i<<j<<endl;}运行时的输出结果是A)44B)41C)88D)81(19)有如下程序段:int i=5;while(int i=0){cout《'*';i--;}运行时输出“*”的个数是A)0B)1C)5D)无穷(20)己知有数组定义char a[3][4];下列表达式中错误的是A)a[2]=“WIN”B)strcpy(a[2],“WIN”)C)a [2][3]='W'D)a[0][1]=a[0][1](21)已知函数fun的原型为int fun(int,int,int);下列重载函数原型中错误的是A)char fun(int,int);B)double fun(int,int,double);C)int fun(int,char*);D)float fun (int, int, int);(22)建立一个类对象时,系统自动调用A)析构函数B)构造函数C)静态函数D)友元函数(23)通过派生类的对象可直接访问其A)公有继承基类的公有成员C)私有继承基类的公有成员D)私有继承基类的私有成员(24)己知表达式++a中的“++”是作为成员函数重载的运算符,则与十+a等效的运算符函数调用形式为A)a .orerator++(1)B)operator++(a)C)operator++(a,l)D)a.operator++()(25)在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是A)()B)[ ]C)< >D){ }(26)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 A)ios_base::inB)ios_base::in|ios_base::outC)ios_base::outD)ios_base::in&ios_base::out(27)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCD{char* a;int b;public:XCD(char* aa, int bb){a=new char[strlen(aa)+1];strcpty(a,aa);b=bb;}Char* Geta (){return a;)int Getb(){ return b;}};int main(){char *pl=“abcd”,*p2=“weirong”;int dl=6, d2=8;XCD x(pl,dl),Y(p2,d2);cout<<strien (x .Geta())+y. Getb()+endl;return 0;}运行时的输出结果是A)12B)16C)14D)11(28)有如下程序:#include<iostream>#include<cstring>using namespace std;class XCF{int a;XCF(int aa=0):a (aa){cout<<“1”;}XCF(XCF& x){a=x .a; cout<<“2”;)~XCF(){cout<<a;}int Geta(){return a;}};int main(){XCF dl(5),d7 (dl);XCF *pd=new XCF(8);cout<<pd一>Geta();delete pd;return 0;}运行时的输出结果是A)121SS88B)12188SSC)12185D)128512(29)已知类MyClass声明如下:class MyClass{int n;public;MyClass(int k):n(k){}int getValue()const{return n;}};在下列数组定义中正确的是A)MyClass x1[2];B)MyClass x2[2]={new MyClass(1),new MyClass(2)};C)MyClass *x3[2];D)MyClass *x4[2]={MyClass(1),MyClass(2)};(30)有如下程序:#include<iostream>using namespace std;class AA{lilt k;protected:int n;void setK(int k){ this->k=k;}public:void setN(int n){ this->n=n;}};class BB: public }{/*类体略*/};int main(){BB x_ ; //1x .n=1; //2x.setN (2); //3x.k=3; //4x .setK(4);return 0;}在标注号码的四条语句中正确的是A)1B)2C)3D)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)YY y3(0);D)YY y4;(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)12B)34C)14D)32(33)有如下程序:#include<iostream>using namespace std;class Pair{int m;int n;public: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;}运算符函数。

计算机二级c语言考试题目及答案

计算机二级c语言考试题目及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于声明函数?A. structB. intC. voidD. return答案:C2. 若有以下代码段:```cint a = 10;printf("%d", a++);```输出结果为:A. 11B. 10C. 9D. 0答案:B3. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A4. 下列哪个选项是C语言中正确的字符串定义?A. char str[10] = "Hello";B. int str[10] = "Hello";C. float str[10] = "Hello";D. double str[10] = "Hello";答案:A5. 在C语言中,以下哪个函数用于计算数组元素的个数?A. sizeofB. strlenC. strcpyD. strcat答案:A6. 若有以下代码段:```cint x = 3;printf("%d", x++);```输出结果为:A. 3B. 4C. 2D. 1答案:A7. 在C语言中,哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 下列哪个选项是C语言中正确的二维数组定义?A. int array[3][2];B. int array[][] = {1, 2, 3, 4, 5, 6};C. int array[3] = {1, 2, 3};D. int array[2] = {1, 2, 3, 4};答案:A9. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strncpyC. strcatD. strcmp答案:A10. 若有以下代码段:```cint a = 5, b = 10;a =b = a + b;```执行后,变量a和b的值分别为:A. a = 15, b = 5B. a = 15, b = 15C. a = 10, b = 15D. a = 15, b = 10答案:B二、填空题(每题3分,共15分)1. 在C语言中,声明一个指向int类型数据的指针变量,正确的声明方式是________。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2007年4月全国计算机等级考试二级C语言笔试试题总分:100分及格:60分考试时间:120分(1)-(10)每题2分(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. DYBEAFCZXB. YDEBFZXCAC. ABDYECFXZD. ABCDEFXYZ(7)某二叉树中有个度为2的结点,则该二叉树中的叶子结点数为()。

A. n+1B. n-1C. 2nD. n/2(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是()。

A. 并B. 交C. 投影D. 笛卡儿乘积(9)在E-R图中,用来表示实体之间联系的图形是()。

A. 矩形B. 椭圆形C. 菱形D. 平行四边形(10)下列叙述中错误的是()。

A. 在数据库系统中,数据的物理结构必须与逻辑结构一致B. 数据库技术的根本目标是要解决数据的共享问题C. 数据库设计是指在已有数据库管理系统的基础上建立数据库D. 数据库系统需要操作系统的支持(11)-(50)每题1分(1)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的()。

A. 正当性B. 可行性C. 确定性D. 有穷性(2)下列叙述中错误的是()。

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

A. 大写字母B. 连接符C. 数字字符D. 下划线(4)以下叙述中错误的是()。

A. C语言是一种结构化程序设计语言B. 结构化程序有顺序、分支、循环三种基本结构组成C. 使用三种基本结构构成的程序只能解决简单问题D. 结构化程序设计提倡模块化的设计方法(5)对于一个正常运行的C程序,以下叙述中正确的是()。

A. 程序的执行总是从main函数开始,在main函数结束B. 程序的执行总是从程序的第一个函数开始,在main函数结束C. 程序的执行总是从main函数开始,在程序的最后一个函数中结束D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束(6)设变量均已正确定义,若要通过scanf (“%d%c%d%c”,&amp;a1,&amp;c1,&amp;a2,&amp;c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。

以下所示的输入形式中正确的是(注:□代表空格字符)()。

A. 10□X□20□Y〈回车〉B. 10□X20□Y〈回车〉C. 10□X〈回车〉D. 10X〈回车〉20□Y〈回车〉20Y〈回车〉(7)若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的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)))(8)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A. k++B. k+=1C. ++kD. k+1(9)有以下程序,其中%u表示按无符号整数输出()main(){unsigned int x=0xFFFF; /* x的初值为十六进制数*/ printf(“%u\n”,x); } 程序运行后的输出结果是()。

A. -1B. 65535C. 32767D. 0xFFFF(10)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是()。

(11)以下选项中,当x为大于1的奇数时,值为0的表达式()。

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

A. break语句只能用于switch语句体中B. continue语句的作用是:使程序的执行流程跳出包含它的所有循环C. break 语句只能用在循环体内和switch语句体内D. 在循环体内使用break语句和continue语句的作用相同(13)有以下程序()。

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&gt;0&amp;&amp;n&lt;5); } 程序运行后的输出结果是A. 235B. 0235C. 02356D. 2356(14)有以下程序mian(){int i,j; for(i=1;i&lt;4;i++){for(j=i;j&lt;4;j++)printf (“%d*%d=%d “,i,j,i*j); printf(“\n”); } } 程序运行后的输出结果是()。

A. 1*1=11*2=21*3=32*1=22*2=42*2=4B. 1*1=11*2=21*3=32*3=63*1=33*3=9C. 1*1=12*3=63*3=92*1=22*2=41*3=3D. 1*1=11*2=22*2=43*1=33*2=63*3=9(15)以下合法的字符型常量是()。

A. ”\x13”B. ”\018”C. ”65”D. ”\n”(16)在C语言中,函数返回值的类型最终取决于()。

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

A. <FONT face="Times New Roman">c=(c-A)&amp;+’a’<SPAN style="mso-spacerun: yes"></SPAN></FONT>B. c=c+32C. c=c-‘A’+’a’D. <FONT face="Times New Roman">c=(‘A’+c)&amp;-‘a’</FONT>(18)有以下函数int fun(char *s){char *t=s; while(*t++); return(t-s); } 该函数的功能是()。

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

A. float*p=1024;B. int*p=(floatx);C. floatp=&amp;x;D. float*P=&amp;x;(20)有以下程序#include main(){int n,*p=NULL; *p=&amp;n; printf(“Input n:”); scanf(“%d”,&amp;p); printf(“output n:”); printf(“%d\n”,p); } 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()。

A. intn,*p=NULL;B. *p=&amp;n;C. scanf(“%d”,&amp;p)D. printf(“%d\n”,p);(21)以下程序中函数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]&gt;b[j]:b[i] } main(){int a[10]={5,4,3,2,1,6,7,8,9,10},i; f(&amp;a[2],5,0); f (a,5,1); for(i=0;i&lt;10;i++)printf(“%d,”a[i]); } 程序运行后的输出结果是()。

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,(22)有以下程序void f(int b[]){int i; for(i=2;i&lt;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&lt;10;i++)printf(“%d,”,a[i]); } 程序运行后的输出结果是()。

A. 1,2,3,4,5,6,7,8,9,10,B. 1,2,6,8,10,12,7,8,9,10C. 1,2,3,4,10,12,14,16,9,10,D. 1,2,6,8,10,12,14,16,9,10,(23)有以下程序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); } 程序运行后的输出结果是()。

相关文档
最新文档