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

下载本文档

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

文档简介

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

一、单选题(20题)1.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是A.A.1267B.1256C.1278D.1245

2.以下选项中合法的C语言常量是()。

A.‘C-STR’B.2014.1C.”\1.0D.2EK

3.若有说明chars1[30]="Thecity",s2[]="isbeautiful";,则在使用函数strcat(s1,s2)后,结果是()。

A.s1的内容更新为Thecityisbeautiful\0

B.s1的内容更新为isbeaut\0

C.s1的内容更新为Thecity\0isbeautiful\0

D.s1的内容更新为Thecityisbeautiful\0

4.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5

5.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}

A.将磁盘文件的内容显示在屏幕上

B.将两个磁盘文件合为一个

C.将一个磁盘文件复制到另一个磁盘文件中

D.将两个磁盘文件合并后送屏幕

6.有以下程序:

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

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

7.有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}执行后的结果是()。A.7B.3C.2D.0

8.下列叙述中错误的是()。A.在数据库系统中,数据的物理结构必须与逻辑结构一致,

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

C.数据库设计是指在已有数据库管理系统的基础上建立数据库

D.数据库系统需要操作系统的支持

9.设散列表长m=14,散列函数H(K)=K%11,已知表中已有4个结点:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是_____。

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

10.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是

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

11.有以下程序:#include<stdio.h>#deflneS1(z)4*z+4*(z)#defineS2(x,y)4*(x)*(y)+y*xmain(){inta=1,b=2;printf(“%d,”,S1(a+b));printf(“%d,”,S2(a,b)+S1(3));printf(“%d”,S2(3+a,b+3));}程序运行后的输出结果是()。

A.18,34,100B.24,34,92C.24,34,100D.18,34,92

12.若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是()。

A.|top[2]-top[1]|=0

B.top[1]+1=top[2]

C.top[1]+top[2]=m

D.top[1]=top[2]

13.已知一个无向图(边为正数)中顶点A,B的一条最短路P,如果把各个边的权重(即相邻两个顶点的距离)变为原来的2倍,那么在新图中,P仍然是A,B之间的最短路,以上说法是()A.错误B.正确

14.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

15.以下叙述中错误的是()。

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

16.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

17.对线性表进行二分法检索,其前提条件是()。

A.线性表以顺序方式存储,并按关键码值排好序

B.线性表以顺序方式存储,并按关键码的检索频率排好序

C.线性表以链式方式存储,并按关键码值排好序

D.线性表以链式方式存储,并按关键码的检索频率排好序

18.以下程序运行后的输出结果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

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

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

20.

二、2.填空题(20题)21.在具有n个单元、顺序存储的循环队列中,队满时,共有【】个元素。

22.若有以下程序段:

intc1=1,c2=2,c3;

c3=1.0/c2*c1;

则执行后,c3中的值是【】。

23.若有定义:inta=4,b=5,c=6;然后顺序执行下列语句后,变量b中的值是()。c=(a-=(b-5));c=(a%3)+(b=1);

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

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

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

typedefstruct

{intn;

charch[8];

}PER;

27.有以下语句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式输出n1和n2的值:

n1=10

n2=20

每个输出行从第一列开始,请填空。

28.若a=1,b=2,c=3,d=4;则条件表达式a>b?a:c<d?c:d的结果为()。

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

voidswap(int*a,int*b)

{

int*tp;

t=a;a=b;b=t;

}

main()

{

intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

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

}

30.仅依据规格说明书描述的程序功能来设计测试实例的方法称为【】。

31.数据库系统中实现各种数据管理功能的核心软件称为【】。

32.当输入1、3、2时,程序运行的结果为【】。

#include<math.h>

main()

{floata,b,c,disc,x1,x2,p,q;

do

{scanf("%f,%f,%f",&a,&b,&c);

disc=b*b-4*a*c;

}while(disc<=0);

p=-b/(2*a);q=sqrt(disc)/(2*a);

x1=p+q;x2=p-q;

printf("\nx1=%6.2f;x2=%6.2f\n",x1,x2);

}

33.以下程序中给指针p分配三个double型动态内存单元,请填空。

#include<stdio.h>

main()

