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

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

1、二级 C 语言笔试-337 及答案解析(总分:86.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.有以下程序:#include stdio, hmain ( )int k=5,n =0;while ( k0)switch (k)default: break;case 1 : n+ =k;case 2 :case3 : n+ =k;k-;printf( “% d /n“ ,n);程序运行后的输出结果是

2、( )。(分数:1.00)A.0B.4C.6D.73.设有定义:int n1=0, n2, *p=int i,j;for(i=0;in-1;i+)for(j=i+1 ;jn;j + )if(strcmp(pi, pj)0) t =pi;pi =pj ;pj =t;main( )char * p 5 = “abe“.“ aabdfg“.“ abbd“,“ dcdbe“,“ cd“ ;f(P,5 ); printf(“% d/n“, strlen(p1) );程序运行后的输出结果是( )。(分数:1.00)A.2B.3C.60D.411.以下叙述中错误的是( )。(分数:1.00)A.C 语言中对

3、二进制文件的访问速度比文本文件快B.C 语言中,随机文件以二进制代码形式存储数据C.语句 PILE fp;定义了一个名为 fp 的文件指针D.C 语言中的文本文件以 ASCII 码形式存储数据12.有以下程序段:int k=0,a=1,b=2,c=3;k=ab? b:a; k=kc? c:K;执行该程序段后,k 的值是( )。(分数:1.00)A.3B.2C.1D.013.有以下程序:#include stdio.h#include string.hvoid f(char * s,char*t)char k;k=*s; *s=*t; *t=k;s+; t-;if( * s) f(s,t);ma

4、in( )char str10 :“abedefg“, * p;p = str + strlen(str)/2+1;f(p,p -2);printf( “% s /n“ ,str);程序运行后的输出结果是( )。(分数:1.00)A.abcdefgB.gfedcbaC.gbcdefaD.abedcfg14.有以下程序:#include stdio.hstruet STUcharname10; int num; float TotalSeore; ;void f(struet STU * p)struet STU s 2 = “SunDan“ ,20044,550 , “Penghua“ ,20

5、045,537 , * q = s;+p; +q; *p= *q;main( )struct STU s3 = “YangSan“ ,20041,703 , “LiSiGuo“ ,20042,580 ;f(s) ;printf(“% s % d % 3. Of/n“ ,s 1. name, s 1. num ,s 1. TotalScore);程序运行后的输出结果是( )。(分数:1.00)A.SunDan 20044 550B.Penghua 20045 537C.LiSiGuo 20042 580D.SunDan 20041 70315.在深度为 7 的满二叉树中,叶子结点的个数为( )。

6、(分数:1.00)A.32B.31C.64D.6316.有以下程序:#include stdio, hvoid sort(int a ,int n)int i,j,t;for(i=0;in;i + )for(j =i+ 1;jn;j + )if(aiaj) t=a1 ;ai=aj ;aj =t; main( )int aa10 = 1,2,3,4,5,6,7,8,9,10 ,i;sort(aa +2, 5);for(i =0;i10;i+) prinff(“%d,“ ,aai);prinff(“/n“);程序运行后的输出结果是( )。(分数:1.00)A.1,2,3,4,5,6,7,8,9,1

7、0,B.1,2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10,D.1,2,9,8,7,6,5,4,3,10,17.有以下程序:#include stdio, hint a =2;int f(int n)static int a: 3;int t=0;if(n%2) static int a=4;t+ =a+;else static int a=5;t+ :a+;return t + a + +;main ( )int s=a,i;for(i=0;i3;i+)s + =f(i);prinff(“% d /n“ ,s); 程序运行后的输出结果是( )。(分数:1.

8、00)A.26B.28C.29D.2418.按照“后进先出”原则组织数据的数据结构是( )。(分数:1.00)A.队列B.栈C.双向链表D.二叉树19.设变量已正确定义,则以下能正确计算 f=n!的程序段是( )。(分数:1.00)A.f=0; for(i=1; in;i+)f*=i;B.f=1; for(i=1; in; i+)f*=i;C.f=1; for(i=n; i1; i+)f*=i;D.f=1; for(i=n; i=2; i-)f*=i;20.以下不能正确计算代数式 (分数:1.00)A.1/3 * sin(1/2) * sin(1/2)B.SlH(0.5) * sin(0.5)

