2009年9月全国计算机二级C语言笔试试卷含参考答案

合集下载

2009年9月全国计算机等级考试笔试试题及答案

2009年9月全国计算机等级考试笔试试题及答案
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;放错了位置
#include <string.h>
main()
{char a[10]=”abcd”;
printf(“%d, %d\n”,strlen(a),sizeof(a));
}
程序运行后的输出结果为:
A)7,4 B)4,10 C)8,8D)10,10
(31)下面是有关C语言字;&s[i]<=’z’) n++;
printf(“%d\n”,n);
}
程序运行后的输出结果是
A)0 B)2 C)3 D)5
(21)有以下程序
}
该程序在编译时产生错误,其出错原因是
A) 定义语句出错,case是关键字,不能用作用户自定义标识符
B) 定义语句出错,printF不能用作用户自定义标识符
C) 定义语句无错,scanf不能作为输入函数使用
D) 定义语句无错,printf不能输出case的值
(14)表达式:(int)((double)9/2)-(9)%2的值是
A)操作系统的一部分 B)在操作系统支持下的系统软件
C)一种编译系统 D)一种操作系统
9、在E-R图型中,用来表示两个实体联系的图型的是:
A) 矩形 B) 椭圆 C)菱形 D)三角形

全国计算机二级C语言历年真题完整版

全国计算机二级C语言历年真题完整版

2010年3月全国计算机等级考试二级C 笔试试卷一、选择题(1)A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。

