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

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

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

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

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

    1、二级 C 语言-283 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.以三级模式为框架形成的 3 种数据库中,真实存在于计算机外存的数据库是_。(分数:2.50)A.概念数据库B.用户数据库C.物理数据库D.逻辑数据库2.合法的八进制数是_。(分数:2.50)A.0B.028C.-077D.01.03.设在 C 语言中,float 类型数据占 4 个字节,则 double 类型数据占_个字节。(分数:2.50)A.1B.2C.8D.44.如果进栈序列为 e1、e2、e3、e4,则可能的出栈序列是_。(分数:2.50)A.e3、e1

    2、、e4、e2B.e2、e4、e3、e1C.e3、e4、e2D.任意顺序5.数据库管理系统 DBMS 中用来定义模式、内模式和外模式的语言为_。(分数:2.50)ACB.BasicC.DDLD.DML6.按照“先进后出”原则组织数据的结构是_。(分数:2.50)A.队列B栈C.双向链表D.二叉树7.一些重要的程序设计语言(如 C 语言和 Pascal 语言)允许过程的递归调用,而实现递归调用中的存储分配通常用_。(分数:2.50)A栈B堆C.数组D.链表8.下列叙述中正确的是_。(分数:2.50)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要测试C.软件维护只包括对程序代码的维护D

    3、.以上三种说法都不对9.C 语言中,下列不合法的字符串常量是_。(分数:2.50)A.“/121“B.“y=“C.“/n/n“D.“ABCD/x6d“10.表达式“5“-“1“的值是_。(分数:2.50)A.整数 4B.字符 4C.表达式不合法D.字符 611.下列函数的类型是_。 fun(double x) float y; y=3*x-4; return y; (分数:2.50)A.intB.不确定C.voidD.float12.下列程序的运行结果是_。 int y=5, x=14; y=(x=3*y, x+1), x-1); printf(“x=%d, y=%d“, x, y);(分数:

    4、2.50)A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=2713.为了避免在嵌套的条件语句 if else 中产生二义性,C 语言规定,else 子句总是与_配对。(分数:2.50)A.缩排位置相同 ifB.其前面最近的 ifC.其后面最近的 ifD.同一行上的 if14.若有下列定义(设 int 类型变量占 2 个字节): int i=8, j=9; 则下列语句: printf(“i=%d, j=%d/n“, i, j); 输出的结果是_。(分数:2.50)A.i=8, j-9B.i=%d, j=%dC.i=%8, j=%9D.8, 915.若有以下程序_。

    5、#includestdio.h main() int*k, *j, i=100; j= k= printf(“%d/n“, *k); 程序的输出结果是_。(分数:2.50)A.运行出错B.100C.j 的地址D.i 的地址16.设“int x=2, y=1;”,则表达式(!x y-)的值是_。(分数:2.50)A.0B.1C.2D.-117.设有以下语句: int a=1, b=2, c; c=a(b2); 执行后,c 的值为_。(分数:2.50)A.6B.7C.8D.918.下列程序执行后的输出结果是_。 void func(int*a, int b) b0=*a+b; main() int

    6、 a, b5; a=0; b0=3; func( printf(“%d/n“, b0); (分数:2.50)A.6B.7C.8D.919.有以下程序: #includestdio.h main() char c1=“A“, c2=“Y“; printf(“%d, %d/n“, c1, c2); 程序的输出结果是_。(分数:2.50)A.因输出格式不合法,无正确输出B.65,90C.A,YD.65,8920.下列说法正确的是_。(分数:2.50)A.在 C 语言中,可以使用动态内存分配技术定义元素个数可变的数组B.在 C 语言中,数组元素的个数可以不确定,允许随机变动C.在 C 语言中,数组元素

    7、的数据类型可以不一致D.在 C 语言中,定义一个数组后,就确定了它所容纳的元素的个数21.下列程序执行后的输出结果是_。 main() char x=0xFFFF; printf(“%d n“, x-); (分数:2.50)A.-32767B.FFFEC.-1D.-3276822.下面的函数调用语句中 func 函数的实参个数是_。 func(f2v1, v2), (v3, v4, v5), (v6, max(v7, v8)(分数:2.50)A.3B.4C.5D.823.语句“printf(“a/bre“hi“y/bou/n“);”的输出结果是_。(分数:2.50)A.a/bre“hi“y“/

    8、bouB.a/bre“hi/y/bouC.re“hi“youD.abre“hi“y/bou24.下面程序输出的是_。 main() int t=1; fun(fun(t); fun(int h) static int a3=1, 2, 3; int k; for(k=0; k3; k+)ak+=ak-h; for(k=0; k3; k+)printf(“%d“, ak); printf(“/n“); return(ah);(分数:2.50)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,25.以下叙述中正确的是_。(分数:2.5

    9、0)A.预处理命令行必须位于 C 源程序的起始位置B.在 C 语言中,预处理命令行都以“#”开头C.每个 C 程序必须在开头包含预处理命令行:#includestdio.hD.C 语言的预处理不能实现宏定义和条件编译的功能26.若有下列定义和语句: int u=011, v=0x11, w=11; printf(“%o, %x, %d/n“, u, v, w); 则输出结果是_。(分数:2.50)A.9,17,11B.9,11,11C.11,11,11D.11,17,1127.设有下列程序段: char str=“HelloWorld“; char*ptr; ptr=str; 执行上面的程序段

    10、后,*(ptr+10)的值为_。(分数:2.50)A.“/0“B.“0“C.不确定的值D.“0“的地址28.有以下程序: #includestdio.h main() char ch; ch=“A“+“5“-“3“; printf(“%d, %c/n“, ch, ch); 程序的输出结果是_。(分数:2.50)A.67,CB.B,CC.C,DD.不确定的值29.下列程序的运行结果是_。 #includestdio.h main() static char a=“Languagef“, b=“programe“; char*p1, *p2; int k; p1=a; p2=b; for(k=0;

    11、 k=8; k+) if(*(p1+k)=*(p2+k) printf(”%c”, *(p1+k); (分数:2.50)A.gaeB.angC.programD.有语法错30.下列程序的运行结果为_。 #define MAX(x, y) (x)(y)?(x):(y) main() int a=2, b=3, c=1, d=3, t; printf(“%d/n“, (MAX(a+b, c+d)*100); (分数:2.50)A.500B.5C.4D.40031.若有以下程序段,w 和 k 都是整型变量: w=k; LB:if(w=0)go to LE; w-; printf(“*“) goto

    12、LB; LE; (分数:2.50)A.for(w=k; w!=0; w-)printf(“*“);B.for(w=k; w; -w)printf(“*“);C.w=k;while(w-!=0)printf(“*“);D.w=k;w+; dow-; printf(“*“); while(w!=0);32.表达式“0x11”的值是_。(分数:2.50)A.0xFFEEB.0x71C.0x0071D.0xFFE133.下列程序的输出结果是_。 main() int p8=11, 12, 13, 14, 15, 16, 17, 18, i=0, j=0; while(i+7) if(pi%2)j+=p

    13、i; printf(“%d/n“, j); (分数:2.50)A.42B.45C.56D.6034.下列程序的输出结果是_。 #includestdio.h #includestring.h void fun(int b) static int i=0; do bi+=bi+1; while(+i2); main() int k, a5=1, 3, 5, 4, 9; fun(a); for(k=0; k5; k+)printf(“%d“, ak); (分数:2.50)A.13579B.48579C.48549D.4899935.有以下程序段: int n=10; while(n7) n-; p

    14、rintf(“%d/n“, n); 程序段的输出结果是_。(分数:2.50)A.1098B.987C.10987D.936.有以下程序: fun(int x) int p; if(x=0 x=1)return(3); p=x-fun(x-2); return p; main() print(“%d/n“, fun(7); 程序执行后的输出结果是_。(分数:2.50)A.7B.3C.2D.037.下述程序的运行结果是_。 #includestdio.h #includestring.h main() char*s1=“abDuj“; char*s2=“ABdUG“; int t; t=strcm

    15、p(s1, s2); printf(“%d“, t); (分数:2.50)A.正数B.负数C零D.不确定的值38.下列程序中 c 的二进制值是_。 char a=2, b=4, c; c=ab2;(分数:2.50)A.00000011B.00010100C.00011100D.0001100039.函数 fseek()的正确调用形式是_。(分数:2.50)A.fseek(位移量,起始点,文件类型指针);B.fseek(文件类型指针,位移量,起始点);C.fseek(文件类型指针,起始点,位移量);D.fseek(起始点,位移量,文件类型指针);40.以下叙述中正确的是_。(分数:2.50)A.

    16、C 语言程序总是从第一个定义的函数开始执行B.在 C 语言程序中,要调用的函数必须在 main()函数中定义C.C 语言程序总是从 main()函数开始执行D.C 语言程序中的 main()函数必须放在程序的开始部分二级 C 语言-283 (1)答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.以三级模式为框架形成的 3 种数据库中,真实存在于计算机外存的数据库是_。(分数:2.50)A.概念数据库B.用户数据库 C.物理数据库D.逻辑数据库解析:解析 以内模式为框架所组成的数据库叫物理数据库;以概念模式为框架所组成的数据库叫概念数据库;以外

    17、模式为框架所组成的数据库叫用户数据库,它是真实存在于计算机外存中的数据库。2.合法的八进制数是_。(分数:2.50)A.0 B.028C.-077D.01.0解析:解析 八进制数里没有 8,7 完了就要进位的,并且八进制里没有小数位的。因此选项 A 是正确的。3.设在 C 语言中,float 类型数据占 4 个字节,则 double 类型数据占_个字节。(分数:2.50)A.1B.2C.8 D.4解析:解析 C 语言中各种数据类型在内存中所占的字节数与机器的位数有关,16 位机中(也就是在标准C 中),若 int 类型数据占 2 个字节,则 float 类型数据占 4 个字节,double 类

    18、型数据占 8 个字节。4.如果进栈序列为 e1、e2、e3、e4,则可能的出栈序列是_。(分数:2.50)A.e3、e1、e4、e2B.e2、e4、e3、e1 C.e3、e4、e2D.任意顺序解析:解析 栈的特点是先进后出,可知 e1 肯定是最后出栈的,因此正确答案为选项 B。5.数据库管理系统 DBMS 中用来定义模式、内模式和外模式的语言为_。(分数:2.50)ACB.BasicC.DDL D.DML解析:解析 数据定义语言 Data Definition Language(DDL)是 SQL 语言的一部分,用来定义模式、内模式和外模式。6.按照“先进后出”原则组织数据的结构是_。(分数:

    19、2.50)A.队列B栈 C.双向链表D.二叉树解析:解析 栈是线性表的一种,其插入和删除运算都只在表的一端进行,进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素按先进后出的原则组织数据,它是最后被插入的元素,不是最后被删除的元素。7.一些重要的程序设计语言(如 C 语言和 Pascal 语言)允许过程的递归调用,而实现递归调用中的存储分配通常用_。(分数:2.50)A栈 B堆C.数组D.链表解析:解析 在允许过程的递归调用的程序设计语言中,由于 C 语言中栈的特性为先进后出,因此用栈来实现递归调用中的存储分配。8.下列叙述中正确的是_。(分数:2.50)A.软件测试应该由程序开发者来

    20、完成B.程序经调试后一般不需要测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对 解析:解析 程序调试是由程序开发者完成诊断和改正程序中的错误的过程;软件测试是由专门的测试人员完成,是发现错误而执行程序的过程;软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,是软件生存周期中非常重要的一个阶段。9.C 语言中,下列不合法的字符串常量是_。(分数:2.50)A.“/121“B.“y=“ C.“/n/n“D.“ABCD/x6d“解析:解析 B 项中字符串常量必须用双引号,否则不合法。10.表达式“5“-“1“的值是_。(分数:2.50)A.整数 4 B.字符

    21、4C.表达式不合法D.字符 6解析:解析 在 C 语言中,字符都是变为其对应的 ASCII 码值来参加算术运算的,但字符间的相对位置关系还是不变的,字符 5 和字符 1 的 ASCII 码值相差仍是 4。11.下列函数的类型是_。 fun(double x) float y; y=3*x-4; return y; (分数:2.50)A.int B.不确定C.voidD.float解析:解析 本题考查函数值的类型。在函数调用时,尽管 y 的类型是 float,x 的类型是 double,但是因为函数定义时没有指定类型说明,系统默认函数值的类型为 int 型,所以计算后 y 的类型是 int 型。

    22、12.下列程序的运行结果是_。 int y=5, x=14; y=(x=3*y, x+1), x-1); printf(“x=%d, y=%d“, x, y);(分数:2.50)A.x=27,y=27B.x=12,y=13C.x=15,y=14 D.x=y=27解析:解析 逗号表达式的解题思路是从左到右,依次求解,整个逗号表达式的值就是最后一个表达式的值。 表达式(x=3*y,x+1)中,依次是 x=3*y=3*5=15,表达式 x+1=16,但没有给 x 或 y 赋值,所以 x 还是等于15;第 3 个表达式 x-1=15-1=14,所以 y 的值为 14。13.为了避免在嵌套的条件语句 i

    23、f else 中产生二义性,C 语言规定,else 子句总是与_配对。(分数:2.50)A.缩排位置相同 ifB.其前面最近的 if C.其后面最近的 ifD.同一行上的 if解析:解析 C 语言规定,在 Ifelse 语句中,else 总是与它前面的最近的 if 配对。14.若有下列定义(设 int 类型变量占 2 个字节): int i=8, j=9; 则下列语句: printf(“i=%d, j=%d/n“, i, j); 输出的结果是_。(分数:2.50)A.i=8, j-9B.i=%d, j=%d C.i=%8, j=%9D.8, 9解析:解析 本题考查函数的输出格式。在 print

    24、f 函数中,格式说明符中有两个“%”,表示将第 1 个%后面的字符原样输出,并不输出其对应的变量值。15.若有以下程序_。 #includestdio.h main() int*k, *j, i=100; j= k= printf(“%d/n“, *k); 程序的输出结果是_。(分数:2.50)A.运行出错B.100 C.j 的地址D.i 的地址解析:解析 int*k, *j, i=100; j= /一维指针 j 指向 i 的地址,所以 j 中存放的是 i 的地址,*j 就是 i 的内容,即*j=100 k= /二维指针 k 指向 j 的地址,所以 k 中存放的是指向 i 的地址的地址,*j

    25、就是 i 的内容,*k 就是i 的内容,即*k=100,printf(“%d/n“,*k);/输出 100。16.设“int x=2, y=1;”,则表达式(!x y-)的值是_。(分数:2.50)A.0B.1 C.2D.-1解析:解析 因 x 为 2,所以!x 时表达式值为 0,因 y 为 1,y-表达式的值为 1 然后自减 1,y 为 0,所以!x y-时表达式的值为 1。17.设有以下语句: int a=1, b=2, c; c=a(b2); 执行后,c 的值为_。(分数:2.50)A.6B.7C.8D.9 解析:解析 本题考查两个知识点,按位异或左移把 b 左移 2 位化成二进制 c=

    26、a(b2)=a(0000102)=a001000=0000001001000=9,故选择 D。18.下列程序执行后的输出结果是_。 void func(int*a, int b) b0=*a+b; main() int a, b5; a=0; b0=3; func( printf(“%d/n“, b0); (分数:2.50)A.6 B.7C.8D.9解析:解析 本题考查函数的调用,从主函数传递到调用函数中,*a 的值为 0,因此当执行完调用函数后,b0的值为 6。19.有以下程序: #includestdio.h main() char c1=“A“, c2=“Y“; printf(“%d,

    27、%d/n“, c1, c2); 程序的输出结果是_。(分数:2.50)A.因输出格式不合法,无正确输出B.65,90C.A,YD.65,89 解析:解析 直接输出 A 和 Y 的 ASCII 值,他们的 ASCII 值分别为 65 和 89,因此正确答案为 D 项。20.下列说法正确的是_。(分数:2.50)A.在 C 语言中,可以使用动态内存分配技术定义元素个数可变的数组B.在 C 语言中,数组元素的个数可以不确定,允许随机变动C.在 C 语言中,数组元素的数据类型可以不一致D.在 C 语言中,定义一个数组后,就确定了它所容纳的元素的个数 解析:解析 在 C 语言中,数组元素的个数是确定的,

    28、不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。21.下列程序执行后的输出结果是_。 main() char x=0xFFFF; printf(“%d n“, x-); (分数:2.50)A.-32767B.FFFEC.-1 D.-32768解析:解析 因为 x=0x FFFF=11111111,因此当以整型形式输出时对应的数为-1。22.下面的函数调用语句中 func 函数的实参个数是_。 func(f2v1, v2), (v3, v4, v5), (v6, max(v7, v8)(分数:2.50)A.3 B.4C.5D.8解析:解析 实

    29、参是在调用时传递该函数的参数,故选 A。23.语句“printf(“a/bre“hi“y/bou/n“);”的输出结果是_。(分数:2.50)A.a/bre“hi“y“/bouB.a/bre“hi/y/bouC.re“hi“you D.abre“hi“y/bou解析:解析 先输出 a、b 表示退一格,当执行到:/b 后,光标往后退,接着输出 re“hi“y/(反斜杠后又加一个反斜杠的意思是要输出一个反斜杠),此时又执行:/b 后,/就被 ou 覆盖。24.下面程序输出的是_。 main() int t=1; fun(fun(t); fun(int h) static int a3=1, 2,

    30、3; int k; for(k=0; k3; k+)ak+=ak-h; for(k=0; k3; k+)printf(“%d“, ak); printf(“/n“); return(ah);(分数:2.50)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, 解析:解析 本题考查双重函数调用及 for 循环使用,fun 函数中第一个 for 循环语句的作用是给数组a 赋值。当第一次调用 fun 函数时,把实参 1 传给形参,输出 a 数组的元素为 1,3,5;第二次调用 fun函数时,由于数组 a 为静态局部变量,故输出 a 数组

    31、的元素为-1,3,7。25.以下叙述中正确的是_。(分数:2.50)A.预处理命令行必须位于 C 源程序的起始位置B.在 C 语言中,预处理命令行都以“#”开头 C.每个 C 程序必须在开头包含预处理命令行:#includestdio.hD.C 语言的预处理不能实现宏定义和条件编译的功能解析:解析 本题是对基本知识点的理解,预处理命令行的位置没有规定,只是习惯写在起始位置而已,当需要时才用#includestdio.h头文件,预处理的作用就是实现宏定义和条件编译。26.若有下列定义和语句: int u=011, v=0x11, w=11; printf(“%o, %x, %d/n“, u, v

    32、, w); 则输出结果是_。(分数:2.50)A.9,17,11B.9,11,11C.11,11,11 D.11,17,11解析:解析 “%o”表示八进制无符号型输出整型数据(即不带前导 0);“%x”表示以十六进制无符号型输出整型数据(即不带前导 0x 或 0X);“%d”表示输出带符号的十进制整型数。27.设有下列程序段: char str=“HelloWorld“; char*ptr; ptr=str; 执行上面的程序段后,*(ptr+10)的值为_。(分数:2.50)A.“/0“ B.“0“C.不确定的值D.“0“的地址解析:解析 本题主要考查字符数组和指针,在 C 语言中,字符型数组

    33、在存放字符串时会自动在末尾加上“/0“,所以数组 str 有 11 个元素;ptr 指向数组 str 的首地址,ptr+10 是指向 str10,*(ptr+10)是引用 str10的值。28.有以下程序: #includestdio.h main() char ch; ch=“A“+“5“-“3“; printf(“%d, %c/n“, ch, ch); 程序的输出结果是_。(分数:2.50)A.67,C B.B,CC.C,DD.不确定的值解析:解析 char ch;ch=“A“+“5“-“3“;/计算字符“A“+“5“-“3“即“A“+2,因为“5“与“3“ASCL 码就差2,得“C“ p

    34、rintf(“%d,%c/n“,ch,ch);/%d 是按整型输出,输出的是 ch 的 ASC 码,查表可得 67 /%c 是按字符型输出,输出为 C 所以输出就为 67,C。因此 A 为正确选项。29.下列程序的运行结果是_。 #includestdio.h main() static char a=“Languagef“, b=“programe“; char*p1, *p2; int k; p1=a; p2=b; for(k=0; k=8; k+) if(*(p1+k)=*(p2+k) printf(”%c”, *(p1+k); (分数:2.50)A.gae B.angC.program

    35、D.有语法错解析:解析 本题考查指针用法,if 语句的功能是判断两个数组中的字符是否相同,如果相同则输出。30.下列程序的运行结果为_。 #define MAX(x, y) (x)(y)?(x):(y) main() int a=2, b=3, c=1, d=3, t; printf(“%d/n“, (MAX(a+b, c+d)*100); (分数:2.50)A.500 B.5C.4D.400解析:解析 本题考查带参数宏的定义,运算符:(x)(y)?(x):(y)当表达式为真时输出 x,否则输出y,调用(MAX(a+b,c+d)*100 时,(a+b=5)(c+d=4),输出 a+b=5,所以

    36、 x=5*100。31.若有以下程序段,w 和 k 都是整型变量: w=k; LB:if(w=0)go to LE; w-; printf(“*“) goto LB; LE; (分数:2.50)A.for(w=k; w!=0; w-)printf(“*“);B.for(w=k; w; -w)printf(“*“);C.w=k;while(w-!=0)printf(“*“); D.w=k;w+; dow-; printf(“*“); while(w!=0);解析:解析 当循环结束时,w 的值应为-1,而其他选项中 w 的值为 0,故选择 C 选项。32.表达式“0x11”的值是_。(分数:2.5

    37、0)A.0xFFEE B.0x71C.0x0071D.0xFFE1解析:解析 本题主要考查按位求反运算:十六进制整型常量的形式是以数字 0x 开头的十六进制字符串;位求反运算的规则是将二进制表示的运算对象按位取反,即将 1 变 0,将 0 变 1。33.下列程序的输出结果是_。 main() int p8=11, 12, 13, 14, 15, 16, 17, 18, i=0, j=0; while(i+7) if(pi%2)j+=pi; printf(“%d/n“, j); (分数:2.50)A.42B.45 C.56D.60解析:解析 C 语言中,数组的下标默认为 0,因此数组 p 的下标

    38、从 0 开始,所以 p8的范围为 07。第 1 次循环 i=0,执行循环,得出 i=1,因此 pi为 p1=12,12%2=0,不执行后面的语句;接着进行第2 次循环,此时 i=1,小于 7 执行循环,并且 i 自加,得 i=2,因此 pi为 p2=13,13%2=1,执行后面的语句;依此类推最后退出循环。最后 j 的值为:j=13+15+17=45。34.下列程序的输出结果是_。 #includestdio.h #includestring.h void fun(int b) static int i=0; do bi+=bi+1; while(+i2); main() int k, a5=

    39、1, 3, 5, 4, 9; fun(a); for(k=0; k5; k+)printf(“%d“, ak); (分数:2.50)A.13579B.48579C.48549 D.48999解析:解析 本题考查 do-while 循环,在 fun 函数中,首先定义了静态变量 i=0,do-while 循环要实现的功能是以 b0=b0+b1,b1=b1+b2,其他元素不变的规则重新给 b 数组赋值。在主函数中,通过调用 fun 函数,按上面的规则对数组 a 重新赋值,最后输出数组 a。35.有以下程序段: int n=10; while(n7) n-; printf(“%d/n“, n); 程序

    40、段的输出结果是_。(分数:2.50)A.1098B.987 C.10987D.9解析:解析 第一次 n=107 n-后 n=9,所以输出 9; 第二次 n=97 n-后 n=8,所以输出 8; 第三次 n=87 n-后 n=7,所以输出 7; 第四次 n=7=7 结束。36.有以下程序: fun(int x) int p; if(x=0 x=1)return(3); p=x-fun(x-2); return p; main() print(“%d/n“, fun(7); 程序执行后的输出结果是_。(分数:2.50)A.7B.3C.2 D.0解析:解析 在函数 fun(int x)中,有个 if

    41、 语句判断,如果参数 x 等于 0 或 1 时,返回值,否则进入下面的 p=x-fun(x-2)递归函数。当在主函数中调用 fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5-fun(3)=7-(5-(3-fun(1)=7-(5-(3-3)=7-5=2”,所以最后的输出结果为 2。37.下述程序的运行结果是_。 #includestdio.h #includestring.h main() char*s1=“abDuj“; char*s2=“ABdUG“; int t; t=strcmp(s1, s2); printf(“%d“, t); (分数:2.50)A.正数 B.负数

    42、C零D.不确定的值解析:解析 本题考查字符串比较函数和两个字符串比较的原则这两个知识点。 (1)两字符串比较的原则是依次比较两个字符串同一位置的一对字符,若它们的 ASCII 码值相同,则继续比较下一对字符,若它们的 ASCII 码值不同,则 ASCII 码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部 i 个字符与另一个字符串的前 i 个字符相同,则字符串较长的较大。 (2)strcmp(s1,s2)的返回值,当 str1str2 时,返回值为负数;当 str1=str2 时,返回 0;当str1str2,返回值为正数。38.下列程序中 c 的二进制值是_。

    43、 char a=2, b=4, c; c=ab2;(分数:2.50)A.00000011 B.00010100C.00011100D.00011000解析:解析 本题主要考查右移运算和按位异或。把 b 化为二进制数为 00000100,右移两位后为00000001,a 的二进制为 00000010,两者异或为 00000011。39.函数 fseek()的正确调用形式是_。(分数:2.50)A.fseek(位移量,起始点,文件类型指针);B.fseek(文件类型指针,位移量,起始点); C.fseek(文件类型指针,起始点,位移量);D.fseek(起始点,位移量,文件类型指针);解析:解析

    44、指针函数 fseek()的调用形式为:fseek(fp,offset,position);fseek 函数参数说明:“fp”是指向该文件的文件型指针;“offset”为位移量,是指从起始点 position 到要确定的新位置的字节数。以起点为基准,向前移动字节数。“position”为起始点,指出以文件的什么位置为基准进行移动,position 的值用整型常数表示,“0”表示文件的开头,“1”表示文件的当前位置,“2”表示文件的末尾。40.以下叙述中正确的是_。(分数:2.50)A.C 语言程序总是从第一个定义的函数开始执行B.在 C 语言程序中,要调用的函数必须在 main()函数中定义C.C 语言程序总是从 main()函数开始执行 D.C 语言程序中的 main()函数必须放在程序的开始部分解析:解析 A 错,C 程序总是从 main()函数开始执行。B 错,调用的函数不是必须放在程序的开始部分。D 错,调用的函数可以放在 main()函数之后,故正确答案为 C。


    注意事项

    本文(【计算机类职业资格】二级C语言-283 (1)及答案解析.doc)为本站会员(amazingpat195)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




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

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

    收起
    展开