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

下载本文档

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

文档简介

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

一、单选题(20题)1.下列叙述中错误的是()。A.程序可以由多个程序文件组成

B.一个C语言程序只能实现一种算法.

C.程序可以由一个或多个函数组成

D.一个C函数可以单独作为一个C程序文件存在

2.设有以下宏定义:#defineN3#defineY(n)((N+1)*n)则执行以下语句后,z的值为______。z=2*(N+Y(5+1));A.出错B.42C.48D.54

3.

4.

5.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是()。

A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10

6.以下语句中,正确制作电子邮件链接的是()。

7.结构化程序设计方法的3种基本控制结构中不包括

A.循环结构B.递归结构C.顺序结构D.选择结构

8.

有如下程序:

main()

{intn[5]={0,0,0},i,k=2;

for(i=0;i&printf("%d\n",n[k]););

}

该程序的输出结果是()。

A.不确定的值B.2C.1D.0

9.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序运行后的输出结果是()。

A.20045537B.20044550C.20042580D.20041703

10.有以下程序:

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

A.45B.20C.25D.36

11.在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从前向后依次前移____个元素。

A.n-iB.n-i+1C.n-i-1D.i

12.

13.某二叉树结点的中序序列为ABCDEFG,后序序列为BDCAFGE,则其左子树中结点数目为()

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

14.微型计算机的运算器、控制器及内存储器组合在一起,称之为()

A.ALUB.CPUC.MPUD.主机

15.以下程序段中的变量已正确定义:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”);程序段的运行结果是()。

A.**B.****C.*D.********

16.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序运行后的输出结果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

17.以下函数调用语句中含有实参个数为().func((exp1,exp2),(exp3,exp4,exp5));

A.1个B.2个C.4个D.5个

18.下列描述中正确的是()。

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据与相关文档的集合

19.下面描述中,不属于软件危机表现的是()A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高

20.线性表的顺序存储结构是一种()。

A.随机存取的存储结构B.顺序存取的存储结构C.索引存取的存储结构D.Hash存取的存储结构

二、2.填空题(20题)21.函数pi的功能是根据以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3.3)+...+1/(n*n)

请在下面的函数中天空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<<=n;i++)s=s+【】;

return(sqrt(6*s));

}

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

inta=1234;

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

23.以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。

main()

(inti,j;

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

{j=i*10+6;

if(())continue;

printf("%d",j);

}

}

24.下列程序执行后输出的结果是【】。

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

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

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

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

}

27.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,请填空:

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,B);

for(i=0;i<3;i++)printf("%4d",b[i]);

printf("\n");

}

voidfun(intm,intn,intar[][4],int*bar)

{inti,j,x;

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

{X=ar[i][0];

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];()=x:

}

}

28.软件生命周期分为软件定义期、软件开发期和软件维护期,详细设计属于______中的一个阶段。

29.函数rewind的作用是

30.算法的复杂度主要包括【】复杂度和空间复杂度。

31.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。

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

33.在Windows环境下,可以将窗口最小化为【】。

34.类是一个支持集成的抽象数据类型,而对象是类的【】。

35.在面向对象的程序设计中,类描述的是具有相似性质的一组【】。

36.栈中允许进行插入和删除的一端叫做______。

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

main()

{inta[]={31,27,20,12,6,1},*p=a;

p++;

printf("%d\n",*(p+2));

}

38.以下程序的输出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

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

40.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。

main()

