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

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

1、二级 C 语言-26 及答案解析(总分:79.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:50.00)1.若有如下说明,则_的叙述是正确的。struct st int a;int b2;a; A. 结构体变量 a 与结构体成员 a 同名,定义是非法的 B. 程序只在执行到该定义时才为结构体 st 分配存储单元 C. 程序运行时为结构体 st 分配 6 个字节存储单元 D. 类型名 struct st 可以通过 extern 关键字提前引用(即引用在前,说明在后) (分数:1.00)A.B.C.D.2.下列有关数据库的描述,正确的是 A. 数据库是一个 DBF 文件 B.

2、数据库是一个关系 C. 数据库是一个结构化的数据集合 D. 数据库是一组文件(分数:1.00)A.B.C.D.3.若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为 U /U A. a0 B. !a C. a=0 D. a(分数:1.00)A.B.C.D.4.下列能正确定义一维数组的选项是U /U。 A. int a5=0,1,2,3,4,5; B. char a=0,1,2,3,4,5; C. char a=A,B,C; D. int a5=“0123“;(分数:2.00)A.B.C.D.5.函数 rewind 的作用是 A. 使文件位置指针重新返回文

3、件的开始位置 B. 将文件位置指针指向文件中所要求的特定位置 C. 使文件位置指针指向文件的末尾 D. 使文件位置指针自动移至下一个字符位置(分数:1.00)A.B.C.D.6.下述程序的输出结果是#includestdio.hvoid main() int a5=2,4,6,8,10;int*p=a,*q= scanf(“%c% c% c%c“, c1, c2, c3, c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c% c/n“, c5, c6); 程序运行后,若从键盘输入(从第 1 列开始):123

4、回车45678回车则输出结果是 A. 1267 B. 1256 C. 1278 D. 1245(分数:2.00)A.B.C.D.9.以下程序的输出结果是U /U。#includestdio.hint a33=1,2,3,4,5,6,7,8,9,*p;main() p=(int*)malloc(sizeof(int);f(p,a);printf(“% d/n“,*p);free(p);f(int *s,int p3)*s=p11;) A. 1 B. 4 C. 7 D. 5(分数:2.00)A.B.C.D.10.有以下定义语句,编译时会出现编译错误的是 A. char a=a; B. char a

5、=/n; C. char a=aa; D. char a=/x2d;(分数:1.00)A.B.C.D.11.设 a 和 b 均为 int 型变量,且 a=6、b=11、c=3,则能使值为 3 的表达式是U /U。 A. b%(c%4) B. b%(c-a%5) C. b%a-a%5 D. (b%a)-(a%4)(分数:1.00)A.B.C.D.12.有以下程序main() int a,b,d=25;a=d/10%9;b=a*sp=“right!“; B. char s10;s=“right!“; C. char s10;*s=“right!“; D. char *sp=“right!“;(分数

6、:2.00)A.B.C.D.16.有以下程序:int*f(int *x,int *y)if(*x*y)return x;else return y;main()int a=7,b=8,*p,*q,*r;p= int i, k, n;fp=fopen(“data.dat“, “w+“);for(i=1; i6; i+) fprintf(fp,“%d “,i);if(i%3=0) fprintf(fp,“/n“);rewind(fp);fscanf(fp, “%d%d“, k, n); printf(“%d %d/n“, k, n);fclose(fp);程序运行后的输出结果是_。 A. 0 0

7、B. 123 45 C. 1 4 D. 1 2(分数:2.00)A.B.C.D.20.下列选项中,不属于模块间耦合的是 A. 数据耦合 B. 标记耦合 C. 异构耦合 D. 公共耦合(分数:2.00)A.B.C.D.21.有以下程序:#includestdio.h#includestdlib.hint fun(int n) int *p;p=(int *)malloc(sizeof(int); *p=n; return *p; main() int a;a=fun(10); printf(“%d/n“, a+fun(10); 程序的运行结果是 A. 0 B. 10 C. 20 D. 出错(分数

8、:2.00)A.B.C.D.22.有以下程序:main()char a7=“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.23.算法的空间复杂度是指U /U。 A.算法程序的长度 B.算法程序中的指令条数 C.算法程序所占的存储空间 D.算法执行过程中所需要的存储空间(分数:1.00)A.B.C.D.24.已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是

