1、计算机二级(C)17 及答案解析(总分:645.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:40,分数:60.00)1.有以下程序: main( ) int a=15,b=21,m=0; switch(a%3) case 0:m+;break; case l:m+; switch(b%2) default:m+; case 0:m+;break; printf(“%d/n“,m); 程序运行后的输出结果是( )。 (分数:1.50)A.1B.2C.3D.42.有以下程序 main( ) int x8=8,7,6,5,0,0,*s; s=x+3;
2、printf(“%d/n“,s2); 执行后输出结果是( )。 (分数:1.50)A.随机值B.0C.5D.63.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(分数:1.50)A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参4.以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是( )。(分数:1.50)A.if(ab) else k=0;B.if(ab)|(bc) k=1 else k=0;C.if(ab) k=1; else if(bc) k=1; else k=0;5.已定义
3、ch 为字符型变量,以下赋值语句中错误的是(分数:1.50)A.ch=/;B.ch=62+3;C.ch=NULL;D.ch=/xaa;6.有一函数 (分数:1.50)A.if(x0)y=1; else if(x= =0)y=0; else y=-1;B.y=0; if(x0)y=1; else if(xC.y = 0; if (x = 0) if (x0) y = 1; else y = -1;D.if ( x = 0) if ( x0)y = 1; else y = 0; else y = -1;7.已定义以下函数: fun(char *p2, char *p1) while(*p2=*p1
4、)!=/0) p1+;p2+; 此函数的功能是( )。 (分数:1.50)A.将 p1 所指字符串复制到 p2 所指内存空间B.将 p1 所指字符串的地址赋给指针 p2C.对 p1 和 p2 两个指针所指字符串进行比较D.检查 p1 和 p2 两个指针所指字符串中是否有/08.以下关于函数的叙述中正确的是_。 (分数:1.50)A.每个函数都可以被其他函数调用(包括 main 函数)B.每个函数都可以被单独编译C.每个函数都可以单独运行D.在一个函数内部可以定义另一个函数9.在计算机中,一个字节所包含二进制位的个数是( )。(分数:1.50)A.2B.4C.8D.1610.在 Windows
5、环境下,工具栏中用于完成复制操作的按钮是( )。(分数:1.50)A.B.C.D.11.下列描述中正确的是_。 (分数:1.50)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题12.在 Windows 菜单中,暗淡(灰色)的命令项表示该命令( )。(分数:1.50)A.暂时不能用B.正在执行C.包含下一层菜单D.包含对话框13.与十六进制数 200 等值得十进制数为( )。(分数:1.50)A.256B.512C.1024D.204814.与数学式 (分数:1.
6、50)A.3*xn/(2*x-1)B.3*x*n/(2*x-1)C.3*pow(x,n)*(1/(2*x-1) )D.3*pow(n,x)/(2*x-1)15.若有语句 char *line5;,以下叙述中正确的是_。 (分数:1.50)A.定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量B.定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C.定义 line 是一个指针数组,语句中的*号称为间址运算符D.定义 line 是一个指向字符型函数的指针16. 有以下说明和定义语句: struct student int age; char num
7、8; struct student stu3=20,“200401“,21,“200402“,10/9,“200403“; struct student *p=stu; 以下选项中引用结构体变量成员的表达式错误的是( )。 (分数:1.50)A.(p+)-numB.p-numC.(*p).numD.stu3.age17.设有以下语句 int a=1,b=2,c; c=a(by?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2
8、(c,d); g=a+b+c+d-e-f; printf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是_。 (分数:1.50)A.4,3,7B.3,4,7C.5,2,7D.2,5,724.有以下程序: int a=3; main( ) int s=0; int a=5;s+=a+; s+=a+; printf(“%d/n“,s); 程序运行后的输出结果是( )。 (分数:1.50)A.8B.10C.7D.1125.有以下程序: main() int k=5,n=0; while(k0) switch(k) default : break; case 1 : n+=k; ca
9、se 2 : case 3 : n+=k; k-; printf(“%d/n“,n); 程序运行后的输出结果是_。 (分数:1.50)A.0B.4C.6D.726.以下不能定义为用户标识符的是_。 (分数:1.50)A.MainB._0C._intD.sizeof27.用树形结构表示实体之间联系的模型是_。 (分数:1.50)A.关系模型B.网状模型C.层次模型D.以上三个都是28.设有定义语句 int x6=2,4,6,8,5,7,*p=x,i; 要求依次输出 x 数组 6 个元素中的值,不能完成此操作的语句是( )。 (分数:1.50)A.for(i=0;iname); (分数:40.00
10、)填空项 1:_64.某微型机的运算速度为 2MIPS,则该微型机每秒执行 1 条指令。(分数:40.00)填空项 1:_65.以下程序用于判断 a、b、c 能否构成三角形,若能,输出 YES,否则输出 NO。当给 a、b、c 输入三角形三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足三 个条件:a+bc,a+cb,b+ca。请填空。 main1 float a,b,c; scanf(“%f%f%f“, if(= 2)printf(“YES/n“); /*a、b、c 能构成三角形*/ else printf(“NO/n“); /*a、b、c 不能构成三角形*/ (分数:40.00)
11、填空项 1:_66.件维护活动包括以下几类:改正性维护、适应性维护、 1 维护和预防性维护。(分数:-1.00)填空项 1:_67.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 1。(分数:-1.00)填空项 1:_68.面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为 1。(分数:-1.00)填空项 1:_69.软件维护活动包括以下几类:改正性维护、适应性维护、 1 维护和预防性维护。(分数:-1.00)填空项 1:_70. 1 是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。(分数:-1.00)填空项 1:_计算机二级(C)17 答案解析(
12、总分:645.00,做题时间:120 分钟)一、选择题(1-10 题每题 2 分,11-50 题(总题数:40,分数:60.00)1.有以下程序: main( ) int a=15,b=21,m=0; switch(a%3) case 0:m+;break; case l:m+; switch(b%2) default:m+; case 0:m+;break; printf(“%d/n“,m); 程序运行后的输出结果是( )。 (分数:1.50)A.1 B.2C.3D.4解析:2.有以下程序 main( ) int x8=8,7,6,5,0,0,*s; s=x+3; printf(“%d/n“
13、,s2); 执行后输出结果是( )。 (分数:1.50)A.随机值B.0 C.5D.6解析:3.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(分数:1.50)A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参 解析:4.以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是( )。(分数:1.50)A.if(ab) else k=0; B.if(ab)|(bc) k=1 else k=0;C.if(ab) k=1; else if(bc) k=1; else k=0;解析:5.已定义 c
14、h 为字符型变量,以下赋值语句中错误的是(分数:1.50)A.ch=/; B.ch=62+3;C.ch=NULL;D.ch=/xaa;解析:6.有一函数 (分数:1.50)A.if(x0)y=1; else if(x= =0)y=0; else y=-1;B.y=0; if(x0)y=1; else if(xC.y = 0; if (x = 0) if (x0) y = 1; else y = -1; D.if ( x = 0) if ( x0)y = 1; else y = 0; else y = -1;解析:7.已定义以下函数: fun(char *p2, char *p1) while(
15、*p2=*p1)!=/0) p1+;p2+; 此函数的功能是( )。 (分数:1.50)A.将 p1 所指字符串复制到 p2 所指内存空间 B.将 p1 所指字符串的地址赋给指针 p2C.对 p1 和 p2 两个指针所指字符串进行比较D.检查 p1 和 p2 两个指针所指字符串中是否有/0解析:8.以下关于函数的叙述中正确的是_。 (分数:1.50)A.每个函数都可以被其他函数调用(包括 main 函数)B.每个函数都可以被单独编译 C.每个函数都可以单独运行D.在一个函数内部可以定义另一个函数解析:C 语言中函数是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义;函数可以分 别编
16、写、分别编译,提高调度效率,但函数不能单独运行;函数间可以互相调用,但不能调用 main 函数。9.在计算机中,一个字节所包含二进制位的个数是( )。(分数:1.50)A.2B.4C.8 D.16解析:10.在 Windows 环境下,工具栏中用于完成复制操作的按钮是( )。(分数:1.50)A.B.C. D.解析:11.下列描述中正确的是_。 (分数:1.50)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D.软件工程只是解决软件开发中的技术问题解析:软件工程是计算机软件开发和维护的工程学科,它采
17、用工程的概念原理、技术和方法来开发和维护 软件,它把经过时间考验而证明正确的管理技术和当前能够得到的最好技术结合起来。12.在 Windows 菜单中,暗淡(灰色)的命令项表示该命令( )。(分数:1.50)A.暂时不能用 B.正在执行C.包含下一层菜单D.包含对话框解析:13.与十六进制数 200 等值得十进制数为( )。(分数:1.50)A.256B.512 C.1024D.2048解析:14.与数学式 (分数:1.50)A.3*xn/(2*x-1)B.3*x*n/(2*x-1)C.3*pow(x,n)*(1/(2*x-1) ) D.3*pow(n,x)/(2*x-1)解析:15.若有语句
18、 char *line5;,以下叙述中正确的是_。 (分数:1.50)A.定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量 B.定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C.定义 line 是一个指针数组,语句中的*号称为间址运算符D.定义 line 是一个指向字符型函数的指针解析:由于运算符 优先级比*高,所以“char *line5;”相当于“char * (line5);”,表示 line 是一 个数组,每个数组元素是一个基类型为 char 的指针变量。16. 有以下说明和定义语句: struct student int age
19、; char num8; struct student stu3=20,“200401“,21,“200402“,10/9,“200403“; struct student *p=stu; 以下选项中引用结构体变量成员的表达式错误的是( )。 (分数:1.50)A.(p+)-numB.p-numC.(*p).numD.stu3.age 解析:17.设有以下语句 int a=1,b=2,c; c=a(by?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d); f
20、=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是_。 (分数:1.50)A.4,3,7 B.3,4,7C.5,2,7D.2,5,7解析: 函数 f1 的功能是返回两个数中比较大的值,f2 的功能是返回两个数中比较小的值。24.有以下程序: int a=3; main( ) int s=0; int a=5;s+=a+; s+=a+; printf(“%d/n“,s); 程序运行后的输出结果是( )。 (分数:1.50)A.8 B.10C.7D.11解析:本题考点是全局变量的作用范围。25.有以
21、下程序: main() int k=5,n=0; while(k0) switch(k) default : break; case 1 : n+=k; case 2 : case 3 : n+=k; k-; printf(“%d/n“,n); 程序运行后的输出结果是_。 (分数:1.50)A.0B.4C.6D.7 解析:在 switch 语句中,表达式的值与某一个 case 后面的常量表达式的值相等时,就执行此 case 后面的语 句,若所有的 case 中的常量表达式的值都没有与表达式的值匹配的,就执行 default 后面的语句,各个 case 和 default 的出现次序不影响执行结
22、果。所以在本题中,当 k=5 和 k=4 的时候,case 都没有与其匹配的值, 所以执行了 default 语句;当 k=3 时,执行“case 3 : n+=k;”得 n=3,然后执行 default;当 k=2 时,执行“case2 : case 3 : n+=k;”得 n=5,然后执行 default;当 k=1 时,执行“case 1 : n+=k; case 2 : case 3 : n+=k;” 使得 n 加两次 k,得到 n=7。26.以下不能定义为用户标识符的是_。 (分数:1.50)A.MainB._0C._intD.sizeof 解析: C 语言规定标识符只能由字母、数字
23、和下划线三种符号组成,而且第一个字符必须是字母或下划线。 注意:大写字母和小写字母被认为是两个不同的字符。A 中 Main 与主函数名 main 不同。27.用树形结构表示实体之间联系的模型是_。 (分数:1.50)A.关系模型B.网状模型C.层次模型 D.以上三个都是解析:层次模型是最早发展起来的数据库模型,它的基本结构是树形结构。28.设有定义语句 int x6=2,4,6,8,5,7,*p=x,i; 要求依次输出 x 数组 6 个元素中的值,不能完成此操作的语句是( )。 (分数:1.50)A.for(i=0;imax 或 arow)col=max 或 maxname); (分数:40.
24、00)填空项 1:_ (正确答案:2002ShangXian)解析:64.某微型机的运算速度为 2MIPS,则该微型机每秒执行 1 条指令。(分数:40.00)填空项 1:_ (正确答案:2000000)解析:MIPS 的意思为每秒百万条指令(Million Instructions Per Second)。65.以下程序用于判断 a、b、c 能否构成三角形,若能,输出 YES,否则输出 NO。当给 a、b、c 输入三角形三条边长时,确定 a、b、c 能构成三角形的条件是需同时满足三 个条件:a+bc,a+cb,b+ca。请填空。 main1 float a,b,c; scanf(“%f%f%
25、f“, if(= 2)printf(“YES/n“); /*a、b、c 能构成三角形*/ else printf(“NO/n“); /*a、b、c 不能构成三角形*/ (分数:40.00)填空项 1:_ (正确答案:(a+bc)&(a+cb)&(b+ca))解析:此题主要考核的是 if 语句的条件运算符及逻辑运算,逻辑“与”运算是指所有条件为“真”时结果 才为真,根据构成三角形的条件两边之和大于第三边得出上面的结果。66.件维护活动包括以下几类:改正性维护、适应性维护、 1 维护和预防性维护。(分数:-1.00)填空项 1:_ (正确答案:完善性)解析:软件维护活动包括以下几类:改正性维护、适
26、应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率,提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。 67.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 1。(分数:-1.00)填空项 1:_ (正确答案:软件生命周期)解析:软件产品从考虑
27、其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。68.面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为 1。(分数:-1.00)填空项 1:_ (正确答案:消息)解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(methoD) 、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。 69.软件维护活动包括以下几类:改正性维护、适应性维护、 1 维护和预防性
28、维护。(分数:-1.00)填空项 1:_ (正确答案:完善性)解析:软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。 70. 1 是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。(分数:-1.00)填空项 1:_ (正确答案:封装)解析:本题考查了面向对象技术中的一些基本概念。面向对象技术中包括以下几个基本概念,即对象、类、方法、消息、继承和封装,其中封装是一种信息隐蔽技术,目的在于将对象的使用者对象的和设计者分开。