二级C语言笔试-338

上传人:桔**** 文档编号:508069226 上传时间:2023-01-04 格式:DOC 页数:15 大小:165KB
返回 下载 相关 举报
二级C语言笔试-338_第1页
第1页 / 共15页
二级C语言笔试-338_第2页
第2页 / 共15页
二级C语言笔试-338_第3页
第3页 / 共15页
二级C语言笔试-338_第4页
第4页 / 共15页
二级C语言笔试-338_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《二级C语言笔试-338》由会员分享,可在线阅读,更多相关《二级C语言笔试-338(15页珍藏版)》请在金锄头文库上搜索。

1、二级 C 语言笔试 -338( 总分: 100.00 ,做题时间: 90 分钟 )一、 选择题( 总题数: 40,分数: 70.00)1. 设有以下语句:int a=1, b=2, c;c=aA(b 2);执行后, c 的值为 ( ) 。(分数: 2.00 )A. 6B. 7C. 8D.9 V解析:解析本题考查两个知识点,按位异或和左移把b左秽2位化成二进制c=aA(b 2)=日人(0000102;(分数: 2.00 )A. 00000011VB. 00010100C. 00011100D. 00011000解析:解析本题主要考查右移运算和按位异或。把b化为二进制数为00000100,右移两位

2、后为00000001,a 的二进制为 00000010,两者异或为 00000011 。3. 设“ int x=2, y=1;,则表达式(!x II y -)的值是()。(分数: 2.00 )A. 0B. 1VC. 2D. -1解析:解析因x为2,所以!x时表达式值为0,因y为1 , y-表达式的值为1然后自减1, y为0,所 以!X |y -时表达武的值为1。4. 下列程序的输出的结果是 ( ) 。main()double d=3.2; int x, Y;x=1.2; y=(x+3.8)/5.0;printf(%d/n, d*y);(分数: 2.00 )A. 3B. 3.2C. OVD. 3

3、.07解析: 解析 根据赋值运算的类型转换规则,先将 double 型的常量 1.2 转换为 int 型,因为 x 的类型是 int,则x的值为1;执行语句y=(x+3.8)/5.0时,即先将整型变量x的值1转换为double型1.0,然后3.8相加得4.8,进行除法运算4.8/5.0结果为0,即变量y的值为0, d*y的值也为0,故选C选项。5. 函数 fseek() 的正确调用形式是 ( ) 。(分数: 2.00 )A. fseek(位移量,起始点,文件类型指针);B. fseek(文件类型指针,位移量,起始点); VC. fseek(文件类型指针,起始点,位移量);D. fseek(起始

4、点,位移量,文件类型指针);解析:解析 指针函数 fseek() 的调用形式为: fseek(fp, offset, position); fseek 函数参数说明: “fp ” 是指向该文件的文件型指针;“ offset ”为位移量,是指从起始点 position 到要确定的新位置的字节数。 以起点为基准, 向前移动字节数。 “position ”为起始点, 指出以文件的什么位置为基准进行移动, posmon 的值用整型常数表示,“ 0”表示文件的开头,“ 1”表示文件的当前位置,“ 2”表示文件的末尾。6. 为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与

5、()配对。(分数: 2.00 )A. 缩排位置相同 ifB. 其前面最近的 if VC. 其后面最近的 ifD. 同一行上的 if解析:解析C语言规定,在ifelse语句中,else总是与它前面的最近的if配对7. 下列函数的类型是 ( ) 。fun(double x)float y;y=3*x=4;return y;(分数: 2.00 )A. intB. 不确定C. voidVD. float解析:解析本题考查函数值的类型。在函数调用时,尽管y的类型是float ,x的类型是double,但是因为函数定义时没有指定类型说明,系统默认函数值的类型为int型,所以计算后y的类型是int型。8.

6、若有以下程序段,w和k都是整型变量: w=k;LB: if(w=0)go to LE;W-;printf(*) goto LB;LE:III 则不能与上面程序段等价的循环语句是 ( ) 。(分数: 2.00 )A. for(w=k; w!=0; w-)printf(*);B. for(w=k; w; -w)printf(*);C. w=k;while(W-! =O)printf(*);VD. w=k;w+; dow-; printf(*); )while(w!=O);解析:解析当循环结束时,w的值应为-1,而其他选项中w的值为0,故选择C选项。9. 设有下列程序段:char str=Hello

7、World;char *ptr;ptr=str;执行上面的程序段后, *(ptr+10) 的值为( ) 。(分数: 2.00 )A. /0VB. 0C. 不确定的值D. 0 的地址解析:解析本题主要考查字符数组和指针,在C语言中字符型数组在存放字符串时会自动在末尾加上/0 ,所以数组 str 有 11 个元素; ptr 指向数组 str 的首地址, ptr+10 是指向 str10, *(ptr+10) 是引 用 str10 的值。10. 有以下程序:fun(int x)int p;if(x=0 II x=1)return(3);p=x-fun(x-2);return p;main()prin

