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

下载本文档

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

文档简介

2022年山东省临沂市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________一、单选题(20题)1.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是()

A.多对多B.一对一C.多对一D.一对多

2.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。A.switch(x)

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

3.设有二维数组A7×8,每个数据元素占8个字节存储单元,顺序存放,A第一个元素A0,0的存储地址为1000,按行优先存放时,元素A3,4的地址为()。

A.1224B.1208C.1200D.1216

4.设有定义“intm=1,n=2;”,则以下if语句中,编译时会产生错误信息的是()。

A.if(m>n)m--elsen--;

B.if(m=n){m++;n++;}

C.if(m<0&&n<0){}

D.if(m>0);elsem++;

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

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

6.

7.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf(“%3.Of\n”,fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是

A.编译出错B.9C.21D.9

8.在以下给出的表达式中,与“while(E)”中的“(E)”不等价的表达式是()。

A.(E>0||E<0)B.(E==0)C.(!E==0)D.(E!=0)

9.设有下列二叉树:

对此二叉树后序遍历的结果为

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

10.若已定义:“inta[9],*p=a;”,并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是______。

A.p+1B.a+1C.a++D.++p

11.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

12.在E-R图中,用来表示实体的图形是______。A.矩形B.椭圆形C.菱形D.三角形

13.有如下程序:main(){intx=1,a=0,b=0;switch(x){case0:b++;casel: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

14.有以下程序:#include<stdio.h>main(){intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;for(i=0;i<3;i++)for(j=1;j<=i;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是()。A.1B.3C.4D.0

15.设一棵二叉树共有50个叶子结点(终端结点),则共有___个度为2的结点。

A.25B.49C.50D.51

16.

17.若有定义inta=5,b=7;,则表达式a%=(b%2)运算后,a的值为()。

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

18.若在线性表中采用折半查找法查找元素,该线性表应该()。

A.元素按值有序B.采用顺序存储结构C.元素按值有序,且采用链式存储结构D.元素按值有序,且采用顺序存储结构

19.

20.数据结构主要研究的是数据的逻辑结构、数据的运算和()。A.数据的方法B.数据的存储结构C.数据的对象D.数据的逻辑存储

二、2.填空题(20题)21.下面程序的输出是【】。

main()

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

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

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

}

22.以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));}

23.若有如下结构体说明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。

【】t[20]

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

25.以下程序中,for循环体执行的次数是______。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

for(i-1;i<K;i++)

{...}

...

}

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

27.有以下程序段:

inta[l0]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值是【】。

28.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

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

main()

{unsignedshorta=65536;intb;

printf("%d\n",b=A);

}

30.以下isprime函数的功能是判断形参a是否为素数,如果是素数,函数返回1,否则返回0。

intisprime(inta)

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

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

}

32.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体集“项目主管”与实体集“项目”的联系属于【】的联系。

33.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若运行时输入:1234<回车>,程序的输出结果是【】。

34.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

35.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。

36.下列程序段中循环体的执行次数是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

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

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

main()

inta.b,c;

a=10;b=20;c=(a%b<)||{a/b>1);

printf("%d%d%dn",a,b,c);

}

39.与十进制数101等值的二进制数为【】。

40.若x、y和z均是int型变量,则执行下面表达式后的x值为【】。

x=(y=4)+(z=3)

三、1.选择题(20题)41.下列有关数据库的描述,正确的是______。

A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件

42.有以下定义语句

doublea,b;intw;longc;

若各变量已正确赋值,则下列选项中正确的表达式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;

43.在下列几种排序方法中,要求内存量最大的是______。

A.插入排序B.选择排序C.快速排序D.归并排序

44.下列程序的输出结果是()。#include<stdio.h>main(){inta=2,b=3,p;p=f(a,b);printf("%d",p);}intf(a,b){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}

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

45.执行以下程序后,x的值为()。unsignedintx=65535;printf("%d\n",x);

A.65535B.1C.有错误D.-1

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.以下合法的赋值语句是______。

A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)

48.设有定义:charp[]={′1′,′2′,′3′},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

