2022年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2022年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2022年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2022年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2022年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

2022年甘肃省酒泉市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有两个关系R和T如下:

则由关系R得到关系T的操作是()。A.选择B.投影C.交D.并

2.有以下程序:#includeMain(){Intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;Elsey+=3;print("%d\n",y);}程序运行后的输出结果是()。A.2B.1C.0D.3

3.设有定义inta=2,b=3,c=4;,则以下选项中值为0的表达式是______。A.(!a==1&&(!b==0)

B.(a<b)&&!c||1

C.a&&b

D.a||(b+b)&&(c-a)

4.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为()。A.55566.0B.566.0C.7777.0D.566777.0

5.在有序双向链表中定位删除一个元素的平均时间复杂度为()

A.O(1)B.O(N)C.O(logN)D.O(N*logN)

6.若有定义“floata=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为()。

A.两个语句都是将变量a的值赋予变量P

B.*p=a是使P指向变量a,而p=&a是将变量的值赋予变量指针P

C.*p=a是将变量a的值赋予变量b,而&a是使P指向变量a

D.两个语句都是使P指向变量a

7.if语句的基本形式是“if(表达式)语句”,以下关于“表达式”值的叙述中正确的是()。

A.必须是逻辑值B.必须是整数值C.必须是正数D.可以是任意合法的数值

8.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

9.以下正确的字符串常量是()。A.“\\\”B.‘abc’C.OlympicGamesD.“”

10.若有以下说明和定义:则对函数fun的正确调用语句是()。A.(*a)(&c);B.a=a(x);C.b=*b(x);D.fun(b);

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

#include<stdio.h>

main()

{iuta=2,b=3,p;

p=f(a,B)

printf("%d",p);

}

intf(a,b)

{intc;

if(a>B)c=1;

e1Seif(a==B)c=0;

else(3=-1;

return(C);

}

A.-1B.0C.1D.2

12.下列程序的输出结果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

13.下列代码的复杂度是多少?如果多于1个答案正确,选择最小的那个。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)

14.有以下程序函数fun只对下标为偶数的元素进行操作.:

程序运行后的输出结果是()。A.A.7,2,5,4,3,6,1,

B.1,6,3,4,5,2,7,

C.7,6,5,4,3,2,1,

D.1,7,3,5,6,2,1,

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

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

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

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

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

16.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面

17.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。A.单链表B.静态链表C.线性链表D.顺序存储结构

18.有以下程序:#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序的运行结果是()。

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

19.以下说法错误的是()。

A.C语言中的常量是指在程序运行过程中经常被用到的变量

B.C语言中的常量是指在程序运行过程中其值不能被改变的量

C.C语言中的常量可以用一个符号名来代表

D.C语言中的常量可以用宏来定义

20.

二、2.填空题(20题)21.下列程序段的输出结果是______。

intn='c':

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("moming");

case'd':printf("class");

}

22.若采用直接插入法对字母序列(W,S,E,L,X,G,I)进行排序,使字母按升序排列,那么第一次排序的结果为【】。

23.当运行以下程序时,输入abcd,程序的输出结果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

24.#define命令出现在程序中函数的外面,宏名的有效范围为______。

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

26.以下程序输出的最后一个值是【】。

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<5;i++)printf("%d\n",ff(i));}

27.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【】。

28.与结构化需求分析方法相对应的是【】方法。

29.设a、b、c为整数,且a=2、b=3、c=4,则执行完以下语句后,a的值是【】。

a*=18+(b++)-(++c);

30.数据库恢复是将数据库从______状态恢复到某一已知的正确状态。

31.以下程序用以删除字符串中所有的空格,请填空。

#include<stdio.h>

main()

{chars[100]={"OurteacherteachClanguage!"};inti,j;

for(i=j=0;s[i]!='\0';i++)

if(s[i]!=''){()}

s[j]='\0';

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

}

32.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。

33.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

34.在关系运算中,【】运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。

35.对于图书管理数据库,将图书表中"人民邮电出版社"的图书的单价涨价5%。请对下面的SQL语句填空:UPDATE图书【】WHERE出版单位="人民邮电出版社"

