2009年3月计算机等级考试二级C语言习题解析

合集下载

c 二级考试试题和答案及分析

c 二级考试试题和答案及分析

c 二级考试试题和答案及分析**C 二级考试试题和答案及分析**一、选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的整型常量表示?A. 0x12B. 1.5e2C. 0123D. 1.23**答案:A****分析:**在C语言中,0x12是正确的十六进制表示,1.5e2是浮点数表示,0123是八进制表示,而1.23是浮点数表示。

2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable-2**答案:B, C****分析:**在C语言中,标识符可以以字母、下划线开头,但不能以数字开头。

因此,2variable和variable-2都是不合法的,而variable2和_variable是合法的。

3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello" "World!"D. 'Hello' 'World!'**答案:A, C****分析:**在C语言中,字符串字面量需要用双引号括起来,因此A选项是正确的。

C选项中,两个字符串字面量之间没有加号,它们会被编译器自动连接起来,也是正确的。

4. 下列哪个选项是C语言中的合法数组声明?A. int array[5];B. int array[];C. int array[5] = {1, 2, 3, 4, 5};D. int array = {1, 2, 3, 4, 5};**答案:A, B, C****分析:**在C语言中,A选项和C选项都是合法的数组声明。

B选项声明了一个未指定大小的数组,这也是合法的。

D选项是错误的,因为它试图声明一个整型变量而不是数组。

5. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int x, int y);B. int add();C. int add(int, int);D. int add(int x, y);**答案:A, C****分析:**在C语言中,函数声明需要指定参数的类型和数量。

2009年春浙江省高校计算机等级考试试卷 (二级C)及答案

2009年春浙江省高校计算机等级考试试卷 (二级C)及答案

2009年春浙江省高等学校试题1:输入一个正整数n ,计算下列式的前n 项之和。

⋯⋯+-+-=917151311s 运行示例:Enter n:2Sum=0.67#include <stdio.H>main(){ int denomiator,flag,i,n;double item,sum;printf("Enter n:");scanf("%d",&n);denomiator=1;(1) ;sum=0;for(i=1; (2) ;i++){(3) ;sum=sum+item;(4) ;denomiator=denomiator+2;}printf("Sum=%.2f\n",sum);}(1)A .flag=0 B .flag=-1;C .flag=nD .flag=1(2)A .i>=n B .i<nC .i>nD .i<=n(3)A .item=flag/ denomiator B .item=1/ denomiatorC .item=flag*1.0/ denomiatorD .item=1.0/ denomiator(4)A .flag==-1 B .flag=0C .flag=-flagD .flag=flag试题2(每小题3分,共12分)验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。

例如6=3+3,8=3+5……,18=7+11。

将6-20之间的偶数表示成两个素数之和,打印时一行打印5组。

要求定义和调用函数prime(m)判断m 是否为素数,当m 为素数时返回1,否则返回0。

素数就是只能被1和自身整除的正整数,1不是素数,2是素数。

运行示例:6=3+3 8=3+5 10=3+7 12=5+7 14=3+1116=3+13 18=5+13 20=3+17【程序】#include <stdio.H>#include <math.h>int prime(int m){int i,n;if(m==1)return 0;n=sqrt(m);for(i=2;i<=n;i++)if(m%i==0)return 0;(5)}main(){ int count,i,number;count=0;for(number=6;number<=20;number=number+2){for(i=3;i<=number/2;i=i+2)if( (6)){printf("%d=%d+%d ",number,i,number-i);count++;if( (7))printf("\n");(8)}}}(5)A.; B.return 1;C.return 0 ; D.else return 1;(6)A.prime(i)!=0||prime(number-i)!=0B.prime(i)!=0&&prime(number-i)!=0C.prime(i)==0||prime(number-i)==0D.prime(i)==0||prime(number-i)==0(7)A.count%5==0 B.count%5!=0C.(count+1)%5==0 D.(count+1)%5!=0(8)A.break; B.else break;C.continue; D.;试题3 输入一行字符,统计并输出其中数字字符、英文字符和其它字符的个数。

