计算机二级c语言题库及参考答案Word文档格式.docx

上传人:b****5 文档编号:19940126 上传时间:2023-01-12 格式:DOCX 页数:16 大小:21.67KB
下载 相关 举报
计算机二级c语言题库及参考答案Word文档格式.docx_第1页
第1页 / 共16页
计算机二级c语言题库及参考答案Word文档格式.docx_第2页
第2页 / 共16页
计算机二级c语言题库及参考答案Word文档格式.docx_第3页
第3页 / 共16页
计算机二级c语言题库及参考答案Word文档格式.docx_第4页
第4页 / 共16页
计算机二级c语言题库及参考答案Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

计算机二级c语言题库及参考答案Word文档格式.docx

《计算机二级c语言题库及参考答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机二级c语言题库及参考答案Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

计算机二级c语言题库及参考答案Word文档格式.docx

  B.(3!

=4)>

2

  C.3<

=4‖3

  D.(3<

4)=1

  19.假设以下选项中的变量全部为整型变量,且已正确定义并赋值,那么语法正确的switch语句是()。

  A.switch(a+9)

  {casecl:

y=a-b;

  casec2:

y=a+b;

  }

  B.switcha*b

  {casel0:

x=a+b;

  default:

  C.switch(a+b)

  {casel:

case3:

break;

  case0:

case4:

  D.switch(a*a+b*b)

  {default:

  case3:

  case2:

  20.有以下程序:

  #include

  main()

  {inta=-2,b=0;

  while(a++&

&

++b);

  printf("

%d,%d\n"

,a,b);

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

  A.1,3

  B.0,2

  C.0,3

  D.1,2

  21.设有定义:

intx=o,*P;

,立刻执行以下语句,正确的语句是()。

  A.p=x;

  B.*p=x;

  C.D=NULL;

  D.*p=NULL;

  22.以下表达中正确的选项是()。

  B.空字符串不占用内存,其内存空间大小是0

  23.有以下程序:

  {rhara=’H’;

  a=(a>

=’A’&

a<

=’2’)?

(a-’A’+’a’):

a;

%c\n"

,a);

  24.有以下程序:

  intf(intx);

  {inta,b=0;

  for(a=0;

3;

a++)

  {b=b+f(a);

putchar(’A’+b);

}

  intf(intx)

  {returnx*xl;

}

  25.设有定义:

intx[2][3];

,那么以下关于二维数组X的表达错误的选项是()。

  A.x[0]可看做是由3个整型元素组成的一维数组

  B.x[0]和x[l]是数组名,分别代表不同的地址常量

  D.可以用语句x[o]=0;

为数组所有元素赋初值0

  26.设变量P是指针变量,语句P=NULL;

是给指针变量赋NULL值,它等价于()。

  A.p="

"

;

  B.p="

0"

  C.p=0;

  D.p="

  27.有以下程序:

  {inta[]={10,20,30,40},*p=a,j;

  for(i=0;

i<

=3;

i++){a[i]=*P;

p++;

oAd\n"

,a[2]);

  28.有以下程序:

  #defineN3

  voidfun(inta[][N],intb[])

  {inti,j;

i

  for(j=i;

j

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

  fun(x,y);

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

  A.2,4,8,

  B.3,6,9,

  C.3,5,7,

  D.1,3,5,

  29.有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):

  {chara[10]="

abc"

,b[10]="

012"

,c[10]="

xyz"

  strcpy(a+1,b+2);

  puts(strcat(a,c+1));

  30.以下选项中,合法的是()。

  A.charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’};

  B.charstr4;

str4="

helloworld"

  C.charname[10];

name="

china"

  D.charstrl[5]="

pass"

,str2[6];

str2=strl;

  31.有以下程序:

  {char*s="

[2]34"

intk=0,a=0;

  whil(s[k+1]!

=’\o’)

  {k++;

  if(k%2=o){a=a+(s[k]-’0’+1);

continue;

  a=a+(s[k]-’0’);

k=%da=%d\n"

,k,a);

  A.k=6a=11

  B.k=3a=14

  C.k=4a=12

  D.k=5a=15

  32.有以下程序:

  {chara[5][10]={"

one"

,"

tw0"

three"

four"

five"

};

  inti,j;

  chart:

4;

i++)

  for(j=i+1;

j<

5;

j++)

  if(a[i][O]>

a[j][0])

  {t=a[i][O];

a[i][O]=a[j][O];

a[j][O]=t;

  puts(a[1]);

  33.有以下程序:

  inta=1,b=2:

  voidfunl(inta,intb)

  {printf("

%d%d"

  voidfun2()

  {a=3;

b=4;

  {funl(5,6);

fun2();

%d%d\n"

  A.1256

  B.5634

  C.5612

  D.3456

  34.有以下程序:

  voidfunc(intn)

  {staticintnum=1);

  num=num+n;

printf("

%d"

,num);

  {funo(3);

func(4);

n"

);

  A.48

  B.34

  C.35

  D.45

  35.有以下程序:

voidfun(int*pl,int*p2,int*s)

 {s=(int*)malloc(sizeof(int));

  *s=*pl+*p2;

  free(s);

  {inta=1,b=40,*q=&

  fun(&

b,q);

%d\n"

,*q);

  36.有以下程序:

  structSTU{charname[9];

charsex;

intscore[2];

  voidf(structSTUa[])

  {structSTUb={"

Zhao"

,’m’,85,90);

  a[1]=b;

  {structSTUc[2]={{"

Qian"

,’f’,95,92},{"

Sun"

,’m’98,99}};

  f(c);

  printf(〞%s,%c,%d,%d,¨

,c[o].name,c[o].sex,c[o].score[o],c[o].score[1]);

%s,%c,%d,%d\n"

,c[1].name,c[1].sex,c[1].score[o],c[1].score

  [1]);

  A.Zhao,m,85,90,Sun,m,98,99

  B.Zhao,m,85,90,Qian,f,95,92

  C.Qian,f,95,92,Sun,m,98,99

  D.Qian,f,95,92,Zhao,m,85,90

  37.以下表达中错误的选项是()。

  B.typedef说明的新类型名必须使用大写字母,否那么会出编译错误

  38.以下表达中错误的选项是()。

  A.函数的返回值类型不能是结构体类型,只能是简单类型

  D.只要类型相同,结构体变量之间可以整体赋值

  39.假设有定义语句intb=2;

,那么表达式(b<

<

2)/(3‖b)的值是()。

  40.有以下程序:

  {FILE*fp;

inti,a[6]={1,2,3,4,5,6};

  fp=fopen("

d2.dat"

w+"

  for=(i=o;

6;

,i++)fpintf(fp,"

,a[i]);

  rewind(fp);

i%6;

i++)fscanf(fp,"

a[5-i]);

  fclose(fp);

i++)printf("

%d,"

  A.4,5,6,1,2,3,

  B.1,2,3,3,2,1,

  C.1,2,3,4,5,6,

  D.6,5,4,3,2,1,

  二、根本操作题(共18分)

  str是一个由数字和字母字符组成的字符串,由变量num传人字符串长度。

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

把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。

  例如,str="

abcl23de45f967"

,结果为:

l234567。

  注意:

局部源程序给出如下。

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

  试题程序:

  #defineM80

  intbb[M];

  intproc(charstr[],intbb[],intnum)

  {

  inti,n=0;

  if(【1】)

  bb[n]=【2】;

  n++;

  return【3】;

  voidmain()

  charstr[M];

  intnum=0,n,i;

Enterastring:

\n"

  gets(str);

  while(str[num])

  num++:

  n=proc(str,bb,num);

\nbb="

  三、程序改错题(共24分)

  以下给定程序中,函数proc()的功能是:

读入一个字符串(长度<

20),将该字符串中的所有字符按ASCIl码升序排序后输出。

  例如,输入opdye,那么应输出deopy。

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

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

  #include%string.h>

  #include%stdlib.h>

  //****found****

  intproc(charstr[])

  charC;

  unsignedi,j;

  c=str[j]:

  str[j]=str[i++];

  str[i]=C;

  charst/[81];

  system("

CLS"

\nPleaseenteracharacter

  string:

\nknBeforesorting:

\n%s"

,str);

  proc(str);

\nAftersortingdecendingly:

\n

  %S"

  四、程序设计题(共18分)

  请编写函数proc(),它的功能是计算:

s=(In

(1)4+ln

(2)4+ln(3)+…

  在C语言中可调用log(n)函数求ln(n)。

  例如,假设m的值为30,那么proc()函数值为8.640500。

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

  #inclllde

  doubleproc(intm)

%f\n"

,proc(30));

【参考答案及专家详解】

  一、选择题

  1.B。

【解析】Q(1:

35)那么队列的存储空间为35;

对空条件:

front=rear(初始化时:

front=rear),队满时:

(rear+1)%n==front,n为队列长度(所用数组大小),因此当执行一系列的出队与入队操作,front=rear.那么队列要么为空,要么为满。

  2.B。

【解析】栈是先进后出,因此,栈底元素是先入栈的元素,栈顶元素是后入栈的元素。

  3.C。

【解析】数据的逻辑结构是描述数据之间的关系,分两大类:

线性结构和非线性结构。

线性结构是n个数据元素的有序(次序)集合,指的是数据元素之间存在着“一对一〞的线性关系的数据结构。

常用的线性结构有:

线性表,栈,队列,双队列,数组,串。

非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后驱。

常见的非线性结构有:

树(二叉树等),图(网等),广义表。

  4.D。

【解析】单一的数据结构——关系,现实世界的实体以及实体间的各种联系均用关系来表示。

数据的逻辑结构——二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。

但是关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。

  5.A。

【解析】部门到职员是一对多的,职员到部门是多对一的,因此,实体部门和职员间的联系是l:

m联系。

  6.C。

【解析】选择:

是在数据表中给予一定的条件进行筛选数据。

投影:

是把表中的某几个属性的数据选择出来。

连接:

有自然连接、外连接,内连接等,连接主要用于多表之间的数据查询。

并:

与数学中的并是一样的。

两张表进行并操作,要求它们的属性个数相同并且需要相容。

  7.C。

【解析】数据字典(DD)是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

  8.B。

【解析】《软件可行性分析报告》是软件可行性研究的依据。

  9.A。

【解析】黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测等。

白盒测试的主要方法有逻辑驱动、路径测试等,主要用于软件验证。

  10.A。

【解析】软件设计阶段的主要任务包括丙个:

一是进行软件系统的可行性分析,确定软件系统的建设是否值得,能否建成。

二是进行软件的系统分析,了解用户的需求,定义应用功能,详细估算开发本钱和开发周期。

  11.B。

【解析】C语言是一种成功的系统描述语言,具有良好的移植性,每个后缀为.C的C语言源程序都可以单独进行编译。

  12.A。

【解析】用户标识符不能以数字开头,C语言中标识符是区分大小写的,关键字不能用做用户标识符。

  13.B。

【解析】当用指数形式表示浮点数据时,E的前后都要有数据,并且E的后面数要为整数。

  14.A。

【解析】C语言是由函数组成的,函数是C语言的根本单位。

所以可以说C语言主要是借助定义函数来实现程序模块化。

  15.C。

【解析】在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。

符号常量在使用之前必须先定义,其一般形式为:

#define标识符常量。

  16.C。

【解析】在输入3和5之间除逗号外不能有其他字符。

  17.C。

【解析】Char类型数据占1个字节。

  18.B。

【解析】在一个表达式中,括号的优先级高,先计算3!

=4,为真即是l,1>

2为假。

  19.D。

【解析】选项A,当cl和c2相等时,不成立;

选项B,a*b要用括号括起来;

选项C,case与后面的数字用空格隔开。

  20.D。

【解析】输出的结果是:

-1,10,21,2

  21.C。

【解析】如果没有把P指向一个指定的值,*P是不能被赋值的。

定义指针变量不赋初始值时默认为null。

  22.D。

【解析】比拟两个字符串大小用函数strcomp(S,t),空字符串有结束符,所以也要占用字节,两个双引号表示的是空字符串。

  23.D。

【解析】多元运算符问号前面表达式为真,所以(a-’A’+’a’)赋值给a,括号里的运算是把大写字母变成小写字母,所以答案应为选项D。

  24.B。

【解析】第一次循环时,b=1,输出结果为B;

  第二次循环时,b=3,输出结果为D;

  第三次循环时,b=8,输出结果为I。

  25.D。

【解析】x[0]是不能赋值的。

  26.C。

【解析】在C语言中null等价于数字0。

  27.A。

【解析】For循环结束后,数组a的值并没有变化,由于数组是由0开始,所以a[2]的值是30。

  28.B。

【解析】Fun函数功能是把数组a的每一行的最大值赋给b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9。

  29.C。

【解析】第一次执行字符串的复制函数a的值是a2,第二次执行的是字符串的连接函数,所以运行结果为a2yz。

  30.A。

【解析】选项B不能把一个字符串赋值给一个字符变量,选项c和D犯了同样的错误是把字符串赋给了数组名。

  31.C。

【解析】输出结果:

k=1a=2

  k=2a=4

k=3a=7

  k=4a=12

  32.A。

【解析】For循环完成的功能是把二维数组a的第一列的字母按从小到大排序,其他列的字母不变。

  33.B。

【解析】Funl是输出局部变量的值,fun2是把全局变量的值改成3和4,所以输出的结果是5634。

  34.A。

【解析】第一调用func函数时输出4,第二次调用func函数时num的值并不会释放,仍然是上次修改后的值4,第二次调用结果为8,所以输出结果是48。

  35.C。

【解析】Fun函数功能是新开辟内存空间存放a和b的地址,q的地址并没有变化,所以应该还是指向地址a。

  36.D。

【解析】F函数是为结构体数组的第二个数赋值,数组的第一个数没有变化,所以正确答案应选D。

  37.B。

【解析】用typedef说明的类型不是必须用大写,而是习惯上用大写。

  38.A。

【解析】函数返回值类型可以是简单类型和结构体类型。

  39.B。

【解析】2的二进制数为010,移两位后的二进制数为01000,转成十制数为8,(3||2)为真即1,8/1=8,所以结果为8。

  40.D。

【解析】这个是对文件的操作,把数组的数写到文件里,然后再从文件里倒序读出。

所以输出结果为6,5,4,3,2,1。

  二、根本操作题程序填空题

  【1】str[i]>

=’0’&

str[i]<

=’9’【2】str[i]-’O’【3】n

  【解析】题目中要求把字符串str中的数字字符转换成数字并存放到整型数组bb中。

首先,应判断字符串str中每个字符是否是数字字符。

因此,【1】处填“str[i]>

=’9’〞将每一个数字字符转化为数字放在整型数组bb中,因此,【2】处填“str[i]-’0’;

由函数proc()可知,变量n中存放整型数组bb中的元素个数,最后要返回到主函数当中,因此,【3】处填’n’。

  三、程序改错题

  

(1)错误:

intproc(charstr[])

  正确:

voidproc(charstr[])

  

(2)错误:

str[j]=str[i++];

str[j]=str[i];

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

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1