{dOuble*p;

p=(double*)malloc();

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

34.strcmp函数的功能是【】。

35.某二义树中度为2的结点有18个,则该二叉树中有______个叶子结点。

36.数据结构分为逻辑结构与存储结构,线性链表属于【】。

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

38.函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于或等于0。请填空。

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

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

40.下列程序的运行结果是______。

#include<stdio.h>

main()

{inta=10,b=3;

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

printf("%d,",(a-b,a+b));

printf("%d\n",a-b?a-b:a+b);

}

三、1.选择题(20题)41.下列叙述中正确的是()。

A.C程序由函数组成

B.C程序由主函数构成

C.C程序由函数和过程构成

D.在C程序中无论是整数还是实数,都可以正确无误的表示出来

42.有以下程序main(){inta=i,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.3B.4C.5D.6

43.下述关于数据库系统的叙中正确的是______。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

44.以下有四组用户标识符,其中合法的一组是()

A.For-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

45.若有下面的程序段:chars[]="china";char*p;p=s;则下列叙述正确的是

A.s和p完全相同

B.数组s中的内容和指针变量p中的内容相等

C.s数组长度和p所指向的字符串长度相等

D.*p与s[0]相等

46.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序运行后的输出结果是()。

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

47.下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数:876675896101301401980431451777#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,45l,777},k;clrscr();fun(a,10,&k);printf("%d,%d\n",k,a[k]);}则输出结果为

A.7,431B.6C.980D.6,980

48.与数学式子应的C语言表达式是

A.3*xn/(2*x-1)

B.3*x**n/(2*x-1)

C.3*pow(x,n)*(1/(2*x-1))

D.3*pow(n,x)/(2*x-1)

49.以下不正确的定义语句是()。

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={O,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

50.有以下程序main(){chara='a',b;printf("%c,",++A);printf("%c\n"。b=a++);}程序运行后的输出结果是

A.b,bB.b,cC.a,bD.a,c

51.下列可用于C语言用户标识符的一组是

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

52.下面结构体的定义语句中,错误的是()。

A.structord{intx;inty;intz;};structorda;

B.structord{intx;inty;intz;};orda;

C.structord{intx;inty;intz;}a;

D.struct{intx;inty;intz;}a;

53.有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是______。

A.6B.3C.死循环D.0

54.一个C程序中______。

A.main函数必须出现在所有函数之前

B.main函数可以在任何地方出现

C.main函数必须出现在所有函数之后

D.main函数必须出现在固定位置

55.fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()

A.字符串读入后不会自动加入'\0'

B.fp是file类型的指针

C.fgets函数从文件中最多读入n-1个字符

D.fgets函数从文件中最多读入n个字符

56.当说明一个结构体变量时系统分配给它的内存是()。

A.各成员所需要内存量的总和

B.结构中第一个成员所需的内存量

C.成员中占内存最大者所需的容量

D.结构中最后一个成员所需要的内存量

57.下列数据结构中,属于非线性的是()。

A.线性表B.队列C.树D.栈

58.关于return语句,正确的说法是______。

A.在主函数和其他函数中均可出现

B.必须在每个函数中出现

C.可以在同一个函数中出现多次

D.只能在除主函数之外的函数中出现一次

59.数据库系统的核心是()A.数据模型B.数据库管理系统C.软件工具D.数据库

60.请读程序片段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));上面程序片段的输出结果

A.68B.0C.字符'D'的地址D.不确定的值

四、选择题(20题)61.以下叙述中正确的是(

)。A.C语言中的全部数据类型都是基本类型B.C语言中的全部数据类型都是构造类型C.C语言中的数据类型只有两种,即基本类型和构造类型D.以上都不对

62.若有定义语句:doublea,*p=&a;,以下叙述中错误的是()。A.定义语句中的*号是一个间址运算符

B.定义语句中的*号是一个说明符

C.定义语句中的p只能存放double类型变量的地址

D.定义语句中,*p=&a把变量a的地址作为初值赋给指针变量P

63.

64.有如下程序:

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

65.

66.程序运行后的输出结果是()。A.7B.0C.3D.8

67.以下数据结构中不属于线性数据结构的是______。

A.队列B.线性表C.二叉树D.栈

68.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以()方式打开文件。

A."wb"B."wb+"C."rb+"D."rb"

69.若有下面的程序段

#include"stdio.h"

main()

{inti=6;

while(i--)

printf("%d",--i);

printf("\n");

}

那么程序的输出结果为

A.531B.420

C.654321D.死循环

70.下列程序的输出结果是

intb=2;

intfunc(int*a)

{b+=*a;return(b);}

main()

{inta=2,res=2;

res+=func(&a);

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

}

A.2

B.4C.6

D.8

71.

以下程序的输出结果是()。

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

72.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序运行后的输出结果是______。

A.22B.76C.72D.62

73.

74.以下叙述中错误的是()。

A.全局变量的作用域一定比局部变量的作用域范围大

B.静态(static)类别变量的生存期贯穿于整个程序的运行期间

C.全局变量的生存期是整个程序的运行期间

D.静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值

75.函数fseek的正确调用形式是()。

A.fseek(位移量,起始点,文件类型指针);

B.fseek(文件类型指针,位移量,起始点);

C.fseek(文件类型指针,起始点,位移量);

D.fseek(起始点,位移量,文件类型指针);

76.有以下程序段

#include<stdio.h>

voidfun(char*fname,char*st)

{FILE*myf;

inti;

myf=fopen(fname,"w");

for(i=0;i<strlen(st);i++)fputc(st[i],myf);

fclose(myf);

}

main()

{fun("test.t","newworld");

fun("test.t","hello,");}

程序执行后,文件test.t中的内容是A.A.hello,

B.newworldhello,

C.newworld

D.hello,rld

77.

以下程序的输出结果是()。

intf(intA)

{returna%2;}

main

{ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

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

}

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

78.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。

A.外模式B.内模式C.概念模式D.逻辑模式

79.

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

A.getehar函数用于从磁盘文件读入字符

B.gets匿数用于从终端读入字符串

C.取ns函数用于把字符串输出到文件

D.fwrite函数用于以二进制形式输出数据到文件

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从低到高的顺序找出m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

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

注意:不要改动main函数.不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到

pl所指的字符串的后面。

例如,分别输入下面两个字符串:

程序输出:

注意:部分源程序在文件PROGl.C中。

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

参考答案

1.D解析:putchar(c1)输出1,putchar(c2)输出2,printf(“%c%c\\n”,c5,c6)输出45。

2.B所谓常量,是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,需要使用双引号;选项C不是合法的常量形式;选项D为实型常量中的指数形式,但指数形式e(E)之前必须是数字,之后必须为整数。故本题答案为B选项。

3.D解析:该函数用来使两个字符串连接成为一个字符串。strcat(str1,str2)将str2中的字符连接到str1的字符后面,并在最后加一个“\\0”。连接后新的字符串存放在strl中。注意:用于字符串处理的函数。

4.C解析:这是一个逗号表达式,它的值应为表达式y=x+3/2的值,而前一个表达式已给x赋值1,在没有进行类型转换的情况下,3/2的值为1,所以x+3/2的值应为2.0。

5.C解析:程序首先定义了两个文件类型的指针fp1、fp2。为读打开文件filel,并让指针fp1指向该文件;为写打开文件file2,并让指针fp2指向该文件。循环执行从文件file1中读取一个字符,输出到文件file2中,直到文件file1结束。因此程序的功能是将文件file1中的内容复制到文件file2中。

6.B第一次执行外循环i的值为1,满足条件,判断第一次内循环,j的值为3,不满足条件,跳出内循环。第二次执行外循环i的值为2,同理也不满足内循环条件,跳出内循环。第三次执行外循环i的值为3,此时进入内循环判断条件时,条件成立,执行m=m%j,m的值为1,跳出内循环,跳出外循环打印m的值。

7.C调用函数fun(7)时,由于x的值为7,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(5);\r\n调用函数fun(5)时,由于x的值为5,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(3);\r\n调用函数fun(3)时,由于x的值为3,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(1);\r\n调用函数fun(1)时,由于X的值为1,执行语句“return(3);”,函数的返回值为3。\r\n因此函数调用fun(7)等价于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函数fun(7)的返回值为2。答案为C。

8.A解析:本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项A的说法是错误的。

数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。

数据库设计是在数据库管理系统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构;二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项C的说法是错误的。

数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项D的说法是正确的。因此,本题的正确答案是选项A。

9.D

10.D解析:putchar(c1)输出1,putchar(c2)输出2,printf('%c%c\\n',c5,c6)输出45。

11.D程序中S1和S2都是宏定义。S1(a+b)宏展开后的表达式为4*a+b+4*(a+b),即4*1+2+4*(1+2),结果为18;S2(a,b)宏展开后的表达式为4*(a)*(b)+b*a,即4*(1)*(2)+2*1,结果为10;S1(3)宏展开后的表达式为4*3+4*(3),结果为24;32(3+a,b+3)宏展开后的表达式为4*(3+a)*(b+3)+b+3*3+a,即4*(3+1)*(2+3)+2+3*3+1,结果为92。最终输出:18,34,92。故本题答案为D选项。

12.B

13.B

14.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

15.C解析:在C语言中,除字符数组外,一个数组不能通过数组名对数姐进行整体引用,因此选项A是对的。数组名中存放的是一个地址常量,它代表整个数组的首地址,因此选项B是对的。C语言程序在运行过程中,系统不自动检验数组元素的下标是否越界,因此选项C是错误的。C语官规定可以通过赋初值来定义数组的大小,这时数组说明符的一对方括号中可以不指定数组的大小,因此选项D也是正确的。所以,4个选项中选项C符合题意。

16.B本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j~0到3,j=4时不符合,所以退出j循环;然后i减1,J仍然要从0~3,j=4时退出J循环直到i变成0,退出i循环。第一条for语句执行6次,第二条for语句执行4次,所以内循环体执行6*4=24次。

17.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。

18.C解析:静态局部变量在编译时赋初值,即只赋韧值一次,在程序运行时它已有初值。以后每次调用时不再重新赋初值而只是保留上次函数调用结束时的值,而对自动变量赋初值,不是在编译时进行的,而在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。本题在程序开头定义了全局变量d并赋初值1,在被调函数fun()中,定义了静态局部变量d,初值为5。在第一次调用函数fun时,d初值为5,p由主函数传递过来的值为1,则d=d+p=5+1=6,由于d是静态局部变量,在函数调用结束后,它仍保留d=6。再次调用fun函数,d的初值为6,而由主函数传递的p的值为9,则此时d=d+p=6+9=15,最后打印输出d的值并返回主函数。

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

20.B

21.n-1

22.00解析:在赋值运算中。如果表达式中变量和常量的数据类型不一致就会自动进行类型转换。系统会计算1.0/c2,由于1.0是实型,所以均先转化为双精度型0.500000,再和c1转化后的双精度数相乘得0.500000。但其要赋值给整型变量c3,故要进行强制转换,c3的值为0。

23.11解析:本题考查的是基本赋值运算符和赋值表达式。a-=(b-5)等价于a=a-(b-5)=4,c=a=4;a%3=1,c=(a%3)+(b=1)=2,其中b的值被b=1确定为1。

24.完整性控制完整性控制

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

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

27.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根据输出结果,可以确定“格式控制”为n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原样输出的字符,“%d”是按十进制整数输出,“\\n”是转义字符,用于输出回车换行。

28.3

29.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针.变量a和b,a和b分别指向了实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依旧是原来的值。

30.黑箱法黑箱法

31.数据库管理系统数据库管理系统(DBMS)

32.x1=-1.00;x2=-2.00

33.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本题考核的知识点是malloc()函数.该函数的调用格式是“malloc(n)”,作用是申请n个字符的存储单元,并返回该存储区的首地址,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址.所以在此空格处应该填写3*sizeof(double)或size(double)*3或其他等价的表达式。

34.字符串的比较strcmp函数的原型是intstrcmp(char*s1,char*s2);功能是对s1和s2所指字符串进行比较,若s1<s2返回负数,若s1==s2返回0,若s1>s2返回正数。

35.1919解析:二叉树具有如下性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。根据题意,度为2的节点为18个,那么,叶子结点就应当是19个。

36.存储结构

37.封装封装

38.-1*sn-1*sn解析:根据公式可知,第一处应填-1;由于计算结果要通过形参指针sn传回,所以第二处应填*sn。

39.类类

40.11371,13,7解析:本题考查3个知识点:①余数的计算,题中的a=10,b=3,a%b=1;②(表达式1,表达式2)形式的结果为最后一个表达式的值,题中的a=10,b=3,(a-b,a+b)=a+b=13;③条件运算符的使用,题中的a-b?a-b:a+b,判断语句a-b=7不为0,所以执行a-b,结果为7。

41.A解析:本题涉及C语言最基本的两个知识点:①C程序是由函数构成的,有且仅有一个主函数,也可以有其他的函数;②整数在允许的范围内可以准确无误的表示出来,但计算机的存储能力有限,不能表示无限精度的实数。

42.B解析:在一个循环体中,若执行到break则跳出循环体,执行循环体后面第一条语句;若执行到continue则开始下一次循环体的执行。本题中a的初始值为1,在循环体中首先判断a,如果>=8就用break跳出循环,接下来的判断语句a%2==1,是判断a除以2的余数是否为1,即a是否为奇数,是的话给a累加一个5,然后用continue开始下一次循环.若两个条件都不满足就让a自减一个3.因此第1次循环开始a为1不大于8,且是奇数,所以a被累加5开始下一次循环;第2次循环开始a为6不大于8,不是奇数,所以a被减去3;第3次循环开始a为3不大于8,是奇数,所以a被加上一个5;第4次开始a为8,满足第一个条件跳出循环。b在第1次循环时等于1,以后每次累加1,所以最后输出为4,选项B正确.

43.A解析:由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一个数据在系统的不同拷贝处有不同的值。

44.C

45.D解析:字符型指针变量p中存放的是'china'的首地址,所以选项A)和B)错误。e数组长度为6,而p所指向的字符串长度为5,二者不相等,排除选项C)。

