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

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

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

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

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

    1、二级 C 语言笔试-298 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.有以下程序段:main()int a=5,*b,*c;c=b=b=语句后,表达式*c 的值是_。(分数:2.00)A.变量 a 的地址B.变量 b 中的地址C.变量 a 中的值D.变量 b 的地址2.有如下程序main()int x=3;doprintf(“%d“,x-);while(!x);该程序的执行结果是_。(分数:2.00)A.321B.3C.不输出任何内容D.陷入死循环3.有如下程序段:#include stdio.h#define Max(a,b) ab?

    2、a:bmain()int a=5,b=6,c=4,d;d=c+Max(a,b) ;printf(“%d“,d) ;其输出结果为_。(分数:2.00)A.10B.5C.6D.编译错误4.已经定义 ch 为字符型变量,以下赋值表达式中错误的是_。(分数:2.00)A.ch=/B.ch=62+3C.ch=NULLD.ch=/xaa5.运行以下程序后,如果从键盘上输入 65 14回车,则输出结果为_。main()int m,n;printf(“Enter m,n:“);scanf(“%d%d“,while(m!=n)while(mn)m-=n;while(nm)n-=m;printf(“m=%d/n“

    3、,m);(分数:2.00)A.m=3B.m=2C.m=1D.m=06.算法一般都可以用_控制结构组合而成。(分数:2.00)A.循环、分支、递归B.顺序、循环、嵌套C.循环、递归、选择D.顺序、选择、循环7.执行语句 for(i=1;i+4;);后变量 i 的值是_。(分数:2.00)A.3B.4C.5D.不定8.检查软件产品是否符合需求定义的过程称为_。(分数:2.00)A.确认测试B.集成测试C.验证测试D.验收测试9.下列工具中为需求分析常用工具的是_。(分数:2.00)A.PADB.PFDC.N-SD.DFD10.有如下程序main()char s5=“abc“,“de“,“fgh“;

    4、printf(“%c“,s26);其输出为_。(分数:2.00)A.不确定B.编译错误C.gD.输出 null 字符11.以下叙述不正确的是_。(分数:2.00)A.分号是 C 语言的必要组成部分B.C 程序的注释可以写在句的后面C.函数是 C 程序的基本单位D.主函数的名字不一定用 main 表示12.下列函数定义中,会出现编译错误的是_。(分数:2.00)A.max(int x, int y, int *z)*z=xy ? x:y; z=xy ? x:y;B.int max(int x,y)int z;return z;C.max(int x,int y)int z;z=xy? x:y;r

    5、eturn(z);D.int max(int x, int y)return xy ? x:y;13.下述关于 C 语言文件的操作的结论中,正确的是_。(分数:2.00)A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序无要求D.对文件操作前必须先测文件是否存在,然后再打开文件14.有如下程序:main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;i+)for(j=0;j=i;j+)s+=aij;printf(“%d/n“,s);该程序的输出结果是_。(分数:2.00)A.18B.19C.20D.2115.有以下函数定义:void f

    6、un(int n,double x)若以下选项中的变量都已正确定义并赋值,则对函数 fun 正确调用语句是_。(分数:2.00)A.fun(int y, double m);B.k=fun(10,12.5);C.fun(x,n);D.void fun(n,x);16.有以下程序:int*f(int*x,int*y)if(*y)return x;else return y;main()int a=7,b=8,*p,*q,*r;p=q=r=f(p,q);printf(“%d,%d,%d/n“,*p,*q,*r);程序运行后输出结果是_。(分数:2.00)A.7,8,8B.7,8,7C.8,7,7D

    7、.8,7,817.将 E-R 图转换到关系模式时,实体与联系都可以表示成_。(分数:2.00)A.属性B.关系C.键D.域18.有如下程序:#define n 2#define m N+1#define NUM 2*m+1main()int i;for(i=1;i=NUM;i+)printf(“%d/n“,i);该程序中的 for 循环执行的次数是_。(分数:2.00)A.5B.6C.7D.819.有如下程序main()int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+;case 2: a+;b+;printf(“a=%d,b=%d/n“,a,b) ;

    8、该程序的输出结果是_。(分数:2.00)A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=220.在关系数据库中,用来表示实体之间联系的是_。(分数:2.00)A.树结构B.网结构C.线性表D.二维表21.有如下程序:long fib(int n)if(n2) return(fib(n-1)+fib(n-2);else return(2);main()printf(“%ld/n“,fib(3); 该程序的输出结果是_。(分数:2.00)A.2B.4C.6D.822.下面一组中都是 C 语言关键字的是_。(分数:2.00)A.double Int forB.main whil

    9、e gotoC.volatile break staticD.malloc sizeof new23.有如下说明:int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为 9 的表达式是_。(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+824.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送_。(分数:2.00)A.调用语句B.命令C.口令D.消息25.有如下程序main()int y=3,x=3,z=1;printf(“%d%d/n“,(+x,y+),z+2);运行该程序的输出结果是_。(分数:2.00)A.3 4B.4 2C.4 3D

    10、.3 326.索引属于_。(分数:2.00)A.模式B.内模式C.外模式D.概念模式27.若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是_。(分数:2.00)A.a=1B.+i;C.a=a+=5;D.a=int(i);28.若已建立如下图所示的单向链表结构:(分数:2.00)A.p=p-next;s-next=p;p-next=s;B.p=p-next;s-next=p-next;p-next=s;C.s-next=NULL;p=p-next;p-next=S;D.p=(*p).next;(*S)next=(*p).next;(*p).next=s;29.若有以下定义:int t

    11、32;,能正确表示 t 数组元素地址的表达式是_。(分数:2.00)A.printf(“%d/n“,t);(分数:2.00)A.5B.6C.7D.834.下面程序的输出结果是_。main()char str10,c=a;int i=0;for(;i5;i+)Stri=c+;printf(“%s“,str);(分数:2.00)A.abcdeB.aC.不确定D.bcdef35.C 语言运算对象必须是整型的运算符是_。(分数:2.00)A.%=B./C.=D.=二、填空题(总题数:14,分数:28.00)36.在运算过程中,能够使空表与非空表的运算统一的结构是 【1】 。(分数:2.00)填空项 1

    12、:_37.软件工程研究的内容主要包括: 【2】 技术和软件工程管理。(分数:2.00)填空项 1:_38.与结构化需求分析方法相对应的是 【3】 方法。(分数:2.00)填空项 1:_39.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、 【4】 和自定义完整性。(分数:2.00)填空项 1:_40.数据模型按不同的应用层次分为三种类型,它们是 【5】 数据模型、逻辑数据模型和物理数据模型。(分数:2.00)填空项 1:_41.若有定义 int a=10,b=9,c=8;,接着顺序执行下列语句,变量 b 中的值是 【6】 。c=(a-=(b-5);c=(a%11)+(b=3);(分

    13、数:2.00)填空项 1:_42.函数 pi 的功能是根据以下近似公式求 值:(*)/6=1+1/(2*2)+1/(3*3)+.+1(n*n)现在请你在下面的函数中填空,完成求 的功能。#include “math.h“double s=0.0; long i;for(i=1;i=n;i+)s=s+ 【7】 ;return(sqrt(6*S);(分数:2.00)填空项 1:_43.若输入字符串:abcde (分数:2.00)填空项 1:_44.若有以下定义,则不移动指针 p,且通过指针 p 引用值为 98 的数组元素的表达式是 【9】 。int w10=23,54,10,33,47,98,72

    14、,80,61, *p=w;(分数:2.00)填空项 1:_45.设在主函数中有以下定义和函数调用语句,且 fun 函数为 void 类型;请写出 fun 函数的首部 【10】 。要求形参名为 b。main()double 1022;int n;fun(s);(分数:2.00)填空项 1:_46.有以下程序:int f(int n)if(n=1)return 1;else return f(n-1)+1; main()int i,j=0;for(i=1;i3;i+)j+=f(i);printf(“%d/n“,j);程序运行后的输出结果是 【11】 。(分数:2.00)填空项 1:_47.以下程序

    15、的输出结果是 【12】 。void fun()static int a=0;a+=2; printf(“%d“,A) ;main()int cc;for(cc=1;CC4;CC+)fun();printf(“/n“);(分数:2.00)填空项 1:_48.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于 copy 命令),假定文件在当前目录下。请补全程序。#includestdio.hvoid main(int argc,char*argv)FILE*f1,*f2;if(argc 【13】 )printf(“parameter error!/n“)

    16、;exit(0);n=fopen(argv1,“r“);f2=fopen(argv2,“w“);while( 【14】 )fputc(fgetc(f1),f2);fclose(f1);fclose(f2);(分数:2.00)填空项 1:_49.以下程序的输出结果是 【15】 。#define MAX(x,y) (x)(y)?(x)L:(y)main()int a=5,b=2,C=3,d=3,t;t=MAX(a+b,c+D) *10;printf(“%d/n“,t);(分数:2.00)填空项 1:_二级 C 语言笔试-298 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:

    17、35,分数:70.00)1.有以下程序段:main()int a=5,*b,*c;c=b=b=语句后,表达式*c 的值是_。(分数:2.00)A.变量 a 的地址B.变量 b 中的地址C.变量 a 中的值 D.变量 b 的地址解析:评析 指针变量是用来存放地址的。doprintf(“%d“,x-);while(!x);该程序的执行结果是_。(分数:2.00)A.321B.3 C.不输出任何内容D.陷入死循环解析:评析 本题 x 赋初值为 3,当执行 printf(“%d“,x-);时,由于 x-的作用是先运算 x,再将 x 的值减 1,所以,printf 输出的 x 值为 3,等输出后,x 的

    18、值减 1 变为 2,继续执行,判断条件!x 为假,循环只被执行一次。3.有如下程序段:#include stdio.h#define Max(a,b) ab?a:bmain()int a=5,b=6,c=4,d;d=c+Max(a,b) ;printf(“%d“,d) ;其输出结果为_。(分数:2.00)A.10B.5 C.6D.编译错误解析:评析 在 C 语言中,宏定义是直接替换的,所以在 c+ab?a:b 这个条件表达式中,c+ab 为真,所以用 a 的值作为整个表达式的值,而 a 的值为 5,所以整个表达式的值为 5。4.已经定义 ch 为字符型变量,以下赋值表达式中错误的是_。(分数:

    19、2.00)A.ch=/ B.ch=62+3C.ch=NULLD.ch=/xaa解析:评析 反斜杠字符“/”赋给字符,应该写成 ch=/,所以 A 是错误的。5.运行以下程序后,如果从键盘上输入 65 14回车,则输出结果为_。main()int m,n;printf(“Enter m,n:“);scanf(“%d%d“,while(m!=n)while(mn)m-=n;while(nm)n-=m;printf(“m=%d/n“,m);(分数:2.00)A.m=3B.m=2C.m=1 D.m=0解析:评析 分析程序可知,该程序实现的功能是对数 m,n 求其最大公约数。在本题中 m 与 n 的值分

    20、别为 65 与 14,其最大公约数为 1,故其输出结果为 m=1。6.算法一般都可以用_控制结构组合而成。(分数:2.00)A.循环、分支、递归B.顺序、循环、嵌套C.循环、递归、选择D.顺序、选择、循环 解析:评析 算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。7.执行语句 for(i=1;i+4;);后变量 i 的值是_。(分数:2.00)A.3B.4C.5 D.不定解析:评析 for 语句的一般形式为;for(表达式 1;表达式 2;表达式 3)语句,循环结束的

    21、条件是i+4,所以当 i+=4 时,循环结束,此时变量 i 的值为 5。8.检查软件产品是否符合需求定义的过程称为_。(分数:2.00)A.确认测试 B.集成测试C.验证测试D.验收测试解析:评析 确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中的确定的各种需求,以及软件配置是否完全、正确。9.下列工具中为需求分析常用工具的是_。(分数:2.00)A.PADB.PFDC.N-SD.DFD 解析:评析 常见的需求分析方法有:结构化分析方法和面向刘京的分析方法。结构化分析的常用工具有:数据流图(DFD)、数据字典(DD)、判定树和判定表等。10.有如下程序main()char

    22、 s5=“abc“,“de“,“fgh“;printf(“%c“,s26);其输出为_。(分数:2.00)A.不确定 B.编译错误C.gD.输出 null 字符解析:评析 由于 s26表示字符串已超出了数组 s 的表示范围,在 C 中不会对数组越界进行检查,当数组越界时,会得到一个不确定的值。11.以下叙述不正确的是_。(分数:2.00)A.分号是 C 语言的必要组成部分B.C 程序的注释可以写在句的后面C.函数是 C 程序的基本单位D.主函数的名字不一定用 main 表示 解析:评析 C 语言的程序是由主函数 main()开始运行,由主函数来调用其他函数,所以 D 是错误的。12.下列函数定

    23、义中,会出现编译错误的是_。(分数:2.00)A.max(int x, int y, int *z)*z=xy ? x:y; z=xy ? x:y;B.int max(int x,y)int z;return z; C.max(int x,int y)int z;z=xy? x:y;return(z);D.int max(int x, int y)return xy ? x:y;解析:评析 在 C 语言中,不可以在函数的参数声明列表中用一个类型名指定多个参数。故选项 B 是错误的。其正确的表示方式应为:int max(int x,int y)或int max (: 1int x,y;)13.下

    24、述关于 C 语言文件的操作的结论中,正确的是_。(分数:2.00)A.对文件操作必须先关闭文件B.对文件操作必须先打开文件 C.对文件操作顺序无要求D.对文件操作前必须先测文件是否存在,然后再打开文件解析:评析 在 C 中对文件操作必须先打开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行打开操作时,同时会执行文件的检查文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式打开时,文件不存在,将会自动创建文件,因此在 C 中打开文件前不必对其检查文件是否存在,故答案为 B。14.有如下程序:main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;

    25、i+)for(j=0;j=i;j+)s+=aij;printf(“%d/n“,s);该程序的输出结果是_。(分数:2.00)A.18 B.19C.20D.21解析:评析 题中的外循环只执行了 2 次:第 1 次:a10=3,a11=4,所以 s=7;第 2 次:a20=5,a21=6,a22=0,所以 s=7+5+6+0=18。15.有以下函数定义:void fun(int n,double x)若以下选项中的变量都已正确定义并赋值,则对函数 fun 正确调用语句是_。(分数:2.00)A.fun(int y, double m);B.k=fun(10,12.5);C.fun(x,n); D.

    26、void fun(n,x);解析:评析 函数调用的一般形式为:函数名(实参表列);,实参与形参的个数应相等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为 void 的函数,不能作为赋值表达式的组成部分,所以选 C。16.有以下程序:int*f(int*x,int*y)if(*y)return x;else return y;main()int a=7,b=8,*p,*q,*r;p=q=r=f(p,q);printf(“%d,%d,%d/n“,*p,*q,*r);程序运行后输出结果是_。(分数:2.00)A.7,8,8B.7,8,7 C.8,7,7D.8,7,8解析:评析 f 函

    27、数的功能是返回地址为 x,y 的两个数中值较的数的地址,本题输出结果是 7,8,7。17.将 E-R 图转换到关系模式时,实体与联系都可以表示成_。(分数:2.00)A.属性B.关系 C.键D.域解析:评析 关系是由若干个不同的元组所组成,因此关系可视为元组的集合,将 E-R 图转换到关系模式时,实体与联系都可以表示成关系。18.有如下程序:#define n 2#define m N+1#define NUM 2*m+1main()int i;for(i=1;i=NUM;i+)printf(“%d/n“,i);该程序中的 for 循环执行的次数是_。(分数:2.00)A.5B.6 C.7D.

    28、8解析:评析 在 C 语言中,宏定义在编译时将被直接替换,所以 NUM 最后会被替换成 2*N+1+1,即2*2+1+1,值为 6。因此, for 循环执行的次数为 6。19.有如下程序main()int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+;case 2: a+;b+;printf(“a=%d,b=%d/n“,a,b) ;该程序的输出结果是_。(分数:2.00)A.a=2,b=1 B.a=1,b=1C.a=1,b=0D.a=2,b=2解析:评析 在这个 switch 语句中,因为 x 的值为 1,所以执行 case 1:后面的 a+,这样 a=

    29、1。但又由于其下没有 break 语句,所以其后面的语句“a+;b+”也将被执行,这样一来,a=2,b=1。20.在关系数据库中,用来表示实体之间联系的是_。(分数:2.00)A.树结构B.网结构C.线性表D.二维表 解析:评析 在关系数据库中,用二维表来表示实体之间联系。21.有如下程序:long fib(int n)if(n2) return(fib(n-1)+fib(n-2);else return(2);main()printf(“%ld/n“,fib(3); 该程序的输出结果是_。(分数:2.00)A.2B.4 C.6D.8解析:评析 函数 fib 内部有两个递归调用,当 n=3 时

    30、,fib(n-1)返回 2,fib(n-2)出返回 2,所以fib(n-1)+fib(n-2)的值为 4。22.下面一组中都是 C 语言关键字的是_。(分数:2.00)A.double Int forB.main while gotoC.volatile break static D.malloc sizeof new解析:评析 C 语言中的关键字有 32 个关键字(参见 C 语言教程),本题中只有 C 符合题意。23.有如下说明:int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为 9 的表达式是_。(分数:2.00)A.*p+9B.*(p+8) C.*p+=9D.p

    31、+8解析:评析 p 是指针,p+8 是地址值,D 是错的:*p 是 p 的目标变量,即 a0,值为 1,所以*p+9 的值是 10,而*p+=9 值是重新给 a0赋了值(1+9);所以 A 和 C 也是错的。p+8 是地址值,指向 a8,那么*(9+8)的值就是 a8的值,即 9。24.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送_。(分数:2.00)A.调用语句B.命令C.口令D.消息 解析:评析 面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一

    32、处理或回答某一要求的信息,它统一了数据流和控制流。25.有如下程序main()int y=3,x=3,z=1;printf(“%d%d/n“,(+x,y+),z+2);运行该程序的输出结果是_。(分数:2.00)A.3 4B.4 2C.4 3D.3 3 解析:评析 逗号表达式(+x,y+)的值应该是 y+的值,由于 y+是先引用后自增,所以 y+的值是3。26.索引属于_。(分数:2.00)A.模式B.内模式 C.外模式D.概念模式解析:评析 内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、

    33、索引、集簇及 hash 等存取方式与存取路径。27.若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是_。(分数:2.00)A.a=1B.+i; C.a=a+=5;D.a=int(i);解析:评析 选项 D 显然是错的,而选项 A 没有分号结束,不是 C 语句;a+=5 违反了赋值表达式左侧必须为一个变量(不能是常量或表达式)的规定。28.若已建立如下图所示的单向链表结构:(分数:2.00)A.p=p-next;s-next=p;p-next=s; B.p=p-next;s-next=p-next;p-next=s;C.s-next=NULL;p=p-next;p-next=S;D.

    34、p=(*p).next;(*S)next=(*p).next;(*p).next=s;解析:评析 在答案 A 中:p=p-next;s-next=p;p-next=s;s 的确已插到了链表的末尾,但它的 next 却并没有为 NULL,而是指向了它的直接前趋 p,这样它就不是一个单向链表(单向链表最后一个结点的 next 指针一定是一个 NULL)。29.若有以下定义:int t32;,能正确表示 t 数组元素地址的表达式是_。(分数:2.00)A.printf(“%d/n“,t);(分数:2.00)A.5B.6 C.7D.8解析:评析 在 main 函数中定义了一个 struct abc 类

    35、型的数组,同时分别利用12,3及4,5,6对数组中两个元素进行初始化。在该结构体,依次对其中的 a,b,c 三个变量进行初始化。故 s0.a=1,s1.b=5,所以本题输出为 6。34.下面程序的输出结果是_。main()char str10,c=a;int i=0;for(;i5;i+)Stri=c+;printf(“%s“,str);(分数:2.00)A.abcdeB.aC.不确定 D.bcdef解析:评析 字符串少一个结束标志,所以输出的结果不确定。35.C 语言运算对象必须是整型的运算符是_。(分数:2.00)A.%= B./C.=D.=解析:评析 在 C 语言中,模运算(即取余运算)

    36、的运算对象必须是整型数据(常量、变量或表达式)。二、填空题(总题数:14,分数:28.00)36.在运算过程中,能够使空表与非空表的运算统一的结构是 【1】 。(分数:2.00)填空项 1:_ (正确答案:循环链表)解析:评析 在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。循环表中最后一个结点的指针不是空,而是指向表头结点。37.软件工程研究的内容主要包括: 【2】 技术和软件工程管理。(分数:2.00)填空项

    37、1:_ (正确答案:软件开发)解析:评析 基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。38.与结构化需求分析方法相对应的是 【3】 方法。(分数:2.00)填空项 1:_ (正确答案:结构化设计)解析:评析 与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程,它决定用哪些方法

    38、把哪些部分联系起来,才能解决好某个具体且有清楚定义的问题。39.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、 【4】 和自定义完整性。(分数:2.00)填空项 1:_ (正确答案:参照完整性)解析:评析 关系模型允许定义三类数据约束,它门是实体完整性、参照完整性以及用户定义的完整性约束,其中前两种完整性约束由关系数据库系统自动支持。实体完整性约束要求关系的主键中属性值不能为空,这是数据库完整性的最基本要求,因为主键是惟一决定元组的,如为空则其惟一性就成为不可能的了。参照完整性约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组:即在关系中的外键要么是所关联关系中实际存在

    39、的 2 组要么是空值。自定义完整性是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中数据的语义要求。40.数据模型按不同的应用层次分为三种类型,它们是 【5】 数据模型、逻辑数据模型和物理数据模型。(分数:2.00)填空项 1:_ (正确答案:概念)解析:评析 数据模型按不同的应用层次分为三种类型,它们是概念数据模型、逻辑数据模型和物理数据模型。概念数据模型简称概念模型,是一种面向客观世界、面向用户的模型;它与具体的数据库管理系统无关。41.若有定义 int a=10,b=9,c=8;,接着顺序执行下列语句,变量 b 中的值是 【6】 。c=(a-=(b-5);c=(a%11

    40、)+(b=3);(分数:2.00)填空项 1:_ (正确答案:3)解析:评析 这里:b-5=4,a-=4 之后 a 的值为 6,并把它赋给 c。此时 b 的值并未被改变。在第 2 个表达式中,也只有赋值表达式 b=3 改变了 b 的值。所以两行语句执行完毕,b 的值应该为 3。42.函数 pi 的功能是根据以下近似公式求 值:(*)/6=1+1/(2*2)+1/(3*3)+.+1(n*n)现在请你在下面的函数中填空,完成求 的功能。#include “math.h“double s=0.0; long i;for(i=1;i=n;i+)s=s+ 【7】 ;return(sqrt(6*S);(分

    41、数:2.00)填空项 1:_ (正确答案:0/(i*i)或(double)1/(i*i))解析:评析 表达式 1+1/(2*2)+1/(3*3)+.+1(n*n)可写为 1/(1*1)+1/(2*2)+1/(3*3)+.+1(n*n)n即:1(ii)i=1 对应的 C 语言的表达式 s=s+1.0/(i*i)。注:必须要写成 1.0 的形式,否则 1/(i,i)返回值为其值截尾取整,即恒为 0。43.若输入字符串:abcde (分数:2.00)填空项 1:_ (正确答案:0)解析:评析 函数 getchar()是从键盘得用户输入的一个字符。用户输入的第 1 个字符 a,不管后面输入的是什么 c

    42、h 的值都是a,因此条件(ch=getchar()=e为假,这个循环不会被执行。44.若有以下定义,则不移动指针 p,且通过指针 p 引用值为 98 的数组元素的表达式是 【9】 。int w10=23,54,10,33,47,98,72,80,61, *p=w;(分数:2.00)填空项 1:_ (正确答案:p5或*(p+5))解析:评析 98 是数组 w 的第 5 个元素(最开始的为第 0 个),而通过*p=w 已经将 p 指向了数组 w,要想不移动指针 p 而引用 98,可以有以下两种写法:p5、*(p+5)。45.设在主函数中有以下定义和函数调用语句,且 fun 函数为 void 类型;

    43、请写出 fun 函数的首部 【10】 。要求形参名为 b。main()double 1022;int n;fun(s);(分数:2.00)填空项 1:_ (正确答案:void fun(double b1022))解析:评析 本题答案:void fun(double b1022)。46.有以下程序:int f(int n)if(n=1)return 1;else return f(n-1)+1; main()int i,j=0;for(i=1;i3;i+)j+=f(i);printf(“%d/n“,j);程序运行后的输出结果是 【11】 。(分数:2.00)填空项 1:_ (正确答案:3)解析:

    44、评析 i=1 时,f(1)=1,j=j+f(1)=0+1=1;i=2 时,f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此时循环结束,程序运行后的输出结果是 3。47.以下程序的输出结果是 【12】 。void fun()static int a=0;a+=2; printf(“%d“,A) ;main()int cc;for(cc=1;CC4;CC+)fun();printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:246)解析:评析 循环 for(cc=1;cc4;cc+)被执行了 3 次。在函数 fun 中,由于 a 是 static 型变量,所以函

    45、数第 1 次调用后,a2;第 2 次调用后,a=4;第 3 次调用后,a=6。48.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于 copy 命令),假定文件在当前目录下。请补全程序。#includestdio.hvoid main(int argc,char*argv)FILE*f1,*f2;if(argc 【13】 )printf(“parameter error!/n“);exit(0);n=fopen(argv1,“r“);f2=fopen(argv2,“w“);while( 【14】 )fputc(fgetc(f1),f2);fclose(f1);fclose(f2);(分数:2.00)填空项 1:_ (正确答案:13 314 !feof(f1))解析:评析 要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故 argc 的值至少为 3,因此第一空应填 3。while 循环中语句 fputc(fgetc(f1),(f2);的目的是将 f1 中的字符依次读出并写入到 f2 对应的文件中去,直至文件 f1 结束为止,因此第二空为!feof(f1)。49.以下程序的输出结果是 【15】 。#define MAX(x,y) (x)(y)?(x)L:(y)main()int a=


    注意事项

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




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

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

    收起
    展开