《全国计算机等级考试二级教程——C语言程序设计》课后习题详细答案

《全国计算机等级考试二级教程——C语言程序设计》课后习题详细答案

《全国计算机等级考试二级教程——C语言程序设计》习题分析与详细解答第一章程序设计基本概念习题分析与解答1.1 【参考答案】EXE1.2 【参考答案】[1].C [2].OBJ [3].EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】B)2.2 【参考答案】D)2.3 【参考答案】B)2.4 【参考答案】A)2.5 【参考答案】C)2.6 【参考答案】A)2.7 【参考答案】B)2.8 【参考答案】B)2.9 【参考答案】D)2.10 【参考答案】C)2.11 【参考答案】B)2.12 【参考答案】B)2.13 【参考答案】A)二、填空题2.14 【参考答案】[1]11 [2]122.15 【参考答案】[1]4.2 [2]4.22.16 【参考答案】[1]{ [2]} [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1]int [2]float [3]double2.19 【参考答案】float a1=1.0, a2=1.0;或float a1=1, a2=1;(系统将自动把1转换为1.0)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1]a*b/c [2]a/c*b [3]b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2]1位二进制数据(0或1)2.25 【参考答案】[1]8 [2]127 [3]01111111 [4]-128 [ 5 ] 10000000 2.26 【参考答案】[1]32767 [2]-32768 [3]10000000000000002.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。

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

2009春江苏省计算机二级C语言试题与答案笔试
D.光纤主要用于数字通信,它采用波分多路复用技术以增大信道容量‘.
2.最大的10位无符号二进制整数转换成八进制数是2 .。
A.1023 B.1777C.1000 D.1024
3.在下列有关目前PC机CPU的叙述中,错误的是3。
A.CPU芯片主要是由Intel公司和AMD公司提供的B."双核"是指PC机主板上含有两个独立的CPU芯片
C.自由软件的原则是用户可共享,并允许拷贝和自由传播
D.软件许可证是一种法律合同,它确定了用户对软件的使用权限
8.人们通常将计算机软件划分为系统软件和应用软件。下列软件中,不属于应用软件类型的是8
A.AutoCAD B.MSN C.Oracle D.Windows Media Player
9.在下列有关Windows 98/2000/XP操作系统的叙述中,错误的是9。
C.8个汉字和2个西文字符D.4个汉字和1个西文字符
17.以下关于汉字编码标准的叙述中,错误的是17。
A.GB 2312标准中所有汉字的机内码均用双字节表示
B.我国台湾地区使用的汉字编码标准BIG 5收录的是繁体汉字
C.GB 18030汉字编码标准收录的汉字在GB 2312标准中一定能找到
D.GB 18030汉字编码标准既能与UCS(Unicode)接轨,又能保护已有中文信息资源
20.在下列有关信息系统开发、管理及其数据库设计的叙述中,错误的是20。
A.常用的信息系统开发方法可分为结构化生命周期方法、原型法、面向对象方法和CASE方法等
B.在系统分析中常常使用结构化分析方法,并用数据流程图和数据字典来表达数据和处理过程的关系
C.系统设计分为概念结构设计、逻辑结构设计和物理结构设计,通常用E-R模型作为描述逻辑结构的工具

2009年春季江苏省二级c语言试题与答案

2009年春季江苏省二级c语言试题与答案

江苏省高校计算机等级考试命题研究院2009年春季江苏省二级c语言试题与答案江苏省高校计算机等级考试2009年春季考试试题第二部分 C程序设计21.以下定义和声明中,语法均有错误的是____(21)_________①int j(int x){}②int f(int f){} ③int 2x=1; ④struet for{int x;};A.②③ B.③④ C.①④ D.①②③④22.设有定义和声明如下:#define d 2int x=5;float Y =3.83;char c='d';以下表达式中有语法错误的是_(22)______A.x++ B.y++ C.c++ D.d++23.以下选项中,不能表示函数功能的表达式是___(23)______。

