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.一个顺序栈一旦声明,其占用空间的大小()。

A.已固定B.可以变动C.不能固定D.动态变化

2.在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行____。

A.q一>next=p一>next;p一>next=q;

B.q一>next=p一>next;p一>next=q;

C.p一>next=q一>next;q=p;

D.p一>next=q一>next;q一>next=p;

3.命令“DIRA:*.*/W”的功能是()

A.宽行显示A盘当前目录的所有文件

B.宽行显示A盘所有目录的所有文件

C.宽行显示A盘的所有目录

D.显示A盘中的文件名,每满一屏后停顿一下

4.以下关于顺序存储结构的叙述中,()是不正确的。

A.存储密度大

B.逻辑上相邻的结点物理上不必邻接

C.可以通过计算机直接确定第i个结点的存储地址

D.插入、删除运算操作不方便

5.程序中主函数的名字为()。

A.mainB.MAINC.MainD.任意标识符

6.若ch为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后输出的结果为()。

cb='b';

k=10;

printf("%X,%o,”,ch,ch,k);

printf("k=%%d\n",k);A.A.因变量类型与格式描述符的类型不匹配,输出无定值

B.输出项与格式描述符个数不符,输出为0值或不定值

C.62,142,k=%d

D.62,142,k=%10

7.关于数组和指针,以下说法错误的是()。

A.数组名本身就是一个指针,指向数组内存的起始位置

B.既可以读入数据到数组中,也可以读入数据到未賦初值的指针中

C.可以将指针指向一个同类型的数组

D.指针可以指向同类型的数组中的任意一个元素

8.某二叉树的先序序列和后序序列正好相同,则该二叉树可能是______的二叉树。

A.高度大于1的左单支B.高度大于1的右单支C.最多只有一个结点D.既有左孩子又有右孩子

9.以下不能定义为用户标识符的是()。

A.VoidB.scanfC.intD._3com_

10.若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是()。

A.5.5B.5C.3D.4.0

11.下列哪个算法是对一个list排序的最快方法()

A.快速排序B.冒泡排序C.二分插入排序D.线性排序

12.在10000个int型变量中找出最大的100个,使用下列排序算法中哪一种用时最快()

A.冒泡排序B.快速排序C.归并排序D.堆排序

13.要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

14.在一棵高度为5的理想平衡树中,至少含有16个结点,最多含有()个结点。

A.31B.32C.30D.33

15.以下程序的运行结果是#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf("Y=%d\t",Y)main(){inta=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);}

A.Y=3B.存在语法错误C.Y=7D.Y=0

16.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构

17.

18.有以下程序

#include<stdio.h>

voidfun(intP)

{intd=2;

P=d++;printf(“%d”,P);}

main()

{inta=1;

fun(A);prinff(“%.d\n”,A);}

程序运行后的输出结果是A.32B.12C.21D.22

19.以下选项中的表达式调用库函数依次求-4.5的绝对值、-4.0的平方根值、30°角的正弦值和2的3次方值。正确的调用是()

A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)

20.设有定义“intx,y,z;”,且各变量已经赋正整数值,则以下能正确表示代数式“”的C语言表达式是()。

A.1.0/x/y/zB.1/x*y*zC.1/(x*y*z)D.1/x/y/(double)z

二、2.填空题(20题)21.栈和队列通常采用的存储结构是【】。

22.以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值,和值通过形参传回主函数输出。请填空,

#include<stdio.h>

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*sum)

{inti,j,k,s=0;

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

k=O;

for(j=1;j<M;j++)

if(a[k][i]>a[j][i])k=j;

s+:【】;

}

【】=s;

}

main()

{intx[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin(【】);

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

}

23.将以下程序写成三目运算表达式是【】。

if(a>b)max=a;

elsemax=b;

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

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

25.结构化程序设计的3种基本结构分别是顺序、选择和______。

26.【】是数据库设计的核心。

27.若有定义语句chars[100],d[100];intj=0,i==0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i]=【】;j++;}

d[j]=0;

28.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。

29.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”语句的输出结果是()。

30.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

31.数据流图的类型有【】和事务型。

