[计算机类试卷]国家二级(C语言)笔试模拟试卷139及答案与解析.doc

上传人:amazingpat195 文档编号:503303 上传时间:2018-11-29 格式:DOC 页数:24 大小:73.50KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)笔试模拟试卷139及答案与解析.doc_第1页
第1页 / 共24页
[计算机类试卷]国家二级(C语言)笔试模拟试卷139及答案与解析.doc_第2页
第2页 / 共24页
[计算机类试卷]国家二级(C语言)笔试模拟试卷139及答案与解析.doc_第3页
第3页 / 共24页
[计算机类试卷]国家二级(C语言)笔试模拟试卷139及答案与解析.doc_第4页
第4页 / 共24页
[计算机类试卷]国家二级(C语言)笔试模拟试卷139及答案与解析.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、国家二级( C语言)笔试模拟试卷 139及答案与解析 1 下列选项中,不是一个算法的基本特征的是 ( )。 ( A)完整性 ( B)可行性 ( C)有穷性 ( D)拥有足够的情报 2 结构化分析方法是面向 ( )的自顶向下、逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 3 下列工具中为需求分析常用工具的是 ( )。 ( A) PAD ( B) PFD ( C) N-S ( D) DFD 4 对线性表进行二分法检索,其前提条件是 ( )。 ( A)线性表以顺序方式存储,并按关键码值排好序 ( B)线性表以顺序方式存储,并按关键码的检索频率排好序 (

2、C)线性表以链式方式存储,并按关键码值排好序 ( D)线性表以链式方式存储,并按关键码的检索频率排好序 5 下列选项中不属于结构化程序设计方法的是 ( )。 ( A)自顶向下 ( B)逐步求精 ( C)模块化 ( D)可复用 6 关于结构化程序设计原则和方法描述错误的是 ( )。 ( A)选用的结构只准许有一个入口和一个出口 ( B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现 ( C)不允许使用 GOTO语句 ( D)语言中所没有的控制结构,应该采用前后一致的方法来模拟 7 软件需求分析阶段的工作,可以分为 4个方面:需求获取、需求分析、编写需求规格说明书以及 ( )。 ( A)阶段性

3、报告 ( B)需求评审 ( C)总结 ( D)都不正确 8 下列对于软件测试的描述中正确的是 ( )。 ( A)软件测试的目的是证明程序是否正确 ( B)软件测试的目的是使程序运行结果正确 ( C)软件测试的目的是尽可能多地发现程序中的错误 ( D)软件测试的目的是使程序符合结构化原则 9 用链表表示线性表的优点是 ( )。 ( A)便于随机存取 ( B)花费的存储空间较顺序存储少 ( C)便于插入和删除操作 ( D)数据元素的物理顺序和逻辑顺序相同 10 在数据库设计中,将 E-R图转换为关系模式的过程属于 ( )。 ( A)需求分析阶段 ( B)逻辑设计阶段 ( C)概念设计阶段 ( D)

4、物理设计阶段 11 c语言的基本单位是 ( )。 ( A)函数 ( B)过程 ( C)子程序 ( D)子函数 12 下列不正确的转义字符是 ( )。 ( A) ( B) t ( C) n ( D) 088 13 能正确表示 “当 x的取值在 1, 10和 100, 110范围内为真,否则为假 ”的表达式是 ( )。 ( A) (x =1) printf(“%d%dn“,x-,-y); ( A) 8 8 ( B) 7 7 ( C) 7 8 ( D) 8 7 16 若有 “double a;”,则正确的输入语句是 ( )。 ( A) scanf(“%1f“,a); ( B) scanf(“%f“,

5、 ( C) scanf(“%lf“, 17 下列选项中合法的赋值语句是 ( )。 ( A) a=b=34 ( B) a=34,b=34 ( C) i-1; ( D) m=(int)(x+y); 18 若整型变量 a、 b、 c、 d中的值依次为: 1、 4、 3、 2。则条件表达式 a b?a:cd?c:d的值是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 19 假定所有变量均已正确说明,下列程序段运行后 x的值是 ( )。 a=b=c=0;x=12; if(!a)x-; else x=5; if(C) x=3; else x=4; ( A) 11 ( B) 4 ( C)

6、 12 ( D) 3 20 设变量 a、 b、 c、 d和 y都已正确定义并赋值。若有下列 if语句 if(a B) if(c=D) y=0; else y=1; 该语句所表示的含义是 ( )。 ( A) ( B) ( C) ( D) 21 下列程序的运行结果是 ( )。 #include stdio.h main() int a=2,b=3,c=4; ifa B) if(b 0)c=0; else c+=1; printf(“%dn“,C) ; ( A) 2 ( B) 3 ( C) 5 ( D) 4 22 在下列给出的表达式中,与 while(E)中的 (E)不等价的表达式是 ( )。 (

7、A) (!E=0) ( B) (E 0E 0) ( C) (E=0) ( D) (E!=0) 23 有下列程序: #include“stdio.h“ main() int x=0; int y=0; while(x 7 x+; printf(“%d,%d“,y,x); 程序的输出结果是 ( )。 ( A) 0,7 ( B) 7,7 ( C) 0,6 ( D) 1,6 24 有下列程序: main() char s=“abcde“; S+=2; printf(“%dn“,s0); 执行后的结果是 ( )。 ( A)输出字符 a的 ASCII码 ( B)输出字符 c的 ASCII码 ( C)输出字

8、符 c ( D)程序出错 25 下列选项中非法的字符常量是 ( )。 ( A) t ( B) 039 ( C) , ( D) n 26 下列叙述中正确的是 ( )。 ( A) break语句只能用于 switch语句 ( B)在 switch语句中必须使用 default ( C) break语句必须与 switch语句中的 case配对使用 ( D)在 switch语句中,不一定使用 break语句 27 下列叙述中,错误的是 ( )。 ( A)在同一 C程序文件中,不同函数中可以使用名字相同的变量 ( B)在 main()函数体内定义的变量是全局变量 ( C)形参是局部变量,函数调用完成即

9、失去意义 ( D)若同一文件中全局和局部变量同名,则全局变量在局部变量作用范围内不起作用 28 C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是 ( )。 ( A)地址传递 ( B)值传递 ( C)由实参传给形参,并由形参传回给实参 ( D)由用户指定传递方式 29 设 q1和 q2是指向一个 float型一维数组的指针变量 , k为 float型变量,则不能正确执行的语句是 ( )。 ( A) k=*q1+*q2; ( B) q1=k; ( C) q1=q2; ( D) k=*q1*(*q2); 30 若有说明: int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是

10、( )。 ( A) p1: p2= ( B) p1=n; ( C) p1=*p2=p1; ( D) p1=p2=p1; 31 若希望下列的程序运行后输出 25,程序空白处的正确选项是 ( )。 main() int i,j=50,a=7,4,10,5,8; for( ) j+=ai; printf(“%d“,j-40); ( A) i=1;i 4;+i ( B) i=1;i 3;+i ( C) i=4;i 2;i- ( D) i: 2;i 4;+i 32 若有说明 int a3=1,2,3,4,5,6,7,8,9,则 a数组第一维的大小是 ( )。 ( A) 2 ( B) 3 ( C) 4 (

11、 D)无确定值 33 若二维数组 a有 m列,则在 aij刚前的元素 个数为 ( )。 ( A) i*m+j-1 ( B) i*m+j ( C) j*m+i ( D) i*m+j+1 34 函数调用 strcat(strcpy(str1,str2) ,str3) 的功能是 ( )。 ( A)将字符串 str1复制到字符串 str2中后再连接到字符串 str3之后 ( B)将字符串 str1连接到字符串 str2之后再复制到字符串 str3之后 ( C)将字符串 str2复制到字符串 str1中后再将字符串 str3连接到字符串 str1之后 ( D)将字符串 str2连接到字符串 str1之后

12、再将 字符串 str1复制到字符串 str3中 35 下列程序的输出结果是 ( )。 #include stdio.h f(int a) int b=0; static int c=4; a=c+;b+; return(a); main() int a=2,i,c; for(i=0;i 2;i+) C=f(a+); printf(“%dn“,c); ( A) 4 ( B) 7 ( C) 6 ( D) 5 36 #define能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏定义语句为 ( )。 ( A) #define f(x)5*x*x+5*x+5 ( B)

13、 #define f5*x*x+5*x+5 ( C) #definef(a)(5*a*a+5*a+5) ( D) #define(5*x*x+5*x+5)f(x) 37 定义结构体数组: struct stu int num; char name20; x5=1,“LI“,2,“ZHAO“,3,“WANG“,4,“ZHANG“,5,“LIU“; for(i=1;i 5;i+) printf(“%d%c“,xi.num,xi.name2; 以上程序段的输出结果为 ( )。 ( A) 2A3N4A5U ( B) 112A3H41 ( C) 1A2N3A4U ( D) 2H3A4H51 38 若有下

14、列说明和语句,已知 int型数据占 2个字节,则下列语句的输出结果是( )。 stmct st char a15; int b; double c; ; printf(“%d“,sizeof(struct st); ( A) 15 ( B) 8 ( C) 25 ( D) 2 39 设 int x=7,则 x的值是 ( )。 ( A) -8 ( B) -7 ( C) -1 ( D) 1 40 函数 ftell(fp)的作用是 ( )。 ( A)得到 fp所指向文件的当前读写位置 ( B)初始化流式文件的位置指针 ( C)移动流式文件的位置指针 ( D)以上三种答案均正确 41 数据结构分为逻辑结

15、 构和存储结构,循环队列属于 _结构。 42 队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作 _。 43 在一个容量为 32的循环队列中,若头指针 front=3,尾指针 rear=2,则该循环队列中共有个元素。 44 一棵二叉树第 6层 (根结点为第一层 ) 的结点最多为 _个。 45 度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 _。 46 执行以下程序后的输出结果是 _。 main( ) int a=10; a=(3*5,a+4);printf(“a=%dn“,a); 47 以下程序的输出结果是 _。 #include string.h ma

16、in( ) printf(“%dn“,strlen(“IBMn0121“); 48 已定义 char ch=$;int i=1,j;,执行 j!=ch case 1: case 2:return 1; return(fib(g-1) +fib(g-2); main( ) long k; k=fib(5); printf(“k=%51dn“,k); 50 下面程序的功能是输出数组 s中最大元素的下标,请填空。 main( ) int k,p,s =1,-9,7,2,-10,3; for(p=0,k=p;p 6;p+) if(sp sk)_ printf(“%dn“,k); 51 设有以下程序,为

17、使之正确运行,请在横线中填入应包含的命令行。 (注:try_me() 函数在 a: myfile.txt中有定义。 ) _ main( ) printf(“n“); try_me( ); printf(“n“); 国家二级( C语言)笔试模拟试卷 139答案与解析 1 【正确答案】 A 【试题解析】 作为一个算法,一般应该具有下列 4个特征: 可行性,即考虑到实际的条件能够达到一个满意的结果; 确定性,算法中的第一个步骤都必须是有明确定义的; 有穷性,一个算法必须在有限的时间内做完; 拥有足够的情报。 2 【正确答案】 C 【试题解析】 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向

18、下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。 3 【正确答案】 D 【试题解析】 需求分析常用的工具有数据流图 (DFD)、数据字典 (DD)、判定树和判定表。 PAD(问题分析图 )、 PFD(程序流程图 )、 N-S(盒式图 )都是详细设计的常用工具,不是需求分析的工具。 4 【正确答案】 A 【试题解析】 对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。 5 【正确答案】 D 【试题解析】 结构化程序设计的主要原则概括为自顶向下、逐步求精和限制使用GOTO语句。 6 【正确答案】 C

19、【试 题解析】 限制使用 GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用 GOTO语句。其他 3项为结构化程序设计的原则。 7 【正确答案】 B 【试题解析】 需求分析是软件定义时期的最后一个阶段。可以概括为 4个方面: 需求获取; 需求分析; 编写需求规格说明书; 需求评审。 8 【正确答案】 C 【试题解析】 软件测试是为了尽可能多地发现程序中的错误,尤其是发现至今尚未发现的错误。 9 【正确答案】 C 【试题解析】 在链表中因为除了存放数据元素之外,还要存放指针,所 以链表花费的存储空间要比顺序表还要多。在插入和删除数据元素时,只需要移动相应的记录指针即可。在链表中数

20、据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。 10 【正确答案】 B 【试题解析】 数据库设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。其中,逻辑设计的主要工作是将 E-R图转换为关系模式。 11 【正确答案】 A 【试题解析】 C语言是函数式的语言,它的基本组成单位是函数,在 C语言中任何程序都是由一个或者多个函数组成的。 12 【正确答案】 D 【试题解析】 是反斜线转义字符; t是水平跳格转义字符; n是换行转义字符; C语言中没有规定 088为转义字符。 13 【正确答案】 C 【试题解析】 本题考查逻辑与 (else y=1;是

21、 if(a b)语句的一个子句。所以整个C语句表达式的意思是:在 a b的情况下,如果 c=d则 y=0,否则 y=1。所以,选项 C)为正确答案。 21 【正确答案】 C 【试题解析】 本题考查 if else语句。第一个 if语句,先判断条件,发现 a b条件 成立,执行下列的语句:第二个 if语句,先判断条件,发现 b 0条件不成立,则执行与其配对的 else语句, c+=1,得 c=5。 22 【正确答案】 B 【试题解析】 在 while(E)中,表达式 E可以是 C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 B)中表达式 E 0E 0是一个逻辑表达式。

22、 23 【正确答案】 A 【试题解析】 本题考查 while循环。 y的值在 while循环的控制表达式中加 1,在循环体内减 1,所以总的 y值不变,且控制条件 +y永远非零。当 x加到 7时不满足循环条件,结束循环。 24 【正确答案】 D 【试题解析】 因为字符数组 s中的数组名 s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位。因而程序编译时出错。 25 【正确答案】 B 【试题解析】 选项 A)中, t表示的是横向跳若干格;选项 B)中, 039错误,039是八进制形式表示的字符,但其中出现了 9,所以错误;选项 C)中, ,是字符逗号:选项

23、D中, n表示的是回车换行。 26 【正确答案】 D 【试题 解析】 bteak为 C语言关键字,又称间断语句。 break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在 switch语句中,也可以出现在循环语句中。 default是关键字,起标号的作用,代表所有 case标号之外的那些标号。 default标号可以出现在语句体中任何标号位置上。在 switch语句体中也可以没有 default标号。 27 【正确答案】 B 【试题解析】 本题考查函数调用时变量的作用域。形参是局部变量,函数调用完就失去意义了,所以在同一个 C程序文件中,不同的函数体中可以使用名 字相同的局部变量。

24、 28 【正确答案】 B 【试题解析】 本题考查函数调用时的参数传递。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间只是实参将值传递给形参。 29 【正确答案】 B 【试题解析】 选项 A)是将指针 q1和 q2所指向的变量值相加,然后赋给 k;选项 B)中, float型数据和指针型数据之间不能进行赋值运算:选项 C)中,是两个指针变量之间的赋值;选项 D)中,是两个指针型变量所指向的两个 float型数据相乘。 30 【正确答案】 D 【试题解析】 本题 考查指针变量的赋值。选项 A)中, p1、 p2本身都是地址变量,不能再将 p1取地址赋给 p2;选项 B)中,不能