{

inti,a[20],sum,count;

sum=count=0;

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

scanf("%d",(______);

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

{

if(a[i]>0)

{

count++;

sum+=(______);

}

}

printf("sum=%d,count-%dkn",sum,count);

}

三、1.选择题(20题)41.电子数字计算机最主要的工作特点是()

A.高速度B.高精度C.存储程序与自动控制D.记忆力强

42.下面程序的输出结果是

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%d\n",*p+9);}

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

43.以下程序输出的结果是#include<stdio.h>main(){inti=010,j=10;printf("%d,%d\n",++i,j--);}

A.11,10B.9,10C.010,9D.10,9

44.若有如下程序:ints[3][3]={'a','b','C','d','e','f','g','h','i'},*t;main(){t:(int*)malloc(sizeof(int));sub(t,s);printf("%c\n",*t);}sub(int*p,intb[][3]){*p=b[2][1];}则程序运行后的输出结果是()。

A.dB.eC.hD.b

45.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3t%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若运行时从键盘上输入(图片),则上面程序的输出结果是______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

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

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

47.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则

A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次

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

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

49.C语言中文件的存取方式()

A.只能顺序存取B.只能随机存取(或直接存取)C.可以顺序存取,也可随机存取D.只能从文件的开头进行存取

50.设intx=7,则~x的值是()。

A.-8B.-7C.-1D.1

51.若有下列定义(设int类型变量占2个字节):

inti=8,j=9;

则下列语句:

printf("i=%u,j=%x\n".i,j);

输出的结果是()。

A.i=8,j=9B.8.9C.89D.i=8,i=8

52.对建立良好的程序设计风格,下列描述中正确的是()。

A.程序应该简单、清晰、可读性好B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无

53.fwrite函数的一般调用形式是

A.fwrite(buffer,count,size,fp);

B.fwrite(fP,size,count,buffer);

C.fwrite(fp,count,size,buffer);

D.fwrite(buffer,size,count,fp);

54.在数据管理技术的发展过程中,可实现数据共享的是()

A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.系统管理阶段

55.现有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}则程序段的输出结果为

A.7,8B.8,8C.7,10D.8,10

56.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法

A.对象B.数据结构C.数据流D.目标

57.有以下程序:main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",C);}执行后的输出结果是()。

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

58.下面程序的输出结果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}

A.SOB.SPC.SPOPKD.SHOB

59.下列程序的输出结果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);}

A.123B.234C.223D.233

60.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是

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

四、选择题(20题)61.以下选项中,能定义S为合法的结构体变量的是()。

A.

B.

C.

D.

62.

63.对字符数组s赋值,不合法的一个是()。

A.chars[]="Beijing"

B.chars[20]={"Beijing"}

C.chars[20];s="Beijing"

D.chars[20]={’B,’e’,’i’,’j’,’i’,’n’,’g’}

64.若有定义语句:

charS[10]=”1234567\0\0”;则strlen(s)的值是()。

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

65.若有定义:“inta=4,b=5;floatx=3.4,y=2.1;”,则下列表达式的值为()。(float)(a+b)/2+(int)x%(int)y;

A.5.5B.55C.5.500000D.55.00000

66.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系

67.

68.三种基本结构中,能简化大量程序代码的是()。

A.顺序结构B.分支结构C.选择结构D.重复结构

69.

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

A.数据库管理系统是数据库的核心

B.数据库系统由数据库、数据库管理系统、数据库管理员三部分组成

C.数据共享最好的是数据库系统阶段

D.数据库中的数据独立于应用程序而不依赖于应用程序

71.

72.

73.

74.

75.下列不可用于C语言用户标识符的是A.A.j2_KEY

B.char

C._g_

D.Double

76.有以下程序:

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

A.LoB.30C.0D.64

77.设在C语言中,float类型数据占4个字节,则double类型数据占()个字节。A.A.1B.2C.8D.4

78.

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

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

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

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

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

80.

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:根据输人的三条边长(整形),判断能否构成三角形;构成的是等边三角形还是等腰三角形。若能构成等边三角形函数,返回3;若能构成等腰三角形函数,返回2;若构成=三角形函数,返回l;若不能构成三角形函数返回0。请修改函数fun()中的错误,得出正确的结果。注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p到n-1(p≤n-1)的数组元素平移到数组的前面。例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,P的值为4。移动后,一维数组中的内容应为5,6,7,8,9,10.11,12,13,14,1,2,3,4。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B)错误。

2.D

3.A

4.B

5.B不能将变量赋给表达式,故A、C选项错误。D选项中强制类型转换表达式应写成“(double)x/10”。故本题答案为B选项。

6.C

7.B解析:本题考查了程序的基本结构。程序由一些基本结构组成。任何一个大型的程序都由3种基本结构组成,由这些基本结构顺序的构成了一个结构化的程序。这3种基本结构为:顺序结构、选择结构和循环结构。