详细设计属于A)定义阶段B)开发阶段C)维护阶段C)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:R T A B C c 32d 32则由关系R得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示AB C a12b22c32d 32(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a--b(14)若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#include<stdio.h>main(){char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar();d=getchar;printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是A)1234B)12C)12D)12(16)以下关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==I)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是A)switch(a){case1:a=b;break;default:a++;}B)switch(a==1){case0:a=b;break;case1:a++;}C)switch(a){default:a++;break;case1:a=b;}D)switch(a==1){case1:a=b;break;case0:a++;}(19)如下嵌套的if语句if(a<b)if(a<c)k=a;else k=c;if(b<c)k=b;else k=c;以下选项中与上述if语句等价的语句是A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);C)k=(a<b)?((a<c)?a:c)((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<stdio.h>main(){int i,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i+j>3)break;m*=i*j;}}printf(“m=%d\n”,m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include<stdio.h>main(){int a=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include<stdio.h>main(){int k=011;printf(“%d\n”,k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char*s;s="Olympic";B)char s[7];s="Olympic";C)char*s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返同到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;D)#define N2008int num[N];int num[N];(26)有以下程序#include<stdio.h>void fun(char*c,int d){*c=*c+1;d=d+1;printf(“%c,%c”,*c,d);}main(){char b=‘a’,a=‘A’;fun(&b,a);printf(“%c,%c\n”,b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元索a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include<stdio.h>main(){int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=1;i<3;i++)s=s+a[b[i]];printf(“%d\n”,s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include<stdio.h>main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=1;i<3;i++)for(j=1;j<=1;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",s2="\n123\\";printf("%d%d\n",strlen(s1),strlen(s2));则输出结果是A)55B)105C)107D)58(32)有以下程序#include<stdio.h>#define N8void fun(int*x,int i){*x=*x+i;}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=1;i<N/2;i++){printf(“%d”,a[i]);}printf(“\n”);}程序运行后的输山结果是A)1313B)2234C)3234D)1234(33)有以下程序#include<stdio.h>int f(int t[],int n);main(){int a[4]={1,2,3,4},s;s=f(a,4);printf(“%d\n”,s);}int f(int t[],int n){if(n>0)return t[n-1]+f(t,n-1);else return0;}程序运行后的输出结果是A)4B)10C)14D)6(34)有以下程序#include<stdio.h>int fun(){static int x=1;x*=2;return x;}main(){int i,s=1;for(i=1;i<=2;i++)s=fun();printf(“%d\n”,s);}程序运行后的输出结果是A)0B)1C)4D)8(35)有以下程序#include<stdio.h>#define SUB(a)(a)-(a)main(){int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序运行后的输山结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{int real,unreal;}data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include<stdio.h>#include<string.h>struct A{int a;char b[10];double c;};void f(struct At);main(){struct Aa={1001,“ZhangDa”,1098.0};f(a);printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}void f(struct At){t.a=1002;strcpy(t.b,“ChangRong”);t.c=1202.0;}输出结果是A)1001,ZhangDa,1098.0B)1002,ChangRong,1202.0C)1001,ChangRong,10980D)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day;int month;int year;}s};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)pw.year=1980;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include<stdio.h>main(){int a=2,b=a,c=2;printf(“%d\n”,a/b&c);}程序运行后的输出结果是A)0B)1C)2D)3(40)有以下程序#include<stdio.h>main(){FILE*fp;char str[10];fp=open(“myfile.dat”,“w”);fputs(“abc”,pf);close(pf);fp=open(“myfile.dat”,“a+”);fprintf(pf,“%d”,28);rewind(pf);fscanf(pf,“%s”,str);puts(str);close(pf);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。

c语言国家二级考试真题及答案

c语言国家二级考试真题及答案

c语言国家二级考试真题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的整型常量表示?A. 0x123B. 123.0C. '123'D. 0123答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. $variableD. variable name答案:B3. 若有定义:int a=3, b=4; 则表达式 a++ + b 的值是多少?A. 7B. 6C. 5D. 8答案:A4. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"'D. 'Hello, World!"答案:A5. 以下哪个选项是C语言中的合法浮点数?A. 3.14e2B. 3.14E2C. 3.14eD. 3.14E答案:B6. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a[] = {1, 2, 3, 4};答案:B7. 在C语言中,以下哪个选项是正确的函数声明?A. int func(int a, int b);B. int func();C. int func(int a, b);D. int func(int a, int);答案:A8. 若有定义:int x=10; 则表达式 x += 5 的值是多少?A. 10B. 15C. 5D. 20答案:B9. 在C语言中,以下哪个选项是正确的结构体声明?A. struct Student { int age; char name[20]; };B. struct { int age; char name[20]; } Student;C. struct Student { int age; char name[20]; } student;D. struct { int age; char name[20]; };答案:A10. 在C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int *p[];C. int (*p)[];D. int *p[10];答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个全局变量。

2009秋江苏省计算机二级C语言试题与答案(笔试)

2009秋江苏省计算机二级C语言试题与答案(笔试)

2009秋季C语言笔试试卷第一部分:计算机基础知识1.下列关于个人移动通信的叙述中,错误的是__A__A.第1代个人移动通信(简称1G)采用的通信技术是数字通信技术B.目前广泛使用的GSM手机采用的通信技术属于第2代移动通信技术(简称2G)C.第3代移动通信技术(简称3G)将无线通信与互联网、多媒体通信相结合D.3G有多个国际技术标准,其中也有我国自主制定的3G技术标准。

2.在下列有关集成电路的叙述中,正确的是2。

DA.现代集成电路所使用的半导体材料都是硅B.所有的集成电路都是数字集成电路C.Moore定律认为单块集成电路的集成度平均每年翻一番D.Intel公司微处理器产品Core 2 Duo,其集成度已高达数千万个电子元件3.与十六进制数AB等值的八进制数是3 。

AA. 253B.254C.171D.1724.在下列有关PC机CPU的叙述中,错误的是4。

BA.CPU中包含几十个甚至上百个寄存器,用来临时存放数据、指令和控制信息B.所有PC机的CPU都具有相同的指令系统,因而PC机可使用相同的软件C.一台计算机至少包含1个CPU,也可以包含2个、4个、8个甚至更多个CPUD.Intel公司是国际上研制和生产CPU的主要公司,我国也能生产CPU5.在下列有关PC机主板上部件的叙述中,错误的是5 。

A.BIOS保存在主板上的一个闪存中,其内容在关机后通常不会改变B.CMOS中保存有用户设置的开机口令,关机后主板上的电池继续给CMOS供电C.启动CMOS设置程序可以重新设置CMOS中的数据,该程序是BIOS的组成部分D.网卡通常集成在主板上,由主板上独立的IC实现其功能,与芯片组无关6.从PC机存储器的层次结构来看,下列存储器中存取速度最快的是6 。

CA.Cache存储器B.RAM和ROMC.寄存器D.硬盘和优盘7.在下列4种PC机常用I/O接口中,数据传输速率最高的是7。

BA.PS/2B.SATAC.IEEE-1394bB 2.08.在下列有关I/O操作、I/O总线和I/O接口的叙述中,错误的是8。

历届国家二级c语言考试真题及其答案,word版

历届国家二级c语言考试真题及其答案,word版

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)o115 B) 0118 C)1.5e1.5 D) 115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A) x*=x+1B) 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.141593B)123.141593C)12,3.141593D)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,3B)1,3,2C)1,3,3D)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语言历年真题及答案

