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

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

1、国家二级( C语言)笔试模拟试卷 234 及答案与解析 1 下列选项中不符合良好程序设计风格的是 _。 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 goto语句 ( D)模块设计要保证高耦合、高内聚 2 已经定义 ch为字符型变量,以下赋值语句中错误的是 _。 ( A) ch=; ( B) ch=62+3; ( C) ch=NULL; ( D) ch=xaa; 3 设计数据库的存储结构属于 ( ) ( A)需求分析 ( B)概念设计 ( C)逻辑设计 ( D)物理设计 4 在数据库系统中,用户所见的数据模式为 ( )。 ( A)概念模式 ( B)外模式 ( C)内

2、模式 ( D)物理模式 5 关系数据库的概念模型是 _的集合。 ( A)关系模型 ( B)关系模式 ( C)关系子模式 ( D)存储模式 6 下列叙述中,不属于软件需求规格说明书的作用的是 _。 ( A)便于用户、开发人员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确认测试和验收的 依据 ( D)便于开发人员进行需求分析 7 下列数据结构中具有记忆功能的是 ( )。 ( A)队列 ( B)循环队列 ( C)栈 ( D)顺序表 8 下列工具中为需求分析常用工具的是 _。 ( A) PAD ( B) PFD ( C) N-S ( D) DFD 9 源

3、程序的文档化不包括 ( )。 ( A)符号名的命名要有实际意义 ( B)正确的文档形式 ( C)良好的视觉组织 ( D)正确的程序注释 10 在软件开发中,需求分析阶段产生的主要文档是 ( A)软件集成测试计划 ( B)软件详细 设计说明书 ( C)用户手册 ( D)软件需求规格说明书 11 设 x, y和 z都是血型变量,且 x=3, y=4, z=5,则下面表达式中,值为 0的表达式是 ( A) xb=c;c=a; ( D) /*this is a program*/ 20 在以下各标识符中,合法的用户标识符是 ( ) ( A) 1 ( B) table_1 ( C) 0_t ( D) k

4、% 21 下列程序的运行结果是 ( )。 #include stdio h main() int a=0,b=4, c=0, d=10, x; if(a) d=d-10; else if(!b) if(!c) x=15; else x=25; printf(“%dn“, d); ( A) 5 ( B) 3 ( C) 20 ( D) 10 22 设函数 fun的定义形式为: void fun(char ch,float x) 则以下对函数 fun的调用语句中,正确的是 _。 ( A) fun (“abc“,3.0); ( B) t=fun(D,16.5); ( C) fun(65,2,8); (

5、 D) fun(32,32); 23 下列选项中错误的说明语句是 ( A) char a=t,o,y,o,u,0; ( B) char a=“toyou0“; ( C) char a=“toyou0“; ( D) char a=toyou0; 24 若 ch为 char型变量, k为 int型变量 (已知字符 a的 ASCII码是 97),则执行下列语句后输出的结果为 ( )。 ch b; k 10; printf(“%x,%o,“,ch,ch,k); printf(“k %dn“,k); ( A)因变量类型与格式描述符的类型不匹配,输出无定值 ( B)输出项与格式描述符个数不符,输出为 0值

6、或不定值 ( C) 62,142,k %d ( D) 62,142,k %10 25 下列能正确进行字符串赋值的是 ( )。 ( A) char s5=“ABCDE“; ( B) char s5=A, B, C, D, E); ( C) char*s; s=“ABCDE“; ( D) char*s; printf(“ s“, s); 26 执行下面的程序后, a的值为 ( )。 main() int a, b; for(a=1, b=1, a =10; a+) if(b 3=1) b+=3; continue; b-=5; ( A) 7 ( B) 8 ( C) 9 ( D) 10 27 设 x