8、tf(%d/n, fun(7);程序执行后的输出结果是 ( ) 。(分数: 2.00 )A. 7B. 3C. 2VD. 0解析:解析在函数fun(int x) 中,有个if语句判断如果参数x等于0或1时,返回值;否则进入下面 的 p=x-fun(x-z) 递归函数。当在主函数中调用 fun(7) 时,其过程为:“fun(7)=7 -fun(5)=7-(5-fun(3)=7-(5=)3-fun(1)=7-(5-(3-3)=7-5=2”,所以最后的输出结果为211. 有下列程序:main()int y=10;doy-; )while(-y);printf(%d/n, -y);当执行程序时,输出的结

9、果是 ( ) 。(分数: 1.00 )A. -1B. 1C. 4D.0 V解析: 解析 本题考查 do-while 循环。当 -y 是 0( 即 y 是 0) 时结束循环,输出 -y 先将 y 的值减 1 再输 出y的值。12. 有以下程序:void swap(char *x, char *y)char t;t= *x; *x *y; *y=t;main()char *s1=abc, *s2=123;swap(s1, s2);printf(%s, %s/n, s1, s2);程序执行后的输出结果是 ( ) 。(分数: 1.00 )A. 123, abcB. abc , 123C. 1bc, a

10、23 VD. 321 , cba解析:解析本题考查swap函数,它的作用是把x、y所指的内容互换,其他的不变,因此当执行完调用 函数后,仅仅 a 与1 互换,其他的没有变。13. 以下叙述中正确的是 ( ) 。(分数: 1.00 )A. 预处理命令行必须位于 C源程序的起始位置B. 在 C 语言中,预处理命令行都以“ #”开头VC. 每个C程序必须在开头包含预处理命令行:#include D. C语言的预处理不能实现宏定义和条件编译的功能解析: 解析 本题是对基本知识点的理解,预处理命令行的位置没有规定,只是习惯写在起始位置而已, 当需要时才用 #include 头文件,预处理的作用就是实现宏

11、定义和条件编译。14. 若有下列定义(设int类型变量占2个字节):int i=8, j=9;则下列语句:printf(i=%d, j=%d/n, i, j);输出的结果是 ( ) 。(分数: 1.00 )A. i=8, j=9B. i=%d, i=%dVC. i=%8, j=%9D. 8,9解析: 解析 本题考查函数的输出格式。在 printf 函数,格式说明符中有两个“ %”说明;将第1 个%后面的字符原样输出,并不输出其对应的变量值。15. 下面程序的输出是 ( ) 。main()int t=1; fun(fun(t);fun(int h)static int a3=1,2,3;int

12、k;for(k=0; kv 3; k+)ak+=ak=h;for(k=0; kv 3; k+)printf(%d, ak);printf(/n);return(ah);(分数: 1.00 )A. 1 ,2,3,1 , 5, 9 ,B. 1 ,3,5,1,3,5,C. 1 ,3,5,0,4,8,D. 1 ,3,5,-1 , 3,7, V解析: 解析 本题考查双重函数调用及 for 循环使用, fun 函数中第一个 for 循环语句的作用是给数组 a 赋值。当第一次调用 fun 函数时,把实参 1 传给形参,输出 a 数组的元素为 1 ,3,5;第二次调用 fun 函 数时,由于数组 a 为静态局

13、部变量,故输出 a 数组的元素为 -1 , 3,7。16. 设在C语言中,float类型数据占4个字节,则double类型数据占()个字节。(分数: 1.00 )A. 1B. 2C. 8 VD. 4解析:解析在C语言中各种数据类型在内存中所占的字节数与机器的位数有关,16位机中(也就是在标准C中),若int类型上占2个字节,则float类型数据占4个字节,double类型数据占8个字节。17. 下述程序的运行结果是 ( )#include #include main()char*s1=abDuj;char*s2=ABdUG;int t;t=strcmp(s1, s2);printf(%d, t

14、);(分数: 1.00 )A. 正数 VB. 负数C.零D. 不确定的值解析: 解析 本题考查字符串比较函数和两个字符串比较的原则两个知识点。(1) 两字符串比较的原则是依次比较两个字符串同一位置的一对字符, 若它们的 ASCII 码值相同, 则继续比 较下一对字符, 若它们的 ASCII 码值不同,则 ASCII 码值较大的字符所在的字符串较大; 若所有字符相同, 则两个字符串相等; 若一个字符串全部 i 个字符与另一个字符串的前 i 个字符相同, 则字符串较长的较大。(2)strcmp(s1, s2) 的返回值, 当 str1 str2 , 返回值为正数。18. 下列程序的运行结果为 ( ) 。#define MAX(x, y) (x) (y

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号