2022-2023年黑龙江省双鸭山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2022-2023年黑龙江省双鸭山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2022-2023年黑龙江省双鸭山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2022-2023年黑龙江省双鸭山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2022-2023年黑龙江省双鸭山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2022-2023年黑龙江省双鸭山市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.有如下形式的函数:intfun(inta[4][5],int*p[10],intn){…}调用函数之前需要对函数进行说明,即所谓的函数向前引用说明,以下对fun函数说明正确的是()。A.intfun(intb[][5],int*r[],intm);

B.intfun(inta[4][],int*p[10],intn);

C.intfun(inta[][],int*p[],intn);

D.intfun(inta[],int*p[],intn);

3.已定义以下函数fun(char*p2,char*p1){while((*p2=*p1)!='0'){P1++;p2++;}}函数的功能是

A.将p1所指字符串复制到p2所指内存空间

B.将P1所指字符串的地址赋给指针p2

C.对p1和p2两个指针所指字符串进行比较

D.检查P1和p2两个指针所指字符串中是否有'\0'

4.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。

A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)

5.下列不属于软件工程的3个要素的是

A.工具B.过程C.方法D.环境

6.下列数据模型中,具有坚实理论基础的是()。

A.关系模型B.网状模型C.层次模型D.以上三个都是

7.设有以下语句

charx=3,y=6,z;

z=x^y<<2;

则z的二进制值是

A.00010100B.00011011C.00011100D.00011000

8.有以下程序段

#include<stdio.h>

voidfun(char*fname,char*st)

{FILE*myf;

inti;

myf=fopen(fname,"w");

for(i=0;i<strlen(st);i++)fputc(st[i],myf);

fclose(myf);

}

main()

{fun("test.t","newworld");

fun("test.t","hello,");}

程序执行后,文件test.t中的内容是A.A.hello,

B.newworldhello,

C.newworld

D.hello,rld

9.有以下程序:

#include<stdio.h>

main()

{ints=0.n;

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

{switch(s)

{case0;

case1:s+=1;

case2:s+=2;break;

case3:S+=3;

default:s+=4;

}

printf("%d,"s);

}

}

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

A.1,2,4,

B.1,3,6,

C.3,10,14,

D.3,6,10,

10.深度为5的二叉树至多有C个结点。

A.16B.32C.31D.10

11.存储以下数据,占用存储字节最多的是()。

A.0B.‘0’C.“0”D.0.0

12.如有inta=11;则表达式(a/1)的值是()。

A.0B.3C.4D.11

13.

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

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

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

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

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

15.有以下程序:#include<stdio.h>point(char*p){p+=3;}main()charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);

A.aB.bC.cD.d

16.语句int(*ptr)的含义是()。A.A.ptr是一个返回值为int的函数

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

17.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

18.在软件设计中不使用的工具是()。

A.系统结构图B.程序流程图C.PAD图D.数据流图(DFD图)

19.设已包含头文件<string.h>,下列程序段的运行结果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

A.3B.4C.6D.5

20.若有以下说明:chars1[]={"tree"},s2[]={"flower"};,则以下对数组元素或数组的输出语句中,正确的是()。

A.printf("%s%s",s1[5],s2[7]);

B.printf("%c%c",s1,s2);

C.puts(s1);puts(s2);

D.puts(s1,s2);

二、2.填空题(20题)21.以下程序的运行结果是【】。

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

printf("%d\n",MAX(i,j));

}

22.若a是int型变量,且a的初值为4,则计算a+=a-=a*a表达式后a的值为______。

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

main()

{intX==1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

24.若有如下定义,doublea[100];,则a数组元素的下标上限是【】。

25.以下程序的运行结果是【】。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

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

27.最简单的交换排序方法是______。

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

doublesub(doublex,doubley,doublez)

{y-=1.0;

z=z+x;

returnz;

}

main()

{doublea=2.5,b=9.0;

printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));

}

29.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,队列属于______。

30.关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。

31.以下程序段用以统计链表中元素的个数。其中first指向链表第一个结点,count用来统计结点个数。请填空。

structlink

{chardata;

structlink*next;

}

structlink*p,*first;

|

intcount=0;

p=first;

while(【】)

{

【】;

p=【】;

}

32.下面程序的功能:输出100以内能被3整除且个位数为6的所有整数,请填空。

#include<stdio.h>

main()

