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

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

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

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

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

    1、二级 C 语言笔试-198 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.有以下程序:main()int i=0, s=0;doif(i % 2)i+; continue;i+;s+=i;while(i7);printf(“% d/n“, s);执行后的输出结果是_。(分数:2.00)A.16B.12C.28D.212.有以下程序:main()int p7=11, 13, 14, 15, 16, 17, 18), i=0, k=0;while(i7 i+;printf(“% d/n“, k)执行后的输出结果是_。(分数:2.00)A.58

    2、B.56C.45D.243.有以下程序:main()unsigped int a;int b=-1;a=b;printf(“% u“,(分数:2.00)A.;B.k=fun(10, 12.5);C.fun(x, n);D.void fun(n, x);5.在 C 语言中,形参的默认存储类型是_。(分数:2.00)A.autoB.registerC.staticD.extern6.设有如下关系表:(分数:2.00)A.B.C.D.7.有以下程序:main()char a=a, b;printf(“% c, “,+(分数:2.00)A.;printf(8.用 C 语言编写的代码_。(分数:2.00

    3、)A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行9.有以下程序:main()int i=1, j=2, k=3;if(i+=1程序运行后的输出结果是_。(分数:2.00)A.1 2 3B.2 3 4C.2 2 3D.2 3 310.若变量已正确说明为 float 类型,要通过语句 scanf(“%f %f %f“, 并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是_(分数:1.00)A.double myadd(double a,B.;B) double myadd(double, double);C.dD.double myadd(d

    4、ouble x, double y);12.以下能正确定义一维数组的选项是_。(分数:1.00)A.int a5=0, 1, 2, 3, 4, 5);B.char a=0, 1, 2, 3, 4, 5);C.char a=A, B, C;D.int a5=“0123“;13.下列程序执行后的输出结果是_。# define MA(x) x*(x-1)main()int a=1, b=2; printf(“% d/n“, MA(1+a+b);(分数:1.00)A.6B.8C.10D.1214.有以下程序:# includestdio. h# difine F(X, Y) (X)*(Y)main()

    5、int a=3, b=4;print(“% d/n“, F(a+, b+);程序运行后的输出结果是_。(分数:1.00)A.12B.15C.16D.2015.有如下程序:# define N 2# define M N+1# define NUM 2*M+1# main()int i;for(i=1; i=NUM; i+)printf(“% d/n“, i);该程序中的 for 循环执行的次数是_。(分数:1.00)A.5B.6C.7D.816.设变量已正确定义,则以下能正确计算 n!的程序段是_。(分数:1.00)A.f=0;for(i=1; i=n; i+)f*=i;B.f=1;for(i

    6、=1; in; i+)f*=i;C.f=1;for(i=n; i1; i+)f*=i;D.f=1;for(i=n; i=2; i-)f*=i;17.以下不能正确计算代数式 sin2( (分数:1.00)A.B.C.D.18.有以下程序:main()int k=5, n=0;while(k0);switch(k)default; break;case 1:n+=k;case 2;case 3:n+=k;k-;printf(“% d/n“, n);程序运行后的输出结果是_。(分数:1.00)A.0B.4C.6D.719.以下程序的输出结果是_。int f()static int i=0;int s

    7、=1;s+=i; i+;return s;main()int i, a=0;for(i=0; i5; i+)a+=f();printf(“% d/n“,(分数:1.00)A.;A) 20B) 24C) 25D)20.以下叙述中正确的是_。(分数:1.00)A.预处理命令行必须位于源文件的开头B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示D.宏替换不占用程序的运行时间21.有以下程序:int a=2;int f(int n)static int a=3;int t=0;if(n % 2)(static int a=4; t+=a+;elsestatic int a=5; t+

    8、=a+;return t+a+;matin()int s=a, i;for(i=0; i3; i+)s+=f(i);printf(“% d/n“, s);程序运行后的输出结果是_。(分数:2.00)A.26B.28C.29D.2422.以下程序段中,能够通过调用函数 fun,使 main 函数中的指针变量 p 指向一个合法的整型单元的是_。(分数:2.00)A.main()int *p;fun(p);int fun(int *p)int s; p=B.main()int *p;fun(int fun(int *p)int s; *p=C.# includestdlib. hmain()int

    9、*p;fun(int fun(int *p)*p=(int *)malloc(2);D.# includestdlib. hmain()int *p;fun(p);int fun(int *p)p=(int*)malloc(sizeof(int);23.在函数调用过程中,如果函数 funA 调用了函数 funB,函数 funB 又调用了函数 funA,则_。(分数:2.00)A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C 语言中不允许这样的递归调用24.以下选项中可作为 C 语言合法常量的是_。(分数:2.00)A.-80.B.-080C.-8e1.0D.-8

    10、0.0e25.有以下程序:main()int x=3, y=2, z=1;printf(“% d/n“, x/y程序运行后的输出结果是_。(分数:2.00)A.3B.2C.-1D.026.以下选项中非法的表达式是_。(分数:2.00)A.0=x100B.i=j=0C.(char)(65+3)D.x+1=x+127.有以下程序段:main()int a=5, *b, *c;c= b=程序在执行了 c= b= 语句后,表达式*c 的值是_。(分数:2.00)A.变量 a 的地址B.变量 b 中的值C.变量 a 中的值D.变量 b 的地址28.在一个 C 程序中_。(分数:2.00)A.用户标识符中

    11、可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头29.若有以下程序段:int m=0xabc, n=0xabc;m-=n;printf(“% X/n“, m);执行后的输出结果是_。(分数:2.00)A.0X0B.0x0C.0D.0XABC30.以下只有在使用时才为该类型变量分配内存的存储类说明是_。(分数:2.00)A.auto 和 staticB.auto 和 registerC.register 和 staticD.extern

    12、和 register31.有以下程序:# define N 20fun(int a, int n, int m)int i, j;for(i=m; i=n; i-)ai+1=ai;main()int i, aN=1, 2, 3, 4, 5, 6, 7, 8, 9, 10;fun(a, 2, 9);for(i=0; i5; i+)printf(“% d“, ai);程序运行后的输出结果是_。(分数:2.00)_32.结构化程序设计的主要特点是_。(分数:2.00)A.模块化B.每个控制结构具有封装性C.每个控制结构具有独立性D.每个控制结构只有一个入口和一个出口33.执行下列程序时输入:123空

    13、格456空格789回车,输出结果是_。mein()char s100; int c, i;scanf(“% c“, scanf(“% d“, scanf(“% s“, s);printf(“% c, % d, % s/n“, c, i, s);(分数:2.00)A.123, 456, 789B.1, 456, 789C.1, 23, 456, 789D.1, 23, 45634.已有定义:char a=“xyz“b=x, y, z);,以下叙述中正确的是_。(分数:2.00)A.数组 a 和 b 的长度相同B.a 数组长度小于 b 数组长度C.a 数组长度大于 b 数组长度D.上述说法都不对3

    14、5.以下选项中合法的用户标识符是_。(分数:2.00)A.longB._2TestC.3DmaxD.dat36.有以下程序:main()char p=a, b, c, q=“abc“;printf(“% d % d/n“, sizeof(p), sizeof(q);程序运行后的输出结果是_。(分数:2.00)A.4 4B.3 3C.3 4D.4 337.有以下程序:int f1(int x, int y) return xy? x:y; int f2(int x, int y) return xy? y:x; main()int a=4, b=3, c=5, d=2, e, f, g;e=f2

    15、(f1(a, b), f1(c, d); f=f1(f2(a, b) , f2(c, d);g=a+b+c+d-e-f;printf(“% d, %d, %d/n“, e, f, g);程序运行后的输出结果是_。(分数:2.00)A.4, 3, 7B.3, 4, 7C.5, 2, 7D.2, 5, 738.有以下程序:matin()char * s=“one“, “two“, “three“, *p;p=s1;printf(“% c, % s/n“, *(p+1),so);执行后的输出结果是_。(分数:2.00)A.n, twoB.t, oneC.w, oneD.o, two39.下列关于栈的

    16、描述中错误的是_。(分数:2.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入和删除操作中,不需要改变栈底指针40.以下叙述中正确的是_。(分数:2.00)A.局部变量说明为 static 存储类,其生存期将得到延长B.全局变量说明为 static 存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同二、填空题(总题数:15,分数:30.00)41.测试的目的是暴露错误,评价程序的可靠性;而 【1】 的目的是发现错误的位置并改正错误。(分数:2.00)填空项 1:_42.以下程序的功能是输出如

    17、下形式的方阵:13 14 15 169 10 11 125 6 7 81 2 3 4请填空。main()int i, j, x;for(j=4; j0; j-)for(i=1; i=4; i+)x=(j-1)*4+ 【2】 ;printf(“% 4d“, x);printf(“/n“);(分数:2.00)填空项 1:_43.有以下程序:main()char str=“xyz“, *ps=str;while(* ps)ps+;for(ps-; ps-str=0;ps-)puts(ps);执行后的输出结果是 【3】 。(分数:2.00)填空项 1:_44.执行以下程序后,输出#号的个数是 【4】

    18、。# includestdio. hmain()int i, j;for(i=1; i5; i+)for(j=2; j=i; j+)putchar(#);(分数:2.00)填空项 1:_45.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。【5】 (double, double);main()double x, y;scanf(“% lf % lf“, printf(“% 1f/n“, max(x, y);double max(double a, double b)return(ab? a:b); (分数:2.00)填空项 1:_46.有以下程序:int sub(int n) re

    19、turn(n/10+n%10); main()int x, y;scanf(“% d“, y=sub(sub(sub(x);printf(“% d/n“, y);若运行时输入:1234回车,程序的输出结果是 【6】 。(分数:2.00)填空项 1:_47.以下程序运行后的输出结果是 【7】 。void fun(int x, int y)x=x+y;y=x-y;x=x-y;printf(“% d, % d, “, x, y);main()int x=2, y=3;fun(x, y);printf(“% d, % d/n“, x, y);(分数:2.00)填空项 1:_48.已知字母 A 的 AS

    20、CII 码为 65,以下程序运行后的输出结果是 【8】 。main()char a, b;a=A+5-3; b=a+6-2;printf(“% d % c/n“, a, b);(分数:2.00)填空项 1:_49.以下程序运行后的输出结果是 【9】 。main()int a, b, c;a=25;b=025;c=0x25;printf(“% d % d % d/n“, a, b, c);(分数:2.00)填空项 1:_50.以下程序的功能是调用函数 fun 计算:m=1-2+3-4+9-10,并输出结果。请填空。int fun(int n)int m=0, f=1, i;for(i=1; i=

    21、n; i+)m+=i*f;f=_;return m;main()printf(“% d/n“, 【10】 );(分数:2.00)填空项 1:_51.以下程序中,for 循环体执行的次数是 【11】 。# define N 2# define M N+1# define K M+1*M/2main()int i;for(i=1; iK; i+).(分数:2.00)填空项 1:_52.有以下程序:# define f(x)x*xmain()int i;i=f(4+4)/f(2+2);printf(“% d/n“, i);执行后的输出结果是 【12】 。(分数:2.00)填空项 1:_53.以下程序

    22、中给指针 p 分配 3 个 double 型动态内存单元,请填空。# includestdllb. hmain()double * p;p=(double*)malloc( 【13】 );p0=1.5; p1=2.5; p2=3.5printf(“% f % f % f/n“,p0,p1, p2);(分数:2.00)填空项 1:_54.以下程序运行后的输出结果是 【14】 。main()char a=“Language“, b=“Programe“;char * p1, * p2;int k;p1=a; p2=b;for(k=0; k=7; k+)if(*(p1+k)=*(p2+k)print

    23、f(“%c“, *(p1+k);(分数:2.00)填空项 1:_55.有一种攻击是针对网络低层协议而不是针对某项特定的应用服务,这种攻击称为 【15】 。下面 rotate 函数的功能:将 n 行 n 列的矩阵 A 转置为 A,请填空。# define N 4void rotate(int aN)int i, j, t;fori=0; iN; j+forj=0; 【16】 ; j+t=aij;aij=aji;aji=t;(分数:2.00)填空项 1:_二级 C 语言笔试-198 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.有以下程序:ma

    24、in()int i=0, s=0;doif(i % 2)i+; continue;i+;s+=i;while(i7);printf(“% d/n“, s);执行后的输出结果是_。(分数:2.00)A.16 B.12C.28D.21解析:解析 continue 语句的作用是结束本次循环,程序中 while 循环语句的功能是计算 17 之间奇数之和,即 s=1+3+5+7=16。2.有以下程序:main()int p7=11, 13, 14, 15, 16, 17, 18), i=0, k=0;while(i7 i+;printf(“% d/n“, k)执行后的输出结果是_。(分数:2.00)A.

    25、58B.56C.45D.24 解析:解析 程序中 while 语句的循环条件为 i7int b=-1;a=b;printf(“% u“,(分数:2.00)A.;B.k=fun(10, 12.5);C.fun(x, n); D.void fun(n, x);解析:解析 若函数 fun 没有返回值,选项 B 错误;函数调用语句中没有函数返回值,选项 D 错误;函数凋用语句中只写实参名称,选项 A 错误。5.在 C 语言中,形参的默认存储类型是_。(分数:2.00)A.auto B.registerC.staticD.extern解析:解析 如果定义变量时没有声明变量的存储类型,则默认为 auto

    26、型。6.设有如下关系表:(分数:2.00)A.B. C.D.解析:解析 仔细观察 3 个表可以看到,R,S,T 具有相同的关系模式,且 T 包含了 R 和 S 的所有元组,故 T=RS。7.有以下程序:main()char a=a, b;printf(“% c, “,+(分数:2.00)A.;printf( 解析:解析 本题同样考查+运算的执行次序。第一个 prantf 输出的是b,并且变量 a=b;第二个printf 输出的是赋值语句 b=a+最终的结果,该语句首先将 a 的值赋给 b,然后 a+,因此第二个 printf输出也是b。8.用 C 语言编写的代码_。(分数:2.00)A.可立即

    27、执行B.是一个源程序 C.经过编译即可执行D.经过编译解释才能执行解析:解析 用 C 语言编写的代码是一个源程序,不能立即执行,如果没有错误,则经过编译、连接后即可执行。9.有以下程序:main()int i=1, j=2, k=3;if(i+=1程序运行后的输出结果是_。(分数:2.00)A.1 2 3B.2 3 4C.2 2 3D.2 3 3 解析:解析 对于 if 语句,根据优先级顺序,先判断(+j=-3|k+=3),此时,+j=-3 成立,就不用计算“|”后面的表达式,此时 k=3,由于 i+=1 成立,自加后 i=2,if 语句的条件为真,故输出的结果为:2, 3, 3。10.若变量

    28、已正确说明为 float 类型,要通过语句 scanf(“%f %f %f“, 并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是_(分数:1.00)A.double myadd(double a, B.;B) double myadd(double, double);C.dD.double myadd(double x, double y);解析:解析 选项 A 中没有指定第二个形参变量 B 的数据类型,错误。12.以下能正确定义一维数组的选项是_。(分数:1.00)A.int a5=0, 1, 2, 3, 4, 5);B.char a=0, 1, 2, 3, 4

    29、, 5); C.char a=A, B, C;D.int a5=“0123“;解析:解析 A 中初值的个数大于 a 的定义的长度,错误。C 中 a 被定为字符却给它赋值为数值,错误。D 中 a 是整型数组却给它赋值为字符串,错误。13.下列程序执行后的输出结果是_。# define MA(x) x*(x-1)main()int a=1, b=2; printf(“% d/n“, MA(1+a+b);(分数:1.00)A.6B.8 C.10D.12解析:解析 MA(1+a+b)展开为:1+a+h*(1+a+b-1)=1+1+2(1+1+2-1)=2+23=8。14.有以下程序:# include

    30、stdio. h# difine F(X, Y) (X)*(Y)main()int a=3, b=4;print(“% d/n“, F(a+, b+);程序运行后的输出结果是_。(分数:1.00)A.12 B.15C.16D.20解析:解析 F(a+,b+)的宏展开为:F(a+,b+)=(a+)*(b+)=a*b=34=12,因此 printf 函数的输出结果是 12。15.有如下程序:# define N 2# define M N+1# define NUM 2*M+1# main()int i;for(i=1; i=NUM; i+)printf(“% d/n“, i);该程序中的 for

    31、 循环执行的次数是_。(分数:1.00)A.5B.6 C.7D.8解析:解析 本题考查宏定义的使用。本题定义了 3 个宏名分别是 N、M 和 NUM。对 NUM 展开得2*M+1=2*N+1+1=22+1+1=6。因此正确答案是 B。16.设变量已正确定义,则以下能正确计算 n!的程序段是_。(分数:1.00)A.f=0;for(i=1; i=n; i+)f*=i;B.f=1;for(i=1; in; i+)f*=i;C.f=1;for(i=n; i1; i+)f*=i;D.f=1;for(i=n; i=2; i-)f*=i; 解析:解析 A 选项,将 f 赋值为 0,结果得到 0,因为 0

    32、乘任何数都为 0;B 选项,in,计算的是(n-1)!,C 选项将陷入死循环。17.以下不能正确计算代数式 sin2( (分数:1.00)A. B.C.D.解析:解析 A 中 sin(1/2)是 0,因为 1 和 2 都是整数,“/”在这里是整除。18.有以下程序:main()int k=5, n=0;while(k0);switch(k)default; break;case 1:n+=k;case 2;case 3:n+=k;k-;printf(“% d/n“, n);程序运行后的输出结果是_。(分数:1.00)A.0B.4C.6D.7 解析:解析 当 k 为 4、5 时,n 值没有变化。

    33、当 k=3 时,满足 case 3,得到 n=3;当 k=2 时,满足 case 2,因为没有 break 语句,继续执行 case 3 得 n=n+2=5;当 k=1 时,满足 case 1,得 n=6,又因为没有break,继续执行 case 2,case 3,最后得 n=7。19.以下程序的输出结果是_。int f()static int i=0;int s=1;s+=i; i+;return s;main()int i, a=0;for(i=0; i5; i+)a+=f();printf(“% d/n“,(分数:1.00)A.;A) 20B) 24C) 25D)解析:解析 函数 f 中

    34、变量 i 为静态变量,函数 f 调用结束后变量 i 所占据的存储单元不会释放,而在主函数中 f 被调用 5 次,具体过程如下:第 1 次调用 f:s=s+i=1+0=1,i=i+1=1,主函数中 a=a+f()=0+1=1第 2 次调用 f:s=s+i=1+1=2,i=i+1=2,主函数中 a=a+f()=1+2=3第 3 次调用 f:s=s+i=1+2=3,i=i+1=3,主函数中 a=a+f()=3+3=6第 4 次调用 f:s=s+i=1+3=4,i=i+1=4,主函数中 a=a+f()=6+4=10第 5 次调用 f:s=s+i=1+4=5,i=i+4=5,主函数中 a=a+f()=1

    35、0+5=15所以 printf 语句的输出结果为 15。20.以下叙述中正确的是_。(分数:1.00)A.预处理命令行必须位于源文件的开头B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示D.宏替换不占用程序的运行时间 解析:解析 预处理命令一般位于源文件的开头,但不是一定得这么做。源文件一行上只能有一条预处理命令,宏名可以用小写字母来表示。21.有以下程序:int a=2;int f(int n)static int a=3;int t=0;if(n % 2)(static int a=4; t+=a+;elsestatic int a=5; t+=a+;return t+a

    36、+;matin()int s=a, i;for(i=0; i3; i+)s+=f(i);printf(“% d/n“, s);程序运行后的输出结果是_。(分数:2.00)A.26B.28C.29 D.24解析:解析 在某一函数中当全局变量与局部变量同名时,则在该函数中,全局变量被屏蔽,访问的是局部变量。因此,t+a+中的 a 用的是 static int a=3 的这个 a。if 语句的执行是当 n 是偶数时,执行else 的部分,否则执行其后的部分。因此,当 i=0 时,t=5,s=2+8=10;i=1 时,t=4,s=10+8=18;当i=2 时,t=6,s=18+11=29。22.以下程

    37、序段中,能够通过调用函数 fun,使 main 函数中的指针变量 p 指向一个合法的整型单元的是_。(分数:2.00)A.main()int *p;fun(p);int fun(int *p)int s; p=B.main()int *p;fun(int fun(int *p)int s; *p=C.# includestdlib. hmain()int *p;fun(int fun(int *p)*p=(int *)malloc(2); D.# includestdlib. hmain()int *p;fun(p);int fun(int *p)p=(int*)malloc(sizeof(i

    38、nt);解析:解析 选项 A 和 B 中 p 指向局部变量 s 的地址,退出函数 fun 后,该局部变量也被释放,不能使p 指向一个整型单元地址;选项 D 中通过 malloc 函数分配一个整型地址,但不能被返回到 main 函数中,因为指针参数指向的地址不能被改变;选项 C 中,p 是指向指针的指针,函数 fun 改变的是其指向的内容,而不是其地址。23.在函数调用过程中,如果函数 funA 调用了函数 funB,函数 funB 又调用了函数 funA,则_。(分数:2.00)A.称为函数的直接递归调用B.称为函数的间接递归调用 C.称为函数的循环调用D.C 语言中不允许这样的递归调用解析:

    39、解析 如果在调用函数 A 时,函数 A 调用了本身,称为函数的直接递归调用;如果函数 A 调用了函数 B,函数 B 又调用了函数 A,称为函数的间接递归调用。24.以下选项中可作为 C 语言合法常量的是_。(分数:2.00)A.-80. B.-080C.-8e1.0D.-80.0e解析:解析 对于 B,以 0 开头表示八进制数,八进制数的范围是 07,所以 B 不对;c 后面必须是整数,所以 C、D 也不合法。25.有以下程序:main()int x=3, y=2, z=1;printf(“% d/n“, x/y程序运行后的输出结果是_。(分数:2.00)A.3B.2C.-1D.0 解析:解析

    40、 本题中表达式 x/yc= b=程序在执行了 c= b= 语句后,表达式*c 的值是_。(分数:2.00)A.变量 a 的地址B.变量 b 中的值C.变量 a 中的值 D.变量 b 的地址解析:解析 本题中 b 是指向 int 型的指针变量,c 是指向指针的指针变量。执行完语句 c=m-=n;printf(“% X/n“, m);执行后的输出结果是_。(分数:2.00)A.0X0B.0x0C.0 D.0XABC解析:解析 “%X”以十六进制无符号形式输出整数,变量 m 和 n 的初始值都是十六进制数,m=m-n=0xabc-oxabc=0x0,所以输出结果为 0。30.以下只有在使用时才为该类

    41、型变量分配内存的存储类说明是_。(分数:2.00)A.auto 和 staticB.auto 和 register C.register 和 staticD.extern 和 register解析:解析 auto 和 register 存储类型的变量在使用时分配存储空间,使用后即释放。31.有以下程序:# define N 20fun(int a, int n, int m)int i, j;for(i=m; i=n; i-)ai+1=ai;main()int i, aN=1, 2, 3, 4, 5, 6, 7, 8, 9, 10;fun(a, 2, 9);for(i=0; i5; i+)pr

    42、intf(“% d“, ai);程序运行后的输出结果是_。(分数:2.00)_解析:解析 由于用了宏定义 a10a19均为 0。函数 fun 的功能是把从 an到 am中的元素依次赋给后面的一个元素。调用了 fun(a, 2, 9)以后,aN=1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 1032.结构化程序设计的主要特点是_。(分数:2.00)A.模块化B.每个控制结构具有封装性C.每个控制结构具有独立性D.每个控制结构只有一个入口和一个出口 解析:解析 按照结构化设计方法设计的程序具有以下特点:(1)程序易于理解、使用和维护,程序员采用结构化编程方法,便于控制、降低程序的复杂

    43、性,因此容易编写程序,便于验证程序的正确性。结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以确保程序的正确性。程序容易阅读并被人理解,便于用户使用和维护。(2)提高了编程工作的效率,降低了软件开发成本。由于结构化编程方法能够把错误控制到最低限度,因此能够减少调试和查错时间。结构化是由一些为数不多的基本结构模块组成,这些模块甚至可以由机器自动生成,从而极大地减轻了编程工作量。(3)结构化程序设计选用的每个控制结构只允许有一个入口和一个出口。33.执行下列程序时输入:123空格456空格789回车,输出结果是_。mein()char s100; int c, i;scan

    44、f(“% c“, scanf(“% d“, scanf(“% s“, s);printf(“% c, % d, % s/n“, c, i, s);(分数:2.00)A.123, 456, 789B.1, 456, 789C.1, 23, 456, 789D.1, 23, 456 解析:解析 根据给定的数据输入格式:123空格456空格789回车,第一个 scanf 语句中,格式字符为“%c”,只能得到一个字符1,第二个 scanf 语句中格式字符为“%d”,变量 i 得到的数值为 23,第三个 scanf 语句中格式字符为“%s”,遇到空格就自动结束,因此字符数组 s 得到的是“456/0“。

    45、因而正确答案为选项 D。34.已有定义:char a=“xyz“b=x, y, z);,以下叙述中正确的是_。(分数:2.00)A.数组 a 和 b 的长度相同B.a 数组长度小于 b 数组长度C.a 数组长度大于 b 数组长度 D.上述说法都不对解析:解析 a 数组是字符串,系统会自动地给它加一个结束标志符/0,因此 a 的长度就变为 4 了,所以 a 数组比 b 数组长。35.以下选项中合法的用户标识符是_。(分数:2.00)A.longB._2Test C.3DmaxD.dat解析:解析 本题选项 A 中 long 为 C 语言的保留字,选项 C 中 3Dmax 是以数字作为首字符,选项 D 中 A. dat 中有非法标识符字符“.”,所以正确答案为 B。36.有以下程序:main()char p=a, b, c, q=“abc“;printf(“% d % d/n“, sizeof(p), sizeof(q);程序运行后的输出结果是_。(分数:2.00)A.4 4B.3 3C.3 4 D.4 3解析:解析 因为在 C 语言中对于字符串都会在最后加上结束标志/0,因此,q 的民度为 4。37.有以下程序:int f1(int x, int y) return xy? x:y; int f2(int x, int y) retur


    注意事项

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




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

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

    收起
    展开