计算机二级C语言考试上机冲刺试题3资料_第1页
计算机二级C语言考试上机冲刺试题3资料_第2页
计算机二级C语言考试上机冲刺试题3资料_第3页
计算机二级C语言考试上机冲刺试题3资料_第4页
计算机二级C语言考试上机冲刺试题3资料_第5页
已阅读5页,还剩12页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机二级C语言考试上机冲刺试题3一、选择题(每小题1分,共40小题,共40分) 1下列叙述中正确的是()。 A对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n B对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n2) C对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n) 2下列叙述中正确的是()。 A数据的逻辑结构与存储结构必定是一一对应的 B由于计算机存储空间是向量式的存储结构,因此,

2、数据的存储结构一定是线性结构 C程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构 D以上三种说法都不对 3软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是()。 A编辑软件 B操作系统 C教务管理系统 D浏览器 4软件(程序)调试的任务是()。 A诊断和改正程序中的错误 B尽可能多地发现程序中的错误 C发现并改正程序中的所有错误 D确定程序中错误的性质 5数据流程图(DFD)是()。 A软件概要设计的

3、工具 B软件详细设计的工具 C结构化方法的需求分析工具 D面向对象方法的需求分析工具 6软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于()。 A定义阶段 B开发阶段 C维护阶段 D上述三个阶段 7数据库管理系统中负责数据模式定义的语言是()。 A数据定义语言 B数据管理语言 C数据操纵语言 D数据控制语言 8在学生管理的关系数据库中,存取一个学生信息的数据单位是()。 A文件  B数据库 C字段

4、0;D记录 9数据库设计中,用ER图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()。 A需求分析阶段 B逻辑设计阶段 C概念设计阶段 D物理设计阶段 10有两个关系R和T如下: 则由关系R得到关系T的操作是( )。  A选择  B投影  C交  D并11以下叙述正确的是( )。  AC语言程序是由过程和函数组成的  BC语言函数可以嵌套调用,例如:fun(fun(x)

5、 CC语言函数不可以单独编译  DC语言中除了main函数,其他函数不可作为单独文件形式存在  12以下关于C语言的叙述中正确的是( )。  AC语言中的注释不可以夹在变量名或关键字的中间  BC语言中的变量可以在使用之前的任何位置进行定义  C在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致  DC语言的数值常量中夹带空格不影响常量值的正确表示  13以下C语言用户标识符中,不合法的是( )。  

6、;A_1  BAaBc Ca b  Da-b 14若有定义:“double a=22;int i=0,k=18;”,则不符合C语言规定的赋值语句 是()。 Aa=a+,i+;Bi=(a+k)<=(i+k); Ci=a11;Di=!a; 15有以下程序: #include(stdioh> main() char a,b,C,d; scanf("cC",&a,&b);

7、60;c=getchar();d=getchar(); printf"ccccn",a,b,C,d);   当执行程序时,按下列方式输入数据(从第l列开始,代表回车j注意:回车也是 一个字符) 12 34 则输出结果是()。 A1234B12 C12D12 3 34 16以下关于C语言数据类型使用的叙述中错误的是()。- A若要准确无误差地表示自然数,应使用整数类型 B若要保存带权多位小数的数据,应使用双精度类型 C

8、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 D若只处理“真”和“假”两种逻辑值,应使用逻辑类型 17若a是数值类型,则逻辑表达式(a= =1)I I(a!=1)的值是()。 A1 B0 C2 D不知道a的值,不能确定 18以下选项中与“if(a= =l)a=b;else a+;”语句功能不同的switch语句是()。 Aswitch(a) Bswitch(a= =l) case l:a=b;break;case&

9、#160;0:a=b;break; default:a+; case l:a+;  Cswitch(a) Dswitch(a= =l) default:a+;break; case l:a=b;break; case l:a=b; case 0:a+;  19有如下嵌套的if语句: if(aif(aelse k=C: else if(belse k=C; 以下选项中与上述if语