7、=015,则 x=x 017的值是 ( )。 ( A) 00001111 ( B) 11111101 ( C) 00000010 ( D) 11000000 28 数据处理的最小单位是 _。 ( A)数据 ( B)数据元素 ( C)数据项 ( D)数据结构 29 下面程序的输出结果是 _。 main() int a=6,b=3; printf(“%dn“ b=(a/b, a%b); ( A) 0 ( B) 1 ( C) 2 ( D)不确定的值 30 若已定义 c为字符型变量,则下列语句中正确的是 ( )。 ( A) c=97 ( B) c=“97“; ( C) c=97; ( D) c=“a“

8、; 31 以下关 于字符串的叙述中正确的是 ( )。 ( A) C语言中有字符串类型的常量和变量 ( B)两个字符串中的字符个数相同时才能进行串符串大小的比较 ( C)可以用关系运算符对字符串的大小进行比较 ( D)空串一定比空格打头的字符串小 32 C语言中 while循环和 do-while循环的主要区别是 _。 ( A) do-while的循环体至少无条件执行一次 ( B) while的循环控制条件比 do-while的循环控制条件严格 ( C) do-while允许从外部转到循环体内 ( D) do-while的循环体不 能是复合语句 33 有如下说明: int a10=1,2,3,4

9、,5,6,7,8,9,10,*p=a;则数值为 9的表达式是_。 ( A) *p+9 ( B) *(p+8) ( C) *p+=9 ( D) p+8 34 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。 ( A)地址传递 ( B)单向值传递 ( C)由实参传递给形参,再由形参传递给实参 ( D)传递方式由用户指定 35 执行下面的程序后, a的值为 main() int a, b; for(a=1,b=1; a =100; a+) if(b =20)break; if(b%3=1) b+=3; continue; b-=5; ( A) 7 ( B) 8 ( C) 9 (

10、 D) 10 36 定义 int*swap()指的是 _。 ( A)一个返回整型值的 函数 swap() ( B)一个返回指向整型值指针的函数 swap() ( C)一个指向函数 swap()的指针,函数返回一个整型值 ( D)以上说法均错 37 设有数组定义: chararray=“China“;则数组 array所占的空间为 ( )个字节。 ( A) 4 ( B) 5 ( C) 6 ( D) 7 38 要求以下程序的功能是计算 main() int n;float s; s=1.0; for(n=10;n 1;n-) s=s+1/n; pfintf(“%6.4fn“,s); 程序运行后 输

11、出结果错误,导致错误结果的程序行是 ( A) s=1.0; ( B) for(n=10;n 1;n-) ( C) s=s+1/n; ( D) printf(“%6.4fn“,8); 39 以下函数调用语句中含有 _个实参。 func(exp1,exp2),(exp3,exp4,exp5); ( A) 1 ( B) 2 ( C) 4 ( D) 5 40 设 x、 y、 z、 t均为 int型变量,则执行以下语句后, t的值是 ( ) x y l; t + + x | | + + y if(a b) if(b 0) c=0; else c+; printf(“%dn“,c); 47 下面程序的输出

12、结果是 _。 main() static char a=“language“, b=“program“; char *ptrl=a, *ptr2=b; int k for(k=0; k 7; k+) if(*(ptrl+k)=*(ptr2+k) printf(“%c“, *(ptr1+k); 48 在树形结构中,没有前件的结点是 ( )。 49 以下程序运行后的输出结果是 ( )。 struct NODE int k; struct NODE*link; ; main() struct NODE m5,*p=m,*q=m+4; int i=0; while(p!=q) p- k=+i;p+;

13、q- k=i+;q-; q- k=i; for(i=0;i 5;i+)printf(“%d“,mi.k); printf(“n“); 50 下面程序的运行结果是 _。 #include stdio.h main() void inc1(); void inc2(); inc1(); inc1(); inc1(); inc2(); inc2(); inc2(); void inc1() int x=0; x+; printf(“in inc1 x=%dn“, x); void inc2() static int x=0; x+; printf(“in inc2 x=%dn“, x); 51 若有

14、定义 doublea 5;,则 a数组元素下标的上限为 _。 52 下列程序的运行结果是【 】。 main() int i; for(i=1; i =5; i+) f(i); f(j) int j; static int a=1000; auto int k=1; +k; printf(“ d+ d+ d= dn“, a, k, j, a+k+j); a+=10; 53 若有定义 int a44=1, 2, 3, 4, 0, 4, 6, 8, 10, 1, 3, 5, 7,则初始化后, a11得到的初值是 _。 54 下列程序的输出结果是 _。 long fun5(int n) ( long

15、s; if(n=l)(n=2) s=2; else s=n+fun5(n-1); return(s); main() long x; x=fun5(4); printf(%1dn“,x); 55 下面程序把从终端读入的 10个整数以二进制的方式写到一个名为 bi dat的新文件中。请填空。 #include stdio h FILE * fp; main() int i, j; if(fp fopen(【 】, “wb“); NULL)exit(0); for(i 0; i 10; i+) scanf(“%d“, &j); fwrite(&j, sizeof(int), 1,【 】 ); fc

16、lose(fp); 56 设有定义语句: int a3=0, 12;,则数组元素 a12的值是【 】。 国家二级( C语言)笔试模拟试卷 234 答案与解析 1 【正确答案】 D 【试题解析】 程序设计的风格主要强调:清晰第一,效率第二。主要应注重和考虑下述一些因素: 源程序文档化; 数据说明,其主要包括数据说明的次序规范化、说明语句中变量安排有序化、使用注释来说明复杂数据的结构; 语句的结构。在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚,低耦合。 2 【正确答案】 A 【试题解析】 对字符变量赋值时,即可以赋一字符常量,也可以赋 0 255的整数,该整数表示字符常量的 AS

17、CII值。本题中选项 B 是将 65 赋值给 ch,表示字符 A;选项 C中 NULL 是 C语言中的符号常量,其值为 0;选项 D是将一个转义字符赋值给 ch,该字符的 ASCII值为 aa,其中 aa是十六进制;选项 A错误。 3 【正确答案】 D 【试题解析】 物理设计阶段主要解决选择文件存储结构和确定文件存取方法的问题,包括选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。 4 【正确答案】 B 【试题解析】 数据库系统的三级模式: 概念模式:数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图; 外模式:也称子模式与用户模式,是用户的数据视图,也就是用户所见到的数据模

18、式; 内模式:又称物理模式,它给出了数据库物理存储结构与物理存取方法。 5 【正确答案】 B 【试题解析】 数据库的概念模型体现了数据之间的关系,它是各种数据之间相互关系的集合。 6 【正确答案】 D 【试题解析】 软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。它不能方便开发人员进行需求分析。 7 【正确答案】 C 【试题解析】 由栈的定义可知,栈是先进后出 (或后进先出 )的线性表, 因此,栈具有记忆功能。 8 【正确答案】 D 【试题解析】 常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析的常用工具有:数据流图 (DFD)、数据字典 (DD)、

19、判定树和判定表等。 9 【正确答案】 B 【试题解析】 源程序的文档化主要包括 3点, 符号名应具有一定实际的含义,便于理解程序功能; 正确的程序注释; 良好的视觉组织 (利用空格、空行、缩进等技巧使程序层次清晰 )。 10 【正确答案】 D 【试题解析】 软件需求规格说明书是需求分析阶段的最后成果,是软 件开发中的重要文档之一。 11 【正确答案】 D 【试题解析】 该题考查逻辑与 “&”和逻辑或 “”以及逻辑非 “!”符号的用法。选项 A)即 3&4为真;选项 B)即 3 =4为真;选项 C)是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接停止执行逻辑或右半部分程序,因

20、为 x的值为真;此时选项 C)变为 1&-1为真。选项 D)不用计算,括号内逻辑或右边的值为 1,因而括号内的值为 1,再进行逻辑非运算得 0。 12 【正确答案】 C 13 【正确答案】 C 14 【正确答案】 B 【试题解析】 因 x为 2,所以 !x 时表达式值为 0,因 y为 1, y-表达式的值为 1然后自减 1, y为 0,所以 !xy-时表达式的值为 1。 15 【正确答案】 D 【试题解析】 本题考查 scanf()函数的调用形式: scanf(格式字符串,输入项地址表 )。 “格式字符串 ”是要输入的变量的格式符; “输入项地址表 ”是要输入的变量的地址。 16 【正确答案】

