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._256B.voidC.scanfD.Struct

2.有以下程序:程序运行后的输出结果是()。

A.5B.2C.3D.8

3.

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

intf1(intx,inty){returnx>y?x:y;}

intf2(intx,inty){returnx>y?y:x;}

main()

{inta=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,B),f1(c,D));

f=f1(f2(a,B),f2(c,D));

g=a+b+C+d-e-f;

phntf("%d,%d,%d\n",e,f,g);

}

A.4,3,7B.3,4,7C.5,2,7D.2,5,7

5.结构化程序设计主要强调的是()。

A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性

6.

7.下列选项中,不是一个算法的基本特征的是()。

A.完整性B.可行性C.有穷性D.拥有足够的情报

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

A.循环队列是队列的一种链式存储结构

B.循环队列是队列的一种顺序存储结构

C.循环队列中的队尾指针一定大于队头指针

D.循环队列中的队尾指针一定小于队头指针

9.c源程序中不能表示的数制是()。

A.二进制B.八进制C.十进制D.十六进制

10.有下列程序:程序执行后的输出结果是()。A.11B.43C.57D.53

11.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

12.在目标串T[0,n-1]=”xwxxyxy”中,对模式串p[0,m-1]=”xy”进行子串定位操作的结果_______

A.0B.2C.3D.5

13.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()

A.a<>0B.!aC.a=0D.a

14.以下描述中正确的是

A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B.do-while循环由d。开始,用while结束,在while(表达式)后面不能写分号

C.在do-while循环体中,是先执行一次循环,再进行判断

D.do-while循环中,根据情况可以省略while

15.

16.设有定义:intx[2][3];,则以下关于二维数组X的叙述错误的是()。

A.x[0]可看做是由3个整型元素组成的一维数组

B.x[0]和x[l]是数组名,分别代表不同的地址常量

C.数组X包含6个元素

D.可以用语句x[o]=0;为数组所有元素赋初值0

17.冒泡排序在最坏情况下的比较次数是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2

18.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序运行后的输出结果是

A.9B.11C.19D.21

19.对于如图所示二叉树采用中根遍历,正确的遍历序列应为()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

20.

二、2.填空题(20题)21.有以下程序段,且变量已正确定义和赋值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

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

请填空,使下面程序段的功能与之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

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

22.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

23.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。

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

ints=12;

while(s);

--s;

25.在程序设计阶段应该采取______和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。

26.以下程序运行后的输出结果是______。

main()

{chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));

}

27.面向对象的模型中,最基本的概念是对象和______。

28.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

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

}

30.以下程序段的输出结果是______。

inci=9;

printf("%o\n",i);

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

32.以下程序运行后的输出结果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}

33.下面程序的运行结果是()。

#defineEXCH(a,B){intt;t=a;a=b;b=t;}

main()

{intx=1,y=2;

EXCH(x,y);

printf("x=%d,y=%d\n",x,y);

}

34.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。

35.以下函数fun用于求两个整数a和b的最大公约数。

fun(a,B)

inta,b;

{inti,j,m,n;

if(a>B)

{m=a;a=b;【】;}

i=a;j=b;

while((n=【】)!=0)

{j=i;i=【】;}

return(i);

}

36.在面向对象方法中,类的实例称为______。

37.下面程序将二维数组a的行和列元素互换后存放到另一个二维数组b中,请填空。main(){inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)();}}

38.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间______的信息。

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

40.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

三、1.选择题(20题)41.若有说明chart;,下列表达式不正确的是______。

A.t=97B.t='a'C.t="a"D.t='a'+'b'

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

A.PADB.PFDC.N-SD.DFD

43.一个C程序可以包含任意多个不同名的函数,但有且仅有一个______。

A.过程B.函数C.主函数D.子程序

44.完整的计算机存储器应包括______。

A.软盘、硬盘B.磁盘、磁带、光盘C.内存储器、外存储器D.RAM、ROM

45.以下程序的功能是进行位运算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序运行后的输出结果是______。

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

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

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

47.有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下叙述中正确的是

A.程序输出大写字母MB.程序输出小写字母mC.格式说明符不足,编译出错D.程序运行时产生错信息

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

49.若有以下说明和定义:typedefint*INTEGER;INTEGERp,*q;以下叙述正确的是()A.p是整型变量

B.p是基类型为整型的指针变量

C.q是基类型为整型的指针变量

D.程序中可用INTEGER代替int类型名

50.下列程序的运行结果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}

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

51.有以下程序段

intj;floaty;charname[50];

scanf("%2d%f%s",&j,&y,name);

当执行上述程序段,从键盘上输入555667777abc后,y的值为

A.55566.0B.566.0C.7777.0D.566777.0

52.下列变量说明语句中,正确的是

