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

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

1、国家二级( C语言)机试模拟试卷 13及答案与解析 一、选择题 1 层次型、网状型和关系型数据库划分原则是 ( )。 ( A)记录长度 ( B)文件的大小 ( C)联系的复杂程度 ( D)数据之间的联系方式 2 有表示公司和职员及工作的三张表,职员可在多家公司兼职。其中公司 C(公司号,公司名,地址,注册资本,法人代表,员工数 ),职员 S(职员号,姓名,性别,年龄,学历 ),工作 W(公司号,职员号,工资 ),则表 W的键 (码 )为 ( A)公司号,职员号 ( B)职员号,工资 ( C)职员号 ( D)公司号, 职员号,工资 3 在关系数据库中,用来表示实体间联系的是 ( )。 ( A)属

2、性 ( B)二维表 ( C)网状结构 ( D)树状结构 4 在关系模型中,每一个二维表称为一个 ( )。 ( A)关系 ( B)属性 ( C)元组 ( D)主码 (键 ) 5 在满足实体完整性约束的条件下 ( )。 ( A)一个关系中应该有一个或多个候选关键字 ( B)一个关系中只能有一个候选关键字 ( C)一个关系中必须有多个候选关键字 ( D)一个关系中可以没有候选关键字 4 3 关系代数 6 有三个关系 R、 S和 T如下: 由关系R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 7 有三个关系 R、 S和 T如下: 由

3、关系 R和 s通过运算得到关系 T,则所使用的运算为 ( )。 ( A)笛卡尔积 ( B)交 ( C)并 ( D)自然连接 8 有两个关系 R、 S如下: 由关系 R通过运算得到关系S,则所使用的运算为 ( )。 ( A)选择 ( B)投影 ( C)插入 ( D)连接 9 有三个关系 R、 S和 T如下: 则关系 T是由关系 R和 S通过某种操作得到,该操作为 ( )。 ( A)选择 ( B)投影 ( C)交 ( D)并 10 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)差 ( C)交 ( D)并 11 有三个关系 R、 S和

4、T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)交 ( C)投影 ( D)并 12 有两个关系 R和 S如下: 则由关系 R得到关系 S的操作是 ( )。 ( A)选择 ( B)投影 ( C)自然连接 ( D)并 13 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)交 ( C)投影 ( D)并 14 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)选择 ( B)投影 ( C)交 ( D)并 15 有三个关系 R、 S和 T如下: 则由关系 R和 S得

5、到关系 T的操作是 ( )。 ( A)选择 ( B)差 ( C)交 ( D)并 16 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)交 ( C)除 ( D)并 17 一般情况下,当对关系 R和 S进行自然 连接时,要求 R和 S含有一个或者多个共有的 ( )。 ( A)记录 ( B)行 ( C)属性 ( D)元组 18 下列关于数据库设计的叙述中,正确的是 ( )。 ( A)在需求分析阶段建立数据字典 ( B)在概念设计阶段建立数据字典 ( C)在逻辑设计阶段建立数据字典 ( D)在物理设计阶段建立数据字典 19 数据库设计过程不

6、包括 ( )。 ( A)概念设计 ( B)逻辑设计 ( C)物理设计 ( D)算法设计 20 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( )。 ( A)需求分析阶段 ( B)概念设计阶段 ( C)逻辑设计阶段 ( D)物理设计阶段 21 将 E-R图转换为关系模式时,实体和联系都可以表示为 ( )。 ( A)属性 ( B)键 ( C)关系 ( D)域 22 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ),选课 SC(学号,课号,成绩 ),则表 SC的关键字 (键或码 )为( )。 ( A)课号,成绩 ( B)学号,成绩 (

7、C)学号,课号 ( D)学号,姓名,成绩 23 有以下程序 : #include main( ) char a=H; a=(a=A&a int f(int x); main( ) int a, b=0; for(a=0; a main( ); * programming * pfinff(“programming! n“); ( B) #include main( ); * programming * pfinff(“programming! n“); ( C) include main() * *programming* * printf(“programming! n“); ( D) in

8、clude main() * programming* printf(“programming! n“); 35 以下选项中不合法的标识符是 ( )。 ( A) &a ( B) FOR ( C) print ( D) _00 36 按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是 ( )。 ( A)大写字母 ( B)下画线 ( C)数字字符 ( D)连接符 37 以下选项中,能用作用户标识符的是 ( )。 ( A) _0_ ( B) 8_8 ( C) void ( D) unsigned 38 下列定义变量的语句中错误的是 ( )。 ( A) int _int; ( B) doub