9、97,则用八进制表示的字符常量 /101是( )。 A. 字符 A B. 字符 a C. 字符 e D. 非法的常量(分数:1.00)A.B.C.D.25.若 ch 为 char 型变量,k 为 int 型变量(已知字符 a 的 ASCII 码是 97),则执行下列语句后输出的结果为U /U。ch=b;k=10;printf(“%x,%O,“,ch,ch,k);printf(“k=%d/n“,k); A. 因变量类型与格式描述符的类型不匹配,输出无定值 B. 输出项与格式描述符个数不符,输出为 0 值或不定值 C. 62,142,k=%d D. 62,142,k=%10(分数:2.00)A.B

10、.C.D.26.若主函数中有以下定义和语句:main() double a34;fun(a) ;则正确的 fun 函数的首部是 U /U A. void fun(double *s) B. fun(double *s4) C. fun(double(*s)3) D. void fun(double(*s)4)(分数:1.00)A.B.C.D.27.下列设备不是输出设备的是_。 A. 显示器 B. 打印机 C. 绘图仪 D. 扫描仪(分数:2.00)A.B.C.D.28.以下选项中,不能作为合法常量的是U /U。 A. 1.234e04 B. 1.234e0.4 C. 1.234e+4 D. 1

11、.234e0(分数:1.00)A.B.C.D.29.在设计程序时,应采纳的原则之一是_。 A. 程序结构应有助于读者理解 B. 不限制 goto 语句的使用 C. 减少或取消注解行 D. 程序越短越好(分数:2.00)A.B.C.D.30.设有以下定义:union data int d1; float d2; demo;则下面叙述中错误的是U /U。 A. 变量 demo 与成员 d2 所占的内存字节数相同 B. 变量 demo 中各成员的地址相同 C. 变量 demo 和各成员的地址相同 D. 若给 demo.d1 赋 99 后,demo.d2 中的值是 99.0(分数:1.00)A.B.C

12、.D.31.请选出正确的程序段_。 A. int*p scanf(“%d“,p); B. int*s,k; *s=100; C. int*s,k; char *p,c; s= p= *p=a; D. int *s,k; char *p,e; s= p= s=p; *s=1; (分数:1.00)A.B.C.D.32.若有以下定义和语句:#includestdio.hchar s110=“abcd!“,*s2=“/n123/“;printf(“%d%d/n“,strlen(s1),strlen(s2);则输出结果是_。 A.10 7 B.10 5 C.5 5 D.5 8(分数:1.00)A.B.C

13、.D.33.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是U /U。 A. 1 B. 2 C. 3 D. 4(分数:1.00)A.B.C.D.34.关于结构化程序设计原则和方法的描述错误的是U /U。 A. 选用的结构只准许有一个入口和一个出口 B. 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现 C. 不允许使用 GOTO 语句 D. 语言中所没有的控制结构,应该采用前后一致的方法来模拟(分数:2.00)A.B.C.D.35.不合法的 main 函数命令行参数表示形式是 U /U A) main(int a, char *c) B)

14、 main(int arc,char *arv) C) main(int argc,char *argv) C) main(int argv,char*argc)(分数:1.00)A.B.C.D.二、B填空题/B(总题数:15,分数:29.00)36.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的U U /U /U存储结构。填空项 1:_37.下面程序将二维数 a 的行和列元素互换后存放另一个二维数组 b 中。请填空。 main() int a 23=1,2,3,4,5,6; int b32, i,j; printf(“array a“/n“);

15、for(i=0;i=1;i+) for(j=0;U U /U /U;j+) printf(“%5d“,aij); U U /U /U; printf(“/n“); printf(“array b:/n“); for(i=0;U U /U /U;i+) for(j=0;j=1;j+) printf(“%5d“,bij); printf(“/n“);(分数:1.00)填空项 1:_38.以下程序运行后的输出结果是_。 #include stdio.h main() int p=30; printf(“%d/n“,(p/30 ? p/10:p%3); (分数:2.00)填空项 1:_39.已有定义如

