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

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

1、国家二级( C语言)笔试模拟试卷 275 及答案与解析 1 下列说法不正确的是 ( )。 ( A) C程序是以函数为基本单位的,整个程序由函数组成 ( B) C语言程序的一条语句可以写在不同的行上 ( C) C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 ( D) C程序的每个语句都以分号结束 2 下列叙述中正确的是 ( )。 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其 空间复杂度必定小 ( D)上述三种说法都不对 3 下列叙述中,不属于软件需求规格说明书的作用的是 (

2、A)便于用户、开发人员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确认测试和验收的依据 ( D)便于开发人员进行需求分析 4 下面的叙述正确的是 ( )。 ( A)程序设计就是编制程序 ( B)程序的测试必须由程序员自己去完成 ( C)程序经份试改错后还应进行再测试 ( D)程序经调试改错后不必进行再测试 5 算法一般都可以用 _控制结 构组合而成。 ( A)循环、分支、递归 ( B)顺序、循环、嵌套 ( C)循环、递归、选择 ( D)顺序、选择、循环 6 下列模式中,能够给出数据库物理存储结构与物理存取方法的是 ( )。 ( A)内模式 ( B

3、)外模式 ( C)概念模式 ( D)逻辑模式 7 在面向对象方法中, ( )描述的是具有相似属性与操作的一组对象。 ( A)属性 ( B)事件 ( C)方法 ( D)类 8 在 32位计算机中,一个字长所占的字节数为 ( A) 1 ( B) 2 ( C) 4 ( D) 8 9 对长度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 _。 ( A) log2n ( B) n/2 ( C) n ( D) n+1 10 软件是指 ( A)程序 ( B)程序和文档 ( C)算法加数据结构 ( D)程序、数据与相关文档的完整集合 11 以下合法的十六进制数是 ( A) 0x ( B) 0x4d

4、e ( C) 0x1h ( D) oX77 12 以下是 while语句的基本形式: while(表达式 )语句; 其中 “表达式 ”( )。 ( A)必须是逻辑表达式 ( B)必须是关系表达式 ( C)必须是逻辑表达式或关系表达式 ( D)可以是任意合法的表达式 13 在学校中, “班级 ”与 “学生 ”两个实体集之间的联系属于 ( )关系。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 14 以下程序的运行结果是 int k=0; void fun(int m) m+=k;k+=m;printf(“m=%d k=%d “,m,k+); main() int i=4; fu

5、n(i+); printf(“i=%d k=%dn“,i,k); ( A) m=4 k=5 i=5 k=5 ( B) m=4 k=4 i=5 k=5 ( C) m=4 k=4 i=4 k=5 ( D) m=4 k=5 i=4 k=5 15 下列叙述中错误的是 ( A)一个 C语言程序只能实现一种算法 ( B) C程序可以由多个程序文件组成 ( C) C程序可以由一个或多个函数组成 ( D)一个 C函数可以单独作为一个 C程序文件存在 16 以下叙述中错误的是 ( A) C语句必须以分号结束 ( B)复合语句 在语法上被看作一条语句 ( C)空语句出现在任何位置都不会影响程序运行 ( D)赋值表

6、达式末尾加分号就构成赋值语句 17 表达式 (double)(20 3)的值为 ( ) ( A) 6 ( B) 6 ( C) 2 ( D) 3 18 下列叙述中正确的是 _。 ( A) C语言编译时不检查语法 ( B) C语言的子程序有过程和函数两种 ( C) C语言的函数可以嵌套定义 ( D) C语言中,根据函数能否被其他源文件调用,被区分为内部函数和外部函数 19 下列关于 C语言用户标识符的叙述中正确的是 ( )。 ( A)用户标识符中可以出现下划线和中划线 (减号 ) ( B)用户标识符中不可以出现中划线,但可以出现下划线 ( C)用户标识符中可以出现下划线,但不可以放在用户标识符的开

