全国计算机等级考试二级C语言真题2009年09月

加油哈~ 2009年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) 对于循环队列,下列叙述中正确的 A)队头指针是固定不变的 B)队头指针一定不大于队尾指针 C)队头指针一定小于队尾指针 D)队头指针可以大于队尾指针,也可以小于队尾指针

(4) 算法的空间复杂度是指 A)算法在执行过程中所需要的计算机存储空间 B)算法所处理的数据量 C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的临时工作单元数

(5) 软件设计中划分模块的一个准则是 A)低内聚低耦合 B)高内聚低耦合 C)低内聚高耦合 D)高内聚高耦合

(6)下列选项中不属于结构化程序设计原则的是 A)可封装 B)自顶向下 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如下: R S T

A B C a 1 2 b 2 1 c 3 1

其中关系T由关系R和关系S通过某种操作得到:该操作为: A) 选择 B) 投影 C)交 D)并

11、一下叙述中正确的是: A) 程序设计的任务是编写程序代码并上机调试。 B) 程序设计的任务是确定所用的数据结构。 C)程序设计的任务是确定所用的算法。 D)以上三种说法都不完整。

12、以下选项中,能用作用户标识符的是: A) void B)8_8 C)_0_ D)unsigned

(13)阅读以下程序 #include main ( ) { int case ; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&printF); printf(“%d %f\n”,case,printF); } 该程序在编译时产生错误,其出错原因是 A) 定义语句出错,case是关键字,不能用作用户自定义标识符 B) 定义语句出错,printF不能用作用户自定义标识符 C) 定义语句无错,scanf不能作为输入函数使用 D) 定义语句无错,printf不能输出case的值

(14)表达式:(int)((double)9/2)-(9)%2的值是 A) 0 B) 3 C) 4 D) 5

A B C a 1 2 b 2 1 c 3 1 d 3 2

A B C d 3 2 加油哈~ (15)若有定义语句:int x=10;,则表达式x-=x+x的值为 A) -20 B) -10 C) 0 D) 10

(16) 有以下程序 #include main ( ) { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d\n”,a=2+b); } 程序运行后的输出结果是 A)0,0 B)1,0 C)3,2 D)1,2

(17)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其他三个不同的是 A) if (a>b)c=a,a=b,b=c; B)if(a>b){c=a,a=b,b=c;} C) if(a>b)c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;}

(18)有以下程序 #include main ( ) { int c=0,k; for (k=1;k<3;k++) switch (k) { default: c+=k; case 2:c++;break; case 4:c+=2;break; } printf{“%d\n”,c}; } 程序运行后的输出结果是 A) 3 B) 5 C) 7 D) 9

(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A)if((a>b)&&(b>c))k=1; B)if((a>b)||(b>c))k=1; else k=0; else k=0; C)if(a<=b)k=0; D)if(a>b) k=1; else if(b<=c)k=1; else if(b>c) k=1; else k=0;

(20) 有以下程序 #include main( ) { 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)0 B)2 C)3 D)5

(21)有以下程序 #include main ( ) { int n=2,k=0; while(k++&&n++>2); printf(“%d %d\n”,k,n); } 程序运行后的输出结果是 A)0 2 B) 1 3 C) 5 7 D) 1 2

(22)有以下定义语句,编译时会出现编译错误的是 A) char a=‟a‟; B)char a=‟\n‟; C) char a=‟aa‟; D)char a=‟\x2d‟;

23)有以下程序 #include main() { char c1,c2; c1=‟A‟+‟8‟-„4‟; c2=‟A‟+‟8‟-„5‟; printf {“%c,%d\n”c1,c2}; } 已知字母A的ASCII码为65,程序运行输出后的结果是: A)E,68 B)D,69 C)E,D D)输出无定值

24)有以下程序 #include void fun{int p} { int d=2; p=d+t; printf(“%d”,p);} main() {int a=1; fun(a); printf(“%d\n”,a); } 程序运行后的输出结果是 A)32 B)12 C)21 D)22

25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中加油哈~ 有错导致不能实现预定功能。 #define MIN -2147483647 int findmax {int x[],int n} { int i,max;; for {i=0;i{ max =MIN; if(maxreturn max; } 造成错误的原因是 A)定义语句int i,max:中max 未赋初值 B)赋值语句max=MIN;中,不应给max 赋MIN值 C)语句if(maxD)赋值语句max=MIN;放错了位置