9、/3C.pow ( sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)21.下列叙述中正确的是( )。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对22.以下程序的功能是进行位运算:#include stdio.hmain( )unsigned char a,b;a =73; b = 4printf(“% d %d /n“ ,a,b);程序运行后的输出结果是( )。(分数:1.00)A.4 3B.7 3C.7 0D.4 023.有以下程序:#include stdio.h#i

10、nclude strine.hstruct STUchar name10;int hum;void f(char * name,iht num)struct STU s2 = “SunDan“ ,20044 , “ Penghua“ ,20045;num= s0. nnm;strepy(name,s0, name);main( )struct STU s2 = “YangSan“ ,20041 , “LiSiGao“ ,20042, * P;p = f(p-name,p-hum);printf(“% s %d /n“ ,p- name,p-num);程序运行后的输出结果是( )。(分数:1.0

11、0)A.SunDan 20042B.SunDan 20044C.LiSiGuo 20042D.YangSan 2004124.若有定义:int x=0,*p=float f2 ( float n)return 2 * n;main( )float ( * p1)(float),( * p2)(float),(*t)(float) ,y1,y2;p1 = f1;p2 = f2;y1 = p2(p1(2.0) );t =p1;p1 = p2;p2 =t;y2=p2(p1(2.0);prinff(“% 3.0f, %3. Of/n“ ,y1,y2);程序运行后的输出结果是( )。(分数:1.00)A

12、.8,16B.8,8C.16,16D.4,826.以下叙述中正确的是( )。(分数:1.00)A.调用 pfintf 函数时,必须要有输出项B.使用 putchar 函数时,必须在之前包含头文件 stdio.hC.在 C 语言中,整数可以以十二进制、八进制或十六进制的形式输出D.调用 getchar 函数读入字符时,可以从键盘上输入字符所对应的 ASCII 码27.有以下程序段:int n,t=1,s=0;scanf(“%“, t=t-2; while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是( )。(分数:1.00)A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

13、28.有以下程序:#include stdio, h#define f(x) (x * x)main ( )int i1 ,i2;i1 = f(8)/f(4) ;i2 =f(4 +4)/f(2 +2);printf(“% d,% d/n“ ,i1 ,i2);(分数:1.00)A.64,28B.4,4C.4,3D.64,6429.当把以下四个表达式用做 if 语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是( )。(分数:1.00)A.k%2B.k%2=1C.(K%2)!=0D.!k%2=130.以下叙述中错误的是( )。(分数:1.00)A.用户所定义的标识符允许使用关键字B.

14、用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识31.设有定义:int a=2, b=3, c=4;则以下选项中值为 0 的表达式是( )。(分数:1.00)A.(! a=1)printf(“%c/n“,(a1,a2);以下叙述中正确的是( )。(分数:1.00)A.程序输出大写字母 MB.程序输出小写字母 mC.格式说明符不足,编译出错D.程序运行时产生出错信息36.有以下程序:#include stdlo.hmain( )FILE * fp; int i,k,n;fp = fopen( “data. dat

15、“ ,“w +“ )for(i = 1 ;i6;i + )fprintf(fp.“% d“,i);if(i%3 =0)fprintf(fp,“ /n“);rewind(fp);fscanf(fp.“ % d% d“ ,printf(“ % d%d /n“ ,k,n);fclose(fp);(分数:1.00)A.0 0B.123 45C.1 4D.137.有以下程序段:typedef struct NODEint num;struct NODE * nex;OLD;以下叙述中正确的是( )。(分数:1.00)A.以上的说明形式非法B.NODE 是一个结构体类型C.OLD 是一个结构体类型D.OL

16、D 是一个结构体变量38.有以下程序:#include stdio.h#include string.hmain( )char p = a,b,c ,q10 = a,h,cprinff( “% d % d/n“ , strlen (p) , strlen (q) );以下叙述中正确的是( )。(分数:1.00)A.在给 p 和 q 数组赋初值时,系统会自动添加字符串结束符,故输出的长度都为 3B.由于 P 数组中没有字符串结束符,长度不能确定;q 数组中字符串长度为 3C.由于 q 数组中没有字符串结束符,长度不能确定;p 数组中字符长度为 3D.由于 p 和 q 数组中没有字符串结束符,故长

17、度都不能确定39.若有语句:char *line5;以下叙述中正确的是( )。(分数:1.00)A.定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量B.定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C.定义 line 是一个指针数组,语句中的号称为求地址运算符D.定义 line 是一个指向字符型函数的指针40.有以下程序:#include stdio.hmain()int a = 2,4,6,8,10 ,y =0,x, * p;p =for(x=1;x3;x+)y+ =px;printf( “% d /n“ , y); 程序运行后的输出结

18、果是( )。(分数:1.00)A.10B.11C.14D.1541.有以下程序:#include stdio, hvoid swap1 (int c0,int e1 )int t;t = c00; c00: c1 0 ; c1 0 = t;void swap2(int * c0,int * c1)int t;t= *c0; *c0= *c1; * c1 =t;main( )inta2=3.5.b2=3,5;swapl(a,a+1) ;swap2(printf(“% d %a %d %d /n“ ,a0 ,a1 ,b0 ,b1 ); 程序运行后的车出结果是( )。(分数:1.00)A.3 5 5

19、 3B.5 3 3 5C.3 5 3 5D.5 3 5 342.有以下程序:#include stdio, h#include string, hstruet STUint nam;float TotalSeore;void f( strnct STU p)struct STU s2 = 20044,550 ,20045,537 ;p.num = s 1. num; p.TotalScore = s 1. TotalScore;main( )struct STU s2 = 20041,703 ,20042,580;f(s0 );printf( “%d %3. Of/n“ ,s0.num,s0.

20、TotalSeore); 程序运行后的输出结果是( )。(分数:1.00)A.20045 537B.20044 550C.20042 580D.20041 70343.在 E-R 图中,用来表示实体的图形是( );(分数:1.00)A.矩形B.椭圆形C.菱形D.三角形44.两个或两个以上的模块之间关联的紧密程度称为( )。(分数:1.00)A.耦合度B.内聚度C.复杂度D.数据传输特性45.有以下程序:#include stdio, hvoid sum(int a )a0=a-1 +a1;main ( )int a10 = 1,2,3,4,5,6,7,8,9,10;sum(prinff(“%

21、d /n“,a2); 程序运行后的输出结果是( )。(分数:1.00)A.6B.7C.5D.846.有以下程序:#include stdio.hmain( )char P = a,b,c ,q: “abc“;printf( “% d % d / n“, sizeof(p), sizeof(q) );程序运行后的输出结果是( )。(分数:1.00)A.44B.33C.34D.4347.有以下程序:#include stdio.hmain()int a 10=1,2,3,4,5,6,7,8,9,10,*p= float s;scanf(“% d“, s = * r*r;printf(“s =%f/

22、n“,s);程序在编译时出错,出错的原因是( )。(分数:1.00)A.注释语句书写位置错误B.存放圆半径的变量 r 不应该定义为整型C.输出语句中格式描述符非法D.计算圆面积的赋值语句中使用了非法变量50.对如下二叉树进行后序遍历的结果为( )。(分数:1.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA二、填空题(总题数:18,分数:36.00)51.一棵二叉树第六层(根结点为第一层)的结点数最多为 【1】 个。(分数:2.00)填空项 1:_52.算法复杂度主要包括时间复杂度和 【2】 复杂度。(分数:2.00)填空项 1:_53.在进行模块测试时,要为每个被测试的

23、模块另外设计两类模块:驱动模块和承接模块(桩模块),其中 【3】 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:_54.数据管理技术的发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 【4】 。(分数:2.00)填空项 1:_55.数据结构分为逻辑结构和存储结构,循环队列属于 【5】 结构。(分数:2.00)填空项 1:_56.以下程序的功能是输出如下形式的方阵:13 14 15 169 10 11 125 6 7 81 2 3 4请填空。#include stdio.hmain( )int i,j,x;for(

24、j =4;j 【6】 ;j-)for(i = 1 ;i=4;i+) x=(j-1) *4+ 【7】 ;printf( “%4d“ ,x);printf(“ /n“ );(分数:2.00)填空项 1:_57.以下程序运行后的输出结果是 【8】 。 #include stdio, hmain( )int a = 1,b =2,c =3;if( c = a) printf( “% d /n“ ,c);else printf( “% d /n“ ,b);(分数:2.00)填空项 1:_58.已知字符A的 ASCII 码为 65,以下程序运行后的输出结果是 【9】 。#include stdio.hma