10、句等价的语句是()。 Ak=(aBk=(a<b)?(bc)?b:c); Ck=(a<b)?(a<c)?a:c):(bDk=(a20有以下程序: #include 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=dn",m); ) 程序运行后的输出结果是()。

11、60;Am=6 Bm=2 Cm=4  Dm=3</b)?(a<c)?a:c):(b</b)?(b21有以下程序: #include main() int a=1,b=2; for(;a<8;a+)b+=a;a+=2;) printf("d,dn",a,b); ) 程序运行后的输出结果是()。 A9,18 B8,11 C7,11 D10,14 22有以下程序,其中k的初值为八进制数:&

12、#160;#include main() int k=011; printf"dn",k+;  程序运行后的输出结果是()。 A12 B11 C10  D9 23下列语句组中,正确的是()。 Achar*s;s="Olympic"; Bchar sE73;s="Olympic"; Cchar*S;s=¨Olympic"; Dchar sE

13、T3;s="Olympic"; 24以下关于return语句的叙述中正确的是()。 A一个自定义函数中必须有一条return语句 B一个白定义函数中可以根据不同情况设置多条return语句 C定义成void类型的函数中可以有带返回值的return语句 D没有return语句的自定义函数在执行结束时不能返回到调用处 25下列选项中,能正确定义数组的语句是()。 Aint num02008; B.int num ; Cint N=2008;int&#

14、160;numN; D#define N 2008; int numN; 26有以下程序: #include void fun(char*C,int d) *c=*c+1,d=d+1; printf("c,c",*c,d);   main() char b=aa=A; fun(&b,a);printf("c,cn",b,a); ) 程序运行后的输出结

15、果是()。 Ab,B,b,A Bb,B,B,A Ca,B,B,a  Da,B,a,B 27若有定义"int(*pt)3;",则下列说法正确的是()。 A定义了基类型为int的三个指针变量 B定义了基类型为int的具有三个元素的指针数组pt C定义了一个名为*pt、具有三个元素的整型数组 D定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组 28设有定义"double a10,*s=a;",以下能够代表数组元素a3的是(

16、)。 A(*s)3 B*(s+3) C*s3 D.*s+3 29有以下程序: #include main() int a5=1,2,3,4,5),b5=0,2,1,3,o,i,s=0; for(i=o;i<5;i+)s=s+abi; printf(”dn”,s); ) 程序运行后的输出结果是()。 A6 B10 C11  D15 30有以下程序: #include main()&#

17、160;int b33=(0,1,2,0,1,2,0,1,2,i,j,t=l; for(i=0;i<3;i+) for(j=1;j<=i;j+)t+=bibji; printf("dn",t); ) 程序运行后的输出结果是()。 A1 B3 C4  D031若有以下定义和语句: char s 10="abcd!",*s2="nl23"; Drintf("ddn&qu

18、ot;,strlen(sl),strlen(s2); 则输出结果是()。 A5 5 B10 5 C10 7  D5 8  32有以下程序: #include #define N 8  void fun(int*x,int i) *x=*(x+i);) main()  int aN=1,2,3,4,5,6,7,8,i; fun(a,2);&

19、#160;for(i=0;iprintf("Ha",ai); printf("n"); ) 程序运行后的输出结果是()。 A1313 B2234 C3234  D1234 33有以下程序: #include int f(int t,int n); main() int a4=1,2,3,4,s; s=f(a,4);printf("dn",s); i

20、nt f(int t,int n) if(n>0)return tn-1+f(t,n-1); else return 0; ) 程序运行后的输出结果是()。 A4 B10 C14 D6 34有以下程序: #include int fun() static int x=1; X*=2;return X; main() int i,S=

21、1; for(i=1;i<=2;i+)s=fun(); printf¨dn",s); ) 程序运行后的输出结果是()。 A0 B1 C4  D8 35有以下程序: #include #define SUB(a)(a)-(a) main() int a=2,b=3,c=5,d; d=SUB(a+b)*C; printf("dn",d); ) 程序运行后的

22、输出结果是()。 A0 B-l2 C-20 D10 36设有定义: struet complex int real,unreal;)datal=1,8,data2; 则以下赋值语句中错误的是()。 Adata2=datal; Bdata2=2,6; Cdata2real=datalreal; Ddata2real=datalunreal; 37有以下程序: #include #include struct 

23、A int a;char b10;double C;); void f(struct A t); main() struct A a="1001,"ZhangDa",l098,0; f(a);printf("d,S,61fn",aa,ab,ac); void f(struct A t) ta=1002;strcpy(tb,"ChangRon9");

24、tc=12020; 程序运行后的输出结果是()。 A1001,ZhangDa,10980 B1002,ChangRong,12020 C1001,ChangRong,10980  D1002,ZhangDa,12020 38有以下定义和语句: struct workers int num;char name20;char C; struct (int day;int month;int year;)S; ;