21、 B 【试题解析】 选项 A) 中包含一个不合法的运算符 “:=”;选项 C) 应改为(int)18.5%3;选项 D) 可理解为两个表达式: a+7=c+b 和 a=a+7,因为 C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等,所以 a+7=c+b 是错的。因此,正确答案是选项 B) ,它相当于 a=(b =c+2),可分解为两个表达式: b=c+2和 a=b。 17 【正确答案】 B 【试题解析】 本题考核的知识点是自增运算符和自减运算符的使用程序中 i的值用八进制表示 (十进制为 8), +i是在变量使用前自身先加 1,而 j-是在变量使用后自身减 1。所以, 4个选项中 B

22、符合题意。 18 【正确答案】 C 19 【正确答案】 C 【试题解 析】 在 C语言中,一个完整的 C语句必须在语句末尾出现分号,分号是 C语句的必要组成部分。本题答案为 C。 20 【正确答案】 B 21 【正确答案】 D 【试题解析】 本题考查 if else语句。第 1个 if 语句,先判断条件,发现 a=0条件不成立,则执行与其配对的 else语句;第 2个 if语句,先判断条件,发现 b=4,则 !b 条件不成立,又没有与其配对的 else语句,所以执行 printf 语句,输出 d。 22 【正确答案】 C 【试题解析】 A选项 “abc“的表示字符串,与参数类型不一样。 B选