国家计算机二级C语言历年真题及答案

全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B) 带链队列C) 二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A) 循环队列B) 栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(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)有以下程序#include{ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是A)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’;B)char a=’\n’;C)char a=’aa’;D)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68C)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(maxD)赋值语句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年全国计算机等级考试二级C++笔试试题(4)

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

每小题2分,共70分第1题:以下关于虚函数的叙述中不正确的是()。

A.虚函数属于成员函数B.虚函数不允许说明成静态的C.凡是虚函数必须用virtual说明D.虚函数可以被继承【正确答案】:C【参考解析】:虚函数的引入是为了解决动态绑定问题.使类的实例表现出多态性,虚函数在继承后依然保持虚函数特性,此时不需要用virtual关键词修饰。

第2题:A【参考解析】:本题主要考察setfill的用法。

只用在设置了宽度的情况下,字符填充操作setfill才有意义。

另外要注意的是设置宽度setw是所有格式中惟一一个一次有效的设置。

第3题:下述说法错误的是()。

A.对象之间不可以相互赋值B.对象可以用作函数参数C.对象可以用作数组的元素D.对象可以用作另一对象的成员【正确答案】:A【参考解析】:如果重载了赋值运算符后,对象之间是可以赋值的,对象如C++中其他内置的数据类型一样,可以作为函数参数、数组元素,其他对象的成员存在。

第4题:假定AB为一个类,则执行AB x;语句时将自动调用该类的()。

A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数【正确答案】:B【参考解析】:当没有显式调用指定形式的构造函数。

系统自动调用无参构造函数,如果没有为类指定此构造函数,则系统自动为其生成一个最简单的无参构造函数。

)。

A)654321B)432156C)456123D)123456【正确答案】:A【参考解析】:本题采用递归函数的方式将数组中的元素进行倒置,只要能够看出函数fun的功能,即可以得出正确答案为A。

第6题:数据库概念设计中,由分散到集中的设计方法是()。

A.视图设计B.视图集成设计C.集中式模式设计D.分数式模式设计【参考解析】:数据库概念设计中,由分散到集中的设计方法是视图集成设计。

第7题:类的构造函数的作用是()。

A.一般成员函数B.类的初始化C.对象的初始化D.删除对象创建的所有对象【正确答案】:C【参考解析】:本题考查类的构造函数的作用,构造函数一般负责完成对象建立时的初始化工作,如资源的分配。

全国计算机等级考试二级C语言真题09月之欧阳引擎创编

全国计算机等级考试二级C语言真题09月之欧阳引擎创编

2009年9月全国计算机等级考试二级笔试考试欧阳引擎(2021.01.01)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 TA B C a 1 2 b 2 1 c31A B C a 1 2 b 2 1 c 3 1 d32A B Cd 3 2欧阳引擎创编 2021.01.01其中关系T由关系R和关系S通过某种操作得到:该操作为:A) 选择 B) 投影 C)交 D)并11、一下叙述中正确的是:A) 程序设计的任务是编写程序代码并上机调试。

全国计算机等年级考试二级C语言真题优选

全国计算机等年级考试二级C语言真题优选

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其中关系T 由关系R 和关系S 通过某种操作得到:该操作为:A) 选择 B) 投影 C )交 D)并11、一下叙述中正确的是:A) 程序设计的任务是编写程序代码并上机调试。

B) 程序设计的任务是确定所用的数据结构。

C )程序设计的任务是确定所用的算法。

国家计算机二级C语言历年真题及答案

国家计算机二级C语言历年真题及答案

全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B) 带链队列C) 二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A) 循环队列B) 栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(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)有以下程序#include{ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是A)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’;B)char a=’\n’;C)char a=’aa’;D)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68C)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(maxD)赋值语句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月和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语言笔试真题及答案

历年计算机二级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年9月全国计算机等级考试二级C语言笔试试题(含参考答案)

