[计算机类试卷]国家二级C语言程序设计机试(选择题)模拟试卷6及答案与解析.doc

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

1、国家二级 C语言程序设计机试(选择题)模拟试卷 6及答案与解析 一、选择题 1 设循环队列的存储空间为 Q(1: 35),初始状态为 front=rear=35。现经过系列入队与退队运算后, front=15, rear=15,则循环队列中的元素个数为 ( )。 ( A) 20 ( B) 0或 35 ( C) 15 ( D) 16 2 下列关于栈的叙述中,正确的是 ( )。 ( A)栈底元素一定是最后入栈的元素 ( B)栈操作遵循 “先进后出 ”的原则 ( C)栈顶元素一定是最先入栈的元素 ( D)以上三种说法都不对 3 下列链表中,其逻辑结构属于非线性结构的是 ( )。 ( A)双向链表 (

2、 B)带链的栈 ( C)二叉链表 ( D)循环链表 4 在关系数据库中,用来表示实体间联系的是 ( )。 ( A)网状结构 ( B)树状结构 ( C)属性 ( D)二维表 5 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可有多名职员。则实体部门和职员间的联系是 ( )。 ( A) 1: m联系 ( B) m: n联系 ( C) 1: 1联系 ( D) m: 1联系 6 C语言中最基本的数据类型包括 ( )。 ( A)整型、实型、逻辑型 ( B)整型、字符型、数组 ( C)整型、实型、字符型 ( D)整型、实型、结构体 7 数据字典 (DD)所定义的对象都包含于 ( )。 (

3、A)软件结构图 ( B)方框图 ( C)数据流图 (DFD图 ) ( D)程序流程图 8 软件需求规格说明书的作用不包括 ( )。 ( A)软件设计的依据 ( B)软件可行性研究的依据 ( C)软件验收的依据 ( D)用户与开发人员对软件要做什么的共同理解 9 下列各项中属于黑盒测试方法的是 ( )。 ( A) 边界值分析 ( B)路径覆盖 ( C)语句覆盖 ( D)逻辑覆盖 10 下列各项中不属于软件设计阶段任务的是 ( )。 ( A)制订软件确认测试计划 ( B)数据库设计 ( C)软件总体设计 ( D)算法设计 11 以下叙述中正确的是 ( )。 ( A)在 C语言程序中, main函数

4、必须放在其他函数的最前面 ( B)每个后缀为 C的 C语言源程序都可以单独进行编译 ( C)在 C语言程序中,只有 main函数才可单独进行编译 ( D)每个后缀为 C的 C语言源程序都应该包含一个 main函数 12 C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述中正确的是 ( )。 ( A)预定义标识符 (如库函数中的函数名 )可用作用户标识符,但失去原有含义 ( B)用户标识符可以由字母和数字任意顺序组成 ( C)在标识符中大写字母和小写字母被认为是相同的字符 ( D)关键字可用作用户标识符,但失去原有含义 13 以下选项中表示一个合法的常量的是 (说明:符号口表示空格

5、)( )。 ( A) 999 ( B) 0Xab ( C) 123E0 2 ( D) 2 7e 14 C语言主要是借助以下哪个 功能来实现程序模块化 ?( ) ( A)定义函数 ( B)定义常量和外部变量 ( C)三种基本结构语句 ( D)丰富的数据类型 15 以下叙述中错误的是 ( )。 ( A)非零的数值型常量有正值和负值的区分 ( B)常量是在程序运行过程中值不能被改变的量 ( C)定义符号常量必须用类型名来设定常量的类型 ( D)用符号名表示的常量叫符号常量 16 若有定义和语句: int a, b; scanf(“ d, d“, &a, b); 以下选项中的输入数据,不能把值 3赋给

6、变量 a、把值 5赋给 变量 b的是 ( )。 ( A) 3, 5, ( B) 3, 5, 4 ( C) 3 5 ( D) 3, 5 17 C语言中 char类型数据占字节数为 ( )。 ( A) 3 ( B) 4 ( C) 1 ( D) 2 18 下列关系表达式中,结果为 “假 ”的是 ( )。 ( A) (3+4)6 ( B) (3 1=4)2 ( C) 3 main() int a=一 2, b=0; while(a+ +b); prinff(“ d, d n”, a, b); 程序运行后的输出结果是 ( )。 ( A) 1 3 ( B) 0, 2 ( C) 0, 3 ( D) 1, 2

7、 21 有以下程序: #include main() int a=2, 4, 6, 8, *P=a, i; for(i=0; i main() int ilia33=2, 4, 6, i, *P=&aa00; for(i=0; i int f(int x) return x*x+1: void main() int a, b=0; for(a=0; a int fun(int x) int P; if(x=0 x=1) return 3; P=xfun(x一 2); return(P); main() printf(“ d n”, fun(9); 程序运行后的输出结果是 ( )。 ( A) 4

