读书人

2013计算机二级C语言练习题二(附答案

发布时间: 2013-03-04 21:08:08 作者: maylh

  (11)下面各选项中,均是C语言合法标识符的选项组是

  A)33 we auto B)_23 me _3ew C)_43 3e_ else D)ER -DF 32

  (12)可在C程序中用作用户标识符的一组标识符是

  A)and B)Date C)Hi D)case

  _2007 y-m-d Dr.Tom Bigl

  (13)以下对C语言函数的有关描述中,正确的是

  A)在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参

  B)C函数既可以嵌套定义又可以递归调用

  C)函数必须有返回值,否则不能使用函数

  D)函数必须有返回值,返回值类型不定

  (14)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是

  A)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元中华考试网

  C)同名的实参和形参占同一存储单元 D)函数的形参和实参分别占用不同的存储单元

  (15)现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为:

  A)int B)double C)float D)char

  (16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是

  A)均占4个字节 B)根据数据的大小来决定所占内存的字节数

  C)由用户自己定义 D)由C语言编译系统决定

  (17)有以下程序段

  int j;float y;char name[50];

  scanf("%2d%f%s",&j,&y,name);

  当执行上述程序段,从键盘上输入55566 7777abc后,y的值为

  A)55566.0 B)566.0 C)7777.0 D)566777.0

  (18)若变量已正确定义,有以下程序段

  i=0;

  do printf("%d,",i);while(i++);

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

  其输出结果是

  A)0,0 B)0,1 C)1,1 D)程序进入无限循环

  (19)下列程序的运行结果是

  #include "stdio.h"

  main()

  { int x=-9,y=5,z=8;

  if(x

  if(y<0)z=0;

  else z+=1;

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

  A)6 B)7 C)8 D)9

  (20)若程序执行时的输入数据是"2473",则下述程序的输出结果是

  #include

  void main()

  { int cs;

  while((cs=getchar())!=; '\n')

  {switch(cs-'2')

  { case 0

  case 1: putchar(cs+4);

  case 2: putchar(cs+4);

  break;

  case 3: putchar(cs+3); default: putchar(cs+2); } } }

  A)668977

  B)668966

  C)6677877

  D)6688766

  参考答案

  (11)B

  【解析】合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。选项A),数字不能为第一个字母,auto为关键字;选项C)中,也是数字不能为第一个字母,else为关键字;选项D)中负号不合法。

  (12)A

  【解析】在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。C语言的标识符可以分为关键字、预定义标识符和用户标识符。选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字。

  (13)A

  【解析】 C语言中的函数可以进行递归调用,但是不能在函数中定义函数,函数不用有返回值,若有返回值,则返回值类型必确定。

  (14)D

  【解析】在内存中,实参单元与形参单元是不同的单元。在C语言中,仅在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。

  (15)B

  【解析】双目运算中两边运算量类型转换规律:

  运算数1运算数2转换结果类型

  短整型 长整型 短整型->长整型

  整型 长整型 整型->长整型

  字符型 整型 字符型->整型

  有符号整型 无符号整型 有符号整型->无符号整型

  整型 浮点型 整型->浮点型

  在a/b的时候,a、b的类型不一致,根据类型转换规则,把整型转换成double类型,之后的加、减类似。转化规则为char,short->int->unsigned->long->double←float。

  (16)D

  【解析】在ANSI标准中,long、int和short分别占用4、2和2个字节。但实际上对于某些C编译系统,int和short都占用4个字节,所以说各种类型数据占用内存大小是由选择何种C编译系统决定的。

  (17)B

  【解析】本题考查通过scanf函数输入数据时的格式控制问题。变量j的格式控制为"%2d",即只接收输入数据的前两位,从第三位开始直到空格之间的输入都会被保存到变量y中,因为y为浮点型数据,所以输出结果为选项B)。

  (18)B

  【解析】对于do…while循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一次i的值"0,",再接着判断表达式i++的值,其值为0,所以循环结束。此时变量i的值经过自加已经变为1,程序再次输出i的值"1"。

  (19)D

  【解析】 if…else语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个if-else相当于嵌套在第一个if子句里,相当于x=0时,z=z+1。

  (20)A

  【解析】本题主要考查switch语句的使用方法。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。


读书人网 >二级考试

热点推荐