32.Jackson方法是一种面向【】的结构化方法。

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

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

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

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

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

main()

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

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

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

}

36.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

37.设x、y、z均为int型变量,请写出描述"x或y中至少有一个小于z"的表达式______。

38.若有程序

main()

{inti,j;

scanf("i=%d,j=%d",&i,&j);

pfintf("i=%d,j=%d\n",i,j);

}

要求给i赋10,给j赋20,则应该从键盘输入【】。

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

40.以下程序运行后的输出结果是【】。

main()

{charm;

m='B'+32;printf("%c\n",m);

三、1.选择题(20题)41.以下程序的输出结果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}

A.20B.21C.22D.23

42.以下程序的输出结果是main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}

A.1B.0C.非0的数D.-1

43.下列叙述中正确的是A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构

44.有以下程序main(){intc=35;printf("%d\n”,c&c);}程序运行后的输出结果是______。

A.0B.70C.35D.1

45.下列程序的输出结果是()。#include<stdio.h>voidmain(){inta=0,b=1,C=2;if(++a>0||++b>0)++c;printf("%d,%d,%d",a,b,C);}

A.0,1,2B.1,2,3C.1,1,3D.1,2,2

46.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法

A.对象B.数据结构C.数据流D.目标

47.下列选项中C语言中不合法的字符串常量的是

A.\121B.′y′C.\n\nD.ABCD\x6d

48.下列叙述中正确的是()。A.用E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系

B.用E-R图只能表示实体集之间一对一的联系

C.用E-R图只能表示实体集之间一对多的联系

D.用E-R图表示的概念数据模型只能转换为关系数据模型

49.下列程序的运行结果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

50.设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是

A.PER是结构体变量名

B.PER是结构体类型名

C.typedefstruct是结构体类型

D.struct是结构体类型名

51.若有定义intw[3][5];,则以下不能正确表示该数组元素的表达式是A.*(*w+3)B.*(*w+1)[4]C.*(*(*w+1))D.*(&w[0][0]+1)

52.下面的程序段运行后,输出结果是

inti,j,x=0;

staticinta[8][8];

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

for(j=0;j<3;j++)

a[i][j]=2*i+j;

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

x+=a[i][j];

printf("%d",x);

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

53.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k=0,n=0;fp=fopen("d1.dat","w");for(i=1;i<4;i++)fprintf(fp,"%d",i);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}执行后输出结果是()。

A.12B.1230C.123D.00

54.整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达是______。

A.X||YB.X|YC.X&YD.XY

55.软件开发模型包括Ⅰ、瀑布模型Ⅱ、扇形模型Ⅲ、快速原型法模型Ⅳ、螺旋模型

A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ

56.从工程管理角度,软件设计一般分为两步完成,它们是()。

A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计

57.下列选项中非法的表达式是________。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

58.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是()。abs(intx){if(x>=0)returnx:elsereturn-x;}main(){inty,z,(*p)(intx)=abs;scanf("%d",&y);z=(*p)(y);______;}

A.printf("%d%d\n",&p,z)

B.printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.Printf("%d%d\n",p,*z)

59.有以下程序:mam(){inti=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出的结果是()。

A.9,2B.10,2C.9,1D.10,1

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

A.局部变量说明为static存储类,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同

四、选择题(20题)61.在面向对象方法中,()描述的是具有相似属性与操作的一组对象。

A.属性B.事件C.方法D.类

62.

63.

64.若有定义语句:A.1B.1.9C.2D.2.4

65.

66.34.有以下程序

#include<stdio.h>

unionpw

{inti;

charch[2];

}a;

main()

{a.ch[0]=13;a.ch[1]=0;

printf("%d\n",a.i);

}

程序的输出结果是

A.13B.14

C.0D.20

67.有以下程序:

程序的运行结果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,f,95,92

D.Zhao,m,85,90

68.有以下程序,若从键盘上输入7和3

main()

{inta,b,k;

scanf("%d,%d",&a,&b);

k=a;

if(a<b)k=a%b;

elsek=b%a;

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

}

程序运行后的输出结果是

A.7B.3

C.1D.0

69.有以下程序

#include<stdio.h>

voidfun(intx)

{if(x/2>1)fun(x/2);

printf("%d",x);

}

main

{fun(7);printf("\n");}

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

A.137B.731C.73D.37

70.

71.若有定义语句:intm[]={1,2,3,4,5},i=4;,则下面对m数组元素的引用中错误的是

A.m[++i]B.m[1*2]

C.m[m[0]]D.m[m[--i]]

72.以下关于简单程序设计的步骤和顺序的说法中正确的是()。

A.确定算法后,整理并写出文档,最后进行编码和上机调试

B.首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档

C.先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档

D.先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构

73.

74.(17)软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及()

A.阶段性报告

B.需求评审

C.总结

D.都不正确

75.有以下程序:

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

A.MtemoonB.AftemoonC.MorningD.orning

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

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

77.以下关于结构化程序设计的叙述中正确的是()。

A.一个结构化程序必须同时由顺序、分支、循环三种结构组成

B.结构化程序使用goto语句会很便捷

C.在C语言中,程序的模块化是利用函数实现的

D.由三种基本结构构成的程序只能解决小规模的问题

78.

79.有以下程序:

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

A.1B.2C.3D.4

80.下列程序的输出结果是()。

#include<stdio.h>

main()

{inti,s=0;

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

if(!(i%2)&&!(i%3))s+=i;

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

}A.4B.39C.45D.6

五、程序改错题(1题)81.程序改错题(共l8分)下列给定程序中,函数fun的功能是:传人一个整数m,计算如下公式的值。例如,若输入5,则应输出一0.283333。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序给m如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.A

2.D

3.A

4.B

5.A

6.C第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有两个%说明,第1个%后面的字符要原样输出。本题考查printf函数的格式。①“%x”和“%0”分别表示以十六进制和八进制无符合型输出整型数据(不带前导ox或0);②printf函数中格式说明符之前插入的任何字符都原样输出;③格式说明与输出项的个数,也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。

7.BC语言中,数组名本身就是一个指针,指向数组内存的起始位置,选项A正确;已经定义的数组被分配了内存空间,所以可以读入数据到数组中,未赋初值的指针没有分配内存空间,不可以读入数据,选项B错误;可以将指针指向一个同类型的数组,选项C正确;指针指向一个数组后,可以通过移动指针,指向该数组中的任意一个元素,选项D正确。故本题答案为B选项。

8.C

9.C标识符的命名可以由字母、数字或下划线组成,并且第1个字符必须为字母或下划线,另外用户标识符不能使用关键字。选项A中的Void可以定义为用户标识符,因为C语言对大小写敏感,Void与关键字void属于不同的标识符;选项B中的scanf是库函数名,属于预定义标识符,它也可以作为用户标识符使用,不过通常不建议这么使用;选项C中的int属于关键字,错误;选项D符合标识符的命名规则,也不属于关键字,可以作为标识符使用。本题答案为C选项。

10.C

11.A

12.B

13.A解析:while循环的执行过程如下:(1)计算while后面圆括号中表达式的值.当值为非0时,执行步骤(2);当值为0时,执行步骤(4)。(2)执行循环体一次。(3)转去执行步骤(1)。(4)退出循环。在选项A)中,表达式(ch=getchar())!='N'表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环.所以选项A)为正确答案。