8、 ( B) 5 ( C) 9 ( D) 7 27 有以下程序: #include main() int a=10, 20, 30, 40, *P=a, i; for(i=0; i #define N 3 void fun(int aN, int b) int i, j; for(i=0; i int fun(char*s) char*P=S: while(*P+!= 0); return(Ps); main() char*r=“01234”; printf(“ d n”, fun(r); 程序的运行结果是 ( )。 ( A) 6 ( B) 5 ( C) 4 ( D) 3 30 以下选项中,合法

9、的是 ( )。 ( A) char str3=d, e, b, u, g, 0; ( B) char str4: str4=“hello world”; ( C) char name10; name=“china”; ( D) char strl5=“pass”, str26; str2=strl; 31 有以下程序段: int fun(char*s) char*P; P=s: if(*s=0)return 0; while(*+P); return(PS); 该段程序是用来 ( )。 ( A)计算字符串所占字节数 ( B)实现字符串的赋值 ( C)计算字符串的长度 ( D)将字符串逆序存放

10、32 有以下程序: #include void main() char a510=“one”, “two”, “three”, “four”, “five”; int i, j; char t; for(i: 0; iaj0) t: ai0; ai0=aj0; aj0=t; puts(a1); 程序运行后的输出结果是 ( )。 ( A) two owo ( B) fix owo ( C) two fov ( D) owo off 33 有以下程序: #include int a=1, b=2; void funl(int a, int b) prinff(“ d d”, a, b); void

11、 fun2() a=3 b=4; void main() funl(5, 6); fun2(); prinff(“ d d n”, a, b); 程序运行后的输出结果是 ( )。 ( A) 1256 ( B) 5634 ( C) 5612 ( D) 3456 34 有以下程序: #include void func(int n) static int num=1; num=num+n; printf(“ d”, num); main() func(3); func(4); prinff(” n”); 程序运行后的输出结果是 ( )。 ( A) 4 8 ( B) 3 4 ( C) 3 5 ( D

12、) 4 5 35 有以下程序: #include #include void fun(int*pl, int*p2, int*s) s=(int*)malloc(sizeof(int); *s=*p1+*p2: free(s); void main() int a=1, b=40, *q=&a; fun(&a, &b, q); printf(“ d n”, *q); 程序运行后的输出结果是 ( )。 ( A) 42 ( B) 0 ( C) 1 ( D) 41 36 有以下程序: #include struct STU char name9; char sex; int score2; ; vo

13、id f(struct STU a) struct STU b=“Zhao”, m, 85, 90; a1=b; main() struct STU c2=“Qian”, f, 95, 92, “Sun”, m, 98, 99; f(c); printf(” s, c, d, d, ”, c0 nanle, c 0 sex, c 0 score0,c0 score1); prinff(“ s, c, d, d n”, c1 name, c1 sex, c1 score0,c1 score1); 程序运行后的输出结果是 ( )。 ( A) Zhao, m, 85, 90, Sun, m, 98,

14、 99 ( B) Zhao, m, 85, 90, Qian, f, 95, 92 ( C) Qian, f, 95, 92, Sun, m, 98, 99 ( D) Qian, f, 95, 92, Zhao, m, 85, 90 37 以下针对全局变量的叙述中错误的是 ( )。 ( A)用 extern说明符可以限制全局变量的作用域 ( B)全局变量是在函 数外部任意位置上定义的变量 ( C)全局变量的作用域是从定义位置开始至源文件结束 ( D)全局变量的生存期贯穿于整个程序的运行期间 38 以下关于宏的叙述中错误的是 ( )。 ( A)宏名必须用大写字母构成 ( B)宏替换不具有计算功能

