ImageVerifierCode 换一换
格式:DOC , 页数:23 ,大小:58.50KB ,
资源ID:498887      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-498887.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C语言机试(选择题)模拟试卷79及答案与解析.doc)为本站会员(proposalcash356)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、国家二级 C语言机试(选择题)模拟试卷 79及答案与解析 一、选择题 1 下列关于栈和队列的描述中,正确的是 ( )。 ( A)栈是先进先出 ( B)队列是先进后出 ( C)队列允许在队头删除元素 ( D)栈在栈顶删除元素 2 已知二叉树后序遍历序列是 CDABE,中序遍历序列是 CADEB,它的前序遍历序列是 ( )。 ( A) ABCDE ( B) ECABD ( C) EACDB ( D) CDEAB 3 在数据流图中,带有箭头的线段表示的是 ( )。 ( A)控制流 ( B)数据流 ( C)模块调用 ( D)事件驱动 4 结构化程序设计的 3种结构是 ( )。 ( A)顺序结构,分支结

2、构,跳转结构 ( B)顺序结构,选择结构,循环结构 ( C)分支结构,选择结构,循环结构 ( D)分支结构,跳转结构,循环结构 5 下列方法中,不属于软件调试方法的是 ( )。 ( A)回溯法 ( B)强行排错法 ( C)集成测试法 ( D)原因排除法 6 下列选项中,不属于模块间耦合的是 ( )。 ( A)内容耦合 ( B)异构耦合 ( C)控制耦合 ( D)数据耦合 7 下列特征中 不是面向对象方法的主要特征的是 ( )。 ( A)多态性 ( B)标识惟一性 ( C)封装性 ( D)耦合性 8 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( )。 ( A)需求分析阶段 ( B

3、)概念设计阶段 ( C)逻辑设计阶段 ( D)物理设计阶段 9 在一棵二叉树上,第 5层的结点数最多是 ( )。 ( A) 8 ( B) 9 ( C) 15 ( D) 16 10 下列有关数据库的描述,正确的是 ( )。 ( A)数据库设计是指设计数据库管理系统 ( B)数据库技术的根本 目标是要解决数据共享的问题 ( C)数据库是一个独立的系统,不需要操作系统的支持 ( D)数据库系统中,数据的物理结构必须与逻辑结构一致 11 以下关于 C语言的叙述中正确的是 ( )。 ( A)预处理命令通常位于函数体外面,但也可以位于函数体中间 ( B) C语言中的变量定义须在其他语句之前 ( C)在 C

4、语言程序的书写中,一个语句必须单占一行 ( D)一个 C语言源程序可以由一个或多个源文件组成,每个源文件可由自己的main函数 12 下列叙述中错误的是 ( )。 ( A)用户所定义的标识符允许 使用关键字 ( B)用户所定义的标识符应尽量做到 “见名知意 ” ( C)用户所定义的标识符必须以字母或下划线开头 ( D)用户定义的标识符中,大、小写字母代表不同标识 13 下列选项中可作为 C语言合法常量的是 ( )。 ( A) -80 ( B) -080 ( C) -8e1 0 ( D) -80 0e 14 下列定义变量的语句中错误的是 ( )。 ( A) int _int; ( B) doub

5、le int_; ( C) char For; ( D) float US$; 15 下列关于函数的叙述中正 确的是 ( )。 ( A)每个函数都可以被其他函数调用 (包括 main函数 ) ( B)每个函数都可以被单独编译 ( C)每个函数都可以单独运行 ( D)在一个函数内部可以定义另一个函数 16 当 a=1、 b=2、 c=3、 d=4时,执行下面程序段后, x的值是 ( )。 if(a b) if(c d)x=1; else if(a c) if(b d) x=2; else x=3; else x=6; else x=7; ( A) 1 ( B) 6 ( C) 3 ( D) 2 1