49.下列程序的输出结果是______。main(){inti=0x100,j=100,k=0100;printf("%d%d%d\n",i,j,k);}

A.100100100B.16100100C.25610064D.256100100

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

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

51.设下面程序的可执行文件名为prg.exe,在该程序所在子目录下输入以下命令行:prghellogood<回车>则程序的输出结果是______。main()(intargc,char*argv[]){inti;if(argc<=0)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);}

A.hellogoodB.hgC.helD.hellogood

52.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序运行后的输出结果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

53.有以下函数:charfun(char*p){returnP;}该函数的返回值是()。

A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值

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

A.intB.floatC.doubleD.不确定

55.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;……}程序在执行了“c=&b;b=&a;”语句后,表达式“**c”的值是()。

A.变量a的地址B.变量b中的值C.变量a中的值D.变量b的地址

56.有以下程序#include<stdio.h>main0{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是

A.741B.963C.852D.875421

57.有以下程序

#include<stdio.h>

main()

{FILE*fp;inti,a[6]={l,2,3,4,5,6};

fp=fopen("d3.dat","w+b");

fwrite(a,sizeof(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/

fread(a,sizeof(int),3,fp);fclose(fp);

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

}

程序运行后的输出结果是

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

58.在C语言中,退格符是

A.\nB.\tC.\fD.\b

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

A.在面向对象的程序设计中,各个对象之间具有密切的联系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小

D.上述三种说法都不对

60.下列程序的输出结果是()。#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

四、选择题(20题)61.给出以下定义:

则正确的叙述为()。

A.数组m和数组n等价B.数组m和数组n的长度相同C.数组m的长度小于数组n的长度D.数组m的长度大于数组n的长度

62.

63.

64.

65.在以下选项中,能正确调用对象属性的语句是()。

A.对象名(属性名)B.对象名一>属性名C.对象名属性名D.对象名.属性名

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

A.数据库B.数据库管理系统C.数据库管理员D.数据库应用系统

67.以下选项中合法的标识符是()。A.1_2B._12C.2_1D.12__

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

A.用typedef可以增加新类型

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

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

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

69.

70.以下能正确定义一维数组的选项是()。

A.

B.

C.

D.

71.

72.当变量c的值不为2、4、6时,值为“真”的表达式是()。

73.

设有下列程序段:

charstr[]="HelloWorld":

char*plr;

ptr=str:

执行上面的程序段后,*(ptr+10)的值为()。

A.\0B.0C.不确定的值D.0的地址

74.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)执行后的输出结果是()。A.5,5B.5,11C.11,11D.11,5

75.软件按功能可以分为应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是().

A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统

76.两个或两个以上模块之间联系的紧密程度称为()。

A.耦合性B.内聚性C.复杂性D.数据传输特性

77.有以下函数定义:

voidfun(intn,doublex){……}

若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是

A.fun(inty,doublem);B.k=fun(10,12.5);

C.fun(x,n);D.voidfun(n,x);

78.

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,2和Y的值不相等。例如,当x的值为1,y的值为2,z的值为3时,函数值为2.O0。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。

参考答案

1.C解析:该题考查的是实体间的联系。多对多联系(m:n):如果对于实体集A中的每个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中有m个实体(m≥0)与之联系,则称实体集A与实体集B之间是多对多联系,记作m:n。一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之有联系,反之亦然,则称实体集A与实体集B之间是一对一联系,记作1:1。一对多联系(1:n):如果对于实体集A中每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B之间是一对多联系,记作1:n。那么根据题意可知是多对一联系。所以选项C是正确的。

2.C

3.A

4.A选项A中,if语句的语句块“m--”后面少了分号,不合法,编译会出错。其他选项都是正确的。故本题答案为A选项。

5.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。

6.D

7.B解析:fun()函数是将传进来的两个整型参数相加,把和作为函数值返回,注意返回值为float型。在主函数调用了两次fun()函数,第一次调用时把表达式“a+c”和变量“b”的值求和,得到15转换为15.0作为函数的返回值。第二次调用把第一次调用的返回值通过强制类型转换成int型15,再和表达式“a-c”相加,得到结果9,转换成float型作为函数值返回。由于输出格式符为“%3.of输出时没有小数位,故输出为9。

8.Bwhile语句中条件表达式E的值不为0即真,认为满足条件。这与B选项中表达式的含义正好相反。故本题答案为B选项。

9.D解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求后序遍历,其遍历顺序应该为:后序遍历左子树->,后序遍历右子树->,访问根结点。按照定义,后序遍历序列是DEBFCA,故答案为D。

10.C

11.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。

12.A解析:在E-R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名;用菱形框表示实体间的联系,框内标明联系名。所以,选项A正确。

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

14.C本题考查了两层for循环。外层循环增量i的值作为内层循环执行次数的值使用。

15.B难易程度:易

16.B

17.A解析:本题考查'%'运算符的使用。运算符'%'要求两个运算对象都为整型,其结果是整数除法的余数。本题中表达式ao%=(b%2)等价于a=a%o(b%2)=5%(7%2)=5%1=0。

18.D

19.D

20.B详细解答:

数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包含3个方面的内容,即数据的逻辑结构、存储结构和数据的运算。

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

22.structst或exstructst或ex解析:结构体类型数据,其数据成员各自占据不同的存储空间,整个结构体变量所占存储单元的字节数为每一个数据成员所占的存储空间的和。注意:共用体变量所占存储单元字节数的计算。

23.strudctSTRUstrudctSTRU解析:结构件类型是构造数据类型,是用户自己定义的一种类型。

结构体类型的定义:

struct结构体类型名

{

成员项表;

};

定义结构体变量的的形式为:

struct结构体类型名变量1,变量2,...?

其中变量包括;一般变量、指针变量、数组变量等。

24.软件开发

25.44解析:将程序中所有的宏替换掉可得:M=2+1,K=2+1*2+1/2=4,所以for循环共循环了K-1+1次,即4-1+1共4次。

26.类类

27.99解析:p是一个指针变量,指向数组a的元素a[3],所以b=p[5]=a[5+3]=a[8]=9。

28.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。

29.00解析:对于一个unsignedshort来说,它能取的最大值是65535。这里给a赋值65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它(全零)。所以a的值实际为0。

30.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素数是指只能被1和其本身整除,不能被其他任何整数整除的数。根据if条件语句,若形参a对i取余等于0,则形参a可以被其他数整除,所以第一处填return0;若形参a对i取余不等于0,则形参s不可以被其他数整除,所以第二处填return1。

31.11解析:因为在条件表达式(a<b)?a:b中,比较表达式a<b为真,所以x的值等于a的值等于1,后面两个条件表达式中的比较表达式都为真,所以最终x的值等于1。

32.一对多一对多解析:实体集“项目主管”与实体集“项目”的联系属于一对多的联系。

33.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

34.89218921

35.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。

36.33解析:本题考查do…while语句形式:

do循环体

while表达式

首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。第1次循环:b+=2,b=2,a-=2+b,a=11;第2次循环:b=4,a=5;第3次循环:b=6,a=-3,此时再判断循环条件不满足,退出循环。

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

38.1020010200解析:本题的关键在于求表达式(a%b<1)‖a/b>1)的值。已知a=10,b=20,所以a%b=10,因此(a%b<1)为“假”。而a/b=0,因此(a/b>1)亦为“假”。,D运算的两边同时为“假”,所以整个表达式的值为。“假”,即c等于0。所以,本题最终输出为:10200。