16、下: struct node int data; struct node *next; *P; 以下语句调用 malloc 函数,使指针 p 指向一个具有 struct node 类型的动态存储空间。 请填空。 p=(struct node *)malloc_;(分数:1.00)填空项 1:_40.函数 fun 的返回值是_ fun(char*a,char*b) int num=0,n=0; while(*(a+num)!=/0)num+; while(bn)*(a+num)=bn;num+;n+; return num; (分数:2.00)填空项 1:_41.若已知 a=10,b=20,则表

17、达式! ab 的值为U U /U /U。(分数:2.00)填空项 1:_42.算法的复杂度主要包括空间复杂度和 1 复杂度。(分数:3.00)填空项 1:_43.数据流图的类型有 1 和事务型。(分数:2.00)填空项 1:_44.设有以下定义变量的语句,并且已赋确定的值,则表达式“W*X+Z-y”所求得的数据类型为U U /U /U。 char w;int x;float y;double 2;(分数:4.00)填空项 1:_45.以下函数用来求出两整数之和,并通过形参将结果传回。请填空。 void func(int x,int y,U U /U /Uz) * zx+y;(分数:1.00)填

18、空项 1:_46.以下程序运行后的输出结果是_。 main() char a=“123456789“,*p; int i=0; p=a; while (*p) if(i%2=0) *p=*; p+; i+; puts(a); (分数:2.00)填空项 1:_47.以下程序的输出结果是U U /U /U。 main() char s=“ABCD“,*p; for(p=s+1;ps+4;p+)printf(“%s/n“,p);(分数:2.00)填空项 1:_48.若有定义语句:int a36;,按在内存中的存放顺序,a 数组的第 10 个元素是 1。(分数:2.00)填空项 1:_49.下面程序的

19、输出结果是U U /U/U。 main( ) int i3,j2; char * a“DCBA“; printf(“%c%c/n“,ai,aj) (分数:1.00)填空项 1:_50.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 请填空。 #includestdio.h #define N 80 intfun(int a,int n)

20、 int i,j=1; for(i=1;in;i+) if(aj-1U U /U /Uai) aj+=ai; U U /U /U; main() int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,i,n=19; printf(“The original data:/n“); for(i=0;in;i+)printf(“%3d“,ai); n=fun(a,n); printf(“/nThe data after deleted:/n“); for(i=0;in;i+)printf(“%3d“,ai);printf(“/n/n“); (分数:4.00)

21、填空项 1:_二级 C 语言-26 答案解析(总分:79.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:50.00)1.若有如下说明,则_的叙述是正确的。struct st int a;int b2;a; A. 结构体变量 a 与结构体成员 a 同名,定义是非法的 B. 程序只在执行到该定义时才为结构体 st 分配存储单元 C. 程序运行时为结构体 st 分配 6 个字节存储单元 D. 类型名 struct st 可以通过 extern 关键字提前引用(即引用在前,说明在后) (分数:1.00)A.B.C.D. 解析:解析 结构体变量 a 与结构体成员 a 同名是合法的定义

22、,引用成员 a 的方法是 aa,变量 a 处于不同的“层次”上,系统完全能够分情。st 是一个结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量 a 分配 6 个字节的存储单元,故选项 B 和选项 C 错误。2.下列有关数据库的描述,正确的是 A. 数据库是一个 DBF 文件 B. 数据库是一个关系 C. 数据库是一个结构化的数据集合 D. 数据库是一组文件(分数:1.00)A.B.C. D.解析:解析 数据库(Database,简称 DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共

23、享”之特点。3.若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为 U /U A. a0 B. !a C. a=0 D. a(分数:1.00)A.B.C.D. 解析:4.下列能正确定义一维数组的选项是U /U。 A. int a5=0,1,2,3,4,5; B. char a=0,1,2,3,4,5; C. char a=A,B,C; D. int a5=“0123“;(分数:2.00)A.B. C.D.解析:解析 在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越界,因此选项 A)错误;选项 C 中定义的是一个字符变量 C;选项 D)中整型数

