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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]国家二级C语言(指针、编译预处理和动态存储分配)机试模拟试卷1及答案与解析.doc

1、国家二级 C语言(指针、编译预处理和动态存储分配)机试模拟试卷1及答案与解析 一、选择题 1 有以下程序: #include void f(int*P, int*q); main() int m=1, n=2, *r=b+; ”,指针 a、 b分别指向下一个字符单元。再判断循环条件,如果成立,继续把指针 a所指向的字符赋给指针 b所在的内存单元,直到遇到结束标识为止,因此 A选项正确。 【知识模块】 指针 13 【 正确答案】 A 【试题解析】 本题由 fun函数可知, b0=a00一 a03=1一 4=一 3,b1=a11一 12=67=一 1, b2=a22一 21=1110=1, b3=

2、a33一31=1613=3,所以主函数中打印 y数组元素的值为 A选项。 【知识模块】 指针 14 【正确答案】 A 【试题解析】 p是指向二维字符数组第二行 one*Dream!的数组指针,所以长度是 10,打印输出的也是该字符串。 【知识模块 】 指针 15 【正确答案】 D 【试题解析】 A选项中 *(&w00+1)表示 w01; B选项中 *(*w+3)表示w03; C选项中 *(*(w+1)表示 w01;而 D选项中 *(w+1)4的正确写法是(*w+1)4,表示 w14,因此选择 D选项。 【知识模块】 指针 16 【正确答案】 A 【试题解析】 字符型指针变量可以用 A选项的赋值

3、方法: chaur*s;s=“Olympic”。 C选项的写法: char*s, s= Olymp;是错误的。字 符数组可以在定义的时候初始化: char s=Olymp”;或者 char s=“Olymp“,但是不可以在定义字符数组后对数组名赋值 (数组名是常量,代表数组首地址 ),所以 B选项和 D选项都是错误的。对于本例, B、 D选项中字符数组 s的大小至少为 8,才能存放下字符串 (字符串的末尾都有结束标志 “ 0”)。 【知识模块】 指针 17 【正确答案】 A 【试题解析】 因为小写字符 a、 b、 c的 ASC 码值分别为 97、 98、 99,而在 do while循环语句中

4、,每次对字符的 ASC 码值取余数并输 出,所以分别输出 7、8、 9。 【知识模块】 指针 18 【正确答案】 A 【试题解析】 选项 A为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针 (数组名代表数组首地址,定义数组时为其分配确定的地址 )。 C选项错误, getchar()函数输入一个字符给字符型变量,而不是字符指针。 B选项和 D选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在B选项和 D选项中,宁符指针没有被赋值,足个不确定的值,指向一个不确定的内存区域,这个区域可能存放有用的指令或数据。在这个不确定的 区域重新存放字符串,可能会发生无法预知的错

5、误。 【知识模块】 指针 19 【正确答案】 C 【试题解析】 本题中由循环条件可知,遇到 0或 x与 y所指的字符的值不等中的一个条件时就结束,所以功能是统计 x和 y所指字符串中最前面连续相同的字符个数。 【知识模块】 指针 20 【正确答案】 B 【试题解析】 A选项去掉大括号就正确了; C选项和 D选项应在定义时赋初值。B选项正确。 【知识模块】 指针 21 【正确答案】 B 【试题解析】 int(*f)(int);为 指向函数的指针变量的定义方法,其中 f为指向函数的指针变量,第一个 int为函数返回值类型,第二个 int为函数的形参类型,因此 B选项正确。 【知识模块】 指针 22

6、 【正确答案】 D 【试题解析】 D选项中, *f(a, b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量 k。 【知识模块】 指针 23 【正确答案】 A 【试题解析】 数组定义后,不可以对数组整体赋值, s是二维数组,因 ss1是一维字符数组,即字符串,字符串赋值可以使 用 “strcpy(ss1, “right”); ”这样的形式,而 A选项中对二维数组中的第 “1”维 (相当于一个一维数组 )赋值是不可以的。B选项和 D选项是定义时对数组初始化,这是可以的。在 C选项中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。 【

7、知识模块】 指针 24 【正确答案】 A 【试题解析】 预处理命令是以 “#”号开头的命令,它们不是 C语言的可执行命令,这些命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在起始位置书写,所以 B、 C选项错误。 C语言的预处理能够实 现宏定义和条件编译等功能,所以 D选项错误。 【知识模块】 编译预处理和动态存储分配 25 【正确答案】 A 【试题解析】 宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头,所以 B选项中 “宏定义必须位于源程序中所有语句之前 ”是错误的。宏名一般用大写,但不是必须用大写,所以 C选项错误。宏展开不占运行时间,只占编译时间,函数调

8、用占运行时间 (分配内存、保留现场、值传递、返回值 ),所以D选项错误。 【知识模块】 编译预处理和动态存储分配 26 【正确答案】 C 【试题 解析】 宏定义不是 C语句,末尾不需要有分号,语句 printf(“ 4 Ifn”, S(a+b);展开后为 printf(“ 4 If n”, 3 5; *a+b*a+b; );,所以程序会出现语法错误。 【知识模块】 编译预处理和动态存储分配 27 【正确答案】 B 【试题解析】 本题考查预编译相关知识,宏定义在编译程序时做了一个简单的替换,所以 B选项正确。 【知识模块】 编译预处理和动态存储分配 28 【正确答案】 C 【试题解析】 本题考查带参数的宏定义, s为带参数的宏定义,运 行 s(k+j)为4*(k+j)*k+j+1=143, C选项正确。 【知识模块】 编译预处理和动态存储分配 29 【正确答案】 C 【试题解析】 本题考查宏定义。宏定义只是做简单的替换,本题中SUB(a+b)*c=(a+b)一 (a+b)*c=一 20,所以 C选项正确。 【知识模块】 编译预处理和动态存储分配 30 【正确答案】 A 【试题解析】 本题考查预处理命令行。预处理是在程序编译之前进行的,所以 A选项错误。 【知识模块】 编译预处理和动态存储分配

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