7、头 ( D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 20 若有以下程序段 int m=0xabc, n=0xubc; m-=n; printf(“%Xn“,m); 执行后输出结果是 ( A) 0X0 ( B) 0x0 ( C) 0 ( D) 0XABC 21 若变量 a, b已正确定义,且 b已正确赋值,则合法的语句是 ( )。 ( A) b=double(b); ( B) +b; ( C) a=a+=5; ( D) a=double(b); 22 有以下程序 #include stdio.h void fun(char *t,char *s) while(*t!=0

8、) t+; while(*t+=*s+)!=0); main( ) char ss10=“acc“,aa10=“bbxxyy“; fun(ss,aa); printf(“%s,%sn“,ss,aa); 程序的运行结果是 ( A) accxyy,bbxxyy ( B) acc,bbxxyy ( C) accxxyy,bbxxyy ( D) accbbxxyy,bbxxyy 23 下列二维数组的说明中,不正确的是 ( )。 ( A) float a4=0,1,8,5,9; ( B) int a34; ( C) )#define N 5 float a N3; ( D) int a 29.5; 24

9、 下列标识符不是关键字的是 ( )。 ( A) break ( B) char ( C) Switch ( D) return 25 下列程序的输出结果是 ( )。 #include stdio.h main() iut a 2,b 3,p; p f(a,b) ; printf(“%d“,p); intf(a,b) int c; if(a b) c 1; e1Seif(a b) c 0; else(3 -1; return(c) ; ( A) -1 ( B) 0 ( C) 1 ( D) 2 26 以下能正确定义一维数组的选项是 _。 ( A) int a5=0,1,2,3,4,5; ( B)

10、char a=0,1,2,3,4,5; ( C) char a=A, B, C; ( D) int a5=“0123“; 27 设 q1和 q2是指向一个 float型一维数组的指针变量, k为 float型变量,则不能正确执行的语句是 ( )。 ( A) k=*q1+*q2; ( B) q1=k; ( C) q1=q2; ( D) k=*q1*(*q2); 28 下面的程序段运行后 ,输出结果是 int i,j,x=0; static int a88; for(i=0;i main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case

11、 0:a+; break; case 1: b+; break; case 2:a+; b+; break; case 3:a+; b+; printf(“a=%d,b=%dn“,a,b); 52 下面程序的输出结果是【 】。 #include main() static char a=“ language“ ,b=“ program“; char *ptr1=a, *ptr2=b; int k; for(k=0;k #inculde void Fun(char*str) char temp;int n,I; n=strlen(str); temp=strn-1; For(i=n-1;i0;i

12、-) stri=stri-1; str0=temp; main() char s50; ScanF(“%s”,s);Fun(s);printF(“%sn”,s); 程序运行后输入: aBcDeF回车,则输出结果是【 】 国家二级( C语言)笔试模拟试卷 275 答案与解析 1 【正确答案】 C 【试题解析】 本题涉及 C语言基本的 3个知识点: C语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数; C语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句; 注释行虽然对程序的运行不起作用,但 是它可

13、以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。 2 【正确答案】 D 【试题解析】 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所渭算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。算法的时间复杂度和空间复杂度没有直接关系。 3 【正确答案】 D 【试题解析】 软件需求规格说明书 (SRS,Software Requirement Specification)是需求分析阶段的最后成果 ,是软件 开发中的重要文档之一。它具有以下几个方面的作用 : 便于用户、开发人员进行理解和交流 ; 反映出用户问题的结

14、构 ,可以作为软件开发工作的基础和依据 ; 作为确认测试和验收的依据。 4 【正确答案】 C 【试题解析】 程序调试的任务是诊断和改正程序中的错误,改正以后还需要再测试。 5 【正确答案】 D 【试题解析】 算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。 6 【正确答案】 A 【试题解析】 内模式能够给出数据库物理存储结构与物理存取方法;外模式是用户的数据视图:概念模式是全体用户公共数据视图;没有逻辑模式。 7 【正确答案】 D 【试题解析】 类 (class)描述的