A.s=(X>0)?1:(X<0)?-1:0 B.s=X<0?-1:(X>0?1:0)C.s=X<=0?-1:(X==0?0:1) D.s=x>0?1:x==0?0:-124.以下语句中有语法错误的是____(24)______ 。

A.printf("%d",0e); B.printf("%f",0e2);C.printf("%d",Ox2); D.printf("%s","0x2");25.以下函数定义中正确的是___(25)_________ 。

A.double fun(double x,double y){}B.double fun(double x;double Y){}C.double fun(double x,double Y);{}D.double fun(double X,Y){}26.若需要通过调用f函数得到一个数的平方值,以下f函数定义中不能实现该功能的是_____(26)______ 。

3月计算机等级考试二级C语言笔试真题及参考答案

3月计算机等级考试二级C语言笔试真题及参考答案

2010年3月计算机等级考试二级C语言笔试真题一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(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)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系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语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#includemain(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%cn”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应本资.料来源于贵-州-学-习-网使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (aif(aelse k=c;elseif(belse k=c;以下选项中与上述if语句等价的语句是A)k=(aB)k=(aC)k=(aD)k=(a(20)有以下程序#includemain(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%dn",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%dn",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#includemain(){int k=011;printf("%dn",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)一个自定义函数中必须有本文来源于贵州学习网WWW.GZU521.COM一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#includevoid 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("%e,%en",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]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++) s=s+a[b[i]]);printf("%dn", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#includemain(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++) t+=b[i][b[j][i]];printf("%dn",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="n123\";printf("%d %dn", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include#define N 8void 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=O;i{printf("%d",a[i]);}printf("n");}程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#includeint f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%dn",s);}int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程此资料转贴于贵州学习网序#includeint fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++) s=fun();printf("%dn",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%dn",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#includestruct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1fn",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=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=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#includemain(){ int a=2,b=2,c=2;printf("%dn",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#includemain(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB) 28cC) abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。

历届国家二级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。

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【参考解析】:本题考查类的构造函数的作用,构造函数一般负责完成对象建立时的初始化工作,如资源的分配。

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

2009年3月全国计算机等级考试二级C语言笔试试题及答案一、选择题(每题2分,共计70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1) 程序流程图中带有箭头的线段表示的是:A .图元关系B .数据流C .控制流D .调用关系控制流图:表示的是一个程序里各个模块的分类和关系。

每个在图形中的节点代表一个基本块流程图:说白了就是操作程序的过程和方法,是实现控制流图效果的过程中用到的所有控件的使用过程与关系。

在数据流图中,用标有名字的箭头表示数据流。

数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。

1.下列叙述中正确的是A)栈是先进先出的线性表B)队列是"先进后出"的线性表C)循环队列是非线性结构D)有序线性表即可以采用顺序存储结构,也可以采用链式存储结构2.支持子程序调用的数据结构是A)栈 B)树 C)队列 D)二叉树函数调用的时候要入栈,返回要出栈,所以需要用到栈结构理论上来说所有数据结构都支持子程序的调用。

这个题的意思应该是子程序调用的时候能看成什么样的数据结构。

严格来说是栈——因为递归调用子程序的时候就是先入后出的而且是线性的。

虽然子程序也可以这样调用f[i]=f[i-1]+f[i-1]看起来像是树,但是实际上还是深度优先遍历一棵树,本质上是个栈。

所以说这个题的题意不清。

如果说“能够使用子程序调用的数据结构”就是全选,如果是“子程序调用的时候能看成什么样的数据结构“就是栈。

)是栈,栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。

栈顶元素总是后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后被删除的元素。

栈是按照“先进后出”或“后进先出”的原则组织数据的。

3.某二叉树有5个读为2的结点,则该二叉树中的叶子结点数是A10 B8 C) 6 D)44.下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序最坏情况下直接选择排序:每次都要执行交换总移动次数为(n-1)次交换O(n)冒泡排序:每比较一次都要进行一次交换,移动次数为3n(n-1)/2 O(n2)直接插入排序:n2/4 O(n2)堆排序:O(nlog2n)5软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下列属于应用软件的是A)编译程序系统软件B)操作系统系统软件C)教务管理系统或者浏览器D)汇编程序系统软件系统软件:系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。