36.数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。

37.下列语句使指针p指向一个double类型的动态存储单元。

p=【】malloc(sizeof(double));

38.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。

39.在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。

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

#include<conio.h>

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0‖i%11==0)

a[j++]=i;

*n=j;}

main()

{intaa[M],n,k;

clrscr();

fun(10,aa,&n);

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

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");}

三、1.选择题(20题)41.有下列程序:main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}执行后的输出结果是()。

A.5B.24C.32D.40

42.使用白盒测试法时,确定测试数据应该根据()和指定的覆盖标准。

A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能

43.以下定义语句中正确的是

A.inta=b=0;

B.charA=65+1,b=′b′;

C.floata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

44.表示关系x≥y≥z应使用C语言表达式()

A.(x>=y)&&(y>=z)

B.(x>y)AND(y>z)

C.x>=y>=z

D.(x>=y)&(y>=2)

45.对一个关系投影操作以后,新关系的元组个数______原来关系的元组个数。

A.小于B.小于或等于C.等于D.大于

46.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是()。

A.输出字符a的ASCII码B.输出字符c的ASCII码C.输出字符cD.程序出错

47.有如下程序段:#include<stdio.h>#defineMax(a,b)a>b?a:bmain(){inta=5,b=6,c=4,d;d=c+Max(a,b);printf("%d",d);}其输出结果为______。

A.10B.5C.6D.编译错误

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

A.C程序由函数组成

B.C程序由主函数构成

C.C程序由函数和过程构成

D.在C程序中无论是整数还是实数,都可以正确无误的表示出来

49.对长度为n的线性表进行顺序查找,在最坏的情况下需要比较的次数为()。

A.125B.n/2C.nD.n+1

50.若有“doublea;”,则正确的输入语句是()。

A.scanf("%lf",A);

B.scanf("%f",&A);

C.scanf("%lf",&A)

D.scanf("%le",&A);

51.已知函数fread的调用形式为fread(buffet,size,count,fp);,其中buffer代表的是()。

A.存放读入数据项的存储区

B.一个指向所读文件的文件指针

C.一个指针,是指向输入数据存放在内存中的起始地址

D.一个整型变量,代表要读入的数据项总数

52.有以下函数intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能的叙述正确的是A.求字符串s的长度B.比较两个串的大小C.将串s复制到串tD.求字符串s所占字节数

53.若有说明语句:charch='\x41';,则ch中______。

A.包含4个字符B.包含2个字符C.包含1个字符D.字符个数不确定,说明不正确

54.软件的可维护性度量可分解为多种因素的度量,下列选项中的______是可维护性度量的内容。

①可测试性

②可移植性

③可复用性

④可靠性

A.全部B.①和③C.①、②和④D.②和④

55.C语言规定,函数返回值的类型是由

A.return语句中的表达式类型所决定

B.调用该函数时的主调函数类型所决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型所决定

56.已知如下定义,则sizeof(a)的值是struct{inti;charc;doublea;}a;

A.8B.9C.10D.11

57.需求分析阶段的任务是确定()

A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能

58.以下程序的功能是进行位运算:#include<stdio.h>main()unsignedchara,b;a=7∧3;b=~4&3;printf("%d%d\n",a,b);}程序运行后的输出结果是()。

A.43B.73C.70D.40

59.在下列叙述中,正确的一条是______。

A.对while循环、do-while循环和for循环,可以用continue语句跳出循环

B.表达式1+2<<3和sizeof(3.8)的结果分别为24和8

C.函数fputc(c,stdout)与putchar(c)的结果相同

D.在有参函数中,定义函数中指定的形参变量在程序一开始执行时便分配内存单元

60.若有定义语句:floatx[6];则以下对x数组元素的正确引用形式是()。

A.x+2B.&x[6]C.*(x+2)D.*&x[6]

四、选择题(20题)61.以下选项中,合法的是()。

A.charstr3[]={d,e,b,u,g,\0};

B.charstr4;str4="helloworld";

C.charname[10];name="china";

D.charstrl[5]="pass",str2[6];str2=strl;

62.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是

main()