(26)有以下程序 #include main() {int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf(“%d,%d,%d\n”,m,n,*p,*q); } 程序运行后的输出结果为 A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2

(27)若有定义语句:int a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是: A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1]

(28)有以下程序: #include #include main() {char str[][20]={“One*World”,”One*Dream”},*p=str[1]; printf(“%d”,strlen(p));printf(“%s\n”,p); } 程序运行后的输出结果是: A)9,One*World B)9,One*Dream C)10,One*Dream D)10,One*World

(29)有以下程序: #include main() {int a[]={1,2,3,5,4},i; for(i=0;i<4;i++) switch(i%2)

合集下载

2009年全国计算机等级考试二级C++笔试试题

2009年全国计算机等级考试二级C++笔试试题

2009年9月全国计算机等级考试二级笔试试卷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 )逐步求精(27)有如下程序:#i ncludeusing n amespace std;class Toy{public:Toy(char* _n) { strcpy (n ame,_ n); coun t++;}~Toy(){ coun t--; }char* GetName(){ return n ame; }static int getCo un t(){ retur n coun t; }private:char n ame[10];static int count;};int Toy::co un t=0;int mail(){Toy t1( "Snoopy” ),t2( “ Mickey ” ),t3( “ Barbie ” ); cout<<t1.getco un t()<<e ndl;return 0;}运行时的输出结果是A) 1B) 2C) 3D)运行时出错</t1.getcount()<<endl;(28)有如下程序#i ncludeusing n amespace std;class A {public:A(i nt i):rl(i) {}void print() {cout<<?e?<<r1<<? -,;}void print() const {cout<<?C?<<rl*rl<<? -,;}private:int rl;};int mai n(){A al(2); con st A a2(4);Al.pri nt();a2.pri nt();Retur n 0;}运行时的输出结果是A)运行时出错B)E2-C16-C)C4-C16-D)E2-E4- </rl*rl<<?-,;}</r1<<?-,;}(11 )已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则A)FA必须定义在FB之前B)FB必须定义在FA之前C)若FA定义在FB之后,则FA的原型必须出现在FB的定义之前D)若FB定义在FA之后,则FB的原型必须出现在FA的定义之前(12)有如下两个类定义class AA{};class BB{AA v1,*v2;BB v3;Int *v4;};其中有一个成员变量的定义是错误的,这个变量是A)v1B)v2C)v3D)v4(13 )有如下类定义:class XX{int xdata;public:XX(i nt n=0) : xdata (n) { }};class YY : public XX{int ydata;public:YY(i nt m=0, i nt n=0) : XX(m), ydata( n) { }};YY类的对象包含的数据成员的个数是A) 1B) 2D) 4(14 )下列有关运算符函数的描述中,错误的是A)运算符函数的名称总是以operator为前缀B)运算符函数的参数可以是对象C)运算符函数只能定义为类的成员函数D)在表达式中使用重载的运算符相当于调用运算符重载函数(15)下列关于模板形参的描述中,错误的是A)模板形参表必须在关键字template之后B)模板形参表必须用括弧()括起来C)可以用class修饰模板形参D)可以用type name修饰模板形参(16)在下列枚举符号中,用来表示相对于当前位置”文件定位方式的是A)ios_base::curB)ios_base::begC)ios_base::outD)ios_base::end(17)下列字符串可以用作C++标识符的是A)2009varB)gotoC)test - 2009D)_123(18)下列枚举类型的定义中,包含枚举值3的是A)enum test {RED, YELLOW, BLUE, BLACK};B)enum test {RED, YELL0W=4, BLUE, BLACK};C)enum test {RED=-1, YELLOW,BLUE, BLACK};D)enum test {RED, YELLOW=6, BLUE, BLACK};(19 )有如下程序段:in t i=1;while (1) {i++;if(i == 10) break;if(i%2 == 0) cout << ,*?;}执行这个程序段输出字符*的个数是A)10B) 3C) 4D) 5(20 )已知数组arr的定义如下:int arr[5] = {1,2,3,4,5};下列语句中输出结果不是2的是A)cout << *arr+1 <<endl;B)cout << *(arr+1)<<endl;C)cout << arr[1] <<endl;D)cout << *arr <<endl;< p=""x/endl;<></endl;</e ndl;</e ndl;(21)计算斐波那契数列第n项的函数定义如下:Int fib(i nt n){if (n == 0) retur n 1;else if (n == 1) return 2;else return fib( n-1)+fib( n-2);}若执行函数调用表达式fib(2),函数fib被调用的次数是A) 1B) 2C) 3D) 4(22)Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是Sample a[2], *p = new Sample;A)0B) 1C) 2D) 3(23)下列关于虚基类的描述中,错误的是A )使用虚基类可以消除由多继承产生的二义性B)构造派生类对象时,虚基类的构造函数只被调用一次C)声明“class B : virtual public A 说明类”为虚基类D)建立派生类对象时,首先调用虚基类的构造函数(24 )将运算符重载为类成员函数时,其参数表中没有参数,说明该运算是A)不合法的运算符B)一元运算符C)无操作数的运算符D)二元运算符(25)有如下模板声明: template class A;下列声明中,与上述声明不等价的是A)template class A;B)template class A;C)template class A;D)template class A;(26 )下列关于C++流的描述中,错误的是A)cout»?A?表达式可输出字符 AB)eof()函数可以检测是否到达文件尾C)对磁盘文件进行流操作时,必须包含头文件fstreamD)以ios_base::out模式打开的文件不存在时,将自动建立一个新文件(29)有如下程序:#i ncludeusing n amespace std;class Name{char n ame[20];public:Name(){strcpy(name, ”” ); cout<<???;}Name(char *fname)){strcpy (n ame,fname); cout<???;}};int mai n(){Name names[3]={Name( “ 张三” ),Name(李'四” )};Retur n 0;}运行此程序输出符号?的个数是A)0B) 1C) 2D) 3(30)有如下程序:#i ncludeusing n amespace std;public:AA(){ cout<<?1?; }};class BB: public AA{int k;public:BB():k(0){ cout<<?2?; }BB(int n):k(n){ cout<<?3?;} } int mai n(){BB b(4), c;return 0;}运行时的输出结果是A)1312D) 132C)32D)1412(31)有如下程序:#i ncludeusing n amespace std;class C1{public:~C1(){ cout<<1; }};Class C2: public c1{public:~c2(){ cout<<2; }};int mai n(){C2 cb2;C1 *cb1;return 0;}运行时的输出结果是A)121B)21C)211D) 12(32)有如下程序#i ncludeusing n amespace std;class Publicatio n{ // 出版物类char n ame[30];public:Publicat ion(char *name=朱知名称” ){strcpy(this->n ame ,n ame);}const char * getName()c onst{ retur n n ame; }virtual const char * getType()const{ return 未知类型“ ;} };class Book: public Publicati on{ // 书类public:Book(char *n ame): Publicati on(n ame){}virtual const char * g etType()const{ return 书;}};void showPublicati on( Publicati on &p){cout<< ” <<p.getname()<<endl;}int mai n(){Book book(精彩人生”);showPublicati on( book);return 0;}运行时的输出结果是A)未知类型:未知名称B)未知类型:精彩人生C)书:未知名称D)书:精彩人生</p.getname()<<endl;(33 )下列关于运算符重载的描述中,错误的是A)::运算符不能重载B)类型转换运算符只能作为成员函数重载C)将运算符作为非成员函数重载时必须定义为友元D)重载[]运算符应完成下标访问”操作(34)有如下程序:#in clude#in eludeUsing n amespace std;int mai n(){int s[]={123, 234};cout<<right<<setfill(,*?)<<setw(6);for(int i=0; i<2; i++) { cout<<s[i]<return 0;}运行时的输出结果是A)123234B)***123234C)***123***234D)***123234***</s[i]<</right<<setfill(,*?)<<setw(6);(35)有如下类定义class A {char *a;public:A():a(O){}A(char *aa){ //把aa所指字符串拷贝到a=;a所指向的存储空间strcpy(a,aa);strcpy(a,aa);}~A() {delete []a;}};横线处应填写的表达式是A)nes char[strlen(aa)+1]B)char[strlen(aa)+1]C)char[strlen(aa)]D)new char[sizeof(aa)-1]二、填空题(每题2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有结点。

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

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