A.char:abc;B.chara;b;c;C.intx;z;D.intx,z;

53.以下程序的运行结果是______。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}

A.运行后报错B.66C.612D.55

54.有以下程序

#include<stdio.h>

voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/

{intt,i,j;

for(i=0;i<n-1;j++)

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

if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

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

printf("\n");

}

程序的运行结果是

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

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

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

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

55.当执行下面的程序时,如果输入ABC,则输出结果是______。#include"stdio.h"#include"string.h"main(){charss[10]="12345";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

56.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。

A.12B.11C.10D.编译出错

57.若x和y代表整型数,以下表达式中不能正确表示数学关系|x—y|<10的是()。

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10‖!(y-x)>10

D.(x-y)*(x-y)<100

58.有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen("fl.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为()。

A.goodabcB.abedC.abcD.abcgood

59.在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示______。A.A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向

60.执行下列程序后,输出的结果是()。

#include<stdio.h>

#defineS(X)X*X

voidmain()

{ihta=9,k=3,m=2;

a/=S(k+m)/S(k+m);

printf("%d",A);

}

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

四、选择题(20题)61.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A.X…Y5;B.X=n%2.5;C.X+n=i;D.x=5=4+1:

62.数据库、数据库系统和数据库管理系统之间的关系是()。

A.数据库包括数据库系统和数据库管理系统

B.数据库系统包括数据库和数据库管理系统

C.数据库管理系统包括数据库和数据库系统

D.三者没有明显的包含关系

63.

64.下列对于软件测试的描述正确的是()。

A.软件测试的主要目的是发现程序中的错误

B.软件测试的目的是证明程序是否正确

C.软件测试的目的是使程序运行结果正确

D.软件测试是证明软件中没有错误

65.有以下程序:

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

66.一个关系中属性个数为1时,称此关系为()。

A.对应关系B.单一关系C.一元关系D.二元关系

67.对于循环队列,下列叙述中正确的是()。A.队头指针是固定不变的

B.队头指针—定大于队尾指针

C.队头指针_定小于队尾指针

D.队头指针可以大于队尾指针,也可以小于队尾指针

68.

69.设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为()。

A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i

70.

71.

72.有以下程序:

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

A.3B.6C.9D.2

73.(72)n个顶点的强连通图的边数至少有______。

A.n-1

B.n(n-1)

C.n

D.n+1

74.

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

#include<stdio.h>

#defineS(X)X*X

voidmain

{inta=9,k=3,m=2;

a/=S(k+m)/s(k+m);

printf("%d",a);

}

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

75.有以下程序:

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

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

76.已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是()。A.A.isupper(c)B.'A'<=c<='Z'

C.'A'<=c&&c<='Z'

D.c<=('z'-32)&&('a'-32)<=c

77.以下关于typedef的叙述错误的是()。

A.用typedef可以增加新类型

B.typedef只是将已存在的类型用一个新的名字来代表

C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D.用typedef为类型说明一个新名,通常可以增加程序的可读性

78.若有以下程序

#include<stdio.h>

inta[]={2,4,6,8};

main()

{inti;

int*p=a;

for(i=0;i<4;i++)a[i]=*p;

printf("%d\n",a[2]);

}

上面程序的输出结果是

A.6B.8

C.4D.2

79.有以下程序:

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

A.OB.2C.3D.5

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

A.列表框和组合框都有List属性

B.列表框有Selected属性,而组合框没有

C.列表框和组合框都有Style属性

D.组合框有Text属性,而列表框没有

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:从整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放个位数,a2放十位数。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!

六、程序设计题(1题)82.编写函数如n,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n放指定的下标。例:输入一个字符串“world”,然后输入3,则调用该函数后的结果为“word”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数丘m的花括号中填入你编写的若干语句。试题程序:

参考答案

1.B

2.D题干中,函数fun的第2个参数通过指针作为函数返回值,它的功能是通过递归,求得fun(n)的值为fun(n-1)+fun(n-2)。由于当n取值为1和2时,值为1。所以可知整个数列如下:1,1,2,3,5,8,…,即某一项是前两项之和。所以当n取值为6时,fun(6,*s)返回s的值为3+5=8。本题答案为D选项。

3.C

4.A解析:根据函数intf1(intx,inty){returnx>y?x:y;}和int馒(intx,inty){retumx>y?y:x;}的定义可知,如果x>y成立,则函数n返回x的值,函数C返回y的值。所以n(a,B=4,n(c,d)=5,C(a,B=3,f2(c,d)=2,故e=f2(4,5)=4,f=n(3,2)=3,g=4+3+5+2-4-3=7。

5.D解析:程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。

6.C

7.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。

8.B在实际应用中,队列的顺序存储结构一般采用循环队列的形式。当循环队列为满或者为空时,队尾指针=队头指针。本题答案为B选项。

9.AA。【解析】C语言源程序不能表示八进制,在C语言中,所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、二进制、十六进制3种形式表示,故A不正确。

10.D函数f是一个递归函数。当x>=2时,递归调用自身,返回值为x*f(x-l)+(x-l)*f(x-2);3x<2时,返回值为1。main函数中,调用函数f传入4,所以y的值是f(4)。f(4)等价于4*f(3)+3*f(2);f(3)等价于3*f(2)+2*f(1);f(2)等价于2*f(1)+1*f(0);f(0)、f(1)等价于1。综上:f(2)等于3,f(3)等于11,f(4)等于53。本题答案为D选项。

11.A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

12.C

13.D

14.C解析:do-while语句的一般形式为:do循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。

15.D

16.Dx[0]是不能赋值的。

17.C冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其他值较大的元素也向最终位置移动,此过程称为一趟冒泡。对于有n个数据的序列,共需n-1趟排序,第i趟对从l到n-i个数据进行比较、交换。冒泡排序的最坏情况是待排序序列逆序,第l趟比较n-1次,第2趟比较n-2次。依此类推,最后趟比较1次,一共进行n-l趟排序。因此,冒泡排序在最坏情况下的比较次数是(n-1)+(n-2)+…+l,结果为n(n-1)/2。本题的正确答案是选项C。

18.A解析:本题考核的知识点是一维数组的定义,初始化和数组中元素的引用。函数f()的作用是形参a为偶数的时候返回0,主函数中首先定义了一个长度为8的一维数组,然后给它赋初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他没有赋值的数组元素将自动赋值为0。for循环中,当s[1]不为偶数的时,将s[i]相加,即当i=3时,s[i]=2为偶数,退出循环,此时d的值为d=s101+s[1]+s[2]=1+3+5=9,因此最后输出的d的值为9。所以,4个选项中选项A符合题意。

19.D

20.B

21.k<=nk++k<=n,k++解析:本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句'k++;'\ue009。

22.67G67G解析:字符型变量中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分别按十进制整数和字符形式输出a和b的值为:67G。

23.消息消息解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。

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

25.自顶向下自顶向下解析:在程序设计时,应先考虑总体,后考虑细节,逐步使问题具体化,对复杂的问题,应该设计一些子目标作为过渡,上述方法概括为:自顶向下,逐步细化。

26.gae

27.类类

28.log2n

29.101091101091解析:for(表达式1;表达式2:表达式3)语句的功能是:首先计算表达式1的值,然后检测表达式2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式3的值。然后再检测表达式2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环:第1次循环x>8成立,输出x=10,y=10后,x的值减1,i=1,执行y=++i操作,y的值变为1;判断条件还成立,输出x=9,y=1,然后x的值减1,循环条件不成立,则退出循环。

30.1111解析:本题考核的知识点是printf()函数的输出格式.本题中定义了一个整型变量i并赋初值为9,然后要求以八进制输出i的值,因为9的八进制的表示为11,所以最后输出的值为11。

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

32.1020010200解析:本题考查的是混合运算。“(a/b<1)&&(a%b<1)”的运算顺序为:括号>算术运算符>关系运算符>逻辑运算符。其中a%b=10,a,b=0,所以a%b<1的值为0,a/b<1的值为1,故整个表达式的结果为0,所以输出的a,b,c的值为10200。

33.x=2y=1

34.完整性控制完整性控制

35.b=mj%i.nb=m\r\nj%i.\r\nn解析:函数中的变量i和j分别存放两个形参的最小数和最大数,在语句i=a和j=b执行之前,要将a和b分别变为最小数和最大数,当a>b时,程序使用中间变量将两者交换,所以题中第—个空中应当填写“b=m”;为求两个整数的最大公约数,程序的where循环条件必须为j整除i成立,所以题中第二个空中应当填写“j%i”;程序要通过i的值返回最大公约数,因此在循环中要将每次整除的公钓数赋给i,以保证最后返回的是两个,整数的最大公约数,所以第三个空中应当填写“n”。

36.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。

37.b[j][i]=a[i][j]

38.前后件关系前后件关系解析:在数据存储结构中,除了要存储数据,还要存储数据的前后件关系,对于顺序存储的数据结构,前后件之间的关系,是通过存储空间的位置来实现的,而对于链式存储来说,数据元素之间的前后件关系是通过指针来实现的。

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

40.x+8sin(x)x+8,sin(x)解析:考查考生对函数调用相关知识的了解。用x+8代替函数fun(doublex)中形式参数x;用sin(x)代替函数fun(doublex)中形式参数x。

41.C解析:选项A将97作为ASCII码值(小写字母a的ASCII码值)赋给字符变量t。选项D将字符a和字符b的ASCII码值的和赋给变量t。选项B是将字符a的ASCII码值赋给变量t,也是正确的。选项C中的“a”是字符串常量,不是字符常量。

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

43.C解析:主函数main在C语言程序中有且只能有一个,它是程序执行的入口。

44.C

45.A解析:a=7^3=00000111^00000011=00000100=4;b=~4&3=~00000100&00000011=11111011&00000011=00000011=3

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

47.B解析:本题考查的是逗号表达式。因为整个逗号表达式的值为逗号表达式最后一个于表达式的值,所以本题输出的是a2的值'm'。故应该选择B。

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

49.B本题中INTEGER被定义为int*的别名,故直接由它定义的类型基类型为整型的指针变量。因此,p是基类型为int的指针变量,q是int型指针的指针变量。故4个选项中B正确。

50.D解析:本题考查while循环。第一次循环,先拿x的值和(y-1)比较,此时x=1,y-1=2,循环条件成立,比较完将x的值加1,此时x=2,进入循环,a=a+1=1,判断if语句的控制条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,先拿x的值和(y-1)比较,此时x=2,y-1=1,循环条件成立,比较完将x的值加1,此时x=3,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<x成立,执行break语句退出循环。

51.B解析:本题考查通过scanf函数输入数据时的格式控制问题。变量j的格式控制为“%2d”,即只接收输入数据的前两位,从第三位开始直到空格之间的输入都会被保存到变量y中,因为y为浮点型数据,所以输出结果为选项B)。

52.D

53.A解析:用指针变量p+5对指针变量q进行赋值的正确方法为p=q+5。

54.D解析:在本题中,主函数在调用fun()函数进行排序时,传递的参数是c+4和6,fun()函数实现的功能是将数组c的第5个元素开始的6个元素依次进行从大到小的顺序排列。排序之后,数组c的内容变为{1,2,3,4,9,8,7,6,5,0}。

55.A解析:sdtrcat(str1,str2)合并字符串函数的作用是把str2所指字符串的内容连接到str1字符串的后面,自动删去str1原来串中的'\\0'。为了进行这项操作,要求str1所指的字符串后面有足够的空间来容纳str2所指字符串中的内容。函数值为str1所指第一个字符的地址。

56.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。

57.C解析:选项A)中,abs本身就是求绝对值的函数,所以是正确的;选项B)是把|x-y|<10表示成了数学表达式中的-10<(x-y)><10,然后再用C语言规则表示出来的;选项D)相当于把|x-y|<10两边同时平方,此处表达也是正确的;而选项C)中!(x-y)<-10相当于(x-y)>=-10,!(y-x)>10相当于(x-y)>=-10,故选项C)相当于(x-y)>=-10,所以错误。