2009年9月全国计算机等级考试二级C语言笔试试题(含参考答案)

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如下:T其中关系T由关系R和S通过某种操作得到,该操作为A)选择B)投影C)交D)并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)void 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)0 B)3 C)4 D)5(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,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+=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[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 <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第3页(共9页)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 <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拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -int 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,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 <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*World B)9,One*Dream! C)10,One*Dream! D)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 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4(30)有以下程序#include <stdio.h>#include <string.h>main(){ char a[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}2009年9月全国计算机等级考试二级C语言程序设计笔试试卷第5页(共9页)程序运行后的输出结果是A)7,4 B)4,10 C)8,8 D)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)7 B)8 C)9 D)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,64 B)10,10 C)64,10 D)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);printf("%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.0 B)1002,ZhangDa,1202.0C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0(39)若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是A)16 B)8 C)4 D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

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

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

2009年9月二級C語言筆試真題及答案一、選擇題(每題2分,共計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.(12)以下選項中,能用作用戶識別字的是A)void B)8_8 C)_0_ D)unsigned(13)閱讀以下程式#includemain(){ 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(15)若有定義語句: int x=10;,則運算式x-=x+x的值為A)-20 B)-10 C)0 D)10(16)有以下程式#includemain(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d",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)有以下程式#includemain(){ 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)919.(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)0 B)2 C)3 D)5(21)有以下程式#includemain(){ 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)有以下程式#includemain(){ 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)有以下程式#includevoid 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擬實現在數組中查找最大值並作為函數值返回, 但程式中有錯導致不能實現預定功能#define MIN -2147463647int 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)有以下程式#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,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。

全国计算机等级考试二级C语言真题09月之欧阳法创编

全国计算机等级考试二级C语言真题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 如下:RS TAB C a1 2 b2 1 c3 1 其中关系T 由关系R 和关系S 通过某种操作得到:该操作为:A) 选择 B) 投影 C )交 D )并11、一下叙述中正确的是:A) 程序设计的任务是编写程序代码并上机调试。

B) 程序设计的任务是确定所用的数据结构。

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

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

全国计算机等级考试二级c语言笔试试题及答案1. 单项选择题:以下哪个选项是C语言中合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. 单项选择题:在C语言中,以下哪个关键字用于声明函数?A. intB. voidC. returnD. function答案:B3. 单项选择题:C语言中,哪个运算符用于计算两个整数的乘积?A. +B. -C. *D. /答案:C4. 单项选择题:以下哪个选项是C语言中正确的字符串声明?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = "Hello''';D. char str[] = "Hello";答案:A5. 单项选择题:C语言中,哪个函数用于计算数组中元素的个数?A. sizeofB. lengthC. countD. size答案:A6. 单项选择题:在C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][4];B. int array[3,4];C. int array[3][];D. int array[][];答案:A7. 单项选择题:C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum答案:A8. 单项选择题:在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr[];C. int ptr*;D. int ptr*[];答案:A9. 单项选择题:C语言中,哪个函数用于输入一个字符?A. scanfB. printfC. getcharD. putchar答案:C10. 单项选择题:在C语言中,以下哪个选项是正确的条件语句?A. if (condition)B. switch (condition)C. case (condition)D. default (condition)答案:A11. 单项选择题:C语言中,哪个关键字用于定义一个循环?A. forB. whileC. doD. All of the above答案:D12. 单项选择题:在C语言中,以下哪个选项是正确的函数声明?A. void myFunction();B. int myFunction();C. float myFunction();D. All of the above答案:D13. 单项选择题:C语言中,哪个运算符用于计算两个数的除法?A. /B. *C. %D. //答案:A14. 单项选择题:在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14B. define PI 3.14C. #define "PI" 3.14D. #define PI = 3.14答案:A15. 单项选择题:C语言中,哪个关键字用于定义一个枚举类型?A. enumB. unionC. structD. typedef答案:A16. 单项选择题:在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. freadD. All of the above答案:D17. 单项选择题:C语言中,哪个关键字用于定义一个联合体?A. unionB. structC. enumD. typedef答案:A18. 单项选择题:在C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. All of the above答案:D19. 单项选择题:C语言中,哪个函数用于输出一个字符串?A. scanfB. printfC. getcharD. putchar答案:B20. 单项选择题:在C语言中,以下哪个选项是正确的递归函数声明?A. int factorial(int n);B. int factorial();C. int factorial(int);D. int factorial(int n) { if (n <= 1) return 1; else return n * factorial(n - 1); }答案:D。

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

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