15、是具有相似属性与操作的一组对象,而一个具体对象则是其对应类的一个实例。 8 【正确答案】 C 【试题解析】 字长是指计算机能够同时处理的二进制数据的位数。 9 【正确答案】 C 【试题解析】 顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素 不在线性表中,贝需要与线性表中所有的元素进行比较。对长度为 n 的线性表进行顺序查找,在最坏隋况下需要比较 n 次。 10 【正确答案】 D 【试题解析】 本题考查软件的定义。软件是计算机系统中与硬件相互依存得另一部分,它包括程序、相关数据及其说明文档得总和。因此,本题得正确答案是选项 D。 11 【正确答案】 B 12 【正确答案】 B

16、 【试题解析】 由程序可知,函数 fun(int a, intb)是一个递归函数。所以当主函数中调用 fun(4, 2)时,其执行过程如 F:劬 (4, 2)-fun(3, 1)-fun(2, 0),其返回值为 2。所以正确答案为选项 B。 13 【正确答案】 B 14 【正确答案】 B 【试题解析】 由于在 main()函数中 ,变量 i=4,所以就调用 fun(4),则输出 “m=4 k=4“。然后变量 k 增 1等于 5,变量 i增 1等于 5,所以 main()函数的 “printf(“i=%d k=%dn“,i,k);“语句输出 “i=5 k=5“ 15 【正确答案】 A 【试题解析

17、】 一个 C程序可以有一个或多个程序文件 ,也可以有一个或多个函数 ,所以一个 C语言程序可以实现 多种算法。 16 【正确答案】 C 【试题解析】 C语句必须以分号结束,选项 A是正确的。复合语句在语法上被看作一条语句,选项 B也是正确的。空语句也算是一条语句,因此如果空语句出现在条件或者循环语句中,一样会被当作条件子句或者循环体来看待,所以选项 c是错误的。赋值表达式末尾加分号就构成赋值语句,选项 D正确。故本题应该选择 C。 17 【正确答案】 B 18 【正确答案】 D 【试题解析】 选项 A的错误在于编译过程中是险查语法的,若发现源程序有语法错误,则系统会提示出错信息;选项 B的错误

18、在 于 C语言中,子程序的作用是由函数来完成的,无过程的概念;选项 C的错误在于函数不可以嵌套定义,但可以嵌套调用。 19 【正确答案】 B 【试题解析】 在 C语言中,合法的标识符由字母、数字和下划线组成 (故选项 A不正确 ),并且第一个字符必须为字母或者下划线 (故选项 C和选项 D不正确 )。故B 为所选。 20 【正确答案】 C 【试题解析】 C语言中的自反赋值运算符。 “m-=n”相当于 “m=m-n”,两个相等的数相减,其值为 0。 21 【正确答案】 B 【试题解析】 要解答此题只要知道两个 知识点: 在 C语言中规定进行强制类型转换的格式是: (double)变量名; 在 C

19、语言中不允许给表达式赋值。 22 【正确答案】 D 【试题解析】 本题中 fun函数实现了字符串函数 strcat的功能,将字符串 aa连接到字符串 ss的末尾。调用 fun 函数时,形参 t和 s分别指向了字符串 ss和 aa,然后通过一个 while循环使 t指向字符串 ss的结束符的位置,第二个 while循环将字符串 aa中的字符 (包括结束符 “0”)逐个复制到字符串 ss的末尾处。 23 【正确答案】 D 【试题解析】 C语言规 定,对于二维数组,只可以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式;二维数组的一般定义格式是:类型说明符数组名 常量表达式 常量

20、表达式 )。 24 【正确答案】 C 【试题解析】 break、 char、 return、 switch 都是 C语言中的关键字, Switch 不是。因为 C语言区分字母的大小写。 25 【正确答案】 A 【试题解析】 本题考查 if else语句。在 intf(a,B)中:第一个 if语句,先判断条件,发现 a b条件不成立,则执行与其配对的 else语句: 第二个 if 语句,先判断条件,发现 a b条件不成立,则执行与其配对的 else语句, c -1。 26 【正确答案】 B 27 【正确答案】 B 【试题解析】 选项 A)是将指针 q1和 q2所指向的变量值相加,然后赋给 k;选