2009计算机二级c语言考试真题及答案一、选择题(每题1分,共40分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 若有定义:int a=3, b=4, c=5;,则表达式a+b+c的值是:A. 12B. 9C. 15D. 3答案:C3. C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A4. 在C语言中,以下哪个选项是正确的字符常量?A. 'ab'B. '65'C. '\n'D. "A"答案:C5. 若有定义:int a=5, b=10;,则执行语句a=b后,变量a的值是:A. 5B. 10C. 15D. 0答案:B6. 在C语言中,以下哪个选项是正确的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello World!"D. 'Hello World!'答案:A7. 若有定义:int a=5;,则执行语句a+=3后,变量a的值是:A. 5B. 8C. 3D. 2答案:B8. 在C语言中,以下哪个选项是正确的数组定义?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3};C. int a[] = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3, 4};答案:C9. 若有定义:int a[5] = {1, 2, 3, 4, 5};,则执行语句a[2]=6后,数组元素a[2]的值是:A. 1B. 2C. 6D. 5答案:C10. 在C语言中,以下哪个选项是正确的函数定义?A. int max(int x, int y) { return x > y ? x : y; }B. int max(int x, int y) { if(x > y) return x; else returny; }C. int max(int x, int y) { return x > y ? y : x; }D. int max(int x, int y) { if(x > y) return y; else returnx; }答案:A二、填空题(每题2分,共20分)1. 在C语言中,若要定义一个整型变量x并初始化为10,应使用语句:________。

2009年全国高等学校计算机考试二级(C语言)试卷

2009年全国高等学校计算机考试二级(C语言)试卷

一、单项选择1.中央处理器(CPU)包括A.控制器和内存 B .制器和内存器C.运算器和内存 D .硬盘和控制器2.计算机的主存储器包括A.RAM和C盘 B .ROM和C磁盘C . ROM和RAMD .硬盘和控制器3.计算机中数据的表示形式是A.二进制B.八进制C.十进制 D.十六进制4在微型计算机中,2048*2048的字节准确等于A.1MBB.2MBC.3MBD.4MB5.八进制整数157化为二进制数是A.1101010B.1101000C. 1101111D.10101016.在Windows应用环境中,选中窗口全部对象的组合键是A.<Alt>+AB.<Ctrl>+AC.<Alt>+<Shift>+AD.<Shift>+A7.Windows中,文件扩展名通常表示A.文件的类型B.文件的大小C. 文件的版本D.文件的修改时间8.在Windows移动普通窗口的方法是使用鼠标拖动A.滚动条B.菜单栏C.工具栏D.标题栏9.在Windows中剪贴板是A.硬盘上的一块空间B.U盘上的一块空间C.Cache中的一块空间D.内存中的一块空间10.在Windows中,关闭窗口的操作是双击A.窗口控制图标B.标题栏C.菜单栏D.工具栏11.在Windows的“资源管理器”的窗口右部,若单击了第一个文件,有按住<Ctrl>键并开始单击第七个文件,则A.在0个文件被选中B.有1个文件被选中C.有2个文件被选中D.有7个文件被选中12.Word文档文件默认的扩展名是A.TXTB.DOSC.WPSD.WAV13.Word文档编辑过程中,为防止突然断电等意外操作造成丢失数据,应经常单击工具栏上的保存按钮或快捷键A.<Art>+SB.<Alt>+CC. <Ctrl>+CD.<Ctrl>+S14.保存Word文档时系统默认的保存路径是A.My DocumentsB.我的公文包C.WindowsD.Wrod15.Word程序中允许打开多个文档,可以实现文档窗口之间切换的菜单是A.编辑B.窗口C.视图D.工具16.Excel中,下列输入数据属于字符型的是A.+J1+7B.=SUM(J1:Y1)C.’SUM(P1,P7)D.=P7+717.以下说法错误的是A.Excel文件的扩展名是.XSLB.Excel是电子表格软件C.Excel属于OfficeD.Excel可以在Windows环境下运行18.在Excel中,若要对几个数值求平均值,选用函数是A.SUMB.AVERAGEC.MAXD.COUNT19.局域网的英文缩写是A.WANB.ISDNC.WWWN20.下列各种网络拓扑结构中,共享资源能力最差的是A.网状结构B.树状结构C.总线结构D.星型结构21若在说明语句:int i=9,j:则执行语句j=(i++)+(++i);后j的数值是A.18B.19C.20D.2222.设有如下定义:int x=10,y =3;则语句printf(”%d”,(x%y));的输出结果是A.0B.1C.4D.323.”A”和在计算机内存中分别占用的字节数是A.2,1B.1,1C.1,2D.2,224.若已定义char a[10];则下面表达式中不能表示a[1]地址的是A.a+1B.a++C.&a[0]+1D.&a[1]25.设有定义:int a=1,b=2,c=3,d=4;,则printf(”%d”,a<b?c:b);的输出结果是A.1B. 2C.3D.426.C语言中运算数必须是整形的运算符是A./B.%C.>=D.+27.C语言中,可以用来定义多个不同类型变量值的数据类型是A.数组B.结构体C.指针D.权举28.程序设计的三种结构是A.顺序结构、分支结构、选择结构B.顺序结构、递归结构、选择结构C.顺序结构、循环结构、逻辑结构D.顺序结构、循环结构、选择结构29.字符串常量”\\ab\’dtd"的长度是A.5B.7C.8D.930.若有如下定义,则sizeof(struct stu)的数值是Struct sut{ int i;Char ch[5]}a;A.2B.5C.6D.7二.阅读程序题(本题共10小题,每小题3分,共30分)1. main( ){int x=4;printf(“%d”, x+=x-=x*x);}2. int x=4,y=5;main( ){int x=6, y=7;printf(“%d,%d\n”,x,y);}3. main( )int i,s=0;for(i=1;i<6;i++){switch(i){case 1: s=1;case 2: s+=3; break;case 3: s==4;default : s+=2;}}printf(“%d\n”, s);}4.int fun(int x){static int m=1;m*=x;return m;}main( ){int i,s=0;for(i=1;i<3;i++)s+=fun(i);printf(“%d\n”,s);}5. main( ){int a=8,b=10,c=6;if(a<b)if(b<1) c=0else c++;printf(“%d\n”,c);}6. #define m(x,y,z) x*y-zmain( ){int a=2,b=3,c=4,y;y= M(a,b+c,c+b);printf(“%d\n”,y);}7. main( ){int a[ ]={1,2,3,4,5,6}, *p;p=a;*(p+2)+=4;printf(“%d,%d \n”, *p,*(p+2));}8. main( ){int num[3][3]={0,1,2,0,1,2,0,1,2},I,j,t=0;for(i=0;i<3;i++)for(j=0;j<=i;j++)t=t+num[i][num[[j][j]];}三.完善程序题(本小题共10小题,每小题2分,共20分)将下列程序________的内容填写到答题纸上对应题号处,使程序完整、正确。

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

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

2009计算机二级c语言考试真题及答案一、选择题(每题2分,共40分)1. 下列关于C语言中变量的描述,不正确的是:A. 变量名必须以字母开头B. 变量名可以包含数字和下划线C. 变量名区分大小写D. 变量名可以包含空格答案:D2. C语言中,用于定义整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 下列哪个选项不是C语言中的运算符:A. %B. /C. *D. $答案:D4. 在C语言中,用于输入输出的函数是:A. printf() 和 scanf()B. cout() 和 cin()C. print() 和 input()D. display() 和 read()答案:A5. 下列哪个选项是C语言中的逻辑运算符:A. &&B. ||C. !D. 以上都是答案:D6. C语言中,用于定义字符型变量的关键字是:A. intB. charC. floatD. double答案:B7. 下列哪个选项是C语言中的循环结构:A. ifB. whileC. switchD. for答案:B、D8. C语言中,用于定义浮点型变量的关键字是:A. intB. floatC. doubleD. char答案:B、C9. 下列哪个选项是C语言中的条件语句:A. ifB. whileC. forD. switch答案:A10. 在C语言中,用于定义字符串的字符数组,正确的声明方式是:A. char str[10] = "Hello";B. int str[10] = "Hello";C. float str[10] = "Hello";D. double str[10] = "Hello";答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义单精度浮点型变量的关键字是 float 。

C语言考试2009-3

C语言考试2009-3

2009年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分100分)一、选择题((1)~(10)、(21)~(40)每小题2分,(11)~(20)每小题1分,共70分)1.下列叙述中正确的是 ______。

