就业数据资源平台
当前位置:首页 > C语言程序设计
2013计算机等级考试二级C语言试题及答案2

(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; 转自:考试网 - [Examw.Com]


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


    if(y<0)z=0;


    else z+=1;


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


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


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


#include<stdio.h>


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<y&&y<0时,z=0;当x<y&&y>=0时,z=z+1。


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

就业数据资源平台