{chars[100];intc,i;

scanf("%c",&c);scanf("%d",&i);scanf("%s",s);

prinnf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789

C.1,23,456,789D.1,23,456

63.如已定义X和Y为double类型,则表达式X=1,y=x+5/2的值是()。

A.2B.3.0C.3D.3.5

64.

65.

66.

67.

68.

下列程序的运行结果是()。

#include<stdio.h>

voidmain

{ints=0,k;

for(k=7;k>1;k--)

{switch(k)

{case1:

case4:

case7:

s++:

break;

case2:

case3:

case6:break;

case0:

case5:

s+=2:

break;

}}

printf("s=%d",s);

}

A.s=3B.s=4C.s=5D.无输出结果

69.有以下程序

fun(int*a,intn)

{inti,j=0,p;

p=j;

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

if(a[i]<a[p])

____;

return(p);

}

在下画线处应填入的是

A.i=pB.a[p]=a[i]

C.p=jD.p=i

70.

71.下面描述中错误的是()。

A.系统总体结构图支持软件系统的详细设计

B.软件设计是将软件需求转换为软件表示的过程

C.数据结构与数据库设计是软件设计的任务之一

D.PAD图是软件详细设计的表示工具

72.设有定义:,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是()。

73.以下说法错误的是A.A.高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式

B.计算机只能处理由0和1的代码构成的二进制指令或数据

C.C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件

D.每一种高级语言都有它对应的编译程序

74.以下不能正确表示代数式4cd/ab的C语言表达式县().

A.4*c*d/a/bB.c*d/a/b*4C.c/a/b*d*4D.4*c*d/a*b

75.

76.以下叙述中错误的是()。

A.用户定义的函数中可以没有return语句

B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

C.用户定义的函数中若没有reillnl语句,则应当定义函数为void类型

D.函数的retU/Tl语句中可以没有表达式

77.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

78.

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

B.register

C.enum

D.external

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量num1中的值原为2,num2中的值原为1,程序运行后,num1中的值为l,num2中的值为2。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为“****A*BC*DEF*G****”,删除后,字符串中的内容应当是“ABCDEFG”。

注意:部分源程序给出如下。

请勿改动maini)函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

#include<conio.h>

#include<stdio.h>

voidfun(chara)

{

voidmain

{

chars[81];

print{("Enterastring:\n");

gets(s):

fun(S);

printf("Thestringafterdeleted:\n");

puts(s);

}

参考答案

1.A

2.C在ifelse语句中else,总是与离它最近的配对。本题目中x劝1所以!x为0,所以执行else龉句中的内容,判断(x==0)是否成立,因为x为1所以条件不成立,所以else部分的近.else语句不再执行,所以y的值还是初始值0。

3.A解析:选项A中(!a==1)&&(!b==0)→(!2==1)&&(!b==0)→(0==1)&&(!b==0)→0&&(!b==0)→0(&&右边表达式(!b==0)被“短路”):选项B中(a<b)&&!c||1→(2<3)&&!4||1→1&&0||1→0||1→1;选项C中a&&b→2&&3→1;选项Da||b+b)&&(c-a)→2||(b+b)&&(c-a)→1(||右边表达式(b+b)&&(c-a)被“短路”)。所以本题选A。

4.B变量J只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量Y中。

5.B

6.C“P”是指针变量,指向一个地址:“*P”为P指针所指向地址的内容“&”是取变量地址。

7.Dif语句中的表达式可以是任意合法的数值,如常量、变量表达式。故本题答案为D选项。

8.A当x为1时,执行case1,a自加等于1,因为case1后没有break,接着执行case2,此时a的值为2,b自加为1,故选择A选项。

9.D在C语言中,字符串常量是用双引号标注的字符序列,因此B选项和C选项不正确。字符序列中可包含一些转义字符,转义字符以“\\”开头。A选项中包含3个前两个(\\\\)代表一个“\\”字符,后面一个为“””。因为\\”被看作一个“””,所以该字符串缺少一个结束的“””。因此A选项不正确。D选项的两个“”之间没有任何字符,代表的是一个空串,是合法的字符串常量,因此D选项正确。B选项的abc应该使用双引号标注。故本题答案为D选项。

10.A题干中,函数fun接收一个整型指针参数,返回值为int类型。main函数首先定义一个函数指针a,将函数fun的地址赋给a,所以a是指向函数fun的指针,可以通过a调用函数fun。选项A中,通过a调用函数fun,可以使用(*a),接收的参数是整型变量c的地址,正确;选项B中,参数x是一个数组,错误;选项C中,调用b函数,由于程序没有给出函数b的定义,因此这里调用b是错误的,而且函数b是没有参数的,这里调用b的时候传入了参数,所以C错误;选项D中,由于b是一个函数,不能作为整型指针变量传给fun函数,因此D错误。本题答案为A选项。

11.A解析:本题考查ifelse语句。在intf(a,B)中:第一个if语句,先判断条件,发现a>b条件不成立,则执行与其配对的else语句:第二个if语句,先判断条件,发现a==b条件不成立,则执行与其配对的else语句,c=-1。

12.C解析:函数slzeof(a)的功能是求出字符串a中的字符占用存储空间的大小,由于字符数组a有长度为7,所以i=7;函数strlen(a)的功能是:求出字符串a的长度。而每个字符串都以'\\0'为字符串的结束标记,所以j的值等于2。

13.D

14.A由函数fun(int*a,intn)中语句if(a[j]>a[k])k=j;可知当前k是记录数组中较大数据值所在位置的下标变量,所以该函数的作用是对数组a中的下标为偶数位置的数据进行从大到小的排序,即对a[0],a[2],a[4],a[6]中的数据1,3,5,7进行从大到小的排序,其他位置的数据不变,所以答案为A)。