{inti,j;

for(i=0;i<10或i<=9;i++)

{j=i*10+6;

if(【】)continue;

printf("%d",j);

}

}

33.关键字ASC和DESC分别表示【】的含义。

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

35.与表达式a+=b等价的另一书写形式是______。

36.若有下列定义和语句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

则输出结果为______。

37.数据的基本单位是______。

38.在关系运算中,查找满足一定条件的元组的运算称之为【】。

39.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

三、1.选择题(20题)41.下列程序输出的结果是()。main(){inta;a=-4+4*5-6;printf("%d",a);a=4+4%5-6;printf("%d",a);a=-3+4%6/5;printf("%d",a);a=(7+6)%5/2;printf("%d",a);}

A.102-31B.10-221C.11-221D.10221

42.下列程序的运行结果是

#include"stdio.h"

main()

{intx=-9,y=5,z=8;

if(x<y)

if(y<0)z=0;

elsez+=1;

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

A.6B.7C.8D.9

43.下面语句的输出结果是______。printf("%d\n",strlen("\t\"\065\xff\n"));

A.14B.8C.5D.输出项不合法,无正常输出

44.有以下程序intfl(intx.ihty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:X;}main(){inta=4,b=3.c=5,d,e,f;d=fl{a,B);d=f1(d,C):e=f2{a,B);e=f2(e.C);f=a+b+c-d-e;printf("%d,%d,%d\n",d,f,e);}执行后输出的结果是

A.3,4,5B.13,4C.5,4,3D.3,5,4

45.以下叙述中不正确的是

A.在不同的函数中可以使用相同的名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

46.设有如下三个关系表:

下列操作中正确的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

47.下述关于数据库系统的叙述中正确的是______。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

48.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为______。

A.abcdefB.abcdC.abcdD.abcdef

49.下列选项中可作为C语言合法常量的是()。

A.-80B.-80C.-80.0D.-80.0e

50.有以下程序:#include<stdio.h>main(){chara:'a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序运行后的输出结果是()。

A.b,bB.b,cC.a,bD.a,c

51.若fp是指向某文件的指针,且通过该文件指针读数据已读到文件末尾,则函数feof(fp)的返回值是()。

A.EOFB.-1C.1D.NULL

52.下列关于线性表的叙述中,不正确的是()

A.线性表可以是空表

B.线性表是一种线性结构

C.线性表的所有结点有且仅有一个前件和后件

D.线性表是由n个元素组成的一个有限序列

53.若变量都已正确说明,则以下程序段输出结果为()。#include<stdio.h>main(){chara='a';intb=2;printf(a>b?”***a=%d":"###b=%d",a,B;}

A.***a=3B.###b=3C.***a=3##b=5D.全部错误

54.关于结构化程序设计原则和方法的描述错误的是()。

A.选用的结构只准许有一个入口和一个出口

B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C.不允许使用GOTO语句

D.语言中所没有的控制结构,应该采用前后一致的方法来模拟

55.以下只有在使用时才为该类型变量分配内存的存储类说明是______。

A.auto和static

B.auto和registet

C.register和static

D.extern和register

56.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

57.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。Ⅰ.人工管理阶段Ⅱ.文件系统阶段Ⅲ.数据库阶段()

A.仅ⅠB.仅ⅢC.Ⅰ和ⅡD.Ⅱ和Ⅲ

58.有以下程序:main(){inta[3][3],*p.i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序运行后的输出结果是()。

A.012B.123C.234D.345

59.以下程序的输出结果是()。#include<stdio.h>intfun(intn,int*s){intf1,f2;if(n==0||n==1)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=f1+f2;}}voidmain(){intx;fun(6,&x);printf("\n%d",x);}

A.7B.13C.9D.10

60.若希望下列的程序运行后输出25,程序空白处的正确选项是()。

main()

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

printf("%d",j-40);

}

A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i:2;i<4;++i

四、选择题(20题)61.以下选项中正确的语句组是()。

62.关系模型允许定义三类数据约束,下列不属于数据约束的是()。A.A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束

63.HTTP协议的内容协商消息头包括()。

i.内容协商消息头ii.缓存控制消息头

iii.条件控制消息头iv.服务器状态消息头

A.i和iiB.i、ii和iiiC.ii和iiiD.iii和iv

64.

65.

66.

67.有以下程序:

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

A.55.B.50C.45D.60

68.算法的时间复杂度是指()。

A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程所需要的基本运算次数D.算法程序中的指令条数

69.设已有定义:floatx;,则以下对指针变量P进行定义且赋初值的语句中正确的是()。

A.int*p=(float)x;

B.float*p=&x;

C.floatp=&x;

D.float=1024;

70.下列叙述中错误的是()。

A.线性表是由n个元素组成的一个有限序列

B.线性表是一种线性结构

C.线性表的所有结点有且仅有一个前件和后件

D.线性表可以是空表

71.

72.下面叙述中错误的是()。

A.软件测试的目的是发现错误并改正错误

B.对被调试的程序进行“错误定位”是程序调试的必要步骤

C.程序调试通常也称为Debu9

D.软件测试应严格执行测试计划,排除测试的随意性

73.在函数中默认存储类型说明符的变量应该是________存储类型。

A.内部静态B.外部C.自动D.寄存器

74.

75.有如下程序:main(){intx=23;do{printf(”%d”,x--);}while(!x);}该程序的执行结果是()。A.321B.23C.不输出任何内容D.陷入死循环

76.若在定义语句:

77.有如下程序

main()

{

inta=2,b=-1,c=2;

if(a<b)c=1;

if(b<0)c=0;

elsec++;

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

}

该程序的输出结果是

A.0B.1

C.2D.3

78.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()

A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程

79.main()

{intn;(n=6*4,n+6),n*2;printf(“n=%d\n”,n);}

此程序的输出结果是______________.

A.30B.24C.60D.48

80.有以下程序:

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

A.0B.9C.6D.8

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写fun()函数,其功能是:计算并输出3~m所有素数的平方根之和。例如,若主函数从键盘给m输入50后,则输出为s=63.665791。注意:m的值要大于2但不大于l00。部分源程序给出如下。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B

2.A题干中函数的定义指出了函数名为fun,返回值的数据类型为int。函数包含3个参数,第1个参数是整型的二维数组,第2个参数是整型数组,第3个参数是整型变量。在定义二维数组时,必须指定第二维的长度,所以选项B、C、D错误,选项A正确。本题答案为A选项。

3.A解析:fun()函数中声明了两个字符串指针作为形参,在其函数体中用了一个while循环,首先while括号内表达式*p2=*p1是将p1所指的内容赋值到P2所指的存储空间中,然后再判断是否为'\\0',表达式的值为真时,执行循环体,指针p1和指针P2分别下移一位,当p1指向字符'\\0'时,表达式的值为假,循环结束,故此函数的功能是将p1所指字符串复制到p2所指内存空间中。

4.A

5.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。

6.A解析:在层次模型和网状模型的系统研究和数据库设计中,其性能和质量主要决定于设计者的经验和技术水平,缺乏一定的理论指导。关系模型有坚实的理论基础,它以数学理论为基础,从而避免了层次模型和网状模型系统中存在的问题。

7.B本题主要考查位运算。“按位异或”运算(^)是双目运算符,其功能是把参与运算的两数各对应的二进制位相异或,它在操作时,两对应位相同结果为0,不同则为1。“左移”运算(<<)的功能是把“<<”左边的运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。左移时,若左端移出的部分不包含有效二进制数1,则每左移一位,相当于移位对象乘以2。

本题中,有三个字符型的变量x,y,z,其中x和y的值分别为3和6。先转换为二进制数分别为00000011和00000110。本题中需要注意的是逻辑左移运算符的优先级比按位异或运算符的优先级高,因此,先将y进行运算逻辑左移2位操作,得到的结果为00011000,然后进行按位异或运算,得到最后的结果是00011011。本题正确的答案选B。

8.D本题主要考查文件的操作。在本题的程序中,首先定义了一个无返回值的函数fun,该函数带有两个指针类型的形参,其中第一个形参指向需要被操作文件的文件名,而第二个形参指向被操作的字符串。在函数体中,首先定义一个文件指针,然后以只写的方式打开第一个形参所指向的文件,接着执行for循环,循环结束的条件是循环变量小于被操作字符串的长度,循环体中的程序fputc(st[i],myf);的功能是将字符串中的当前字符输入到文件中。由这些分析我们可以知道,函数fun的作用是将字符串的内容写入到文件中。

在主函数中,两次调用函数fun,当第一次调用时,写入文件的内容为newworld,然后第二次调用函数,此时打开文件,文件的指针重新回到开始,然后往文件中写内容“hello,”,由于此时文件中已经有内容“newworld”,则需要覆盖前面一部分的内容,因此,程序的最终输出结果是hello,rld,本题的正确答案选D。

9.C\n本题考查switch…ease语句,在本题的程序中,只有在case2:s=s+2;break;,才有break语句,所以当s=0时会执行s=s+1;s=s+2;,所以s=3,当s=3时,会执行s=s十3;s=s+4;,所以s=10,依此类推,答案选择C。

\n

10.C

11.D

12.D

13.D

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

15.A解析:C函数的参数传递方式采用按值传递,不能通过调用函数改变形参指针本身的值,只能改变指针所指变量的值。调用point函数时,将实参指针p的值(b数组的首地址)传给了形参指针P,P+=3运算使形参指针指向字符d,但并不能改变main函数中p的值,所以本题正确答案应该是选项A)。