8.D

\n本题for循环中,当i=0时,判断条件i&printf('%d\n',n[k]),此时i的值是0,输出n[k]的值也为0,0&0结果还是0,条件不成立,退出循环。所以最后输出结果为0。

\n

9.D解析:函数f中定义了结构体类型的变量P作为形参,在main函数中,将结构体变量s[0]中的值传给了形参变量P,在函数f中,虽然改变了p中的内容,但其改变对main函数中s[0]的值不产生影响,所以main函数中输出s[0]的数据仍然是main函数中初始化时的数据。

10.C统计1~9九个数中的奇数和,此题重点考察指向数组的指针。c语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第i+1个元素。程序运行的结果是l+3+5+7+9=25。1

11.A

12.C

13.C

14.D

15.C因为内层循环“for(k=1;k<3;k++)”后面直接跟了空语句“;”,所以在循环内部什么操作也不做,跳出外层循环后执行printf语句,输出一个“*”。故本题答案为C选项。

16.A本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母a.a赋值为字母A,调用fun(&.b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。

17.B

18.D\r\n软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此选项D正确。

19.A软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。所以选择A。

20.A

21.1.0/i/i或1.0/(i*i)1.0/i/i或1.0/(i*i)解析:由题面中提供的计算pi的公式可知:在第i项其值为1/(i*i),考虑到运算结果为浮点数,故必须要将1转化为浮点数或采用1.0/(i*i)的形式。故本题应填1.0/(i*i)或其等效形式。

22.12341234解析:在%与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。

23.j%3!=0j%3!=0解析:for循环语句中表达式“j=i*10+6;”可以给出100以内个位数为6的所有整数,因此if语句只需判断该数能否被3整除即可,可应用取余运算表达式“j%3!=0”判断。

24.1111解析:程序中结构体数组data首地址(即&data[0])赋值给结构体指针变量p,++(P->x)表示先将p所指向的结构体变量的成员x值加1,然后将此x(即data[0].x)输出。

25.1100101

26.a=14a=14解析:逗号表达式的值是以逗号分隔的最后一个表达式的值。所以题目中的语句a=(3*5,a+4);就等价于a=a+4;。故本题输出结果是a=14。

27.br[i]br[i]解析:函数fun的功能是求出二维数组每行元素中的最大值。对于3行4列的二维数组将有3个最大值存放到数组br[]中。x存放的是每行的最大值,当求出每行的最大值x后,应该将x赋值给br[]。因此此处填空应该是br[i]。

28.软件开发软件开发解析:软件生命周期分为3个时期共8个阶段:软件定义期(问题定义、可行性研究和需求分析)、软件开发期(系统设计、详细设计、编码和测试)、软件维护期(即运行维护阶段)。

29.A

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

31.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。

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

33.图标或按钮图标或按钮

34.实例将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。

35.对象对象解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。

36.栈顶栈顶解析:栈是限定在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端叫做“栈顶”,不允许插入和删除的一端叫做“栈底”。

37.1212解析:本题签考查如何用指针引用数组元素。分析程序,首先定义了一个指向数组a的指针p,p指向数组的首地址,通过p++,将p指向a[1],p+2是将指针后移2位指向a[3],*(p+2)即是取a[3)的值12。

38.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷贝函数,作用是将字符串s1拷贝到字符数组strl中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括\'\\0\'在内。本题中strlen(str1)的值为13,则strcpy(strl+strlen(strl)/2,'esshe');相当于strcpy(strl+6,'esshe');,因此可得答案为Howdoesshe

39.软件开发

40.&a[i]或a+ia[i]或*(a+i)&a[i]或a+ia[i]或*(a+i)解析:主函数中一开始定义了一个长度为20得整形数组,然后通过—个循环,循环20次给它的每个元素赋初值,所以在第一个空格处应填各个元素的地址,即填&a[1]或a+i,然后在通过一个循环执行20次,每循环一次,先判断该循环是否大于0,如果大于。将其累加到变量sum中,所以第二个空格处应该填入数组元素,所以应该填a[i]或*(a+i)。

41.B解析:通常所说的计算机应是电子数字计算机的简称。电子数字计算机是一种能快速、自动进行数值计算和信息处理的计算工具。其主要特点是:(1)计算机能快速计算;(2)计算机是具有通用性的计算工具;(3)计算机具有高准确度;(4)计算机具有逻辑判断能力。

42.C解析:此题考查了指针引用一维数组元素的方法。*p+9因为运算符'*'的优先级高于'+',所以输出结果为p指向的元素1,然后加9,值为10。

43.B解析:本题考核的知识点是自增运算符和自减运算符的使用.程序中i的值用八进制表示(十进制为8),++i是在变量使用前自身先加1,而j--是在变量使用后自身减1。所以,4个选项中B符合题意。

44.C解析:让指针变量t指向一个整型动态存储空间。函数sub中的语句“*p=b[2][1]”是将数组元素b[2)(1]即h赋给p所指向的存储单元中。

45.C解析:scanf()把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。

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

47.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。

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

49.D

50.A解析:本题主要考查按位求反运算和C语言中正负数的表示,“0”代表正数,“1”代表负数;x=7的二进制为00111,第一个0代表正数,~x为11000,第一个1代表负数,值为8。

51.A解析:本题考查函数printf()的格式。“%x”表示以十六进制输出整型数据;“%u”表示以十进制无符号型输出整型数据。printf函数中格式说明符之前插入的任何字符都原样输出。

52.AA。【解析】”清晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。

53.D解析:fwrite的形式是fwrite(buffer,size,count,fp),buffer表示准备输出的数据块的起始地址,size表示每个数据块的字节数,count用来指定每写一次或输出的数据块,fp为文件指针。

54.C解析:本题考查了考生对数据库基础知识的记忆。数据库技术的主要目的是有效地管理和存取数据资源,包括提供数据的共享性,使多个用户能够同时访问数据库中的数据;减少数据的冗余度,以提交数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。数据库的人工管理阶段和文件系统阶段,数据都不能实现共享,出现数据冗余现象。选项D)的说法是错误的。

