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

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

1、国家二级( C语言)笔试模拟试卷 246 及答案与解析 1 下列方法中,属于白盒法设计测试用例的方法的是 ( )。 ( A)错误推测 ( B)因果图 ( C)基本路径测试 ( D)边界值分析 2 下列有关数据库的描述,正确的是 ( A)数据处理是将信息转化为数据的过程 ( B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 ( C)关系中的每一列称为元组,一个元组就是一个字段 ( D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 3 对于长度为 n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中三确的是 ( A)冒泡

2、排序为 n/2 ( B)冒泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 4 一个关系中属性个数为 1时 ,称此关系为 ( A)对应关系 ( B)单一关系 ( C)一元关系 ( D)二元关系 5 数据库系统的核心部分是 _。 ( A)数据模型 ( B)数据库 ( C)数据库管理系统 ( D)计算机硬件 6 计算机的存储器完整的应包括 _。 ( A)内存储器与外存储器 ( B)磁盘、磁带与光盘 ( C) RAM与 ROM ( D)软盘与硬盘 7 在关系数据库中,用来表示实体之间联系的是 _。 ( A)树结构 ( B)网结构 ( C)线性表 ( D)二维表 8 简单的交

3、换排序方法是 ( )。 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 9 下列叙述中正确的 _。 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一今算法的时间复杂度大,则其空间复杂度必定小 ( D)上述三种说法都不对 10 有两个关系 R和 T如下: 则由关系 R得到关系 T的操作是 ( A)选择 ( B)投影 ( C)交 ( D)并 11 以下不正确的转义字符是 ( )。 ( A) ( B) t ( C) n ( D) 088 12 以下叙述中正确的是 ( A)用 C程序实现的算法必须要有输入和输

4、出操作 ( B)用 C程序实现的算法可以没有输出但必须要有输入 ( C)用 C程序实现的算法可以没有输入但必须要有输出 ( D)用 C程序实现的算法可以既没有输入也没有输出 13 在数据库系统的组织结构中,下列 ( )映射把用户数据库与概念数据库联系了起来。 ( A)外模式 /模式 ( B)内模式 /外模式 ( C)模式 /内模式 ( D)内模式 /模式 14 下列可用于 C语言用户标识符的一组是 ( A) void, define, WORD ( B) a3_3,_123,Car ( C) For, -abc, IF Case ( D) 2a, DO, sizeof 15 假设 a和 b为

5、int型变量,则执行以下语句后 b的值为 ( )。 a=1; b=10; do b-=a; a+; while(b- 0); ( A) 9 ( B) -2 ( C) -1 ( D) 8 16 若 x和 y代表整型数,以下表达式中不能正确表示数学关系 x-y 10的是 ( A) abs(x-y) 10 ( B) x-y -10 ( C) scanf(“%d%d%d“,X,Y,Z); ( D) read(“%d%d%d“, 18 执行语句 “for(n=10; n 0;)printf(“%d“, -n+n-); ”后,下列说法正确的是 ( ) ( A)循环体执行了 5次,最终 n的值是 -1 (

6、B)循环体执行了 6次,最终 n的值是 -1 ( C)循环体执行了 6次,最终 n的值是 0 ( D)循环体执行了 5次,最终 n的值是 0 19 以下叙述中正确的是 ( )。 ( A) 构成 C程序的基本单位是函数 ( B)可以在一个函数中定义另一个函数 ( C) main()函数必须放在其他函数之前 ( D)所有被调用的函数一定要在调用之前进行定义 20 衡量显示器的主要技术指标是 ( ) ( A)波特率 ( B)分辨率 ( C)主频 ( D)显示速度 21 有以下程序 #include Main() int i,j,m=1; Fori=i;i0;j-) iF(i+j3)Break; m*

7、=i*j; PrintF(“m=%dn”,m) 程序运行后的输出结果是 ( A) m 6 ( B) m 2 ( C) m 4 ( D) m 5 22 以下程序段中,不能正确赋字符串 (编译时系统会提示错误 )的是 _。 ( A) char s10=“abcdefg“; ( B) char t=“abcdefg“, * s=t; ( C) char s10; s=“abcdefg“; ( D) char s10; strcpy(s, “abcdefg“); 23 下列说法不正确 的是 ( A) int *fun();-fun是一个返回 int指针的函数 ( B) int (*fun)();-fu

8、n是一个返回 int指针的函数 ( C) int (*array5)();-array是一个有 5个元素的数组,每一个元素都是一个函数指针,指向一个返回 int的函数 ( D) int (*fun(int)(int);-fun是带有一个 int 参数的函数,返回值是一个函数指针,这个指针指向带有一个 int参数并返回 int的函数 24 以下有关宏替换的叙述不正确的是 ( )。 ( A)双引号中出现的宏名不替换 ( B)使用宏定义可以嵌套 ( C)宏定义仪仪是符号替换 ( D)宏名必须用大写字母表示 25 下列程序的输出结果是 ( )。 #include stdio.h int b=2; in

9、t func(int*A) b+=*a;return b; main() int a=1,t=2; t+=func( for(i 1;i 40;i+) if(i+%5 0) if(+i%8 0)printf(“%d“,i); printf(“n“); 执行后的输出结果是 ( )。 ( A) 5 ( B) 24 ( C) 32 ( D) 40 29 main() int a 4,b 5,c; ifa B) c a*b;printf(“%d,%d,%dn“,b,a,c); else c b/a;printf(“%d,%d,%dn“,b,a,c); ( A) 4,5,12 ( B) 20 ( C)

10、5,4,20 ( D) 12 30 从关系模式中指定若干个属性组成新的关系的运算称为 _。 ( A)联接 ( B)投影 ( C)选择 ( D)排序 31 下述程序的输出结果是 #include void main() int a5=2,4,6,8,10; int *p=a,*q= printf(“%d,“,*(p+); printf(“%d“,*q); ( A) 4,4 ( B) 2,2 ( C) 4,5 ( D) 2,4 32 以下的 for循环 _。 for(x=0,y=0;(y!=123)|(x 4);x+) ( A)是无限循环 ( B)循环次数不定 ( C)执行 4次 ( D)执行 3

11、次 33 若二维数组 a有 m列,且设 a00位于数组的第一个位置上,则计算任一元素aij在数组中的位置的式子为 ( ) ( A) i*m+j ( B) j*m+i ( C) i*m+j-1 ( D) i*m+j+1 34 以下程序的输出结果是 _。 #define M(x,y,z) x*y+z main() int a=1,b=2,c=3; printf(“%dn“,M(a+b,b+c,c+a) ); ( A) 19 ( B) 17 ( C) 15 ( D) 12 35 已有定义: int i,a10,*p;,则合法的赋值语句是 ( )。 ( A) p=100; ( B) p=a5 ( C)

12、 p=a2+2 ( D) p=a+2; 36 有以下程序 void fun(int *a, int i, int j) in t; if(i j) t=ai;ai=aj;aj=t; fun(a,+i,-j); main() int a=1, 2, 3,4, 5, 6, i; fun(a, 0, 5); for(i=0;i 6;i+) printf(“%d“,ai); 执行后输 出结果是 ( A) 6 5 4 3 2 1 ( B) 4 3 2 1 5 6 ( C) 4 5 6 1 2 3 ( D) 1 2 3 4 5 6 37 请读程序: #include stdio.h main() int

13、a=5,b=7, c=9; pintf(“%d,%d,“a,b,C) ; printf(“%d, %d“,a,D) ; 上面程序的输出结果是_。 ( A) 5,7,9,5,7 ( B) 5,7,5, 7 ( C) 5, 7,不定 7,9 ( D) 5, 7, 5, 7,不定 38 下面能正确定义数组,并正确赋值的语句是 _。 ( A) int N=5, bNN ( B) int a12=1, 3 ( C) int c2=1,2,3,4 ( D) int d32=1,2, 34 39 下列说法中不正确的是 ( )。 ( A)指针是一个变量 ( B)指针中存放的是数值 ( C)指针可以进行加、减等

14、算术运算 ( D)指针变量占用存储空间 40 以下选项中,非法的字符常量是 _。 ( A) t ( B) 17 ( C) n ( D) xaa 41 有以下程序 main(int argc, char *argv) int n=0, i; for(i=1; i argc; i+) n=n*10+ *argvi 0; printf(“%dn“,n); 编译连接后生成可执行文件 tt.exe。若运行时输入以下命令行 tt 12 345 678 程序运行后的输出结果是 ( A) 12 ( B) 12345 ( C) 12345678 ( D) 136 41 数据结构分为逻辑结构与存储结构,线性链表属

15、于 _。 42 数据库系统中实现各种数据管理功能的核心软件称为【 】。 43 用链表表示线性表的突出优点是 _。 44 数据库系统的主要特点为数据集成性、数据的高 _和低冗余性、数据独立性和数据统一管理和控制。 45 个关系表的行称为 。 46 已知 a=1, b=2,则表达式 (a for(i 0;x 8;y +i) printf(“%d%d“,x-,y); 48 以下程序的输出结果是 【 】 。 #include main() char*ch4=“red”,“green”,“blue”; inti=0; while(chi) putchar(chi0);i+; 49 阅读下面程序 ,则执行

16、后的输出结果是【 】。 #include “stdio.h“ main() int x,y,z; x=1;y=2;z=3; if(xy)if(xz)printf(“%d“,x); else printf(“%d“,y); printf(“%dn“,z); 50 以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用 ftell函数返回当前文件位置指针的具体位置,从而确定文件长度。请 填空。 FILE * myf; long f1; myf=【 】 (“test.t“, “rb“); fseek(myf,0, SEEK END) ; f1=ftell(myf); fc

17、lose(myf); printf(“%dn“, f1) 51 以下程序段的输出结果是 _。 inc i=9; printf(“%on“, i); 52 以下程序的输出结果是 _。 main() int x; 0; sub( printf(“%d “,x); main() fun(6); 54 下列程序执行后输出的结 果是 【 】 。 f(int A) static c=0; c=a+c+; return(c) ; main() int a=2,i,k; for(i=0; i 2; i+) k=f(a+); printf(“%dn“,k); 55 函数 YangHui的功能是把杨辉三角形的数据

18、赋给二维数组的下半三角,形式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 其构成规律是: 第 0列元素和主对角线元素均为 1。 其余元素为其左上方和正上方元素之和。 数据的个数每行递增 1。 请将程序补充完整。 #define N 6 void yanghui(int xNN) int i,j; xO0=1; for(i=1;i N;i+) xi0=【 】 =1; for(j=1;j i;j+) xij=【 】 ; ) 56 有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数组中。算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中哪个数之后,然后

19、将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在程序中的空白处填上一条语句或一个表达式。 #define N 100 main() float aN+1,x; int i,p; for(i=0;i N;i+) scanf(“%f“ scanf(“%f“, for(i=0,p=N;i N;i+) if(x ai) 【 】 ; break; for(i=N-1;【 】 ;i-) ai+1=ai; ap=x; for(i=0;【 】 ;i+) printf(“%8.2f“,ai); if(i%5=0) printf(“n“); 国家二级( C语言)笔试模拟试卷 246 答案与解析 1

20、 【正确答案】 C 【试题解析】 C基本数据类型包括:分为整型、实型、枚举型、字符型四种,实型就是浮点型,实型数据只有十进制,没有 2 8 16进制表达,在 C语言中没有定义逻辑类型,而足一般用 0代表假,用非零代表真。 2 【正确答案】 D 【试题解析】 数据处理是指将数据转换成信息的过程,故选项 A) 叙述错误;数据的物理独立性是指数据的物 理结构的改变,不会影响数据库的逻辑结构,故选项 B) 叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项 C) 叙述错误。 3 【正确答案】 D 【试题解析】 冒泡排序法在最坏的情况下需要比较的次数为

21、n(n-1)/2,快速排序法在最坏的情况下需要比较的次数也为 n(n-1)/2。 4 【正确答案】 C 【试题解析】 在关系模型数据库中 ,基本结构是二维表 ,这种二维表称为关系。关系的列称为属性 ,一个具有 N个属性的关系称为 N元关系。 5 【正确答 案】 C 6 【正确答案】 A 【试题解析】 存储器包括内部存储器和外部存储器,而选项 B、 D只能统称为外部存储器,选项 C属于内部存储器。 7 【正确答案】 D 【试题解析】 在关系数据库中,用二维表来表示实体之间联系。 8 【正确答案】 D 【试题解析】 所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序

22、和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。 9 【正确答案】 D 【试题解析】 算法的复杂度主要包括时间复杂度和空间复杂度:算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度;算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数,为了能够比较客观地反映出 个算法的效率,在度量 个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。 10 【正确答案】 A 11 【正确答案】

23、D 【试题解析】 是 反斜线转义字符; t是水平跳格转义字符; n是换行转义字符; C语言中没有规定 088是转义字符。 12 【正确答案】 C 【试题解析】 算法具有的 5个特性是:有穷性;确定性;可行性;有 0个或多个输入;有一个或多个输出。所以说,用 C程序实现的算法可以没有输入但必须要有输出。 13 【正确答案】 A 【试题解析】 数据库有两层映像,即外模式 /模式和模式 /内模式映像。模式 /内模式映像定义数据库全局逻辑结构与存储结构之间的对应关系。 14 【正确答案】 B 【试题解析】 C语 言规定标识符只能由字母、数字和下划线 3种字符组成 ,且第一个字符必须为字母或下划线 ,排

24、除选项 C)和 D);C语言中还规定标识符不能为 C语言的关键字 ,而选项 A)中 void 为关键字 ,故排除选项 A)。 15 【正确答案】 D 【试题解析】 当 b为 10时,执行 b-=a,此时 b 为 9,接着 b-表达式值为 9, b的值为 8,大于 0, while不成立,退出循环,故选择 D选项。 16 【正确答案】 C 【试题解析】 本题考核的知识点是关系运算和逻辑运算的混合应用。选项 A用了一个绝对值函数 abs(),故选项 A正确 :选项 B 中用了一个 “fwrite是输出数据的地址 (以上指的是起始地址 )。 28 【正确答案】 C 【试题解析】 在 for循环体中,

