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

下载本文档

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

文档简介

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

一、单选题(20题)1.

2.下面程序输出的是()。main{intt=l;fun(fun(t));}fun(inth){staticinta[3]={1.2.3};intk;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=0;k<3;k++)printf("%d",a[k]);printf("\n");return(a[h]);}A.1,2,3,1,5,9,B.1,3,5,1,3,7,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,

3.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之间的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

4.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

5.表达式a*(b+c)-d的后缀表达式是()。

A.abcdd+-B.abc+*d-C.abc*+d-D.-+*abcd

6.有定义语句intb;charc[10];,则正确的输入语句是______。A.scallf("%d%s",&b,&c);

B.scallf("%d%s",&b,c);

C.scanf("%d%s",b,c)

D.scanf("%d%s",b,&c);

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

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

8.以下程序的输出结果是()。main{inta=1,b;for(b=1,b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);}A.A.3B.4C.5D.6

9.有以下程序

#include<stdio.h>

main()

{ints;

scanf(“%d”,&s);

while(s>0)

{switch(s)

{case1;printf(“%d”,s+5);

case2:printf(“%d”,s+4);break;

case3:printf(“%d”。s+3);

default:printf(“%d”,s+1);break;

}

seanf(“%d”,&s);

}

}

运行时,若输入12345O<回车>,则输出结果是A.6566456B.66656C.66666D.6666656

10.设已包含头文件<string.h>,下列程序段的运行结果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

11.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。

A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)

12.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}输出结果是()。A.11B.10C.9D.1011

13.结构化程序所规定的三种最基本控制结构是A.A.输入、处理、输出

B.树形、网形、环形

C.顺序、选择、循环

D.主程序、子程序、函数

14.(7-6-3-5-4-1-2)堆排序,升序排列,3的位置改变几次()

A.1B.2C.3D.4E.5F.6

15.以下关于return语句的叙述中正确的是()。

A.一个自定义函数中必须有一条return语句

B.一个白定义函数中可以根据不同情况设置多条return语句

C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

16.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构

17.关键路径是事件结点网络中()。

A.从源点到汇点的最长路径B.从源点到汇点的最短路径C.最长回路D.最短回路

18.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

19.下列定义数组的语句中,正确的是()。

A.intN=10;intx[N]:

B.#defineNl0;intx[N];

C.intx[0..10];

D.intx[];

20.下列程序的输出结果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6

二、2.填空题(20题)21.一棵二叉树第6层(根结点为第一层)的结点最多为______个。

22.有以下程序:

main()

{inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i+1;

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

}

程序运行后的输出结果是【】。

23.以下程序的运行结果是()。

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

24.若从键盘输入24,则以下程序输出的结果是()。

#include<stdio.h>

main()

{inta;

scanf("%d",&A);

if(a>20)printf("%d",A);

if(a>10)printf("%d",A);

if(a>5)printf("%d",A);

}

25.该程序运行的结果是【】。

#include<stdio.h>

main()

{unionEXANPLE

{struct

{

intx;

inty;

}in;

inta;

intb;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

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

printf("%d,%d\n",e.a,e.b);

}

26.设有以下定义和语句,则*(*(p+2)+1)的值【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

27.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

28.一棵二叉树中共有80个叶子结点与10个度为1的结点,则该二叉树中的总结点数为【】。

29.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

30.软磁盘最外边的磁道数是【】号磁道。

31.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

32.若有以下程序:

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

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

}

执行后的输出结果是【】。

33.设有定义语句:inta[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为()。

34.下面函数用来求出两个整数之和,并通过形参传回两数相加之和值。请填空。

intadd(intx,inty,【】,)

{【】=x+y;}

35.没有chara,b;,,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的二进制是【】。

36.下面程序的运行结果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}

37.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。

38.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

39.下列程序的运行结果为【】。

main()

{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};

printf("maxvalueis%d\n",maxvalue(3,4,a));

}

maxvalue(m,n,array)

intm,n,array[][4];

{inti,j,max;

max=array[0][0];

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

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

if(max<array[i][j])max=array[i][j];

return(max);

}

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

