【计算机类职业资格】二级C语言-123及答案解析.doc

上传人:赵齐羽 文档编号:1324875 上传时间:2019-10-17 格式:DOC 页数:18 大小:75KB
下载 相关 举报
【计算机类职业资格】二级C语言-123及答案解析.doc_第1页
第1页 / 共18页
【计算机类职业资格】二级C语言-123及答案解析.doc_第2页
第2页 / 共18页
【计算机类职业资格】二级C语言-123及答案解析.doc_第3页
第3页 / 共18页
【计算机类职业资格】二级C语言-123及答案解析.doc_第4页
第4页 / 共18页
【计算机类职业资格】二级C语言-123及答案解析.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、二级 C 语言-123 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.C 语言的基本单位是_。(分数:2.50)A.函数B.过程C.子程序D.子函数2.结构化程序设计主要强调的是_。(分数:2.50)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性3.在面向对象方法中,_描述的是具有相似属性与操作的一组对象。(分数:2.50)A.属性B.事件C.方法D.类4.有下列二叉树,对此二叉树前序遍历的结果为_。 (分数:2.50)A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFXZ5.常采

2、用的两种存储结构是_。(分数:2.50)A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构6.算法分析的目的是_。(分数:2.50)A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进7.用链表表示线性表的优点是_。(分数:2.50)A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同8.能正确表示“当 x 的取值在1,10和100,110范围内为真,否则为假”的表达式是_。(分数:2.50)A.(x=1)”的输出结果是_。(分

3、数:2.50)A.无输出B.结果是不确定C.-1D.111.当 c 的值不为 0 时,在下列选项中能正确将 c 的值赋给变量 a、b 的是_。(分数:2.50)A.c=b=a;B.(a=c)|(b=c);C.(a=c)D.a=c=b;12.以下程序的输出结果是_。 main() int a=3; printf(“%d/n“, (a+a-=a*a); (分数:2.50)A.-6B.12C.0D.-1213.以下能正确定义一维数组的选项是_。(分数:2.50)A.int a5=0, 1, 2. 3, 4, 5;B.char a=0, 1, 2. 3, 4, 5;C.char a=“A“, “B“,

4、 “C“;D.int a5=“0123“;14.设 int x=7,则x 的值是_。(分数:2.50)A.-8B.7C.-1D.115.在下列给出的表达式中,与 while(E)中的(E)不等价的表达式是_。(分数:2.50)A.(!E=0)B.(E0|E0)C.(E=0)D.(E!=0)16.对两个数组 a 和 b 进行下列初始化: char m=“1234567“; char n=“1“, “2“, “3“, “4“, “5“, “6“, “7“; 则下列叙述正确的是_。(分数:2.50)A.数组 m 与数组 n 完全相同B.数组 m 与数组 n 长度相同C.数组 m 比数组 n 长 1D

5、.数组 m 与数组 n 中都存放字符串17.假定所有变量均已正确说明,下列程序段运行后 x 的值是_。 a=b=c=0; x=12; if(!a)x-; else x=5; if(c)x=3; else x=4;(分数:2.50)A.11B.4C.12D.318.有以下程序: #includestdio.h main() int k=-3; if(k=0)printf(“*/n“) else printf(“ 程序的输出结果是_。(分数:2.50)A.输出#B.输出 *x=3; *y=4; main() int x=1, y=2; fun( printf(“%d%d“, x, y); (分数:

6、2.50)A.2 1 4 3B.1 2 1 2C.1 2 3 4D.2 1 1 220.有下列程序: main() char s=“abcde“; s+=2; printf(“%d/n“, s0); 执行后的结果是_。(分数:2.50)A.输出字符 a 的 ASCII 码B.输出字符 c 的 ASCII 码C.输出字符 cD.程序出错21.下列选项中非法的字符常量是_。(分数:2.50)A.“/t“B.“/039“C.“,“D.“/n“22.以下程序的输出结果是_。 main() char ch34=“123“, “456“, “78“, *p3; int i; for(i=0; i3; i+

7、)pi=chi; for(i=0; i3; i+)printf(“%s“, pi); (分数:2.50)A.123456780B.123 456 780C.12345678D.14723.以下程序的输出结果是_。 main() char w10=“ABCD“, “EFGH“, “IJKL“, “MNOP“, K; for(k=1; k3; k+)printf(“%s/n“, wk); (分数:2.50)A.ABCDFGHKLB.ABCDEFGIJC.EFGJKOD.EFGHIJKL24.有以下程序: #includestdio.h main() int a=2, b=-1, c=2; if(a