16.C本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。

17.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

18.D【答案】:D

【知识点】:软件设计中使用的工具

【解析】:数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的。PAD图是问题分析图(ProblemAnalysisDiagram)的英文缩写,是在详细设计阶段用到的。系统结构图是对软件系统结构的总体设计的图形显示,是在概要设计阶段用到的。程序流程图是对程序流程的图形表示,故选D。

19.A解析:头文件<string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。

strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。

20.C

21.99解析:本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)。

22.-24-24解析:本题考查赋值运算符a+=b等价于a=a+b;a-=a*a等价于a=a-a*a=4-4*4=-12;a+=a,即a=a+a=-24。

23.2121解析:外层switch语句后面括号里的x的值为1,所以执行从case1:后面的语句开始执行,而case1:后面语句也为switch语句,这个switch语句后面括号里的y的值为0,所以从该switch语句里的case0:开始执行即执行a++,这时a的值变为1,执行完毕,遇到break语句,退出内层switch语句,又回到外层switch语句,继续执行case1:下面的语句即case2:执行完毕后,a自加1变为2,b自加1变1。所以最后输出的a和b的值为21。

24.9999解析:数组的下标是从0开始存放数据的,而不是1,当数组大小为n时,其下标从0开始,到n-1,所以本题的答案为99。