46.D解析:位与运算符“&”,按二进位进行“与”运算,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0;取反运算符“~”,用来对一个二进制按位取反,即将0变1,1变0。在prinf()函数的表达式中,“&”前面表达式的值为1(3/2=1)表示为二进制为00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。z的二进制表示为00000001,取反后为11111110,最后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0。

47.D解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。

48.C解析:在该题中,x的n次方应该调用函数pow(x,n)计算,pow(x,n)的参数写反了。

49.B解析:选项B中初值列表中的初值个数超过了数组包含的元素的个数。

50.A解析:程序中的第一个输出语句输出表达式++a的值,该++a是在使用a之前,先使a的值加1,即为a加1为字符b,此时a的值为b,所以第一个输出语句输出的值为b,第二个输出语句中输出的b的值,这时b的值为表达式a++的值,a++是在使用a之后(此时a的值为b,所以赋给b的值为B),使a的值加一因此第二个输出的值也为b.所以,4个选项中选项A符合题意。

51.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。

52.B

53.C解析:在循环过程中,i的值一直没有被改变,所以这是一个死循环。

54.B解析:本题主要考查main函数的基本知识。main函数可以出现在C程序的任何地方。

55.C

56.A解析:本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。

57.C解析:线性结构,是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。

58.C

59.B数据库管理系统DBMS是数据库系统的核心。DBMS是负责数据库的建立、使用和维护的软件。DBMS建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。另外,DBMS还承担着数据库的安全保护工作,按照DBA所规定的要求,保证数据库的完整性和安全性。

