2021-2022年吉林省通化市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2021-2022年吉林省通化市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2021-2022年吉林省通化市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2021-2022年吉林省通化市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2021-2022年吉林省通化市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021-2022年吉林省通化市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

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<回车>

45678<回车>

则输出结果是A.A.1267B.1256C.1278D.1245

2.在一个被调用函数中,关于return语句使用的描述,()是错误的。

A.被调用函数中可以不用return语句

B.被调用函数中可以使用多个return语句

C.被调用函数中,如果有返回值,就一定要有return语句

D.被调用函数中,一个return语句可以返回多个值给调用函数

3.以下叙述中正确的是()。

A.C语言编译系统对标识符的长度没有规定

B.C语言标识符的规定长度因系统而异

C.C语言规定标识符长度最多允许16个字符,超长报错

D.C语言规定以下划线开头的标识符长度必须大于1

4.下述程序的输出结果是()。#include<stdio.h>voidmain(){chara=1,b=2;charc=a^b<<2;printf("\n%d",C);}

A.9B.10C.12D.2

5.

6.下列存储器中,存取速度最快的是()。

A.软盘B.硬盘C.光盘D.内存

7.若已定义inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是

A.a[p-A)B.*(&a[i])C.p[i]D.a[10]

8.

9.对n个元素的数组进行(),其平均时间复杂度和最坏情况下都为O(nlogn)。

A.希尔排序B.快速排序C.堆排序D.选择排序

10.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

11.能在O(1)时间内访问线性表的第i个元素的结构是()

A.顺序表B.单链表C.单向循环链表D.双向链表

12.输入序列为ABC,输出为CBA时,经过的栈操作为()。

A.push,pop,push,pop,push,pop

B.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,push,pop,pop

13.串的长度是指()。

A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数

14.以下关于算法的叙述中错误的是()。

A.算法可以用伪代码、流程图等多种形式来描述

B.一个正确的算法必须有输入

C.一个正确的算法必须有输出

D.用流程图描述的算法可以用任何一种计算机高级语言编写成程序代码

15.已知:intx,y;doublez;则以下语句中错误的函数调用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);

B.scanf("%1d*%d&1f",&x,&y,&z);

C.scanf("%x%*d%o",&x,&y);

D.scanf("%x%o%6.2f",&x,&y,&z);

16.

17.已知shortint类型变量占用两个字节,若有定义:shortintx[10]={0,2,4};,则数组x在内存中所占字节数是()。

A.3B.6C.10D.20

18.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。

A.scanfB.getcharC.getsD.getc

19.有以下程序:

运行时,若输入123450<;回车>;,则输出结果是()。

A.66656B.6566456C.66666D.6666656

20.设有二维数组A7×8,每个数据元素占8个字节存储单元,顺序存放,A第一个元素A0,0的存储地址为1000,按行优先存放时,元素A3,4的地址为()。

A.1224B.1208C.1200D.1216

二、2.填空题(20题)21.若变量n中的值为24,则prnt函数共输出【】行。

voidprnt(intn,intaa[])

{inti;

for(i=1;i<=n;i++)

{printf("%6d",aa[i]);

if!(i%5))printf("\n");

}

printf("\n");

}

22.执行以下程序的输出结果是()。

#include<stdio.h>

#defineM5

#defineNM+M

main()

{intk;

k=N*N*5;printf(”%d\n",k);

}

23.以下程序的输出是【】。

main()

{

charstr1[]=Howdoyoudo",*p=strl;

strcpy(str1+strlen(str1)\2"esshe");

pfinff("%s\n",p1);

}

24.下列程序的运行结果是______。

#definePOW(r)(r)*?

main()

{intx=3,y=2,t;

t=POW(x+y);

printf("%d\n",t);

}

25.冒泡排序算法在最好的情况下的元素交换次数为【】。

26.以下程序通过函数指针p调用函数fun,请在填空栏内写出定义变量p的语句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

27.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。

28.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。

29.软件开发环境是全面支持软件开发全过程的______的集合。

30.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。

31.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。

32.以下程序输出的结果是【】。

main()

{inta=5,b=4,c=3,d;

d=(a>b>c);

printf("%d\n",d);

}

33.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。

34.下列程序的输出结果是【】。

main()

{inti;

for(i=1;i=1;i++)

{if(i>4)

{printf("%d\n",i);

break;}

printf("%d\n",i++);}}

35.下列语句能循环______次。

ints=12;

while(s);

--s;

36.在面向对象方法中,类之间共享属性和操作的机制称为______。

37.函数fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

38.下面程序的输出是【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA"m,"BB","CC:,"DD"};

printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);

}

39.以下程序的运行结果是______。

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwtite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

for(i=0;i<10;i++)printf("%d",a[i]);

}