9、le int_; ( C) char For; ( D) noat US$; 39 以下选项中,不合法的 C语言用户标识符是 ( )。 ( A) a_b ( B) AaBc ( C) a-b ( D) _1 40 阅读以下程序: #include main() int case; float pfintF; printf(“请输入 2个数: “); scanf(“ d f“, &case, &printF); pfinff(“ d f n“, case, printF); 该程序在编译时产生错误,其出错原因是 ( )。 ( A)定义语句出错, case是关键字,不能用作用户自定义标识符 ( B

10、)定义语句出错, printF不能用作用户自定义标识符 ( C)定义语 句无错, scanf不能作为输入函数使用 ( D)定义语句无错, printf不能输 case的值 二、程序填空题 41 下列给定程序的功能是:从键盘输入若干行字符串 (每行不超过 80个字符 ),写人文件 myfile4 txt中,用 -1作字符串输人结束的标志,然后将文件的内容显示在屏幕上。文件的读写分别由函数 ReadText和 Write-Text实现。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。注意:部分源程序在文件 BLANK1.C不得增行或删行,也不得更改程序的结构 ! #incl

11、ude #include #include void WriteText(IrILE*); void ReadText(FILE, *); main() FIIJE, *fp; if(fp=fopen(“myfile4 txt“, “w“)=NLJLL) prinff(“open fail! n“); exit(0); WriteText(fp); fclose(fp); if(fp=fopen(“myfile4 txt“, “r“)=NULL) printf(“open fail! n“); exit(0); ReadText(fp); fclose(fp); *found* void Wr

12、iteText(FILE【 1】 ) char str81; printf(“ nEnter string with-1 to end: n“); gets(str); while(strcmp(str, “-1”)!=0) * found* fputs(【 2】, fw); fputs(“ n“, fw); gets(str); void ReadText(FILE*fr) char str81; printf(“ nRead file and output to screen: n“); fgets(str, 8l, fr); while(!feof(fr) *found* printf(

13、“ s“,【 3】 ); fgets(str, 81, fr); 三、程序修改题 42 下列给定程序中函数 fun的功能是:从整数 10到 55之间,查找能被 3整除且有一位上的数值是 5的数,把这些数放在 b所指的数组中,这些数的个数作为函数值返回。规定函数中 a1存放个位数, a2存放十位数。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 NODll C中,不得增行或删行,也不得更改程序的结构 ! #include int fun(int*b) im k, a1, a2, i=0; for(k=10; k =55; k+) *found* a2=k 10; al=k-

14、a2*10: if(k 3=0 &a2=5) (k 3=0 &a1=5) bi=k; i+; *found* return k; main() int a100, k, m; Ill=fun a); printf(“The result is: n“); for(k=0; k m; k+) printf(“ 4d“, ak); printf(“ n“); 四、程序设计题 43 规定输入的字符串中只包含字母和 *号。请编写函数 fun,其功能是:除了字符串前导的 *号之外,将串中其他 *号全部删除。在编写函数时,不得使用 C语言提供的字符串函数。 例如,字符串中的内容为: “*A*BC*DEF*

15、G*”,删除后,字符串中的内容应当是: “*ABCDEFG“。 注意:部分源程序在文件 PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 椭 nelude void fun(char*a) main() char s81; void NONO(); printf(“Enter a string: n“); gets(s); fun(s); printf(“The string after deleted: n“); puts(s); NONO( ); void NONO( ) *本函数用于打开文件,输人数据,调用函数,输出数据

16、,关闭文件。 * FILE*in, *out; int i; char s81; in=fopen(“in dat“, “r“); out=fopen(“out dat“, “w“); for(i=0; i 10; i+) fscanf(in, “ s“, s); fun(s); fprintf(out, “ s n“, s); felose(in); felose(out); 国家二级( C语言)机试模拟试卷 13答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则

17、是数据之间的联系方式。 2 【正确答案】 A 【试题解析】 由于职员 可以在多家公司兼职,表 w的键 (码 )应为公司关系和职员关系的主码,即公司号和职员号。 3 【正确答案】 B 【试题解析】 关系模型实体间的联系采用二维表来表示,简称表。选项 C为网状模型实体间的联系,选项 D为层次模型实体间的联系,选项 A属性刻画了实体。 4 【正确答案】 A 【试题解析】 关系模型采用二维表来表示,即每个二维表称为一个关系。 5 【正确答案】 A 【试题解析】 实体完整性约束要求关系的主键中属性值不能为空值,所以选择A。 6 【正确答案】 D 【试题解析】 自然连接是一种特殊的等值连接,它要求两个关系