60.B

61.D在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类

62.A在变量定义doublea,*p:&a;中,*号是一个指针运算符,而非间址运算符,因此A)错误。

63.A

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

\n

65.D

66.C题意统计字符s中阿拉伯数字的个数。chars[]=’012xy\08s34f4w2’;元素是字符型。~0=48;而’\0’=0;因此可以计算出’、0’之前阿拉伯数字的个数,由字符串s可知,有3个阿拉伯数字。答案为C选项。

67.C解析:线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表(LastInFirstOut);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表(FirstInFirstOut)。

68.B本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件;方式“rb”为输入打开一个二进制文件。

69.B题目给出的程序主要结构是while循环。自减运算符“--”在题目中出现了两次,一次是在while语句的判别表达式中,出现的形式为i--,即先利用变量i的值进行判别,再执行i-1操作。另一次是在输出函数printf中,出现的形式为--i,先执行i-1操作,再将结果进行输出。程序初始时,i=6,第一次循环时,因为i满足while的判别条件,故执行while内部的语句,并进行i-1操作,i=5。执行到printf语句时,先进行i-1操作,再将结果输出,得到i=4,这时i的值依然满足while循环条件,故可以执行下一次循环,过程与第一次循环类似。以此类推,直到while循环终止,最终程序输出的结果为420。

70.C在本题程序中,首先定义了一个全局整型变量b,并给其赋初值为2,然后定义一个函数func,该函数带有一个指针类型的形参,在函数体中,通过形参的值来改变全局变量b的值,b+=*a等价于b=b+(*a),然后通过return语句返回计算后的变量b的结果。

在主函数中,定义两个整型变量a和res,并都赋初值为2,然后调用func函数,传递的形参是变量a的地址,即使形参指针变量a指向实参变量a的值,通过b+=*a计算,可以得到b=2+2=4。由于变量b是一个全局变量,作用域是整个程序,而非函数func,因此,在主函数中变量res的最后结果为2+4=6,程序最后的输出结果为6。

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

72.C题目中需要求出程序的输出值i,j,其中i的值由sizeof决定,j的值由strl

温馨提示

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

评论

0/150

提交评论