14.A

15.C解析:宏替换不像函数调用要进行参数值的计算、传递等,而只是简单按照原格式进行字符串的替换。注意:宏定义的命令格式。

16.C

17.C

18.C程序运行后,首先输出的是p的值,然后再输出a的值。p=d++,得到p的值为d的初始值2;a的值不变,仍为1。

19.C

20.A代数式“”的结果为小数,转为C语言的表达式必须是浮点数。A选项由于1.0为浮点数,计算结果自动转换为浮点数。选项B、C、D的表达式均为0,因此只有选项A正确。故本题答案为A选项。

21.链式存储和顺序存储链式存储和顺序存储

22.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:程序段for(j=1;j<M;j++)if(a[k][i]>a[j][i]))k=j;是找出第i列的最小值,第一处应该是每列最小值累加,所以填a[k][i];和值要通过形参传回主函数,第二处应该填*sum;根据形参可以确定第三处应该填x,&s。

23.max=(a>b)?a:b;max=(a>b)?a:b;解析:本题考查三目运算符的用法,条件运算符要求有三个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式3所以,我们可以写成(a,b)?a:b,它是一个“条件表达式”。执行顺序是:如果(a>b)条件为真,则条件表达式取值a,否则取值b。注意:逗号表达式的执行原理。

24.SOSO解析:考查用指针引用字符串数组中元素的方法。题中需要注意两个问题:一是for循环的修正表达式共执行两次'i--'操作;二是*p[i]是对某个字符的引用。