三、1.选择题(20题)41.软件详细设计的主要仟务是确定每个模块的

A.算法和使用的数据结构B.外部接口C.功能D.编程

42.下面说明不正确的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

43.若有程序段:intc1=1,c2=2,c3;c3=1.0/c2*cl;则执行后,c3中的值是()

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

44.有以下程序:#include<stdio.h>intf(intt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,2);printf("%d\n",s);}intf(intt[],intn){if((n>0)&&(n<5))returnt[n+1]+f(t,n-1);elsereturn0;}程序运行后的输出结果是()。

A.4B.7C.10D.61

45.下面程序的输出结果是()func(intx){staticinta=2;return(a+=x);}rnain(){intb=2,c=4,d;d=func(b);d=func(c);printf("%d\n",d);}

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

46.有以下程序:main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序执行后的输出结果是()。

A.自然数1~9的累加和B.自然数1~10的累加和C.自然数1~9中奇数之和D.自然数1~10中偶数之和

47.以下不合法的用户标识符是()。

A.r3_t3B.ElseC.6aD._6

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

A.scanfB.VoidC.3comD.int

49.在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是

A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言

50.数据的完整性是指数据的正确性、有效性和______。

A.可维护性B.独立性C.安全性D.相容性

51.有下列程序段:

structst

{intx;int*y;}*pt;

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

stmctstc[2]={10,a,20,b};

pt=c;

下列选项中表达式的值为11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->X

52.数据的存储结构是指()。

A.数据所占的存储空间

B.数据的逻辑结构在计算机的存放形式

C.数据在计算机中的顺序存储方式

D.存储在计算机外存中的数据

53.下列程序段中,不能正确赋值的是

A.char*p,ch;p=&ch;scanf("%c,&p")

B.char*p;p=(char*)malloc(1)scanf("%c",p);

C.char*p*p=getchar();

D.char*p,ch;p=&ch;*p=getchar();

54.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。structlink{chardata;______;}node;

A.Structlinknext

B.link*next

C.structnextlink

D.Structlink*next

55.有以下程序:main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}程序执行后输出结果是()。

A.x=4B.x=8C.x=6D.x=12

56.下列程序的输出结果是______。main(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d",x,i);}

A.x=3.600000,i=4B.x=3i=3C.x=3.600000,i=3D.x=3i=3.600000

57.在结构化方法中,软件功能分解属于软件开发中的______阶段。

A.详细设计B.需求分析C.总体设计D.编程调试

58.下面程序的输出结果是______。main(){enumteam{my,your=4,his,her=his+10};printf("%d%d%d%d\n",my,your,his,her);}

A.0123B.04010C.04515D.14515

59.以下叙述正确的是______。

A.可以把define和if定义为用户标识符

B.可以把define定义为用户标识符,但不能把if定义为用户标识符

C.可以把if定义为用户标识符,但不能把define定义为用户标识符

D.define和if都不能定义为用户标识符

60.下列关于栈的叙述中正确的是()

A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表

四、选择题(20题)61.以下能正确定义二维数组的是()。

A.inta[][3];

B.inta[][3]={2*3);

C.inta[][3]={};

D.inta[2][3]一{{1),{2},{3,4}};

62.

有下列程序:

main

{intx=5;

do

{printf("%d",X-=4);)

while(!(--x));

}

程序的输出结果是()。

A.1B.20C.1-4D.死循环

63.有以下程序段#include<stdio.h>main(){...while(getchar()!=\n);...}以下叙述中正确的是()。A.此while语句将无限循环

B.getchar()不可以出现在while语句的条件表达式中

C.当执行此while语句时,只有按回车键程序才能继续执行

D.当执行此while语句时,按任意键程序就能继续执行

64.

65.下列选项中不属于结构化程序设计原则的是()。

A.可封装B.自顶向下C.模块化D.逐步求精

66.有以下程序段以下关于程序段执行情况的叙述,正确的是()。

A.当产生的随机数n为0时,结束程序运行

B.当产生的随机数n为4时,结束循环操作

C.当产生的随机数n为l和2时,不做任何操作

D.细循环语句固定执行8次

67.

68.有以下程序:

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

A.0B.一1C.1D.7

69.

70.

71.有以下程序l

该程序试图通过指针P为变量n读人数据并输出,但程序有多处错误,以下语句正确的是()。

72.若有“doublea;”,则正确的输入语句是()。A.A.scanf("%1f",a);

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

C.scanf("%1f",&a);

D.scanf("1e",&a);

73.有以下程序:

程序的运行结果是()。

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

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

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

75.下面程序的输出结果为()。

structst

{intx;

int*y;

}*p;

intdt[4]={10,20,30,40};

structstaa[4]={50,&dt[0],60,&dt[1],

70,&dt[2],80&dt[3]};

main()

{p=aa;

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

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

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

}

A.10B.50C.51D.60

20606070

20212131

76.

77.程序流程图中带有箭头的线段表示的是()。

A.图元关系B.数据流C.控制流D.调用关系

78.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为()。

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩

79.以下选项中,能用作用户标识符的是()。A._0_B.8—8C.voidD.unsigned

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

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

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

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

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

五、程序改错题(1题)81.在主函数中从键盘输入若干个数放人数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数proc()的功能是计算数组元素中值为负数的平均值(不包括0)。例如,数组中元素的值为78、-65、-15、35、-45、0,则程序的运行结果为-41.666667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将ss所指字符串中所有下标为奇数的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss){}voidmain(void){ chartt[51]; printf(“\nPleaseenterancharacterstringwithin50characters:\n”); gets(tt); printf(“\n\nAfterchanging,thestring\n%s”,tt); fun(tt); printf(“\nbecomes\n%s”,tt);}