15.A

16.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。

17.B

18.D执行语句“intm=1,n=2,*p=&m,*q=&n,*r;”,即指针变量p指向m,指针变量q指向n。执行语句“r=p;p=q;q=r;”,即通过指针变量r,将指针p和指针q的指向交换。因此最后输出1,2,2,1。故本题答案为D选项。

19.AC语言中的常量是指在程序运行过程中其值不能被改变的量,它可以用宏来定义,用一个符号名来代表。选项A错误,选项B、C、D正确。本题答案为A选项。

20.D

21.morningclassmorningclass解析:本题考查了两个知识点:①“++、--”运算后缀形式是先使用变量原来的值,使用完后再使其增1或减1;②在switch语句中,当n=\'c\'时,执行“case\'c\':”,输出morning;因为此句中没有break语句,因此接着执行'case\'d\':”,输出class,最终输出结果为morningclass。

22.SWELXGI

23.a*b*c*d*a*b*c*d*解析:字符处理函数strlen()测试字符串常量的长度,不包括‘\\0’在内。因此,函数insert()实现了将字符数组中每个非‘\\0’的字符后插入字符‘*’的功能。故输出结果是a*b*c*d*。

24.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。

25.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。

26.120120解析:静态变量的类型说明符是static,静态局部变量属于静态存储方式,它具有以下特点:

①静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。

②对静态局部变量是在编译时赋被值的,即只赋被值一次,在程序运行时它已有被值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。

③如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。(注意:C语言中的非静态变量在定义时,系统并不会自动给它赋被值)

④虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。

本题中函数的功能是:与for语句一起求一个整数的阶乘。

27.软件生命周期软件生命周期解析:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。

28.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。

29.3232解析:a*=18+(b++)-(++c)即a=a*(18+(b++)-(++c)),++c的值为5,a=2*(18+3-5)=32。b++是先使用b的值在对b加1,++c是先对c加1再使用c的值。

30.错误。错误。解析:数据库恢复是将数据库中的数据从错误状态中恢复到某种逻辑一致的状态。如果数据库中包含成功事务提交的结果,则称数据库处于一致性状态。

31.s[j]=s[i];j++;s[j]=s[i];j++;解析:本题中相当于字符串s中存储着含有空格的字符,当发现空格的时候就用这个空格字符后面的字符前移覆盖这个空格字符,依次类推向后继续。因此,应填s[j]=s[i];j++;两条语句。