25、将整型数据直接赋值给指针型数据;选项 C)中, *p2代表了一个整型变量,而 *p2=p1这个语句试图把一个地址值放入一个整型变量中是错误的;选项 D)中指针间的赋值是正确的。 31 【正确答案】 D 【试题解析】 要想使程序输出是 25,则 i-40=25,j=65,而 j初值是 50,所以填入for循环中的语句,使引用的数组元素累加为 65-50=15即可。 32 【正确答案】 B 【试题解析】 本题考查二维数组第一维的大小如何确定。二维数组第一维的大小由下列规则确定: 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小; 当初值的个数不能被第二维的常量表达式的值除尽时

26、,第一维的大小等于所得商数加 1。 33 【正确答案】 B 【试题解析】 二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是 i,说明它前面还有 i行,有i*m个元素,数组第二维的下标是 i,说明它前面还有 i列,有 j个元素,所以共有 i*m+j个元素。 34 【正确答案】 C 【试题解析】 strcat(s1, s2) 是把 s2字符串连接到 s1字符串末尾, strcpy(s1,s2)是把 s2字符串复制给 s1字符串,要保证 s1能容纳下连接或复制后的字符串。 35 【正确答案】 D 【试题解析】 本题考查静态变量的使用方法和 fo

27、r循环。在函数调用时, static变量在函数调用结束后所作的所有变化均不保持,所以当 i=1时,第 2次进入 f函数时 c=5,所以最终 main函数中 c的值为 5。 36 【正确答案】 C 【试题解析】 带参数宏的格式为: #define标识符 (形参表 )形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。 37 【正确答案】 A 【试题解析】 本题主要考查结构体数组的使用。 xi.num为结构体 xi中的 num成员, xi.name2是结构体 xi中 name成员的第 3个元素。程序执行循环过程时:第 1次循环, i=1,输出 x1.num