参考答案

1.D

2.D本题考查双重函数调用及for循环使用,fun函数中第一个for循环语句的作用是给数组a赋值。当第一次调用fun函数时,把实参1传给形参,输出a数组的元素为1,3,5;第二次调用fun函数时,由于数组a为静态局部变量,故输出a数组的元素为一1,3,7。

3.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。

4.C解析:#define宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef命令终止宏定义的作用域。本题由于#undef的作用,使a的作用范围在#definea100到#undefa之间,故答案为C。

5.B

6.B解析:scanf函数中的“格式控制”后面应当是地址,而不是变量名。对于变量,通过地址运算符“&”求出内存中的地址;对于数组c[10],数组名c即为数组在内存中的地址。

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

8.B当b=1时,a=1,第二个if语句成立,此时a=6,返回for循环;当b=2,两个if语句都为假,此时a=3,再返回循环;当b=3,第二个if成立,此时a=8,继续循环;当b=4,第一个if成立,退出for循环体时b为4,a为8。

9.A

10.A解析:头文件<string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。

strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。

11.A

12.B本题考多循环的使用,当j=10,i=9时,循环成立,第一个if条件为假,第二个if条件i==j-1成立,则输出j的值为10,接者执行i++后,i为10;当i为10,for循环不成立,退出内层循环,此时执行j++后,j为11,循环不成立,退出循环。

13.C解析:结构化程序设计方法采用顺序、选择和循环三种基本程序控制结构编写程序,从而使程序具有好的结构。

14.B

15.Breturn语句又称为返回语句。该语句的格式如下:“return;”和“return(<表达式>);”。其中,return是关键字。该语句有两种格式:不带返回值格式和带返回值格式。该语句用在被调用函数中,在被调用函数中执行到该语句时,将结束对被调用函数的执行,并把控制权返回给调用函数,继续执行调用函数后边的语句。在带有返回值的情况下,将return语句所带的表达武的值返回给调用函数,作为被调用函数的值。在被调用函数中,可以用return语句,也可以不用return语句。如果要求被调用函数有返回值,则一定要用return语句,采用return(<表达式>);格式。如果被调用函数不需要返回值,并且当被调用函数的所有语句执行完后进行返回,则被调用函数可以不用return语句。

16.C

17.A

18.D解析:本题考查的是文件操作函数.题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(中)的作用是将文件指针重定位到文件开头,所以应该选择D。

