计算机二级C语言考前密卷Word文档格式.docx

上传人:b****1 文档编号:5803615 上传时间:2023-05-05 格式:DOCX 页数:22 大小:22.75KB
下载 相关 举报
计算机二级C语言考前密卷Word文档格式.docx_第1页
第1页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第2页
第2页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第3页
第3页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第4页
第4页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第5页
第5页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第6页
第6页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第7页
第7页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第8页
第8页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第9页
第9页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第10页
第10页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第11页
第11页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第12页
第12页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第13页
第13页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第14页
第14页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第15页
第15页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第16页
第16页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第17页
第17页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第18页
第18页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第19页
第19页 / 共22页
计算机二级C语言考前密卷Word文档格式.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机二级C语言考前密卷Word文档格式.docx

《计算机二级C语言考前密卷Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言考前密卷Word文档格式.docx(22页珍藏版)》请在冰点文库上搜索。

计算机二级C语言考前密卷Word文档格式.docx

  A)forchinato

  B)long_123short56_do

  C)voidunion_342

  D)text.txt_023_3ew

  (15)下列表达式中,结果为5的是

  A)6*5%6

  B)5*-2+15

  C)5+75

  D)6+-2/3

  (16)下列常量中,为不合法的实型常量表示的是

  A).0032

  B)0.0

  C)0.3242E8

  D).E3

  (17)关于C语言的主函数描述正确的是

  A)C程序可以有多个main函数

  B)C程序必有一个而且只能有一个main函数

  C)C程序可以没有main函数

  D)C程序的执行不一定在main函数开始执行

  (18)已知inta=1,b=-1;

则语句printf("

%d\n"

(a--,++b));

的输出结果是

  A)-1

  C)1

  D)语句错误

  (19)已知inta,b;

doublec;

则以下语句中错误的函数调用是

  A)scanf("

%d,%x,%lf"

&

a,&

b,&

c);

  B)scanf("

%d,%d,%le"

  C)scanf("

%o,%x,%o"

b);

  D)scanf("

%d,%o,%e"

  (20)已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&

&

++z;

后,表达式x+y的值为

  A)1

  B)2

  C)3

  D)4

(21)若intk=8;

则执行下列程序后,变量k的正确结果是

  main()

  {intk=8;

  switch(k)

  {case9:

k+=1;

  case10:

  case11:

break;

  default:

}

  printf("

k);

  A)12

  B)11

  C)10

  D)9

  (22)若inti,j;

,则for(i=j=0;

i<

10&

j<

8;

i++,j+=3)控制的循环体执行的次数是

  A)9

  B)8

  D)2

  (23)下列程序的输出结果是

  #include"

stdio.h"

  {inti=6;

  while(i--)

%d"

--i);

\n"

);

  A)531

  B)420

  C)654321

  D)死循环

  (24)阅读下列程序,则执行结果是

  {inta=0,b=0,c=0,i;

  for(i=0;

4;

i++)

  switch(i)

  {case0:

a=i++;

  case1:

b=i++;

  case2:

c=i++;

  case3:

i++;

%d,%d,%d,%d\n"

a,b,c,i);

  A)0,1,3,4

  B)1,2,3,4

  C)0,1,2,5

  D)0,2,3,4

  (25)下面程序的运行结果是

  {intj,i,k=0;

  for(j=50;

=60;

j++)

  {if(!

(k))printf("

  for(i=2;

i  if(i>

=j-1){printf("

j);

  k++;

}}}

  A)5359

  B)5953

  C)3595

  D)9535

(26)已知charch=′C′;

则以下表达式的值是

  ch=(ch>

=′A′&

ch<

=′Z′)?

(ch+32):

ch;

  A)A

  B)a

  C)Z

  D)c

  (27)以下描述错误的是

  A)C程序中,函数可以直接或间接的调用自己

  B)函数调用时,函数名必须与所调用的函数名字完全一致

  C)函数说明语句中的类型必须与函数返回值的类型一致

  D)实参数可以与形参个数不一致

  (28)阅读下面程序,则执行后的结果为

  {fun3(fun1(),fun2());

  fun1()

  {intk=20;

  returnk;

  fun2()

  {inta=15;

  returna;

  fun3(inta,intb)

  {intk;

  k=(a-b)*(a+b);

  A)0

  B)184

  C)175

  D)编译不通过

  (29)阅读下面程序,则执行后的输出结果为

  fun(inta,intb)

  {ints;

  s=a*b/2;

s);

  {inta=10,b=16;

  fun(a,b);

  A)10

  B)16

  C)160

  D)80