40.下列程序的输出结果是______。

main()

{inta=1,b=2,c=3,t=0;

if(a<B){t=a;a=b;b=t;}

if(a<C){t=a;a=c;c=t;}

printf("%d,%d,%d\n",a,b,C);

}

三、1.选择题(20题)41.下列程序的输出结果是()。#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}

A.5B.3C.7D.1

42.开发软件时对提高开发人员工作效率至关重要的是()

A.操作系统的资源管理功能B.先进的软件开发工具和环境C.程序人员的数量D.计算机的并行处理能力

43.若有以下定义和语句:ints[4][5],(*ps)[5];ps=s;则对s数组元数的正确引用形式是

A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3

44.如下程序的输出结果是

#include<stdio.h>

main()

{charch[2][5]={"6937","8254"},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

for(i=0;i<2;i++)

for(j=0;p[i][j]>′\0′;j+=2)

s=10*s+p[i][j]-′0′;

printf("%d\n",s);}

A.69825B.63825C.6385D.693825

45.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为______。A.EOFB.非0值C.0D.NULL

46.以下程序运行后,输出结果为______。main(){inta[2][3]{1,3,5,7,9,11}*s{2]**pp,*p;s[0]=a[0],s[1]=a[1]pp=sp=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

A.1B.7C.9D.11

47.有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<12;a++){b+=a*2;a+=3;}printf("%d,%d\n",b,A);}程序运行后的输出结果是()。

A.32,13B.46,10C.72,13D.72,10

48.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

49.下面程序的输出结果是______。main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}

A.0B.1C.10D.9

50.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间

51.设有一共用体变量定义如下:uniondata{longw;floatx;inty;charz;};uniondatabeta;执行下列语句后,正确的共用体变量beta的值是()。beta.w=123456;beta.y=888;beta.x=3.1416;beta.z='x';

A.123456B.888C.3.1416D.'X'

52.串的长度是()。

A.串中不同字符的个数B.串中不同字母的个数C.串中所含字符的个数且字符个数大于0D.串中所含字符的个数

53.为了使模块尽可能独立,要求()。

A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

54.以下程序的输出结果是()。main(){inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf("%d%d%d\n"m,k,a,b);}

A.104B.103C.3D.4

55.假定当前盘符下有两个如下文本文件:

文件名a1.txta2.txt

内容123#321#

则下面程序段执行后的结果为

#include"stdio.h"

voidfc(FILE*p)

{charc;

while((c=fgetc(p))!=′#′)putchar(c);}

main()

{FILE*fp;

fp=fopen("a1.txt","r");

fc(fp);

fclose(fp);

fp=fopen("a2.txt","r");

fc(fp);

fclose(fp);

putchar('\n');}

A.123321B.123C.321D.以上答案都不正确

56.下列程序段的运行结果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}

A.67B.0C.字符'C'的地址D.字符'C'

57.有以下程序:#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++)printf("%d,",*p);}程序运行后的输出结果是()。

A.1,2,3,4,5,6,7,8,9,0,

B.2,3,4,5,6,7,8,9,10,1,

C.0,1,2,3,4,5,6,7,8,9,

D.1,1,1,1,1,1,1,1,1,1,

58.若有下列定义,则对a数组元素地址的正确引用是()。

inta[5],*p=a;

A.p+5B.*a+1C.&a+1D.&a[0]

59.若变量已正确定义,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\h",i);其输出结果是()。

A.0,0B.0,1C.1,1D.程序进入无限循环

60.以下程序中,while循环的循环次数是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循环,不能确定次数

四、选择题(20题)61.

62.

63.

64.已知字符‘A’的ASCII代码值是65,字符变量cl的值是‘A’,c2的值是‘D’。则执行语句printf(”%d,%d”,cl,c2—2);的输出结果是()。

A.65,68B.A,68C.A,BD.65,66

65.下列叙述中不正确的是()。

A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.在C的函数中,最好使用全局变量

C.外部变量可以在函数之间传递数据

D.自动变量实质上是一个函数内部的局部变量

66.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图

67.下列不属于C语言关键字的是()。A.A.default

B.register

C.enum

D.external

68.

69.下列对队列的叙述正确的是()。

A.队列按“先进后出”原则组织数据

B.队列属于非线性表

C.队列在队尾删除数据

D.队列按“先进先出”原则组织数据

70.有以下程序:

#include<stdio.h>

main()

{inta=2,b;

b=a<<2;printf("%d\n",b);

}

程序运行后的输出结果是()。

A.2

B.4

C.6

D.8

71.有以下程序程序的运行结果是()。

72.下面的程序段运行后,输出结果是()。

A.9B.0C.不确定值D.18

73.

74.

75.有以下程序:

程序的运行结果是()。

A.*7

B.*3*5

C.*5

D.*2*6

76.下列不可用于C语言用户标识符的是A.A.j2_KEY

B.char

C._g_

D.Double

77.

78.

79.

80.若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。

intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];A.A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

