2022-2023年山西省阳泉市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页
2022-2023年山西省阳泉市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页
2022-2023年山西省阳泉市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页
2022-2023年山西省阳泉市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页
2022-2023年山西省阳泉市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年山西省阳泉市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序运行后的输出结果是()。A.6B.10C.11D.15

2.设n个待排序的记录关键字,则在堆排序中需要()个辅助记录单元。

A.1B.12C.60D.15

3.从一个长度为100的顺序表中删除第30个元素时需向前移动()个元素

A.70B.71C.69D.30

4.以下各选项中的代码段执行后,变量y的值不为1的是()。A.intx=5,y=0;if(5)y=1;

B.intx=5,y=0;if(x)y=1;

C.intx=10,y=0;if(x=y)y=1;

D.intx=5,y=10;if(x=y)y=1;

5.标准库函数fgets(s,n,file)的功能是()。

A.从文件file中读取长度为n的字符串存入字符数组s中

B.从文件file中读取长度不超过n-1个字符的字符串放到字符数组s中

C.从文件file中读取n个字符串存入字符数组s中

D.从文件file中读取长度为n-1个字符的字符串存入字符数组s中

6.若k是int类型变量,且有以下for语句:for(k=-1;k<O;k++)printf("****\n");下面关于语句执行情况的叙述中正确的是()。、A.循环体执行一次B.循环体执行两次C.循环体一次也不执行D.构成无限循环

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

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

8.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3;charflag;flag=b>=2&&c<=3;switch(a){ case1:switch(flag) { case0:printf(“**”);break; case1:printf(“%%”);break; } case0:switch(c) { case1:printf(“$$”);break; case2:printf(“&&”);break; default:printf(“##”); }}printf(“\n”);}程序运行后的输出结果是()。

A.**$$B.%##C.%&&D.**##

9.以下哪种操作最适合先进行排序处理()

A.找最大、最小值B.计算算术平均值C.找中间值D.找出现次数最多的值

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

A.VoidB.scanfC.intD._3com_

11.定义int*swap()指的是______。

A.—个返回整型值的函数swap()

B.一个返回指向整型值指针的函swap()

C.一个指向函数swap()的指针,函数返回一个整型值

D.以上说法均错

12.下列叙述中正确的足

A.软件交付使用后还需要进行维护

B.软件一旦交付使用就不需要再进行维护

C.软件交付使用后其生命周期就结束

D.软件维护是指修复程序中被破坏的指令

13.对于栈操作数据的原则是()。

A.先进先出B.后进先出C.后进后出D.不分顺序

14.

15.C语言中运算对象必须是整型的运算符是()。

A.%=B./C.=D.<=

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

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

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

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

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

17.以下程序拟实现计算sum=1+1/2+1/3+…+1/50。#include<stdio.h>main(){inti;doublesum;sum=1.0;i=1;do{i++-;sum+=1/i;}while(i<50);printf(“sum=%lf\n”,sum);}程序运行后,不能得到正确结果,出现问题的语句是()。

A.sum+=1/i;B.while(i<50);C.sum=1.0D.i++;

18.若有以下程序

则程序的输出结果是

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

19.下列程序的运行结果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){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

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

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

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

main()

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

for(p=s;p<s+2;p++)printf("%s\n",p);

}

22.有下列程序,功能是把输入的+进制长整型数以+六进制的形式输出,完成程序

#include"stdio.h"

main()

{charb[17]={"0123456789ABCDEF"};

intc[50],d,i=0,base=16;

longn;

scanf("%1d",&n);

do{c[i]=n%base;i++;n=【】;}

while(n!=0);

for(--i;i>=0;--i)

{d=【】;printf("%c",b[d]);}

printf("H\n");}

23.有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数组中。算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中哪个数之后,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在程序中的空白处填上一条语句或一个表达式。

#defineN100

main()

{floata[N+1],x;

inti,p;

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

scanf("%f"&a[i]);

scanf("%f",&x);

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

if(x<a[i])

{【】;

break;}

for(i=N-1;【】;i-)

a[i+1]=a[i];

a[p]=x;

for(i=0;【】;i++)

{printf("%8.2f",a[i]);

if(i%5=0)

printf("\n");

}

}

24.在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有______个元素。

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

main()

/inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

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

printf("\n");

}

}