19.D选项A、B中n为变量,C语言中不允许动态定义数组维数,即维数不能是变量。选项C无此语法。

20.B本题主要考查结构和联合内存使用的一些区别:结构中每个成员相互独立,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和;联合所占用内存空间是指最长的成员占用的空间。

21.3232解析:二叉树第k层上,最多有2k-1(k≥1)个结点。第6层的结点数最多是26-1=32。注意区别“二叉树的结点最多数”和“某一层的结点最多数”。前者的计算是深度为m的二叉树最多有2m-1个结点。

22.66解析:本题定义了二维数组a和指针变量p,p指向数组的首地址,for循环语句的功能是给数组元素赋值,结果为a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[2][0]=7、a[2][1]=8、a[2][2]=9,故printf函数的输出结果为6。

23.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函数main()中定义了一个变量i,并赋初值4,调用fun()函数将i的初值传递给形参m,进行fun()函数后的运算,输出结果为m=4,k=4。将k值输出后自行增加1,k=5,此时全局变量k的值变为5。主函数中调用fun()函数后,i再自行增加1,i=5,所以主函数输出的结果为“i=5k=5”。

24.242424

25.4844

26.6060解析:*(*(p+2)+1)相当于访问的是a[2][1]的值。*(p[2]+1)、p[2][1]以及(*(p+2))[1]表达的含义都是a[2][1]的值。

27.封装封装

28.179179解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中的二叉树有80个叶子结点,因此,该二叉树有80-1=79个度为2的结点;又知本题中的二叉树有10个度为1的结点。因此,本题中的二叉树总结点数为:叶子结点数+度为1的结点数+度为2的结点数=80+10+79=179

29.静态分析静态分析解析:程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

30.0

31.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。打开文件的函数为:fopen(),调用形式为:fp=fopen('文件名','使用文件方式');关闭文件的函数为:fclose(),调用形式为:fclose(fp),其中fp为文件指针。

32.503503解析:本题考查的是C语言中if语句的语句体。第一个if语句的语句体为t=a,第二个if语句的语句体为t=a。执行第一个if语句时,条件a<b不成立,所以不执行t=a,直接执行语句a=b和b=t得a=3、b=0,然后判断第二个if语句的条件a<c是否成立,即判断3<5是否成立,显然条件成立,执行语句t=a得t=3,接着执行a=c;c=t得a=5、c=3,所以a=5、c=3、b=0。

33.00解析:二维数组中当某行一对花括号内的初值个数小于该行中元素的个数时,系统将自动给该行后面的元素补初值0,由此可见数组a[1][2]=0。

34.int*p*p或p[0]int*p\r\n*p或p[0]

35.1000001010000010解析:运算“&”的规则是只有当两个相应的二进制位都为1时,该位的结果才为1。要保留第2、8位,只要将其与二进制数10000010相与。

36.s=30s=30解析:分析循环条件“m=1,m<=4”,所以循环4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。

37.x+=1;

38.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

39.maxvalueis34

40.

41.A解析:从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是要决定各个模块的实现算法,并精确表达出这些算法。

42.D解析:C语言中操作一个字符串常量的方法有:①将字符串常量存放在一个字符数组之中;②用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。

本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

43.A

44.B

45.C

46.D解析:本题考核的知识点是for循环语句和复合赋值+=运算符的应用。本题中,i赋初值为1,并对其每次进行加2操作,即i每次均为1~10之间的奇数,s+=i+1,即s=s+i+1,相当于s等于原来的s每次加上1~10之间的偶数,直到i<10不成立.当i=1时,s=0+1+1=2;当i=3时,s=2+3+1=2+4;当i=5时,s=2+4+5+1=2+4+6;当i=7时,s=2+4+6+7+1=2+4+6+8;当i=9时,s=2+4+6+8+9+1=2+4+6+8+10;当i=11时,i<10不成立,结束循环。所以,4个选项中选项D符合题意。

47.C解析:此题考查的是标识符的概念。标识符是由字母、数字或下划线组成的,而且第一个字符必须字母或下划线,且标识符区分大小写。