15、 ( C)宏替换不具有计算功能 ( D)宏替换不占用运行时间 39 若有定义语句 int b=2;,则表达式 (b main() FILE*fp; int i, a E 6=1, 2, 3, 4, 5, 6; fp=fopen(“d2 dat”, “W+”); for(i=0; i2为假。 19 【正确答案】 D 【试题解析】 选项 A,当 c1和 c2相等时,不成立;选项 B, a*b要用括号括起来;选项 C, case与后面的数字用空格隔开。 20 【正确答案】 D 【试题解析】 考查 while循环以及自加运算,其中 a+是 a先参与运算再自加1,而 +b是 b先自加 1再参与运算。第一

16、次进入循环: a的值是一 2, b的值是0,判断条件为一 2&1, 2个值都是非零, while判断条件成立,接着进入第二次循环。这时 a的值是一 1, b的值是 1,判断条件即为一 1 &2,表达式的值为真,进入第三次循环。这时 a的值是 0, b的值是 2,判断条件为 0&3,与运算左边的值为 0,即判断为假。此时跳出循环,执行 prinff语句,这时 a的值是 1,b的值是 2。 21 【正确答案】 D 【试题 解析】 本题通过语句 “*p=a”将一维数组 a的首地址的值赋值给变量 p,即p的值为 2。执行 for循环, ai=*p+,表示将 p的值赋给 ai后,再进行 +操作。因此 4

17、次循环后 a2的值为 6。故 D选项正确。 22 【正确答案】 D 【试题解析】 比较两个字符串大小用函数 strcmp(str1, str2),空字符串有结尾符,所以也要占用字节,两个双引号表示地是空字符串。 23 【正确答案】 B 【试题解析】 本题主要考查指针与数组。观察题目,可以发现, *p=&aa00语句实际是 将数组 aa的首地址赋给指针变量 p,将 i的值带入 for循环中, i=0时,aa01=3, *p=2, *p输出地是指针所指向的数组值,此时 p所指向地是aa00,输出 2,而 i=1时执行了 +p操作,使指针向后移动指向 aa01,所以在输出 *p时应为 3。故 B选项

18、正确。 24 【正确答案】 B 【试题解析】 第一次循环时, b=1,输出结果为 B;第二次循环时, b=3,输出结果为 D;第三次循环时, b=8,输出结果为 I。 25 【正确答案】 A 【试题解析】 本题考查字符数组的初始化。 B选项中赋值号右侧是赋值给一个字符串数组,而左边是一个字符数组,所以错误; C选项中字符串包含 6个字符,所以不能赋值给左边只能存放 5个字符的字符串数组中。 D选项 gets函数中参数需要指定长度。故 A选项正确。 26 【正确答案】 D 【试题解析】 本题考查函数的递归调用。执行 fun(9)后, fun(9)=9一 (7一 (5一 (3一 f(1)=7,故

19、D选项正确。 27 【正确答案】 A 【试题解析】 for循环结束后,数组 a的值并没有变化,由于数组是由 0开始,所以 a2的值是 30。 28 【正确答案】 B 【试题解析】 fun函数功能是把数组 a的每一行的最大值赋给 b, a的第一行的最大值是 3,第二行的最大值是 6,第三行的最大值是 9,所以答案是 3, 6,9,。 29 【正确答案】 A 【试题解析】 程序执行过程为:定义字符串指针 r,并为其初始化为 “01234”,调用函数 fun(r),将指针传入函数 while循环找到字符串的结束符地址,然后使这个指针指向结束符下一个单元,结束循环。返回字符串首地址与结束符下一个地址之

20、差,也即是字符串长度加 1。输出地址差为 6。 30 【正确答案】 A 【试题解析】 选项 B不能把一个字符串赋值给一个字符变量,选项 C和 D犯了同样的错误是把字符串赋给了数组名。 31 【正确答案】 C 【试题解析】 在 fun()函数中定义了指针 p,首先把 s地址赋给 p,再通过 while函数移动指针 p,当 p指针指向单元为 0时,退出 while循环,返回此时 p和 s地址之差,即字符串长度。 32 【正确答案】 A 【试题解析】 for循环完成的功能是把二维数组 a的第一列的字母按从小到大排序,其他列的字母不变。 33 【正确答案】 B 【试题解析】 funl是输出局部变量的值

21、, fun2是把全局变量的值改成 3, 4,所以输出结果是 5634。 34 【正确答案】 A 【试题解析】 第一次调用 func函数时输出 4,第二次调用 func函数时 num值并不会释放,仍然是上次修改后的值 4,第二次调用结果为 8,所以输出结果是 4 8。 35 【正确答案】 C 【试题解析】 fun函数功能是新开辟内存空间存放 a和 b的地址, q的地址并没有变化,所以应该还是指向地址 a。 36 【正确答案】 D 【试题解析】 fun函数是为结构体数组的第二个数赋值 ,数组的第一个数没有变化,所以正确答案应选 D。 37 【正确答案】 A 【试题解析】 在不同编译单位内用 extem说明符来扩展全局变量的作用域,extern可以将全局变量作用域扩展到其他文件,而不是限制全局变量的作用域,故选 A。 38 【正确答案】 A 【试题解析】 宏名习惯采用大写字母,以便与一般变量区别,但是并没有规定一定要用大写字母,故选 A。 39 【正确答案】 B 【试题解析】 2的二进制数为 010,左移两位后的二进制数为 01000,转成二制数为 8, (32)为真即 1, 8 1=8,所以结果为 8。 40 【正确答案】 D 【试题解析】 这是对文件的操作,把数组的数写到文件里,然后再从文件里倒序读出。所以输出结果为 6, 5, 4, 3, 2, 1,。

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

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

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