21、项 B)中, float型数据和指针型数据之间不能进行赋值运算:选项 C)中,是两个指针变量之间的赋值:选项 D)中,是两个指针型变量所指向的两个 float型数据相乘。 28 【正确答案】 C 【试题解析】 本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析 可知 ,程序中的双重循环定义了一个如下的二维数组 : 0 1 2 2 3 4 4 5 6 由于数组的下标是从 0开始的 ,所以二维数组元素 aij表示的是二维数组 a的第i+1行、第 j+1列对应位置的元素。 29 【正确答案】 D 【试题解析】 本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点: 在

22、对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取 0。 二维数组第一维的大小由下列规则确定;当初值的个数能被第二维的常量表达式的值除尽时, 所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加 1。 30 【正确答案】 D 【试题解析】 本题考核的知识点是函数的返回值作为函数参数的应用。主函数中首先定义了 4个整型变量 x、 y、 z和 r,并分别给 x、 y、 z赋初值为 3、 8、 6,接着调用一个 fun()函数,并将返回值赋给变量 r。其中将 fun(x, y)函数的返回值和 2*z作为 fun()函数的两个参数。在内

23、层 fun(x,y)函数中,将 x的值和 y的值传给形参 a和 b,此时 a和 b的值分别为 3和 8,执行 if语句,由于 if 后面判断条件表达式 “a b”为假,所以执行 else后面的语句,返回值为 8。此时,外层 fun(x,y)函数两个参数为 8和 2*z=12,所以 r的赋值语句相当于 r=fun(8,12),同上分析可知fun(8,12)返回值为 12,因此最后 r的值为 12。所以, 4个选项中选项 D符合题意。 31 【正确答案】 B 【试题解析】 字符串复制函数 strcpy包含在头文件 string.h 中,因此,程序中的第 1行文件包含命令是错误的。 32 【正确答案

24、】 C 33 【正确答案】 B 34 【正 确答案】 A 【试题解析】 本题 main 函数中定义了指针 p 和二维数组 a,通过函数 amovep将数组的值存入指针 p所指向的存储单元中, a的各元素分别为: a00=1,a01=3, a02=5, a10=2, a11=4, a12=6, a20=0, a21=0。通过 malloc()函数给指针分配内存空间, free()函数用于释放指针变量所用内存空间。在主函数中通过 amovep(p,a,3)调用函数 amovep,使得实参 p与形参 p,实参数组 a与形参中指向数 组的指针变量共用同一存储空间。最后输出 p2, p5为56。 35

25、【正确答案】 C 【试题解析】 feof 函数用来判断文件是否结束,如果遇到文件结束,函数 feof(fp)的值为 1,否则为 0。 36 【正确答案】 D 【试题解析】 因为 0是字符串结束标记,而 fun 函数中的第一个 while循环从字符串 a的第一个字符开始,直到碰到 0时结束循环,所以其作用就是将字符串 a的长度记录到变量 num中。而第二个 while循环从 b0开始,将字符串 b中的字符依次复制到字符串 a的结尾处, 直到 bn为假,即 bn为字符串结束标志 0时,所以最后返回的 num保存了字符串 a和 b 的长度之和。故应该选择 D。 37 【正确答案】 D 【试题解析】

26、main 函数的参数通常有两个,前者为整型,后者为字符型指针数组。参数的名字可以是任意合法的标识符。而且,形如 *av与 *av等价,所以选项 A、 B、 C均正确,选项 D是错误的。 38 【正确答案】 A 39 【正确答案】 B 【试题解析】 本题考查函数调用时的参数传递。在执行函数 func时,由于全局定义了一个变量 b,所以在函数 体中执行时 b=2+1=3,最终 t=2+3=5。 40 【正确答案】 A 【试题解析】 本题涉及字符数组和指针两个知识点: 在 C语言中,字符型数组在存放字符串时会自动在末尾加上 0,所以题中数组 str有 11个元素; ptr指向数组 str的首地址,