48.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。

49.C【解析】在数据库管理系统提供的数据语言中,数据操纵语言负责数据的查询及增、删、改等操作。故答案为C。

50.D解析:数据模型应该反映和规定本数据模型必须遵守的、基本的、通用的完整性约束条件。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。

51.C解析:由题目的已知条件可知,pt指向结构体数组c[2]的第一元素c(0),所以pt->x=10,执行自加运算后为11。

52.B解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。

53.C解析:本题考查了字符的输入函数getchar和利用scanf函数输入一个字符。用scanf输入字符时,格式说明字符应该为%c。本题选项C)因为指针p没有赋初值,所以是一个不定值,不能直接将getchar读入的字符赋给指针p所指向的字符,所以选项C错误。

54.D解析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为structlink*next。

55.B解析:外循环的循环变量i从0递增到1会循环2次,内循环的循环变量j从0递增到3会循环4次。但是内循环中有一条if语句,每当j%2为真,即j为奇数时会跳过下面的x++;语句,所以4次内循环只有2次执行到x++;语句,再加上外循环中包含的2条x++语句,所以每次外循环会使x自增4次,2次外循环下来x的值为8。故应该选择B。

56.C

57.C解析:总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件,结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。

58.C解析:本题考查枚举型变量的定义及其赋初值。第一个变量默认为1,中间可任意赋值,赋值后其后面的变量依次加1。

59.B解析:if是C语言中的保留字,所以不能作为用户标识符;define是C语言中的预编译命令,由于C语言中的预编译命令都是以#开头,所以define可以作为用户标识符。

60.D解析:栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素,所以栈也被称为“先进后出”表或“后进先出”表。

61.B选项A中对于二维数组,必须通过赋值的个数来确定其长度,没有赋值则无法确定,选项C中赋的是空值,也不能确定其行下标,而选项D中定义的两行三列,而赋值的却是三行两列。

62.C

\n本题考查do-while循环。先执行do的内容,也就是printf语句,x=x-4=1,输出1,判断while循环的控制条件,--x=0,则!(--x)为非零,循环条件成立,执行下一次循环;x=x-4=-4,输出-4,判断while循环的条件,--X=-5,则!(--x)为零,循环条件不成立,结束循环。

63.C主要是考查while和getchar函数,getchar函数是输入字符函数,while是循环语句,所以当输入的字符为换行符时将执行。

64.D

65.AA。【解析】结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句等。

66.Acase常量表达式只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从该case子句执行下去,不再进行判断,直到碰到bleak或函数结束为止。简单地说,break是结束整个循环体,而continue是结束单次循环。B)选项中当产生的随机数n为4时要执行打印操作。C)选项中当产生的随机数为1和2时分别执行case3与case4后面语句的内容。由于存在break语句,因此for循环不是固定执行8次,执行次数与产生的随机数n有关系。故本题答案为A)。

67.B

68.Ba一一的含义是先用后减l,所以当a的值为0时,跳出循环,但是仍要执行a一一,g的值变为一1。

69.B

70.B

71.A选项B的正确写法应为P=&n;选项c的正确写法应为scanf(”%d”,P);选项D的正确写法应为printf(”%d\n”,*P)。

72.C本题考查scanf函数的调用形式:scanf(格式字符串,输入项地址表)。“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。

73.B该题目考查函数参数传递以及if条件语句。当变量b为0时,将a的值返回给主调函数,因此a进行两次自减l后,将其值返回并输出。

74.Af函数功能使第二个指针指向的元素增1,第一个指针指向的元素不变,所以答案选择A)。

75.Cp指向aa的首地址,++p->x首先取x的值,再增1,即50+1;(++p)->x使p指向下一元素,然后取其值,即60,++(*p->y)取y指向的值,即20,然后增1,即20+1

76.A

77.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;

表示逻辑条件。

78.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。

79.Ac语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B)选项中以数字8开头,所以错误。c)与D)中用的是关键字void与unsigned,因此错误。故本题答案为A)。

80.A详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以A错误。