系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。

系统软件包括操作系统和一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具)。

支撑软件:支撑软件是支撑各种软件的开发与维护的软件,又称为软件开发环境。

它主要包括环境数据库、各种接口软件和工具组。

著名的软件开发环境有IBM公司的Web Sphere,微软公司的等。

应用软件:应用软件是为了某种特定的用途而被开发的软件。

它可以是一个特定的程序,比如一个图像浏览器。

也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件。

也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。

主要有:文字处理软件如WPS、Word等教育与娱乐软件等6.下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试程序进行"错误定位"是程序调试的必要步骤C)程序调试也成为DebugD)软件测试应严格执行测试计划,排除测试的随意性解析:软件测试是为了发现错误而执行程序的过程。

软件调试的目的是发现错误并改正错误。

软件测试要严格执行测试计划,排除测试的随意性。

程序调试通常也称Debug,对被调试的程序进行“错误定位”是程序调试的必要步骤。

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中无任何值如果是全局变量,k的值为0.如果是在函数内部定义的局部变量,k的值就是随机的。

就是一选择题,答案是这时的k中的值无定义。

感觉怪怪的这说明你的k是在函数内部定义的。

局部变量的内存是从栈里分配的,系统会从栈里找到一个int那么大的内存分配给k。

因为这个栈里的东西没有清零,所以这段内存里的内容什么不知道是什么情况。

所以,局部变量使用前必须初始化。

对于c语言,int k;只是声明变量k,至于只是变量k的数值是多少,是不可知的。

除非 int k=0;13.一下选项中,能用作数据常量的是A)o115B)0118C)1.5e1.5D)115LA如果是0115就是一个合法的8进制常量,不过以o开头就成了变量名B以0开头是八进制,不过八进制只能是0~7,于是错误C的尾数是1.5正确,但是阶码为1.5错误,只能为整数D的后缀L代表长型,115L则表示长整型,因此正确14.设有定义:int x=2;,一下表达式中,值不为6的是A)x*=x+1B)X++,2*xC)x*=(1+x)D)2*x,x+=22*x之后。

X并没有变化。

所以x=x+2=4.15.程序段:int x=12; double y=3.141593;printf("%d%8.6f",x,y);的输出结果是A)123.141593B)12 3.141593C)12,3.141593D)123.141593016.若有定义语句: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,120.一下程序段中的变量已正确定义for(i=0;i<4;i++,j++)for(k=1;k<3;k++);这个时候循环结束了。

于是只执行一个。

printf("*"); 程序段的输出结果是A)********B)****C)**D)*其实这是一个双重循环,但是循环语句是空的。

就是说一直循环,除了循环变量变化外,其他没有什么变化。

printf是一个单独的语句,和循环没有什么关系。

两个i++有啥用相当于i=i+2;就是增加循环变量i的值,让其以2为步长递增。

直至循环结束。

21.有以下程序#include <stdio.h>main(){ char *s={"ABC"};do{ printf("%d",*s%10);s++;}while (*s);}注意:字母A的ASCII码值为65。

程序运行后的输出结果是A)5670 B)656667 C)567 D)ABC22.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是A)n=0;while((ch=getchar())!=~\n~)n++;B)n=0;while(getchar()!=~\n~)n++;C)for(n=0;getchar()!=~\n~;n++);D)n=0;for(ch=getchar();ch!=~\n~;n++);23.有以下程序#include <stdio.h>main(){ int a1,a2; char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b 则正确的输入格式是(以下_代表空格,<CR>代表回车)A)12a34b<CR>10A空格20B空格<CR>10对应&a1,A对应&c1,空格不是数值,&a2无法接受,所以继续等待,20是数值,对应&a2,B对应&c2B)12_a_34_b<CR>10对应&a1,空格对应&c1,A对应&a2,错误,等待,空格对应&a2,错误。

相关文档
最新文档