23、项 fun没有返回值,不能将其用来赋值。 D选项第一个 32 不是字符,与参数类型不一样。 23 【正确答案】 D 【试题解析】 通过赋初值的方式给一维数组赋字符串 ,可以用给一般数组赋初值的相同方式给一维字符数组赋字符串 ,也可以在赋值时直接赋字符串常量。选项 B)和 C)后面的 0是多余的 ,在 C语言中 ,系统会自动在字符串的结尾处加上一个字符0作为串的结束标记。 24 【正确答案】 C 【试题解析】 第 1个 printf 函数,格式说明的个数是 2,而输出项的个数是 3,所以对于多余的输出项 k 不予输 出;第 2个 pfintf函数,有两个 %说明,第 1个 %后面的字符要原样输出

24、。 25 【正确答案】 C 【试题解析】 选项 A、 B 的空间不够;字符串存储要有结柬符 0,且要占用一个空间, printf用来输出字符,不能输入字符串。 26 【正确答案】 D 【试题解析】 本题考查 continue的用法 continue语句的作用结束本次循环,直接进行下次循环。所以在程序中,只有当 a=10时,才返出循环,故选择 D选项。 27 【正确答案】 C 【试题解析】 本题考查按位异或运算,异或就是相 同为 0,不同为 1(化为二进制00001101), 017的二进制为 000001111,两者异或结果为 00000010。 28 【正确答案】 C 29 【正确答案】 C

25、 30 【正确答案】 C 【试题解析】 C语言中,字符型数据和整型数据之间可以通用。一个字符数据既可以字符形式输出,也可以整数形式输出,所以把整型数据赋给字符型变量,直接用 c=97即可,所以选项 C)正确。由于题目要求选出正确的语句,选项 A)少分号,不能构成语句,因此错误。 B)、 D)是将一个字符串赋给一个字符变量,所以错误。 31 【正确答案】 D 【试题解析】 C语言中只有字符串常量而没有字符串变量,故选项 A不正确:字符串比较大小是以第 1个不相同字符的大小为标准的,跟长度没有关系,故选项 B 不正确:字符串比较大小除了使用库函数 stremp()以外,就只能靠自己写代码来实现了,

26、而不能通过关系运算符来比较大小,因为字符串在表达式中相当于coost char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。所以选项 C也不正确。空串的长度为0,而以空格打头的字符串的长度至少为 1, 故选项 D正确,本题应该选择 D。 32 【正确答案】 A 33 【正确答案】 B 【试题解析】 p 是指向整型变量的指针,并赋初值指向了数组 a的首地址,*p=1,选项 A中 *p+9=10,选项 C的 “*p+=9”的值为 10。而 p+8 是指向数组 a的第 9个元素的地址,只有 *(p+8)才是数组 a的第 9个元素。 34 【正确

27、答案】 B 【试题解析】 C语言以定,实参变量对形参变量的数据传递是 “单向值传递 ”,只由实参传绐形参。在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维 持原值。 35 【正确答案】 B 【试题解析】 本题主要考查了循环语句中 break 和 continue语句的使用。 break语句的作用是结束本层循环,而 continue语句的作用是结束本次循环直接进入到下次循环。 36 【正确答案】 B 【试题解析】 一个函数可以带回 个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和 *号,由于 ()优先级高于 *。故它是一个返回整型指针的