39.1100101

40.77解析:x=(y=4)+(z=3)等价于y=4,z=3,x=y+z=4+3=7。

41.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。

42.C解析:选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。

43.D解析:快速排序的基本思想是,通过一趟排序将排序记录分割成独立的两部

分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继

续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依

次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整

个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩

下的于表采用同样的方法,直到表空为止;归并:排序是将两个或两个以上的有序表组合

成一个新的有序表。

注意:各种排序方法实现过程及实现机制。

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

45.D解析:x变量定义为无符号整型。格式控制符d是输出带符号的十进制整数,即输出-1。65535在内存中各位都为1,作为带符号数输出时最高位为1即数值为负。在内存中数据都以其补码形式保存,11111111变为原码为10000001即-1。

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

47.B解析:本题中的答案A与D都缺少“;”,而答案C中,表达式是不能独立成为语句的,答案B使用了C语言的自减运算符它就相当于D=D-1,所以答案B为一赋值语句。

48.A解析:在本题中,p和q同为指向字符类型数据的指针。*q和p[0]同为字符型数据。选项B)、C)和D)都符合题目的要求;选项A)计算得出的是指针类型数据所占的内存字节数。

49.C解析:i,j初始化时分别赋予十六进制数和八进制数,对应的十进制数是256和64。

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