6、7 以下程序的输出结果是 ( )。 #include stdio.h main() int a=4, b=3, c=2, d=1; printf( d, a b?a: d c?d: b); ( A) 1 ( B) 3 ( C) 2 ( D) 4 18 有以下程序 #include stdio.h main() int b33=0, 1, 2, 0, 1, 2, 0, 1, 2, i,j, t=0; for(i=0; i 3; i+) for(j=2; j =i; j-)t+=bij; printf( d n, t); 程序运行后的输出结果是 ( )。 ( A) 4 ( B) 3 ( C) 8

7、( D) 9 19 以下程序: #include stdio.h main() char str10; scanf( s, &str); printf( s n, str); 运行上面的 程序,输入字符串 “how are you”,则程序的执行结果是 ( )。 ( A) how ( B) how are you ( C) h ( D) howareyou 20 设变量 x和变量 y都是 int类型,且 x=l, y=2, 则 printf( d d,x, y, (x, y)的输出结果是 ( )。 ( A) 1 2 ( B) 1 2 2 ( C) 1,2 ( D)输出值不确定 21 以下程序的

8、输出结果是 ( )。 #include stdio h main() int a=8, b=6, m=1; switch(a 4) case 0: m+; break; case 1: m+: switch(b 3) default: m+; case 0: m+: break; printf( d n, m); ( A) 1 ( B) 2 ( C) 3 ( D) 4 22 定义如下变量和数组: int i, x33=1,2, 3, 4, 5, 6, 7, 8, 9; 则下面语句的 输出结果是 ( )。 for(i=0; i 3; i+) printf( d,xi2-i); ( A) 159

9、( B) 147 ( C) 357 ( D) 369 23 有下列程序段: typedef struct NODE int num; struct NODE *next; OLD; 下列叙述中正确的是 ( )。 ( A)以上的说明形式非法 ( B) NODE是一个结构体类型 ( C) OLD是一个结构体类型 ( D) OLD是一个结构体变量 24 下列数组定义中错误的是 ( )。 ( A) int X3=0; ( B) int x23=1, 2, 3, 4, 5, 6; ( C) int x3=1,2, 3, 4, 5, 6; ( D) int x23=1, 2, 3, 4, 5, 6; 25

10、 以下叙述错误的是 ( )。 ( A)变量的作用域取决于变量定义语句的位置 ( B)全局变量可以在函数以外的任何部位进行定义 ( C)局部变量的作用域可用于其他函数的调用 ( D)一个变量说明为 static存 储类型是为了限制其他编译单元的引用 26 若定义函数 “int*func()”,则函数 func的返回值为 ( )。 ( A)一个实数 ( B)一个指向整型变量的指针 ( C)一个指向整型函数的指针 ( D)一个整型函数的入口地址 27 若有定义 “int a5, *p=a; ”则正确引用数组元素的是 ( )。 ( A) *&a5 ( B) *a+2 ( C) *(p+5) ( D)

11、*(a+2) 28 以下对 C语言中联合类型数据的正确叙述是 ( )。 ( A)定义了联合变量后,即可引用该变量 或该变量中的任意成员 ( B)一个联合变量中可以同时存放其所有成员 ( C)联合中的各个成员使用共同的存储区域 ( D)在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变 29 有以下函数定义: int fun(double a, double b) return a*b; 若以下选项中所用变量都已正确定义并赋值,错误的函数调用是 ( )。 ( A) if(fun(x, y) ( B) z=fun(fun(x, y), fun(x, y); ( C) z=fun(fun(x

12、, y)x, y); ( D) fun(x, y); 30 执行以下语句段后, xy的值是 ( )。 int *pt, xy; xy=200; pt=&xy; xy=*pt+30; ( A) 200 ( B) 170 ( C) 260 ( D) 230 31 下述程序的输出结果是 ( )。 #include stdio h void main() int a20, *p4; int i, k=0; for(i=0; i 20; i+) ai=i; for(i=0; i 4; i+) pi=&ai*i+1; for(j=0; i 4; i+) k=k+*pi; printf( d, k); (

13、A) 10 ( B) 18 ( C) 6 ( D)数组元素引用不合法,输出结果不定 32 有以下程序: #include stdio.h #define N 8 void fun(int*x, int i) *x=*(x+i)+1; main() int aN=1, 2, 3, 4, 5, 6, 7, 8, i; fun(a,2); for(i=0; i N 2; i+) printf( d, ai); printf( n); 程序运行后的输出结果是 ( )。 ( A) 1 3 1 3 ( B) 3 2 3 4 ( C) 4 2 3 4 ( D) 1 2 3 4 33 下面程序的输出结果是 (

14、 )。 #include stdio h main() char a=a, b, c, d, f, g, *p; p=a; printf( c n, *p+4); ( A) a ( B) b ( C) e ( D) f 34 下面函数的功能是 ( )。 sss(s, t) char *s, *t; while(*s); while(*t) *(s+)=*(t+); return s; ( A)将字符串 s复制到字符串 t中 ( B)比较两个字符串的大小 ( C)求字符串的长度 ( D)将字符串 t续接到字符串 s中 35 下列程序的运行结果是 ( )。 #include stdio h voi

