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

上传人:testyield361 文档编号:1326382 上传时间:2019-10-17 格式:DOC 页数:20 大小:106.50KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试37及答案解析.doc_第1页
第1页 / 共20页
【计算机类职业资格】二级C语言笔试37及答案解析.doc_第2页
第2页 / 共20页
【计算机类职业资格】二级C语言笔试37及答案解析.doc_第3页
第3页 / 共20页
【计算机类职业资格】二级C语言笔试37及答案解析.doc_第4页
第4页 / 共20页
【计算机类职业资格】二级C语言笔试37及答案解析.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、二级 C语言笔试 37及答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.以下程序执行后 sum的值是 _。 main() int i,sum; for(i=1;i6;i+)sum+=i; printf(“%d/n“,sum); (分数:1.00)A.15B.14C.不确定D.02.软件调试的目的是 _。(分数:1.00)A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能3.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是 _ 。(分数:1.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而

2、不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考4.当调用函数时,实参是一个数组名,则向函数传送的是 _。(分数:1.00)A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值5.假定建立了以下链表结构,指针 p、q 分别指向如图所示的结点,则以下可以将 q所指结点从链表中删除并释放该结点的语句组是 _。 (分数:1.00)A.free (;p-next=q-next;B.(*next=(*next;free(;C.q=(*next;(*next=q;free(;D.q=q-next;p-nex

3、t=q;p=p-next;free(:6.设 char型变量 x中的值为 10100111,则表达式(2+x)(3)的值为 _。(分数:1.00)A.10101001B.10101000C.11111101D.010101017.有以下程序: main() int x8=8,7,6,5,0,0,*s; S=x+3; printf(“%d/n“,s2); 程序运行后的输出结果是 _ 。(分数:1.00)A.随机值B.0C.5D.68.以下只有在使用时才为该类型变量分配内存的存储类说明是 _ 。(分数:1.00)A.auto和 staticB.auto和 registerC.register和 s

4、taticD.extern和 register9.以下程序的输出结果是 _。 long fum(int n) long s; if(n=|n=2)s=2; else s=n-fun(n-1); return s; main() printf(“%ld/n“,fun(3);(分数:1.00)A.1B.2C.3D.410.下列叙述中正确的是 _ 。(分数:1.00)A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种C.C语言的函数可以嵌套定义D.C语言中,根据函数能否被其他源文件调用,被区分为内部函数和外部函数11.有以下程序: void sum(int * a) a0=a1; main

5、() int aa10=1,2,3,4,5,6,7,8,9,10,i; for(i=1;i0;i-)sum( for(i=0;i3;i+)pi=ai*(1+1); for(i=0;i3;i+)k+=pi*2; printf(“%d/n“,k);(分数:1.00)A.20B.21C.22D.2318.对于下面的程序 #includestdio.h #includestring.h char * scmp(char * s1,char * s2) if(strcmp(s1,s2)0)return(s1); else return(s2); main() int i;char string20,st

6、r320; for(i=0;i3;i+)gets(stri); strcpy(string,scmp(str0,str1); strcpy(string,scmp(string,str2); printf(“%s/n“,string); 若运行时依次输入 abcd、abba和 abc三个字符串,则输出结果为 _。(分数:1.00)A.abcdB.abbaC.abcD.abca19.当执行下面的程序时,其输出结果为 _。 union st int a; char b; main() union st s; char* p=(char *) printf“/n“); 假定以上程序经编译和连接后生成

7、可执行文件 PROGEXE,如果在此可执行文件所在目录的 DOS提示符下键入 PROG ABCDEFGHIJKL,则输出结果为 _。(分数:1.00)A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH21.下列程序段的输出结果是 _。 void fun(int * x,int * y) pnntf(“%d%d“,* x,* y);* x=3;*y=4; main() int x=1,y=2; fun( (分数:1.00)A.ABC6789B.ABC67C.12345ABC6D.ABC45678932.在结构化方法中,软件功能分解属于软件开发中的 _ 阶段。(

8、分数:1.00)A.详细设计B.需求分析C.总体设计D.编程调试33.有以下程序段: int x=3; do printf(“%d“,x-=2); while(!(-x); 其输出结果是 _ 。(分数:1.00)A.1B.3 0C.1 -2D.死循环34.若 a为 int类型,且其值为 3,则执行完表达式 a+=a-=a*a后,a 的值是 _ 。(分数:1.00)A.-3B.9C.-12D.635.以下程序的输出结果是 _。 main() int x=05;char z=a; printf(“%d/n“,(x i20;i+)scanf(“%d(“%d“,U【18】 /U); for(i=0;i

9、20;i+) if(ai0) count+; sum+=U 【19】 /U; printf(“sum=%d,count=%d/n“,sum,count); (分数:2.00)填空项 1:_68.若变量 n中的值为 24,则 prnt函数共输出U 【20】 /U行。 void prnt(int n,int aa ) int i; for(i=1;i=n;i+) printf(“%6d“,aai); if(!(i%5)printf(“/n“); printf(“/n“);(分数:2.00)填空项 1:_二级 C语言笔试 37答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数

10、:50,分数:50.00)1.以下程序执行后 sum的值是 _。 main() int i,sum; for(i=1;i6;i+)sum+=i; printf(“%d/n“,sum); (分数:1.00)A.15B.14C.不确定 D.0解析:评析变量 sum在使用时未赋初值,所以无法确定 sum最终的值。2.软件调试的目的是 _。(分数:1.00)A.发现错误B.改正错误 C.改善软件的性能D.挖掘软件的潜能解析:评析由程序调试的概念可知:程序调试活动由两部分组成,其一是根据错误的迹象确定程序中错误的确切性质、原因和位置。其二,对程序进行修改,排除这个错误。所以程序调试的目的就是诊断和改正程

11、序中的错误。3.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是 _ 。(分数:1.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题 D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考解析:评析面向对象的设计方法基本原理:使用现实世界的概念抽象地思考问题从而自然地解决问题。强调模拟现实世界中的概念而不强调算法,鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。4.当调用函数时,实参是一个数组名,则向函数传送的是 _。(分数:1.00)A.数组的长度B.数组的首地址 C.数

12、组每一个元素的地址D.数组每个元素中的值解析:评析当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,函数中的形参可定义成以下三种形式: 形参定义成数组; 形参定义成可变长数组: 形参定义为指针变量。5.假定建立了以下链表结构,指针 p、q 分别指向如图所示的结点,则以下可以将 q所指结点从链表中删除并释放该结点的语句组是 _。 (分数:1.00)A.free (;p-next=q-next;B.(*next=(*next;free(; C.q=(*next;(*next=q;free(;D.q=q-next;p-next=q;p=p-next;free(:解析:评析选项 A的错误在

13、于,先已经把 q结点给释放,无法再进行余下语句了;选项 C和 D的错误在于因为有了 q=(*q).next做了赋值,则 free(q)释放了原来 q后面的一个结点。6.设 char型变量 x中的值为 10100111,则表达式(2+x)(3)的值为 _。(分数:1.00)A.10101001B.10101000C.11111101D.01010101 解析:评析异或运算符()的运算规则是:参加运算的两个相应位同号,则结果为 0(假);异号则为1(真)。取反运算符(-)的运算规则是:对一个二进制数按位取反,即将 0变为 1,1 变为 0。本题(-3)是对 3(二进制形式为 00000011)按位

14、取反即 11111100。表达式(2+x)(-3)的值就等价于(00000010+10100111)11111100,结果为 01010101。7.有以下程序: main() int x8=8,7,6,5,0,0,*s; S=x+3; printf(“%d/n“,s2); 程序运行后的输出结果是 _ 。(分数:1.00)A.随机值B.0 C.5D.6解析:评析本题定义了数组 x8和指针变量 s,由 C语言规定,指针加 1的含义是使指针指向数组的下一个元素,而不是指针值简单的加 1,因此通过 s=x+3;使 s指向数组元素 x3。由于指向数据的指针变量可以带下标表示,如 si与*(s+i)等价。

15、因此题目要求输出 s2的值,即*(s+2)的值,也就是 x5的值,为 0。8.以下只有在使用时才为该类型变量分配内存的存储类说明是 _ 。(分数:1.00)A.auto和 staticB.auto和 register C.register和 staticD.extern和 register解析:评析extern、register、static、auto 分别是定义外部变量、寄存器变量、静态变量、自动变量,其中,自动变量和寄存器变量属于动态存储,调用时临时分配单元;而静态变量和外部变量属于静态存储,在整个程时都存在。9.以下程序的输出结果是 _。 long fum(int n) long s;

16、if(n=|n=2)s=2; else s=n-fun(n-1); return s; main() printf(“%ld/n“,fun(3);(分数:1.00)A.1 B.2C.3D.4解析:评析这是一个递归函数。递归的结束条件是,n=1 或者 n=2。按照程序顺序,即可得出本题结果为 1。10.下列叙述中正确的是 _ 。(分数:1.00)A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种C.C语言的函数可以嵌套定义D.C语言中,根据函数能否被其他源文件调用,被区分为内部函数和外部函数 解析:评析选项 A的错误在于编译过程中是检查语法的,若发现源程序有语法错误,则系统会提示出错信

17、息;选项 B的错误在于 C语言中,子程序的作用是由函数来完成的,无过程的概念;选项 C的错误在于函数不可以嵌套定义,但可以嵌套调用。11.有以下程序: void sum(int * a) a0=a1; main() int aa10=1,2,3,4,5,6,7,8,9,10,i; for(i=1;i0;i-)sum( for(i=0;i3;i+)pi=ai*(1+1); for(i=0;i3;i+)k+=pi*2; printf(“%d/n“,k);(分数:1.00)A.20B.21 C.22D.23解析:评析按程序的流程走一遍,可以得到 p0=0,p1=2,p3=6;执行三次 k+=pi*2

18、,相当于k=5+0*2+2*2+6*2=21。18.对于下面的程序 #includestdio.h #includestring.h char * 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,scmp(str0,str1); strcpy(string,scmp(string,str2); printf(“%s/n“,string); 若运行时依

19、次输入 abcd、abba和 abc三个字符串,则输出结果为 _。(分数:1.00)A.abcdB.abba C.abcD.abca解析:评析本题自定义函数 scmp()的作用是比较字符串 s1和 s2的大小,如果 s1s2,函数返回 s1的值,否则返回 s2的值。若运行时依次输入 abcd、abba 和 abc三个字符串,执行strcpy(string,scmp(str0,str1);后,string 的值为 abba,再执行 strcpy(string,scmp(string,str2);,由于 scmp(string str2)返回 string的值 abba,再拷贝到字符串数组 str

20、ing中,所以本题输出 abba。19.当执行下面的程序时,其输出结果为 _。 union st int a; char b; main() union st s; char* p=(char *) printf“/n“); 假定以上程序经编译和连接后生成可执行文件 PROGEXE,如果在此可执行文件所在目录的 DOS提示符下键入 PROG ABCDEFGHIJKL,则输出结果为 _。(分数:1.00)A.ABCDEFGB.IJHLC.ABCDEFGHIJKL D.IJKLABCDEFGH解析:评析本题主函数带有两个参数,一个 int型变量 argc,另一个是 char型的一维一级指针数组ar

21、gv。当主函数被执行时,系统自动将根据命令行的情况,分别给主函数的两个参数赋值。Argc 中存放命令行中命令字和参数的总和的个数,argv 用来存放命令行中命令字和所有参数的字符串的,并规定argv0存放命令字字符串,argv1用来存放第一个参数的字符串,argv2用来存放第 2个参数的字符串,依此类推。题中 argc的值是 2,执行完-argc 后为 1,输出 argv1,此数组存在第一个参数的字符串 ABCDEFGHIJKL。21.下列程序段的输出结果是 _。 void fun(int * x,int * y) pnntf(“%d%d“,* x,* y);* x=3;*y=4; main(

22、) int x=1,y=2; fun( (分数:1.00)A.ABC6789 B.ABC67C.12345ABC6D.ABC456789解析:评析strcat(strl,str2)合并字符串函数的作用是把 str2所指字符串的内容连接到 strl字符串的后面,自动删去 strl原来串中的0。为了进行这项操作,要求 strl所指的字符串后面有足够的空间来容纳 str2所指字符串中的内容。函数值为 strl所指第一个字符的地址。32.在结构化方法中,软件功能分解属于软件开发中的 _ 阶段。(分数:1.00)A.详细设计B.需求分析C.总体设计 D.编程调试解析:评析总体设计过程通常由两个主要阶段组

23、成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。33.有以下程序段: int x=3; do printf(“%d“,x-=2); while(!(-x); 其输出结果是 _ 。(分数:1.00)A.1B.3 0C.1 -2 D.死循环解析:评析本题中循环执行了两次,第一次,执行完 printf语句后,x=1,而-x 是先自减后执行语句,所以(!(-x)的值为非零,所以又执行了一次。第二次 x的值为-2,-x 的值为-3,求非后,值为 0,跳出循环。34.若 a为 int类型,且其值为 3,则执行完表达式 a+=a-=a*

24、a后,a 的值是 _ 。(分数:1.00)A.-3B.9C.-12 D.6解析:评析C 语言中对赋值运算的运算的运算顺序是自右向左。本题中,计算 a*a之后,a 的值依然为3,表达式 a*a的值为 9;a-=9, a=3-9=-6:a+=-6,a=-6+-6=-12。35.以下程序的输出结果是 _。 main() int x=05;char z=a; printf(“%d/n“,(x )解析:评析要定义 p为指向函数的指针变量,需写成 void(*p)();,注意*p 两侧的括弧不可以省略,表示 p先与*结合,是指针变量,再与后面的()结合,表示此指针变量指向函数,这个函数无返回值(同fun(

25、)函数)。62.以下程序的输出结果是U 【12】 /U。 main() int p7=(11,13,14,15,16,17,18; int i=0,j=0; while(i7i20;i+)scanf(“%d(“%d“,U【18】 /U); for(i=0;i20;i+) if(ai0) count+; sum+=U 【19】 /U; printf(“sum=%d,count=%d/n“,sum,count); (分数:2.00)填空项 1:_ (正确答案:【17】0)解析:【18】&ai 【19】ai 评析本题要求从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。程序中首先要对存放正

26、数个数的变量 count及存放和值的变量 sum初始化为 0,所以第一空应填 0。接着要求从终端读入数据到数组中,可以通过 scanf函数实现,因此第二空应填&ai。最后通过 sum+=ai;语句累加正数 ai的值到 sum中,因此第三空应填 ai。68.若变量 n中的值为 24,则 prnt函数共输出U 【20】 /U行。 void prnt(int n,int aa ) int i; for(i=1;i=n;i+) printf(“%6d“,aai); if(!(i%5)printf(“/n“); printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:5)解析:评析本题的关键在于 if(i(i%5)printf(“/n“);这句,即如果 i可被 5整除时,则换行。i 值为24,可以被 5整除 4次,并余 4,因此,prnt 函数共输出 5行,最后一行有 4个数。

展开阅读全文
相关资源
猜你喜欢
  • FORD WSS-M3H104-A5-2008 CARPET POLYPROPYLENE DILOUR NEEDLED - LATEX BACKCOATED LDPE EXTRUSION BACKED -  TO BE USED WITH FORD WSS-M99P1111-A  《低密度聚乙烯(LDPE)挤压料背衬、乳胶背涂的DILOUR针刺聚丙烯(PP).pdf FORD WSS-M3H104-A5-2008 CARPET POLYPROPYLENE DILOUR NEEDLED - LATEX BACKCOATED LDPE EXTRUSION BACKED - TO BE USED WITH FORD WSS-M99P1111-A 《低密度聚乙烯(LDPE)挤压料背衬、乳胶背涂的DILOUR针刺聚丙烯(PP).pdf
  • FORD WSS-M3H104-A7-2014 CARPET POLYESTER NON WOVEN DILOUR POLYETHYLENE BACKED MOLDABLE 240 G M2 (7 OZ) NOMINAL FACE  TO BE USED WITH FORD WSS-M99P1111-A  .pdf FORD WSS-M3H104-A7-2014 CARPET POLYESTER NON WOVEN DILOUR POLYETHYLENE BACKED MOLDABLE 240 G M2 (7 OZ) NOMINAL FACE TO BE USED WITH FORD WSS-M99P1111-A .pdf
  • FORD WSS-M3H105-A10-2008 CARPET POLYESTER FLAT NEEDLED LATEX BACKCOATED -  TO BE USED WITH FORD WSS-M99P1111-A  《乳胶背涂的聚酯扁平针刺地毯  与标准FORD WSS-M99P1111-A一起使用  [使用 FORD WSS-M15P32-C]》.pdf FORD WSS-M3H105-A10-2008 CARPET POLYESTER FLAT NEEDLED LATEX BACKCOATED - TO BE USED WITH FORD WSS-M99P1111-A 《乳胶背涂的聚酯扁平针刺地毯 与标准FORD WSS-M99P1111-A一起使用 [使用 FORD WSS-M15P32-C]》.pdf
  • FORD WSS-M3H105-A11-2002 CARPET POLYESTER FLAT NEEDLED HEAT ACTIVATED WITH POLYETHYLENE BACKING  TO BE USED WITH FORD WSS-M99P1111-A  《聚乙烯背衬的热活化型扁平针刺聚酯地毯  与标准FORD WSS-M99P1111-A一起使.pdf FORD WSS-M3H105-A11-2002 CARPET POLYESTER FLAT NEEDLED HEAT ACTIVATED WITH POLYETHYLENE BACKING TO BE USED WITH FORD WSS-M99P1111-A 《聚乙烯背衬的热活化型扁平针刺聚酯地毯 与标准FORD WSS-M99P1111-A一起使.pdf
  • FORD WSS-M3H105-A14-2010 CARPET POLYESTER FLAT NEEDLED HEAT ACTIVATED BINDER FUSED BACK  TO BE USED WITH FORD WSS-M99P1111-A  《背面熔凝热激活粘合剂的聚酯扁平针刺地毯  与标准FORD WSS-M99P1111-A一起使用 》.pdf FORD WSS-M3H105-A14-2010 CARPET POLYESTER FLAT NEEDLED HEAT ACTIVATED BINDER FUSED BACK TO BE USED WITH FORD WSS-M99P1111-A 《背面熔凝热激活粘合剂的聚酯扁平针刺地毯 与标准FORD WSS-M99P1111-A一起使用 》.pdf
  • FORD WSS-M3H105-A14-2017 CARPET POLO PATTERN POLYESTER NON WOVEN RANDOM VELOUR NEEDLED POLYETHYLENE MOLDABLE BACKING 305 g m2 (9 oz)  TO BE USED WITH FORD WSS-M99P1111-A  .pdf FORD WSS-M3H105-A14-2017 CARPET POLO PATTERN POLYESTER NON WOVEN RANDOM VELOUR NEEDLED POLYETHYLENE MOLDABLE BACKING 305 g m2 (9 oz) TO BE USED WITH FORD WSS-M99P1111-A .pdf
  • FORD WSS-M3H105-A4-1995 CARPET POLO PATTERN 100 % RECYCLED POLYESTER FIBER FLAT NEEDLED NON-BACKCOATED (REPLACES ESB-M3H34-D ESB-M3H56-A2)《背面聚丙烯(PP)涂层的纺编衬底、扁平针刺100%再生聚酯纤维的POLO图案地毯 .pdf FORD WSS-M3H105-A4-1995 CARPET POLO PATTERN 100 % RECYCLED POLYESTER FIBER FLAT NEEDLED NON-BACKCOATED (REPLACES ESB-M3H34-D ESB-M3H56-A2)《背面聚丙烯(PP)涂层的纺编衬底、扁平针刺100%再生聚酯纤维的POLO图案地毯 .pdf
  • FORD WSS-M3H105-A4-2015 CARPET POLO PATTERN 100% RECYCLED POLYESTER FIBER FLAT NEEDLED NON-BACKED 216 g m2 (6 4 oz) MIN  TO BE USED WITH FORD WSS-M99P1111-A  .pdf FORD WSS-M3H105-A4-2015 CARPET POLO PATTERN 100% RECYCLED POLYESTER FIBER FLAT NEEDLED NON-BACKED 216 g m2 (6 4 oz) MIN TO BE USED WITH FORD WSS-M99P1111-A .pdf
  • FORD WSS-M3H105-A5-2004 CARPET POLO PATTERN 100% RECYCLED POLYESTER FIBER FLAT NEEDLED LATEX BACKCOATED ACRYLIC LATEX FOAM BACKING  TO BE USED WITH FORD WSS-M99P1111-A  《丙烯酸胶乳泡沫背衬的.pdf FORD WSS-M3H105-A5-2004 CARPET POLO PATTERN 100% RECYCLED POLYESTER FIBER FLAT NEEDLED LATEX BACKCOATED ACRYLIC LATEX FOAM BACKING TO BE USED WITH FORD WSS-M99P1111-A 《丙烯酸胶乳泡沫背衬的.pdf
  • 相关搜索

    当前位置:首页 > 考试资料 > 职业资格

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