五、程序改错题(1题)81.下列给定程序中,proc()函数的功能是:根据形参m,计算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若输入10,则应输出2.928968。请修改程序中的错误,使它能计算出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数intproc(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:876675896101999401980431451777则输出结果为4,999。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.D解析:putchar(c1)输出1,putchar(c2)输出2,printf(“%c%c\\n”,c5,c6)输出45。

2.D

3.B对于标识符的长度(即一个标识符允许的字符个数),C语言编译系统是有规定的,即标识符的前若干个字符有效,超过的字符将不被识别。不同的C语言编译系统所规定的标识符有效长度是不同的。故本题答案为B选项。

4.A

5.B

6.D\nD【解析】存储器中.存取速度最快的是内存。

\n

7.D解析:通常,引用一个数组元素可以用下标法,如a[P-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

8.D

9.C

10.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。

11.A

12.B

13.B解析::串的长度定义为串中字符的数目。所以B)为正确答案。C)答案不正确,因为串中可以含有相同的字符;A)答案不正确,因为串中可能含有相同的字母,而且也可能含有数字等其他非字母字符;D)答案不正确,因为空格也是一种字符,在计算长度时理应将其计算在内。

14.B【答案】B

【知识点】算法描述

【解析】一个算法应该有0个或多个输入,但是必须有一个或多个输出。

15.BB项的格式应该为scanf("%1d*%d%1f",&x,&y,&z);

16.D

17.D

18.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。

19.Bswitch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个e·*后面的常量表达式的值相等,就执行此ca*后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有ca$e后面的常量表达式都不等,则执行default后面前语句。然后退出。所以输入l时打印65,输入2时打印6,输入3时打印64,输入4时打印5,输入5时打印6。

20.A

21.55解析:本题的关键在于if(!(i%5))printf('\\n),这句,即如果i可被5整除时,则换行。i值为24,可以被5整除4次,并余4,因此,prnt函数共输出5行,最后一行有4个数。

22.5555解析:本题考查的重点是对宏定义的理解。#define指令定义一个标识符和一个串,编译程序在对C源程序处理时.发现该标识符都用该串替换,因此,在语句k=N*N*5将替换成k=M+M*M+M*5后,M被替换成5,从而k=5+5*5+5*5=55。

23.HowdoessheHowdoesshe解析:strcpy(strl,sl):字符串拷贝函数,作用是将字符串sl拷贝到字符数组strl中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括‘\\0’在内。本题中strlen(strl)的值为13,则strcpy(strl+strlen(strl)/2'esshe')相当于strcpy(strl+6'esshe');,因此可得答案为Howdoesshe。

24.解析:本题考查带参数的宏的定义及相关运算。运算过程为:t=POW(x+y)=(2+3)*(2+3)=25。

25.0

26.void(*p)();void(*p)();解析:要定义p为指向函数的指针变量,需写成void(*p)();,注意*p两侧的括弧不可以省略,表示P先与*结合,是指针变量,再与后面的()结合,表示此指针变量指向函数,这个函数无返回值(同fun()函数)。

27.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。

28.p+=2*(p++)p+=2,*(p++)解析:由题可知a[2]=3,因此只要使指针p指向a[3],然后再引用指针的值就可以了。

29.软件工具软件工具解析:软件开发环境是各类软件开发工具的集合体。

30.交换排序交换排序解析:常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。注意:常见的排序方法及其作用机制和区别。

31.x+=1;

32.00解析:本题的关键在于对变量c的赋值运算:

d=(a>b>c)

d=(5>4>3)

先算5>4,为真,得1,即:d=(1>3),此时1>3,为假,得0。

33.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。

34.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i:3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1执行第三次for循环时,i=5,讧语句条件满足,所以执行printf('%d\\n',i)输出5,然后break语句跳出了for循环。

35.无限无限解析:分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。

36.继承继承

37.字符串a和b的长度之和字符串a和b的长度之和解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。

38.DDBBCCDDBBCC解析:C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3]、aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。

39.12300123001,2,3,0,0,1,2,3,0,0,解析:本题考查文件读写函数fread和fwrite的用法。fwrite函数将数组a的前5个元素输出到文件fp中两次,共10个字节,再调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},最后的输出结果为“1,2,3,0,0,1,2,3,0,0”。

40.3123,1,2解析:分析程序,第一个if语句,a=1,b=2,控制条件a<b成立,则交换a、b的值,此时a=2,b=1。第二个if语句,a=2,c=3,控制条件a<c成立,则交换a、c的值,此时a=3,c=2。