24、组 a 中只能存储整型数据,而不能存储字符串常量“0123”。5.函数 rewind 的作用是 A. 使文件位置指针重新返回文件的开始位置 B. 将文件位置指针指向文件中所要求的特定位置 C. 使文件位置指针指向文件的末尾 D. 使文件位置指针自动移至下一个字符位置(分数:1.00)A. B.C.D.解析:解析 函数 rewind 的功能是将文件指针重新指向一个流的开头。用法如下: int rewind(FILE * stream);并且无返值。6.下述程序的输出结果是#includestdio.hvoid main() int a5=2,4,6,8,10;int*p=a,*q= scanf(

25、“%c% c% c%c“, c1, c2, c3, c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c% c/n“, c5, c6); 程序运行后,若从键盘输入(从第 1 列开始):123回车45678回车则输出结果是 A. 1267 B. 1256 C. 1278 D. 1245(分数:2.00)A.B.C.D. 解析:解析 putchar(c1)输出 1,putchar(c2)输出 2,printf(“%c% c/n“, c5, c6)输出 45。9.以下程序的输出结果是U /U。#includestd

26、io.hint a33=1,2,3,4,5,6,7,8,9,*p;main() p=(int*)malloc(sizeof(int);f(p,a);printf(“% d/n“,*p);free(p);f(int *s,int p3)*s=p11;) A. 1 B. 4 C. 7 D. 5(分数:2.00)A.B.C.D. 解析:解析 本题考查了二维数组元素引用的方法。题中用动态存储分配函数 malloc 分配了一个 int 型数据长度大小的内存,然后指针 p 指向了这段内存,函数 f()中对 p 所指向的数据进行了赋值,p11为二维数组第二行第二列的元素,对应于实参 a 的元素 5,所以输出

27、结果为 5。10.有以下定义语句,编译时会出现编译错误的是 A. char a=a; B. char a=/n; C. char a=aa; D. char a=/x2d;(分数:1.00)A.B.C. D.解析:解析 aa 是字符串,字符串的表示要用双引号,可以赋值给字符数组和字符指针变量,但字符串不能赋值给字符变量,只能给字符变量赋值单个字符。11.设 a 和 b 均为 int 型变量,且 a=6、b=11、c=3,则能使值为 3 的表达式是U /U。 A. b%(c%4) B. b%(c-a%5) C. b%a-a%5 D. (b%a)-(a%4)(分数:1.00)A.B.C.D. 解析

28、:解析 选项 D)括号内的运算分别是 b%a=11%6=5 和 a%c=6%4=2,最后得到 5-2=3。12.有以下程序main() int a,b,d=25;a=d/10%9;b=a*sp=“right!“; B. char s10;s=“right!“; C. char s10;*s=“right!“; D. char *sp=“right!“;(分数:2.00)A.B.C.D. 解析:16.有以下程序:int*f(int *x,int *y)if(*x*y)return x;else return y;main()int a=7,b=8,*p,*q,*r;p= int i, k, n;

29、fp=fopen(“data.dat“, “w+“);for(i=1; i6; i+) fprintf(fp,“%d “,i);if(i%3=0) fprintf(fp,“/n“);rewind(fp);fscanf(fp, “%d%d“, k, n); printf(“%d %d/n“, k, n);fclose(fp);程序运行后的输出结果是_。 A. 0 0 B. 123 45 C. 1 4 D. 1 2(分数:2.00)A.B.C.D. 解析:20.下列选项中,不属于模块间耦合的是 A. 数据耦合 B. 标记耦合 C. 异构耦合 D. 公共耦合(分数:2.00)A.B.C. D.解析:

30、解析 模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦合,没有异构耦合这种方式。21.有以下程序:#includestdio.h#includestdlib.hint fun(int n) int *p;p=(int *)malloc(sizeof(int); *p=n; return *p; main() int a;a=fun(10); printf(“%d/n“, a+fun(10); 程序的运行结果是 A. 0 B. 10 C. 20 D. 出错(分数:2.00)A.B.

31、C. D.解析:解析 分配内存空间函数 malloc 的调用形式:(类型说明符*)malloc(size)。其功能是在内存的动态存储区中分配一块长度为“size”字节的连续区域,函数的返回值为该区域的首地址。“类型说明符”表示把该区域用于何种数据类型。22.有以下程序:main()char a7=“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.解析:解析 字符数组的元素数量在定义时已经确