51.B解析:argc=3,argv[1]='hello',argv[2]='good'。注意:printf格式串中是%c,因此输出argv[1]和argv[2]的第一个字符,即'hg'。

52.B解析:主函数中先定义了一个整型变量a,一个字符变量c并赋初值10,一个浮点型变量f并赋初值100.00和一个double型x,接着执行a=f/=c*=(x=6.5),该语句从右向左计算,先把6.5赋值给x(该括号表达式的值也为6.5),此时x的值变为6.5,然后执行c*=(x=6.5)相当于执行c=c*(x=6.5),此时c的值为65,接着向左执行f/c*=(x=6.5),语句相当于执行f=f/c,所以f的值为100/65≈1.538。接着向最右边执行“a=f”,由于a是整型变量,所以a最后去f的整数部分为1。程序最后输出的a、c、f和x的值(f和x只保留小数点后面1位)分别为1、65、1.5、6.5。所以,4个选项中选项B符合题意。

53.B解析:本题考查函数返回值的知识。函数返回值是通过函数中的return语句获得,return语句中的表达式的值就是所求函数的值。此表达式的值必须与函数首部所说明的类型一致。若类型不一致,则以函数值的类型为准,由系统进行转换。

54.C解析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。

55.C解析:主函数中定义了一个整型变量a,一个整型指针变量b和一个二级指针变量c,并让c指向指针变量b,让指针b指向整形变量a,所以**c为变量a的值,所以,4个选项中选项C符合题意。

56.C解析:本题考查变量的自加“++”和自减“--”问题。当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式--y的值,y的自减要先于输出语句执行,故输出结果为852。

57.A解析:首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据'4',然后fread函数将文件fp中的后3个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了{4,5,6,4,5,6}。

58.D解析:在C++语言中退格符表示为\\b退格。注意:其他转义字符的意义:\\n表示回车换行,\\t表示横向跳到下一制表位置,\\v表示竖向跳格,\\r表示回车,\\f表示走纸换页,\\\\表示反斜线符,\\a表示鸣铃,\\ddd1~3位表示八进制数所代表的字符,\\xhh1~2位表示十六进制数所代表的字符。

59.C解析:在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项A与B错误,选项C正确。

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

61.D按照m方式声明的数组,系统会在数组尾部自动添加字符’\0’,因此m的长度比n大l。

62.A

63.C

64.D

65.D

66.B\n数据库管理系统是一种软件系统,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库系统的核心。

\n

67.B标识符命名规则:标识符必须由字母(a~z或A~z)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。因此,本题正确答案为B)。

68.Atypedef并不是增加了新类型,面是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用typedef可以增强程序的可移植性。所以A选项错误:

69.C

70.B解析:选项A中定义的是5个数组元素,但赋值的时候赋的是6个元素,所以出错;选项C不符合数组定义形式,数组名后应加上“[]”;选项D的类型说明符错误,如果用char定义就对了;选项B中的0,1,2,3,4,5分别表示对应字符的\u3000ASCII码,所以选项B是正确的。

71.D

72.A(C>=2&&C<=6)ll(C!=3)||(C!=5)可以满足题目条件,所以选择A)。

73.A

\n本题主要考查字符数组和指针

温馨提示

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

评论

0/150

提交评论