全国计算机等级考试二级C语言真题2009年9月(总分:100.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:40,分数:70.00)1.下列数据结构中,属于非线性结构的是( )。

(分数:2.00)A.循环队列B.带链队列C.二叉树D.带链栈√解析:[解析] 一个算法的空间复杂度,一般是指执行这个算法所需的存储空间。

一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。

2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。

(分数:2.00)A.循环队列B.栈√C.队列D.二叉树解析:[解析] 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。

3.对于循环队列,下列叙述中正确的是( )。

(分数:2.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针√D.队头指针可以大于队尾指针,也可以小于队尾指针解析:[解析] 对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。

4.算法的空间复杂度是指( )。

(分数:2.00)A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数√解析:[解析] 软件是运行在计算机硬件之上的逻辑实体,包括程序、数据和相关的文档,软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。

5.软件设计中划分模块的一个准则是( )。

(分数:2.00)A.低内聚低耦合√B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合解析:[解析] 耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。

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

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

2009年上半年全国计算机等级考试二级C语言笔试试题及答案一、选择题(每题2分,共计70分)1.(1)下列叙述中正确的是A)栈是先进先出的线性表B)队列是"先进后出"的线性表C)循环队列是非线性结构D)有序线性表即可以采用顺序存储结构,也可以采用链式存储结构2.(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树3.(3)某二叉树有5个读为2的结点,则该二叉树中的叶子结点数是A)10 B)8 C)6 D)44.(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.(11)一下选项中合法的标识符是A)1_1 B)1-1 C)_11 D)1_ _(12)若函数中有定义语句:int k;,则A)系统将自动给k赋初值0 B)这是k中的值无定义C)系统将自动给k赋初值-1 D)这时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.;printf("%d%8.6f",x,y);的输出结果是A)123. B)12 3.C)12,3. D)123.(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,2 C)1,3,3 D)3,2,1(20)一下程序段中的变量已正确定义for(i=0;i<4;i++,j++)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。

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

2009年9月全国计算机二级C语言笔试试卷含参考答案核心提示:一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二叉树D)带链栈 (2)下列数据结构中,能够按照一、选择题((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拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。

#define MIN -2147483647int findmax{int x[],int n}{int i,max;for(i=0;i<n;i++){max=MIN;if(max<x) max=x;return max;}造成错误的原因是A) 定义语句int i,max;max未赋初值B) 赋值语句max=MIN;中,不应给max赋MIN值C) 语句if(max<x)max=x;中判断条件设置错误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,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=a c)p=a 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*World B)9,One,Dream! C)10 ,One,Dream! D)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%2){case 0:a++;break;Case 1;a--;}break;Case 1:a=0}for(i=0;i<4;i-1)printf (“%d”,a);printf(“\n”); }程序运行后的输出结果是A)3344 B)2050 C)3040 D)0304(30)有以下程序#include<stdio.h>#include<string.h>main(){char a[10]=”abcd”;Printf(“%d,%d\n”),strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4 B)4,10 C)8,8 D)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)设有以下函数:Viod fun(int n,char *s) {…….}则下面对函数指针的定义和赋值均正确的是A) viod (*pf)(); pf=fun;B) viod *pf(); pf=fun;C) viod *pf(); *pf=fun;D) viod(*pf)(int,char);pf=&fun;(34)有以下程序#include<stdio.h>int f(int n);main(){int a=3,s;s=f(a);s=s+=(a);printf(“%d\n”,s);}int(int n){statie int a=1;n+=a++;return n;}程序运行后的输出结果是A)7 B)8 C)9 D)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",s,t);}程序运行后的输出结果是A)10,64 B)10,10 C)64,10 D)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=gentchar() 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); printf("%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=1200.0; return t;} 程序运行后的输出结果是A)1001,ZhangDa,1098.0 B)1002,ZhangDa,1202.0 C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0 (39)若有以下程序int r=8;printf("%d\n",r>>1);输出结果是A)16 B)8 C)4 D)2(40)下列关于C语言文件的细述中正确的是A)文件由一系列数据一次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文本或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结占以及3个度为1的结点,则该二叉树中共有【1】个结点。

相关文档
最新文档