25、in( )char a,b;a=A+5-3; b=a+6-2;printf( “% d% c/n“, a, b);(分数:2.00)填空项 1:_59.已有定义: double * p; 请写出完整的语句,利用 malloc 函数使 p 指向一个双精度型的动态存储单元: 【10】 。(分数:2.00)填空项 1:_60.以下程序运行后的输出结果是 【11】 。#include stdio.hstruct NODEint num;struct NODE * next;main ( )struet NODE s3= ./0,2,/0,3,/O,*p,*q,*r;int sum = 0;s0.nex

26、t=s+1; s1.next=s+2;s2.next=s;p=s; q=p-next; r=q-next:sum+=q-next-num; sum+=r-next-next-num;prinff( “% d /n“, sum);(分数:2.00)填空项 1:_61.以下程序运行后的输出结果是 【12】 。#include stdio.hint f( iht a ,int n)if(n=1) returnf(a,n-1) +an-1;else return 0;main( )int aa5 = 1,2,3,4,5 ,s;s = f(aa,5); prinff(“ % d /n“ ,s);(分数:

27、2.00)填空项 1:_62.有以下程序:#include stdio.hint sub(int n)return(n/10 + n% 10); main( )int x,y;seanf(“ %d“ , y = sub (sub(sub (x);printf(“ %d /n“;,y);若运行时输入:1234回车,程序的输出结果是 【13】 。(分数:2.00)填空项 1:_63.以下函数 sstrcat 的功能是实现字符串的连接,即将 t 所指字符串复制到 s 所指字符串的尾部。例如:,所指字符串为 abed,t 所指字符串为 efgh,调用函数 sstrcat 后 s 所指字符串为 abcd