25、 struct workers w,*pw; pw=&w; 能给w中year成员赋1980的语句是()。 A*pwyear=1980; Bwyear=1980; Cpw->year=1980  DwSyear=1980; 39有以下程序: #include main() int a=2,b=2,C=2; print("dn",ab&c);  程序运行后的输出结果是()。

26、60;A0 B1 C2 D3 40有以下程序: #include main() FILE*fp;char str10; fp=fopen("myfile,dat",""); puts("abe",ip);fclose(fp); fp=fopen("myfiledat","a*"); fprintf(fp,"d",28); rewind(fp);&#

27、160;fscanf(fp,"S",str);puts(str); fclose(fp);  程序运行后的输出结果是()。 Aabc B28c Cabc28  D内类型不一致而出错二、基本操作题(共18分) 请补充main()函数,该函数的功能是:如果数组arr的前一个元素比后一个元素小,则把它保存在数组bb中并输出。 例如,若数组中的元素为:“40,68,62,33,35,52,48,95,66,73”,则输出:“40,33,35,48,66”。 注意:部分源程序

28、给出如下。 请勿改动函数()main和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #define M l0 void main()  int i,n=0; int arrM=(40,68,62,33,35,52,48,95,66,73); int bbM; system("CLS"); for(i=0;i<

29、【1】;i+) if(arri【2】; printf("n*display bb*n"); for(i=0;iprintf("bbd=2d",【3】); 三、程序改错题(共24分) 给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include 

30、;float mlO; /*found* int proc(void)  int j; printf("In subfunc after callingn"); for(j=0;j<10;j+)  /*found* printf("f",mj5);   void main()  int i; printf("In

31、 main before callingn"); for(i=0;i<10;i+)  mi=i+20; printf("f",mi);  proc(); printf("nln main after callingn"); for(i=0;i<10;i+) printf("f",mi5); 四、程序设计题(共18分) 学生的记录由学号和成绩组成,

32、M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。 注意:部分源程序给出如下。  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。 试题程序:  #include #define M l6 typedef struct  char numl0; int S;  STREC: void&

33、#160;proc(STREC a)  int i,j; STREC t; for(i=1;i排序* for(j=0;jif(ajs的记录,高分在前* t=aj;aj=aj+1;aj+1=t;)  void main()  STREC stuM="GA005",85),"GA003",76, "GA002",69,"GA004",85),"GA00

34、1",91), "GA007",72),"GA008",64),"GA006",87), "GA015",85),"GA013",91),"GA012",64), ¨GA014",91),"GA011",66),"GA017",64, "GA018",64),"GA016",72; int i; p

35、roc(stu); printf("The data after sorted:n"); for(i=0;i if(i4= =0) 每行输出4个学生记录 printf("n"); printf("s4d",stui,num,stuis);  printf("n"); 一、选择题  1C。【解析】-分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需

36、比较log2n次。  2D。【解析】数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的存储结构(也称数据的物理结构)是指数据的逻辑结构在计算机存储空间中的存放形式。通常一种数据的逻辑结构根据需要可以表示成多种存储结构。 3C。【解析】编辑软件和浏览器属于工具软件,教务系统是应用软件。  4A。【解析】调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活动。  5D。【解析】数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。  6B。【解析】开发阶

37、段在开发初期分为需求分析、总体设计、详细设计3个阶段,在开发后期分为编码、测试两个子阶段。  7C。【解析】模式描述语言(Data Description Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。  8D。【解析】一个数据库由一个文件或文件集合组成。这些文件中的信息可分解成一个个记录。  9C。【解析】E-R(EntityRelationship)图为实体一联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。  10D。【解析】选择是建立一个

38、含有与原始关系相同列数的新表,但是行只包括那些满足某些特定标准的原始关系行。  11B。【解析】c语言程序是由主函数和若干子函数构成的,可以嵌套使用。主函数调用子函数,子函数在定义时是并列的,子函数可相互调用或被多次调用。  12B。【解析】C语言中的变量必须在使用前定义,注释不记入程序,只是作为一种解释程序的标识,方便其他用户修改及查看。  13D。【解析】标识符主要由英文字母、数字和下划线构成,但开头字符一定是字母或下划线。  14C。【解析】运算符要求两个运算对象都为整型。C中a为double型,不符合要求。

39、  15C。【解析】当程序调用9etchar时,程序就等着用户接键。用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区中)。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓)中区中的字符读完为后,才等待用户按键。因此,程序中c的值为输入的第 一个回车符。  16D。【解析】C语言中没有逻辑类型。  17A。【解析】由于a= =l和a!=1两者互斥,即总有一

40、个为真,因此二者的或也必定为真。  18B。【解析】题中当a的值为l时,关系表达式a= =l的值为真,即1,因此程序将跳转到easel执行a+操作,与题干程序刚好相反。  19c。【解析】条件运算符(?:)是C语言中唯一的一个三目运算符,它是对第一个表达式做真假检测,然后根据结果返回两个表达式中的一个作为运算的结果。<表达式1>?<表达式2>:<表达式3>。在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值。  20A。【解析】本题考查了多重f

41、or循环。当(i*j)>3时,跳出循环,本题中i=1,j=3,i*J后值为3,所以执行下边语句:m*=i+j,也可写成m=m*i+j,这时要注意优先级,所以m的值为6。21D。【解析】第一次执行循环前,a=1,满足a<8,执行循环后,b=3,a=3。执行完a+操作后,a=4。由于a<8,执行第二次循环后,b=7,a=6,执行完a+操作后,a=7。由于a<8,执行第三次循环后,b=14,a=9,执行完a+操作后a=10。此时不满足a<8,跳出循环。  22D。【解析】八进制数k=011得十进制值为9,因此题中输出的是k的十进制值,输出完成后才执行

42、 k+操作。  23A。【解析】给字符串数组赋值时,要先定义数组长度,然后再赋值。可以只给部分元素赋初值,当()中值的个数少于元素个数时,只给前面部分元素赋值。数组的下标是从0开始的,所以s7代表从s0到s6七个元素。其格式可以写成:char数组名常量=字符,字符,);,也可写为char数组名常量="字符串";,或去掉)写为:char数组名常量="字符串"。所以本题应选择A选项。  24B。【解析return语句又称为返回语句。该语句的格式如下:“return;”和“return(<表达式>)

43、;”。其中,return是关键字。该语句有两种格式:不带返回值格式和带返回值格式。该语句用在被调用函数中,在被调用函数中执行到该语句时,将结束对被调用函数的执行,并把控制权返回给调用函数,继续执行调用函数后边的语句。在带有返回值的情况下,将return语句所带的表达武的值返回给调用函数,作为被调用函数的值。在被调用函数中,可以用return语句,也可以不用return语句。如果要求被调用函数有返回值,则一定要用return语句,采用return(<表达式>);格式。如果被调用函数不需要返回值,并且当被调用函数的所有语句执行完后进行返回,则被调用函数可以不用return语句。

44、0;25D。【解析】通过define进行宏定义,将N赋值为2008,然后定义一个数组,整型长度为2008,所以本题答案为D。  26A。【解析】本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母aa赋值为字母A,调用fun(b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。  27D。【解析】数组指针是指向数组的一个指针,int(*pt)3表示一个指向3个int元素的数组的一个指针。  28

45、B。【解析】用带下标的指针变量引用一维数组元素若有以下定义和语句:“int*P,s10,i;P=s”,且oi<10,可以用si、s+i和p+i三种表达式来表示si的地址。同时可以用si、*(s+i)和*(p+i)三种表达式来表示数组元素si。  29C。【解析】本题考查数组的使用。本题定义了两个数组,注意数组的下标是从0开始的,进行第1次for循环:当i=0时,b0为数组b中第l个元素,结果为0,那么a0也是数组a中第l个元素,结果为1,所以S的值为1。第2次循环:i此时自加为l,b1为数组的第2个元素,值为2,所以可求出a2(数组中的第3个元素)的值为3,s=s+3

46、,所以S 的值为4。进入第3次for循环,依此类推,第3次for循环结束时s的值为6。第4次for循环,s的值变为l0。第5次for循环时,此时i的值为4,s的值变为ll,i=5不符合题意,所以跳出循环,输出结果,所以本题答案为C。  30C。【解析】本题考查了两层for循环。外层循环增量i的值作为内层循环执行次数的值使用。  31A。【解析】n和分别为转义字符,各占据一个字符的位置。  32C。【解析】本题考查了宏定义与局部变量的区别,宏定义的作用范围为整个程序,而变量的作用范围只在定义它的函数体的部分,因此,主函数中定义的i与fun()中的i互不相干。  33B。【解析】本题考查了函数的调用,并且使用了嵌套。  34C。【解析】本题考查了static的用法。当static用于局部变量中,成为静态局部变量。静态局部变量有两个用法,记忆功能和全局生存期。当static用于全局变量,主要作用是限制此全局变量被其他的文件调用。当static用于类中的成员,表示这个成员是属于这个类,但是不属于类中任

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论