欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:498994       资源大小:53.50KB        全文页数:20页
    • 资源格式: DOC        下载积分:2000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要2000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [计算机类试卷]国家二级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选项错误。 【知识模块】 编译预处理和动态存储分配


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开