A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构2.支持子程序调用的数据结构是 ______ 。

A.栈B.树C.队列D.二叉树3.某二叉树有5个度为2的结点,则该二叉树的叶子结点数是 ______ 。

A.10B.8C. 6D. 44.下列排序方法中,最坏情况下比较次数最少的是 ______ 。

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 SA B Ca 3 2b 0 1c 2 1 A Ba 3b 0c 2由关系R通过运算得到关系S,则所使用的运算为 ______ 。

A.选择B.投影C.插入D.连接10.将E-R图转换为关系模式时,实体和联系都可以表示为 ______ 。

全国计算机二级c语言历年真题及答案

全国计算机二级c语言历年真题及答案

2009年9月全国计算机等级考试二级笔试试卷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,0B)1,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;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=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#includemain(){ 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,68B)D,69C)E,DD)输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<N;I++)< p="" />{ max=MIN;if(maxreturn max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max D)赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是 A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#includeint f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。

2009年3月和9月全国计算机等级考试二级C语言笔试真题及参考答案

2009年3月二级C语言笔试真题及答案、、((1)—(10)每小题2分,(11)—(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是先进后出A)栈是“先进先出”的线性表B)队列是“先进先出”的线性表 b lC)循环队列是非线性结构D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈 B)树 C)队列 D)二叉树(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是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如下:RS由关系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)o115 B) 0118 C)1.5e1.5 D) 115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A) x*=x+1 B) x++,2*xC)x*=(1+x) D)2*x,x+=2(15)程序段:int x=12;double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是A)123.141593 B)123.141593C)12,3.141593 D)123.141593(16)若有定义语句:double x,y,*px,*py,执行了px=&x, py=&y;之后,正确的输入语句是A)scanf(“%f%f”,x,y); B) scanf(“%f%f”,&x,&y);C) scanf(“%lf%le”,px,py); D) scanf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:if(表达式)语句其中“表达式”A)必须是逻辑表达式 B)必须是关系表达式C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式(18)有以下程序#include <stdio.h>main(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数 B)大于3且不等于10的整数C)大于3或等于10的整数 D)小于3的整数(19)有以下程序#include<stdio.h>Main(){int a=1,b=2,c=3,d=0;if(a= =1 &&b++= =2)if(b!=2 || c--!=3)printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);}程序运行后的输出结果是A)1,2,3 B)1,3,2C)1,3,3 D)3,2,1(20)以下程序中的变量已正确定义for(i=0;i<4;i++,i++for(k=1;k<3;k++);printf(*”);程序段的输出结果是A)******** B)****C)** D)*(21)有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。