32.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。

33.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根据题意和程序可知要填空的内容是:将字符申s中的数字字符放入d数组的条件。

34.选择选择解析:关系运算中,选择运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。

35.SET单价=单价*1.05SET单价=单价*1.05解析:更新表中元组的值,使用UPDATE命令,一次可以更新表中的一个或多个属性值。UPDATE短语之后指定更新数据所属的表,将新的属性值或表达式赋值给对应的属性名(SET单价=单价*1.05),并置于SET短语之后。要求对人民邮电出版社的图书涨5%,需要用WHERE短语对元组进行限制,即对符合条件的元组进行更新。

36.逻辑独立性逻辑独立性解析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。数据独立性一般分为物理独立性与逻辑独立性两个含义。注意:在人工管理阶段,文件系统阶段和数据库管理阶段中数据独立性的特点。

37.(double*)

38.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。

39.自然连接自然连接解析:在关系运算中,自然连接运算是对两个具有公共属性的关系所进行的运算。

40.77解析:解答本题的关键是要读懂程序,要找出能被7或11整除的所有整数,注意数学中的“或”和C语言中的“或”的区别,但在此处,if条件语句中用了“‖”运算符,若要找能同时被7和11整除的所有整数则在if的条件中应使用“&&”运算符。

当然,如果m的值输入50,即表达式fun(10,aa,&n);为fun(50,aa,&n);时输入结果为:711142122283335424449。

41.C解析:在for循环体中,首先判断自变量i能否被5整除,然后再自加两次,最后判断i能否被8整除。当for循环执行到第30次时,i的值为30能被5整除,然后i经过两次自加1运算,值变为32,能被8整除,故执行“printf('%d',i);”语句,即输出32。本题的答案为选项C)。

42.A白盒测试是把测试对象看作是一个打开的盒子,允许测试人员利用程序内部的逻辑结构及相关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试。所以,白盒测试的对象基本上是源程序,以程序的内

【知识拓展】软件测试按照功能划分可以分成白盒(白箱)测试和黑盒(黑箱)测试。其中黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。

43.B解析:本题考查变量的定义方法。

44.A

45.B解析:投影操作是从关系中选择某些列,投影后消去了某些属性,就可能出现重复元组,根据关系的性质,应消去这些完全相同的元组。这样使得新关系的元组数小于或等于原来的元组数。

46.D解析:因为字符数组s1)中的数组名s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。

47.B解析:在C语言中,宏定义是直接替换的,所以在c+a>b?a:b这个条件表达式中,c+a>b为真,所以用a的值作为整个表达式的值,而a的值为5,所以整个表达式的值为5。

48.A解析:本题涉及C语言最基本的两个知识点:①C程序是由函数构成的,有且仅有一个主函数,也可以有其他的函数;②整数在允许的范围内可以准确无误的表示出来,但计算机的存储能力有限,不能表示无限精度的实数。

49.C解析:对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止.在最坏的情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。

50.D解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。本题中定义变量a为双精度型变量,双精度变量的格式符为“le”;变量的地址用取地址符“&”加变量名表示,如变量a的地址为“&a”。

51.C解析:数据块读取函数调用形式:fread(buffer,size,count,fp)。fread函数参数说明:“buffer”是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。

52.A解析:aaa()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针\u3000t不断递增,直到t指向字符串结束标志处。当t指向结束标志处时,由于后缀++运算符的原因,它还会被再递增1,所以接卜来的t--;语句让它回到结束标志处。最后返回t-s,因此s还是指向字符串第1个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。

53.C解析:'\\x41'是转义字符,x表示41是十六进制数,41是字母a的ASCII码值。

54.C

55.D解析:C语言容许函数返回一个值,通过re-turn语句实现,其格式是:

return(表达式);或return表达式;

功能是把表达式的值带回主调函数的调用处,作为函数的返回值。函数返回值的类型以函数类型为准,为了明确表示“不带回值”,可用“void”类型说明符定义“空类型”。在以下几种情况下,可不在调用函数中对被调用函数类型声明:①如果函数值是整型或字符型,可不进行声明,系统自动默认函数值是整型。②如果被调用函数的定义出现在调用函数之前,可不进行声明。注意:函数的定义。

