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

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

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

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

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

    1、二级 C 语言笔试-234 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.有以下程序:void sum(int a)a0=a-1+a1; main()int a10=1,2,3,4,5,6,7,8,9,10;sum(printf(“%d/n“,a2);程序运行后的输出结果是( )。(分数:2.00)A.6B.7C.5D.82.若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是( )。(分数:2.00)A.+x,y=x-B.x+1=yC.x=x+10=x+yD.double(x)/103.有以下程序段:main()int a=

    2、5,*b,*c;c= b=程序在执行了“c= b=”语句后,表达式“*c”的值是( )。(分数:2.00)A.变量 a 的地址B.变量 b 中的值C.变量 a 中的值D.变量 b 的地址4.下列叙述中正确的是( )。(分数:2.00)A.break 语句只能用于 switch 语句B.在 switch 语句中必须使用 defaultC.break 语句必须与 switch 语句中的 case 配对使用D.在 switch 语句中,不一定使用 break 语句5.有以下程序:#include stdio.hint fun(char s)int n=0;while(*s=9s+;return(n)

    3、;main()char s10=6,1,*,4,*,9,*,0,*;printf(“%d/n“,fun(s);程序的运行结果是( )。(分数:2.00)A.9B.61490C.61D.56.有以下程序;main()char s=“aaiou“,*ps;ps=s; printf(“%c/n“,*ps+4);程序运行后的输出结果是( )。(分数:2.00)A.aB.eC.uD.元素 s4的地址7.数据库技术的根本目标是要解决数据的( )。(分数:2.00)A.存储问题B.共享问题C.安全问题D.保护问题8.有以下程序:main()int a10=1,2,3,4,5,6,7,8,9,10),*p=p

    4、rintf(“%d/n“,*p+*q);程序运行后的输出结果是( )。(分数:2.00)A.16B.10C.8D.69.有以下程序:#include stdio.hmain()FILE *fp;int i,k,n;fp=fopen(“data.dar“,“w+“);for(i=1;i6;i+)fprintf(fp,“%d “,i);if(i%3=0)fprintf(fp,“/n“);rewind(fp);fscanf(fp,“%d%d“, printf(“%d%d/n“,k,n);fclose(fp);程序运行后的输出结果是( )。(分数:2.00)A.0 0B.123 45C.1 4D.1

    5、210.以下不能正确计算代数式 sin2()值的 C 语言表达式是( )。(分数:2.00)A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)11.以下程序的输出结果是( )。main()int a=0,i;for(i=1;i5;i+)switch(i)casc 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf(“%d/n“,(分数:1.00)A.;12.有以下程序:main()char str=“xyz“,*ps

    6、=str;while(*ps) ps+;for(ps-;ps-str=0;ps-) puts(ps);执行后输出结果是( )。(分数:1.00)A.yzxyZB.zyzC.zyzD.xxyxyz xyz13.下列叙述中正确的是( )。(分数:1.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述 3 种说法都不对14.若有以下函数首部:int fun(double x10,int *n)则下面针对此函数的函数声明语句中正确的是( )。(分数:1.00)A.int fun

    7、(double x, int *n);B.int fun(double, int);C.int fun(double *x, int n);D.int fun(double*, int*);15.以下程序中,while 循环的循环次数是( )。main()int i=0;while(i10)if(i1) continue;if(i=5) break;i+;(分数:1.00)A.1B.10C.6D.死循环,不能确定次数16.可在 C 程序中用作用户标识符的一组标识符是( )。(分数:1.00)A.and_2007B.Datey-m-dC.HiDrTomD.caseBigl17.在关系数据库中,用

    8、来表示实体之间联系的是( )。(分数:1.00)A.树结构B.网结构C.线性表D.二维表18.有以下程序段:int k=0,a=1,b=2,c=3;k=ab ? b:a; k=kc ? c:k;执行该程序段后,k 的值是( )。(分数:1.00)A.3B.2C.1D.019.有定义语句:“int x,y;”,若要通过“scanf(“%d,%d“,”语句使变量 x 得到数值 11,变量y 得到数值 12,下面四组输入形式中,错误的是( )。(分数:1.00)A.11 12回车B.11, 12回车C.11,12回车D.11,回车12回车20.有以下程序:main()int c=35; printf

    9、(“%d/n“,c程序运行后的输出结果是( )。(分数:1.00)A.0B.70C.35D.121.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是( )。(分数:1.00)A.c1c2B.c1while(y-); printf(“y=%d/n“,y);程序执行后的输出结果是( )。(分数:1.00)A.y=0B.y=-1C.y=1D.while 构成无限循环23.有以下程序:#include stdio.hmain()FILE *fp; int i,k=0, n=0;fp=fopen(“d1.dat“,“w“);for(i=1;i4;i+) fprintf(fp,“

    10、%d“,i);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d%d“, printf(“%d%d/n“,k,n);fclose(fp);执行后输出结果是( )。(分数:1.00)A.1 2B.123 0C.1 23D.0 024.有以下程序:point(char *p) p+=3; main()char b4=a,b,c,d, *p=b;point(p);printf(“%c/n“,*p);程序运行后的输出结果是( )。(分数:1.00)A.aB.bC.cD.d25.以下选项中非法的表达式是( )。(分数:1.00)A.0=x100B.i=j=0C

    11、.(char)(65+3)D.x+1=x+126.设有如下 3 个关系表:(分数:1.00)A.B.C.D.27.有以下程序:void sort(int a, int n)int i,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)t=ai;ai=aj;aj=t;main()int aa10=1,2,3,4,5,6,7,8,9,10,i;sort(aa+2,5);for(i=0;i10;i+)printf(“%d,“,aai);printf(“/n“);程序运行后的输出结果是( )。(分数:1.00)A.1,2,3,4,5,6,7,8,9,10,B.1,

    12、2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10,D.1,2,9,8,7,6,5,4,3,10,28.以下叙述中错误的是( )。(分数:1.00)A.C 程序必须由一个或一个以上的函数组成B.函数调用可以作为一个独立的语句存在C.若函数有返回值,必须通过咖语句返回D.函数形参的值也可以传回给对应的实参29.下面程序的功能是输出以下形式的金字塔图案:*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“);在下划线处应填

    13、入的是( )。(分数:1.00)A.iB.2*1-1C.2*i+1D.i+230.有定义语句:int b;char c10;,则正确的输入语句是( )。(分数:1.00)A.scanf(“%d%s“,B.scanf(“%d%s“,C.scanf(“%d%s“,b,c);D.scanf(“%d%s“,b,31.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是( )。(分数:1.00)A.数组 a 和 b 的长度相同B.a 数组长度小于 b 数组长度C.a 数组长度大于 b 数组长度D.以述说法都不对32.一棵二叉树中共有 70 个叶子结点与 80 个度为 1 的结点,则该

    14、二叉树中的总结点数为( )。(分数:1.00)A.221B.219C.231D.22933.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量 s、p、q 均已正确定义,并用于指向链表结点,指针变量 s 总是作为头指针指向链表的第一个结点。(分数:1.00)A.B.C.D.34.在结构化程序设计中,模块划分的原则是( )。(分数:1.00)A.各模块应包括尽量多的功能B.各模块的规模应尽量大C.各模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度35.设有定义:int a=2,b=3,c=4;,则以下选项中值为 0 的表达式是( )。(分数:1.00)A.(!a=1)x

    15、=(ab) printf(“%d/n“,x);程序的运行结果是( )。(分数:1.00)A.0B.1C.2D.337.有以下程序:main()char a1=M,a2=m;printf(“%c/n“,(a1,a2);以下叙述中正确的是( )。(分数:1.00)A.程序输出大写字母 MB.程序输出小写字母 mC.格式说明符不足,编译出错D.程序运行时产生出错信息38.有以下程序:#include string.hmain()char str20=“Hello“,“beijing“,*p=str;ptintf(“%/n“,strlen(p+20);程序运行后的输出结果是( )。(分数:1.00)A

    16、.0B.5C.7D.2039.有以下计算公式:(分数:1.00)A.B.C.D.40.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是( )。(分数:1.00)A.1B.2C.3D.441.下面选项中不属于面向对象程序设计特征的是( )。(分数:1.00)A.继承性B.多态性C.类比性D.封装性42.若有一些定义和语句:#include stdio.hint a=4,b=3,*p,*q,*w;p= q= w=q; q=NULL;则以下选项中错误的语句是( )。(分数:1.00)A.*q=0;B.w=p;C.*p=a;D.*p=*w;43.以

    17、下不能定义为用户标识符的是( )。(分数:1.00)A.scanfB.VoidC._3com_D.int44.以下叙述中正确的是( )。(分数:1.00)A.构成 C 程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义45.以下数组定义中错误的是( )。(分数:1.00)A.int x3=0;B.int x23=1,2,3,4,5,6;C.int x3=1,2,3,4,5,6;D.int x23=(1,2,3,4,5,6;46.以下程序调用 fmdmax 函数返回数组中的量大值:findmax(int *a

    18、,int n)int *p,*s;for(p=a,s=a;p-an;p+)if(_)s=p;return(*s);main()int x5=12,21,13,6,18;printf(“%d/n“,findmax(x,5);在下划线处应填入的是( )。(分数:1.00)A.psB.*p*sC.apasD.p-ap-s47.有以下程序;void f(int *x,int *y)int t;t=*x; *x=*y; *y=t;main()int a8=1,2,3,4,5,6,7,8,i,*p,*q;p=a; q=while (pq)f(p,q);p+; q-; for(i=0;i8; i+) pri

    19、ntf(“%d,“,ai);程序运行后的输出结果是( )。(分数:1.00)A.8,2,3,4,5,6,7,1,B.5,6,7,8,1,2,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1,48.下列叙述中错误的是( )。(分数:1.00)A.在数据库系统中,数据的物理结构必须与逻辑结构一致B.数据库技术的根本目标是要解决数据的共享问题C.数据库设计是指在已有数据库管理系统的基础上建立数据库D.数据库系统需要操作系统的支持49.某二叉树中有 n 个度为 2 的结点,则该二叉树中的叶子结点数为( )。(分数:1.00)A.n+1B.n-1C.2nD.n/250.下列

    20、选项中不属于结构化程序设计方法的是( )。(分数:1.00)A.自顶向下B.逐步求精C.模块化D.可复用二、填空题(总题数:17,分数:36.00)51.设一棵完全二叉树共有 700 个结点,则在该二叉树中有 【1】 个叶子结点。(分数:2.00)填空项 1:_52.在面向对象方法中, 【2】 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_53.诊断和改正程序中错误的工作通常称为 【3】 。(分数:2.00)填空项 1:_54.对下列二叉树进行中序遍历的结果为 【4】 。(分数:2.00)填空项 1:_55.在结构化分析使用的数据流图(DFD)中,利用 【5】 对其中的

    21、图形元素进行确切解释。(分数:2.00)填空项 1:_56.执行以下程序后的输出结果是 【6】 。main()int a=10;a=(3*5,a+4); printf(“a=%d/n“,a);(分数:2.00)填空项 1:_57.以下程序运行后的输出结果是 【7】 。main()int m=011,n=11;printf(“%d %d/n“,+m,n+);(分数:2.00)填空项 1:_58.有以下程序:main()int t=1,i=5;for(; i=0;i-) t*=i;printf(“%d/n“,t);执行后输出结果是 【8】 。(分数:2.00)填空项 1:_59.以下程序的运行结果

    22、是 【9】 。main()int a=2,b=7,c=5;switch(a0)case 1:switch (b0)case 1:printf(“); break;case 2:pnntf(“!“); break;case 0:switch (c=5)case 0:pnntf(“*“); break;case 1:printf(“#“); break;case 2:printf(“$“); break;default: printf(“printf(“/n“);(分数:2.00)填空项 1:_60.有以下程序段,且变量已正确定义和赋值。for(s=1.0, k=1; k=n;k+) s=s+1.

    23、0/(k*(k/1);printf(“s=%f/n/“,s);请填空,使下面程序段的功能与之完全相同。s=1.0; k=1;while( 【10】 ) s=s+1.0/(k*(k+1); 【11】 ; printf(“s-=%f/n/n“,s);(分数:4.00)_61.以下程序的输出结果是 【12】 。#include stdio.hmain()int i;for(i-a; if; i+,i+) printf(“%c“,i-a+A);printf(“/n“);(分数:2.00)填空项 1:_62.函数 YangHui 的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下:11 11 2

    24、 11 3 3 11 4 6 4 1其构成规律是:第 0 列元素和主对角线元素均为 1。其余元素为其左上方和正上方元素之和。数据的个数每行递增 1。请将程序补充完整。#define N 6void yanghui(int xNN)int i,j;xO0=1;for(i=1;iN;i+)xi0= 【13】 =1;for(j=1;ji;j+)xij= 【14】 ;)(分数:2.00)填空项 1:_63.以下 sstrcpy()函数实现字符串复制,即将 t 所指字符串复制到 s 所指向内存空间中,形成一个新的字符串 s。请填空。void sstrcpy(char *s,char *t)while(*

    25、s+= 【15】 );main()char str1100,str2=“abcdefgh“;sstrcpy(str1,str2);printf(“%s/n“,str1);(分数:2.00)填空项 1:_64.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。【16】 (double,double);main()double x,y;scanf(“%1f%1f“,printf(“%1f/n“,max(x,y);double max(double a,double B) return(ab ? a:b);(分数:2.00)填空项 1:_65.以下程序的功能是输入任意整数给 n 后,输出

    26、n 行由大写字母 A 开始构成的三角形字符阵列图形。例如,输入整数 5 时(注意:n 不得大于 10),程序运行结果如下:ABCDEFGHIJKLMNO请填空完成该程序。main()int i,j,n; char ch=A;scanf(“%d“,if(n11)for(i=1;i=n;i+)for(j=1;j=n-i+1;j+)printf(“%2c“,ch);【17】 ;【18】 ;else printf(“n is too large!/n“)printf(“/n“0);(分数:2.00)填空项 1:_66.设有说明;struct DATE int year; int month; int

    27、day;请写出一条定义语句,该语句定义 d 为上述结构体类型变量,并同时为其成员 year、month、day 依次赋初值 2006、10、1: 【19】 。(分数:2.00)_67.以下程序的功能是将宁符串 s 中的数字字符放入 d 数组中,最后输出 d 中的字符串。例如,输入字符串:abcl23edf4568h,执行程序后输出:123456。请填空。#include stdio.h#include ctype.hmain()char s80,d80; int i,j;gets(s);for(i=j=0;si!=/0;i+)if( 【20】 ) dj=si;j+;dj=/0;puts(d);

    28、(分数:2.00)填空项 1:_二级 C 语言笔试-234 答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.有以下程序:void sum(int a)a0=a-1+a1; main()int a10=1,2,3,4,5,6,7,8,9,10;sum(printf(“%d/n“,a2);程序运行后的输出结果是( )。(分数:2.00)A.6 B.7C.5D.8解析:解析 sum()函数接收一个 int 型数组作参数,也可以把它看作是一个 int 型指针,语句 a0=a-1;的意思就是将参数指针向内容的前一个元素和后一个元素的值相加放到指针所指的位

    29、置。因此,主函数中调用 sum(,所以最后输出的结果是 6。应该选择 A。2.若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是( )。(分数:2.00)A.+x,y=x- B.x+1=yC.x=x+10=x+yD.double(x)/10解析:解析 在 C 语言的赋值表达式中,赋值对象必须是一个变量,而在选项 B 中其子表达式 x+1 代表的是一个临时常量,因此不能将 y 赋给 x+1,选项 B 错误。而选项 C 中由于“=”运算符是从右至左运算的,即原表达式相当于 x=(x+10=x+y),所以也犯了对一个临时常量赋值的错误。选项 D 中,将 x 强制转换为 double

    30、类型的表达式应该为(double)x,所以选项 D 也不正确。故本题的正确答案为选项 A。3.有以下程序段:main()int a=5,*b,*c;c= b=程序在执行了“c= b=”语句后,表达式“*c”的值是( )。(分数:2.00)A.变量 a 的地址B.变量 b 中的值C.变量 a 中的值 D.变量 b 的地址解析:解析 主函数中定义了一个整型变量 a,一个整型指针变量 b 和一个二级指针变量 c,并让 c 指向指针变量 b,让指针 b 指向整形变量 a,所以*c 为变量 a 的值,所以,4 个选项中选项 C 符合题意。4.下列叙述中正确的是( )。(分数:2.00)A.break 语

    31、句只能用于 switch 语句B.在 switch 语句中必须使用 defaultC.break 语句必须与 switch 语句中的 case 配对使用D.在 switch 语句中,不一定使用 break 语句 解析:解析 break 语句除了能用于 switch 语句外,还可以用于循环语句中,因此选项 A 不正确。在switch 语句中,可以使用 default 来执行所有 case 均失配时的分支,也可以不使用 default,此时若所有 case 均失配则跳出 switch,因此选项 B 不正确。在 switch 语句中,每个 case 的作用就是标出一个执行的起点,当符合某个 case

    32、 时,程序就从该 case 所标出的起点处开始执行,若没有 break 语句中断执行的话,程序会一直执行到 switch 的最后一条语句,而不是碰到下一个 case 就跳出 switch。虽然 break与 case 的配对使用会让所有 case 分支互不重叠条理明确,但不配对使用在 C 语言中也是允许的。因此选项 C 不正确,应该选择 D。5.有以下程序:#include stdio.hint fun(char s)int n=0;while(*s=9s+;return(n);main()char s10=6,1,*,4,*,9,*,0,*;printf(“%d/n“,fun(s);程序的运

    33、行结果是( )。(分数:2.00)A.9B.61490C.61 D.5解析:解析 题目 fun()函数中 while 循环的意思是:判断 s 所指内容是否为数字字符,如果是数字字符,则计算表达式 n=10*n+*s-0;。其中*s-0的作用是将相应的数字字符转换为数值,例如字符8减去字符0后,得到的结果就是数值 8 了。n=10*n+的作用是将累计变量 n 中原来内容乘以 10,然后再加上刚转换的数字字符的数值,例如原来 n 的值为 1,*s 现在的内容为2,那么执行了 n=10*n+*s-0;语句后,n 的值变为 12,如果接下来再来一个8字符,执行 n=10*n+*s-O;语句后,n 的值

    34、就是 128 了。故不难看出 fun()函数的作用是“将数字字符串转换为相应的十进制数值,碰到非数字字符时结束”。从主函数中定义的字符数组 s 的初始化内容可以看出,fun()函数返回值应该是 61。故应该选择 C。6.有以下程序;main()char s=“aaiou“,*ps;ps=s; printf(“%c/n“,*ps+4);程序运行后的输出结果是( )。(分数:2.00)A.aB.e C.uD.元素 s4的地址解析:解析 程序首先定义了一个字符数组 s,然后让字符指针 ps 指向该数组的首地址。最后按字符形式输出*ps+4 的值,即 s0+4 的值,a+4=e。故应该选择 B。7.数

    35、据库技术的根本目标是要解决数据的( )。(分数:2.00)A.存储问题B.共享问题 C.安全问题D.保护问题解析:解析 数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。数据库技术的根本目标就是解决数据的共享问题。8.有以下程序:main()int a10=1,2,3,4,5,6,7,8,9,10),*p=printf(“%d/n“,*p+*q);程序运行后的输出结果是( )。(分数:2.00)A.16B.10 C.8D.6解析:解析 题目中首先定义了一个 int 型数组 a 并初始化了,然后定义了两个指针变量 p 和 q,并分别初始化 p 为指向数组元

    36、素 a3、q 指向 p 后面的第 2 个元素即指向 a5。所以最终输出的值为 a3+a5的值 10。应该选 B。9.有以下程序:#include stdio.hmain()FILE *fp;int i,k,n;fp=fopen(“data.dar“,“w+“);for(i=1;i6;i+)fprintf(fp,“%d “,i);if(i%3=0)fprintf(fp,“/n“);rewind(fp);fscanf(fp,“%d%d“, printf(“%d%d/n“,k,n);fclose(fp);程序运行后的输出结果是( )。(分数:2.00)A.0 0B.123 45C.1 4D.1 2

    37、解析:解析 程序首先定义了一个文件指针 fp,并使用 fopen()函数以“w+”方式新建一个可读写文件“data.dat”。然后使用一个 for 循环,循环变量 i 从 1 递增到 5,在循环体中每次写入循环变量 i 的值和 4 个空格,当 i 能被 3 整除的时候写入一个换行符。所以循环结束时,文件中的内容应该为:1 2 34 5接下来程序使用 rewind()函数,将文件的读写指针调回起始位置。并调用 fscanf()函数从文件中读取两个整数到变量 k 和 n。所以最终输出应该为:1 2。故本题选 D。10.以下不能正确计算代数式 sin2()值的 C 语言表达式是( )。(分数:2.0

    38、0)A.1/3*sin(1/2)*sin(1/2) B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)解析:解析 选项 A 中传递给 sin()函数的参数表达式 1/2 计算出来的结果为整数 0,所以不能正确计算出题目要求的值,而其余选项中,除号两边都至少有个运算分量是实数,故应该选择 A。11.以下程序的输出结果是( )。main()int a=0,i;for(i=1;i5;i+)switch(i)casc 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf(

    39、“%d/n“,(分数:1.00)A.;解析:解析 在本题中,因为每个 case 语句后面都没有 break 语句,所以,第一轮循环(i1)执行过后a 的值为 8,第 2 轮(i=2)执行过后 a 的值为 16,第 3 轮(i=3)执行过后 a 的值为 26,第 4 轮(i=4)执行过后 a 的值为 31,然后执行“i+”语句,这时循环条件为假,循环结束。所以,4 个选项中 A 正确。12.有以下程序:main()char str=“xyz“,*ps=str;while(*ps) ps+;for(ps-;ps-str=0;ps-) puts(ps);执行后输出结果是( )。(分数:1.00)A.

    40、yzxyZB.zyzC.zyz D.xxyxyz xyz解析:解析 执行 while 循环,使指针变量 ps 指向字符串“xyz”的字符串结束标志,然后执行 for 循环,先执行“ps-”,使 ps 指向字符“z”,故 puts(ps)输出结果为“z”:再次执行“ps-”,使 ps指向字符“y”,故 puts(ps)输出结果为“yz”:再次执行“ps-”,使 ps 指向字符x,故 puts(ps)输出结果为“xyz”,退出循环。所以,C 选项正确。13.下列叙述中正确的是( )。(分数:1.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用

    41、的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 D.上述 3 种说法都不对解析:解析 在面向对象的程序设计中,对象是面向对象的软件的基本模块。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项 A 与选项 B 错误,选项 C 正确。14.若有以下函数首部:int fun(double x10,int *n)则下面针对此函数的函数声明语句中正确的是( )。(分数:1.00)A.int fun(double x, int *n);

    42、B.int fun(double, int);C.int fun(double *x, int n);D.int fun(double*, int*); 解析:解析 本题中的 fun 函数有两个参数,一个类型是 double 型一维数组,另个是 int 型指针。而在 C 语言中,一维数组用作函数参数和该数组元素的指针类型是等价的。所以本题的正确答案是选项 D。15.以下程序中,while 循环的循环次数是( )。main()int i=0;while(i10)if(i1) continue;if(i=5) break;i+;(分数:1.00)A.1B.10C.6D.死循环,不能确定次数 解析:

    43、解析 本程序中,变量 i 的初始值为 0,判断 while 后面括号内表达式的值为真,执行循环体内的 if 语句,判断 if 后面括号内表达式的值为真,执行“continue;”语句。因 continue 的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判断,所以 i 的值未发生变化,循环条件仍然为真,if 语句也仍然成立,因此循环将无止境地进行下去。所以,4 个选项中,D 为所选。16.可在 C 程序中用作用户标识符的一组标识符是( )。(分数:1.00)A.and_2007 B.Datey-m-dC.HiDrTomD.caseBigl解析:解析 选项 B

    44、 中,y-m-d 用了“-”所以不是标识符;选项 C,Dr.Tom 用了“.”也不是标识符;选项 D 中,case 是 C 语言关键字,所以不能用作标识符。故本题应该选择 A。17.在关系数据库中,用来表示实体之间联系的是( )。(分数:1.00)A.树结构B.网结构C.线性表D.二维表 解析:解析 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。即关系模型是用二维表格数据来表示实体本身及其相互之间的联系。18.有以下程序段:int k=0,a=1,b=2,c=3;k=ab ? b:a; k=kc ? c:k;执行该程序段后,k 的值是( )。(分数:1.00)A.3B.2 C.

    45、1D.0解析:解析 本题中因为 ab 为“真”,所以第 1 个条件表达式的值为 b 的值 2,所以 k=2。然后又因为 kc 为“假”,所以第 2 个表达式的值为 k 的值 2。所以本题应该选择 B。19.有定义语句:“int x,y;”,若要通过“scanf(“%d,%d“,”语句使变量 x 得到数值 11,变量y 得到数值 12,下面四组输入形式中,错误的是( )。(分数:1.00)A.11 12回车 B.11, 12回车C.11,12回车D.11,回车12回车解析:解析 本题中输入格式串为%d%d 其中“,”为非格式字符,所以输入时必须原样输入。所以,4 个选项中选项 A 符合题意。20

    46、.有以下程序:main()int c=35; printf(“%d/n“,c程序运行后的输出结果是( )。(分数:1.00)A.0B.70C.35 D.1解析:解析 位与运算是将两个运算分量看作两个二进制数,然后对两个二进制数的相应位进行与运算,若同时为 1 则结果相应位为 1,否则结果相应位为 0。因此,当两个运算分量相同时,它们的相应位肯定也相同,即不同为 1 就同为 0。所以得到的结果和运算分量也相同。所以,4 个选项中选项 C) 符合题意。21.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是( )。(分数:1.00)A.c1c2 B.c1while(y-); printf(“y=%d/n“,y);程序执行后的输出结果是( )。(分数:1.00)A.y=0B.y=-1 C.y=1D.while 构成无限循环解析:解析 本题中有一个陷阱,很多考生会根据程序的书写格式来判断:while 循环的循环体为 printf(“y=%d/n“,y);语句。其实 while 的循环体是一条空语句,即 y-后面的那个分号就是 while 的循环体。所以本题只要弄清楚表达式 y-何时为“假”,即等于 0,就能得出结果了。因为-运算符是后缀形式,所以表达式 y-的值是 y


    注意事项

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




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

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

    收起
    展开