32、定,与其存储的内容无关,本题中语句 char a7定义了由 7 个字符元素组成的字符数组,其 sizeof(a)=7。字符数组常常存储字符串,但其存储的字符串长度与数组长度没有直接关联。C 语言规定,字符串从首字符开始,以第一个值为 ASCII 码 0 的字符结尾,其中的非 0 字符数量就是字符串的长度。在本题中,a0=a,a1=0,a2=0,从首字符位置 a0到第一个 ASCII 值为 0 的字符 a2,其中共有 2 个非 0 字符,因此 strlen(a)=2。23.算法的空间复杂度是指U /U。 A.算法程序的长度 B.算法程序中的指令条数 C.算法程序所占的存储空间 D.算法执行过程中

33、所需要的存储空间(分数:1.00)A.B.C.D. 解析:解析 算法的空间复杂度,是指执行这个算法所需的存储空间。算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间,以及算法执行过程中所需要的额外空间。24.已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八进制表示的字符常量 /101是( )。 A. 字符 A B. 字符 a C. 字符 e D. 非法的常量(分数:1.00)A. B.C.D.解析:解析 本题的关键是八进制 101 的十进制是多少。八进制的 101 转换为十进制为 65,也就是字符A 的 ASCII 码。

34、故应该选择 A。25.若 ch 为 char 型变量,k 为 int 型变量(已知字符 a 的 ASCII 码是 97),则执行下列语句后输出的结果为U /U。ch=b;k=10;printf(“%x,%O,“,ch,ch,k);printf(“k=%d/n“,k); A. 因变量类型与格式描述符的类型不匹配,输出无定值 B. 输出项与格式描述符个数不符,输出为 0 值或不定值 C. 62,142,k=%d D. 62,142,k=%10(分数:2.00)A.B.C. D.解析:解析 第 1 个 printf 函数,格式说明的个数是 2,而输出项的个数是 3,所以对于多余的输出项k 不予输出;

35、第 2 个 pfintf 函数,有两个%说明,第 1 个%后面的字符要原样输出。 知识拓展本题考查printf 函数的格式。 “%x”和“%o”分别表示以十六进制和八进制无符号型输出整型数据(不带前导Ox 或 O):printf 函数中格式说明符之前插入的任何字符都原样输出:格式说明与输出项的个数也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。26.若主函数中有以下定义和语句:main() double a34;fun(a) ;则正确的 fun 函数的首部是 U /U A. void fun(double *s) B. fun(double *s4) C. fun(d

36、ouble(*s)3) D. void fun(double(*s)4)(分数:1.00)A.B.C.D. 解析:27.下列设备不是输出设备的是_。 A. 显示器 B. 打印机 C. 绘图仪 D. 扫描仪(分数:2.00)A.B.C.D. 解析:解析 扫描仪属于输入设备。28.以下选项中,不能作为合法常量的是U /U。 A. 1.234e04 B. 1.234e0.4 C. 1.234e+4 D. 1.234e0(分数:1.00)A.B. C.D.解析:解析 本题考查的是 C 语言中实型常量的指数表示法。实型常量的指数表示法是用字母 e(或 E)将一个实数的小数部分和指数部分分隔开。字母 e(

37、或 E)之前是小数部分,之后是指数部分,这两部分都不能省略,且指数部分必须为整数。故选项 B)不正确。所以,4 个选项中选项 B)符合题意。29.在设计程序时,应采纳的原则之一是_。 A. 程序结构应有助于读者理解 B. 不限制 goto 语句的使用 C. 减少或取消注解行 D. 程序越短越好(分数:2.00)A. B.C.D.解析:解析 滥用 goto 语句将使程序流程无规律,可读性差:添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。30.设有以下定义:union data int d1; float d2; demo;则下面叙述中错误的是U /

