计算机二级C语言历年真题及答案
计算机二级计算机二级 C C 语言历年真题及答案语言历年真题及答案 练习是稳固知识的有效手段,而是检验知识掌握情况的一种方 式。下面是的 xx 年 9 月试题答案,希望对大家有用,更多消息请关 注。 (11)以下表达中正确的选项是 A)在 C 语言程序中,main 函数必须放在其他函数的最前面 B)每个后缀为.C 的 C 语言源程序都可以单独进展编译 C)在 C 语言程序中,只有 main 函数才可单独进展编译 D)每个后缀为.C 的 C 语言源程序都应该包含一个 main 函数 (12)C 语言中的标识符分为关键字、预定义标识符和用户标识 符,以下表达正确的选项是 A)预定义标识符(如库函数中的函数名)可用作用户标识符,但 失去原有含义 B)用户标识符可以由字母和数字任意顺序组成 C)在标识符中大写字母和小写字母被认为是相同的字符 D)关键字可用作用户标识符,但失去原有含义 (13)以下选项中表示一个合法的常量是(说明:符号□表示空格) A)9□9□9 B)0Xab C)123E0.2 D)2.7e (14)C 语言主要是借助以下哪个功能来实现程序模块化 A)定义函数 B)定义常量和外部变量 C)三种根本构造语句 D)丰富的数据类型 (15)以下表达中错误的选项是 A)非零的数值型常量有正值和负值的区分 B)常量是在程序运行过程中值不能被改变的量 C)定义符号常量必须用类型名来设定常量的类型 D)用符号名表示的常量叫符号常量 (16)假设有定义和语句:int a,b; scanf(“%d,%d“, 以 下选项中的输入数据,不能把值 3 赋给变量 a、5 赋给变量 b 的是 A)3,5, B)3,5,4 C)3 ,5 D)3,5 (17)C 语言中 char 类型数据占字节数为 A)3 B)4 C)1 D)2 (18)以下关系表达式中,结果为“假”的是 A)(3+4)6 B)(3!=4)2 C)3data);p= 【15】 ; } printf(“\n“); } 参考答案: (11)B) 【解析】每一个 C 语言的文件或函数都可以单独编 译,但只有 main 函数的才可以执行。 (12)A) 【解析】预定义标识符是 C 语言中的标识符,在 C 语言 中也有特定的含义,如函数 printf、 scanf、sin 等和编译预处理 命令名(如 define 和 include)。预定义标识符可以作为用户标识符 使用,只是这样会失去系统规定的原义。 (13)B) 【解析】0 xab 是十六进制表示的常量。 (14)A) 【解析】C 语言用函数实现软件的模块化设计。 (15)C) 【解析】C 语言中,常常用一个标识符来代表一个常 量,称为符号常量。符号常量在使用之前要先定义,定义格式如 下:#define(常量) 其中,2 的结果为假。 (19)D) 【解析】使用 switch 语句直接处理多个分支,其一般 形式为: switch(表达式) { case 常量表达式 1: 语句 1; break; case 常量表达式 2: 语句 2; break; …… case 常量表达式 n: 语句 n; break; default: 语句 n+1; break; } switch 语句的执行流程是:首先计算 switch 后面圆括号中表 达式的值,然后用此值依次与各个 case 的常量表达式比拟,假设 圆括号中表达式的值与某个 case 后面的常量表达式的值相等,就 执行此 case 后面的语句,执行后遇 break 语句就退出 switch 语 句;假设圆括号中表达式的值与所有 case 后面的常量表达式都不 等,那么执行 default 后面的语句 n+1,然后退出 switch 语句。 (20)D) 【解析】由于 a 的初始值等于-2,所以 while 循环语 言执行两次完毕,此时变量 a 的值等于 1,变量 b 的等于 2。 (21)C) 【解析】定义指针变量时,必须将指针变量初始化为 NULL(为空),否那么,如果不赋给它地址,系统会随机给它分配一 个地址。 (22)D) 【解析】两个连续的双引号:““,是一个字符串常量, 称为“空串”。 (23)D) 【解析】由于 a 的值为 H ,符合(a= A 第二次执行 for 循环时,b 的值等于 3,此时输出字母 D;第三次执行 for 循环时,b 的值等于 8,此时 输出字母 I。 (25)D) 【解析】x[0]可看作是由 3 个整型元素组成的一维数 组,不可以用语句 x[0]=0,为数组所有元素赋初值 0。 (26)C) 【解析】给指针变量 p 赋 NULL 值,NULL 是在 stdio.h 头文件中定义的预定义符,其代码值为 0,当执行 p=NULL; 语句后,称 p 为空指针。因为 NULL 的代码值为 0,所以 p=NULL;语 句等价于 p= \0 ;或 p=0;。 (27)A) 【解析】因为指针变量 p 的初始值指向数组 a,所以执 行 for 循环语句后,数组 a 中的元素的值不变。 (28)B) 【解析】函数 fun()的作用是求出二维数组 a[][N]中每 一行中的最大元素,所以在 main()函数中执行完 fun(x,y)后,数组 y 中的元素为二维数组 x[N][N]每一行的最大元素。 (29)C) 【解析】程序执行后 strcpy(a+1,b+2)后,字符数组 a 的值为“a2”,再进展字符串的连接 strcat(a,c+1),此时字符数 组 a 的值为“a2yz”。 (30)A) 【解析】选项 A)是定义了字符数组 str3[],并对其赋 初值。 (31)C) 【解析】这个程序的执行过程如下:当 k=0 时, s[1]=2!= \0 ,k++=1,a=0+(s[1]- \0 )=2;当 k=1 时,s[2]=1!= \0 ,k++=2,a=2+(s[2]- \0 +1)=2+(1+1)=4;当 k=2 时, s[3]=3!= \0 ,k++=3,a=4+(s[3]- \0 )=4+3=7;当 k=3 时, s[4]=4!= \0 ,k++=4,a=7+(s[4]- \0 +1)=7+(4+1)=12;当 k=4 时,s[5]= \0 完毕循环,输出变量 k 和 a 值。 (32)A) 【解析】这个程序的执行过程是当 i=0 时, j=1,a[0][0]=oa[3][0]=f;置换 a[2][0]=f, a[3][0]=t;此时, a[2][0]=f,a[1][0]=t,再置换 a[2][0]=t,a[1][0]=f,;当 i=3 时, j=4,a[3][0]=f=a43][0]=f;不置换;所以 a[1]的结果为 fwo。 (33)B) 【解析】函数 fun1()的作用是输出部分变量 a 和 b 的 值,在主函数中执行 fun1(5,6)的结果是输出 5,6;函数 fun2()的作 用是给变量 a 和 b 分别赋值 3,4;执行 fun2()的作用是输出 3,4。 (34)A) 【解析】在函数 func(int n)中定义了部分静态变量 num,,其初始值等于 1,所以在主函数中执行 func(3),输