28、efgh。请填空。#inehde stdio.h#include string.hvoid sstuat(char * 9,char *t)int n;n = strlen (s);while(*(s+n) = 【14】 )s+; t+;(分数:2.00)填空项 1:_64.以下程序运行后的输出结果是 【15】 。#include stdio.h#include string.hchar * ss(char * s)char * p,t;p=s+1:t= *s:whilet * p) *(,p-1) = *p; p+;* (p-1) =t;return s : main ( )char * p

29、,str10 =“ abedefgh“;p = ss(str); printf( “% s /n“. p):(分数:2.00)填空项 1:_65.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。#include stdio.hmain( )int t=0.s =0,i:for(i=1;i=5;i+) t=i+ 【16】 ;s=s+t;prinff(“s = % d/n“. s );(分数:2.00)填空项 1:_66.以下程序运行后的输出结果是 【17】 。#include stdio.hmain ( )char c;int n = 100;float f= 10:d

30、ouble x:x=f*=n/= (c=50);printf(“% d% f/n“,n,x);(分数:2.00)填空项 1:_67.以下函数 rotate 的功能是:将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组的第。列中,把 a 所指二维数组中的第 0 行放到 b 所指二维数组的最后一列中,b 所指二维数组中的其他数据不变。# define N 4void rotate(int a N ,int b N )int, i,j;for(i=0;iN;i+ )bi N-1 = 【18】 ;【19】 =aN-1i;(分数:2.00)填空项 1:_68.以下程序运行后的输出结

31、果是 【20】 。#include stdio.hmain ( )iht x=0210; printf(“%x /n“ ,x);(分数:2.00)填空项 1:_二级 C 语言笔试-337 答案解析(总分:86.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解析:解析 强制类型转换的一般形式为:(类型名)(表达式),而选项 C)中没有给类型名加括号,所以选项 C)错误。2.有以下程序:#include

32、stdio, hmain ( )int k=5,n =0;while ( k0)switch (k)default: break;case 1 : n+ =k;case 2 :case3 : n+ =k;k-;printf( “% d /n“ ,n);程序运行后的输出结果是( )。(分数:1.00)A.0B.4C.6D.7 解析:解析 在程序中,当 L 的值为 5 和 4 时,case 都没有与其匹配的值,所以执行 default 语句;当k=3 时,执行 n+=k;得 n=3;当 L=2 时,执行 case 2:然后顺序执行 case 3:n+ =k;得 n =5;当 k=1 时,执行 ca

33、se 1:n+=k;得 n=6,然后顺序执行 case 2:和 case 3:n+=k;使得 n=7。3.设有定义:int n1=0, n2, *p=;)语句,如果循环体中没有结束循环的语句,循环将无限地进行下去,导致死循环出现。8.以下能正确定义且赋初值的语句是( )。(分数:1.00)A.int n1=n2=10;B.char c=32; C.float f=f+1;D.double x=12.3E2.5;解析:解析 语句 int n1=n2=10;中,由于变量 n2 未定义,所以此赋值语句错误;由于赋值语句中不能存在运算表达式,所以选项 C)中的赋值语句错误;选项 D)中指数表示错误,C