58.C解析:主函数中定义了一个文件指针fp1,然后通过fopen()函数,以写的方式打开文件“f1.txt”,并让指针fp1指向它,接着调用fprintf()函数将“abc”写到文件fp1所指的文件里,由于开始fp1指向文件的“f1.txt”的开始位置,因此“abc”将把文件“f1.txt”里原来的内容“good”覆盖掉,故文件“f1.txt”里最后的内容为“abc”,所以,4个选项中选项C符合题意。

59.A解析:让考生对常用的软件结构设计工具要有较深入的了解。常用的软件结构设计工具是结构图(SC-structureChart),也称程序结构图。其中,矩形内用于注明模块的功能和名字;箭头表示模块间的调用关系,带实心圆的箭头表示传递的是控制信息,带空心圆的箭头表示传递的是数据。注意:根据结构图设计思想,了解结构图构成的基本形式。

60.D解析:本题主要是考查带参数的宏定义及其相关运算。本题中宏运算过程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

61.AB选项中运算符“%”的前后必须为整数,C选项中不能将变量赋给表达式x+n,D选项中不能将表达式4+1赋给常量5。

62.B数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。数据库可以被直观地理解为存放数据的仓库,只不过这个仓库在计算机的大容量存储器上,例如,硬盘就是一种最常见的计算机大容量存储设备。数据必须按一定的格式存放,因为它不仅需要存放,而且还要便于查找和使用。

数据库管理系统(DBMS)是位于用户与操作系统之间的完成数据管理的系统软件。它是用户与数据库的接口。应用程序一般要通过DBMS才能访问数据库。在数据库建立、运用和维护时对数据库进行统一控制。

数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。数据库是整个数据库系统最基本的成分。数据库管理系统是数据库系统的核心。数据库管理员是数据库系统的责任维护者,负责对数据库系统的整体维护。

综上所述,本题中只有B选项的描述是正确的。

63.D

64.A\n软件测

温馨提示

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

评论

0/150

提交评论