25.重复(循环)重复(循环)解析:结构化程序设计包括3种基本的结构:顺序结构、选择结构和重复结构(循环结构),利用这3种结构就足以表达出各种其他形式结构的程序设计方法。其中利用循环结构,可以简化大量的程序执行。

26.数据模型数据模型

27.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。

28.软件工程学软件工程学

29.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。\'\\t\'是转义字符,代表横向跳若干格;\'\\'\'是转义字符,代表双引号:\'\\023\'也只代表一个字符,而不管转义字符后面有几个符;\'\\xAB\'是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。题中语句中的字符串有5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。

30.33解析:这里:b-5=4,a-=4之后a的值为6,并把它赋给c。此时b的值并未被改变。在第2个表达式中,也只有赋值表达式b=3改变了b的值。所以两行语句执行完毕,b的值应该为3。

31.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。

32.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。

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

34.8208,20解析:本题考查while循环和++运算符的运用。x=0符合条件x<15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8-20,此时y=8。

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

36.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

37.X<Z||y<zX<Z||y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即X<Z或y<z,是“或”的关系。

38.i=0j=20i=0,j=20解析:scanf()函数的使用,该函数的第一个参数是格式字符串,主要由两类字符组成,一类是非格式符要求原样输入,一类是格式符对应要输入的变量,所以说本题中应该原样输入i=,j=,后面分别给变量0和20,所以说空格处应该填入i=0,j=20。

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

40.bb解析:在ASCII码表中,至少有3个值考生得记住:,0,的ASCII码为48;‘A’的ASCII码为65;‘a’的ASCII码为97。因为记住这3个后,其他字母和数字的ASCII码就可以很容易推出来了。本题中,“B”的ASCII码为‘A’+1=66,所以,字符类型m的ASCII为66+32=98=97+1=‘a’+1,所以最后输出的结果为字符‘b’。

41.B解析:第1个循环对数组a进行赋值:第2个循环对数组p进行赋值;第3个循环对k进行累加,k的初值等于5,第1次循环,k=k+p[0]*2=5+0*2=5,第2次循环,k=k+p[1]*2=5+2*2=9,第3次循环,k=k+p[2]*2=9+6*2=21并输出。

42.A解析:本题考核的知识点是逻辑运算符的运用。由于单目运算符优先级高于“&&”和“‖”、运算,所以先计算!a、!b和!c分别为“假”、“假”、“真”,然后是&&运算和“‖”运算,原表达式就等价于“假”&&“假”‖“真”又由于“&&”的优先级高于“‖”运算符,所以先计算“假”&&“假”,还是为假,最后是“假”‖,“真”为真。因此最后d被赋值为1,故最后输出为1。所以,4个选项中A为所选。

43.A根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:1,有且只有一根节结点,2,每一个结点最多有一个前件,也最多有一个后件,则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。

44.C解析:本题考查的是对位与运算符&的理解。位与运算是将两个运算分量看作两个二进制数,然后对两个二进制数的相应位进行与运算,若同时为1则结果相应位为1,否则结果相应位为0。因此,当两个运算分量相同时,它们的相应位肯定也相同,即不同为1就同为0。所以得到的结果和运算分量也相同。所以,4个选项中选项C)符合题意。

45.C解析:本题考查if语句。先判断if语句的条件是否成立,++a->0,此条件成立,又因为是进行逻辑或运算,在己知其中一个运算对象为真的情况下,不必判断另外一个运算符的真假,即不进行++b操作,就可以直接得出整个表达式的值为逻辑1,执行下列的++c。