81.82.voidfun(char*ss){ inti; for(i=0;ss[i]!=‘\0’;i++)/*将ss所指字符串中所有下标为奇数的字母转换为大写字母*/ if(i%2==1&&ss[i]>=‘a’&&ss[i]<=‘z’) ss[i]=ss[i]-32;}将指定字符串中奇数位置的字母转换为大写字母,首先需要判断奇数位置,再判断该位置字符是不是小写字母,如果是小写字母,则将小写字母转换为大写字母。字母大小写转换操作中,只要将小写字母的ASCII值减去32即可转换为大写字母。2022-2023年广东省惠州市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.下面程序输出的是()。main{intt=l;fun(fun(t));}fun(inth){staticinta[3]={1.2.3};intk;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=0;k<3;k++)printf("%d",a[k]);printf("\n");return(a[h]);}A.1,2,3,1,5,9,B.1,3,5,1,3,7,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,

3.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之间的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

4.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

5.表达式a*(b+c)-d的后缀表达式是()。

A.abcdd+-B.abc+*d-C.abc*+d-D.-+*abcd

6.有定义语句intb;charc[10];,则正确的输入语句是______。A.scallf("%d%s",&b,&c);

B.scallf("%d%s",&b,c);

C.scanf("%d%s",b,c)

D.scanf("%d%s",b,&c);

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

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

8.以下程序的输出结果是()。main{inta=1,b;for(b=1,b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);}A.A.3B.4C.5D.6

9.有以下程序

#include<stdio.h>

main()

{ints;

scanf(“%d”,&s);

while(s>0)

{switch(s)

{case1;printf(“%d”,s+5);

case2:printf(“%d”,s+4);break;

case3:printf(“%d”。s+3);

default:printf(“%d”,s+1);break;

}

seanf(“%d”,&s);

}

}

运行时,若输入12345O<回车>,则输出结果是A.6566456B.66656C.66666D.6666656

10.设已包含头文件<string.h>,下列程序段的运行结果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

11.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。

A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)

12.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}输出结果是()。A.11B.10C.9D.1011

13.结构化程序所规定的三种最基本控制结构是A.A.输入、处理、输出

B.树形、网形、环形

C.顺序、选择、循环

D.主程序、子程序、函数

14.(7-6-3-5-4-1-2)堆排序,升序排列,3的位置改变几次()

A.1B.2C.3D.4E.5F.6

15.以下关于return语句的叙述中正确的是()。

A.一个自定义函数中必须有一条return语句

B.一个白定义函数中可以根据不同情况设置多条return语句

C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

16.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构

17.关键路径是事件结点网络中()。

A.从源点到汇点的最长路径B.从源点到汇点的最短路径C.最长回路D.最短回路

18.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

19.下列定义数组的语句中,正确的是()。

A.intN=10;intx[N]:

B.#defineNl0;intx[N];

C.intx[0..10];

D.intx[];

20.下列程序的输出结果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6

二、2.填空题(20题)21.一棵二叉树第6层(根结点为第一层)的结点最多为______个。

22.有以下程序:

main()

{inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i+1;

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

}

程序运行后的输出结果是【】。

23.以下程序的运行结果是()。

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

24.若从键盘输入24,则以下程序输出的结果是()。

#include<stdio.h>

main()

{inta;

scanf("%d",&A);

if(a>20)printf("%d",A);

if(a>10)printf("%d",A);

if(a>5)printf("%d",A);

}

25.该程序运行的结果是【】。

#include<stdio.h>

main()

{unionEXANPLE

{struct

{

intx;

inty;

}in;

inta;

intb;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

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

printf("%d,%d\n",e.a,e.b);

}

26.设有以下定义和语句,则*(*(p+2)+1)的值【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

27.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

28.一棵二叉树中共有80个叶子结点与10个度为1的结点,则该二叉树中的总结点数为【】。

29.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

30.软磁盘最外边的磁道数是【】号磁道。

31.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

32.若有以下程序:

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

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

}

执行后的输出结果是【】。