8、b) if(b0)c=0; else c+=1; printf(“%d/n“, c); 程序的输出结果是_。(分数:2.50)A.0B.1C.2D.325.若有以下定义和语句:“double r=99, *p= *p=r;”,则以下正确的叙述是_。(分数:2.50)A.两个*P 含义相同,都说明给指针变量 p 赋值B.在“double r=99, *p=”中,把 r 的地址赋给了 p 所指的存储单元C.语句“*p=r;”把变量 r 的值赋给指针变量 pD.语句“*p=r;”取变量 r 的值放回 r 中26.以下程序的输出结果是_。 main() int x=0.5;char z=“a“; pr

9、intf(“%d/n“, (x (分数:2.50)A.0B.1C.2D.327.若希望下列的程序运行后输出 25,程序空白处的正确选项是_。 main() int id=50, a=7, 4, 10, 5, 8; for_ j+=ai; printf(“%d“, j-40); (分数:2.50)A.i=1; i4; +iB.i=1; i3; +iC.i=4; i2; i-D.i=2; i4; +i28.若二维数组 a 有 m 列,则在 aij前的元素个数为_。(分数:2.50)A.i*m+j-1B.i*m+jC.j*m+iD.i*m+j+129.若有以下程序段: int a=0, b=0, c

10、=0; c=(a-=a-5), (a=b, b+3); printf(“%d, %d, %d/n“, a,b, c); 执行后的输出结果是_。(分数:2.50)A.3,0,-10B.0,0,5C.-10,3,-10D.3,0,330.定义结构体数组: struct stu int num; char name20; X5=1, “LI“, 2, “ZHAO“, 3, “WANG“, 4, “ZHANG“, 5, “LIU“; for(i=1; i5; i+) printf(“%d%c“, xi.num, xi.name2); 以上程序段的输出结果为_。(分数:2.50)A.2A3N4A5UB.

11、112A3H4IC.1A2N3A4UD.2H3A4H5I31.有以下程序: #includestdio.h main() int a=2, 4, 6, 8, *p=a, i; for(i=0; i4; i+)ai=*p+; printf(“%d/n“, a2); 程序的输出结果是_。(分数:2.50)A.6B.8C.4D.232.有以下程序: void fun(char*a, char*b) a=b; (*a)+; main() char c1=“A“, c2=“a“, *p1, *p2; p1= p2=*c2; fun(p1, p2); printf(“%c%c/n“, c1, c2); 程

12、序运行后的输出结果是_。(分数:2.50)A.AbB.aaC.AaD.Bb33.有以下程序: int fun(int n) if(n=1)return 1; else return(n+fun(n-1); main() int x; scanf(“%d“, x=fun(x); printf(“%d/n“, x); 执行程序时,给变量 x 输入 10,程序的输出结果是_。(分数:2.50)A.55B.54C.65D.4534.有以下程序段: int k, j, s; for(k=2; k6; k+, k+) s=1; for(j=k; j6; j+)s+=j; printf(“%d/n“, s)

13、; 以上程序段的输出结果是_。(分数:2.50)A.9B.1C.11D.1035.以下程序的输出结果是_。 main() char*s=“12134211“; int v4=0, 0, 0, 0, k, i; for(k=0; sk; k+) switch(sk) case “1“: i=0; case “2“: i=1; case “3“: i=2; case “4“: i=3; vi+; for(k=0; k4; k+)printf(“%d“, vk);(分数:2.50)A.4 2 1 0B.0 0 0 8C.4 6 7 8D.8 8 8 836.有以下程序: main() int x=1

14、02, y=012; printf(“%2d, %2d/n“, x, y); 执行后输 fn 结果是_。(分数:2.50)A.10,01B.02,12C.102,10D.02,1037.有以下程序: main() int x=0, y=5, z=3; while(z-0 printf(“%d, %d, %d/n“, x, y, z); 程序执行后的输 m 结果是_。(分数:2.50)A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-538.有以下程序片段: y=-1; if(x!=0) if(x0)y=1; else y=0; 其能正确表示的数学函数关系是_。(分数:2.50)A.

15、-1(x0)0(x=0)1(x0)B.1(x0)-1(x=0)0(x0)C.0(x0)-1(x=-)1(x0)D.-1(x0)1(x=0)0(x0)39.下面程序的功能是输出以下形式的金字塔图案: main() int i, j; * for(i=1; i=4; i+) * for(j=1; j=4-i; j+)printf(“); * for(j=1; j=_; j+)printf(“*“); * printf(“/n“); 在横线处应填入的是_。(分数:2.50)A.iB.2*i-1C.2*i+1D.i+240.函数 ftell(fp)的作用是_。(分数:2.50)A.得到 fp 所指向文

16、件的当前读写位置B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确二级 C 语言-123 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.C 语言的基本单位是_。(分数:2.50)A.函数 B.过程C.子程序D.子函数解析:解析 C 语言是函数式的语言。它的基本组成单位是函数,在 C 语言中任何程序都由一个或者多个函数组成。2.结构化程序设计主要强调的是_。(分数:2.50)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性 解析:解析 程序不光是编写完就结束了,为了测试和维护程序,往往还需其他人阅读

17、和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一、效率第二”。3.在面向对象方法中,_描述的是具有相似属性与操作的一组对象。(分数:2.50)A.属性B.事件C.方法D.类 解析:解析 类(class)描述的是具有相似属性与操作的一组对象,具体对象是类的实例。4.有下列二叉树,对此二叉树前序遍历的结果为_。 (分数:2.50)A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFXZ 解析:解析 所谓二叉树的前序遍历是指先访问根结点,再访问左子树,最后访问右子树,可知选项 D正确。本题中序为 DYBEAFCZX,后序为 YDEBFZXC

18、A。5.常采用的两种存储结构是_。(分数:2.50)A.顺序存储结构和链式存储结构 B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构解析:解析 线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。6.算法分析的目的是_。(分数:2.50)A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进 解析:解析 算法分析是指对一个算法的运行时间和占用空间做定量的分析,计算相应的数量级,并用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。7.用链表表示线性

19、表的优点是_。(分数:2.50)A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作 D.数据元素的物理顺序与逻辑顺序相同解析:解析 数据的存储结构有顺序存储结构和链式存储结构两种。不同存储结构的数据处理效率不同。链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无须移动元素,很方便,当查找元素时就需要逐个元素查找,因此查找的时间相对更长。8.能正确表示“当 x 的取值在1,10和100,110范围内为真,否则为假”的表达式是_。(分数:2.50)A.(x=1)”的输出结果是_。(分数:2.50)A.无输出B.结果是不确定C.-1D.1 解析:解析 因为在逻辑表达式中

20、,两边的赋值表达式都成立,即值为 1,故选择 D 选项。11.当 c 的值不为 0 时,在下列选项中能正确将 c 的值赋给变量 a、b 的是_。(分数:2.50)A.c=b=a;B.(a=c)|(b=c);C.(a=c) D.a=c=b;解析:解析 选项 A 是先将 a 的值赋给变量 b,再将变量 b 的值赋给变量 c,不合题意;B 选项中由于 c的值不为 0,在将 c 的值赋给变量 a 后,表达式 a=c 的值为 1,不再对表达式 b=c 计算;对于 C 选项,表达式 a=c 的值为 1,再求表达式 b=c 的值为 1,然后进行逻辑与运算;D 选项将 b 的值赋给 c 后再赋给 a,故选择

21、C 选项。12.以下程序的输出结果是_。 main() int a=3; printf(“%d/n“, (a+a-=a*a); (分数:2.50)A.-6B.12C.0D.-12 解析:解析 本题可以写成:a+a+(a-(a*a),因为*的优先级最高,其次是-=的,+的优先级最低,所以先求 a-=a*a=9,表达式变为 a+a+-=9,即 a=a-9=-6,再次变为 a+(-6)=-12,故选择 D 选项。13.以下能正确定义一维数组的选项是_。(分数:2.50)A.int a5=0, 1, 2. 3, 4, 5;B.char a=0, 1, 2. 3, 4, 5; C.char a=“A“,

22、 “B“, “C“;D.int a5=“0123“;解析:解析 数组下标从 0 开始,A 选项中所赋值的个数超过了数组的长度;C 选项中定义 a 为字符型变量,而不是数组,赋值错误;D 选项中,整型数组不能赋字符串。14.设 int x=7,则x 的值是_。(分数:2.50)A.-8 B.7C.-1D.1解析:解析 本题主要考查按位求反运算和 C 语言正负数的表示。“0”代表正数,“1”代表负数;x=7的二进制为 00111,第一个 0 代表正数,x 为 11000,第一个 1 代表负数,值为 8。15.在下列给出的表达式中,与 while(E)中的(E)不等价的表达式是_。(分数:2.50)

23、A.(!E=0)B.(E0|E0) C.(E=0)D.(E!=0)解析:解析 在 while(E)中,表达式 E 可以是 C 语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 B 中表达式 E0|E0 是一个逻辑表达式。16.对两个数组 a 和 b 进行下列初始化: char m=“1234567“; char n=“1“, “2“, “3“, “4“, “5“, “6“, “7“; 则下列叙述正确的是_。(分数:2.50)A.数组 m 与数组 n 完全相同B.数组 m 与数组 n 长度相同C.数组 m 比数组 n 长 1 D.数组 m 与数组 n 中都存放字符串解析:

24、解析 在 m 数组中赋值的是字符串,其长度为 7,末尾有结束符“/0“,故字节数为 8,而 n 数组中赋的是字符,其长度为 7,故 C 选项正确。17.假定所有变量均已正确说明,下列程序段运行后 x 的值是_。 a=b=c=0; x=12; if(!a)x-; else x=5; if(c)x=3; else x=4;(分数:2.50)A.11B.4 C.12D.3解析:解析 本题考查 ifelse 语句。if 条件为真则执行后面的表达式,如果 if 为假则执行 else 语句。18.有以下程序: #includestdio.h main() int k=-3; if(k=0)printf(“

25、*/n“) else printf(“ 程序的输出结果是_。(分数:2.50)A.输出#B.输出 if(k=0)printf(“*/n“)else printf(“中 printf(“*/n“)缺少分号,因此会报编译错误。19.下列程序的输 m 结果是_。 void fun(int*x, int y) printf(“%d%d“, *x, *y); *x=3; *y=4; main() int x=1, y=2; fun( printf(“%d%d“, x, y); (分数:2.50)A.2 1 4 3B.1 2 1 2C.1 2 3 4 D.2 1 1 2解析:解析 当执行 fun 函数时,

26、因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行 fun 函数时先输出 12,接着把*x 赋 3,*y 赋 4,此时带回主函数中,输出的值为 3 4。20.有下列程序: main() char s=“abcde“; s+=2; printf(“%d/n“, s0); 执行后的结果是_。(分数:2.50)A.输出字符 a 的 ASCII 码B.输出字符 c 的 ASCII 码C.输出字符 cD.程序出错 解析:解析 因为字符数组 s中的数组名 s 表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。21.下列选项中非法的字

27、符常量是_。(分数:2.50)A.“/t“B.“/039“ C.“,“D.“/n“解析:解析 水平制表符中,“/t“表示的是横向跳若干格;选项 B 中,“/039“错误,“/039“是八进制形式表的字符,最大数为 7,但其中出现“9“,“,“是字符逗号;选项 D 中,“/n“表示的是换行。22.以下程序的输出结果是_。 main() char ch34=“123“, “456“, “78“, *p3; int i; for(i=0; i3; i+)pi=chi; for(i=0; i3; i+)printf(“%s“, pi); (分数:2.50)A.123456780B.123 456 78

28、0 C.12345678D.147解析:解析 第一个 for 循环的作用是让 p 指向每行的首地址,第二个 for 循环的作用是把它指向的字符串输出,故选择 B 选项。23.以下程序的输出结果是_。 main() char w10=“ABCD“, “EFGH“, “IJKL“, “MNOP“, K; for(k=1; k3; k+)printf(“%s/n“, wk); (分数:2.50)A.ABCDFGHKLB.ABCDEFGIJC.EFGJKOD.EFGHIJKL 解析:解析 当 k=1 时,循环成立,输出 w1的数组即 EFGH,接着执行 k+后 k 为 2;当 k=2 时,循环成立,输

29、出 w2的数组即 IJKL,接着执行 k+后,k 为 3;当 k=3 时,循环不成立,退出。24.有以下程序: #includestdio.h main() int a=2, b=-1, c=2; if(ab) if(b0)c=0; else c+=1; printf(“%d/n“, c); 程序的输出结果是_。(分数:2.50)A.0B.1C.2 D.3解析:解析 因为 a=2,b=-1,f(ab)中 ab 为假,便不执行下面的 ifelse,直接运行printf(“%d/n“, c);输出结果是 2。因此正确选项为 C。25.若有以下定义和语句:“double r=99, *p= *p=r

30、;”,则以下正确的叙述是_。(分数:2.50)A.两个*P 含义相同,都说明给指针变量 p 赋值B.在“double r=99, *p=”中,把 r 的地址赋给了 p 所指的存储单元 C.语句“*p=r;”把变量 r 的值赋给指针变量 pD.语句“*p=r;”取变量 r 的值放回 r 中解析:解析 在定义*p= printf(“%d/n“, (x (分数:2.50)A.0B.1 C.2D.3解析:解析 (x for_ j+=ai; printf(“%d“, j-40); (分数:2.50)A.i=1; i4; +iB.i=1; i3; +iC.i=4; i2; i-D.i=2; i4; +i

31、解析:解析 要想使程序输出 25,则 j-40=25,j=65,而 j 初值是 50,所以填入 for 循环的语句,使引用的数组元素累加 65-50=15 即可。D 选项中,i 下标从 0 开始,i=2 指向第 3 个数 50+a2=50+10=60,继续循环 60+a3=60+5=65,此时 i=4 跳出,循环结束。28.若二维数组 a 有 m 列,则在 aij前的元素个数为_。(分数:2.50)A.i*m+j-1B.i*m+j C.j*m+iD.i*m+j+1解析:解析 二维数组的元素可以看成是按矩阵形式存放的,数组第一维的下标是 i,说明它前面还有i 行,有 i*m 个元素,数组第二维的

32、下标是 j,说明它前面还有 j 列,有 j 个元素,所以共有 i*m+j 个元素。29.若有以下程序段: int a=0, b=0, c=0; c=(a-=a-5), (a=b, b+3); printf(“%d, %d, %d/n“, a,b, c); 执行后的输出结果是_。(分数:2.50)A.3,0,-10B.0,0,5 C.-10,3,-10D.3,0,3解析:解析 首先分两块,逗号前面的是第一块,先执行,逗号后面的是第二块,后执行;两个块中,括号里的先执行,a-=a-5;/执行前,a=0,执行后,a-=-5,a=5;c=a;/c=5;a=b;/a=b=0;b+3;/执行,但是不修改任

33、何数字。所以,最后结果是:0,0,5。B 选项符合结果。30.定义结构体数组: struct stu int num; char name20; X5=1, “LI“, 2, “ZHAO“, 3, “WANG“, 4, “ZHANG“, 5, “LIU“; for(i=1; i5; i+) printf(“%d%c“, xi.num, xi.name2); 以上程序段的输出结果为_。(分数:2.50)A.2A3N4A5U B.112A3H4IC.1A2N3A4UD.2H3A4H5I解析:解析 本题主要考查结构体数组的使用。xi.num 为结构体 xi中的 num 成员,xi.num2是结构体

34、xi中 name 成员的第 3 个元素。程序执行循环过程时:第 1 次循环,i=1,输出 xi.num,x1.name2的值;第 2 次循环,i=2,输出 x2.num,x2.name2的值,即 3N;第 3 次循环,i=3,输出x3.num,x3.name2的值,即 4A;第 4 次循环,i=4,输出 x4.num,x4.name2的值,即 5U。31.有以下程序: #includestdio.h main() int a=2, 4, 6, 8, *p=a, i; for(i=0; i4; i+)ai=*p+; printf(“%d/n“, a2); 程序的输出结果是_。(分数:2.50)A

35、.6 B.8C.4D.2解析:解析 p=a,相当于重新把 a 中的内容赋给 a 本身,所以 a2=6。32.有以下程序: void fun(char*a, char*b) a=b; (*a)+; main() char c1=“A“, c2=“a“, *p1, *p2; p1= p2=*c2; fun(p1, p2); printf(“%c%c/n“, c1, c2); 程序运行后的输出结果是_。(分数:2.50)A.Ab B.aaC.AaD.Bb解析:解析 函数 fun 的作用是将指针 a 指向指针 b 的内容,然后将该内容加 1。执行语句“fun(p1, p2);”后,p1 和 p2 指向

36、的地址并未改变,只是将 p2 指向的存储单元的值增加 1。所以,答案是 A。33.有以下程序: int fun(int n) if(n=1)return 1; else return(n+fun(n-1); main() int x; scanf(“%d“, x=fun(x); printf(“%d/n“, x); 执行程序时,给变量 x 输入 10,程序的输出结果是_。(分数:2.50)A.55 B.54C.65D.45解析:解析 函数 int fun(int n)的功能是求 1+2+n 的值并返回。所以执行程序时,给变量 x 输入10 后,执行语句“x=fun(x);”,x 的值将变为 1

37、 到 10 中 10 个整数的累加和,即 55。34.有以下程序段: int k, j, s; for(k=2; k6; k+, k+) s=1; for(j=k; j6; j+)s+=j; printf(“%d/n“, s); 以上程序段的输出结果是_。(分数:2.50)A.9B.1C.11D.10 解析:解析 因为首先 k=2,然后你进行一次循环后,k 自增两次,变成 4,所以这时候 s 又成 1 了。然后当 k=4 的时候,s=1,j=4,然后执行内层循环,s=1+4,然后 j 自增等于 5,s=5+5,然后 j 再自增为6,跳出内层循环。k 自增两次后等于 6,不成立,跳出外层循环。然

38、后输出 s 的值,即为 10。因此正确选项为 D。35.以下程序的输出结果是_。 main() char*s=“12134211“; int v4=0, 0, 0, 0, k, i; for(k=0; sk; k+) switch(sk) case “1“: i=0; case “2“: i=1; case “3“: i=2; case “4“: i=3; vi+; for(k=0; k4; k+)printf(“%d“, vk);(分数:2.50)A.4 2 1 0B.0 0 0 8 C.4 6 7 8D.8 8 8 8解析:解析 本题考查 switch,case 语句,当 k=0 时,循环

39、体成立,执行 switch 后表达式的值为“1“,执行 case“1“,i 的值为 0,因为没有 break 语句,继续执行其后的语句,到最后一个语句时 i 的值为 3,此时 vi+,v3=1,接着执行 k+后,k 的值为 1,当 k=1 时,循环成立。执行 switch 后的表达式的值为“2“,执行 case“2“,i 的值为 1,因为没有 break 语句,继续执行其后的语句,到最后一个语句时,i的值为 3,此时 vi+,v3=2,接着执行 k+后,k 的值为 2,依次下去,case“4“也会执行,最后 i 的值一定为 3,到 v3=8 时循环结束,而 v0v2的值一直没有变化,故选择 B

40、 选项。36.有以下程序: main() int x=102, y=012; printf(“%2d, %2d/n“, x, y); 执行后输 fn 结果是_。(分数:2.50)A.10,01B.02,12C.102,10 D.02,10解析:解析 x 的值为十进制数 102,而 y 的值为八进制数 012,根据题意将 y 用十进制表示为10%md,m 为指定输出数据的宽度,若位数小于 m 则左端补以空格,若位数大于 m 则按实际输出,所以答案是 C。37.有以下程序: main() int x=0, y=5, z=3; while(z-0 printf(“%d, %d, %d/n“, x,

41、y, z); 程序执行后的输 m 结果是_。(分数:2.50)A.3,2,0B.3,2,-1 C.4,3,-1D.5,-2,-5解析:解析 while 语句执行如下: 当 z=3,x=0 时,表达式 z-0”,y 的值变为 4; 当 z=2,x=1 时,表达式 z-0”,y 的值变为 3; 当 z=1,x=2 时,表达式 z-0”,y 的值变为 2; 当 z=0,x=3 时,表达式 z-0 为假,表达式(z-0 if(x!=0) if(x0)y=1; else y=0; 其能正确表示的数学函数关系是_。(分数:2.50)A.-1(x0)0(x=0)1(x0)B.1(x0)-1(x=0)0(x0

42、)C.0(x0)-1(x=-)1(x0) D.-1(x0)1(x=0)0(x0)解析:解析 y 的初始值为-1,当 x 不等于 0 时,给 y 赋值为 1,也就是这时 x0 和 x0 都为 1,然后如果 x0 时 y 的值又赋值为 1,注意后面的 else 语句是跟 if(x0)y=1 相匹配,就是说除了 x0 y=1之外,其他的情况 y 都为 0。39.下面程序的功能是输出以下形式的金字塔图案: main() int i, j; * for(i=1; i=4; i+) * for(j=1; j=4-i; j+)printf(“); * for(j=1; j=_; j+)printf(“*“)

43、; * printf(“/n“); 在横线处应填入的是_。(分数:2.50)A.iB.2*i-1 C.2*i+1D.i+2解析:解析 通过观察可知图形共 4 行,主函数中通过一个 for 循环四次,输出 4 行。第一行输出 3 个空格和 1 个“*”,第 2 行输出 2 个空格和 3 个“*”,第 3 行输出 3 个空格和 5 个“*”,第四行输出 7个“*”,主函数中通过第二个循环控制每行的输出空格数,第三个 for 循环控制输出的“*”的个数,总结规律:每行输出的“*”的个数,总比前一行的多 2 个,且第一行的个数为 1,可以断定每行输出的“*”的个数组成了一个公差为 2 的等差数列,所以每行输出“*”的个数即该等差数列的通项,故该空格处应该填写 2*i-1。40.函数 ftell(fp)的作用是_。(分数:2.50)A.得到 fp 所指向文件的当前读写位置 B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确解析:解析 位置指针当前值函数 ftell()的基本调用格式为 ftell(fp)。 ftell 函数的功能:得到 fp 所指向文件的当前读写位置,即位置指针的当前值,如果函数的返回值为-1L,表示出错。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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