15、d sub(int*s, int*y) static int m=4; *y=sm; m-; void main() int a=1, 2, 3, 4, 5, k, x; printf( n); for(k=0; k=4; k+) sub(a, &x); printf( d, , x); ( A) 5,4, 3, 2, 1, ( B) 1, 2, 3, 4, 5, ( C) 0, 0, 0, 0, 0, ( D) 4, 4, 4, 4, 4, 36 设 q1和 q2是指向一个 int型一维数组的指针变量, k为 float型变量,下列不能正确执行的语句是 ( )。 ( A) k=*q1*(*q

16、2); ( B) q1=k; ( C) q1=q2; ( D) k=*q1+*q2; 37 下列程序的输出结果为 ( )。 main() union un char *name; int age; int pay; s; s name=zhaoming; s age=32; s pay=3000; printf( d n, s age); ( A) 32 ( B) 3000 ( C) 0 ( D)不确定 38 以下有关宏替换的叙述不正确的是 ( )。 ( A)使用宏定义可以嵌套 ( B)宏定义语句不进行语法检查 ( C)双引号中出现的宏名不替换 ( D)宏名必须 用大写字母表示 39 有以下程

17、序: #include stdio h int b=3; int fun(int*k) b=*k+b; return(b); main() int a10=1, 2, 3, 4, 5, 6, 7, 8, i; for(i=2; i 4; i+)b=fun(&ai)+b; printf(d , b); printf( n); 程序运行后的输出结果是 ( )。 ( A) 12 14 ( B) 12 32 ( C) 10 14 ( D) 10 20 40 已知函数的调用形式 “fread(buffer,size, count, fp); 其中 buffer代表的是 ( )。 ( A)一个整型变量,代

18、表要读入的数据项总数 ( B)一个文件指针,指向要读的文件 ( C)一个指针,是指向的输入数据放在内存中的起始位置 ( D)一个存储区,存放要读的数据项 国家二级 C语言机试(选择题)模拟试卷 79答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 栈实际也 是线性表,只不过是一种特殊的线性表。栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。 2 【正确答案】 C 【试题解析】 由于后序遍历的最后一个元素为 E,所以 E为根结点,所以它的前序遍历的首

19、个元素为 E,故排除 A和 D选项。由于中序遍历中,元素 B在元素根结点 E的后面,所以 B为二叉树的右子树,并且该二 叉树右子树只有一个元素,所以前序遍历的最后一个元素应为 B,故选项 C为正确选项,即该二叉树的前序遍历序列是 EACDB。 3 【正确答案】 B 【试题解析】 数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。 4 【正确答案】 B 【试题解析】 程序设计语言仅仅使用顺序、选择和重复 (循环 )三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编