25.k=5k=5解析:本题主要考查了函数的递归调用方法。g=0或\ue008g=1\ue009或g=2是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。

26.软件工程学软件工程学解析:为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径。逐步形成了软件工程的概念,开辟了工程学的新兴领域——软件工程学。

27.冒泡排序冒泡排序解析:交换排序是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序是一种最简单的交换排序方法,它是通过相邻元素之间的相互交换逐步将线性表变成有序。

28.functionrunningresultis:9.0

29.线性结构线性结构解析:队列有且只有一个根结点,而且每一个结点最多有一个前件,也最多有一个后件,满足线性结构的条件,所以属于线性结构。

30.查询查询

31.p!=NULLcount++(*p).next

32.j%3!=0或j%3j%3!=0或j%3解析:题目要求输出100以内能被3整除且个位数为6的所有整数,且通过for循环实现,循环体内j=i*10+6;这也就满足了个位数为6的条件,所以第1个空格填入i<10或i<=9;if语句中的continue说明如果条件不成立则不输出j,所以第2空填j%3!=0或j%3。

33.升序排列和降序排列升序排列和降序排列解析:ASC表示升序排列,DESC表示降序排列,多用在索引定义和SELECT语句中的ORDER子句中。

34.BCDCDDBCD\r\nCD\r\nD解析:本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值“BCD”并换行,依次执行循环语句。

35.a=a+ba=a+b解析:a+=b与a=a+b等价,作用是把变量a的值加b后再赋给变量a。

36.44解析:strcpy(s1,s2)函数的作用是将字符串s2中的内容拷贝到字符串s1中的内容覆盖。strlen()函数是求字符串的长度。本题实际上是要求s2字符串的长度,即是4。

37.数据元素。数据元素。

38.选择选择解析:在关系数据库中,选择运算也是一个元运算,关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由R中的那些满足逻辑条件的元组所组成。

39.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。

40.44解析:在主函数中,语句p=a;p++使用指针p指向数组a[1],所以输出结果为4。

