计算机二级C语言考试上机冲刺试题 3.docx

上传人:b****3 文档编号:6607654 上传时间:2023-05-10 格式:DOCX 页数:20 大小:44.92KB
下载 相关 举报
计算机二级C语言考试上机冲刺试题 3.docx_第1页
第1页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第2页
第2页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第3页
第3页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第4页
第4页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第5页
第5页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第6页
第6页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第7页
第7页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第8页
第8页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第9页
第9页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第10页
第10页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第11页
第11页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第12页
第12页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第13页
第13页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第14页
第14页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第15页
第15页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第16页
第16页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第17页
第17页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第18页
第18页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第19页
第19页 / 共20页
计算机二级C语言考试上机冲刺试题 3.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机二级C语言考试上机冲刺试题 3.docx

《计算机二级C语言考试上机冲刺试题 3.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言考试上机冲刺试题 3.docx(20页珍藏版)》请在冰点文库上搜索。

计算机二级C语言考试上机冲刺试题 3.docx

计算机二级C语言考试上机冲刺试题3

2014年计算机二级C语言考试上机冲刺试题(3)

一、选择题(每小题1分,共40小题,共40分)1.下列叙述中正确的是(  )。

A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

B.对长度为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如下:

则由关系R得到关系T的操作是()。

A.选择

B.投影

C.交

D.并

以下叙述正确的是()。

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._1

B.AaBc

C.ab

D.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(  )

{chara,b,C,d;

scanf("%c%C",&a,&b);

c=getchar(  );d=getchar(  );

printf{"%c%c%c%c\n",a,b,C,d);

}

当执行程序时,按下列方式输入数据(从第l列开始,代表回车j注意:

回车也是

一个字符)

12

34

则输出结果是(  )。

A.1234B.12

C.12D.12

334

16.以下关于C语言数据类型使用的叙述中错误的是(  )。

-

A.若要准确无误差地表示自然数,应使用整数类型

B.若要保存带权多位小数的数据,应使用双精度类型

C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型

17.若a是数值类型,则逻辑表达式(a==1)II(a!

=1)的值是(  )。

A.1

B.0

C.2

D.不知道a的值,不能确定

18.以下选项中与“if(a==l)a=b;elsea++;”语句功能不同的switch语句是(  )。

A.switch(a)B.switch(a==l)