46.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

47.B解析:字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。由此可知,选项A)、C)、D)都是合法的字符串常量,而选B)是一个字符常量。

48.A解析:用E-R图可以简单明了地描述实体及其相互之间的联系,用E-R图还可以方便地描述多个实体集之间的联系和一个实体集内部实体之间的联系。因此,选项A中的说法是正确的,而选项B与C中的说法都是错误的。

为了建立用户所要求的数据库.必须把概念结构(用E-R图表示的概念数据模型)转换为某个具体的数据库管理系统所支持的数据模型,这就是逻辑结构设计所要完成的任务。

在已给定数据库管理系统的情况下,数据库的逻辑设计可以分两步来进行:

①将概念模型转换成一般的数据模型;

②将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。

由此可知,用E-R图表示的概念数据模型不仅能转换为关系数据模型,还可以转换为其他数据模型,如网状模型和层次模型等。因此,选项D中的说法也是错误的。

49.B解析:本题考查带参数的宏的定义及相关运算:S=m+n+m+n*k=1+2+1+2*3=10。

50.B解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

51.C在C语言中,二维数组的名字表示的是二维数组的地址,表达式*(W+1)表示的是二维数组的第一行的第二个元素。在其前面再加上*(*(w+1))就是错误的表达式。

52.C解析:本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:

012

234

456

由于数组的下标是从0开始的,所以二维数组元素a[i][j]表示的是二维数组a的第i+1行、第j+1列对应位置的元素。

53.B解析:函数fopen(constchar*filename,constchar*mode)的功能,是以mode指定的模式打开filename指定的磁盘文件;fclose(FILE*fp)的功能是关闭文件指针fp指向的文件;函数fscanf(FILE*fp,constchar*format[,address,--])的功能是根据format中的格式从fP指向的文件中读取数据,并存入到相应的address指向的变量中。函数fprintf(FILE*fp,constchar*format[,argument,--])的功能是把argument列表中的表达式值写到fp所指向的文件中:本题中首先定义了一个文件指针fp,然后通过函数fopen以“w”的方式打开文件“d1.dat”,直接通过一个for循环,每循环一次调用函数fpfintf将i的值写进fP所指的文件中,该循环共循环3次,循环完后fP所指文件的内容为123,然后通过fclose函数关闭fp所指文件。接着通过fscanf函数将fP所指文件的内容读出并赋值给变量k和变量n,由于fp所指文件中只有123没有分隔符,故只给k赋值为123,变量n的值依然为以前的值,故最后输出k和n的值为123。

54.D解析:“||”为或运算符,当其左右表达式中只要一个为非零则整个表达式的值1。是按位或,&是按位与,^是按位异或,这三位运算符是按值的二进制位来比较的。

55.C解析:软件开发模型包括瀑布模型、快速原型法模型和螺旋模型。

56.A解析:从工程管理的角度看,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步精化成软件的算法或表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计/数据设计和过程设计。因此,本题的正确答案是A。

57.D解析:赋值表达式的左侧不能为常量或表达式,所以D是非法的表达式。

58.B解析:可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。注意:调用函数和被调用函数之间的数据传递。

59.B解析:++、--运算符在变量之前是先使变量的值加1或减1,然后再使用变量的值:如果在变量之后则先使用变量之前的值,再把变量的值加1或减1。显然,程序中表达式“i--”的值为10,“++j”的值为2,所以最后输出的值为10和2,所以,B选项为所选。

60.A解析:局部变量在执行到它所在的程序块时产生,执行完时被摧毁,而静态局部变量的生存期将一直延长到程序运行结束,故选项A正确;全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束,故选项B不正确:未赋初值的局部变量的初值是随机的,故选项C不正确;形参只能是一般局部变量,不能使用任何存储类说明符,故选项D不正确。所以,4个选项中选项A符合题意。

61.D解析:类(calss)描述的是具有相似属性与操作的一组对象,而一个具体对象则

温馨提示

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

评论

0/150

提交评论