41.A解析:本题考查%和/运算符的使用。如果两个数不能整除,只取结果的整数部分,小数部分全部舍去。运算符“%”要求两个运算对象都为整型,其结果是整数除法的余数。表达式:a=-4+4*5-6=-4+20-6=10:表达式:a=4+4%5-6=4+4-6=2;表达式:a=-3+4%6/5=-3+0=-3;表达式:a=(7+6)%5/2=13%5/2=1。

42.D解析:if卐lse语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个if-else相当于嵌套在第一个if子句里,相当于x<y&&y<0时,z=0;当x<y&&y>=0时,z=z+1。

43.C解析:在C语言中,以“\\”开头的字符均为转义字符,其中“\\”后可跟1~3位八进制数或在“\\”后跟字母x及1~2位十六进制数,以此来代表一个特定的字符。

44.C解析:本题考核的知识点是函数的定义与函数调用。函数f1()的作用是返回形参x和y的较大值,函数f2()的作用是返回形参x和y的较小值,在main()函数中通过调用两次f1()函数,求得a、b、c的最大值并存放在变量d中,通过调用两次f2()函数,求得a、b、c的最小值并存放到变量e中.由程序可知d值为5,f的值为4,e的值为3,因此最后输出的d,f、e的值为5、4,3。所以,C选项为所选。

45.D解析:C语言在函数中说明的变量为局部变量,只在函数内起作用但不会影响到其他函数。所以在不同的函数中使用相同的函数名不代表是同一函数,A)项正确。在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,B)正确。在一个函数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用,C)正确。复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以D)项错误。注意:函数的书写风格。

46.C解析:本题考查数据库的关系代数运算。R表中只有一个域名A,有两个记录(也叫元组),分别是m和n;S表中有两个域名,分别是B和C,其所对应的记录分别为1和3。注意观察表T,它是由R的第一个记录依次与S的所有记录组合,然后再由R的第二个记录与S的所有记录组合,形成的一个新表。上述运算恰恰符合关系代数的笛卡儿积运算规则。关系代数中,笛卡儿积运算用“×”来表示。因此,上述运算可以表示为T=R×S。因此,本题的正确答案为C。

47.A解析:由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。这里所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一个数据在系统的不同拷贝处有不同的值。

48.C解析:1.getchar():此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。

2.putchar():此函数的作用是向终端输出一个字符,也可以输出控制字符。本题在输入字符时,ab和c后面的回车符分别赋给了c[2]和c[4],所以,正确答案为C。

49.A

50.A解析:程序中pdntf('%c',++a)是先将a加1,再输a,因此输出的是\'b\',而pfintf('%c\\n',b=a++)是先将a的值赋给b,a再加1,所以输出的也是\'b\'。

51.C解析:EOF是指向文本文件的结束标志,NULL是打开文件错误时的返回值。feof(fp)用来判断文件指针是否指向了文件末尾,如果指向了文件末尾就返回1,否则返回0。文本文件和二进制文件均可使用此函数。

52.CC)【解析】线性表是一种线性结构,由n(n≥O)个元素组成,所以线性表可以是空表。但是性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C)是错误的。

53.D

54.C解析:限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他3项为结构化程序设计的原则。

55.B

56.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

57.A解析:数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。

58.D解析:本题中定义的二维数组a[3][3]中9个元素在内存中的排列顺序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函数中,首先定义了二维数组a[3][3],然后定义了—个指针p指向数组a的第1个元素a[0][0]在第一个for循环中,依数组a在内存中的排列顺序为其元素赋从0~8九个值,然后用第二个for循环依次输出a[1][0],a[1][1],a[1][2]三个元素的值。所以,4个选项中选项D符合题意。

59.B解析:n=0或n=1是递归的终止条件。然后利用已知值逐步递推求出未知值。注意:通过传送地址值,在被调用函数中直接改变调用函数中的变量的值。

60.D解析:要想使程序输出是25,则i-40=25,j=65,而j初值是50,所以填入for循环中的语句,使引用的数组元素累加为65-50=15即可。

61.A字符指针可以用字符串常量赋值,字符数组不可以,所以答案选择A)。

62.C数据约束是用来确保数据的准确性和一致性的。常见的四种数据约束如下:

(1)实体完整性约束:规定表的每一行在表中是唯一的实体。

(2)域完整性约束:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。

(3)参照完整性约束:是指两个表的主关键字和外关键字的数据应一致,保证了表之间数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。

(4)用户定义的完整性约束:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。

在上述四种数据约束中,

温馨提示

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

评论

0/150

提交评论