25、首先判断自变量 i能否被 5整除,然后再自加两次,最后判断 i能否被 8整除。当 for循环执行到第 30次时, i的值为 30能被 5整除,然后 i经过两次自加 1运算,值变为 32,能被 8整除,故执行“printf(“%d“,i);”语句,即输出 32。本题的答案为选项 C)。 29 【正确答案】 C 【试题解析】 本题考查 if else语句。第一个 if 语句,先判断条件,发现 a b 成立,执行下列的复合语句,得 c a*b 20, b、 a的值不变。 30 【正确答案】 B 31 【正确答案】 D 【试题解析】 考查一维数组的指针和指向指针的指针两个知识点。通过赋值 ,指针 p

26、和 q都指向了数组 a的首地址 ,*(p+)先引用数组元素 ,然后 p+,所以输出结果为 2,*q 指向的数组元素为 4。 32 【正确答案】 A 【试题解析】 本题考查 for循环的结束条件。注意虽然 x的值在增加,但 y的值不增加,表达式 (y!=123)|(x 4)的值永远是 1,所以会成为无限循环。 33 【正确答案】 D 34 【正确答案】 D 【试题解析】 C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为: #define 宏名 (形参表 )字符串 本题的 M(a+b, b+c, c+a) 被字符串 a+b*b+c+c+a 代替。 35 【正确答案