26.软件设计模块化的目的是______。

27.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。

28.以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。

#include<stdio.h>

typedefstructnode/*链表结点结构*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立链表*/

{……}

voiddisp(Node*h)

{Node*p;

p=h->next;

while(【】)

{printf("%s\n",P->sub);p=【】;}

}

main()

{Node*hd;

hd=fun();disp(hd);printf("\n");

}

29.有以下程序

voidf(inty,int*x)

{y=y+*x;*X=*X+y;}

main()

{intx=2,y=4;

f(y,&x);

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

}

执行后输出结果是______。

30.在具有n个单元、顺序存储的循环队列中,队满时,共有【】个元素。

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

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

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

33.下面rotme函数的功能是:将n行n列的矩阵A转置为A'。例如:

请填空。

#defineN4

voidrotate(inta[][N])

{inti,j,t;

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

for(j=0;【】;j++)

{t=a[i][j];

【】;

a[j][i]=t;

}

}

34.软件工程研究的内容主要包括:【】技术和软件工程管理。

35.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。

36.下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

37.下面程序的运行结果是【】。

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

38.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【】。

structstud

{charnum[6];

ints[4];

doubleave;

}a,*p;

39.若有如下程序:

main()

{intx=5,y,*t;t=&x;

y=++(*t);

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

则程序执行后的x值为【】,y的值为【】。

40.设有以下程序:

main()

{inti,sum=0;

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

{if((i%2)==0)

continue;

sum+=i;}

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

}

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

三、1.选择题(20题)41.X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。

A.INPUTX,Y,Z;

B.scanf("%d%d%d",&X,&Y,&Z);

C.scanf("%d%d%d",X,Y,Z);

D.read("%d%d%d",&X,&Y,&Z);

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

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

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

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

43.下列关于标识符的说法中错误的是

A.合法的标识符是由字母、数字和下划线组成

B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符

C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符

D.用户标识符与关键字不同时,程序在执行时将给出出错信息

44.若执行下面程序时从键盘上输入5,main(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x--);}则输出是______。

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

45.有以下程序voldsoru(inta[],intn){inti,i,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[i];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10),i;sore(aa+2,5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是

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

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

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

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

46.下列程序执行后的输出结果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

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

47.设有关系R和S,关系代数表达式为R-(R-S)表示的是

A.R∩SB.R-SC.R∪SD.R÷S

48.下列函数的运行结果是

main()

{inti=2,p;

intj,k;

j=i;k=++i;p=f(j,k);

printf("%d",p);}

intf(inta,intb)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);}

A.-1B.1C.2D.编译出错,无法运行

49.数据处理的最小单位是()。

A.数据B.数据元素C.数据项D.数据结构

50.下面程序的输出结果是______。main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}

A.3B.3.2C.0D.3.07

51.设char型变量x中的值为10100111,则表达式(2+x)(-3)的值为______。

A.10101001B.10101000C.11111101D.1010101