(30)阅读下面程序,则程序执行后的结果为

  {inta=4,b=6,c=7;

  doubled,fun(int,int,int);

  d=fun(a,b,c);

%lf\n"

d);

  doublefun(inta,intb,intc)

  {doubles;

  s=a%b*c;

  returns;

  A)27

  B)27.000000

  C)28

  D)28.000000

  (31)下列不合法的指针变量的定义是

  A)int*_k;

  B)char*_245;

  C)int*p;

  D)double*5_is

  (32)下列关于指针变量赋空值的说法错误的是

  A)当赋空值的时候,变量指向地址为0的存储单元

  B)赋值语句可以表达为变量名=′\0′;

  C)赋值语句可以表达为变量名=0;

  D)一个指针变量可以被赋空值

  (33)阅读下面程序,则执行后输出的结果为

  voidfun(int*a,int*b)

  {intm;

  m=(*a+*b)*(*a+*b);

  m+=(*a-*b)*(*a-*b);

m);

  {inta=5,b=6,*x=&

a,*y=&

b;

  fun(x,y);

  A)120

  B)121

  C)122

  D)123

  (34)阅读下面程序,则输出结果是

  {intc=20,d=25;

  *a=c/3;

  *b=d/5;

  {inta=3,b=5;

  fun(&

%d,%d\n"

a,b);

  A)6,5

  B)5,6

  C)20,25

  D)3,5

(35)以下对一维数组c进行正确的定义初始化的语句是

  A)intc[10]=0;

  B)intc[10]={0}*10;

  C)intc[1]={0,0,0,0,0,0,0};

  D)intc[10]={0};

  (36)以下二维数组c的定义形式是

  A)intc[3][]

  B)floatc[3,4]

  C)doublec[3][4]

  D)floatc(3)(4)

  (37)阅读下列程序,则执行后输出的结果是

  intk=1;

  {fun(k);

  fun(intk)

  {k++;

  k=k*6;

  C)6

  D)12

  (38)已知#defineM2;

的宏定义,执行语句k=M*5;

后,k的值是

  B)5

  C)2

  D)以上答案都不对

  (39)已知:

intc[3][4];

则对数组元素引用正确的是

  A)c[1][4]

  B)c[1.5][0]

  C)c[1+0][0]

  D)以上表达都错误

(40)现有如下程序段

  voidfun(int*a,int*b,int*c)

  {*c=*a+*b;

  {inta[2]={12,23},c;

  fun(a,a+1,&

c);

  则程序的输出结果为

  A)23

  B)12

  C)0

  D)35

  (41)若有以下语句,则正确的描述是

  chara[]="

toyou"

;

  charb[]={′t′,′o′,′y′,′o′,′u′};

  A)a数组和b数组的长度相同

  B)a数组长度小于b数组长度

  C)a数组长度大于b数组长度

  D)a数组等价于b数组

  (42)已知:

chara[15],b[15]={"

Ilovechina"

};

则在程序中能将字符串Ilovechina赋给数组a的正确语句是

  A)a="

  B)strcpy(b,a);

  C)a=b;

  D)strcpy(a,b);

  (44)阅读下面程序,则执行后的结果为

  {char*str="

abcdefghijklmnopq"

  while(*str++!

=′e′);

%c\n"

*str);

  A)f

  C)e

  D)q

(45)现有如下程序段

  intfun(intk,int*m)

  {if(k%3)*m=k*k;

  else*m=k/3;

  {int(*p)(int,int*),m;

  p=fun;

  (*p)(78,&

m);

  则程序段的输出结果为

  A)24

  B)25

  C)26

  D)27

  (46)阅读下列程序,则执行后的输出结果为

  fun(intx)

  {if(x/2>

0)fun(x/2);

x%2);

  {fun(20);

  putchar(′\n′);

  A)11100

  B)10100

  C)10101

  D)10110

  (47)阅读如下程序段,则执行后程序的输出结果是

  #include

  {structa{intx;

inty;

}num[2]={{20,5},{6,7}};

num[0].x/num[0].y*num[1].y);

  B)28

  C)20

  D)5

  (48)阅读程序段,则执行后的输出结果为

  typedefunion{longx[2];

  inty[4];

  charz[8];

}atx;

  typedefstructaa{longx[2];

}stx;

  {printf("

union=%d,structaa=%d\n"

sizeof(atx),sizeof(stx));

  A)union=8,structaa=8

  B)union=8,structaa=24

  C)union=24,structaa=8

  D)union=24,structaa=24

(49)阅读下列程序段

  typedefstructaa

  {inta;

  structaa*next;

}M;

  voidset(M*k,inti,int*b)

  {intj,d=0;

  for(j=1;

j  {k[j-1].next=&

k[j];

  k[j-1].a=b[d++];

}

  k[j].a=b[d];

  {Mk[5],*p;

  intd[5]={23,34,45,56,67};

  set(k,5,d);

  p=k+1;

table);

  则下面的表达式在table处,能使程序执行后,打印输出数据45的是

  A)p->

next->

a

  B)++p->

  C)(*p).a++

  D)p++->

  (50)阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已经存在)

  voidmain()

  {FILE*fp;

  inta[10],*p=a;

  fp=fopen("

a123.txt"

"

w"

  while(strlen(gets(p))>

0)

  {fputs(a,fp);

  fputs("

fp);

  fclose(fp);

  A)从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中

  B)从键盘输入若干行字符,取前2行写入文本文件a123.txt中

  C)从键盘输入若干行字符,第一行写入文本文件a123.txt中

  D)从键盘输入若干行字符,依次写入文本文件a123.txt中