20、程工作的效率,降低软件 的开发成本。 5 【正确答案】 C 【试题解析】 软件调试主要采用以下三种方法: 强行排错法:作为传统的调试方法,其过程可概括为设置断点、程序暂停、观察程序状态、继续运行程序。 回溯法:该方法适合于小规模程序的排错、即一旦发现了错误,先分析错误征兆,确定最先发现 “症状 ”的位置。 原因排除法:原因排除法是通过演绎和归纳,以及二分法来实现。 6 【正确答案】 B 【试题解析】 耦合可以分为下列几种,它们之间的耦合度由高到低排列: 内容耦合一一若一个模块直接访问 另一模块的内容,则这两个模块称为内容耦合。 公共耦合一一若一组模块都访问同一全局数据结构,则称为公共耦合。 外

21、部耦合一一若一组模块都访问同一全局数据项,则称为外部耦合。 控制耦合 若一模块明显地把开关量、名字等信息送入另一模块,控制另一模块的功能,则称为控制耦合。 标记耦合一一若两个以上的模块都需要其余某一数据结构的子结构时,不使用其余全局变量的方式而全使用记录传递的方式,这样的耦合称为标记耦合。 数据耦合 若一个模块访问另一个模块,被访问模块的输入和输出都是数据项参数,则这两个模块为数据耦合。 非直接耦合 若两个模块没有直接关系,它们之间的联系完全是通过程序的控制和调用来实现的,则称这两个模块为非直接耦合,这样的耦合独立性最强。 7 【正确答案】 D 【试题解析】 面向对象设计方法与面向过程设计方法

22、有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:标识惟一性、多态性、封装性、模块独立性、继承和多态性好。 8 【正确答案】 C 【试题解析】 逻辑结构设计的任务:概念结构是各种数据模型的共同基础, 为了能够用某一 DBMS实现用户需求,还必须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。它包括从 E-R图向关系模式转换和逻辑模式规范化及调整、实现。 9 【正确答案】 D 【试题解析】 根据二叉树的性质:二叉树第 i(i1)层上至多有 2i-1个结点。得到第5层的结点数最多是 16个。 10 【正确答案】 B 【试题解析

23、】 数据库设计的目的实质上是设计出满足实际应用需求的实际关系模型。数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使 多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。 11 【正确答案】 A 【试题解析】 源程序中可以有预处理命令 (include命令仅为其中的一种 )。 C语言中的变量可以在使用之前的任何位置进行定义。 C语言程序的书写中,多个语句可以位于一行,但为了增强可读性,一般每行只有一条语句。一个 C语言源程序可以由一个或多个源文件组成,但仅可以有一个 main

24、函数。 12 【正确答案】 A 【试题解析】 在 C语 言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,凡是要求标识符的地方都必须按此规则命名。在 C语言的标识符中,大写字母和小写字母被认为是两个不同的字符。在选择标识符时,应注意做到 “见名知义 ”,即选择具有一定含义的英文单词或汉语拼音作为标识符,以增加程序的可读性。 13 【正确答案】 A 【试题解析】 所谓常量是指在程序运行的过程中,其值不能被改变的量。在 C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项 B中是以0开头,表示一个八进制数 ,而八进制数的取值范围是 0

25、7,所以 “-080”错误;在C语言中 e后面的指数必须是整数,因此选项 C和 D也不正确。 14 【正确答案】 D 【试题解析】 C语言规定,变量的标识符只能由字母、数字和下划线 3种字符组成,且首字符必须为字母或下划线。在 C语言中大写字母和小写字母被认为是两个不同的字符。选项 A定义的变量标识符 _int和选项 B定义的变量标识符 _int与C语言的关键字 int是不同的,是正确的变量标识。选项 C定义的变量标识符 For与 C语言中的关键字 for是两个不同的标识符,所以选项 C是正确的,而选 项 D包含有特殊字符 $,因而其不符合 C语言的变量命名规定。 15 【正确答案】 B 【试

26、题解析】 在 C语言中,函数定义是平行的,函数不能嵌套定义,即函数之间没有从属关系。虽然函数之间可以相互调用,但 main()函数不能被调用,选项A错误; C程序从 main()函数开始执行,当 main()函数执行完毕时,整个程序就结束了。 C程序的执行必须从 main()函数开始,选项 C选项错误;函数不能嵌套定义,选项 D错误。 16 【正确答案】 A 【试题解析】 本题考查的是 if-else语句。第一个 if语句, 先判断条件,发现 ab条件成立,执行下面的语句。第二个 if语句,先判断条件,发现 c d条件成立,执行下面的语句 x=1。 17 【正确答案】 A 【试题解析】 条件表