27、】 D 【试题解析】 本题中定义了一个整型数组 a和一个整型指针变量 p。选项 A中将一个整型数赋值给一个指针变量, C语言规定,只能将地址赋给指针变量,故选项 A不正确。选项 B中 a5为一数组元素,同样不是一个地址,故选项 B不正确。选项 c中 a2为一数组元素,同样是一个整型数据,不是个地址,故选项 C不正确。数组名 a代表数组首地址,首地址加 2代表第 3个元素的地址,将该地址赋值给指针变量,故选项 D正确。所以, 4个选项中选项 D符合题意。 36 【正确答案】 A 【试题解析】 函数 fun()中有 3个参数,参数。为一个指针变量,接收的实参可以是数组名,参数 i和 j分别表示数组

28、元素的下标,当下标 i小于下标 j时, ai和aj交换,然后对自身进行调用,可见这是一个 递归函数。其实现的功能是把数组a,从下标为 i的元素到下标为 j的元素之间的所有元素反序存放。在主函数中调用 fun()函数,把 a数组从 a0到 a5之间的所有元素反序存放,最后输出从 a1到 a5的值,因此输出的值为 6、 5、 4、 3、 2、 1。 37 【正确答案】 D 【试题解析】 printf函数按格式控制符的个数输出表列中对应的数据,若输出表列的个数大于格式控制符个数,则输出与格式控制符对应的输出表列的数据,输出表列中多的则省略;若格式控制符个数大于输出表列的个数,则输出与格式控制符对应的