历年计算机二级C语言笔试真题及答案

2009 年9 月计算机等级考试二级笔试试卷B)程序设计的任务就是确定所用数据结main1)下列数据结构中,属于非线性结构的构int c0k是C)程序设计的任务就是确定所用算法for k1klt3kA)循环队列B 带链队列 C 二叉树D)以上三种说法都不完整switch kD)带链栈12)以下选项中,能用作用户标识符的是default: ck2)下列数据结果中,能够按照“先进后A)void B)8_8 C)_0_ D)unsigned case 2: cbreak 出”原则存取数据的是13)阅读以下程序case 4: c2breakA 循环队列 B 栈C队列D二叉树include ltstdio.hgt 3)对于循环队列,下列叙述中正确的是main printf“dn”cA)队头指针是固定不变的B)队头指针int case float printF 一定大于队尾指针C)队头指针一定小于printf“请输入2 个数:” 程序运行后的输出结果是队尾指针D)队头指针可以大于队尾指scanf“d f”ampcaseamppjrintF A)3 B)5 C)7 D)9针,也可以小于队尾指针printf“d fn”caseprintF 19 )以下程序段中,与语句:4)算法的空间复杂度是指kagtbbgtc1:0:0;功能相同的是A)算法在执行过程中所需要的计算机存该程序编译时产生错误,其出错原因是A)ifagtbampampbgtc k1else k0储空间B)算法所处理的数据量C)A)定义语句出错,case 是关键字,不能B)ifagtbbgtc k1else k0算法程序中的语句或指令条数用作用户自定义标识符B)定义语句C)ifaltb k0else ifbltc k1D)算法在执行过程中所需要的临时工作出错,printF不能用作用户自定义标D)ifagtb k1else ifbgtc k1 else k0单元数识符20)有以下程序5)软件设计中划分模块的一个准则是C)定义语句无错,scanf 不能作为输入函include ltstdio.hgtA 低内聚低耦合B 高内聚低耦合数使用D)定义语句无错,printf mainC 低内聚高耦合 D 高内聚高耦合不能输出case 的值char s“012xy”int in06)下列选项中不属于结构化程序设计原14)表达式:intdouble9/2-92 的值fori0si0i则的是是ifsigt’a’ampampsilt’z’ nA 可封装 B 自顶向下C 模块化A)0 B)3 C)4 D)5 printf“dn”nD 逐步求精15)若有定义语句:int x10,则表达式程序运行后的输出结果是7)软件详细设计x-xx 的值为A)0 B)2 C)3 D)5产生的图如下:A)-20B)-10C)0D)10 21)有以下程序该图是16)有以下程序include ltstdio.hgtA N-S 图 B include ltstdio.hgt mainPAD 图C 程序main int n2k0流程图D E-R 图inta1b0 whilekampampngt28)数据库管理系统是printf“d”bab printf“d dn”knA)操作系统的一部分B 在操作系统支printf“dn”a2b 程序运行后的输出结果是持下的系统软件C 一种编译系统A)0 2 B)1 3 C)5 7 D)1 2D 一种操作系统程序运行后的输出结果是22)有以下定义语句,编译时会出现编译9)在E-R 图中,用来表示实体联系的图A)00 B)10 C)32 D)12 错误的是形是17)设有定义:int a1b2c3,以下语A)char a’a’ B)char a’n’ C)charA 椭圆图B矩形C 菱形 D 三角形句中执行效果与其它三个不同的是a’aa’ D)char a’x2d’10)有三个关A )ifagtb 23)有以下程序系R,S 和T caabbc include ltstdio.hgt如下:B )ifagtb main其中关系T 由caabb char c1c2关系R 和S 通c C)c1’A’’8’-‘4’过某种操作得ifagtb c2’A’’8’-‘5’到,该操作为caabb printf“cdn”c1c2A 选择B 投影C 交D 并c D)ifagtb caabbc 11)以下叙述中正确的是A)程序设18)有以下程序已知字母 A 的ASCII 码为65,程序运行计的任务就是编写程序代码并上机include ltstdio.hgt 后的输出结果是A)E68 B)D69 C)ED D)printf“d”strlenpprintf“sn”p A)void pf pffun B)viod pf 输出无定值程序运行后的输出结果是pffun C)void pf pffun D)24)有以下程序A)9OneWorld B)9OneDream C)void pfintcharpfampfun include ltstdio.hgt 10OneDream D)10OneWorld (34)有以下程序void funint p 29)有以下程序i nclude ltstdio.hgt int d2 include ltstdio.hgt int fint n pd printf“d”p main main main int a 2354i int a3s int a1 fori0ilt4i sfassfaprintf“dn”s funa printf“dn”a 程序运行switchi2 后的输出结果是case 0:switchai2 int fint n A)32 B)12 C)21 D)22 case 0:aibreak static int a125)以下函数findmax 拟实现在数组中查case 1:ai-- na找最大值并作为函数值返回,但程序中有break return n错导致不能实现预定功能case 1:ai0 程序运行以后的输出结果define MIN -2147483647 是int findmax int xint nfori0ilt4i printf“d”ai A)7 B)8 C)9 D)10 int imax printf“n” 35)有以下程序fori0iltni include ltstdio.hgt maxMIN 3 A)3 4 4 B)0 5 0 2 3 C)0 4 0 D)define fx xxx ifmaxltxi maxxi 0304 main return max 30)有以下程序int a3st 造成错误的原因是include ltstdio.hgt sfa1tfa1A)定义语句int imax中max 未赋初值includeltstring.hgt printf“ddn’stB)赋值语句maxMIN中,不应给max main 程序运行后的输出结果赋MIN 值chara10”abcd” 是C)语句ifmaxltxi maxxi中判断条件printf“ddn”strlenasizeofa A)1064 B)1010 C)6410 D)设置错D)赋值语句maxMIN 程序运行后的输出结果是6464 放错了位置A)74 B)410 C)88 D)1010 36)下面结构体的定义语句中,错误的是(26)有以下程序31)下面是有关 C 语言字符数组的描述,A)struct ord int xint yint z struct ord a include ltstdio.hgt 其中错误的是B)struct ord int xint yint z struct main A)不可以用赋值语句给字符数组名赋字ord a int m1n2pampmqampnr 符串B)可以用输入语句把字符串C )struct ord int xint yint z a rppqqr 整体输入给字符数组D)struct int xint yint z a C)字符数组中的内容不一定是字符串37)设有定义:char c,以下选项中能够printf“ddddn”mnpq D)字符数组只能存放字符串使字符型指针c 正确指向一个字符串程序运行后的输出结果是32)下列函数的功能是的是A)121 B)1221 C)212 D)funchar achar b A )char str ”string”cstrB)2112 whileba’0’ ab scanf“s”c C )cgetchar27)若有定义语句:int a410pq4 A)将 a 所指字符串赋给b 所指空间B)D)c”string”且0≤ilt4,则错误的赋值是使指针b 指向a 所指字符串C)将 a 38)有以下程序A)pa B)qiai C)pai D)所指字符串和 b 所指字符串进行比较include ltstdio.hgt pampa21 D)检查a 和b 所指字符串中是否有’0’ includeltstring.hgt28)有以下程序33)设有以下函数struct A include ltstdio.hgt void funint nchar s …… 则下面对int a char b10 double c includeltstring.hgt 函数指针的定义和赋值均是正确的struct A fstruct A t main 是main char str 20“OneWorld” struct A “OneDream”pstr1 a1001”ZhangDa”1098.0 main 程序运行时从键盘输入:How are afajprintf“ds6.1fn”a.aa.b int x20 yoult 回车gt 则输出结果为【13】。