27、达式的格式为: a?b: c,它的功能是:当 a为真时,表达式的值等于 b的值;当 a为假时,表达式的值等于 c的值。因为条件运算符的结合方向为 “自右向左 ”。因此,当表达式中嵌套使用条件表达式时,应先计算右边的条件表达式,再计算左边的条件表达式。题中应先计算 “dc?d: b”的 “dc”关系表达式的值,因为 “d=1 c=2”为真,所以取第一 个表达式的值,即 d的值作为整个表达式的值。接着计算 “a b?a: d”, “a=4 b=3”为假,取第二个表达式的值,即 d的值作为整个表达式的值。 18 【正确答案】 C 【试题解析】 这道题主要考查的是二维数组的有关知识。在两层 for循环

28、语句中,累加上三角元素,所以程序执行的过程为“t=b00+b01+b02+b11+b12+b22=8”。 19 【正确答案】 A 【试题解析】 当从键盘输入 “how are you”时,由于 scanf输入函数 的特点是遇到空格时结束读入字符,因此,该程序只将 how这 3个字符送到了字符数组 str中,并在其后自动加上结束符 “ 0”。 20 【正确答案】 A 【试题解析】 本题考查 printf函数的格式和逗号表达式。 printf函数在输出时,是根据格式说明符的个数输出的,如果函数中有多余的项将不予输出;如果有输出项少于格式说明符,则出错,不能输出正确的结果。本题中逗号表达式 (x,

29、y)只返回 y的值。此时格式说明的个数是 2,而输出项的个数是 3,因此 printf函数只输出前两项。 21 【正确答案】 B 【试题解析】 本题考查 switch语句。因为 a=8, a 4=0,所以执行 case 0后面的语句,将 m加 1,遇到 break语句跳出 switch。 22 【正确答案】 C 【试题解析】 本题主要考查二维数组的使用。题中利用 for循环来输出 x数组中的指定元素: 当 i=0时,输出 x02=3; 当 i=1时,输出 x11=5; 当 i=2时,输出 x20=7。 23 【正确答案】 C 【试题解析】 C语言允许用 typedef说明一种新类型名,其一般形

30、式为: typedef类型名标识符 。 typedef语句的作用仅仅是使 “标识符 ”来代表已存在的 “类型名 ”,并未产生新的数据类型。原有类型名依然有效。此题中,用 typedef定义了新的类型 OLD结构,所以 OLD为结构体类型。 24 【正确答案】 B 【试题解析】 二维数组的初始化有以下几种形式: 分行进行初始化; 不分行的初始化; 部分数组元素初始化; 省略第一维的定义,不省略第二维的定义。在选项 B中赋值号左边定义了一个 2行 3列的二维数组,而右边用 3行 2列的数字进行赋初值。所以出现了边界的越界溢出错误。 25 【正确答案】 D 【试题解析】 本题考查函数调用的变量作用域

31、。全局变量不在任何函数体内定义,作用域为整个文件;局部变量在函数体内定义,作用域仅为本次函数; static类型是静态变量,为了方便其他编译单元的引用,不能随意改变。 一个函数包含两部分:函数首和函数体,函数体包括花括号内的所有语句。 26 【正确答案】 B 【试题解析】 本题考查函数返回值。 fun函数的返回值类型为 int*类型,即函数返回一个指向整型变量的指针。 27 【正确答案】 D 【试题解析】 本题考查通过指针引用数组元素。用指 针引用数组有以下 3种形式: “(p+n)与 (a+n)”表示数组元素 an的地址; “*(p+n)与 *(a+n)“表示数组元素 an; “pn=*(p

32、+n)”,都表示数组元素 an。 选项 A、 B没有这种引用形式;选项 C, “*(p+5)”是引用数组的第 6个元素,而数组一共有 5个元素,出现越界;选项 D, “*(a+2)”引用数组的第 3个元素。 28 【正确答案】 C 【试题解析】 联合体的几个特点: 联合体所占用的内存空间为最长的成员所占用的空间; 各个成员分量全部是从低地址方向开始使用内 存单元; 联合体中的空间在某一时刻只能保存某一个成员的数据; 联合体和结构体可以任意嵌套。 29 【正确答案】 C 【试题解析】 本题考查函数调用时的参数传递。选项 C中第一个参数的表达式不正确,因此不能得到正确的结果。 30 【正确答案】