38、U。 A. 变量 demo 与成员 d2 所占的内存字节数相同 B. 变量 demo 中各成员的地址相同 C. 变量 demo 和各成员的地址相同 D. 若给 demo.d1 赋 99 后,demo.d2 中的值是 99.0(分数:1.00)A.B.C.D. 解析:解析 本题中 float 所占内存字节数为 4,而 int 类型在 VC 6.0 中占 4 字节,所以 demo 就与成员 d2 所占字节数是相同的,选项 A 的说法正确。联合体的所有成员的首地址都是相同的,和联合体变量的地址一致。故选项 B 和 C 都是正确的。由于 int 类型数据和 float 类型数据在内存中的存放格式是不一

39、样的,所以给 d1 赋 99 后,d2 中不会得到 99.0 这个值。故选项 D 不正确,答案应该选择 D。31.请选出正确的程序段_。 A. int*p scanf(“%d“,p); B. int*s,k; *s=100; C. int*s,k; char *p,c; s= p= *p=a; D. int *s,k; char *p,e; s= p= s=p; *s=1; (分数:1.00)A.B.C. D.解析:解析 本题的 A 和 B 犯了一个同样的错误,即指针变量 p 定义后并没有指向具体的变量,因此不能进行赋值操作。另外,在选项 D 中,s 是 int 指针变量,p 是 char 型

40、指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量 p 的值赋给整型指针变量 s。32.若有以下定义和语句:#includestdio.hchar s110=“abcd!“,*s2=“/n123/“;printf(“%d%d/n“,strlen(s1),strlen(s2);则输出结果是_。 A.10 7 B.10 5 C.5 5 D.5 8(分数:1.00)A.B.C. D.解析:解析 strlen 函数返回字符串的长度,求字符串长度时,遇到结束标识/0为止,但是长度不包括结束标识。字符数组 s1 的后 5 个元素没有赋值,都为/0,即“abcd!“后为/0,所以 st

41、rlen(s1)的值为 5。字符指针 s2 所指向的字符串中,/n 为转义字符换行符,表示 1 个字符,/也为转义字符,代表/,也是 1 个字符,其后为字符串结束标识0;所以 strlen(s2)的值也为 5。因此 C 选项正确。33.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是U /U。 A. 1 B. 2 C. 3 D. 4(分数:1.00)A. B.C.D.解析:解析 条件表达式的形式如下:表达式 17 表达式 2:表达式 3,所以本题条件表达式ab?a:cd?c:d 应该理解为 ab?a:(cd?c:D) ,首先求出条件表达式

42、cd?c:d 的值等于 2,再求条件表达式 ab?a:2 的值,由于 a1b4 成立,所以上述条件表达式的值等于 1。34.关于结构化程序设计原则和方法的描述错误的是U /U。 A. 选用的结构只准许有一个入口和一个出口 B. 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现 C. 不允许使用 GOTO 语句 D. 语言中所没有的控制结构,应该采用前后一致的方法来模拟(分数:2.00)A.B.C. D.解析:解析 限制使用 GOTO 语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用 GOTO 语句。其他 3 项为结构化程序设计的原则。35.不合法的 main 函数命令行参数表示形式

43、是 U /U A) main(int a, char *c) B) main(int arc,char *arv) C) main(int argc,char *argv) C) main(int argv,char*argc)(分数:1.00)A.B.C. D.解析:二、B填空题/B(总题数:15,分数:29.00)36.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的U U /U /U存储结构。填空项 1:_ (正确答案:顺序)解析:解析 本题考查数据结构的队列。队列是一种特殊的线性表,即限定在表的一端进行删除,在表的另一端进行插入操作的线性表。

44、允许删除的一端叫做队头,允许插入的一端叫做队尾。线性表的存储结构主要分为顺序存储结构和链式存储结构。当队列用链式存储结构实现时,就称为链队列;当队列用顺序存储结构实现时,就称为循环表。因此,本题划线处应填入 “顺序”。37.下面程序将二维数 a 的行和列元素互换后存放另一个二维数组 b 中。请填空。 main() int a 23=1,2,3,4,5,6; int b32, i,j; printf(“array a“/n“); for(i=0;i=1;i+) for(j=0;U U /U /U;j+) printf(“%5d“,aij); U U /U /U; printf(“/n“); printf(“arra

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

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

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