1、二级 C语言笔试-37 及答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.对建立良好的程序设计风格,下列描述中正确的是( )。(分数:2.00)A.程序应该简单、清晰、可读性好B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无2.算法的时间复杂度是指( )。(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数3.下列程序的运行结果是( )。#includestdio.hmain()int a=0,b=4,c=0,d=10,x;if((分数:2
2、.00)A.d=d-10;elseif(!B.if(!C.x=15;elsex=25;printf(“%d/n“,D.;while(-y);printf(“%d/n“,y-);当执行程序时,输出的结果是( )。(分数:2.00)A.-1B.1C.4D.09.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是( )。(分数:2.00)A.DB包括 DBS和 DBMSB.DBMS包括 DB和 DBSC.DBS包括 DB和 DBMSD.没有任何关系10.下列程序的运行结果为( )。#define MAX(x,y)(x)(y)?(x):(y)main()int a=2,b=3,c=
3、1,d=3,t;printf(“%d/n“,(MAX(a+b,c+d)*100);(分数:2.00)A.500B.5C.4D.40011.表达式8-2的值是( )。(分数:2.00)A.整数 6B.字符 6C.表达式不合法D.字符 812.为了避免在嵌套的条件语句 ifelse中产生二义性,C 语言规定,else 子句总是与( )配对。(分数:2.00)A.缩排位置相同 ifB.其前面最近的 ifC.其后面最近的 ifD.同一行上的 if13.若已包括头文件stdio.h和string.h,运行下列程序段时输出结果是( )。int i=0;char s110=“ABCD“,s210=“EFG“
4、;strcat(s1,S2);while(s2i+!=/0)s2i=s1i;puts(s2);(分数:2.00)A.ABCB.ABCDEFC.EBCDEFGD.CBD14.下列描述中,不是线性表顺序存储结构特征的是( )。(分数:2.00)A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系15.下列不属于软件工程的 3个要素的是( )。(分数:2.00)A.工具B.过程C.方法D.环境16.有下列程序:main()int k=5,n=0;doswitch(k)case 1: case 3:n+=1;k-;break;default:n=0;k-;ca
5、se 2: case 4;n+=2;k-;break;printf(“%d“,n);while(kOs1i!=/0i+)if(s1i=s2i(分数:2.00)A.putchar(s2i;putchar(i)B.puts(s1i,i)C.printf(“%c%d/n“,s2i,i)D.printf(“%c“,s1i);printf(“%d/n“,20.下列程序的输出结果是( )。main()char a7“aO/OaO/0“;int i,j;i=sizeof((分数:2.00)A.;j=strlen(a);printf(“%d“,(分数:2.00)A.;a=4+4%5-6;printf(/24.
6、设有下列的程序段:char str=“Hello World“;char*ptr;ptr=str;执行上面的程序段后,*(ptr+10)的值为( )。(分数:2.00)A./0B.0C.不确定的值D.0的地址25.下列说法正确的是( )。(分数:2.00)A.在 C程序中,main()函数必须位于程序的最前面B.在 C程序中,一条语句只能写一行而不能写多行C.C程序是以行为基本单位的D.C语言本身没有输入输出语句26.下列程序的运行结果是( )。inty=5,x=14;y=(x=3*y,x+1),x-1;printf(“x=%d,y=%d“,x,y);(分数:2.00)A.x=27,y=27B
7、.x=12,y=13C.x=15,y=14D.x=y=2727.下列选项中不属于软件生命周期开发阶段任务的是( )。(分数:2.00)A.软件测试B.概要设计C.软件维护D.详细设计28.设 int x=1,y=1;表达式(!x-y)的值是( )。(分数:2.00)A.0B.1C.2D.-129.函数 fseek()的正确调用形式是( )。(分数:2.00)A.fseek(位移量,起始点,文件类型指针);B.fseek(文件类型指针,位移量,起始点);C.fseek(文件类型指针,起始点,位移量);D.fseek(起始点,位移量,文件类型指针);30.若有下列定义(设 int类型变量占 2个字
8、节):int i=8,j=9;则下列语句:printf(“i=%d,j=%d/n“,i,j);输出的结果是( )。(分数:2.00)A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,931.表达式0x11 的值是( )。(分数:2.00)A.0xFFEEB.0x71C.0x0071D.0xFFE132.若有下列定义和语句:int u=011,v=0x11,w=11;printf(“%o,%x,%d/n“,u,v,w);则输出结果是( )。(分数:2.00)A.9,17,11B.9,11,11C.11,11,11D.11,17,1133.下列说法正确的是( )。(分数:2.0
9、0)A.在 C语言中,可以使用动态内存分配技术定义元素个数可变的数组B.在 C语言中,数组元素的个数可以不确定,允许随机变动C.在 C语言中,数组元素的数据类型可以不一致D.在 C语言中,定义了一个数组后,就确定了它所容纳的元素的个数34.分析下列程序:#includestdio.hmain()int*p1,*p2,*p;int a=6,b=9;p1=p2=p1=p2;p2=p;printf(“%d,%d“,*p1,*p2);printf(“%d,%d“,a,b);程序的输出结果为( )。(分数:2.00)A.9,6 6,9B.6,9 9,6C.6,9 6,9D.9,6 9,635.有下列程序
10、段:struct stintx;int*y;*pt;int a=1,2,b=3,4;struct st c2=10,a,20,b;pt=c;下列选项中表达式的值为 11的是( )。(分数:2.00)A.*pt-yB.pt-xC.+pt-xD.(pt+)-x36.下列函数值的类型是( )。fun(double x)float y;y=3*x-4;return y;(分数:2.00)A.intB.不确定C.voidD.float37.下列程序的运行结果是( )。#inCludestdio.hmain()static char a=“Languagef“,b=“programe“;Char*p1,*
11、p2;int k;p1=a;p2=b;for(0;k=8;k+)if(*p1+k)=*(p2+k)printf(“%c“,*(p1+k);(分数:2.00)A.gaeB.angC.programD.有语法错38.有下列程序段:int k=0,a=1,b=2,c=3;k=ab?b:a;k=kc?C:k;执行该程序段后,k 的值是( )。(分数:2.00)A.3B.2C.1D.039.若有定义 int a10,*p=a,则 p+6表示( )。(分数:2.00)A.数组元素 a5的值B.数组元素 a5的地址C.数组元素 a6的地址D.数组元素 a0的值加上 540.在嵌套使用 if语句时,C 语言规
12、定 else总是( )。(分数:2.00)A.和之前与其具有相同缩进位置的 if配对B.和之前与其最近的 if配对C.和之前与其最近的且不带 else的 if配对D.和之前的第一个 if配对二、填空题(总题数:15,分数:30.00)41.在算法的 4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的 1 特性。(分数:2.00)填空项 1:_42.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于 1。(分数:2.00)填空项 1:_43.栈中允许进行插入和删除的一端叫做 1。(分数:2.00)填空项 1:_44.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也
13、无需知道数据的具体结构以及实现操作的算法,这称为对象的 1。(分数:2.00)填空项 1:_45.软件工程研究的内容主要包括: 1 技术和软件工程管理。(分数:2.00)填空项 1:_46.表达式 pow(2.8,sqrt(float(x)值的数据类型为 1 型。(分数:2.00)填空项 1:_47.下列表达式用于判断 y是否为闰年。闰年的判断条件是:年号能被 4整除但不能被 100整除或年号能被 400整除,请填空 1。(分数:2.00)填空项 1:_48.下列程序的运行结果是_。#includestdio.hmain()int a=10,b=3;printf(“%d“,a%b);print
14、f(“%d,(a-b,a+b);printf(“%d/n“,a-b?a-b:a+b);(分数:2.00)填空项 1:_49.要求使下列程序输出 5个整数,请填空。for(i=0;i=_;printf(“%d/n“,i+=2);(分数:2.00)填空项 1:_50.下列的 for语句的循环次数为_。for(x=1,y=0;(y!=19)x+);(分数:2.00)填空项 1:_51.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入 n个字符放到 buf字符数组中,函数返回值为 1。(分数:2.00)填空项 1:_52.若有下列定义:int a=1,2,3,4,5,6,7,8,
15、9,10,*p=a;,则值为 3的表达式为: 1。(分数:2.00)填空项 1:_53.若有说明 char s1=“That girl“,s2=“is beautiful“;则使用函数 strcmp(s1,s2)后,结果是 1。(分数:2.00)填空项 1:_54.在宏定义#define P13.14159 中,用宏名 PI代替一个 1。(分数:2.00)填空项 1:_55.下列程序的输出结果是_。#includestdio.hsb(int s,int b)static int n=3;b=sn;n-;return(b);main()int s=1,5,6,8;int i,x=0;for(i=
16、0;i4;i+)x=sb(s,x);printf(“%d“,x);printf(“/n“);(分数:2.00)填空项 1:_二级 C语言笔试-37 答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.对建立良好的程序设计风格,下列描述中正确的是( )。(分数:2.00)A.程序应该简单、清晰、可读性好 B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无解析:解析 “青晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程
17、序员理解程序,不是可有可无的。2.算法的时间复杂度是指( )。(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数解析:解析 所谓的算法的时间复杂度,是指执行算法所需要的工作量,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。3.下列程序的运行结果是( )。#includestdio.hmain()int a=0,b=4,c=0,d=10,x;if((分数:2.00)A.d=d-10;elseif(!B.if(!C.x=15;elsex=25;printf(“%d/n“,D.;while(-y);pri
18、ntf(“%d/n“,y-);当执行程序时,输出的结果是( )。(分数:2.00)A.-1B.1C.4D.0 解析:解析 本题考查 dowhile循环。当-y 是 0(即 y是 0)时结束循环,输出 y-是先输出 y的值再将 y的值减 1。9.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是( )。(分数:2.00)A.DB包括 DBS和 DBMSB.DBMS包括 DB和 DBSC.DBS包括 DB和 DBMS D.没有任何关系解析:解析 数据库系统(DBS)由数据库(DBS)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台 5个部分组成,可见 DB和 DB
19、MS都是 DBS的组成部分。10.下列程序的运行结果为( )。#define MAX(x,y)(x)(y)?(x):(y)main()int a=2,b=3,c=1,d=3,t;printf(“%d/n“,(MAX(a+b,c+d)*100);(分数:2.00)A.500 B.5C.4D.400解析:解析 本题考查带参数的宏的定义及相关运算:(x)(y)?(x):(y)是 xy 时输出 x,否则输出y,调用 (MAX(a+b,c+d)*100 时,(a+b=5)(c+d=4),所以输出 a+b=5,所以 x=5*100。11.表达式8-2的值是( )。(分数:2.00)A.整数 6 B.字符
20、6C.表达式不合法D.字符 8解析:解析 在 C语言中,虽然字符都是变为其对应的 ASCII码值来参与算术运算的,但字符间的相对位置关系还是不变的,字符 8和字符 2的 ASCII码值相差仍是 6。12.为了避免在嵌套的条件语句 ifelse中产生二义性,C 语言规定,else 子句总是与( )配对。(分数:2.00)A.缩排位置相同 ifB.其前面最近的 if C.其后面最近的 ifD.同一行上的 if解析:解析 本题考查 if else语句。C 语言规定,else 总是与它前面的最近的 if配对。13.若已包括头文件stdio.h和string.h,运行下列程序段时输出结果是( )。int
21、 i=0;char s110=“ABCD“,s210=“EFG“;strcat(s1,S2);while(s2i+!=/0)s2i=s1i;puts(s2);(分数:2.00)A.ABCB.ABCDEFC.EBCDEFG D.CBD解析:解析 strcat(s1,s2)把 s2连接到 s1的后面,s1=ABCDEFG,执行 while(s2i+!=/0)后 i的值变为 1,往后执行 s2i=s1i时是从把 s1的第二位给 s2的第二位开始,把 s1赋给 s2。14.下列描述中,不是线性表顺序存储结构特征的是( )。(分数:2.00)A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需
22、另外开辟空间来保存元素之间的关系 解析:解析 线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。15.下列不属于软件工程的 3个要素的是( )。(分数:2.00)A.工具B.过程C.方法D.环境 解析:解析 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制、管理。16.有下列程序:main()int k=5,n=0;doswitch(k)case
23、1: case 3:n+=1;k-;break;default:n=0;k-;case 2: case 4;n+=2;k-;break;printf(“%d“,n);while(kOs1i!=/0i+)if(s1i=s2i(分数:2.00)A.putchar(s2i;putchar(i)B.puts(s1i,i)C.printf(“%c%d/n“,s2i,i) D.printf(“%c“,s1i);printf(“%d/n“,解析:解析 putchar(s)的功能是把字符 s输出到标准输出设备;puts(s1)是把 s1指向的字符串输出到标准输出设备。20.下列程序的输出结果是( )。main
24、()char a7“aO/OaO/0“;int i,j;i=sizeof((分数:2.00)A.;j=strlen(a);printf(“%d“,(分数:2.00)A.;a=4+4%5-6;printf(/ 解析:解析 本题考查%和/算符的使用。如果两个数不能整除,只取结果的整数部分,小数部分全部舍去。运算符“%”要求两个运算对象都为整型,其结果是整数除法的余数。表达式:a=-4+4*5-6=-4+20-6=10;表达式:a=4+4%5-6=4+4-6=2;表达式:a=-3+4%6/5=-3+0=-3;表达式:a=(7+6)%5/2=13%5/2=1。24.设有下列的程序段:char str=
25、“Hello World“;char*ptr;ptr=str;执行上面的程序段后,*(ptr+10)的值为( )。(分数:2.00)A./0 B.0C.不确定的值D.0的地址解析:解析 本题涉及字符数组和指针两个知识点:在 C语言中,字符型数组在存放字符串时会自动在末尾加上/0,所以题中数组 str有 11个元素;ptr 指向数组 str的首地址,ptr+10 是指向 str10,*(ptr+10)是引用 str10的值。25.下列说法正确的是( )。(分数:2.00)A.在 C程序中,main()函数必须位于程序的最前面B.在 C程序中,一条语句只能写一行而不能写多行C.C程序是以行为基本单
26、位的D.C语言本身没有输入输出语句 解析:解析 本题涉及 C语言最基本的 4个知识点:C 语言程序是由函数构成的,C 程序的基本单位是函数;每个 C程序有且只有一个主函数 main(),且程序必须从 main()函数开始执行,但是 main()函数可以放在程序中的任意位置;C 语言的书写格式是自由的,一行可以写多条语句,一条语句也可以写在不同的行上;C 语言本身不提供输入输出语句,可以通过函数来实现输入和输出操作。26.下列程序的运行结果是( )。inty=5,x=14;y=(x=3*y,x+1),x-1;printf(“x=%d,y=%d“,x,y);(分数:2.00)A.x=27,y=27
27、B.x=12,y=13C.x=15,y=14 D.x=y=27解析:解析 逗号表达式的求解步骤是先求解表达式 1,然后依次求解表达式 2,直到表达式 N的值。整个逗号表达式的值就是最后一个表达式 N的值。表达式(x=3*y,x+1)中,第一个表达式 x=3*y=3*5=15;第二个表达式 x+1=16,但没有给 x或 y赋值,所以x还是等于 15;第 3个表达式 x-1=15-1=14,所以 y的值为 14。27.下列选项中不属于软件生命周期开发阶段任务的是( )。(分数:2.00)A.软件测试B.概要设计C.软件维护 D.详细设计解析:解析 软件的生命周期可分为软件定义、软件开发及软件运行维
28、护 3个阶段。其中软件定义阶段的主要工作有可行性研究与计划制定和需求分析等;软件开发阶段的主要工作有概要设计、详细设计和测试等;软件运行维护阶段的主要工作是软件的运行及后期的维护等。28.设 int x=1,y=1;表达式(!x-y)的值是( )。(分数:2.00)A.0 B.1C.2D.-1解析:解析 当逻辑或运算符两边的运算对象至少有一个为 1时,整个逻辑表达式的值是 1;如果两边的运算对象都为 0,则整个逻辑表达式的值为 0。题中!x=0,-y=0,所以整个表达式的值是 0。29.函数 fseek()的正确调用形式是( )。(分数:2.00)A.fseek(位移量,起始点,文件类型指针)
29、;B.fseek(文件类型指针,位移量,起始点); C.fseek(文件类型指针,起始点,位移量);D.fseek(起始点,位移量,文件类型指针);解析:解析 改变文件位置的指针函数 fseek()的调用形式:fseek(fp,offset,position);。fseek函数参数说明:“fp”是指向该文件的文件型指针;“offset”为位移量,指从起始点 position到要确定的新位置的字节数。也就是以起点为基准,向前移动的字节数。“position”为起始点,指出以文件的什么位置为基准进行移动,position 的值用整型常数表示,“0”表示文件的开头,“1”表示文件的当前位置,“2”表
30、示文件的末尾。30.若有下列定义(设 int类型变量占 2个字节):int i=8,j=9;则下列语句:printf(“i=%d,j=%d/n“,i,j);输出的结果是( )。(分数:2.00)A.i=8,j=9B.i=%d,j=%d C.i=%8,j=%9D.8,9解析:解析 本题考查 printf函数的格式。在 printf函数中,如果格式说明符中有两个%说明,则将第1个%后面的字符原样输出,并不输出其对应的变量值。31.表达式0x11 的值是( )。(分数:2.00)A.0xFFEE B.0x71C.0x0071D.0xFFE1解析:解析 本题主要考查按位求反运算和整型常量的表示:十六进
31、制整型常量的形式是以数字 0x或 OX开头的十六进制字符串;按位求反运算的规则是将二进制表示的运算对象按位取反,即将 1变0,将 0变 1。“0x11”即 0000 0000 0001 0001,进行按位求反运算“0x11”后为 1111 1111 1110 1110,即 0xFFEE。32.若有下列定义和语句:int u=011,v=0x11,w=11;printf(“%o,%x,%d/n“,u,v,w);则输出结果是( )。(分数:2.00)A.9,17,11B.9,11,11C.11,11,11 D.11,17,11解析:解析 在 C语言中,“%d”表示输出带符号的十进制整型数;“%x”
32、表示以十六进制无符号型输出整型数据(即不带前导 0x或 0X);“%o”表示以八进制无符号型输出整型数据(即不带前导 0)。33.下列说法正确的是( )。(分数:2.00)A.在 C语言中,可以使用动态内存分配技术定义元素个数可变的数组B.在 C语言中,数组元素的个数可以不确定,允许随机变动C.在 C语言中,数组元素的数据类型可以不一致D.在 C语言中,定义了一个数组后,就确定了它所容纳的元素的个数 解析:解析 本题考查数组的两个知识点:在 C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了;同一个数组中所有元素的类型是一样的。34.分析下列程序:
33、#includestdio.hmain()int*p1,*p2,*p;int a=6,b=9;p1=p2=p1=p2;p2=p;printf(“%d,%d“,*p1,*p2);printf(“%d,%d“,a,b);程序的输出结果为( )。(分数:2.00)A.9,6 6,9 B.6,9 9,6C.6,9 6,9D.9,6 9,6解析:解析 通过 p1=int*y;*pt;int a=1,2,b=3,4;struct st c2=10,a,20,b;pt=c;下列选项中表达式的值为 11的是( )。(分数:2.00)A.*pt-yB.pt-xC.+pt-x D.(pt+)-x解析:解析 由题目
34、的已知条件可知,Pt 指向结构体数组 c2的第一元素 cO,所以 pt-x=10,执行自加运算后为 11。36.下列函数值的类型是( )。fun(double x)float y;y=3*x-4;return y;(分数:2.00)A.int B.不确定C.voidD.float解析:解析 本题考查默认函数的函数值的类型。在函数调用时,尽管 y的类型是 float,x 的类型是double,但是因为函数定义时省去类型说明,系统默认函数值的类型为 int型,所以计算后的 y的类型是int型。37.下列程序的运行结果是( )。#inCludestdio.hmain()static char a=“
35、Languagef“,b=“programe“;Char*p1,*p2;int k;p1=a;p2=b;for(0;k=8;k+)if(*p1+k)=*(p2+k)printf(“%c“,*(p1+k);(分数:2.00)A.gae B.angC.programD.有语法错解析:解析 本题考查指针的用法,if(*(p1+k)=*(p2+k)语句的功能是判断两个数组中的字符是否相同,如果相同则输出。38.有下列程序段:int k=0,a=1,b=2,c=3;k=ab?b:a;k=kc?C:k;执行该程序段后,k 的值是( )。(分数:2.00)A.3B.2 C.1D.0解析:解析 因为 ab 成
36、立,所以条件表达式 ab?b:a 的值等于 b的值等于 2,因此变量 k的值等于2。又因为 k=2c=3 不成立,所以条件表达式 kc?c:k 的值等于 k的值等于 2。把条件表达式 kc?c:k的值赋给变量 k,因而变量 k的值等于 2。因此,选项 B)为正确答案。39.若有定义 int a10,*p=a,则 p+6表示( )。(分数:2.00)A.数组元素 a5的值B.数组元素 a5的地址C.数组元素 a6的地址 D.数组元素 a0的值加上 5解析:解析 指针中存放的是变量的地址,指针也可以进行加减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中 p+6指的是将指针向后
37、移动了 6个存储单元,指向 a6,存放的是 a6的地址。40.在嵌套使用 if语句时,C 语言规定 else总是( )。(分数:2.00)A.和之前与其具有相同缩进位置的 if配对B.和之前与其最近的 if配对C.和之前与其最近的且不带 else的 if配对 D.和之前的第一个 if配对解析:解析 C 语言的语法规定:else 子句总是与前面最近的不带 else的 if相结合,与书写格式无关。所以选项 C)为正确答案。二、填空题(总题数:15,分数:30.00)41.在算法的 4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的 1 特性。(分数:2.00)填空项 1:_ (正确答案:有
38、穷性)解析:解析 算法的 4个基本特性:可靠性、确定性、有穷性和拥有足够的情报。其中,算法的有穷性指的是算法必须在有限的时间内完成,即算法必须在执行有限个步骤之后终止。42.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于 1。(分数:2.00)填空项 1:_ (正确答案:线性结构)解析:解析 数据的逻辑结构,是指数据元素之间的逻辑关系,分为线性结构和非线性结构,常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。43.栈中允许进行插入和删除的一端叫做 1。(分数:2.00)填空项 1:_ (正确答案:栈顶)解析:解析 栈是限定在表的一端进行插入和删除操作的线性表。在
39、表中,允许插入和删除的一端叫做“栈顶”,不允许插入和删除的一端叫做“栈底”。44.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法,这称为对象的 1。(分数:2.00)填空项 1:_ (正确答案:封装性)解析:解析 对象具有 5个基本特点:标识唯一性;分类性;多态性;封装性;模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内部状态,对外是不可见的,对象的内部状态只能由其自身改变。45.软件工程研究的内容主要包括: 1 技术和软件工程管理。(分数:2.00)填空项 1:_ (正确答案:软件开发)
40、解析:解析 软件工程包括软件开发技术和软件工程管理。其中软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工具环境,其主体内容是软件开发方法学:软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。46.表达式 pow(2.8,sqrt(float(x)值的数据类型为 1 型。(分数:2.00)填空项 1:_ (正确答案:float)解析:解析 在此表达式中 x是 float类型的变量,经过开方所得到的结果仍是 float类型,再和 2.8进行运算时,应该先将 2.8转换成 float类型再运算,最后结果仍是 float型。47.下列表达式用于判断 y是否为闰年。闰年的判断条
41、件是:年号能被 4整除但不能被 100整除或年号能被 400整除,请填空 1。(分数:2.00)填空项 1:_ (正确答案:(y%4=0)i=_;printf(“%d/n“,i+=2);(分数:2.00)填空项 1:_ (正确答案:8)解析:解析 本题考查基本的 for循环条件,i+=2 表示 i每次递增 2,从 0开始,输出 5个整数则需要的条件是 i=8。50.下列的 for语句的循环次数为_。for(x=1,y=0;(y!=19)x+);(分数:2.00)填空项 1:_ (正确答案:6)解析:解析 分析程序可知,每循环一次,x 的值加 1,然后检测循环控制条件(y!=19)”从中指向的文
42、件中读入 n个字符放到 buf字符数组中,函数返回值为 1。(分数:2.00)填空项 1:_ (正确答案:buf 的首地址)解析:解析 考查 fgets-|_|-函数的功能,fsets-|_|-函数用来从文件中读入字符串。调用格式为:fgets(buf,n,fp)。此处,fp 是文件指针,buf 是存放字符串的起始地址,n是一个 int型变量。调用函数 fgets-|_|-时,最多能读入 n-1 个字符,系统自动在最后加字符串结束标志,并以 buf作为函数值返回。52.若有下列定义:int a=1,2,3,4,5,6,7,8,9,10,*p=a;,则值为 3的表达式为: 1。(分数:2.00)
43、填空项 1:_ (正确答案:p+=2,*(p+))解析:解析 由题可知 a2=3,因此只要使指针 p指向 a3,然后再引用指针的值就可以。53.若有说明 char s1=“That girl“,s2=“is beautiful“;则使用函数 strcmp(s1,s2)后,结果是 1。(分数:2.00)填空项 1:_ (正确答案:-1)解析:解析 strcmp(s1,s2)函数的作用是:对字符数组 s2和字符数组 s1进行比较。如果 s1s2,则返回负数;如果 s1=s2,则返回 0;如果 s1s2,则返回正数。54.在宏定义#define P13.14159 中,用宏名 PI代替一个 1。(分
44、数:2.00)填空项 1:_ (正确答案:字符串)解析:解析 本题考查字符替换格式:#define 标识符字符串。55.下列程序的输出结果是_。#includestdio.hsb(int s,int b)static int n=3;b=sn;n-;return(b);main()int s=1,5,6,8;int i,x=0;for(i=0;i4;i+)x=sb(s,x);printf(“%d“,x);printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:8651)解析:解析 在主程序,第一次循环时,i=0,调用 sb(s,x)子函数,此时 n=3,x=sn=s3=8,然后将n减 1变为 2;第二次循环时,i=1,调用 sb(s,x)子函数,因为将 n定义为了静态变量,所以此时 n=2,返回 x=sn= s2=6;第三次循环时,i=2,调用 sb(s,x)子函数,此时 n=1,返回 x=sn=s1=5;第四次循环时,i=3,调用 sb(s,x)子函数,此时 n=0,返回 x=sn=s0=1。此程序实际上是将数组 s逆序输出。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1