2009年4、9月全国计算机等级考试二级笔试试卷及答案

2009年9月全国计算机等级考试二级笔试试卷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)阅读以下程序#include <stdio.h>main(){ 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)有以下程序#include <stdio.h>main(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0B)1,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;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=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#include <stdio.h>main(){ 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)有以下程序#include <stdio.h>main(){ 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)有以下程序#include <stdio.h>main(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68B)D,69C)E,DD)输出无定值(24)有以下程序#include <stdio.h>void fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<n;i++){ max=MIN;if(max<x[i]) max=x[i];}return max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(max<x[i]) max=x[i];中判断条件设置错误D)赋值语句max=MIN;放错了位置(26)有以下程序#include <stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include <stdio.h>#include<string.h>main(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#include <stdio.h>main(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include <stdio.h>#include<string.h>main(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#include <stdio.h>int f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include <stdio.h>#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include <stdio.h>#include<string.h>struct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。

09年9月2级C试题以及计算机2级的考点总结

2009年9月全国计算机二级C语言笔试试卷含参考答案发布时间:2009-10-1219:35:50发布人:东方教育网新闻来源:一、选择题((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)可封装B)自顶向下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) viod B) 8_8 C)_0_ D) unsigned(13)阅读以下程序#include<stdio.h>main(){int case;float printf;Printf(“请输入2个数:”);Scanf(“%d%f”,&case,&printf);Printf(“%d%f\n”,case,printf);}该程序在编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标示符B)定义语句出错,printf不能用作用户自定义标示符C)定义语句出错,scanf不能作为输入函数使用D)定义语句出错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2 的值是A) 2 B) 3 C) 4 D) D(15)若有定义语句:int: x=10; ,则表达式x-=x+x的值为A)-20 B)-10 C)0 D)10(16)有以下程序#include<stdio.h>Main(){int a=1,b=0;Printf(“%d”,b=a+b);Printf(“%d\n”,a=2*b);}程序运行的输出结果是A)0,0 B)1,0 C)3,2 D)1,2(17)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b)c=a,a=b,b=c; B) if(a>b){c=a,a=b,b=c;}C) if(a>b)c=a;a=b;b=c; D) if(a>b){c=a;a=b;b=c;}(18)有以下程序#include<stdio.h>main(){int c=0,k;For(k=1;k<3;k++)Switch(k){default:c+=k;Case 2: c++;break;Case 4: c+=2;break;}Printf{“%d\n”,c};}程序运行后的输出结果是A) 3 B) 5 C) 7 D) 9(19)以下程序中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c))k=1; B)if((a>b)||(b>c))k=1;else k=0; else k=0;C)if(a<=b)k=0; D)if(a>b) k=1;else if(b<=c)k=1; else if(b>c) k= 1;else k =0;(20)有以下程序#include<stdio.h>main(){char s[]=(“012xy”);int i,n=0;for(i=0;s!=0;i++)if(s>=’a’&&s<=’z’)n++;printf(“%d\n”,n);}程序运行后的输出结果是A) 0 B) 2 C) 3 D) 5(21)有以下程序#include<stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);Printf{“%d %d\n”,k,n};}程序运行后的输出结果是A) 0 2 B) 1 3 C) 5 7 D 1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’; B) char a=’\0’C)char a=’aa’D)char a=‘x2d’;(23)有以下程序#include<stdio.h>main(){char c1,c2;C1=’A’+’8’-‘4’;C2=’A’+’8’-‘5’;Printf{“%c %d\n”,c1,c2};}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68 B)D,69 C)E,D D)输出无定值(24)有以下程序#include<stdio.h>Void fun{int p}{int d=2;p=d++;printf(“%d”,p);}main(){int a=1;fun(a);printf(“%d\n”,a);}程序运行后的输出结果是A) 32 B)12 C)21 D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。

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