34、 语言规定,e 后面的指数必须为整数;选项 B)中的 32 是 ASCII 码的表示形式,这是 c 语言中字符型数据和整型数据通用的表现,即一个字符数据可以以字符形式出现,也可以以整数形式出现。9.下列选项中不属于结构化程序设计方法的是( )。(分数:1.00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计的方法是自顶向下、逐步求精和模块化。自顶向下是指在程序设计时先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,而应先从最上层总目标开始设计,逐步使问题具体化。逐步求精是指对复杂问题应设计一些子目标作为过渡,逐步细化。模块化是把程

35、序要解决的总目标分解为分目标,再进一步分解为具体的小目标,每个小目标称为一个模块。可复用是面向对象程序设计的一个优点。10.有以下程序,其中函数 f 的功能是将多个字符串按字典顺序排序:#include stdio, h#inelude string, hvoid f(char * p ,int n)char * t;int i,j;for(i=0;in-1;i+)for(j=i+1 ;jn;j + )if(strcmp(pi, pj)0) t =pi;pi =pj ;pj =t;main( )char * p 5 = “abe“.“ aabdfg“.“ abbd“,“ dcdbe“,“ cd

36、“ ;f(P,5 ); printf(“% d/n“, strlen(p1) );程序运行后的输出结果是( )。(分数:1.00)A.2B.3C.60D.4 解析:解析 本题经过排序后,第二个字符串是“abbd“,所以输出结果是 4。11.以下叙述中错误的是( )。(分数:1.00)A.C 语言中对二进制文件的访问速度比文本文件快B.C 语言中,随机文件以二进制代码形式存储数据C.语句 PILE fp;定义了一个名为 fp 的文件指针 D.C 语言中的文本文件以 ASCII 码形式存储数据解析:解析 FILE 是由系统定义的一个结构体类型,并用该类型来定义若干个 FILE 类型的变量。用FIL

37、E 定义的变量必须是数组或指针,选项 C)中的 fP 应该改为*fP。12.有以下程序段:int k=0,a=1,b=2,c=3;k=ab? b:a; k=kc? c:K;执行该程序段后,k 的值是( )。(分数:1.00)A.3B.2 C.1D.0解析:解析 由于 ab 成立,所以表达式 ab?b:a 取 b 的值 2,得到 k=2;由于 kc 不成立,所以表达式 kc?c:k 取 k 的值 2,故 k 的值为 2。13.有以下程序:#include stdio.h#include string.hvoid f(char * s,char*t)char k;k=*s; *s=*t; *t=k

38、;s+; t-;if( * s) f(s,t);main( )char str10 :“abedefg“, * p;p = str + strlen(str)/2+1;f(p,p -2);printf( “% s /n“ ,str);程序运行后的输出结果是( )。(分数:1.00)A.abcdefgB.gfedcba C.gbcdefaD.abedcfg解析:解析 本程序的作用是将字符串 str 倒序。语句 p=str+strlen(str)/2+1;将指针变量 p 指向字符e所在的存储单元,P-2 指向字符,c所在的存储单元,在函数 f 中将这两个存储单元的内容交换,然后将 f 函数中指向字

39、符e的指针变量 s 加 1,指向字符c的指针变量 t 减 1,继续将 s 和 t 指向的存储单元的内容进行交换,直到 s 指向的存储单元的内容为空为止。所以本题程序输出的结果是字符串“abcdefe”的倒序形式“gfedcba“。14.有以下程序:#include stdio.hstruet STUcharname10; int num; float TotalSeore; ;void f(struet STU * p)struet STU s 2 = “SunDan“ ,20044,550 , “Penghua“ ,20045,537 , * q = s;+p; +q; *p= *q;mai

40、n( )struct STU s3 = “YangSan“ ,20041,703 , “LiSiGuo“ ,20042,580 ;f(s) ;printf(“% s % d % 3. Of/n“ ,s 1. name, s 1. num ,s 1. TotalScore);程序运行后的输出结果是( )。(分数:1.00)A.SunDan 20044 550B.Penghua 20045 537 C.LiSiGuo 20042 580D.SunDan 20041 703解析:解析 main 函数将结构体数组,的首地址传递给了 f 函数的结构体指针变量 P,并在函数 f 中改变了指针变量 p 所指

