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

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

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

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

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

    1、二级 C语言笔试-441 及答案解析(总分:100.50,做题时间:90 分钟)一、选择题(总题数:40,分数:67.00)1.在计算机中,算法是指_。A) 查询方法 B) 加工方法C) 解题方案的准确而完整的描述 D) 排序方法(分数:2.00)A.B.C.D.2.下列描述中正确的是( )A) 程序就是软件B) 软件开发不受计算机系统的限制C) 软件既是逻辑实体,又是物理实体D) 软件是程序、数据和相关文档的集合(分数:2.00)A.B.C.D.3.以下叙述正确的是_。A) 构成 C程序的基本单位是函数B) 可以在函数中定义另一个函数C) main()函数必须放在其他函数之前D) 所有被调用

    2、的函数一定要在调用之前进行定义(分数:2.00)A.B.C.D.4.下列不属于软件工程的 3个要素的是( )。A) 工具 B) 过程 C) 方法 D) 环境(分数:2.00)A.B.C.D.5.在下列选项中,不是一个算法一般应该具有的基本特征的是( )。A) 确定性 B) 可行性 C) 无穷性 D) 拥有足够的情报(分数:1.00)A.B.C.D.6.将 E-R图转换到关系模式时,实体与联系都可以表示成( )。 A) 属性 B) 关系 C) 记录 D) 码(分数:2.00)A.B.C.D.7.在数据库设计中,将 E-R图转换为关系模式的过程属于( )。A) 需求分析阶段 B) 逻辑设计阶段C)

    3、 概念设计阶段 D) 物理设计阶段(分数:2.00)A.B.C.D.8.下列说法不正确的是( )。A) C语言程序是以函数为基本单位的,整个程序由函数组成B) C语言程序的一条语句可以写在不同的行上C) C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D) C语言程序的每个语句都以分号结束(分数:2.00)A.B.C.D.9.以下选项中,能用作用户标识符的是A) void B) 8_8C) _0_ D) unsigned(分数:1.00)A.B.C.D.10.请选出以下程序的输出结果_。#includestdio.hsub(x,y,z)int x,y,*z;*z=y-x;

    4、main()int a,b,c;sub(10,5,sub(7,a,sub(a,b,printf(“%d,%d,%d/n“,a,b,c);A) 5,2,3 B) -5,-12,-7 C) -5,-12,-17 D) 5,-2,-7(分数:2.00)A.B.C.D.11.以下定义语句中正确的是( )。A) char a=A b=B; B) float a=b=10.0;C) int a=10, *b= /*x的初值为十六进制数*/printf(“%u/n“,x);程序运行后的输出结果是( )。A) -1 B) 65535 C) 32767 D) 0xFFFF(分数:1.00)A.B.C.D.若有定

    5、义语句“double x,t,*px,*py;”执行了“px=for(i=1;i5;i+)if(i%2) printf(“*“);else continue;printf(“#“);printf(“$/n“);A) *#*#*#$ B) #*#*#*$ C) *#*#$ D) #*#*$(分数:1.00)A.B.C.D.18.下列程序的输出结果是( )。main()chara7=“a0/0a0/0“;int i,j;i=sizeof(a);j=strlen(a);printf(“%d %d/n“,i,j);A) 2 2 B) 7 6 C) 7 2 D) 6 2(分数:2.00)A.B.C.D.

    6、19.在下列选项中,没有构成死循环的是A) int i=100; B) for(:);while(1)i=i%100+1:if(i100)break;C) int k=10000;dok+;while(k10000);D) int s=36:while(s)-s;(分数:1.00)A.B.C.D.20.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。A) 地址传递B) 单向值传递C) 由实参传绐形,再由形参传回实参D) 传递方式由用户指定(分数:2.00)A.B.C.D.21.有以下程序:main()int i,j,x=0;for(i=0;i2;i+)x+;for(j=0

    7、;j=3;j+)if(j*2)continue;x+;x+;printf(“x=%d/n”,x);程序执行后的输出结果是_。A) x=4 B) x=8 C) x=6 D) x=12(分数:2.00)A.B.C.D.22.下列程序的输出结果是( )。main()int i=1 j=2,k=3;if(i+=1A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 3(分数:2.00)A.B.C.D.23.下列程序的运行结果是( )。#includestdio.hmain()int a=2,b=3,C=4;if(aB) if(b0) C=0;else C+=1;printf(“%d/n“,) ;

    8、A) 2 B) 3 C) 5 D) 4(分数:2.00)A.B.C.D.24.以下选项中值为 1的表达式是_。(A) 1-0(B) 1-/0(C) 1-0(D) /0-0(分数:2.00)A.B.C.D.有以下程序:#includestdio.hmain()char c1,c2;c1=A+8-4;c2=A+8-5;printf(“%c,%d/n“,c1,c2);已知字母 A的 ASCII码为 65,程序运行后的输出结果是( )。AE,68 BD,69 CE,D D输出无定值(分数:2.00)A.B.C.D.A.B.C.D.25.设有程序段int k=10;while(k=0)k=k-1;则下面

    9、描述中正确的是A) while循环执行 10次 B) 循环是无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次(分数:2.00)A.B.C.D.26.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。(A) 函数的实参和其对应的形参共占同一存储单元(B) 形参只是形式上的存在,不会占用具体存储单元(C) 同名的实参和形参占同一存储单元(D) 函数的形参和实参分别占用不同的存储单元(分数:2.00)A.B.C.D.27.有以下程序#includestdio.hdouble f(double x);main()double a=0;int i;for(i=0;i30

    10、;i+=10)a+=f(double)i);printf(“%5.0f/n“,a);double f(double x)return x*x+1;程序运行后的输出结果是( )。A)503 B)401 C)500 D)1404(分数:2.00)A.B.C.D.28.以下能正确定义二维数组的是( )。A) int a3; B) int a3 =2*3;C) int a3 =; D) int a23 =1,2,3,4:(分数:1.00)A.B.C.D.29.下列选项中,能正确定义数组的语句是A) int num02008; B) int num;C) int N=2008;int numN;D) #

    11、define N 2008int numN;(分数:2.00)A.B.C.D.30.有以下程序段:struct stint x; int * y; * pt;int a = 1,2 ,b = 3,4;struct st c2 = 10,a,20,b;pt=c;以下选项中表达式的值为 11的是( )。A) *pt-y B) pt-x C) +pt-x D) (pt+)-x(分数:1.00)A.B.C.D.31.若要求从键盘读入含有空格字符的字符串,应使用函数A) getc() B) gets() C) getehar() D) scanf()(分数:1.00)A.B.C.D.32.有下列程序:m

    12、ain()int k=5,n=0;doswitch(k)case 1: case 3:n+=1;k-;break;default:n=0;k-;case2: case 4;n+=2;k-;break;printf(“%d“,n);while(k0i=10;j=15;k=10*MIN(i,j);printf(“%d/n“,k);A) 15 B) 100 C) 10 D) 150(分数:1.00)A.B.C.D.34.执行下列程序后,输出的结果是( )。#includestdio.h#define S(X) X*Xvoid main()int a=9,k=3,m=2;a/=S(k+m)/S(k+m

    13、);printf(“%d“,a);A) 1 B) 4 C) 9 D) 0(分数:2.00)A.B.C.D.35.有下列程序:#include stdio.hmain()FILE *fp; int a10=1,2,3,i,n;fp=fopen(“d1.dat“,“w“);for(i=0;i3;i+) fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=open(“d1.dat“,“r“);fscanf(fp,“%d“,fclose(fp);prinff(“%d/n“,n);程序的运行结果是( )。A) 12300 B) 123 C) 1 D) 3

    14、21(分数:2.00)A.B.C.D.36.有以下程序:#includestdio.hint a=1;int fun(int c)static int a=2;c=c+1;return(a+)+c;main()int i,k=0;for(i=0;i2;i+)int a=3;k+=f(a);k+=a;printf(“%d/n“,k);程序的运行结果是_。A) 14 B) 15 C) 16 D) 17(分数:2.00)A.B.C.D.37.设有下列说明语句:strcut strint x; float y; char z;st;则下列的叙述中不正确的是( )。A) struct是结构体类型的关键字

    15、 B) st 是结构体类型名C) x、y、x 都是结构体成员名 D) struct str 是结构体类型名(分数:2.00)A.B.C.D.38.以下程序中函数 scmp的功能是返回形参指针 s1和 s2所指字符串中较小字符串的首地址。#include stdio.h#include string.hchar *scmp(char*s1,char*s2)if(strcmp(s1,s2)0) return(s1);else return(s2);main()int i; char string20,str320;for(i=0;i3;i+) gets(stri);strcpy(string,sc

    16、mp(str0,str1); /*库函数 strcpy对字符串进行复制*/strcpy(string,scmp(string,str2);printf(“%s/n“,string);若运行时依次输入:abcd、abba 和 abc三个字符串,则输出结果为( )。A) abcd B) abba C) abc D) baca(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:33.50)39.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间 1 的信息。(分数:2.00)填空项 1:_40.结构化分析方法是面向 1 进行分析的方法。(分数:2.00)填空项 1:_

    17、41.一个关系表的行称为 1。(分数:2.00)填空项 1:_42.栈的 3种基本运算是:入栈、退栈和 1。(分数:2.00)填空项 1:_43.若 x和 a均是 int型变量,则计算完 x=(a=4,6*2)后的 x值为 1。(分数:2.00)填空项 1:_44.以下程序运行时若从键盘输入:10 20 30回车。输出结果是_。#includestdio.hmain()int i=0,j=0,k=0;scanf(“%d%*d%d“,i,j,k);printf(“%d%d%d/n“,i,j,k);(分数:2.00)填空项 1:_45.设 y为血型变量,请写出描述“y 是偶数”的表达式 1。(分数

    18、:2.00)填空项 1:_46.执行以下“for(i=1;i+=4;i+);”语句后,变量 i的值是 1。(分数:2.00)填空项 1:_47.以下程序运行后,当输入“14 63”时,输出结果是_。#includestdio.hmain()int m, n;scanf(“%d %d“, while(m!=n)while(mn) m=m-n;while(mn) n=n-m;printf(“%d/n“, m);(分数:2.00)填空项 1:_48.下列程序的输出结果是_。#includestdio.hmain()int x=1,y=1,a=1,b=1;switch(x)case 1:switch(

    19、y)case 0: a+; break;case 1: b+; break;case 2:a+;b+;break;printf(“a=%d,b=%d/n“,a,B) ;(分数:1.50)填空项 1:_49.下列执行后输出的结果是U /U。main()intarr10,i,k=0for(i=0;i10;i+)atri=ifor(i=1,i4;i+) k+=arri+i;printf(“%d/n“,k);(分数:2.00)填空项 1:_50.执行下列语句段后,x 的值是_。int*P,x;x=100:p=puts(strcat(sp,“AAAAA“);(分数:2.00)填空项 1:_52.以下程序

    20、中函数 fun的功能是:统计 person所指结构体数组中所有性别(sex)为 M的记录的个数,存入变量 n中,并作为函数值返回。请填空:#includestdio.h#define N 3typedef structint mum;char nam10;char sex;SS;int fun(SS person)int i,n=0:for(i=0;iN;i+)if(_=M)n+;return n;main()SS WN=1,“AA“,F),(2,“BB“,M),3,“CC“,M);int n;n=fun(W);printf(“n=%d/n“,n);(分数:4.00)填空项 1:_53.以下程

    21、序运行后的输出结果是U /U。#include stdio, hmain( )char c1 ,c2;for( el = 0, c2 =9; e1c2; c1 + + , c2 - ) printf(“ %c%c“, c1, c2 );printf(“/n“ );(分数:2.00)填空项 1:_二级 C语言笔试-441 答案解析(总分:100.50,做题时间:90 分钟)一、选择题(总题数:40,分数:67.00)1.在计算机中,算法是指_。A) 查询方法 B) 加工方法C) 解题方案的准确而完整的描述 D) 排序方法(分数:2.00)A.B.C. D.解析:评析 计算机算法是指解题方案的准确

    22、而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。2.下列描述中正确的是( )A) 程序就是软件B) 软件开发不受计算机系统的限制C) 软件既是逻辑实体,又是物理实体D) 软件是程序、数据和相关文档的集合(分数:2.00)A.B.C.D. 解析:解析 软件是运行在计算机硬件之上的逻辑实体,包括程序、数据和相关的文档。软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。3.以下叙述正确的是_。A) 构成 C程序的基本单位是函数B) 可以在函数中定义另一个函数C) main()函数必须放在其他函数之前D) 所有被调用的函数一定要在调用之前进行定义(分数:2.00)

    23、A. B.C.D.解析:解析 C 语言是由函数构成的。一个 C程序可以包含一个主函数,即 main()函数,也可以包含一个 main()函数和若干其他函数。函数是 C程序的基本单位。被调用的函数可以是系统提供的库函数,也可以是自定义的函数。从函数的形式上分为有参函数和无参函数。main()函数可以位于程序最前头,也可以位于程序结尾或中间,C 程序总是从 main()函数开始执行,不论 main()函数在程序中的位置如何。C语言中函数必须独立定义,不能在一个函数中定义另一个函数,但可以在一个函数中调用另一个函数,而且被调函数的定义可以在程序中的任何位置,不一定要在调用函数之前进行定义。若被调函数

    24、在调用函数之后定义,在调用函数中需要对被调函数进行类型说明。4.下列不属于软件工程的 3个要素的是( )。A) 工具 B) 过程 C) 方法 D) 环境(分数:2.00)A.B.C.D. 解析:解析 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制、管理。5.在下列选项中,不是一个算法一般应该具有的基本特征的是( )。A) 确定性 B) 可行性 C) 无穷性 D) 拥有足够的情报(分数:1.00)A.B.C. D.解析:解析 作为一个算法,一般应具有的基本特征有:可行性、确定性、有穷性、拥有足够的

    25、情报。6.将 E-R图转换到关系模式时,实体与联系都可以表示成( )。 A) 属性 B) 关系 C) 记录 D) 码(分数:2.00)A.B. C.D.解析:解析 E-R 图由实体、实体的属性和实体之间的联系 3个要素组成,关系模型的逻辑结构是一组关系模式的集合,将 E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。如下表所示。表 E-R 模型与关系间的比较表E-R模型 关系 E-R模型 关系属性 属性 实体集 关系实体 元组 联系 关系7.在数据库设计中,将 E-R图转换为关系模式的过程属于( )。A) 需求分析阶段 B) 逻辑设计阶段C) 概念设计阶段 D) 物理设

    26、计阶段(分数:2.00)A.B. C.D.解析:解析 数据库设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。其中,逻辑设计的主要工作是将 E-R图转换为关系模式。8.下列说法不正确的是( )。A) C语言程序是以函数为基本单位的,整个程序由函数组成B) C语言程序的一条语句可以写在不同的行上C) C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D) C语言程序的每个语句都以分号结束(分数:2.00)A.B.C. D.解析:解析本题涉及 C语言的 3个基本知识点:C 语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;

    27、C 语言规定每个语句以分号结束,其书写格式是自由的,条语句可以写在不同的行上,或者一行也可以写多条语句:注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。9.以下选项中,能用作用户标识符的是A) void B) 8_8C) _0_ D) unsigned(分数:1.00)A.B.C. D.解析:解析 C 语言的标识符命名规则为:只能由字母、数值和下划线 3种字符组成;第一个字符必须是字母或下划线;不能与 C语言中的关键字或保留字相同。10.请选出以下程序的输出结果_。#includestdio.hsub(x,y,z)int x,

    28、y,*z;*z=y-x;main()int a,b,c;sub(10,5,sub(7,a,sub(a,b,printf(“%d,%d,%d/n“,a,b,c);A) 5,2,3 B) -5,-12,-7 C) -5,-12,-17 D) 5,-2,-7(分数:2.00)A.B. C.D.解析:评析 sub()函数的作用是将形参 y和 x的差赋给了 z指向的那个内存地址,所以在 sub(10,5, /*x的初值为十六进制数*/printf(“%u/n“,x);程序运行后的输出结果是( )。A) -1 B) 65535 C) 32767 D) 0xFFFF(分数:1.00)A.B. C.D.解析:

    29、解析 因为%u 表示按无符号整数输出,而 x用十六进制表示为 0xFFFF,所以输出无符号整数的最大值 65535。若有定义语句“double x,t,*px,*py;”执行了“px=for(i=1;i5;i+)if(i%2) printf(“*“);else continue;printf(“#“);printf(“$/n“);A) *#*#*#$ B) #*#*#*$ C) *#*#$ D) #*#*$(分数:1.00)A.B.C. D.解析:解析 程序中当 i不能整除 2时输出*,然后输出#,能够整除 2时将结束本次循环,进入到下一次循环。当循环结束后,输出$。18.下列程序的输出结果是

    30、( )。main()chara7=“a0/0a0/0“;int i,j;i=sizeof(a);j=strlen(a);printf(“%d %d/n“,i,j);A) 2 2 B) 7 6 C) 7 2 D) 6 2(分数:2.00)A.B.C. D.解析:解析 函数 sizeof(a)的功能是求出字符串 a中的字符占用存储空间的大小,由于字符数组 a有长度为 7,所以 i=7;函数 strlen(a)的功能是:求出字符串 a的长度。而每个字符串都以/0为字符串的结束标记,所以 j的值等于 2。19.在下列选项中,没有构成死循环的是A) int i=100; B) for(:);while(

    31、1)i=i%100+1:if(i100)break;C) int k=10000;dok+;while(k10000);D) int s=36:while(s)-s;(分数:1.00)A.B.C.D. 解析:解析 对于选项 A,循环表达式条件永久为 1,由于小于 100的数与 100取余不超过 99,所以在循环体内表达式 i%100+1的值永远不大于 100,break 语句永远不会被执行,所以是死循环;对于选项B,括号内没有能使循环终止的条件,是死循环;对于选项 C,先执行 k+,使 k=10001,陷入死循环。对于选项 D,s 从 36开始,每循环一次就减小 1,直到 s为 0,循环结束,

    32、不会构成死循环。20.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。A) 地址传递B) 单向值传递C) 由实参传绐形,再由形参传回实参D) 传递方式由用户指定(分数:2.00)A.B. C.D.解析:评析 C 语言函数中的参数传递方式有传值与付址两种方式,传值方式是指将实参的值复制份传递给形参,而传址方式是指将实参的变量地址传递给形参,也就是实参的引用。21.有以下程序:main()int i,j,x=0;for(i=0;i2;i+)x+;for(j=0;j=3;j+)if(j*2)continue;x+;x+;printf(“x=%d/n”,x);程序执行后的输出结果

    33、是_。A) x=4 B) x=8 C) x=6 D) x=12(分数:2.00)A.B. C.D.解析:解析 内层 for循环语句实现 x=x+2,故外层 for循环语句单次循环实现 x=x+4,所以程序执行后的输出结果为 x=8。22.下列程序的输出结果是( )。main()int i=1 j=2,k=3;if(i+=1A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 3(分数:2.00)A.B.C.D. 解析:解析 本题考查自增运算符“+”、逻辑与运算符“if(aB) if(b0) C=0;else C+=1;printf(“%d/n“,) ;A) 2 B) 3 C) 5 D)

    34、4(分数:2.00)A.B.C. D.解析:解析 本题考查 if else语句。第一个 if语句,先判断条件,发现 ab 条件成立,执行下列的语句;第二个 if语句,先判断条件,发现 b0 条件不成立,则执行与其配对的 else语句,C+=1,得C=5。24.以下选项中值为 1的表达式是_。(A) 1-0(B) 1-/0(C) 1-0(D) /0-0(分数:2.00)A.B. C.D.解析:有以下程序:#includestdio.hmain()char c1,c2;c1=A+8-4;c2=A+8-5;printf(“%c,%d/n“,c1,c2);已知字母 A的 ASCII码为 65,程序运行

    35、后的输出结果是( )。AE,68 BD,69 CE,D D输出无定值(分数:2.00)A. B.C.D.解析:解析 本题输出两个值,%c 为输出一个字母,%d 为输出一个数字。“A”的 ASCI码为 65,再加4之后为 69,也就是字母 E,所以本题 A正确。A.B. C.D.解析:解析 scanf()语句用“空格”区别不同的字符串;getc()与 getchar()语句不能用于字符串的读入。25.设有程序段int k=10;while(k=0)k=k-1;则下面描述中正确的是A) while循环执行 10次 B) 循环是无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次(分数:2

    36、.00)A.B.C. D.解析:解析 本题中,首先将 0赋给 k,表达式变为 0,跳出循环,没有执行循环体语句。解答本题的关键是掌握 while语句。26.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是_。(A) 函数的实参和其对应的形参共占同一存储单元(B) 形参只是形式上的存在,不会占用具体存储单元(C) 同名的实参和形参占同一存储单元(D) 函数的形参和实参分别占用不同的存储单元(分数:2.00)A.B.C.D. 解析:27.有以下程序#includestdio.hdouble f(double x);main()double a=0;int i;for(i=0;i3

    37、0;i+=10)a+=f(double)i);printf(“%5.0f/n“,a);double f(double x)return x*x+1;程序运行后的输出结果是( )。A)503 B)401 C)500 D)1404(分数:2.00)A. B.C.D.解析:解析 由于函数 f的作用是对形参 x求平方再加 1,所在在主函数中,循环第一次执行后变量 a的值等于 1,第二次执行后,变量 a的值等于 102,第三次执行后,变量 a的值等于 503。28.以下能正确定义二维数组的是( )。A) int a3; B) int a3 =2*3;C) int a3 =; D) int a23 =1,

    38、2,3,4:(分数:1.00)A. B.C.D.解析:解析 本题考查二维数组的定义。选项 B)不符合二维数组的定义规范;选项 C)企图给数组赋空值,错误;选项 D)定义的 a2)3说明 a是一个 2行 3列的数组,而初始化却赋了 3行,所以选项 D)错误。29.下列选项中,能正确定义数组的语句是A) int num02008; B) int num;C) int N=2008;int numN;D) #define N 2008int numN;(分数:2.00)A.B.C.D. 解析:解析 定义数组时,数组大小只能是常量。选项 C中是变量,选项 B中没有指定数组大小,所以选项 C和 B错误的

    39、。选项 A的表示方法显然是错误的。选项 D中的 N是符号常量,满足数组定义的语法要求。30.有以下程序段:struct stint x; int * y; * pt;int a = 1,2 ,b = 3,4;struct st c2 = 10,a,20,b;pt=c;以下选项中表达式的值为 11的是( )。A) *pt-y B) pt-x C) +pt-x D) (pt+)-x(分数:1.00)A.B.C. D.解析:解析 题目中定义了一个 str构体类型,然后定义了“型的结构体指针变量*pt 及结构体数组 c,并对结构体数组进行了初始化,且将结构体指针变量 Pt指向了数组 c,则 pt-x

    40、的值为 10,所以+Pt-x 的值为 11,故选项 C)正确。31.若要求从键盘读入含有空格字符的字符串,应使用函数A) getc() B) gets() C) getehar() D) scanf()(分数:1.00)A.B. C.D.解析:解析 scanf()语句用“空格”区别不同的字符串;getc()与 getchar()语句不能用于字符串的读入。32.有下列程序:main()int k=5,n=0;doswitch(k)case 1: case 3:n+=1;k-;break;default:n=0;k-;case2: case 4;n+=2;k-;break;printf(“%d“,

    41、n);while(k0i=10;j=15;k=10*MIN(i,j);printf(“%d/n“,k);A) 15 B) 100 C) 10 D) 150(分数:1.00)A.B.C. D.解析:解析 本题考查宏定义。在 C语言中,宏是直接替换的,所以表达式 k=10*MIN(i,j)被直接替换为 k=10*(ij)? i:j,在这个表达式中,10*(ij)的值为非零,所以整个表达式的值应为 i的值,即为10。34.执行下列程序后,输出的结果是( )。#includestdio.h#define S(X) X*Xvoid main()int a=9,k=3,m=2;a/=S(k+m)/S(k+

    42、m);printf(“%d“,a);A) 1 B) 4 C) 9 D) 0(分数:2.00)A.B.C.D. 解析:解析 本题主要是考查带参数的宏定义及其相关运算。本题中宏运算过程如下:a=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m*k+m= 9/(3+2*3+2/3+2*3+2)=0。35.有下列程序:#include stdio.hmain()FILE *fp; int a10=1,2,3,i,n;fp=fopen(“d1.dat“,“w“);for(i=0;i3;i+) fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp

    43、=open(“d1.dat“,“r“);fscanf(fp,“%d“,fclose(fp);prinff(“%d/n“,n);程序的运行结果是( )。A) 12300 B) 123 C) 1 D) 321(分数:2.00)A.B. C.D.解析:解析 本题考查以读和写的方式打开文件对文件内容操作的不同,fp=fopen(“d1.dat“,“w“);以可写的方式为输出建立新文本文件,调用 printf输出“123”,fp=fopen(“d1,dat“,“r“);以只读的方式打开文本文件,不能对文件内容进行操作,故运行结果为选项 B)。36.有以下程序:#includestdio.hint a=1

    44、;int fun(int c)static int a=2;c=c+1;return(a+)+c;main()int i,k=0;for(i=0;i2;i+)int a=3;k+=f(a);k+=a;printf(“%d/n“,k);程序的运行结果是_。A) 14 B) 15 C) 16 D) 17(分数:2.00)A. B.C.D.解析:解析 本题考查的重点是对 static变量以及全局变量的理解。static 变量是函数或文件中的永久变量。本题中 static int a=2语句定义了一个 static局部变量,编译程序为其生成永久存储单元,即调用函数 fun时,其值一直都保存着,而不是使

    45、用函数外所赋的值(尽管开头定义了一个同名的全局变量)。在主函数中,for 循环进行两次,第一次循环得 f(3)=3+1+2=6,从而 k+=f(3)=6,第二次循环由于 static局部变量 a变成了 3,从而 f(3)的值为 7,故 k+=f(3)=13,再执行 k+=a时,此时 a的值为全局变量,其值为 1,故 k的值为 14,选项 A是正确的。37.设有下列说明语句:strcut strint x; float y; char z;st;则下列的叙述中不正确的是( )。A) struct是结构体类型的关键字 B) st 是结构体类型名C) x、y、x 都是结构体成员名 D) struct

    46、 str 是结构体类型名(分数:2.00)A.B. C.D.解析:解析 本题主要考查结构类型的定义:struct 是结构体类型的关键字:struct str 是结构体类型名;x、y、z 都是结构体成员名:st 是结构变量名。38.以下程序中函数 scmp的功能是返回形参指针 s1和 s2所指字符串中较小字符串的首地址。#include stdio.h#include string.hchar *scmp(char*s1,char*s2)if(strcmp(s1,s2)0) return(s1);else return(s2);main()int i; char string20,str320;

    47、for(i=0;i3;i+) gets(stri);strcpy(string,scmp(str0,str1); /*库函数 strcpy对字符串进行复制*/strcpy(string,scmp(string,str2);printf(“%s/n“,string);若运行时依次输入:abcd、abba 和 abc三个字符串,则输出结果为( )。A) abcd B) abba C) abc D) baca(分数:2.00)A.B. C.D.解析:解析 本题考查返回指针值的函数。一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。函数 strcmp(字符串 1,字符串 2)的作用是比较字符串 1和字符中 2。如果字符串 1=字符串 2,函数值为 0;如果字符串 1,字符串 2,函数值为一正整数;如果字符串 1字符串2,函数值为一负整数。本题


    注意事项

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




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

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

    收起
    展开