55.D解析:在C语言中,定义一维数组的语句一般形式如下:

类型名数组名[常量表达式];

一维数组的引用形式为:数组名[下标表达式]。count表示能被2整除或被5整除的个数,i则计算有多少个数组元素。

56.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

57.C解析:*p1=1,*p2=3,*p=3,指针p指向变量c,故正确选项为C。

58.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第—个字符。在for循环中,i的初值为3,那么输出的第—个字符为“S”,接着两次i--,则输出的值为*p[1],即字符“O”,所以本题的输出为SO。

59.D解析:本题考查自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“‖”。自增运算符“++”,出现在变量之前(如题中的中++n),表示先使变量的值加1,再使用变量的值进行运算:出现在变量之后(如题中的n++),表示先使用变量的值进行运算,再使变量的值加1。当逻辑与运算符“&&”两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“‖”左边的运算对象为真时,其值就为真,不用计算其右边的运算对象的值.所以根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;由于1与任何数都为进行或(‖)运算,结果都为1,因此k=3;最后计算“&&”之前的表达式,i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。

60.B解析:主函数中for循环执行两次,i=1和i=2。调用函数f(1),返回值为1,j=1;调用函数f(2),计算表达式f(n-1)+1的值时递归调用f(1),返回值为2,j=3。所以B为所选。

61.B本题的考查点是结构体变量的定义。定义一个结构体类型的变量,可采用三种方法:

(1)先定义结构体类型再定义变量;

(2)在定义类型的同时定义变量;

(3)直接定义结构体类型变量,.即不出现结构体名。选项B)符合第三种定义方法。

62.C

63.C数组赋值时,字符串常量给出的是这个字符串在内存中所占存储单元的首地址,而s是一个不可重新赋值的数组名,所以此赋值不合法。

64.Astrlen()函数在计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中字符串,从第一个字符开始,遇到第一个结束标识‘\0’为止,注意‘\0’不占字符串长度,所以字符串长度为7。因此A选项正确。

65.C在计算(float)(a4-b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。在计算(int)x%(int)y时,先将x和y通过强制类型转换成i

温馨提示

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

评论

0/150

提交评论