41、向的第二个结构体中的成员变量,这也就是改变了 main 函数中 s1的成员度量,故程序输出的值为 Penghua 20045 537。15.在深度为 7 的满二叉树中,叶子结点的个数为( )。(分数:1.00)A.32B.31C.64 D.63解析:解析 满二叉树是指除最后一层外,每层上的所有结点都有两个子结点;即在满二叉树中,每一层上的结点数都达到最大值,则在满二叉树的第 k 层上有 2k-1个结点,月深度为 m 的满二叉树有 2m-1个结点。深度为 7 的满二叉树,其叶子结点数为 27-1=26=64。16.有以下程序:#include stdio, hvoid sort(int a ,i

42、nt n)int i,j,t;for(i=0;in;i + )for(j =i+ 1;jn;j + )if(aiaj) t=a1 ;ai=aj ;aj =t; main( )int aa10 = 1,2,3,4,5,6,7,8,9,10 ,i;sort(aa +2, 5);for(i =0;i10;i+) prinff(“%d,“ ,aai);prinff(“/n“);程序运行后的输出结果是( )。(分数:1.00)A.1,2,3,4,5,6,7,8,9,10,B.1,2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10, D.1,2,9,8,7,6,5,4,3,

43、10,解析:解析 sort 函数的功能是将给定的数由大到小排序。函数调用 sort(aa+2,5);中的实参 aa+2是 aa2的地址,将其传给形参 a,使得形参中封 a0的值为主函数中 aa2的值,即 3;实参 5 传给形参 n,在 sort 函数中用于指定参加排序的 5 个数,从 aa2到 aa6,所以本题输出的结果是:1,2,7,6,5,4,3,8,9,10,17.有以下程序:#include stdio, hint a =2;int f(int n)static int a: 3;int t=0;if(n%2) static int a=4;t+ =a+;else static int

44、 a=5;t+ :a+;return t + a + +;main ( )int s=a,i;for(i=0;i3;i+)s + =f(i);prinff(“% d /n“ ,s); 程序运行后的输出结果是( )。(分数:1.00)A.26B.28C.29 D.24解析:解析 在函数外面定义的变量 a 是全局变量,其作用范围从定义该变量的位置开始到本文件的结束;在 f 函数中的 if 子句(复合语句)和 else 子句中定义的变量 a 是局部变量,其作用范围只在其所在的复合语句内;在 f 函数中定义的第一个变量 a 是静态局部变量,其作用范围只限于函数 f 内部,无论被调用多少次都只初始化一次

45、,并且保留上次函数调用结束时的值,该变量不对复合语句产生作用,所以,f函数的返回值是这个 a 变量和 t 值相加的结果。18.按照“后进先出”原则组织数据的数据结构是( )。(分数:1.00)A.队列B.栈 C.双向链表D.二叉树解析:解析 栈只允许在表的一端进行插入或删除操作,是一种“后进先出”线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”线性表。19.设变量已正确定义,则以下能正确计算 f=n!的程序段是( )。(分数:1.00)A.f=0; for(i=1; in;i+)f*=i;B.f=1; for(i=1; in; i+)f*=i;C.f=1;

46、for(i=n; i1; i+)f*=i;D.f=1; for(i=n; i=2; i-)f*=i; 解析:解析 n! =n,(n-1)*2*1,由于选项 A)中 f 的初值为 0,所以循环 n 次后,f 的值依然为 0,故选项 A)错误;选项 B)中循环的终止条件是 in,即只执行 n-1 次循环,得到的 f 值为(n-1)*2*1 的结果,故选项 B)错误;在选项 C)中,当 n1 时,由于初值 i=n 符合条件 i1,且增量为+1,故循环中永远不会出现不满足条件 i1 的值,出现死循环。20.以下不能正确计算代数式 (分数:1.00)A.1/3 * sin(1/2) * sin(1/2)

47、 B.SlH(0.5) * sin(0.5)/3C.pow ( sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)解析:解析 在有“/”运算符的表达式中,要避免两个操作数都是整数的情况。本题选项 A)中的“1/3“和“1/2“的值都为 0,使选项 A)的表达式值为 0,但事实上代数式*的值并不为 0,所以选项 A)错误。21.下列叙述中正确的是( )。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对 解析:解析 程序调试的任务是诊断和改正程序中的错误,调试主要在开发阶段;而软件测试贯穿整个软件生命期,目的是尽可能多地发现软件中的错误,为了达到更好的测试效果,应该由独立的第三方来构造测试;软件的运行和维护是指

展开阅读全文
相关资源
猜你喜欢
相关搜索

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

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