18、中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以 B错误。笛卡尔积是用 R集合中元素为第一元素, S集合中元素为第二元素构成的有序对,所以 C错误。根据关系 T可以很明显的看出是从关系 R与关系 S中取得相同的关系组,所以是交运算,选择 D。 7 【正确答案】 D 【试题解析】 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据 T关系中的有序组可知 R与 S进行的是自然连接操作。 8 【正确答案】 B 【试题解析】 投影运算是指对于关系内的域指定可引入新的运算。本题中 S是在原有关系 R的内部进行的

19、,是由 R中原有的那些域的列所组成的关系。所以选择B。 9 【正确答案】 D 【试题解析】 在关系 T中包含了关系 R与 S中的所有元组,所以进行的是并的运算。 10 【正确答案】 B 【试题解析】 关系 T中的元组是 R关系中有而 S关系中没有的元组的集合,所以进行的是差的运算。 11 【正确答案】 A 【试题解析】 自然连接是一种特殊的等值连接,它要求两个关系中 进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据 T中元组可以判断 R和 S做的是自然连接操作。 12 【正确答案】 A 【试题解析】 由关系 R到关系 S为一元运算,排除 C和 D。关系 S是关系 R的

20、一部分,是通过选择之后的结果,因此选 A。 13 【正确答案】 A 【试题解析】 关系 R和关系 S有公共域,关系 T是通过公共域的等值进行连接的结果,符合自然连接,选 A。 14 【正确答案】 D 【试题解析】 关系 T中的元素是关系 R和关系 S中不同元素的总和,因此为并操作。 15 【正确答案】 B 【试题解析】 关系 T是关系 R的一部分,并且将关系 R去掉了 R和 S相同的元素,符合差操作。 16 【正确答案】 C 【试题解析】 如果 T=R S,则 T称为 R除以 S的商。在除运算中 T的域由 R中那些不出现在 S中的域所组成,对于 T中的任一有序组,由它与关系 S中每个有序组所构

21、成的有序组均出现在关系 R中。所以本题选择 C。 17 【正确答案】 C 【试题解析】 自然连接是一种特殊的等值连接,它满足下面的条件: 两关系间有公共域; 通过公共域的等值进行连接,故选 C。 18 【正确答案】 A 【试题解析】 数据字典是在需求分析阶段建立的,并在数据库设计过程中不断修改、充实和完善。 19 【正确答案】 D 【试题解析】 数据库设计过程主要包括需求分析、概念结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运行和维护阶段。答案为 D选项。 20 【正确答案】 C 【试题解析】 E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于

22、逻辑设计阶段。 21 【正确答案】 C 【试题解析】 从 E-R图到关系模式的 转换是比较直接的,实体与联系都可以表示成关系,在 E-R图中属性也可以转换成关系的属性。 22 【正确答案】 C 【试题解析】 学号是学生表 s的主键,课号是课程表 c的主键,所以选课表 SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择 C。 23 【正确答案】 B 【试题解析】 条件运算符构成的选择结构的一般形式为:表达式 l?表达式 2:表达式 3。 其求值规则为:如果表达式 1的值为真,则以表达式 2的值作为条件表达式的值,否则以表达式 2的值作为整个条件表达式的值。 该题目中首先

23、给字符变量 a赋值为 H。语句 “a=(a=A &a =z)?(a+32): a; ”即将大写字母变为小写字母。因此 B选项正确。 24 【正确答案】 C 【试题解析】 在函数 main()中,第一次执行 for循环时, b的值等于 1,此时输出字母 B;第二次执行 for循环时, b的值等于 3,此时输出字母 D;第三次执行for循环时, b的值等于 8,此时输出字母 I。因此 c选项正确。 25 【正确答案】 A 【试题解析】 使用顺序,选择 (分支 ),循环三种基本结构构成的程序可以解决所有问题, 而不只是解决简单问题,所以 A选项错误。 26 【正确答案】 B 【试题解析】 滥用 go

24、to语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以 A错误。一个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以 C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以 D错误。 27 【正确答案】 D 【试题解析】 计算机能直接执行的程序是二进制的可执行程序,扩展名为 exeo所以选择 D选项。 28 【正确答案】 A 【试题解析】 程序模块化思想中,可以采用 自顶向下、逐步细化的方法。所以选项 A中 “自底向上 ”的说法是锚误的。 29 【正确答案】 D 【试题解析】 一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件,所以 A正确。算法