28、, x1.name2的值,即 2A;第 2次循环,i=2,输出 x2.num,x2.name2的值,即 3N;第 3次循环, i=3,输出x3.num,x3.name2的值,即 4A;第 4次循环, i=4,输出 x4.num,x4.name2的值,即 5U。 38 【正确答案】 C 【试题解析】 本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。题中 int b占 2个字节, char a15占 15个字节, double c占 8个字节,所以共 25个字节。 39 【

29、正确答案】 A 【 试题解析】 本题主要考查按位求反运算和 C语言中正负数的表示, “0”代表正数, “1”代表负数: x=7的二进制为 00111,第 个 0代表正数, x为 11000,第一个 1代表负数,值为 8。 40 【正确答案】 A 【试题解析】 位置指针当前值函数 ftell()的基本调用格式为: fiell(fp)。 fiell()函数的参数说明: “fp”是指向文件的文件型指针。 fiell函数的功能:得到 fp所指向文件的当前读写位置,即位置指针的当前值,如果函数的返回值为 -1L,表示出错。 41 【正确答 案】 逻辑 【试题解析】 数据的逻辑结构主要是反映数据之间的逻辑

30、关系,而存储结构是用来反映数据的逻辑结构在计算机存储空间中的存放形式。循环队列主要是强调数据之间的关系,因此属于逻辑结构。 42 【正确答案】 队尾 【试题解析】 在队列中,允许插入的一端叫做 “队尾 ”,允许删除的一端叫做 “队头 ”。 43 【正确答案】 31 【试题解析】 设队列容量为 m,如果: rear front,则队列中元素个数为 rear-front;如果 rear front,则队列中元素个数为 m+(rear-riont)本题 rear front,则 m=32+(2-3)=31。 44 【正确答案】 32 【试题解析】 二叉树第 k层上,最多有 2k-1(k1)个结点。第

31、 6层的结点数最多是26-1=32。 45 【正确答案】 45 【试题解析】 对于长度为 N的线性表,在最坏情况下 (即线性表中元素现在的顺序与目标顺序正好相反 ),冒泡排序需要经过 N/2遍的从前往后的扫描和 N/2遍的从后往前的扫描,需要的比较次数为 N(N-1)/2。 46 【正确答案】 a=14 【试题解析】 本题考查的是表达式的优先 级问题。先计算表达式 3*5=15,再计算 a+4=14,将数据 14赋值给 a,根据 printf( )函数内的输出格式控制串,最后的输出结果应为 “a=14”。 47 【正确答案】 9 【试题解析】 本题的字符串中共有 9个字符,它们分别是 I、 B、 M、 n、0、 1、 2、 1、 ,其中, “n”表示换行, “”表示反斜杠字符 “”,所以本题的最后输出结果为 9。 48 【正确答案】 1 【试题解析】 在执行逻辑表达式 “j=!ch”。 51 【正确答案】 #include a:myfile.txt 【试题解析】 本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义 函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用 ginclude文件包含命令将定义函数的文件包含进来。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1