【计算机类职业资格】国家二级C语言(指针、编译预处理和动态存储分配)机试模拟试卷1及答案解析.doc
《【计算机类职业资格】国家二级C语言(指针、编译预处理和动态存储分配)机试模拟试卷1及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级C语言(指针、编译预处理和动态存储分配)机试模拟试卷1及答案解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C 语言(指针、编译预处理和动态存储分配)机试模拟试卷 1 及答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.有以下程序: #include void f(int*P,int*q); main() int m=1,n=2,*r=b+;”,指针 a、b 分别指向下一个字符单元。再判断循环条件,如果成立,继续把指针 a 所指向的字符赋给指针 b 所在的内存单元,直到遇到结束标识为止,因此 A 选项正确。13.有以下程序: #include #define N 4 void fun(int aN,int b) int i; f10r(i=0
2、;iA.一 3,一 1,1,3, B.一 12,一 3,00,C.0,1,2,3,D.一 3,一 3,一 3,一 3,解析:解析:本题由 fun 函数可知,b0=a00一 a03=1 一 4=一 3,b1=a11一12=67=一 1,b2=a22一21=1110=1,b3=a33一31=1613=3,所以主函数中打印 y 数组元素的值为 A 选项。14.有以下程序: #include #include main() char str20=tOne*World”,”One*Dream!”;,*P=str1; prinff(“d,”,strlen(P); prinff(“sn”,P); 程序的运行
3、结果是( )。(分数:2.00)A.10,One*Dream! B.9,One*Dream!C.9,One*WorldD.10,One*World解析:解析:p 是指向二维字符数组第二行 one*Dream!的数组指针,所以长度是 10,打印输出的也是该字符串。15.若有定义 int w35;则以下不能正确表示该数组元素的表达式是( )。(分数:2.00)A.*(&w00+1)B.*(*w+3)C.*(*(w+1)D.*(w+1)4 解析:解析:A 选项中*(&w00+1)表示 w01;B 选项中*(*w+3)表示 w03;C 选项中*(*(w+1)表示 w01;而 D 选项中*(w+1)4的
4、正确写法是(*w+1)4,表示 w14,因此选择 D 选项。16.下列语句组中正确的是( )。(分数:2.00)A.char*s;s=“Olympic”; B.char s7;s=“Olympic”;C.char*s;s=“Olympic”;D.char s7;s=“Olympic”;解析:解析:字符型指针变量可以用 A 选项的赋值方法:chaur*s;s=“Olympic”。C 选项的写法:char*s,s= Olymp;是错误的。字符数组可以在定义的时候初始化:char s=Olymp”;或者 char s=“Olymp“,但是不可以在定义字符数组后对数组名赋值(数组名是常量,代表数组首地
5、址),所以 B 选项和 D 选项都是错误的。对于本例,B、D 选项中字符数组 s 的大小至少为 8,才能存放下字符串(字符串的末尾都有结束标志“0”)。17.有以下程序(注:字符 a 的 ASC码值为 97): #include main() char*s=“abe”; do printf(“d”,*s10); +s: while(*s); 程序的运行结果是( )。(分数:2.00)A.789 B.abeC.7890D.979899解析:解析:因为小写字符 a、b、c 的 ASC码值分别为 97、98、99,而在 do while 循环语句中,每次对字符的 ASC码值取余数并输出,所以分别输出
6、 7、8、9。18.设有定义“char*c;”,以下选项中能够使 c 正确指向一个字符串的是( )。(分数:2.00)A.char str=“string”;c=str; B.scanf(“s”,c)C.c=getchar();D.*c=“string”;解析:解析:选项 A 为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组时为其分配确定的地址)。C 选项错误,getchar()函数输入一个字符给字符型变量,而不是字符指针。B 选项和 D 选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在 B 选项和 D 选项中,宁符指针没有被
7、赋值,足个不确定的值,指向一个不确定的内存区域,这个区域可能存放有用的指令或数据。在这个不确定的区域重新存放字符串,可能会发生无法预知的错误。19.有以下函数: int fun(char*x,char*y) int n=0; while(*x=*y)&*X!=0) x+: y+; n+: return n; 函数的功能是( )。(分数:2.00)A.将 y 所指字符串赋给 x 所指存储空间B.查找 x 和 y 所指字符串中是否有0C.统计 x 和 y 所指字符串中最前面连续相同的字符个数 D.统计 x 和 y 所指字符串中相同的字符个数解析:解析:本题中由循环条件可知,遇到0或 x 与 y 所
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 语言 指针 编译 预处理 动态 存储 分配 模拟 试卷 答案 解析 DOC