二、填空题

  

(1)排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【1】和选择排序等。

  【命题目的】需要考生记住常见的排序方法。

  【解题要点】常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。

  【考点链接】常见的排序方法及其作用机制和区别。

  

(2)当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。

这种情况称为【2】。

  【命题目的】本题考查了队列的基本性质。

  【解题要点】入队运算是指在循环队列的队尾加入一个新元素。

这个运算有两个基本操作:

首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;

然后将新元素插入队尾指针指向的位置。

当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。

  (3)【3】是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。

  【命题目的】本题考查了面向对象技术中的一些基本概念。

  【解题要点】面向对象技术中包括以下几个基本概念,即对象、类、方法、消息、继承和封装,其中封装是一种信息隐蔽技术,目的在于将对象的使用者对象的和设计者分开。

  (4)为了便于对照检查,测试用例应由输入数据和预期的【4】两部分组成。

  【命题目的】本题主要考查测试的步骤。

  【考点链接】测试的基本方法和步骤。

  (5)【5】是从二维表列的方向进行的运算。

  【命题目的】本题考查了关系运算的基本知识。

  【解题要点】在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交、差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。

前者是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的;

后者主要是从二维表的列的方向来进行的运算。

两者统称为关系代数。

  (6)定义inta=5,b=20;

若执行语句printf("

++a*--b/5);

后,输出的结果为【6】。

  解析:

++和--做前缀使用的时候,先对变量进行增1或减1,之后进行其他的运算,之后按照同级运算符自左向右依次运算。

  (7)执行程序时的输入为123456789,则程序的运行结果为【7】。

  {inta,b;

  scanf("

-%*2d"

a-b);

按照函数scanf中的格式控制符的描述:

"

-"

控制前2个数字赋给变量a,变量a的值为12,"

控制将随后的1个数字作为输入数据存入变量b中,变量b的值为5,所以随后的输出为7。

注意:

在%和格式控制符号之间加*号,表示的是跳过相对应的输入数据。

  (8)阅读下面程序,则在执行时候的输出为【8】。

  {intx=1,y=2,z=0;

  if(x=2)z=x,x=y,y=z;

x,y);

if语句的执行过程为:

首先计算紧跟在if后面一对圆括号中的表达式,如果表达式的值为非零,则执行其后的if子句,然后去执行if语句后的下一个语句,如果表达式为零,则跳过if子句直接执行if语句后的下一个语句,if(x=2)的值为真,即x的值为2。

  (9)语句printf("

′H′-′0′+64);

的执行结果为【9】。

在C程序中的字符量可参与任何整数运算,在运算的时候都是以ASCII值进行的。

(10)阅读下面程序,则程序的执行结果为【10】。

  {inta=10;

  fun(a);

a);

  {x=50;

函数调用的时候,函数名字必须与所调用的函数名完全一致,形参与实参类型要一致,在没有给出函数返回值类型的情况下,默认为整形,当返回值为整型放到主函数后面时,可以不需要事先说明就调用这个函数。

  (11)以下程序的输出结果是【11】。

  intfun(intx,inty,int*p,int*q)

  {*p=x*y;

  *q=x/y;

  {inta,b,c,d;

  a=4;

b=3;

  fun(a,b,&

c,&

d);

c,d);

通过地址传递可以在被调函数中对调用函数中的变量进行引用,通过地址的传递,在经过函数调用以后,改变了c,d变量的值。

  (12)下面程序是求出数组arr的两条对角线上元素之和,请填空。

  {intarr[3][3]={2,3,4,8,3,2,7,9,8},a=0,b=0,i,j;

3;

  for(j=0;

  if(【12】)a=a+arr[i][j];

  for(【13】;

j>

=0;

j--)

  if(【14】)

  b=b+arr[i][j];

由于是求对角线元素的和,所以【12】是判断是否为对角线元素的,填i==j这个判断条件;

对于次对角线的求和,初始化的时候应该是从数组的列最大开始,由于判断条件是j>

=0,所以初始化时候应该为最大值减1,即j=2,所以【13】应填j=2;

【14】是对次对角线的判断,所以填i+j==2。

(13)下面程序的功能是:

对字符串从小到大进行排序并输出,请填空。

string.h"

  sort(char*a[],intn)

  {inti,j;

  char*p;

=n-1;

【15】;

  if(【16】>

0)

  {p=a[i];

  a[i]=a[i+1];

  a[i

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

当前位置:首页 > 人文社科 > 法律资料

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

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