27、ptr+10是指向 sb10, *(ptr+10)是引用 str10的值。 41 【正确答案】 B 【试题解析】 本题选项 A、 C和 D均能完成 5!的计算,选项 B不能完成此计算,因为在循环过程中,第一次循环都将结果重新初始化,最后得到结果为 5。 42 【正确答案】 叶子结点 【试题解析】 树中度为零的结点,也就是没有后件的结点,称为叶子结点。 43 【正确答案】 类 【试题解析】 在面向对象的方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。 44 【正确答案】 概要 /初步 45 【正确答案】 共享性 【试题解析】 数据库技术的主要特点有以下几个方面:数据的集

28、成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。 46 【正确答案】 exit 【试题解析】 在 Windows 环境下进入 MS-DOS 后,返回的命令是 exit。 47 【正确答案】 j%3!=0或 j%3 【试题解析】 题目要求输出 100以内能被 3整除且个位数为 6的所有整数,且通过 for循环实现,循环体内 j=i*10+6;这也就满足了个位数为 6的条件,所以第 1个空格填入 i 10或 i =9; if 语句中的 continue说明如果条件不成立则不输出 j,所以第 2空填 j%3!=0或 j%3。 48 【正确答案】 12 【试题解析】 本题中 n1=1

29、-0=1,n2=110+(2-0)=10+2=12。 49 【正确答案】 23 50 【正确答案】 24 【试题解析】 当 front rear时循环队列中元素的个数为 rear-front,当 frontrear时,循环队列中元素的个数为 N(N为循环队列容量 )-front+rear。此题中front=5 rear=29,因此该循环队列中共有 29-5=24个元素。 51 【正确答案】 a=2,b=1 【试题解析】 本题考查了 switch 结构的内容。 C语言中 ,程序执行完一个 case标号的内容后 ,如果没有 break 语句 ,控 制结构会转移到下一个 case继续执行 ,因为ca

30、se 常量表达式只是起语句标号作用 ,并不是在该处进行条件判断。本题程序在执行完内部 switch 结构后 ,继续执行了外部 switch 结构的 case 2:分支 ,最后 a和 b 的值分别为 2和 1。 52 【正确答案】 ga 【试题解析】 考查了用字符指针处理字符串的方法。用字符指针处理字符串 ,首先要使指针指向这个字符串 ,即题中的 ptr1=a 和 ptr2=b,然后就是通过指针的移动可以引用到字符串中的每一个字符。题中的 *(ptr1+k)是使指针 ptr1向后移动 k个位置 ,然后取出指向的字符。 53 【正确答案】 60 【试题解析】 程序中定义 a是一个 3行 2列的二维

31、数组, p 是指向两个元素的一维数组指针,并让 p 指向二维数组 a的首行。则代码 *(*(p+2)+1)中的 p+2指向二维数组 a的第三行 a2, *(p+2)指向 a20, *(p+2)+1指向 a21, *(*(p+2)+1)是引用 a2 1,其值是 60。 54 【正确答案】 (double*) 【试题解析】 一般用 malloc函数为变量分配存储单元时,要在前面用强制类型转换符说明该 存储单元中数据的类型。本题要为指向双精度浮点型数据的指针变量 p 分配存储单元,因此用 (double*)说明。 55 【正确答案】 2 56 【正确答案】 unsigned int getbits( ) value&0100000 z value+1 57 【正确答案】 fabcde 【试题解析】 在函数 fun中,先求出字符串 str的长度,并将最后一个字符暂存到 temp 中,然后使用循环语句将所有字符向右移动一个位置,最后将 temp 中的字符放到字符串的第 1个位置,所以结果为 fabcde。

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

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

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