41.A解析:本题考查函数的递归调用。在函数递归调用时,fun(5):a=5-fun(3)->fun3:a=3-fun(1)->fun(1):a=3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,晕后的计算结果为5。

42.B解析:软件工程鼓励研制和采用各种先进的软件开发方法、工具和环境。工具和环境的使用又进一步提高了软件的开发效率、维护效率和软件质量。

43.C解析:本题首先定义了一个4行5列的数组s,又定义了一个指向由5个元素组成的一维数组的指针变量ps,通过赋值让ps指向了数组s的首地址。此时数组元素s[i)[j]的地址为“*(ps+i)+j”,数组元素s[i][j]可表示为*(*(pe+i)+j);选项B表示的是数组元素a[3][0]的地址;选项D表示的是数组元素s[1][3]的地址;选项A中“ps+1”为指向下一行(第二行)的地址;选项C中ps[0][2]无条件等价于“*(ps[0]+2)”又无条件等价于“*(*(pe+0)+2)”,即是数组元素s[0][2]。

44.C解析:考查通过指针引用字符串数组中的元素。通过行指针p来实现数组元素的引用。用格式说明符%s进行整串输入与输出。

45.B(27)B)解析:函数feof的功能是:测试fp所指的文件的位置是否已达到文件尾,如果达到文件尾,则函数返回非0值,否则返回0,表示文件尚未结束。

46.C解析:s是—个含有两个元素的指针数组,pp是—个指向指针变量的指针,s[0]是指向二维数组a行下标为0的元素的首地址,即a[0][0]的地址,s[1]为a[1][0]的地址。pp的值为s[o]的地址。*pp=s[1][1])后,a[0][0]的值将被赋值为a[1][1]的值,执行p*pp;后,p中将是s[0]的值,最后的输出语句将输出地址s[0])所指向的数据,即时a[0][0]。

47.A

48.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

49.A解析:p指向a[0],则p+9指向a[9],*(p+9)=a[9]=0。

50.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。

51.D解析:因为共用体的所有成员共同占据一段存储空间,所以成员数据后赋的值会覆盖掉先赋的值,最后共用体变量中保留的就是最后一次赋的值。注意:共用体变量所占存储单元字节数的计算。

52.D解析:串的长度是指串中字符的个数,且其字符个数可以为0。

53.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。

54.D解析:&&的优先级高于=,先计算&&左侧的表达式++a<0。先对a加1再与0比较大小,a=-1+1=0,++a<0为假即0,&&左侧的表达式的值为0,不再计算&&右侧的表达式的值,因此b的值不变仍然为4,整个逻辑表达式的值为0,则k被赋值为0。输出的结果为004。

55.A解析:本题的功能是顺序的读两个文本文件,依次输出。当打开文件时出现错误,fopen函数将返回NULL。

56.B解析:先定义了一个指向字符型数组str的指针p,指针p旨向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\\0',所以*(p+3)=0。

57.A解析:C语言规定数组名代表数组的首地址,所以for循环中循环变量p的初值即&a[o),故输出的*p的值为a[0]的值。执行p++后,指针变量P指向a[1],这时输出*P即输出a[1]的值,经过10次循环,将输出a数组的全部数据:

1,2,3,4,5,6,7,8,9,0,

58.D解析:本题考查如何引用数组元素的地址。

选项A)中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1]、a[2];a[3]、a[4],所以引用错误;选项B)中,*a+1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。

59.B解析:do…while循环的执行过程如下:①执行do后面的循环体中的语句。②计算while后一对圆括号中表达式的值。当值为非0时,转去执行步骤①;当值为0时,执行步骤③。③退出do…while循环。对于本题变量i的初始值等于“0”,接着执行do后面的循环体中的语句,输出变量i的值0。再判断while后面括号中表达式i++的值,其值为0,所以循环结束。此时变量i的值经过自加已经变为1,所以再次输出i的值“1”。

60.D解析:break语句只能在循环体和switch语句体内使用,当break出现在switch语句体内时,其作用只是跳出该switch语句体。当break出现在循环体中,但不在switch语句体内时,则在执行break后,跳出本层循环体.而continue语句的作用是结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本程序中,变量i的初始值为0,判断while后面括号内表达式的值为真,执行循环体内的if语句,判断if后面括号内表达式的值为真,执行“continue;”语句.因continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判断,所以i的值未发生变化,循环条件仍然为真,if语句也仍然成立,因此循环将无止境地进行下去。所以,4个选项中D为所选。

61.B

62.C

63.C

64.D打印时以%d整型格式打印输出,所以字符标量cl的值打印出来就是65,从c2—2的值打印出来就是68—2,即66。所以选择D。

65.B解析:编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,当局部变量所在的函数被调用时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论