33、D 【试题解析】 本题考查指针的运用。通过 pt=&xy,将 pt指向 xy所占的内存地址,而 *pt是指针 pt所指向内存单元中的内容,即 200,所以最后 xy的值为230。 31 【正确答案】 B 【试题解析】 第一个 for循环,给数组 a的 20个元素 分别赋值 0 19;第二个for循环,给数组 p赋值, p0=a1=1, p1=a2=2, p2=a5=5,p3=a10=10;第三个 for循环,将数组 p中元素的值进行累加,k=1+2+5+10=18。 32 【正确答案】 C 【试题解析】 函数 “fun(int*x,int i)”的功能是把数组元素 xi的值加 1赋给 x0。所

34、以在主函数中执行 fun(a,2)后,数组元数 a0的值等于 4。然后在 for循环语句中,输出数组 a中的前 4个元素的值,分别是 4、 2、 3、 4。 33 【正确答案】 C 【试题解析】 “*”号的优先级比 “+”的优先级高,所以先执行 “*p”;指针 p指向的是数组的首地址,因此 “*p=a”,再加 4得 e。 34 【正确答案】 D 【试题解析】 本题考查指针变量的运用。本题中的函数实质上是将字符串 t续接到字符串 s中。 35 【正确答案】 A 【试题解析】 本题考查的是静态变量以及函数的实参与形参之间的地址值传递。sub()函数中定义的变量 m是一个静态变量,系统可为其分配固定

35、的存储空间,重复使用时,变量的值保留:所以当 main()函数 中的 for循环中语句 “sub(a, &x)”;执行时, sub函数中 m的值依次是 4、 3、 2、 1、 0;因为变量 x进行的是地址值传递,所以最后依次输出的是数组 a的元素 a4、 a3、 a2、 a1、 a0。 36 【正确答案】 B 【试题解析】 本题考查指针变量的赋值操作。选项 A是将指针 q1和 q2所指向的变量值相乘,然后赋给 k;选项 B中, float型数据和指针型数据之间不能进行赋值运算;选项 C中,是两个指针变量之间的赋值;选项 D中,是两个指针型变量所指向的两个 int型数据相加。 37 【正确 答案

36、】 B 【试题解析】 本题考查的是联合体的有关概念。因为联合体是各个成员共享一段存储空间,此段存储空间最终存放的是最后存入的成员的值,所以题目中输出s age实际上输出了最后存入的 3000,因为 3000已经把原来存入的 s age(32)的值覆盖。 38 【正确答案】 D 【试题解析】 本题考查宏替换的规则。宏替换有两类:简单的字符替换和带参数的宏替换。使用宏应注意: 宏定义仅仅是符号替换,不是赋值语句,因此不做语法检查; 为了区别程序中其他的标示符,宏名的定义通常用大写字母,但不是必须用 大写; 双引号中出现的宏名不替换; 使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。 39 【正确答案】 B 【试题解析】 i=2时, fun(&a2)返回值是: b=b+a1=1=3+3=6,b=b+b=6+6=12;i=3时, fun( a3)返回值是: b=b+a3=12+4=16, b=b+b=16+16=32。 40 【正确答案】 C 【试题解析】 数据块输入输出函数的调用形式为: fread(buffer,size,count,fp)。 fread函数参数 说明: “buffer”是一个指针,对 fread来说,它是读入数据的存放地址; “size”是要读写的字节数; “count”是要进行读写多少个 size字节的数据项; “fp”是指文件型指针。

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