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

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

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

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

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

    1、二级 C 语言笔试-104 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.fgetc 函数的作用是从指定文件读入一个字符,该文件的打开方式必须是_。(分数:2.00)A.只读B.追加C.读或读写D.以上均正确2.以下程序的输出结果是_。#includestdio.h#defineFUDGE(y) 2.84+y#define PR((分数:2.00)A.printf(“%d“,(int)(A) )#definePRINT1(A) PR(A) ;putchar(/n)main()int x=2;PRINT1B.12C.13D.153.以下程序

    2、运行后,输出结果为_。main()int a23=1,3,5,7,9,11,*s2,*pp,*p;s0=a0,s1=a1pp=s;p=(int*)malloc(sizeof(int);*pp=s11;p=*pp;printf(“%d/n“,*p);(分数:2.00)A.1B.7C.9D.114.若执行下面程序时从键盘上输入 5,main()int x;scanf(“%d“,则输出是_。(分数:2.00)A.7B.6C.5D.45.若要用下面的程序片段使指针变量 p 指向一个存储整型变量的动态存储单元int *p;p=_malloc(sizeof(int);则应填入_。(分数:2.00)A.in

    3、tB.int*C.(*int)D.(int*)6.以下程序的输出结果是_。#includestdio.h#includestring.hfun(char*w,int n)char t,*s1,*s2;s1=w;s2=w+n-1;while(s1s2)t=*s1+:*sl=*s2-;*s2=t;main()char*p;p=“1234567“;fun(p,strlen(p);puts(p);(分数:2.00)A.1234567B.7654321C.1711717D.71771717.下面程序的输出是_。typedefunionlongx2;int y4;char z8;MYTYPE;MYTYPE

    4、them;main()printf(“%d/n“,sizeof(them);(分数:2.00)A.32B.16C.8D.248.以下程序int aa33=2,4,6;main()int i,*p=i+)if(i=0)aaii+1=*p+1;else +p;printf(“%d“,*p);的输出是_。(分数:2.00)A.23B.26C.33D.369.以下程序段给数组所有的元素输入数据,请选择正确答案填入:#includestdio.hmain()int a10,i=0;while(i10)scanf(“%d“、_);:(分数:2.00)A.a+(i+)B.(分数:1.00)A.20B.16C

    5、.14D.1214.下列司用于 C 语言用户标识符的一组是_。(分数:1.00)A.void define WORDB.a3_b3 _123 CarC.For _abc IFCaseD.2a DO sizeof15.下面程序的输出是_。main()int k=11;printf(“k=%d,k=%o,k=%x/n“,k,k,k);(分数:1.00)A.k=11,k=12,k=11B.k=11,k=13,k=13C.k=11,k=013,k=0xbD.k=11,k=13,k=B16.下面程序main()int x=100,a=10,b=20,ok1=5,ok2=O;if(aB) if(b!=15

    6、)if(!ok1) x=1;else if(ok2)x=10;x=1;printf(“%d/n“,x);的输出是_。(分数:1.00)A.-1B.0C.1D.不确定的值17.若有以下定义和语句:int a=1,2,3,4,5,6,7,8,9,10,*p=a则值为 3 的表达式是_。(分数:1.00)A.P+=2,*(p+)B.P+=2,*+pC.P+=3,*p+D.P+=2,+*p18.字符(char)型数据在微机内存中的存储形式是_。(分数:1.00)A.反码B.补码C.EBCDIC 码D.ASCII 码19.关系表中的每一横行称为一个_。(分数:1.00)A.元组B.字段C.属性D.码20

    7、.设有如下程序#includestdio.hmain()int*k,*j,i=100;j=for(;i6;ci=getchar(),i+);for(i=O;i6;i+)putchar(ci);printf(“/n“);如果从键盘上输入:ab回车c回车def回车则输出结果为_。(分数:1.00)A.aB.aC.abD.abcdefb b cc c dd def22.请选出以下程序的输出结果_。#includestdio.hsub(x,y,z)int x,y,*z;*z=y-x;main()int a,b,c;sub(10,5,for(k=0;sk;k+)switch(sk)default:v4+

    8、;case1:v1+;case3:v3+;case2:v2+;printf(“v1=%d,v2=%d,v3=%d,v4=%d/n“,v1,v2,v3,v4);(分数:1.00)A.v1=4,v2=2,v3=1,v4=1B.v1=4,v2=9,v3=3,v4=1C.v1=5,v2=8,v3=6,v4=1D.v1=8,v2=8,v3=8,v4=828.一个良好的算法由下面的基本结构组成,但不包括_。(分数:1.00)A.顺序结构B.选择结构C.循环结构D.跳转结构29.结构化程序设计主要强调的是_。(分数:1.00)A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性30.以下对枚举

    9、类型名的定义中正确的是_。(分数:1.00)A.enum a=one, two,three;B.enum aone=9,two=1,three;C.enum a=“one“,“two“,“three“;D.enum a“one“, “two“,“three“;31.算法的时间复杂度是指_。(分数:1.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数32.设有以下语句,其中不是对 a 数组元素的正确引用的是:_(其中 0i10)int a10=0,1,3,4,5,6,7,8,9,*p=a;(分数:1.00)A.ap-aB.*(sc

    10、anf(“%d“,p); *s=100; C.int*s,k;D.int*s,k;char*p,c; char*p,e;s=p= *s=1;37.请读程序:#includestdio.hmain()int a;float b,c;scanf(“%2d%3f%4f“,x=(i=j?i:(j=7);printf(“/n%d,%d“,i,j);(分数:1.00)A.5,7B.5,5C.语法错误D.7,539.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。(分数:1.00)A.地址传递B.单向值传递C.由实参传递给形参,再由形参传递给实参D.传递方式由用户指定40.以下程序#i

    11、ncludestdio.h#includestring.hmain()char*pl=“abc“,*p2=“ABC“,str50=“xyz“;strcpy(str+2,strcat(p1,p2);printf(“%s/n“,str);的输出是_。(分数:1.00)A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC41.不能把字符串“Hello!”赋给数组 b 的语句是_。(分数:1.00)A.char b10=H,e,1,l,o,!;B.chsr b10=h,e,1,1,o,!;C.char b10;strcpy(b,“Hello!“);D.chgr b10=“H

    12、ello!“;42.若 x 是整型变量,pb 是基类型为整型的指针变量,则正确的赋值表达式是_。(分数:1.00)A.pb=(分数:1.00)A.ab/b/bcB.acC.abcD.abc44.下面程序main()int x=32;printf(“%d/n“,x=x1);的输出是_。(分数:1.00)A.100B.160C.120D.6445.以下程序运行后,输出结果是_。main()char*d=“ab“,“cde“;printf(“%x“,d1);(分数:1.00)A.cdeB.字符 c 的 ASCII 码值C.字符 c 的地址D.出错46.在软件生命周期中,能准确地确定软件系统必须做什么

    13、和必须具备哪些功能的阶段是_。(分数:1.00)A.概要设计B.详细设计C.可行性分析D.需求分析47.下面程序的输出是_。main()int x=3,y=6,a=0;while(x+!(y=|)a+=1;if(yx)break;printf(“x=%d,y=%d,a=%d/n“,x,y,(分数:1.00)A.;A) x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=148.若有下面的说明和定义,则 sizeof(structa(分数:1.00)A.的值是_。struct aaintrl;double r2;float r3;union uuch

    14、ar u15;long u22ua;mya;A) 30B.29C.24D.2249.有以下程序,程序运行后的输出结果是_。int f(int b4)int i,j,s=0;for(j=0;j4;j+)i=j;if(i2)i=3-j;s+=bij;return s;main()int a44=1,2,3,4,0,2,4,6,3,6,9,12,3,2,1,0;printf(“%d/n“f((分数:1.00)A.);A) 22B.11C.18D.1650.设 a、b 和 c 都是 int 型变量,且 a=3、b=4、c=5,则下面的表达式中,值为 0 的表达式是(分数:1.00)A.ai10;i+)

    15、arri=i;for(i=1;i4;i+)k+=arri+i;printf(“%d/n“,k);(分数:2.00)填空项 1:_57.若 a=10,b=20,则表达式!(ab) 的值是 【7】 。(分数:2.00)填空项 1:_58.有以下程序:int fa(int x)return x*x;int fb(int x)returnx*x*x;int f(int(*f1)(),int(*f2)(),(int x)return f2(x)-f1(x);main()int i;i=f(fa,fb,2);printf(“%d/n“,i);程序运行后,输出结果是 【8】 。(分数:2.00)填空项 1:

    16、_59.下面程序的输出是 【9】 。main()enum emem1=3,em2=1,em3;char*aa=“AA“,“BB“,“CC“,“DD“;printf(“%s%s%s/n“,aaem1,aaem2,aaem3);(分数:2.00)填空项 1:_60.若想通过以下输入语句使 a=5.0,b=4,c=3,则输入数据的形式应该是 【10】 。int b,c;float a;scanf(“%f,%d,c=%d“,strcpy(strcpy(printf(“%s/n“,B) ;(分数:2.00)填空项 1:_63.有以下定义和语句,则 sizeof(A) 的值是 【13】 ,而 sizeof

    17、(a.share)的值是 【14】 。struct dateint day;int mouth;int year;unionint share1;float share2;share;a;(分数:4.00)填空项 1:_64.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。word_num(str)for(i=0;stri!= 【15】 ;i+)if( 【16】 =)word=0;【17】 ;return(num);(分数:6.00)填空项 1:_65.有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数组中。算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中

    18、哪个数之后,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在程序中的空白处填上一条语句或一个表达式。#define N 100main()float aN+1,x;int i,p;for(i=0;iN;i+)scanf(“%f,for(i=0,p=N;iN;i+)if(xai)【18】 ;for(i=N-1; 【19】 ;i-)ai+1=ai;ap=x;for(i=0; 【20】 ;i+)printf(“%8.2f,ai);if(i%5=0)printf(“/n“);(分数:6.00)填空项 1:_二级 C 语言笔试-104 答案解析(总分:100.00,做题时间:90 分

    19、钟)一、选择题(总题数:50,分数:60.00)1.fgetc 函数的作用是从指定文件读入一个字符,该文件的打开方式必须是_。(分数:2.00)A.只读B.追加C.读或读写D.以上均正确 解析:评析 fgetc 函数是指从指定的文件读入一个字符,该文件必须是以读或读写方式打开的。fgetc函数的调用形式为: ch=fgetc(fp);。2.以下程序的输出结果是_。#includestdio.h#defineFUDGE(y) 2.84+y#define PR((分数:2.00)A.printf(“%d“,(int)(A) )#definePRINT1(A) PR(A) ;putchar(/n)m

    20、ain()int x=2;PRINT1B.12 C.13D.15解析:评析 在程序中如果有带实参的宏,则按#define 命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。 3.以下程序运行后,输出结果为_。main()int a23=1,3,5,7,9,11,*s2,*pp,*p;s0=a0,s1=a1pp=s;p=(int*)malloc(sizeof(int);*pp=s11;p=*pp;printf(“%d/n“,*p);(分数:2.00)A.1B.7C.9 D.11解析:评析 s 是一个含

    21、有两个元素的指针数组,pp 是一个指向指针变量的指针,s0是指向二维数组a 行下标为 0 的元素的首地址,即 a00的地址,s1为 a10的地址。pp 的值为 s0的地址。*pp=s11后,a00的值将被赋值为 a11的值,执行 p=*pp;后,p 中将是 s0的值,最后的输出语句将输出地址 s0所指向的数据,即 a00。4.若执行下面程序时从键盘上输入 5,main()int x;scanf(“%d“,则输出是_。(分数:2.00)A.7B.6 C.5D.4解析:评析 根据 C 语言的语法,x+是使用 x 之后,再将 x 的值加 1,在 if 语句中,x 的值为 5,条件不成立,执行 els

    22、e 后面的语句,因为 x 的值已经加 1,为 6,所以打印结果为 6。5.若要用下面的程序片段使指针变量 p 指向一个存储整型变量的动态存储单元int *p;p=_malloc(sizeof(int);则应填入_。(分数:2.00)A.intB.int*C.(*int)D.(int*) 解析:评听 不论 p 是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型*)。6.以下程序的输出结果是_。#includestdio.h#includestring.hfun(char*w,int n)char t,*s1,*s2;s1=w;s2=w+n-1;wh

    23、ile(s1s2)t=*s1+:*sl=*s2-;*s2=t;main()char*p;p=“1234567“;fun(p,strlen(p);puts(p);(分数:2.00)A.1234567B.7654321C.1711717 D.7177171解析:评析 在于函数 fun 中,s1 为字符串 w 的起始地址,s2 为字符串的结束地址(字符/0除外),当执行循环结束循环, w=“1711717“。7.下面程序的输出是_。typedefunionlongx2;int y4;char z8;MYTYPE;MYTYPEthem;main()printf(“%d/n“,sizeof(them);

    24、(分数:2.00)A.32B.16C.8 D.24解析:评析 sizeof(x)是一个标准 C 函数,它的返回值是 x 型的数据结构占用的内存字节数,题目中定义了一个共用体,共用体变量在内存中所占的长度等于最长的成员的长度。8.以下程序int aa33=2,4,6;main()int i,*p=i+)if(i=0)aaii+1=*p+1;else +p;printf(“%d“,*p);的输出是_。(分数:2.00)A.23 B.26C.33D.36解析:评析 观察题目,可以发现,*p=(分数:1.00)A.20B.16C.14D.12 解析:评析 sizeof 函数计算已知类型所占的字节数。结

    25、构体变量所占内存长度是各成员占的内存长度之和。指针变量占 2 个字节,所以 cat 和*next 各占 2 个字节;double 型占 8 个字节,故 too 共占 12 个字节。14.下列司用于 C 语言用户标识符的一组是_。(分数:1.00)A.void define WORDB.a3_b3 _123 Car C.For _abc IFCaseD.2a DO sizeof解析:评析 C 语言规定标识符只能由字母、数字和下划线 3 种字符组成,且第一个字符必须为字母或下划线,所以排除 C 和 D。C 语言坯规定标识符不能为 C 语言的关键字,从而选项 A(void 是关键字)是错误的。15.

    26、下面程序的输出是_。main()int k=11;printf(“k=%d,k=%o,k=%x/n“,k,k,k);(分数:1.00)A.k=11,k=12,k=11B.k=11,k=13,k=13C.k=11,k=013,k=0xbD.k=11,k=13,k=B 解析:评析 在 C 语言格式字符的输出中,“%d”是以带符号的十进制形式输出整数;“%o”是以 8 进制无符号形式输出整数(不输出前导符 0):“%x”是以 16 进制无符号形式输出整数(不输出前导符 Ox)。16.下面程序main()int x=100,a=10,b=20,ok1=5,ok2=O;if(aB) if(b!=15)i

    27、f(!ok1) x=1;else if(ok2)x=10;x=1;printf(“%d/n“,x);的输出是_。(分数:1.00)A.-1 B.0C.1D.不确定的值解析:评析 第一个判断值为真,过渡到下一个判断,第二个判断为真,过渡到第三个判断如此循环,在打印输出语句的前一行,程序给变量 x 赋了值,办-1,所以,无论前期如何变化,最后的 x 值依然为-1。17.若有以下定义和语句:int a=1,2,3,4,5,6,7,8,9,10,*p=a则值为 3 的表达式是_。(分数:1.00)A.P+=2,*(p+) B.P+=2,*+pC.P+=3,*p+D.P+=2,+*p解析:评析 引用一个

    28、数组元素,可以用:(1)下标法,如 ai形式; (2)指针法,如*(a+i)或*(p+i)。数组的下标从 0 开始,值为 3 的数组元素是 a2。B、C 的内容为 a3,D 将 a2前自加,结果为 4。18.字符(char)型数据在微机内存中的存储形式是_。(分数:1.00)A.反码B.补码C.EBCDIC 码D.ASCII 码 解析:评析 将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的 ASCII 码值放到存储单元中。19.关系表中的每一横行称为一个_。(分数:1.00)A.元组 B.字段C.属性D.码解析:评析 在关系数据库中,关系模型采用二维表

    29、来表示,简称“表”。二维表是曲表框架及表元组组成。在表框架中,按行可以存放数据,每行数据称为元组。20.设有如下程序#includestdio.hmain()int*k,*j,i=100;j=for(;i6;ci=getchar(),i+);for(i=O;i6;i+)putchar(ci);printf(“/n“);如果从键盘上输入:ab回车c回车def回车则输出结果为_。(分数:1.00)A.aB.aC.ab D.abcdefb b cc c dd def解析:评析 1getchar():此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。2putchar():此函数的作用是向终

    30、端输出一个字符,也可以输出控制字符。本题在输入字符时,ab 和 c 后面的回车符分别赋给了 c2和 c4,所以,正确答案为 C。22.请选出以下程序的输出结果_。#includestdio.hsub(x,y,z)int x,y,*z;*z=y-x;main()int a,b,c;sub(10,5,for(k=0;sk;k+)switch(sk)default:v4+;case1:v1+;case3:v3+;case2:v2+;printf(“v1=%d,v2=%d,v3=%d,v4=%d/n“,v1,v2,v3,v4);(分数:1.00)A.v1=4,v2=2,v3=1,v4=1B.v1=4,

    31、v2=9,v3=3,v4=1C.v1=5,v2=8,v3=6,v4=1 D.v1=8,v2=8,v3=8,v4=8解析:评析 当 switch 后面括弧内的表达式的值与某一个 case 后面的常量的表达式的值相等时,就执行此 case 后面的语句,若所有的 case 中的常量表达式的值都没有与表达式的值匹配的,就执行 default后面的语句。28.一个良好的算法由下面的基本结构组成,但不包括_。(分数:1.00)A.顺序结构B.选择结构C.循环结构D.跳转结构 解析:评析 1966 年,Bohra 和 Jacopini 提出了以下三种结构,用这三咱基本结构作为表示一个良好算法的基本单元:1、

    32、顺序结构;2、选择结构;3、循环结构。29.结构化程序设计主要强调的是_。(分数:1.00)A.程序的规模B.程序的易读性 C.程序的执行效率D.程序的可移植性解析:评析 结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序能够进行逐步求精、程序证明和测试,以保证程序的正确性。30.以下对枚举类型名的定义中正确的是_。(分数:1.00)A.enum a=one, two,three;B.enum aone=9,two=1,three; C.enum a=“one“,“two“,“three“;D.enum a“one“, “two“,“three“;解析:评析 声明枚举类型用 enu

    33、m 开头。例如:enum weekday (sun,mon,tue,wed,thu,fri,sat);说明:1、在 C 编译中,对枚举元素按常量处理,同时可以改变他们的值。2、枚举值可以用来做判断比较。3、一个整数不能直接赋给一个枚举变量。31.算法的时间复杂度是指_。(分数:1.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数解析:评析 所谓算法的时间复杂度,是指执行算法所需要的计算工作量。32.设有以下语句,其中不是对 a 数组元素的正确引用的是:_(其中 0i10)int a10=0,1,3,4,5,6,7,8,9,*p

    34、=a;(分数:1.00)A.ap-aB.*(scanf(“%d“,p); *s=100; C.int*s,k; D.int*s,k;char*p,c; char*p,e;s=p= *s=1;解析:评析 本题的 A 和 B 犯了一个同样的错误,即指针变量 p 定义后并没有指向具体的变量,因此不能进行赋值操作。另外,在选项 D 中,s 是 int 指针变量,p 是 char 型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量 p 的值赋给整型指针变量 s。37.请读程序:#includestdio.hmain()int a;float b,c;scanf(“%2d%3f%4

    35、f“,x=(i=j?i:(j=7);printf(“/n%d,%d“,i,j);(分数:1.00)A.5,7 B.5,5C.语法错误D.7,5解析:评析 条件表达式的一般形式为:表达式 1?表达式 2:表达式 3;先求解表达式 1,若为真则求解表达式 2;若表达式 1 的值为假,则求解表达式 3。本题中先判断 i=j,不等,执行 j=7;然后执行x=7。故本题为 A。39.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。(分数:1.00)A.地址传递B.单向值传递 C.由实参传递给形参,再由形参传递给实参D.传递方式由用户指定解析:评析 C 语言规定,实参变量对形参变量的

    36、数据传递是“单向值传递”,只由实参传给形参。在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维持原值。40.以下程序#includestdio.h#includestring.hmain()char*pl=“abc“,*p2=“ABC“,str50=“xyz“;strcpy(str+2,strcat(p1,p2);printf(“%s/n“,str);的输出是_。(分数:1.00)A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC 解析:评析 strcat(p1,p2)将字符串 abcABC 放到了*p1 所指向的存储单元中;strcpy 在

    37、本题将 abcABC复制到 str+2 所指向的存储单元中,即覆盖原 str 数组中的字符 z 及其后的所有字符,故 str 的值为“xyabcABC”。41.不能把字符串“Hello!”赋给数组 b 的语句是_。(分数:1.00)A.char b10=H,e,1,l,o,!;B.chsr b10=h,e,1,1,o,!; C.char b10;strcpy(b,“Hello!“);D.chgr b10=“Hello!“;解析:评析 在 C 语言中,大写字母和小写字母被认为是两个不同的字符,因此,“hello!”和“Hello!”是两个不同的字符串。42.若 x 是整型变量,pb 是基类型为整

    38、型的指针变量,则正确的赋值表达式是_。(分数:1.00)A.pb=(分数:1.00)A.ab/b/bcB.ac C.abcD.abc解析:评析 C 语言中允许使用一种特殊形式的字符常量,就是以一个“/”开头的字符序列,这样的字符称为“转义字符”。常用的转义字符有:/n,换行;/t,水平制表;/b,退格;/r,回车。44.下面程序main()int x=32;printf(“%d/n“,x=x1);的输出是_。(分数:1.00)A.100B.160C.120D.64 解析:评析 是 C 语言中规定的左移运算符,例如,a=a2,这个语句即是将 a 的二进制数左移两位,左移一位相当于该数乘于 2,左

    39、移两位相当于该数乘以 2 的 2 次方。所以,x1=32*2=64。45.以下程序运行后,输出结果是_。main()char*d=“ab“,“cde“;printf(“%x“,d1);(分数:1.00)A.cdeB.字符 c 的 ASCII 码值C.字符 c 的地址 D.出错解析:评析 指针数组中的每一个元素都相当于一个指针变量。一维指针数组的定义形式为:类型名*数组名数组长度,在本题 main 函数中定义指针数组 d,它有两个元素,其初值分别是“ab”、“cde”的首地址。d1的值为“cde”的首地址。%x 是指以十六进制数形式输出整数。46.在软件生命周期中,能准确地确定软件系统必须做什么

    40、和必须具备哪些功能的阶段是_。(分数:1.00)A.概要设计B.详细设计C.可行性分析D.需求分析 解析:评析 需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。47.下面程序的输出是_。main()int x=3,y=6,a=0;while(x+!(y=|)a+=1;if(yx)break;printf(“x=%d,y=%d,a=%d/n“,x,y,(分数:1.00)A.;A) x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1 解析:评析 注意的是 X+中 x

    41、值的引用时,这里应当是先引用,后自加,具体执行过程如下:第一次 while 循环:条件为真,执行 a=a+1=1 此时,x 的值已为 4,判断 yx 不成立,继续执行循环;第二次 while 循环:条件为假,此时 x 的值已为 5,退出 while 循环,执行 printf。48.若有下面的说明和定义,则 sizeof(structa(分数:1.00)A.的值是_。struct aaintrl;double r2;float r3;union uuchar u15;long u22ua;mya;A) 30B.29C.24D.22 解析:评析 结构体变量所占内存长度是各成员占的内存长度之和,每个

    42、成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构件变量 aa 中,成员 r1 占 2 个字节,r2 占 8 个字节,r3 占 4 个字节,共用体 ua 占 8 个字节,所以共占用 2+8+4+8=22 个字节。49.有以下程序,程序运行后的输出结果是_。int f(int b4)int i,j,s=0;for(j=0;j4;j+)i=j;if(i2)i=3-j;s+=bij;return s;main()int a44=1,2,3,4,0,2,4,6,3,6,9,12,3,2,1,0;printf(“%d/n“f((分数:1.00)A.);A) 22B.11C.1

    43、8D.16 解析:评析 本题通过函数调用对数组 a00、a11、a22、a03进行求和,然后用 return语句返回 s 的值。50.设 a、b 和 c 都是 int 型变量,且 a=3、b=4、c=5,则下面的表达式中,值为 0 的表达式是(分数:1.00)A.a&b,B.a=bC.a|+c&b-cD.!(aB) &am 解析:评析 选项 A:a&b是字符 a 与 b 的相与,不为 0;选项 B:a=b,由题中变量赋值可知,结果为 1。选项 C:a|+c&b-c,结果为 1;选项 D:!(ab)&!c|1),运算结果为 0。二、填空题(总题数:15,分数:40.00)51.在先左后右的原贝吓,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、 【1】 遍历和后序遍历。(分数:2.00)填空项 1:_ (正确答案:中序)解析:评析 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前疗遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子


    注意事项

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




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

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

    收起
    展开