试题

计算机二级《C语言》真题练习

时间:2025-04-30 19:27:45 嘉璇 试题 我要投稿

计算机二级《C语言》真题练习

  在各领域中,我们需要用到练习题的情况非常的多,只有认真完成作业,积极地发挥每一道习题特殊的功能和作用,才能有效地提高我们的思维能力,深化我们对知识的理解。一份好的习题都是什么样子的呢?下面是小编为大家收集的2016计算机二级《C语言》真题练习,供大家参考借鉴,希望可以帮助到有需要的朋友。

  计算机二级《C语言》真题练习 1

  (1)下列叙述中正确的是

  A)栈是“先进先出”的线性表

  B)队列是“先进先出”的线性表

  C)循环队列是非线性结构

  D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构

  (2)支持子程序调用的数据结构是

  A)栈 B)树 C)队列 D)二叉树

  (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是

  A)10 B)8 C)6 D)4

  (4)下列排序方法中,最坏情况下比较次数最少的是

  A)冒泡排序

  B)简单选择排序

  C)直接插入排序

  D)堆排序

  (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是

  A)编译软件

  B)操作系统

  C)教务管理系统

  D)汇编程序

  (6)下面叙述中错误的是

  A)软件测试的目的是发现错误并改正错误

  B)对被调试的程序进行“错误定位”是程序调试的必要步骤

  C)程序调试通常也称为Debug

  D)软件测试应严格执行测试计划,排除测试的随意性

  (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是

  A)提高耦合性降低内聚性有利于提高模块的独立性

  B)降低耦合性提高内聚性有利于提高模块的独立性

  C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度

  D)内聚性是指模块间互相连接的紧密程度

  (8)数据库应用系统中的核心问题是

  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赋初值0

  B)这时k中值无定义

  C)系统将自动给k赋初值-1

  D)这时k中无任何值

  (13)以下选项中,能用作数据常量的是

  A)o115 B) 0118 C)1.5e1.5 D) 115L

  (14)设有定义:int x=2;,以下表达式中,值不为6的是

  A) x*=x+1

  B) x++,2*x

  C)x*=(1+x)

  D)2*x,x+=2

  (15)程序段:int x=12;

  double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是

  A)123.141593

  B)12

  3.141593

  C)12,3.141593

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

  main()

  {int x;

  scanf(“%d”,&x);

  if(x<=3); else

  if(x!=10)

  printf(“%d\n”,x);

  }

  程序运行时,输入的值在哪个范围才会有输出结果

  A)不等于10的整数

  B)大于3且不等于10的整数

  C)

  大于3或等于10的整数

  D)小于3的整数

  (19)有以下程序

  #include

  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,3

  B)1,3,2

  C)1,3,3

  D)3,2,1

  (21)有以下程序

  #include

  main()

  {char

  *s=(“ABC);

  do

  {printf(“%d”,*s%10);s++;

  }while(*s);

  }

  注意,字母A的ASCII码值为65。程序运行后的输出结果是

  A)5670

  B)656667

  C)567

  D)ABC

  (22)设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是

  A)n=0;while((ch=get))!=’\n’)n++;

  B) n=0;while(get)!=’\n’)n++;

  C)for(n=0; get)!=’\n’;n++);

  D)n=0;for(ch=get);ch!=’\n’;n++);

  (23)有以下程序

  #include

  main()

  { int a1,a2;char c1,c2;

  scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

  printf(“%d,%c,%d,%c”,&1,c1,a2,c2);

  }

  若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的`值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下

  代表空格,代表回车)

  A)12a34b

  B)12

  a

  34

  b

  C)12,a,34,b

  D)12

  a34

  b

  (24)有以下程序

  #include

  int f(int x,int y)

  {return()y-x)*x);}

  main()

  {int a=3,b=4,c=5,d;

  d=f(f(a,b),f(a,c));

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

  }

  程序运行后的输出结果是

  A)10

  B)9

  C)8

  D)7

  (25)有以下程序

  #include

  void fun(char

  *s)

  {while(*s)

  { if(*s%2==0)

  printf(“%c”,*s);

  s++;

  }

  }

  main()

  { char

  a[]={“good”};

  fun(a);printf(“\n”);

  }

  注意:字母a的ASCⅡ码值为97,程序运行后的输出结果是

  A)d

  B)go

  C)god

  D)good

  (26)有以下程序

  #include

  void fun( int *a,int *b)

  {int *c;

  c=a;a=b;b=c;

  }

  main()

  {int x=3,y-5,*P=&x,*q=&y;

  fun(p,q);printf(“%d,%d,”,*p,*q);

  fun(&x,&y);printf(“%d,%d\n”,*p,*q);

  }

  程序运行后的输出结果是

  A)3,5,5,3

  B)3,5,3,5

  C)5,3,3,5

  D)5,3,5,3

  (27)有以下程序

  #include

  viod f(int *p,int *q);

  main()

  { int m=1,n=2,*r=&m;

  f(r,&n);printf(“%d,%d”,m,n);

  }

  void f(int *p,int *q)

  {p=p+1;*q=*q+1;}

  程序运行后输出的结果是

  A)1,3

  B)2,3

  C)1,4

  D)1,2

  (28)以下函数按每行8个输出数组中的数据

  void fun( int *w,int n)

  { int i;

  for(i=0;i

  {_________________

  printf(“%d”,w);

  }

  printf(“\n”);

  }

  下划线处应填入的语句是

  A)if(i/8==0)print(“\n”);

  B) if(i/8==0)continue;

  C) if(i%8==0)print(“\n”);

  D) if(i%8==0)continue;

  (29)若有以下定义

  int x[10],*pt=x;

  则对x数组元素的正确应用是

  A)*&x[10]

  B)*(x+3)

  C)*(pt+10)

  D)pt+3

  (30)设有定义:char s[81];int i=10;,以下不能将一行(不超过80个字符)带有空格的字符串真确读入的语句或语句组是

  A

  gets(s)

  B)while((s[i++]=get))!=”\n”;s=”\0”;

  C)scanf(“%s”,s);

  D)do{scanf(“%c”,&s);}while(s[i++]!=”\n”);s=”\0”;

  (31)有以下程序

  #include

  main()

  { char *a[ ]={“abcd”,”ef”,”gh”,”ijk”};int I;

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

  printf(“%c”,*a);

  }

  程序运行后输出的结果是

  A)aegi

  B)dfhk

  C)abcd

  D)abcdefghijk

  (32)以下选项中正确的语句组是

  A)char s[];s=”BOOK!”;

  B) char *s;s={”BOOK!”};

  C)char s[10];s=”BOOK!”;

  D) char *s;s=”BOOK!”;

  (33)有以下程序

  #include

  int fun{int x,int y}

  { if(x==y) return(x);

  else returen((x+y)/2)

  }

  main()

  { int a=4,b=5,c=6;

  printf(“%d\n”,fun(2*a,fun(b,c)))

  }

  程序运行后的输出结果是

  A)3

  B)6

  C)8

  D)12

  (34)设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是

  A)auto

  B) register

  C)static

  D)auto或register

  (35)有以下程序

  #include

  int b=2;

  int fun(int *k)

  { b=*k+b;return(b);}

  main()

  { int a[10]={1,2,3,4,5,6,7,8},I;

  for(i=2;i<4;i++) {b=fun(&a)+b;printf(“%d”,b);}

  printf(“\n”);

  }

  程序运行后输出的结果是

  A)10

  12

  B)8

  10

  C)10

  28

  D)10

  16

  (36)有以下程序

  #include

  #define PT 3.5;

  #define S(x) PT*x*x;

  mian()

  { int a=1, b=2; printf(“%4.1f\n”,S(a+b));}

  程序运行后输出的结果是

  A)14.0

  B)31.5

  C)7.5

  D)程序有错无输出结果

  (37)有以下程序

  #include

  struct ord

  { int x,y;} dt[2]={1,2,3,4};

  main()

  { struct ord *p=dt;

  printf(“%d,”,++p->x); printf(“%d\n”,++p->y);

  }

  程序的运行结果是

  A)1,2

  B)2,3

  C)3,4

  D)4,1

  (38)设有宏定义:#include

  IsDIV(k,n) ((k%n==1)?1:0且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&& IsDIV(m,7)为真时所要表达的是

  A)判断m是否能被5或者7整除

  B)判断m是否能被5和7整除

  C)判断m被5或者7整除是否余1

  D)判断m被5和7整除是否余1

  (39)有以下程序

  #include

  main()

  { int a=5,b=1,t;

  t=(a<<2|b); printf(“%d\n”,t)

  }

  程序运行后的输出结果是

  A)21

  B)11

  C)6

  D)1

  (40)有以下程序

  #include

  main()

  { EILE *f;

  f=fopen(“filea.txt”,”w”);

  fprintf(f,”abc”);

  fclose(f);

  }

  若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为

  A) helloabc

  B)abclo

  C)abc

  D)abchello

  计算机二级《C语言》真题练习 2

  (1)决定局域网特性的主要技术要素是:网络拓扑、传输介质和

  A)数据库软件

  B)服务器软件

  C)体系结构

  D)介质访问控制方法

  答案D

  (2)快速以太网FastEthernet的传输速率为

  A)100Mbps

  B)10Mbps

  C)1Gbps

  D)10Gbps

  答案A

  (3)在双绞线组网的方式中,____是以太网的中心连接设备。

  A)集线器

  B)收发器

  C)中继器

  D)网卡

  答案A

  (4)网络*作系统种类比较多,下面____不属于网络*作系统

  A)DOS

  B)WindowsNT

  C)NetWare

  D)Unix

  答案A

  (5)关于电子邮件下面的说法不正确的是

  A)发送电子邮件时,通讯双方必须都在场

  B)电子邮件比人工邮件传送更方便、快捷

  C)电子邮件可以同时发送给多个用户

  D)在一个电子邮件种,可以发送文字、图像、语音等信息

  答案A

  (6)网络看起来是“连接”的,但从网络连接的原理看又可以是“非连接的”。Internet中不是面向连接应用程序有____。

  A)电子邮件E-mail

  B)文件传输FTP

  C)网络在线游览WWW

  D)远程登陆Telnet

  答案A

  (7)网络体系结构可以定义成:

  A)计算机网络的实现

  B)执行计算机数据处理的软件模块

  C)建立和使用通信硬件和软件的一套规则和规范

  D)由ISO(国际标准化组织)制定的一个标准

  答案C

  (8)OSI模型的物理层负责下列哪一种功能?

  A)格式化报文

  B)为数据选择通过网络的`路由

  C)定义连接到介质的特征

  D)提供远程文件访问能力

  答案C

  (9)在不同网络结点的对等层之间的通信需要下列哪一项协议?

  A)模块接口

  B)对等层协议

  C)电信号

  D)传输介质

  答案B

  (10)____拓扑结构不是局域网所使用拓扑结构

  A)星型拓扑

  B)网状型拓扑

  C)总线型拓扑

  D)环型拓扑

  答案B

  训练二

  (1)在现实中,一般我们一般将计算机分类为

  A)服务器、工作站、台式机、笔记本、掌上电脑

  B)大型机、小型机、个人计算机、工作站、巨型计算机

  C)服务器、工作站、台式机、笔记本

  D)服务器/工作站、台式机、笔记本、掌上电脑,大型机、小型机

  答案A

  (2)MIPS常用来描述计算机的运算速度,其含义是

  A)每秒钟处理百万个字符

  B)每分钟处理百万个字符

  C)每秒钟执行百万条指令

  D)每分钟执行百万条指令

  答案C

  (3)下面不属于网卡功能的是

  A)实现与主机总线的通信连接

  B)实现数据链路层的功能

  C)实现物理层的'功能

  D)实现调制和解调功能

  答案D

  (4)McAfeeAssociatesVirusScan是____软件

  A)文档管理软件

  B)传真软件

  C)群件软件

  D)病毒防治软件

  答案D

  (5)计算机*作系统中,若P、V*作的信号量S初值为2,当前值为-1,则表示有____个等待进程。

  A)0个

  B)1个

  C)2个

  D)3个

  答案B

  (6)NetWare操作系统提供三级容错机制。第三级系统容错(SFTIII)提供了

  A)文件服务器镜像

  B)热修复与写后读验证

  C)双重目录与文件分配表

  D)硬盘镜像与硬盘双工

  答案A

  (7)当通过电话线连接到ISP时,因为电话线路输出信号为____信号,计算技术出信号只能通过调制解调器同电话网连接。

  A)数字

  B)模拟

  C)音频

  D)模拟数字

  答案C

  (8)SNMP位于ISOOSI参考模型的

  A)应用层

  B)数据链路层

  C)对话层

  D)网络层

  答案A

  (9)SDH帧结构由横向270×N列和纵向9行8字节组成。每秒钟传送8000帧,则STM-1每秒钟的传送速率为

  A)155.52Mbps

  B)311.04Mbps

  C)77.76Mbps

  D)311.04Mbps

  答案A

  (10)我们将目前网络存在的威胁分为两类:渗入威胁和植入威胁,下面属于渗入威胁的有Ⅰ假冒

  Ⅱ旁路控制Ⅲ特罗伊木马Ⅳ陷门

  A)Ⅰ、Ⅱ

  B)Ⅲ、Ⅳ

  C)Ⅰ、Ⅳ

  D)Ⅰ、Ⅱ、Ⅲ、Ⅳ

  答案A

  计算机二级《C语言》真题练习 3

  1). 关于C语言的变量,以下叙述中错误的是( )

  A.所谓变量是指在程序运行过程中其值可以被改变的量

  B.变量所占的存储单元地址可以随时改变

  C.程序中用到的所有变量都必须先定义后才能使用

  D.由三条下划线构成的符号名是合法的变量名

  正确答案:B

  答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义后使用。

  2). 当变量c的值不为2、4、6时,值也为″真″的表达式是( )

  A.(c==2)||(c==4)||(c==6)

  B.(c>=2 && c<=6)&&!(c%2)

  C.(c>=2 &&c<=6)&&(c%2!=1)

  D.(c>=2 && c<=6) || (c!=3)|| (c!=5)

  正确答案:D

  答案解析:逻辑或运算中,只要有一项为真,表达式的值就为真,故选项D中c的值不为2、4、6时,那么表达式(c>=2&& c<=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。

  3). 在C语言中,函数返回值的类型最终取决于

  A.函数定义时在函数首部所说明的函数类型

  B.return语句中表达式值的类型

  C.调用函数时主调函数所传递的实参类型

  D.函数定义时形参的类型

  正确答案:A

  答案解析:在C语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。在定义函数时,对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。

  4). 以下叙述中正确的是( )

  A.在C语言中,预处理命令行都以″#″开头

  B.预处理命令行必须位于C源程序的起始位置

  C.#include 必须放在C程序的开头

  D.C语言的预处理不能实现宏定义和条件编译的功能

  正确答案:A

  答案解析:在C语言中,凡是以″#″号开头的行,都称为″编译预处理″命令行。预处理命令可以放在程序中的任何位置,其有效范围是从定义开始到文件结束。预处理命令有宏定义、文件包含和条件编译三类。#include 命令行表示程序中要引用C标准函数库中的标准输入输出函数。

  5). 下列叙述中,不属于测试的特征的是

  A.测试的挑剔性

  B.完全测试的不可能性

  C.测试的可靠性

  D.测试的经济性

  正确答案:C

  答案解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中,没有测试的可靠性这一说法。

  6). 以下选项中不属于C语言标识符的是( )

  A.用户标识符

  B.关键字

  C.常量

  D.预定义标识符

  正确答案:C

  答案解析:C语言的标识符可分为以下3类:①关键字。C语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用。这些字符称为关键字。例如,int、double、if、else、while、for等。②预定义标识符。即预先定义并具有特定含义的标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名。

  7). 以下关于字符串的叙述中正确的是( )

  A.两个字符串中的字符个数相同时才能进行字符串大小的比较

  B.可以用关系运算符对字符串的大小进行比较

  C.空串比空格打头的字符串小

  D.C语言中有字符串类型的常量和变量

  正确答案:C

  答案解析:C语言本身并没有设置一种类型来定义字符串变量,却允许使用″字符串常量″。字符串常量是由双引号括起来的一串字符。任意两个字符串的大小比较要调用字符串比较函数strcmp(s1,s2 )来进行,其比较的方法是依次对s1和s2中对应位置上的字符两两进行比较,当出现第一对不相同的字符时,即由这两个字符决定所在串的大小(比较字符大小的依据是其ASCⅡ码值)。

  8). 下列叙述中正确的'是( )。

  A.调用printf( )函数时,必须要有输出项

  B.使用put )函数时,必须在之前包含头文件stdio.h

  C.在C语言中,整数可以以二进制、八进制或十六进制的形式输出

  D.调节get )函数读入字符时,可以从键盘上输入字符所对应的ASCII码

  正确答案:B

  答案解析:选项A,若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项C,在C语言中,整数可以十进制、八进制或十六进制的形式输出;选项D,getchar函数是从标准输入设备读取一个字符。

  9). 以下结构体类型说明和变量定义中正确的是( )

  A.typedefstruct { int n; char c; } REC; REC t1,t2;

  B.structREC ; { int n; char c; }; REC t1,t2;

  C.typedefstruct REC; { int n=0; char c=′A′; } t1,t2;

  D.struct{ int n; char c; } REC; REC t1,t2;

  正确答案:A

  答案解析:定义结构体类型的一般形式为:struct 结构体名 {成员列表};struct 结构体名后不能加″;″号,所以选项B、C)错误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为struct t1,t2;选项A为用户自定义类型,其为正确的定义形式。

  10). 若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是( )

  A.一对一

  B.一对多

  C.多对一

  D.多对多

  正确答案:B

  答案解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。

  11). 待排序的关键码序列为(15,20,9,30,67.65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第( )个位置。

  A.2

  B.3

  C.4

  D.5

  正确答案:B

  答案解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素9放在第一个位置,元素15则被交换放在第三个位置。

【计算机二级《C语言》真题练习】相关文章:

2016计算机二级《C语言》填空题真题练习10-26

计算机二级C语言真题09-30

2016全国计算机二级《C语言》真题练习11-07

计算机二级C语言笔试真题10-12

全国计算机二级考试《C语言》真题练习及答案09-20

计算机二级C语言真题选择题07-20

计算机二级C语言真题填空题05-08

备考计算机二级C语言真题试卷12-03

计算机二级C语言历年真题及答案11-02