29、输出 表列的数据,格式控制符多的部分输出的数据是随机的。 38 【正确答案】 D 【试题解析】 可以用下面的方法对二维数组初始化: 1、分行给二维数组赋初值。如 int a 34=1, 2, 3, 4, 5, 6, 7,8, 9,10, 11, 12;。 2、将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。如 int a34=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;。 3、对部分元素赋初值。如 int a34=1, 5, 9;, 它的作用是只对各行第一列的元素赋初值,其余元素值自动为 0。 4、如果对全部元素都赋初值 (即提供全部初始数据 ),则

30、定义数组时对第一锥的长度可以不指定,但第二锥的长度不能省。如 int a34=1, 2, 3, 4, 5, 6,7, 8, 9, 10, 11, 12;与下面的定义等价: int a4=1, 2, 3, 4, 5, 6, 7,8, 9, 10, 11, 12;。 39 【正确答案】 B 【试题解析】 指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节 。 40 【正确答案】 C 【试题解析】 C语言中字符常量是以单引号括起来的单个字符,或以 “”与三位八进制数值或两位十六进制数值代替单个字符。 41 【正确答案】 D 【试题解析】 运行时输入

31、该命令后,参数 argc的值为 4,字符串数组 argv1、argv2、 argv3分别为 “12”、 “345”、 “678”,然后取这 3个参数的第一个字符,将其转化成原来的数字并组合成一个新的三位数。 41 【试题解析】 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储 结构是指数据的逻辑结构在计算机存睹空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。 42 【正确答案】 数据库管理系统 43 【正确答案】 便于插入和删除操作。 【试题解析】 为了克服顺序表中插入和删除时需要移动大量数据元素的缺点,引入了链式存