33.设有定义语句:inta[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为()。

34.下面函数用来求出两个整数之和,并通过形参传回两数相加之和值。请填空。

intadd(intx,inty,【】,)

{【】=x+y;}

35.没有chara,b;,,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的二进制是【】。

36.下面程序的运行结果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}

37.语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【】。

38.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

39.下列程序的运行结果为【】。

main()

{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};

printf("maxvalueis%d\n",maxvalue(3,4,a));

}

maxvalue(m,n,array)

intm,n,array[][4];

{inti,j,max;

max=array[0][0];

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

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

if(max<array[i][j])max=array[i][j];

return(max);

}

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

三、1.选择题(20题)41.软件详细设计的主要仟务是确定每个模块的

A.算法和使用的数据结构B.外部接口C.功能D.编程

42.下面说明不正确的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

43.若有程序段:intc1=1,c2=2,c3;c3=1.0/c2*cl;则执行后,c3中的值是()

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

44.有以下程序:#include<stdio.h>intf(intt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,2);printf("%d\n",s);}intf(intt[],intn){if((n>0)&&(n<5))returnt[n+1]+f(t,n-1);elsereturn0;}程序运行后的输出结果是()。

A.4B.7C.10D.61

45.下面程序的输出结果是()func(intx){staticinta=2;return(a+=x);}rnain(){intb=2,c=4,d;d=func(b);d=func(c);printf("%d\n",d);}

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

46.有以下程序:main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序执行后的输出结果是()。

A.自然数1~9的累加和B.自然数1~10的累加和C.自然数1~9中奇数之和D.自然数1~10中偶数之和

47.以下不合法的用户标识符是()。

A.r3_t3B.ElseC.6aD._6

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

A.scanfB.VoidC.3comD.int

49.在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是

A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言

50.数据的完整性是指数据的正确性、有效性和______。

A.可维护性B.独立性C.安全性D.相容性

51.有下列程序段:

structst

{intx;int*y;}*pt;

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

stmctstc[2]={10,a,20,b};

pt=c;

下列选项中表达式的值为11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->X

52.数据的存储结构是指()。

A.数据所占的存储空间

B.数据的逻辑结构在计算机的存放形式

C.数据在计算机中的顺序存储方式

D.存储在计算机外存中的数据

53.下列程序段中,不能正确赋值的是

A.char*p,ch;p=&ch;scanf("%c,&p")

B.char*p;p=(char*)malloc(1)scanf("%c",p);

C.char*p*p=getchar();

D.char*p,ch;p=&ch;*p=getchar();

54.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。structlink{chardata;______;}node;

A.Structlinknext

B.link*next

C.structnextlink

D.Structlink*next

55.有以下程序:main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}程序执行后输出结果是()。

A.x=4B.x=8C.x=6D.x=12