28、函数。 37 【正确答案】 C 【试题解析】 在定义字符数组用字符串常量进行初 始化时,系统会自动在结尾加0做结束标志,所以数组 array所占的空间为 6个字节。 38 【正确答案】 C 【试题解析】 程序中由于 n为整型,所以 1/n 的结果始终为 0,故程序最后输出的结果为 0,其结果错误,原因为在表达式 1/n 中 1和 n 均为整型,所以应该将 1改为 1.0,这样表达式 1.0/n 的值不为 0,为该数学表达式的值,因此我们可以知道导致程序运行后输出结果错误的行为 s=s+1/n。 39 【正确答案】 B 【试题解析】 实参可以是常量、变量或表达式, (exp1,exp2)是逗号表

29、达式 ,它的值是 exp2的值; (exp3,exp4,exp5)是逗号表达式,它的值是 exp5 的值。所以该函数调用语句含有的实参个数是 2,即: (exp1,exp2)和 (exp3,exp4,exp5)。 40 【正确答案】 C 41 【正确答案】 B 【试题解析】 0代表 ASC 码为 48的字符, 0代表 ASC 码为 0的字符, 1代表 ASC 码为 49的字符,所以只有选项 B的表达式的值为 1。 42 【正确答案】 继承 【试题解析】 在面向对象的程序设计方法中,某些属性和方法是可以共享的, 由于类从父类中继承而来,这样提高了软件的可重用性。 43 【正确答案】 实体联系图或

30、 E-R图 【试题解析】 实体联系图 (B-R图 )是实体联系模型中的核心。由于 E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。 44 【正确答案】 循环链表 【试题解析】 在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点: 在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点 。循环链表的头指针指向表头结点。 循环表中最后一个结点的指针不是空,而是指向表头结点。 45 【正确答案】 完善性 【试题解析】 软件维护活动包括以下几类;改正性维护、适应性维护、完

31、善性维护和预防性维护。完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件睦能、改进加工效率、提高软件的可维护性。 46 【正确答案】 一对多 【试题解析】 实体之间的联系有 3类:一对一,一对多,多对多。设有两个实体集 E1和 E2,如果 E2中的每一个实体与 E1中 的任意个实体 (包括零个 )有联系,而 E1中的每一个实体最多与 E2中的一个实体有联系,则称这样的联系为 “从 E2到 E1的一对多的联系 ”,通常表示为 “l:n的联系 ”。由此可见,工人和设备之间是一对多关系。 47 【正确答案】 2 【试题解析】 分析程序, a=2,

32、b=-1, c=2时, if 语句的表达式 a b 不成立,不再往下判断,直接退出 if语句,执行后面的输出语句,程序结束。在这个程序中a、 b、 c的值没做任何改变。 48 【正确答案】 根结点 49 【正确答案】 13431 50 【正确答案】 in inc1 x=1 in inc1 x=1 in inc1 x=1 in inc2 x=1 in inc2 x=2 in inc2 x=3 51 【正确答案】 4 【试题解析】 一维数组元素的定义形式为:数组名 N,则该数组中元素的下限是 0,上限是 N-1。 52 【正确答案】 100+2+1=103 110+2+2=114 120+2+3=

33、125 130+2+4=136 140+2+5=147 【试题解析】 静态局部变量的生存期为整个程序的运行期间,而作用域为定义该变量的函数或局部范 围。自动变量的建立和撤销都是由系统自动进行的,所以称为自动变量。自动变量的作用域和生存期都为定义它的局部范围内。对同一函数的两次调用之间,自动变量的值是不保留的。而静态变量则保留。注意:局部变量和全局变量的定义及其作用范围。 53 【正确答案】 0 【试题解析】 二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的, a44可以分解为 4个一维数组,其数组名分别为 a0、a1、 a2、 a3,这 4个一维数组都有 4个元素, a0的元素为 a00、 a01、a02、 a03。 54 【正确答案】 9 【试题解析】 考查 if else语句, n=4不满足条件,所以 fun5(4)=4+fun5(3),n=3也不满足条件, fun5(3)=3+fun5(2), n=2满足条件 fun5(2)=2,故x=4+3+2=9。 55 【正确答案】 “bi dat“ fp 56 【正确答案】 0 【试题解析】 本题考查的是二维数组初始化问题。题中对数组的 a00,a10, a203 个元素分别赋值为 0, 1, 2,其 余的元素都自动赋 0。所以 a1 2的值为 0。

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

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

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