52.有以下程序:fun(inta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序运行后的输出结果是

A.3B.6C.8D.12

53.请选出以下程序的输出结果

#include<stdio.h>

main()

{inta[]={1,2,3,4},i;

intx=0;

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

{sub(a,x);printf("%d",x);}

printf("\n");}

sub(s,y)

int*s,y;

{staticintt=3;

y=s[t];t--;}

A.1234B.4321C.0000D.4444

54.以下程序运行后,输出结果是#definePT5.5#defineS(x)PT*x*x#include<stdio.h>main(){inta=1,b=2;printf("%4.1f\n",s(a+b));}

A.49.5B.9.5C.22D.45.0

55.在下列文件名表示方式中,与*E.*等效的是()

A.*.??B.?.*C.???????E.???D.*.*

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

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

57.有如下程序

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

58.下列有关数据库的描述,正确的是()

A.数据库设计是指设计数据库管理系统

B.数据库技术的根本目标是要解决数据共享的问题

C.数据库是一个独立的系统,不需要操作系统的支持

D.数据库系统中,数据的物理结构必须与逻辑结构一致

59.若有以下程序段(n所赋的是八进制数)intm=32767,n=032767;printf("%d,%O\n",m,n);执行后输出结果是

A.32767,32767B.32767,032767C.32767,77777D.32767,077777

60.若变量c为char类型,能正确判断出c为小写字母的表达式是()

A.'a'<=c<='2'

B.(c>='a')||(c<='z')

C.('a'<c)and('z'>=c)

D.(c>='a')&&(c<='z')

四、选择题(20题)61.有以下程序:

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

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

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

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

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

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

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

63.若有定义:“inta[2][3];”,则对a数组的第i行第j列元素的正确引用为()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

64.以下4个选项中,不能看作一条语句的是()。

A.;B.a=5,b=2.5,c=3.6;C.if(b!=5)x=2;y=6;D.returnj;

65.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()。A.A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码

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

A.6,4,3,2B.6,2,l,l,C.1,1,2,6,D.2,3,1,6,

67.有以下程序:

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

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

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

A.算法的执行效率与数据存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数

C.算法的有穷性是指算法必须能在执行有限个步骤之后终止

D.以上3种描述都不对

69.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为

A.intB.floatC.doubleD.不确定

70.设有如下程序段

71.

72.

73.若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是()。

A.v0=7,vl=4,v2=7

B.v0=8,vl=4,v2=8

C.v0=11,vl=4,v2=11

D.v0=13,vl=4,v2=12

74.

75.

76.已知inta=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是

A.-1B.0C.1D.语句错误

77.以下程序的输出结果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

A.11B.12C.13D.15

78.以下程序的功能是进行位运算

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

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

79.有以下程序:

程序运行后,若从键盘输入(从第l列开始.:

123<回车>

45678<回车>

则输出结果是()。

A.1267B.1256C.1278D.1245

80.算法的有穷性是指A.算法程序的运行时间是有限的

B.算法程序所处理的数据量是有限的

C.算法程序的长度是有限的

D.算法只能被有限的用户使用

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;’若未找到,则函数值为NULL。例如,当字符串中的内容为“123dabfl23dx”,t中内容为“ab”时,输出结果应是“l23dx”。当字符串中的内容为“l23dabfl23dx”,t中内容为“aim”时,则程序输出未找到信息“Notfound!”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.请编写函数proc(),函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

则函数值为59。

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

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

试题程序:

参考答案

1.C本题考查数组的使用。本题定义了两个数组,注意数组的下标是从0开始的,进行第1次for循环:当i=0时,b[0]为数组b中第l个元素,结果为0,那么a[0]也是数组a中第l个元素,结果为1,所以S的值为1。第2次循环:i此时自加为l,b[1]为数组的第2个元素,值为2,所以可求出a[2](数组中的第3个元素)的值为3,s=s+3,所以S的值为4。进入第3次for循环,依此类推,第3次for循环结束时s的值为6。第4次for循环,s的值变为l0。第5次for循环时,此时i的值为4,s的值变为ll,i=5不符合题意,所以跳出循环,输出结果,所以本题答案为C。

2.A

3.A

4.C选项A的if条件表达式的值是5,结果为真,执行“y=1”,y的值为1;选项B的if条件表达式x的值为5,结果也是真,执行“y=1”,y的值为1;选项C的if条件表达式“x=y”是赋值语句,将y的值0赋给x,表达式的值为0,if语句不执行,y的值为0;选项D的if条件表达式“x=y”是赋值语句,将y的值10赋给x,表达式的值为10,执行“y=1”,y的值为1。故本题答案为C选项。

5.B解析:字符串输入函数fgets()的调用形式为:fgets(s,n,fp)。fgets函数参数说明:“s”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件的文件型指针。fgets函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串放到字符数组s中;读入字符串后会自动在字符串末尾加入“'\\0'”结束符,表示字符串结束。

6.A本题考查简单的for语句,程序中当k<0时循环才执行,所以答案选择A。

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

8.Bmain函数中,根据“b=2,c=3”可知表达式“b>=2&&c<=3”为真,flag值为1。由“a=1”和外层switch语句的case标号没有break语句,可知外层switch语句执行case1,case0。对于外层case1:嵌套的switch语句根据“flag=1”执行case1,执行“printf(“%%”);”,输出“%”,接着执行break语句,结束内层switch执行外层;对于外层case0:嵌套的switch语句根据“c=3”执行default语句,执行“printf(“##”);”,输出“##”。故本题答案为B选项。

9.C

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

11.B解析:—个函数可以带回—个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是—个返回整型指针的函数。

12.A解析:本题考核软件维护的概念.维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段,在软件交付使用后,还需要进行维护。软件维护通常有以下四类:为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。综上所述,本题的正确答案是A,其余选项的说法错误。

13.B

14.A

15.A解析:C++语言规定:取余运算符的运算对象必须是整型,复合运算符“%=”中包含%运算,它的运算对象也必须是整型。

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

17.A选项A中,“sum+=1/i;”中的i为整型,因此“1/i”是整型类型,当“1/i”有小数时。会被截断。因此“1/i”结果始终为0,导致结果出错。应该改为“sum+=1.0/i”。故本题答案为A选项。

18.D第—个if语句a!=1条件为假,所以执行dse后的语句r=1。第二个if语句b==2条件成立,执行r+=2,r的值变为3,第三个if语句c!=3条件为假,所以不做任何操作。执行下面的r+=3操作,r的值变为6。判断第四个讧条件,d==4条件成立,执行r+=4操作,结果为10。

19.D本题考查"drhile循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,X++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,x=2,y-1=1,循环条件成立,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<X成立,执行break语句,退出循环。结果为D。

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

21.98768769876\r\n876解析:指针是一种数据类型,这种数据类型的变量用来存放内存中分配的存储单元的首地址。指针的定义:

类型说明符*指针变量名;

22.n/base或n/16c[i]n/base或n/16\r\nc[i]解析:字符串的综合运用。

23.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本题主要考查了插入排序。由于程序中的数组在开始己经按从小到大顺序排序排好。在插入时,首先要查到第一个大于恃插入数的数组下标,即当待插入元素小于数组中当前元素时,记下数组的当前下标p,并结束循环,故第一空目的是为了记下数组下标,应填p=i;插入排序的第二部是将大于待插入元素的所有元素都向后移动—位,故在循环时,要从最后一个元素到第p个元素都要后移一位,因此第二空应填>i=p。最后一个循环是将N+1个元素都输出,故最后一空应为i<=N。(注:本题有多种答案,以上仅提供一种)

24.3131解析:设队列容量为m,如果:rear>front,则队列中元素个数为rear-front;如果rear<front,则队列中元素个数为m+(rear-front)。本题rear<front,则m=32+(2-3)=31。

25.123\n056\n009123\\n056\\n009解析:数组是用于按顺序存储同类型数据的数据结构,如果有一个一维数组,它的每一个元素是类型相同的一维数组,就形成了一个二维数组。在内存中数组的元素是连续顺序存放的,对;维数组来说,先存放第一行,再存放第;行,…,因为每一行都是其广义一维数组的元素,并且在给出全部数组元素的初值后,二维数组的定义中可以将第一维的下标省略。本题中,定义了一个元素类型为整型的二维数组敢a[][3]={1,2,3,4,5,6,7,8,9),它相当于一个3*3的矩阵,for(i=0;i<3:i++)for(j=i+1;j<3;j++)a[j][i]=0;将行下标i大于列下标j的元素s[1][0],a[2][0],a[2][1]赋值为0,最后for(j=0;j<3;j++)prinff('%n',a[i][j]);printf('\\n');进行换行输出,所以输出结果为

123

056

009

26.降低复杂性降低复杂性

27.线性结构线性结构解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。

28.p!=NULLp->nextp!=NULL,p->next解析:考查了单链表的相关知识。NULL的ASCII码的值和'\\0'的ASCII码的值相等,条件到NULL停止循环。把下一个节点的地址赋给p,这样循环,节点可以依次向后取值。

29.8484解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。

30.n-1

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

32.(double*)

33.j<Ia[i][j]=a[j][i]j<I\r\na[i][j]=a[j][i]解析:本题中要求将n行n列的矩阵A转置,即让数组中行上的元素变成对应列上的元素。即把对角线两边的元素对换,所以本题的第一个空白处应该填写j<i,第二个空白处填写交换对角线两边的元素的语句a[i][j]=a[j][i]。

34.软件开发

35.参照完整性参照完整性

36.q<p+nq<p+n解析:通过地址传递可以在被调函数中对调用函数中的变量进行引用。

37.x=11x=11解析:在对无符号数的右移是高位补0。

38.22

39.66

40.2424解析:continue语句功能:结束本次循环(注:不是终止整个循环),即跳过循环体中continue语句后面的语句,开始下一次循环。

41.B解析:scanf()函数要求将输入的数据存入变量所在的地址。选项A不是C语言中的输入语句,故选项A不正确;选项C中输入的是变量字符串而不是地址字符串,不满足scanf()函数要求将输入的数据存入变量所在的地址,故选项C不正确;选项D不是C语言中的输入语句,故选项D不正确:所以,4个选项中选项B符合题意。

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

43.D解析:用户标识符与关键字相同时,程序在编译过程中将给出出错信息。注意:选项D)应该改为用户标识符与关键字相同,程序在编译时将给出出错信息。注意:合法的标识符第一个字符必须为字母或下划线。

44.B解析:根据C语言的语法,x++是在使用x之后,再将x的值加1,在if语句中,x的值为5,条件不成立,执行else后面的语句,因为x的值已经加1,为6,所以打印结果为6。

45.C解析:先看sort()函数,它没有返回值,有两个参数,一个int型数组和一个int型变量。在函数中是一个;重循环,外循环变量i从0递增到n-2,内循环变量j从i+l递增到n-1。内循环体是一条if语句“如果a[i]

46.A解析:函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针型。它的作用是将一个变量的地址传递到另一个函数中。当数组名作参数时,如果形参数组中的各元素的值发生变化,实参数组元素的值也将随之发生变化。

47.A解析:R-S表示属于R但不属于S,R-(R-S)\ue009表示属于R但不属于(R-S),即相当于R∩S。

48.A解析:函数调用相当于f(2,3),程序运算应得结果为'-1'。

49.C解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C)。

50.C

51.D解析:异或运算符(^)的运算规则是:参加运算的两个相应位同号,则结果为0(假);异号则为1(真)。取反运算符(-)的运算规则是:对一个二进制数按位取反,即将0变为1,1变为0。本题(-3)是对3(二进制形式为00000011)按位取反即11111100。表达式(2+x)(-3)的值就等价于(00000010+10100111)^11111100,结果为01010101。

52.D解析:本题考核的知识点是函数的返回值作为函数参数的应用。主函数中首先定义了4个整型变量x、y、z和r,并分别给x、y、z赋初值为3、8、6,接着调用一个fun()函数,并将返回值赋给变量r。其中将fun(x,y)函数的返回值和2*z作为fun()函数的两个参数。在内层fun(x,y)函数中,将x的值和y的值传给形参a和b,此时a和b的值分别为3和8,执行if语句,由于if后面判断条件表达式“a>b”为假,所以执行else后面的语句,返回值为8。此时,外层fun(x,y)函数两个参数为8和2*z=12,所以r的赋值语句相当于r=fun(8,12),同上分析可知fun(8,12)返回值为12,因此最后r的值为12。所以,4个选项中选项D符合题意。

53.C解析:考查通过指针来引用一维数组元素的方法。若指针s指向数组a,则s[t]可以引用数组a中下标为t的元素。

54.A

55.C

56.D解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。

57.C解析:该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char*p[2]后,程序中第一个循环for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p[1]元素指向二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的内容为字符串'8254'。③程序中第二个循环中的循环体s=s*10+p[i][j]-\'0\';的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前p[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i]\ue009[j]>\'\\0\'是指p[i][j]中的字符只要不是字符串结束标志\'\\0\'就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串'6937'中一个隔一个地取出字符,分别是\'6\'和\'3\',然后从p[1]所指向的字符串'8254'中一个隔一个地取出字符,分别是\'8\'和\'5\',同时经过转换和相加运算后,结果s中的值应该是6385。

58.BB)【解析】数据库设计的目的实质上是设计出满足

\n实际应用需求的实际关系模型。数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性:提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。

59.A解析:本题考核的知识点是scanf()函数及printf()函数的输出格式。程序在定义时,以十进制形式为m赋初值,以八进制的形式为n赋初值.输出的时候m以十进制形式输出,n以八进制形式输出,因此输出的结果为32767和32767。所以,A选项为所选。

60.D

61.B第一次执行外循环i的值为1,满足条件,判断第一次内

温馨提示

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

评论

0/150

提交评论