32、储结构。链表表示线性表的突出优点是插入和删除操作方便,不必移动数据元素,执行效率高。 44 【正确答案】 共享性 【试题解析】 数据库系统中的数据能被不同的应用程序使用,实现了数据的 高度共享,从而降低了数据的冗余,这也是数据库的主要目的。 45 【正确答案】 元组 【试题解析】 设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段。 46 【正确答案】 1 47 【正确答案】 101091 【试题解析】 for(表达式 1;表达式 2;表达式 3)语句的功能是:首先计算表达式 1的值,然后检测表达式

33、2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式 3的值。然后再检测 表达式 2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环;第 1次循环 x 8成立,输出 x 10, y 10后, x的值减 1, i l,执行 y +i操作, y的值变为 1判断条件还成立,输出 x9,y 1,然后 x的值减 1,循环条件不成立,则退出循环。 48 【正确答案】 rgb 【试题解析】 本题考查指向数组的指针 ,ch 是一个指针数组 ,每个元素都是一个指向字符串的指针 ,其中 ch0指向字符串 “red”,ch1指向字符串 “green”,ch2指向字符串 “blue”;在 Whi

34、le循环中 ,输出 每个元素中字符串的第 0个元素 ,所以运算结果为rgb。 49 【正确答案】 3 【试题解析】 C语言的语法规定 :else子句总是与前面最近的不带 else的 if 相结合。因为 x不大于 y,所以执行 printf(“%dn“,z);语句。 50 【正确答案】 fopen 【试题解析】 函数 fopen 的原型为 FILE *fopen(char * filename, char * mode),功能为以 mode指定的方式打开名为 filename 的文件;函数 fseek 的原型为 int fseek(FILE *fp, long offset, int base)

35、,功能为将 fp所指向的文件的位置指针移到以 base所指出的位置为基准, offset为位移量的位置;函数 ftell 的原型为 long ftell(FILE*fp),功能为返回 fp所指向的文件中当前的读写位置;函数 fclose的原型为 int fclose(FILE *fp),功能为关闭 fp所指的文件,释放文件缓冲区。 51 【正确答案】 11 【试题解析】 本题考核的知识点是 printf()函数的输出格式本题中定义了一个整型变量 i并赋初值为 9,然后要求以 八进制输出 i的值,因为 9的八进制的表示为 11,所以最后输出的值为 11。 52 【正确答案】 7 【试题解析】 在主函数中定义了一个变量 x并赋初值 0,然后执行函数调用语句,该语句的执行过程为 sub(插入排序的第二部是将大于待插入元素的所有元素都向后移动 位,故在循环时,要从最后一个元素到第 p 个元素都要后移一位,因此第二空应填 i=p。最后一个循环是将 N+1个元素都输出,故最后一空应为 i =N。 (注:本题有多种答案,以上仅提供一种 )

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

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

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