25、中的每一步都有确切的含义,同一个算法、相同的输人,必能得出相同的结果,所以 B正确。算法中的操作能够用已经实现的基本运算执行有限次来实现,所以 C正确。故选择 D选项。 30 【正确答案】 B 【试题解析】 C语言程序的模块化通过函数来体现,所以选择 B。 31 【正确答案】 D 【试题解析】 算法的描 述有伪代码、流程图、 N-S结构图等。 E-R是实体联系模型。所以选择 D选项。 32 【正确答案】 A 【试题解析】 c语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以 A错误。由 C语言构成的指令序列称为 C源程序, C源程序经过 C语言编译程序编译之后生成一个后缀为 obj的

26、二进制文件 (称为目标文件 );最后要由 “连接程序 ”把此 obj文件与 C语言提供的各种库函数连接起来生成一个后缀为 ExE的可执行文件。 33 【正确答案】 B 【试题解析】 在一个 C语言程序中可以进行多种算法的实现, 对算法的个数没有规定,所以 B错误。 34 【正确答案】 B 【试题解析】 C语言中注释语句的注释方法是: *注释内容 *或注释一行。所以 A与 C错误, D选项中预编译命令 include前丢掉了 “#”号。所以选择 B。 35 【正确答案】 A 【试题解析】 C语言中标识符由字母、下画线、数字组成,且开头必须是字母或下画线。另外,关键字不能作为标识符。因为 C语言中

27、区分大小写,所以 B选项中的 “FOR”可以作为标识符来用。 A选项中含有非法字符,所以选择 A。 36 【正确答案 】 D 【试题解析】 C语言中标识符由字母、下画线、数字组成,且开头必须是字母或下画线。所以 D选项中的连接符不合法。 37 【正确答案】 A 【试题解析】 C语言中标识符由字母、下画线、数字组成,且开头必须是字母或下画线。另外,关键字不能作为标识符。 B中以数字 8开头,所以错误。 C与 D中用的是关键字 void与 unsigned,所以错误。 38 【正确答案】 D 【试题解析】 C语言规定,变量命名必须符合标识符的一命名规则。 D选项中包含了非法字符 “$”,所以错误。

28、标识符由字母、数字或 下画线组成,且第一个字符必须是大小写英文字母或者下画线,而不能是数字。大写字符与小写字符被认为是两个不同的字符,所以 For不是关键字 for。 39 【正确答案】 C 【试题解析】 C语言规定,变量命名必须符合标识符的命名规则, C选项中包含了非法字符 “一 ”,所以错误。标识符由字母、数字或下画线组成,且第一个字符必须是大小写英文字母或者下画线,而不能是数字。 40 【正确答案】 A 【试题解析】 C语言中标识符的定义中区分大小写,所以 printF与 printf不一样,可以作为标识符。而 case是 C语言中的关键字,不能作为变量名。 scanf是标准的输入函数,

29、 printf是标准的输出函数,所以选择 A选项。 二、程序填空题 41 【正确答案】 (1)*fw (2)str (3)str 【试题解析】 本题考查:函数定义以及文件指针; fputs函数的功能是向指定的文件写入一个字符串,其调用形式为: fputs(字符串,文件指针 )。 【解题思路】 填空 l:定义函数,函数的形参是一个文件类型的指针。 填空 2:此处考查 flputs函数的形式,应填人 str。 填空 3:依据 prinff函数的格式,输出字符串内容,即 printf (“ s“, str);。 三、程序修改题 42 【正确答案】 (1)a2=k 10; (2)return i; 【

30、试题解析】 本题考查:取数值 n的各个位; return语句将需要返回的函数值返回给函数 main。 【解题思路】 (1)a2存放十位数,所以是 a2=k 10,此处是一个书写错误。 (2)根据题意,要返回能被 3整除的数的个数,从循环体中可以知道其个数是由 i来 计算的,所以返回的是 i。 四、程序设计题 43 【正确答案】 void fun(char*a) int i=0; char*p=a; while(*p&*p=*) ai=*p; i+; p+; while(*p) if(*p!=*) ai=*p; i+; p+; ai= 0; 【试题解析】 本 题考查:指针型变量定义; while循环语句; if语句条件表达式;字符串结束标识 0。 【解题思路】 函数 fhn的功能:除了字符串前导的 *号之外,将串中其他木号全部删除。解答本题: 定义一个临时指针 p,初始指向原串首地址; 利用循环语句把字符串前导 *号复制到原串; 继续移动指针,把串中和串尾的非 *号字符复制到原串; 为修改后的字符串赋结束字符 0。

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

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

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