56.下列程序的输出结果是______。main(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d",x,i);}

A.x=3.600000,i=4B.x=3i=3C.x=3.600000,i=3D.x=3i=3.600000

57.在结构化方法中,软件功能分解属于软件开发中的______阶段。

A.详细设计B.需求分析C.总体设计D.编程调试

58.下面程序的输出结果是______。main(){enumteam{my,your=4,his,her=his+10};printf("%d%d%d%d\n",my,your,his,her);}

A.0123B.04010C.04515D.14515

59.以下叙述正确的是______。

A.可以把define和if定义为用户标识符

B.可以把define定义为用户标识符,但不能把if定义为用户标识符

C.可以把if定义为用户标识符,但不能把define定义为用户标识符

D.define和if都不能定义为用户标识符

60.下列关于栈的叙述中正确的是()

A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表

四、选择题(20题)61.以下能正确定义二维数组的是()。

A.inta[][3];

B.inta[][3]={2*3);

C.inta[][3]={};

D.inta[2][3]一{{1),{2},{3,4}};

62.

有下列程序:

main

{intx=5;

do

{printf("%d",X-=4);)

while(!(--x));

}

程序的输出结果是()。

A.1B.20C.1-4D.死循环

63.有以下程序段#include<stdio.h>main(){...while(getchar()!=\n);...}以下叙述中正确的是()。A.此while语句将无限循环

B.getchar()不可以出现在while语句的条件表达式中

C.当执行此while语句时,只有按回车键程序才能继续执行

D.当执行此while语句时,按任意键程序就能继续执行

64.

65.下列选项中不属于结构化程序设计原则的是()。

A.可封装B.自顶向下C.模块化D.逐步求精

66.有以下程序段以下关于程序段执行情况的叙述,正确的是()。

A.当产生的随机数n为0时,结束程序运行

B.当产生的随机数n为4时,结束循环操作

C.当产生的随机数n为l和2时,不做任何操作

D.细循环语句固定执行8次

67.

68.有以下程序:

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

A.0B.一1C.1D.7

69.

70.

71.有以下程序l

该程序试图通过指针P为变量n读人数据并输出,但程序有多处错误,以下语句正确的是()。

72.若有“doublea;”,则正确的输入语句是()。A.A.scanf("%1f",a);

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

C.scanf("%1f",&a);

D.scanf("1e",&a);

73.有以下程序:

程序的运行结果是()。

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

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

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

75.下面程序的输出结果为()。

structst

{intx;

int*y;

}*p;

intdt[4]={10,20,30,40};

structstaa[4]={50,&dt[0],60,&dt[1],

70,&dt[2],80&dt[3]};

main()

{p=aa;

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

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

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

}

A.10B.50C.51D.60

20606070

20212131

76.

77.程序流程图中带有箭头的线段表示的是()。

A.图元关系B.数据流C.控制流D.调用关系

78.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为()。

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩

79.以下选项中,能用作用户标识符的是()。A._0_B.8—8C.voidD.unsigned

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

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

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

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

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

五、程序改错题(1题)81.在主函数中从键盘输入若干个数放人数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数proc()的功能是计算数组元素中值为负数的平均值(不包括0)。例如,数组中元素的值为78、-65、-15、35、-45、0,则程序的运行结果为-41.666667。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将ss所指字符串中所有下标为奇数的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss){}voidmain(void){ chartt[51]; printf(“\nPleaseenterancharacterstringwithin50characters:\n”); gets(tt); printf(“\n\nAfterchanging,thestring\n%s”,tt); fun(tt); printf(“\nbecomes\n%s”,tt);}

参考答案

1.D

2.D本题考查双重函数调用及for循环使用,fun函数中第一个for循环语句的作用是给数组a赋值。当第一次调用fun函数时,把实参1传给形参,输出a数组的元素为1,3,5;第二次调用fun函数时,由于数组a为静态局部变量,故输出a数组的元素为一1,3,7。

3.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。

4.C解析:#define宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef命令终止宏定义的作用域。本题由于#undef的作用,使a的作用范围在#definea100到#undefa之间,故答案为C。

5.B

6.B解析:scanf函数中的“格式控制”后面应当是地址,而不是变量名。对于变量,通过地址运算符“&”求出内存中的地址;对于数组c[10],数组名c即为数组在内存中的地址。

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

8.B当b=1时,a=1,第二个if语句成立,此时a=6,返回for循环;当b=2,两个if语句都为假,此时a=3,再返回循环;当b=3,第二个if成立,此时a=8,继续循环;当b=4,第一个if成立,退出for循环体时b为4,a为8。

9.A

10.A解析:头文件<string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。

strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。

11.A

12.B本题考多循环的使用,当j=10,i=9时,循环成立,第一个if条件为假,第二个if条件i==j-1成立,则输出j的值为10,接者执行i++后,i为10;当i为10,for循环不成立,退出内层循环,此时执行j++后,j为11,循环不成立,退出循环。

13.C解析:结构化程序设计方法采用顺序、选择和循环三种基本程序控制结构编写程序,从而使程序具有好的结构。

14.B

15.Breturn语句又称为返回语句。该语句的格式如下:“return;”和“return(<表达式>);”。其中,return是关键字。该语句有两种格式:不带返回值格式和带返回值格式。该语句用在被调用函数中,在被

温馨提示

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

评论

0/150

提交评论