{casel:

a=b;break;{case0:

a=b;break;

default:

a++;casel:

a++;

}

C.switch(a)D.switch(a==l)

{default:

a++;break;{casel:

a=b;break;

casel:

a=b;case0:

a++;

}

19.有如下嵌套的if语句:

if(a

if(a

elsek=C:

else

if(b

elsek=C;

以下选项中与上述if语句等价的语句是(  )。

A.k=(a

B.k=(ac)?

b:

c);

C.k=(a

D.k=(a

20.有以下程序:

#include

main(  )

{inti,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=6

B.m=2

C.m=4

D.m=3

有以下程序:

#include

main(  )

{inta=1,b=2;

for(;a<8;a++){b+=a;a+=2;)

printf("%d,%d\n",a,b);

程序运行后的输出结果是(  )。

A.9,18

B.8,11

C.7,11

D.10,14

22.有以下程序,其中k的初值为八进制数:

#include

main(  )

{intk=011;

printf{"%d\n",k++};

}

程序运行后的输出结果是(  )。

A.12

B.11

C.10

D.9

23.下列语句组中,正确的是(  )。

A.char*s;s="Olympic";

B.charsE73;s="Olympic";

C.char*S;s={¨Olympic"};

D.charsET3;s={"Olympic"};

24.以下关于return语句的叙述中正确的是(  )。

A.一个自定义函数中必须有一条return语句

B.一个白定义函数中可以根据不同情况设置多条return语句

C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

25.下列选项中,能正确定义数组的语句是(  )。

A.intnum[0..2008];

B.intnum[];

C.intN=2008;intnum[N];

D.#defineN2008;intnum[N];

26.有以下程序:

#include

voidfun(char*C,intd)

{*c=*c+1,d=d+1;

printf(%"c%,c",*c,d);

}

main(  )

{charb=’a’a=’A’;

fun(&b,a);printf(%"c,%c\n",b,a);

程序运行后的输出结果是(  )。

A.b,B,b,A

B.b,B,B,A

C.a,B,B,a

D.a,B,a,B

27.若有定义"int(*pt)[3];",则下列说法正确的是(  )。

A.定义了基类型为int的三个指针变量

B.定义了基类型为int的具有三个元素的指针数组pt

C.定义了一个名为*pt、具有三个元素的整型数组

D.定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组

28.设有定义"doublea[10],*s=a;",以下能够代表数组元素a[3]的是(  )。

A.(*s)[3]

B.*(s+3)

C.*s[3]

D.*s+3

29.有以下程序:

#include

main(  )

{inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;

for(i=o;i<5;i++)s=s+a[b[i]];

printf(”%d\n”,s);

程序运行后的输出结果是(  )。

A.6

B.10

C.11

D.15

30.有以下程序:

#include

main(  )

{intb[3][3]=(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+=b[i][b[j][i]];

printf("%d\n",t);

程序运行后的输出结果是(  )。

A.1

B.3

C.4

D.0

若有以下定义和语句:

chars[10]="abcd!

",*s2="\nl23\\";

Drintf("%d%d\n",strlen(sl),strlen(s2));

则输出结果是(  )。

A.55

B.105

C.107

D.58

32.有以下程序:

#include

#defineN8

voidfun(int*x,inti)

{*x=*(x+i);)

main(  )

{inta[N]={1,2,3,4,5,6,7,8},i;

fun(a,2);

for(i=0;i

{printf("Ha",a[i]);}

printf("\n");

程序运行后的输出结果是(  )。

A.1313

B.2234

C.3234

D.1234

33.有以下程序:

#include

intf(intt[],intn);

main(  )

{inta[4]={1,2,3,4},s;

s=f(a,4);printf("%d\n",s);

intf(intt[],intn)

{if(n>0)returnt[n-1]+f(t,n-1);

elsereturn0;

程序运行后的输出结果是(  )。

A.4

B.10

C.14

D.6

34.有以下程序:

#include

intfun(  )

{staticintx=1;

X*=2;returnX;

main(  )

{inti,S=1;

for(i=1;i<=2;i++)s=fun(  );

printf{¨%d\n",s);

程序运行后的输出结果是(  )。

A.0

B.1

C.4

D.8

35.有以下程序:

#include

#defineSUB(a)(a)-(a)

main(  )

{inta=2,b=3,c=5,d;

d=SUB(a+b)*C;

printf("%d\n",d);

程序运行后的输出结果是(  )。

A.0

B.-l2

C.-20

D.10

36.设有定义:

struetcomplex

{intreal,unreal;)datal={1,8},data2;

则以下赋值语句中错误的是(  )。

A.data2=datal;

B.data2={2,6};

C.data2.real=datal.real;

D.data2.real=datal.unreal;

37.有以下程序:

#include

#include

structA

{inta;charb[10];doubleC;);

voidf(structAt);

main(  )

{structAa={"1001,"ZhangDa",l098,0};

f(a);printf("%d,%S,%6.1f\n",a.a,a.b,a.c);}

voidf(structAt)

{t.a=1002;strcpy(t.b,"ChangRon9");t.c=1202.0;}

程序运行后的输出结果是(  )。

A.1001,ZhangDa,1098.0

B.1002,ChangRong,1202.0

C.1001,ChangRong,1098.0

D.1002,ZhangDa,1202.0

38.有以下定义和语句:

structworkers

{intnum;charname[20];charC;

struct

(intday;intmonth;intyear;)S;

};

structworkersw,*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

main(  )

{inta=2,b=2,C=2;

print{("%d\n",a/b&c);

}

程序运行后的输出结果是(  )。

A.0

B.1

C.2

D.3

40.有以下程序:

#include

main(  )

{FILE*fp;charstr[10];

fp=fopen("myfile,dat","");

{puts("abe",ip);fclose(fp);

fp=fopen("myfile.dat","a*");

fprintf(fp,"%d",28);

rewind(fp);

fscanf(fp,"%S",str);puts(str);

fclose(fp);

}

程序运行后的输出结果是(  )。

A.abc

B.28c

C.abc28

D.内类型不一致而出错

基本操作题(共18分)

请补充main(  )函数,该函数的功能是:

如果数组arr的前一个元素比后一个元素小,则把它保存在数组bb中并输出。

例如,若数组中的元素为:

“40,68,62,33,35,52,48,95,66,73”,则输出:

“40,33,35,48,66”。

注意:

部分源程序给出如下。

请勿改动函数(  )main和其他函数中的任何内容,仅在main(  )函数的横线上填入所编写的若干表达式或语句。

试题程序:

#include

#include

#defineMl0

voidmain(  )

{

inti,n=0;

intarr[M]=(40,68,62,33,35,52,48,95,66,73);

intbb[M];

system("CLS");

for(i=0;i<【1】;i++)

if(arr[i]

【2】;

printf("\n***displaybb***\n");

for(i=0;i

printf("bb[%d]=%2d",【3】);

}

程序改错题(共24分)给定程序中,函数proc(  )的功能是:

使数组中的元素的值缩小5倍。

请修改程序中的错误,使它能得出正确的结果。

注意:

不要改动main(  )函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#include

floatm[lO];

//****found****

intproc(void)

{

intj;

printf("Insubfuncaftercalling\n");

for(j=0;j<10;j++)

{

//****found****

printf("%f",m[j]%5);

}

}

voidmain(  )

{

inti;

printf("Inmainbeforecalling\n");

for(i=0;i<10;i++)

{

m[i]=i+20;

printf("%f",m[i]);

}

proc(  );

printf("\nlnmainaftercalling\n");

for(i=0;i<10;i++)

printf("%f",m[i]/5);

}

程序设计题(共18分)学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(  ),其功能是:

按分数的高低排列学生的记录,高分在前。

注意:

部分源程序给出如下。

请勿改动main(  )函数和其他函数中的任何内容,仅在函数proc(  )的花括号中填入所编写的若干语句。

试题程序:

#include

#defineMl6

typedefstruct

{

charnum[l0];

intS;

}

STREC:

voidproc(STRECa[])

{

inti,j;

STRECt;

for(i=1;i

排序*/

for(j=0;j

if(a[j].s

的记录,高分在前*/

{t=a[j];a[j]=a[j+1];a[j+1]=t;)

}

voidmain(  )

{

STRECstu[M]={{"GA005",85),{"GA003",76},

{"GA002",69},{"GA004",85),{"GA001",91),

{"GA007",72),{"GA008",64),{"GA006",87),

{"GA015",85),{"GA013",91),{"GA012",64),

{¨GA014",91),{"GA011",66),{"GA017",64},

{"GA018",64),{"GA016",72}};

inti;

proc(stu);

printf("Thedataaftersorted:

\n");

for(i=0;i

{

if(i%4==0)

//每行输出4个学生记录

printf("n");

printf("%s%4d",stu[i],num,stu[i].s);

}

printf("\n");

}

选择题

1.C。

【解析】-分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。

2.D。

【解析】数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。

数据的存储结构(也称数据的物理结构)是指数据的逻辑结构在计算机存储空间中的存放形式。

通常一种数据的逻辑结构根据需要可以表示成多种存储结构。

3.C。

【解析】编辑软件和浏览器属于工具软件,教务系统是应用软件。

4.A。

【解析】调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。

调试是测试之后的活动。

5.D。

【解析】数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。

6.B。

【解析】开发阶段在开发初期分为需求分析、总体设计、详细设计3个阶段,在开发后期分为编码、测试两个子阶段。

7.C。

【解析】模式描述语言(DataDescriptionLanguage,DDL)来描述、定义的,体现、反映了数据库系统的整体观。

8.D。

【解析】一个数据库由一个文件或文件集合组成。

这些文件中的信息可分解成一个个记录。

9.C。

【解析】E-R(Entity—Relationship)图为实体一联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。

10.D。

【解析】选择是建立一个含有与原始关系相同列数的新表,但是行只包括那些满足某些特定标准的原始关系行。

11.B。

【解析】c语言程序是由主函数和若干子函数构成的,可以嵌套使用。

主函数调用子函数,子函数在定义时是并列的,子函数可相互调用或被多次调用。

12.B。

【解析】C语言中的变量必须在使用前定义,注释不记入程序,只是作为一种解释程序的标识,方便其他用户修改及查看。

13.D。

【解析】标识符主要由英文字母、数字和下划线构成,但开头字符一定是字母或下划线。

14.C。

【解析】运算符%要求两个运算对象都为整型。

C中a为double型,不符合要求。

15.C。

【解析】当程序调用9etchar时,程序就等着用户接键。

用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区中)。

如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。

也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓)中区中的字符读完为后,才等待用户按键。

因此,程序中c的值为输入的第一个回车符。

16.D。

【解析】C语言中没有逻辑类型。

17.A。

【解析】由于a==l和a!

=1两者互斥,即总有一个为真,因此二者的或也必定为真。

18.B。

【解析】题中当a的值为l时,关系表达式a==l的值为真,即1,因此程序将跳转到easel执行a++操作,与题干程序刚好相反。

19.c。

【解析】条件运算符(?

)是C语言中唯一的一个三目运算符,它是对第一个表达式做真/假检测,然后根据结果返回两个表达式中的一个作为运算的结果。

<表达式1>?

<表达式2>:

<表达式3>。

在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值。

20.A。

【解析】本题考查了多重for循环。

当(i*j)>3时,跳出循环,本题中i=1,j=3,i*J后值为3,所以执行下边语句:

m*=i+j,也可写成m=m*i+j,这时要注意优先级,所以m的值为6。

D。

【解析】第一次执行循环前,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,跳出循环。

22.D。

【解析】八进制数k=011得十进制值为9,因此题中输出的是k的十进制值,输出完成后才执行k++操作。

23.A。

【解析】给字符串数组赋值时,要先定义数组长度,然后再赋值。

可以只给部分元素赋初值,当(  )中值的个数少于元素个数时,只给前面部分元素赋值。

数组的下标是从0开始的,所以s[7]代表从s[0]到s[6]七个元素。

其格式可以写成:

char数组名[常量]={’字符’,’字符’

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2