56.D解析:结构体在内存中是连续存放的,一个结构体类型的变量所占用的空间是其所有成员所占空间的总和。double类型所占的空间为8个字节。

57.D解析:结构化分析方法,数据流图,数据字典,软件需求规格说明书

评析,需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织,部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能.选项A)软件开发方法是在总体设计阶段完成的任务;选项B)软件开发工具是在实现阶段需完成的任务:选项C)软件开发费用是在可行性研究阶段需完成的任务。

58.A解析:“^”是按位异或运算,运算规则是:当两个二进制数对应位上的数相同时,异或结果为0,否则结果为1。73相当于0110011,所以a的值为4。“&”是按位与运算符,其运算规则是:当二进制数的所有对应位上的数值都为1时,结果才为1;“~”是按位取反。~4&3相当于1011&0011=0011,所以b的值为3。

59.C解析:选项A错误,continue语句只能结束本次循环,不能结束整个循环。要跳出循环可用break语句。选项B错误,表达式1+2<<3等价于(1+2)<<3,即0000000000000011向右移3位,移后变为0000000000000000,即0。选项C正确,函数fputc的操作对象是文件,而putchar是直接向标准输出设备输出字符。标准输出设备是一个特殊文件,即设备文件,文件型指针指向标准输出设备,因而功能相同。选项D错误,在定义函数中指定的形参变量,在未出现函数调用时,它们并不占内存中的存储单元。

60.C解析:数组名x为该数组的首地址即第1个元素的地址,x+2表示数组第3个元素的值地址。x[6]表示数组中长度为6,数组元素的下标从0到5,没有x[6]。&为取地址符,取得的是元素的地址。*为间接访问运算符,其运算对象为地址或存放地址的指针变量。*(x+2)为取数组第3个元素的值,因此只有选项C正确引用了数据元素,选项C正确。

61.A选项B不能把一个字符串赋值给一个字符变量,选项c和D犯了同样的错误是把字符串赋给了数组名。

62.D本题考查格式输入。程序中定义了一个字符数组s,两个整型变量i和c。随后调用了三次格式输入函数scanf。第一个scanf函数只能输入一个字符型的数据,第二个函数是输入一个整型数据,第三个函数是输入一个字符串。执行代码时,输入123<空格>456<空格>789<回车>,将1作为一个字符用第一个scanf函数输入,23作为一个整型数据由第二个函数输入,而字符串的输入则是以非空白字符开始到第一个空白字符结束,将456作为字符串由第三个scanf函数输入到数组中,该函数在第二个空格处结束。

63.B题目中定义变量x和y为双精度double类型,根据给定算数表达式的优先级应先计算5/2,结果为2,将值代入后,由x和y的数据类型得出y为3.0。整个逗号表达式的值为后面y=x+5/2的值,所以选择B)。

64.B

65.A

66.B

67.D

68.B

\n运行程序,当k=7时switch(7)执行case:7,s++后s=1,break跳出。k--,k=7继续循环switch(6),执行case6;直接跳出循环,k--变成5,继续循环switch(5),执行case5后面的语句s+=2,也相当于s=s+2,此时s为3,break跳出,k变为4,继续循环,执行case4为空,继续执行case7;s++为4跳出循环,k--变为3,继续循环,执行case3,空语句往下执行case6,跳出,k--为2,继续循环,执行case2;空语句往下执行case3,空语句再执行case7,跳出循环,k--为1不符合循环,退出,此时S=4。

\n

69.D本题考查对程序作用的理解。该函数具有两个形参a和n,a为数组名,n为数组中元素的个数。函数的返回值为p,这里p为数组的下标。初始时,i、j、p都为0,for循环的初始表达式为i=j,条件表达式为i<n,也就是当i=n时,for循环结束。该for循环表达的含义为:初始时,令a[i]=a[p]=a[0],随后i可从0开始递增,直到n-1,对于每一个a[i],都与a[p]进行比较,空白处需要填入语句的部分是

温馨提示

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

评论

0/150

提交评论