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

    【计算机类职业资格】全国计算机等级考试二级C语言真题2011年9月及答案解析.doc

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

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

    【计算机类职业资格】全国计算机等级考试二级C语言真题2011年9月及答案解析.doc

    1、全国计算机等级考试二级 C 语言真题 2011 年 9 月及答案解析(总分:100.00,做题时间:90 分钟)一、选择题((1)-(10)、(21)-(4(总题数:40,分数:70.00)1.下列叙述中正确的是_。 (分数:2.00)A.算法就是程序B.设计算法时只需考虑数据结构的设计C.设计算法时只需考虑结果的可靠性D.以上三种说法都不对2.下列关于线性链表的叙述中,正确的是_。 (分数:2.00)A.各个数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各个数据结点的存储顺序与逻辑顺序或以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.以上

    2、三种说法都不对3.下列关于二叉树的叙述中,正确的是_。 (分数:2.00)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点是度为 1 的结点数的两倍4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。 (分数:2.00)A.学生成绩管理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统5.某系统总体结构图如下所示: (分数:2.00)A.7B.6C.3D.26.程序测试的任务是_。 (分数:2.00)A.设计测试用例B.验证程序的正确性C.发现程序中的

    3、错误D.诊断和改正程序中的错误7.下列关于数据库设计的叙述中,正确的是_。 (分数:2.00)A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典8.数据库系统的三级模式不包括_。 (分数:2.00)A.概念模式B.内模式C.外模式D.数据模式9.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.差C.交D.并10.下列选项中属于面向对象设计方法主要特征的是_。 (分数:2.00)A.继承B.自顶向下C.模块化D.逐步求精11.以下叙述中错误的是_。 (分数:1.00)A.C 语言编写的函数源程序,其文件名

    4、后缀可以是 CB.C 语言编写的函数都可以作为一个独立的源程序文件C.C 语言编写的每个函数都可以进行独立的编译并执行D.一个 C 语言程序只能有一个主函数12.以下选项中关于程序模块化的叙述错误的是_。 (分数:1.00)A.把程序分成若干相对独立的模块,便于编码和调试B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序13.以下选项中关于 C 语言常量的叙述错误的是_。 (分数:1.00)A.所谓常量,是指在程序运行过程中,其值不能被改变

    5、的量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.经常被使用的变量可以定义成常量14.若有定义语句:int a=10; double b=3.14;,则表达式A+a+b 值的类型是_。 (分数:1.00)A.charB.intC.doubleD.float15.若有定义语句:int x=12,y=8,z;,在其后执行语句 z=0.9+x/y;,则 z 的值为_。 (分数:1.00)A.1.9B.1C.2D.2.416.若有定义:int a,b;,通过语句 scanf(“%d;%d“,,能把整数 3 赋给 a,5 赋给 b 的输入数据是_。 (分数

    6、:1.00)A.3 5B.3,5C.3;5D.3517.i 若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1k2) if(- -a) b+; else if(a=0) b+=2; else b+=3; printf(“%d/n“,b); 程序运行后的输出结果是 (分数:1.00)A.0B.1C.2D.319.下列条件语句中,输出结果与其他语句不同的是_。 (分数:1.00)A.if(a) printf(“%d/n“,x); else printf(“%d/n“,y);B.if(a=0) printf(“%d/n“,y); else printf(“%d/n“,x);C.i

    7、f(a!=0) printf(“%d/n“,x); else printf(“%d/n“,y);D.if(a=0) printf(“%d/n“,x); else printf(“%d/n“,y);20.有以下程序段 #include main() int a=7; while(a- -); printf(“%d/n“,a); 程序运行后的输出结果是_。 (分数:1.00)A.-1B.0C.1D.721.以下不能输出字符 A 的语句是_。(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为97) (分数:2.00)A.printf(“%c/n“,a-32);B.prin

    8、tf(“%d/n“,A);C.printf(“%c/n“,65);D.printf(“%c/n“,B-1);22.有以下程序(注:字符 a 的 ASCII 码值为 97) #include main() char *s=“abc“; do printf(“%d“,*s%10); +s; while(*s); 程序运行后的输出结果是_。 (分数:2.00)A.abcB.789C.7890D.97989923.若有定义语句:double a, *p= 以下叙述错误的是_。 (分数:2.00)A.定义语句:*号是一个简址运算符B.定义语句:*号是一个说明符C.定义语句中的 p 只能存放 double

    9、 类型变量的地址D.定义语句中,*p= main() double a=0; int i; for(i=0;iA.503B.401C.500D.14025.若有定义语句:int year=2009, *p=,以下不能使变量 year 中的值增至 2010 的语句是_。 (分数:2.00)A.*p+=1;B.(*p)+;C.+(*p);D.*p+;26.以下定义数组的语句错误的是_。 (分数:2.00)A.int num=1,2,3,4,5,6;B.int num3=1,2,3,4,5,6;C.int num24=1,2,3,4,5,6;D.int num4=1,2,3,4,5,6;27.有以下

    10、程序 #include void fun(int *p) printf(“%d/n“,p5); main() int a10=1,2,3,4,5,6,7,8,9,10; fun( 程序运行后的输出结果是_。 (分数:2.00)A.5B.6C.8D.928.有以下程序 #include #define N 4 void fun(int aN, int b) int i; for(i=0;iA.-12,-3,0.0,B.-3,-3,1,3C.0,1,2,3D.-3,-3,-3,-329.有以下函数 int fun(char *x, char *y) int n=0; while(*x=*y) y+

    11、; n+;return n; 函数的功能是_。 (分数:2.00)A.查找 x 和 y 所指字符串中有否有/0B.统计 x 和 y 所指字符串中最前面连续相同的字符个数C.将 y 所指字符串中赋给 x 所指的存储空间D.统计 x 和 y 所指字符串中相同的字符个数30.若有定义语句:char *s1=“OK“, *s2=“ok“;,以下选项中,能够输出“OK“的语句是_。 (分数:2.00)A.if(strcmp(s1,s2)=0) puts(s1);B.if(strcmp(s1,s2)!=0) puts(s2);C.if(strcmp(s1,s2)=1) puts(s1);D.if(strc

    12、mp(s1,s2)!=0) puts(s1);31.以下程序的主函数中调用了在其前面定义的 fun 函数 #include main() double a15, k; k=fun(a); 则以下选项中错误的 fun 函数的首部是_。 (分数:2.00)A.double fun( double a15)B.double fun( double *a)C.double fun( double a)D.double fun( double a)32.有以下程序 #include #include main() char a510= “china“,“beijing“,“you“,“tiananmen

    13、“,“welcome“; int i,j; char t10; for(i=0;i0) strcpy(t,ai); strcpy(ai,aj); strcpy(aj,t); puts(a3); 程序运行后的输出结果是_。 (分数:2.00)A.beijingB.chinaC.welcomeD.tiananmen33.有以下程序 #include int f(int m) static int n=0; n+=m; return n; main() int n=0; printf(“%d,“,f (+n); printf(“%d/n“,f (n+); 程序运行后的输出结果是_。 (分数:2.00

    14、)A.1,2B.1,1C.2,3D.3,334.有以下程序 #include main() char ch35= “AAAA“,“BBB“,“CC“; printf(“%s/n“,ch1); 程序运行后的输出结果是_。 (分数:2.00)A.AAAAB.CCC.BBBCCD.BBB35.有以下程序 #include #include void fun(char *w, int m) char s, *p1, *p2; p1=w; p2=w+m-1; while(p1A.654321B.116611C.161616D.12345636.有以下程序 #include #include typede

    15、f struct char name9; char sex; int score2; STU; STU f(STU a) STU b=“Zhao“,m,85,90; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;iA.Zhao,m,85,90,Qian,f,95,92B.Zhao,m,85,90, Zhao,m,85,90C.Qian,f,95,92, Qian,f,95,92D.Qian,f,95,92, Zhao,m,85,9037.有以下程序 #include main() struct node int n; struct nod

    16、e *next; *p; struct node x3=2, x+1,4, x+2,6, NULL; p=x; printf(“%d,“,p-n); printf(“%d,“,p-next-n); 程序运行后的输出结果是_。 (分数:2.00)A.2,3B.2,4C.3,4D.4,638.有以下程序 #include main() int a=2,b; b=a3;i-) j=i; printf(“%d%d/n“,i,j); (分数:2.00)填空项 1:_49.以下程序运行后输出结果是 【9】 。 #include main1 int i,n=0,0,0,0,0; for(i=1;i0) fu

    17、n(x/5); printf(“/%dn“,x); main1 fun(11); printf(“/n“); (分数:2.00)填空项 1:_52.有以下程序 #include main1 int c3=0, k ,i; while(k=getchar2!=/n) ck-A+; for(i=0;i,则输出结果为 【12】 。 (分数:2.00)填空项 1:_53.以下程序运行后的输出结果是 【13】 。 #include main1 int n2 , i, j; for(i=0;i填空项 1:_以下程序调用 fun 函数把 x 中的值插入到 a 数组下标为 k 的数组元素中。主函数中,n 存放

    18、 a 数组中数据的个数。请填空。 #include void fun( int s, int *n, int k, int x) int i; for(i=*n-1; i=k; i- -) s 【14】 =si; sk=x; *n=*n+ 【15】 ; main1 int a20=1,2,3,4,5,6,7,8,9,10,11, i, x=0, k=6, n=11; fun(a, for(i=0;i填空项 1:_填空项 1:_全国计算机等级考试二级 C 语言真题 2011 年 9 月答案解析(总分:100.00,做题时间:90 分钟)一、选择题((1)-(10)、(21)-(4(总题数:40,

    19、分数:70.00)1.下列叙述中正确的是_。 (分数:2.00)A.算法就是程序B.设计算法时只需考虑数据结构的设计C.设计算法时只需考虑结果的可靠性D.以上三种说法都不对 解析:【解析】“软件的主体是程序,程序的核心是算法”,算法是解决问题的方法与步骤,采用某种程序设计语言对问题的对象和解题的步骤进行描述的是程序。它与数据结构、运算结果的状态无关。2.下列关于线性链表的叙述中,正确的是_。 (分数:2.00)A.各个数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各个数据结点的存储顺序与逻辑顺序或以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素

    20、 D.以上三种说法都不对解析:【解析】线性数据结构有线性表、栈和队列等 ,而线性链表是数据的存储结构,它全面地反映数据元素自身的信息和数据元素之间的关系,即每个元素存储有链接到下一个元素的信息,所以插入与删除时毋须移动表中元素。3.下列关于二叉树的叙述中,正确的是_。 (分数:2.00)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点是度为 1 的结点数的两倍解析:【解析】二叉树的结构定义: 叶子结点是指终端结点;非叶子结点是指分支结点; 二叉树的深度是指高度;若是完全二叉树,可由性质 4 公式计算而

    21、得; 结点的度:二叉树结点的度数指该结点所含子树的个数;度为 2 就是有 2 个孩子结点的结点; 二叉树的四大性质: 【性质 1】:在二叉树的第 i 层上至多有*个结点。 【性质 2】:深度为 k 的二叉树上至多含*个结点。 【性质 3】:对任何一棵二叉树T,若它含有 n0 个叶子结点(0 度节点)、度为 2 的结点数为 n2,则必有:n0=n2+1。 【性质 4】:具有n 个结点的完全二叉树的深度为 ?log2(n)? +1 。例:一棵完全二叉树共有 64 个结点 ,深度为log2(64)+1=7 答案根据:叶子结点是指终端结点,当然比度为 2 的结点多一个 4.软件按功能可以分为应用软件、

    22、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。 (分数:2.00)A.学生成绩管理系统 B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统解析:【解析】系统软件包括操作系统(UNIX)、程序编译程序、数据库管理系统等三大大部份,所以学生成绩管理系统是应用软件。5.某系统总体结构图如下所示: (分数:2.00)A.7B.6C.3 D.2解析:【解析】这里的深度是指软件系统总体结构层次。6.程序测试的任务是_。 (分数:2.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误 解析:【解析】程序测试包括模块测试、系统测试和验收测试三大部份。

    23、模块测试是分别测试系统中每一模块功能是否满足设计要求;系统测试是确定子系统模块在联调时,能否协调地完成预定的功能;验收测试是为系统投入前实际使用的证明。题目所问的主要是指模块测试。7.下列关于数据库设计的叙述中,正确的是_。 (分数:2.00)A.在需求分析阶段建立数据字典 B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典解析:【解析】根据“数据库系统概论”一书称,数据字典在“数据分析”阶段中由收集到的数据着手编制数据字典。另据南大出版社“大学计算机信息技术教程”(第三版)称,数据库设计分“系统规划”、“系统分析”、“系统设计(由概念设计、逻辑设计和物

    24、理设计组成)”和“系统实施”组成。 编制数据流图(DFD)和数据字典(DD)是属于系统分析的任务。 8.数据库系统的三级模式不包括_。 (分数:2.00)A.概念模式B.内模式C.外模式D.数据模式 解析:【解析】数据库系统的三级模式结构是指数据库系统是由模式、外模式和内模式三级构成的。其中模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。外模式也称用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式

    25、的描述,是数据在数据库内部的表示方式,所以正确答案为 D。9.有三个关系 R、S 和 T 如下: (分数:2.00)A.自然连接B.差 C.交D.并解析:【解析】关系运算中传统运算有并、差、交和笛卡尔积;专门关系运算有选择、投影连接和除法运算。根据题意 R 关系减去 S 得 T 关系为差运算,选 B。10.下列选项中属于面向对象设计方法主要特征的是_。 (分数:2.00)A.继承 B.自顶向下C.模块化D.逐步求精解析:【解析】开发信息系统有结构化生命周期法(自顶向下、逐层分解、逐步求精分析系统和分模块实施)、原型法、面向对象开发设计方法(突出的是需求分析、可维护性和可靠性有突破,主要特征是继

    26、承性)和 CASE 法(Computer Aided Software Engineering)。11.以下叙述中错误的是_。 (分数:1.00)A.C 语言编写的函数源程序,其文件名后缀可以是 CB.C 语言编写的函数都可以作为一个独立的源程序文件C.C 语言编写的每个函数都可以进行独立的编译并执行 D.一个 C 语言程序只能有一个主函数解析:【解析】C 语言编写的某些函数是依附于主调函数而存在的,它不能独立编译并执行的。12.以下选项中关于程序模块化的叙述错误的是_。 (分数:1.00)A.把程序分成若干相对独立的模块,便于编码和调试B.把程序分成若干相对独立、功能单一的模块,可便于重复使

    27、用这些模块C.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序解析:【解析】根据开发软件的生命周期法原则,是采用可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序,来完成程序模块化设计的。13.以下选项中关于 C 语言常量的叙述错误的是_。 (分数:1.00)A.所谓常量,是指在程序运行过程中,其值不能被改变的量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.经常被使用的变量可以定义成常量 解析:【解析】常量是指在程序中不变的量,既然程序中已定

    28、义为变量,则不可能再定义为常量。14.若有定义语句:int a=10; double b=3.14;,则表达式A+a+b 值的类型是_。 (分数:1.00)A.charB.intC.double D.float解析: 【解析】根据表达式运算规则,所有数据在混合运算中,一律向上一级换算原则。本题最高级是双精度,所以最后表达式类型应是 double。15.若有定义语句:int x=12,y=8,z;,在其后执行语句 z=0.9+x/y;,则 z 的值为_。 (分数:1.00)A.1.9B.1 C.2D.2.4解析:【解析】如第(14) 解析所述,C 语言对于表达式运算 0.9+x/y 后的值是 1

    29、.9,但给整型量 z 值,则去掉小数为 1。16.若有定义:int a,b;,通过语句 scanf(“%d;%d“,,能把整数 3 赋给 a,5 赋给 b 的输入数据是_。 (分数:1.00)A.3 5B.3,5C.3;5 D.35解析:【解析】根据清华大学出版社“C 程序设计”P84“使用 scanf 函数时应注意的问题(2)规定:如果在格式控制字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符”,所以选 C。17.i 若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1k2) if(- -a) b+; else if(a=0) b+=

    30、2; else b+=3; printf(“%d/n“,b); 程序运行后的输出结果是 (分数:1.00)A.0B.1C.2 D.3解析:【解析】此题非常简单,变量 a 运算前自减 1,变为 0,所以只执行了 b+=2 语句就输出为 2。19.下列条件语句中,输出结果与其他语句不同的是_。 (分数:1.00)A.if(a) printf(“%d/n“,x); else printf(“%d/n“,y);B.if(a=0) printf(“%d/n“,y); else printf(“%d/n“,x);C.if(a!=0) printf(“%d/n“,x); else printf(“%d/n“

    31、,y);D.if(a=0) printf(“%d/n“,x); else printf(“%d/n“,y); 解析:【解析】当 a 为 0 时 A)逻辑判断值为 0,输出 y;B) 逻辑判断值为 1,输出 y;C) 逻辑判断值为0,输出 y;D) 逻辑判断值 a=0 为 1,输出 x20.有以下程序段 #include main() int a=7; while(a- -); printf(“%d/n“,a); 程序运行后的输出结果是_。 (分数:1.00)A.-1 B.0C.1D.7解析:【解析】while(a-);是一句无执行句的循环语句,且变量 a 是变为 0 后跳出循环,并且又自减 1

    32、 为-1。21.以下不能输出字符 A 的语句是_。(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为97) (分数:2.00)A.printf(“%c/n“,a-32);B.printf(“%d/n“,A); C.printf(“%c/n“,65);D.printf(“%c/n“,B-1);解析:【解析】输出字符取决于输出语句的格式说明符,显然 B)输出是数值 65。22.有以下程序(注:字符 a 的 ASCII 码值为 97) #include main() char *s=“abc“; do printf(“%d“,*s%10); +s; while(*s);

    33、程序运行后的输出结果是_。 (分数:2.00)A.abcB.789 C.7890D.979899解析: 【解析】本题是考查考生能否区别“指针变量”与“指针变量的值”。前者是地址;后者是指针变量所指地址内的量。此题指针变量 s 指向“字符串数组”的起始地址,*s 是 s 指向的字符,例如,刚开始时*s 值为字符“a”,即数值 97,+s 后指针移向“b”,即数值 98,当 s 移向字符 c 后面一个字符为”/0”,则其值为 0,退出循环结束。23.若有定义语句:double a, *p= 以下叙述错误的是_。 (分数:2.00)A.定义语句:*号是一个简址运算符 B.定义语句:*号是一个说明符C

    34、.定义语句中的 p 只能存放 double 类型变量的地址D.定义语句中,*p= main() double a=0; int i; for(i=0;iA.503 B.401C.500D.140解析:【解析】主函数循环为 1.0+101.0+401.0=503.0,即 a 显示为 50325.若有定义语句:int year=2009, *p=,以下不能使变量 year 中的值增至 2010 的语句是_。 (分数:2.00)A.*p+=1;B.(*p)+;C.+(*p);D.*p+; 解析:【解析】此题测试考生对运算符优先级判别和表达式运算法则中结合方向的判断: 根据运算符优先级规定,*是 2

    35、级,+=j 是 14 级;+是 2 级。 A) *p+=1; 等效于 year=year+1 B)(*p)+等效于 year+ (“C 语言程序设计”P224) C)+(*p) 等效于 year+ D) *p+; 由于两个运算符处于同一级别,且结合方向自右而左,等效于*(p+),这样 p 不指向 year 了,year 维持不变,p 指向 year 下一个地址的值,上机调试下一个地址的值为 1245120。 26.以下定义数组的语句错误的是_。 (分数:2.00)A.int num=1,2,3,4,5,6;B.int num3=1,2,3,4,5,6;C.int num24=1,2,3,4,5

    36、,6; D.int num4=1,2,3,4,5,6;解析:【解析】首先是测试数组下标的定义正确性,应该都是正确的;其次测试对数组赋值的正确性: A)赋值后一维数组下标自动取 6; B) 赋值后二维数组下标取为 3 行 3 列1,2,0,3,4,0,5,6,0; C) 二维数组是二行四列,但赋了三行四列的值,调试时出现如下:error C2078: too many initializers D) 赋值后二维数组下标取为 2 行 4 列:1,2,3,4,5,6,0,0是正确的。 27.有以下程序 #include void fun(int *p) printf(“%d/n“,p5); main

    37、() int a10=1,2,3,4,5,6,7,8,9,10; fun( 程序运行后的输出结果是_。 (分数:2.00)A.5B.6C.8D.9 解析:【解析】本题考核考核学生掌握指针变量与数组之间关系,主函数将 a3地址传给函数 fun,此时函数 fun 中的*p 接收的是以首地址值为 4 的数组 p7,故 p5数组元素值应是 9。28.有以下程序 #include #define N 4 void fun(int aN, int b) int i; for(i=0;iA.-12,-3,0.0,B.-3,-3,1,3 C.0,1,2,3D.-3,-3,-3,-3解析:【解析】由于函数调用采

    38、用数组名为首地址共享方式,只要判别 b0、b3即可确定答案:由函数 fun 中 b0=x00-x03=1-4=-3 确定答案只有 A 和 D;其次计算 b3=x33-x30=16-13=3。由此可知答案是 B。29.有以下函数 int fun(char *x, char *y) int n=0; while(*x=*y) y+; n+;return n; 函数的功能是_。 (分数:2.00)A.查找 x 和 y 所指字符串中有否有/0B.统计 x 和 y 所指字符串中最前面连续相同的字符个数 C.将 y 所指字符串中赋给 x 所指的存储空间D.统计 x 和 y 所指字符串中相同的字符个数解析:

    39、【解析】循环执行只有在 x 和 y 所指字符串中最前面连续相同,并统计其个数(存放在变量 n 中),一旦不满足连续相同,则终止循环而函数返回相同个数 n。30.若有定义语句:char *s1=“OK“, *s2=“ok“;,以下选项中,能够输出“OK“的语句是_。 (分数:2.00)A.if(strcmp(s1,s2)=0) puts(s1);B.if(strcmp(s1,s2)!=0) puts(s2);C.if(strcmp(s1,s2)=1) puts(s1);D.if(strcmp(s1,s2)!=0) puts(s1); 解析:【解析】字符串比较库函数 strcmp 要求两个参数是地

    40、址和设置头文件#include 。返回值:s1s2为“1“。且“OK“s2或 s131.以下程序的主函数中调用了在其前面定义的 fun 函数 #include main() double a15, k; k=fun(a); 则以下选项中错误的 fun 函数的首部是_。 (分数:2.00)A.double fun( double a15)B.double fun( double *a)C.double fun( double a)D.double fun( double a) 解析: 【解析】函数调用时要求数组地址共享,达到数据返回的目的。要求主函数实参用数组名;被调函数的形参用 A) doub

    41、le a15、B) double *a、C) double a均为合法。D)形式参数是只进不出变量a。32.有以下程序 #include #include main() char a510= “china“,“beijing“,“you“,“tiananmen“,“welcome“; int i,j; char t10; for(i=0;i0) strcpy(t,ai); strcpy(ai,aj); strcpy(aj,t); puts(a3); 程序运行后的输出结果是_。 (分数:2.00)A.beijingB.chinaC.welcome D.tiananmen解析:【解析】这是一个字符

    42、串升序排列程序,最后排成次序为: beijing china tiananmen welcome you 并存放在字符串数组 a5中。 puts(a3);输出为 C)welcome 33.有以下程序 #include int f(int m) static int n=0; n+=m; return n; main() int n=0; printf(“%d,“,f (+n); printf(“%d/n“,f (n+); 程序运行后的输出结果是_。 (分数:2.00)A.1,2 B.1,1C.2,3D.3,3解析:【解析】所有函数中变量初始值为随机数,但含有 static 的变量属于静态变量,

    43、初始值为 0,且主调函数调用后不释放,再次调用时能在上次调用后值的基础上,再次参加运算。所以主函数第一次调用显示“1,”,第二次调用,由于 n+,所以显示为 1+1=2。34.有以下程序 #include main() char ch35= “AAAA“,“BBB“,“CC“; printf(“%s/n“,ch1); 程序运行后的输出结果是_。 (分数:2.00)A.AAAAB.CCC.BBBCCD.BBB 解析:【解析】对于字符串二维数组,每一个字符串,均可用一维数组来表示。即 ch0表示 AAAA;ch1表示 BBB;ch2表示 CC。35.有以下程序 #include #include

    44、void fun(char *w, int m) char s, *p1, *p2; p1=w; p2=w+m-1; while(p1A.654321 B.116611C.161616D.123456解析:【解析】被调函数是一个将共享地址的字符串变量倒序重排后返回的通用函数。第一次 s=*p1; *p1=*p2; *p2=s;是:w 数组,亦即 a 数组变为 623451.36.有以下程序 #include #include typedef struct char name9; char sex; int score2; STU; STU f(STU a) STU b=“Zhao“,m,85,

    45、90; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;iA.Zhao,m,85,90,Qian,f,95,92 B.Zhao,m,85,90, Zhao,m,85,90C.Qian,f,95,92, Qian,f,95,92D.Qian,f,95,92, Zhao,m,85,90解析:【解析】STU 是用户用 typedef 自定义的结构体类型。调用函数是将“Zhao“,m,85,90返回给自定义结构体变量 d;但是自定义结构体变量 c(“Qian“,f,95,92, d;)并未改变。37.有以下程序 #include main() struct node int n; struct node *next; *p; struct node x3=2, x+1,4, x+2,6, NULL; p=x; printf(“%d,“,p-n); printf(“%d,“,p-next-n); 程序运行后的输出结果是_。 (分数:2.00)A.2,3B.2,4 C.3,4D.4,6解析:【解析】这是一道简单的链表数值显示。相当于:2, b=a3;i-) j=i; pr


    注意事项

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




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

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

    收起
    展开