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

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

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

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

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

    1、二级 C语言笔试-309 及答案解析(总分:84.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.设有定义:int k=1,m=2:float f=7;,则以下选项中错误的表达式是( )。(分数:1.00)A.k=k=kB.-k+C.k%int(f)D.k=f=m2.下列叙述中正确的是( )。(分数:1.00)A.数据的逻辑结构与存储结构必定是一一对应的B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上 3种说法都不对3.数据库系统的核心是( )。(分数:1.

    2、00)A.数据模型B.数据库管理系统C.软件工具D.数据库4.设有定义:int a,*pa=for(i=O;iretum sum;main()int a=1,2,3,4,5,b=6,7,8,9, s=O;s=fun(a,5)+ fun(b,4); plint f(“%d/n“,s);程序执行后的输出结果是( )。(分数:1.00)A.45B.50C.60D.5519.有以下程序:main()char a=“abcdefg“,b10=“abedefg“;printf(“%d%d/n“,sizeof((分数:1.00)A.,sizeof(B.);C.8 10D.10 1020.有以下程序:main

    3、()int k=4,n=0;for(;nk;)n+;if(n%!=0)continue;k-; printf(“%d/n“,k,n);程序运行后的输出结果是( )。(分数:1.00)A.1,1B.2,2C.3,3D.4,421.有以下程序: main(int argc, char *argv)int n=0,i;for (i=1; iargc; i+) n=n*10+*argvi-0;printf(“%d/n“,n);编译连接后生成可执行文件 tt.exe。若运行时输入以下命令行tt 12 345 678程序运行后的输出结果是( )。(分数:1.00)A.12B.12345C.12345678

    4、D.13622.以下非法的赋值语句是( )。(分数:1.00)A.n=(i=2,+i)B.j+;C.+(i+1)D.x=j0;23.有以下程序:main()int i=0,s=0;doif(i%2) i+;continue;i+;s+=i;while(i7);.printf(“%d/n“,s);执行后输出的结果是( )。(分数:1.00)A.16B.12C.28D.2124.已有定义:Mt x=3,y=4,z=5;,则表达式!(x/y)+z-1B.STDtt2=1,“A“,62,2,“B“,75;C.struet tt2= 1,A,2,B;D.struct tt2=1,“A“,62.5,2,“

    5、B“,75.0;32.有以下程序:#include stdio.h#define N 5#define M N+1#define f(x) (x*M)main()int i1,i2;i1=f(2);i2=f(1+1);printf(“%d%d/n“,i1,i2);程序的运行结果是( )。(分数:1.00)A.12 12B.11 7C.11 11D.12 733.以下关于字符串的叙述中正确的是( )。(分数:1.00)A.C语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行串符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串一定比空格打头的字符串小34.以下程序

    6、的输出结果是( )。mam()char cf35=“AAAA“,“BBB“,“CC“);printf(“/“%s/“n“,cf1);(分数:1.00)A.“AAAA“B.“BBB“C.“BBBCC“D.“CC“35.下列叙述中 j下确的是( )。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上 3种说法都不对36.若要求定义具有 10个血型元素的一维数组 a,则以下定义语句中错误的是( )。(分数:1.00)A.#definme N 10 int aN;B.#define n 5 int a2*

    7、n;C.int a5+5;D.int n=10,an;37.以下能正确定义二维数组的是( )。(分数:1.00)A.int a3;B.int a3=2*3;C.int a3=;D.int a23=1,2,3,4;38.以下对结构体类型变量 td的定义中,错误的是( )。(分数:1.00)A.typedef struct aa int n;float m;AA;AA td;B.struct aa int n;float m;td;stmct aa td;C.stmct int n;float m;aa;stmct aa td;D.structint n;float m;td;39.有以下程序:#

    8、include stdio.hmain()inta=1,2,3,4,5,6,7,8,9,10,11,12,,*p=a+5,*q=NULL;*q=*(p+5);printf(“%d %d/n“,*p,*q);程序运行后的输出结果是( )。(分数:1.00)A.运行后报错B.6 6C.6 11D.5 1040.有以下程序:main()char s=“Yes/n/No“,*ps=s;puts(ps+4);*(ps+4)=0;puts(s);程序运行后的输出结果是(选项 D中的第一行是空行) ( )。(分数:1.00)A.n/No Yes/NoB./No YesC./No Yes/NoD./NoYes

    9、41.在一棵二叉树上第 5层的结点数最多是( )。(分数:1.00)A.8B.16C.32D.1542.设有定义:float a=2,b=4,h=3;以下 c语言表达式中与代数式 (分数:1.00)A.(a+B.*h/2B) (1/2)*(a+B) )*hC.(a+B)D.h/2*(a+43.以下不合法的字符常量是( )。(分数:1.00)A./018B./C./D./xcc/44.有以下程序:main()int x8=8,7,6,5,O,0,*s;s=x+3;printf(“%d/n“,s2);执行后输出结果是( )。(分数:1.00)A.随机值B.0C.5D.645.数据的存储结构是指(

    10、)。(分数:1.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示46.下列关于栈的描述中错误的是( )。(分数:1.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针47.若有以下程序段(n 所赋的是八进制数):int m=32767,n=032767;printf(“%d,%/n“,m,n);执行后输出结果是( )。(分数:1.00)A.32767,32767B.32767,032767C.32767,77777D.32767,07777748.有以下程序:ma

    11、in()int a=15,b=21,m=0;switch(a%3)case 0:m+;break;case 1:m+;switch(b%2)default: m+;case 0:m+;break;rintf(“%d/n“,m);程序运行后的输出结果是( )。(分数:1.00)A.1B.2C.3D.449.按照“后进先出”原则组织数据的数据结构是( )。(分数:1.00)A.队列B.栈C.双向链表D.二叉树50.有以下程序:#include string.hmain()char p20=a,b,c,d,q=“abc“,r=“abcde“;strcat(p,r); strcpy(p+strlen(

    12、q),q);printf(“%d/n“,strlen(p);程序运行后的输出结果是( )。(分数:1.00)A.9B.6C.11D.7二、填空题(总题数:17,分数:34.00)51.软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是 【1】 。(分数:2.00)填空项 1:_52.在两种基本测试方法中, 【2】 测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。(分数:2.00)填空项 1:_53.Jackson方法是一种面向 【3】 的结构化方法。(分数:2.00)填空项 1:_54.程序测试分为静态分析和动态测试。其中 【4】 是指不执行

    13、程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(分数:2.00)填空项 1:_55.关系数据库管理系统能实现的专门关系运算包括选择、连接和 【5】 。(分数:2.00)填空项 1:_56.以下程序运行后的输出结果是 【6】 。main()int x=0210;printf(“%X/n“,x);(分数:2.00)填空项 1:_57.若有程序:main()int i,j;scanq(“i=%d,j=%d“,printf(“i=%d,j=%d/n“,i,j);要求给 i赋 10,给 j赋 20,则应该从键盘输入 【7】 。(分数:2.00)填空项 1:_58.若有以下程序:

    14、main()int,p,a=5;if(P=a!=0)printf(“%d/n“,p);elseprintf(“%d/n“,p+2);执行后输出结果是 【8】 。(分数:2.00)填空项 1:_59.当运行以下程序时,输入 abed,程序的输出结果是: 【9】 。insert(char str)int ii=strlen(str);while(i0)str2*i=stri;str2*-1=*;i-; printf(“%s/n“,str);main()char str40;scanf(“%s“,sB) ; insert(str);(分数:2.00)填空项 1:_60.以下程序运行后的输出结果是 【

    15、10】 。main()int a44=1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18;int i=0,j=0,s=0;while(i+4)if(i=2|=4)continue;j=0;dos+=aij;j+;while(j4);Printf(“%d/n“,s);(分数:2.00)填空项 1:_61.己定义 char ch=$;int i=l,j;,执行 j=!ch (分数:2.00)填空项 1:_64.以下程序中函数 f的功能是在数组 x的 n个数(假定 n个数互不相同)小找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。#inc

    16、lude stdio.hvoid f(int x,int n)int p0,p1,i,j,t,m;i=j=x0; p0=p1=0;for(m=O;mn;m+)if(xmi) i=xm; p0=m;else if(xmj) j=xm;p1=m;)t=xp0;xp0=xn-1;xn-1=t;t=xpl;xp1= 【14】 ; 【15】 =tmain()int a10,u;for(u=0;u10;u+) scamp(“%d“,f(a,10);for(u=0;u10;u+)printf(“%d“,au);ptintf(“/n“);(分数:2.00)填空项 1:_65.以下程序运行后的输出结果是 【16

    17、】 。struct NODEint num;stmct NODE *next;main()struct NODE s3=1,/0),2,/0),3,/0),*p,*q,*r;int sum=0;s0next=s+1;s1next=s+2;s2next=s;p=sq=p-next;r=q-next;sum+=q-next-num;sum+=r-next-next-num;printf(“%d/n“,sum);(分数:2.00)填空项 1:_66.下面程序的运行结果是 【17】 。int f(int a,int n)if(n1)return a0+f(printf(“%d/n“,s);(分数:2.

    18、00)填空项 1:_67.以下程序中,函数 SumColumMin的功能足:求出 M行 N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。#define M 2#define N 4void SumColumMm(int aMN,int*sum)int i,j,k,s=0;for(i=0;iN;i+)k=0;for(j=1;jM;j+)if(akiaji)k=j;s+= 【18】 ;【19】 =s;main()int xMn)=3;,5,1,4,1,8,3,s;SumC01umMm( 【20】 );ptintf(“%d/n“,s);(分数:2.00)填空项

    19、1:_二级 C语言笔试-309 答案解析(总分:84.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.设有定义:int k=1,m=2:float f=7;,则以下选项中错误的表达式是( )。(分数:1.00)A.k=k=kB.-k+C.k%int(f) D.k=f=m解析:解析 强制类型转换运算符的格式是:(类型名)变量名所以将浮点型变量 f转换为整型应写作(int)f,故选项 C是错误的。2.下列叙述中正确的是( )。(分数:1.00)A.数据的逻辑结构与存储结构必定是一一对应的B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序

    20、设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上 3种说法都不对 解析:解析 本题考查数据结构的基本知识。数据之间的相耳关系称为逻辑结构。通常分为 4类基本逻辑结构,即集合、线性结构、树形结构、图状结构或网状结构。存储结构是逻辑结构在存储器巾的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。顺序存储结构是把数据元素存储在一块连续地址空间的内存中;链式存储结构是使用指针把相互直接关联的节点链接起来。因此,这两种存储结构都是线性的。可见,逻辑结构和存储结构不是一一对应的。因此,选项 A和选项 B的说法都是错误的。无论数据的逻

    21、辑结构是线性的还是非线性的,只能选择顺序存储结构或链式存储结构来实现存储。程序设计语言中,数组是内存中一段连续的地址空间,可看作是顺序存储结构。可以用数组来实现树型逻辑结构的存储,比如二叉树。因此,选项 C的说法是错误的。3.数据库系统的核心是( )。(分数:1.00)A.数据模型B.数据库管理系统 C.软件工具D.数据库解析:解析 数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,因此数据库管理系统是数据库系统的核心。4.设有定义:int a,*pa=for(i=O;iretum sum;main()int a=1,2,3,4,5,b=6,7,

    22、8,9, s=O;s=fun(a,5)+ fun(b,4); plint f(“%d/n“,s);程序执行后的输出结果是( )。(分数:1.00)A.45B.50C.60 D.55解析:解析 本题中 fun()函数通过一个 for循环来累计形参数组 x的前 n个元素之和。在主函数中,第 1次调用 fun(a,5)时,返回的值应该是数组 a的前 5个元素的和,而第 2次调用 fun(b,4)时,返回的值除了本次累计的数组 b前 4个元素的和外,还要加上上次累计的值。所以,最后输的 s的值为数组 a所有元素之和的两倍加上数组 b所有元素之和,结果是 60。故应该选择 C。19.有以下程序:main

    23、()char a=“abcdefg“,b10=“abedefg“;printf(“%d%d/n“,sizeof((分数:1.00)A.,sizeof(B.);C.8 10 D.10 10解析:解析 本题中定义两个字符型数组,其中 a省略了长度,定义了 b的长度为 10,并赋初值分别为“abcdefg”和“abcdefg”。所以 a的长度为赋值给它的字符串的字符个数 7加上一个结束转义字符,即a的长度为 7+1为 8。定义时 b的长度定义为 10,故 b的长度为 lo,因此最后通过函数 sizeom求得的数组 a和数组 b的长度分别为 8和 10,所以,4 个选项中选项 c符合题意。20.有以下

    24、程序:main()int k=4,n=0;for(;nk;)n+;if(n%!=0)continue;k-; printf(“%d/n“,k,n);程序运行后的输出结果是( )。(分数:1.00)A.1,1B.2,2C.3,3 D.4,4解析:解析 在本程序的 for循环中,用到了一个 continue语句,continue 语句的作用是停止本次循环,即不执行循环体内 continue语句后面的其他语句,继续下次循环的条件判断。首先在 for循环巾 n自加 1(值变为 1),然后执行后面的 if语句,由于 if语句后面括号的表达式(1%3!=0)的值为真,程序执行 continue语句,回到

    25、for循环的开始部分,并且判断 for循环中的条件表达式(nk)为真,重复执行“n+”;”语句,如此循环直到 n=3时,if 语句判定条件中表达式(3%3!=0)的值为假,程序执行 if语句后面的“k-”语句,此时 k的值为 3,不满足“nk”,退出 for循环。故最后的 k和 n的值为 3和3,选项 C符合题意。21.有以下程序: main(int argc, char *argv)int n=0,i;for (i=1; iargc; i+) n=n*10+*argvi-0;printf(“%d/n“,n);编译连接后生成可执行文件 tt.exe。若运行时输入以下命令行tt 12 345 6

    26、78程序运行后的输出结果是( )。(分数:1.00)A.12B.12345C.12345678D.136 解析:解析 因为题目给出的命令行为 tt 12 345 678,所以 main函数的两个参数分别为 4和 “tt“,“12“,“345“,“678“)。程序中,通过一个 for循环,遍历了后面的三个参数字符串,每次将 n自乘 10,然后累加*argvi-0,即第 i个参数字符串的首字符减去0。一个数宁字符减去,O 字符,即可得到这个数字字符的实际数值,因此三次循环的结果是让 n的值变为 136,故本题应该选择 D。22.以下非法的赋值语句是( )。(分数:1.00)A.n=(i=2,+i)

    27、B.j+;C.+(i+1) D.x=j0;解析:解析 选项 A为复合表达式,首先计算(i=2,+i)的值,然后赋值给 n,故选项 A正确;选项 B为简单自加运算,故选项 B正确;选项 c在表达式+(i+1);中,(i+1)不是变量,该表达式的值为常量,而在什运算中,其运算对象必须为变量,故选项 C错误,选项 D中为复合赋值表达式,正确。所以应当选择 C。23.有以下程序:main()int i=0,s=0;doif(i%2) i+;continue;i+;s+=i;while(i7);.printf(“%d/n“,s);执行后输出的结果是( )。(分数:1.00)A.16 B.12C.28D.

    28、21解析:24.已有定义:Mt x=3,y=4,z=5;,则表达式!(x/y)+z-1 B.STDtt2=1,“A“,62,2,“B“,75;C.struet tt2= 1,A,2,B;D.struct tt2=1,“A“,62.5,2,“B“,75.0;解析:解析 本题定义了一个结构体类型并白定义类型名为 STD,用户自定义类型后,就可以利用它进行变量与数组的定义。定义的方法,与 C语言中其它类型的定义完全一样,定义结构型数组并赋初值时,每个元素用一对“”和“厂括起来,字符型元素用”括起来,选项 A、B、C、D 中只有选项 A符合条件。所以,A 选项为所选。32.有以下程序:#include

    29、 stdio.h#define N 5#define M N+1#define f(x) (x*M)main()int i1,i2;i1=f(2);i2=f(1+1);printf(“%d%d/n“,i1,i2);程序的运行结果是( )。(分数:1.00)A.12 12B.11 7 C.11 11D.12 7解析:解析 题目中第 1条要替换的语句 i1=f(2);展开后是 i1=(2*M);再展开为 i1=(2*N+1);最后展开为 i1=(2*5/1),结果使 i1=11。而第 2条语句 i2=f(1+1);展开后为 i2=(1+1*M);再展开为 i2= (1+1*N+1);最后展开为 i

    30、2=(1+1*5+1),结果使 i2=7。故应该选择 B。33.以下关于字符串的叙述中正确的是( )。(分数:1.00)A.C语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行串符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串一定比空格打头的字符串小 解析:解析 C 语言中只有字符串常量而没有字符串变量,故选项 A不正确:字符串比较大小是以第 1个不相同字符的大小为标准的,跟长度没有关系,故选项 B不正确:字符串比较大小除了使用库函数stremp()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小,因为字符串在表达式中相当于 coost ch

    31、ar*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。所以选项 C也不正确。空串的长度为 0,而以空格打头的字符串的长度至少为 1,故选项 D正确,本题应该选择 D。34.以下程序的输出结果是( )。mam()char cf35=“AAAA“,“BBB“,“CC“);printf(“/“%s/“n“,cf1);(分数:1.00)A.“AAAA“B.“BBB“ C.“BBBCC“D.“CC“解析:解析 二维字符数组可以看成由若干个一维字符数组组成,每行是一个一维字符数组。本题首先定义了一个数组 ch35,并给它们按行赋初值,即相当于给 eh0赋

    32、值“AAAA”,给 ch1赋值“BBB”,给 eh2赋值“BBB”,最后输出转义字符“叮”、ch1和转义字符“/”,因此输出为“BBB”。所以,4 个选项中 B为所选。35.下列叙述中 j下确的是( )。(分数:1.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上 3种说法都不对解析:解析 程序执行的实际计算工作量与不仅与程序的控制结构有一定的关系,与处理的数据量有关,而民还与数据的存储结构密切相关。所以,选项 A正确,选项 B和选项 C错误。36.若要求定义具有 10个血型元素的一维数组 a,则以下定义

    33、语句中错误的是( )。(分数:1.00)A.#definme N 10 int aN;B.#define n 5 int a2*n;C.int a5+5;D.int n=10,an; 解析:解析 C 语言规定,在定义数组时数组名后的方括号中必须是常量表达式,不能包含变量。因此,选项 D中用变量 n来定义数组的大小是错误的。故应该选择 D。37.以下能正确定义二维数组的是( )。(分数:1.00)A.int a3;B.int a3=2*3; C.int a3=;D.int a23=1,2,3,4;解析:解析 选项 A中省略了第一维的长度,在 C语言中是不允许的,故选项 A错误;选项 C也是省略第

    34、一维的长度;选项 D中定义了一个 2行 3列的数组,而在赋值的时候却赋了一个 3行的值给它,显然不正确,故选项 D错误,所以,4 个选项中选项 B符合题意。38.以下对结构体类型变量 td的定义中,错误的是( )。(分数:1.00)A.typedef struct aa int n;float m;AA;AA td;B.struct aa int n;float m;td;stmct aa td;C.stmct int n;float m;aa;stmct aa td; D.structint n;float m;td;解析:解析 选项 A使用 typedef语句给结构体 8a定义了一个新的名

    35、称 AA,因此使用 AA直接声明结构体变量 td是正确的。选项 B中,前面一句是定义结构体同时声明了结构体变量 td,后一句是使用结构体名 aa声明结构体变量 td,都是正确的写法。选项 C的第 1条语句和选项 D使用的是无名结构体直接声明变量的语法,是正确的,但是选项 C的第 2条语句使用已经声明的结构体变量 aa来声明 td 是错误的。故应该选择 c。39.有以下程序:#include stdio.hmain()inta=1,2,3,4,5,6,7,8,9,10,11,12,,*p=a+5,*q=NULL;*q=*(p+5);printf(“%d %d/n“,*p,*q);程序运行后的输出

    36、结果是( )。(分数:1.00)A.运行后报错 B.6 6C.6 11D.5 10解析:解析 本题中首先定义了一个维数组 a并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为 12。数组名 a代表数组的首地址,所以*p=a+5 语句使得 p指向数组的第 6个元素,而在程序中定义了一个指针 q并让它指向空,实际上程序并没有在内存中为指针 q开辟存储空间,这样给 q赋值不允许的,故该程序运行后报错。所以,4 个选项中选项 A符合题意。40.有以下程序:main()char s=“Yes/n/No“,*ps=s;puts(ps+4);*(ps+4)=0;puts(

    37、s);程序运行后的输出结果是(选项 D中的第一行是空行) ( )。(分数:1.00)A.n/No Yes/NoB./No Yes C./No Yes/NoD./NoYes解析:解析 主函数中定义了一个字符数组 s并赋初值,一个字符串指针变量 ps并让它指向 s。程序中p+4的地址为数组第 5个元素的地址,而调用 put(str adr)函数时,将从 str adr这一地址开始,依次输出存储单元中的字符,遇到第一个“/0”时结束输出,并自动输出一个换行符 ad。r 所以 put(p+4)将输出 n/No,put(s)将从 s第一个元素开始输出到第 3个元素结束(因为执行*(p+4)=0 语句后

    38、s中的第 5个元素的值为 0,而 s中的第 4个元素为“/”,puts 将遇到“/0”,结束输出),即输出 yes。所以,4 个选项中选项 B符合题意。41.在一棵二叉树上第 5层的结点数最多是( )。(分数:1.00)A.8B.16 C.32D.15解析:解析 根据二叉树的性质,在二叉树的第 K层上,最多有 2k-1个结点。所以,第五层的结点数最多为 16。42.设有定义:float a=2,b=4,h=3;以下 c语言表达式中与代数式 (分数:1.00)A.(a+B.*h/2B) (1/2)*(a+B) )*h C.(a+B)D.h/2*(a+解析:解析 选项 B中由于 1和 2都是整型,

    39、其 1/2的运算结果为 0,故整个表达式的值为 0,所以它的结果和题目中要求的代数式的讨算结果不相符,所以,4 个选项中选项 B符合题意。43.以下不合法的字符常量是( )。(分数:1.00)A./018 B./C./D./xcc/解析:解析 在选项 A中,“/”后跟着三个数字,是表示一个 ASCII码值等于这三位数字所组成的八进制数数值的字符,但是八进制数只能是由 0-7这八个数字表示,而选项 A中出现了数字 8所以是不合法的。选项 B是表示一个双引号的转义字符表示方法;选项 C表示的是一个反斜杆;选项 D表示一个 ASCII值为十六进制值“的字符。故应该选择 A。44.有以下程序:main

    40、()int x8=8,7,6,5,O,0,*s;s=x+3;printf(“%d/n“,s2);执行后输出结果是( )。(分数:1.00)A.随机值B.0 C.5D.6解析:解析 通过赋值语句“s=x+3”,使指针变量 s指向数组元素 x3,输出语句巾的 spl等价于*(s+2),即 x5值为 0。所以,B 选项为所选。45.数据的存储结构是指( )。(分数:1.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示 解析:解析 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构,所以选项 D正确。4

    41、6.下列关于栈的描述中错误的是( )。(分数:1.00)A.栈是先进后出的线性表B.栈只能顺序存储 C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针解析:解析 本题考核栈的基本概念,我们叫可以通过排除法来确定本题的答案。栈是限止在一端进行插入与删除的线性表,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照”先进后出”或”后进先出”的原则组织数据的,这便是栈的记忆作用,所以选项 A和选项 C正确。对栈进行插入和删除操作时,栈顶位置是动态变化的,栈底指针不变,选项 D正确。由此可见,选项 B错误。47.若有以下程序段(n 所赋的是八进制数):int m=32767,n=032767;printf(“%d,%/n“,m,n);执行后输出结果是( )。(分数:1.00)A.32767,32767 B.32767,032767C.32767,77777D.32767,077777解析:解析 程序在定义时,以十进制形式为 m赋初值,以八进制的形式为 n赋初值。输出的时候 m以十进制形式输出,n 以八进制形式输出,因此输出的结果为 32767和 32767。所以,A 选项为所选。48.有以下程序:main()int a=15,b=21,m=0;switch(a%3)


    注意事项

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




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

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

    收起
    展开