2021-2022年黑龙江省黑河市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2021-2022年黑龙江省黑河市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2021-2022年黑龙江省黑河市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2021-2022年黑龙江省黑河市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2021-2022年黑龙江省黑河市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年黑龙江省黑河市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.线性结构是数据元素之间存在一种()。

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

2.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen(“d.dat”,“w+b”);for(i=0;i<6;i++)fwrite(&a[i],sizeof(int),1,fp);rewind(fp);fread(&a[3],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.1,2,3,1,2,3,

3.有下列程序:程序执行后的输出结果是()。A.eeaabmmnhhirrstu

B.efgabcdmnopqhijkIrstuvwxyz

C.efgacdmopqhjkIrvwxyz

D.eefgaabcdmmnopqhhijkIrrstuvwxyz

4.下列定义数组的语句中,正确的是()。A.#defineN10?intx[N];

B.intN=10;int[N];

C.intx0..10];

D.Intx[];.

5.若有定义“doublea;floatb;shortc;”,若想把1.2赋给变量a,3.4赋给变量b,5678赋给变量c,程序运行时键盘输入:1.23.45678<回车>则以下正确的读入语句是()。A.scanf("%If%If%d",&a,&b,&c);

B.scanf("%If%If%hd",&a,&b,&c);

C.scanf("%If%f%hd",&a,&b,&c);

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

6.以下能正确定义字符串的语句是()。

A.charstr=“\x43”;

B.charstr[]=“\0”;

C.charstr=”;

D.charstr[]={‘\064’};

7.对n个数进行排序,哪种算法,其时间复杂度在最坏和最好都是O(nlogn)()

A.快速排序B.希尔排序C.堆排序D.选择排序

8.有以下程序:#include<stdio.h>main(){unsignedchara=8,C;C=a>>3:printf("%d\n",c);}程序运行后的输出结果是()。A.32B.16C.1D.0

9.若主调用函数类型为double,被调用函数定义中没有进行函数类型说明,而return语句中的表达式类型为float型,则被调函数返回值的类型是()。

A.int型B.float型C.double型D.由系统当时的情况而定

10.在以下的叙述中,正确的是()。

A.线性表的顺序存储结构优于链表存储结构

B.二维数组是其数据元素为线性表的线性表

C.栈的操作方式是先进先出

D.队列的操作方式是先进后出

11.能正确表示x>=3或者x<1的关系表达式是()。

A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1

12.树是结点的集合,它的根结点数目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

13.在10000个int型变量中找出最大的100个,使用下列排序算法中哪一种用时最快()

A.冒泡排序B.快速排序C.归并排序D.堆排序

14.在软件测试设计中,软件测试的主要目的是

A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.尽可能多地发现软件中的错误

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

16.若有说明语句:charc='\72'则变量c()。

A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定

17.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y)reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序运行后的输出结果是______。A.3B.6C.8D.12

18.广义表((a),a)的表头是()。

A.aB.(a)C.((a))D.()

19.已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子项t的运算是()。

A.head(tail(tail(L)))

B.tail(head(head(tail(L))))

C.head(tail(head(tail(L))))

D.head(tail(head(tail(tail(L)))))

20.广义表(a,b,c,d)的表头是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

二、2.填空题(20题)21.数据结构分为逻辑结构与存储结构,线性链表属于【】。

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

23.下面的函数strcat(str1,str2)实现将字符串str2拼接到字符串str1后面的功能。请填空使之完整。

char*strcat(str1,str2)

char*str1,*str2;

{char*t=str1;

while(【】)str1++;

while(【】);

return(t);}

24.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无须知道数据的具体结构以及实现操作的算法,这称为对象的______。

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

main()

{inta,b,c;

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

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

}

26.有以下程序:

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]);

}

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

27.设在主函数中有以下定义和函数调用语句,且fun函数为void类型,请写出fun函数的首部【】。要求形参名为b。

main()

{doubles[10][22];

intn;

fun(s);

}

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

29.以下程序用来输出结构体变量ex所占存储单元的字节数:

structst

{charname[20];doublescore;};

main()

{structstex;

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

}

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

#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");

}

}

31.在先左后右的原贝吓,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、【】遍历和后序遍历。

32.有以下程序:

voidf(intv,intw)

{intt;

t=v;v=w;w=t;

}

main()

{intx=1,y=3,z=2

if(x>y)f(x,y);

elseif(y>z)f(y,z);

elsef(x,z);

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

}

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

33.若有定义intm=5,y=2,则执行表达式y+=y-=m*=y后,y的值为【】。

34.衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准,其中()是度量一个模块功能强度的一个相对指标。

35.若要说明一个新类型名ArrInt,使得定义语句ArrIntx;等价于定义语句Intx[4][10];,正确的说明语句形式为【】。

36.在数据库理论中,数据物理结构的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不引起应用程序的变化,称为______。

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

38.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenam\n");

gets(fname);

if((fp=【】==NULL)

{printf("Cannotopen\n");exit(0);}

printf("Enterdata\n");

while(ch=getchar()!='#')

fputc(【】,fp);

fclose(fp);

}

39.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【】。

40.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

intmystden(char*str)

{inti;

fo,(i=0;【】!='\0';i++);

return(i);

三、1.选择题(20题)41.设计准则要求,模块的作用域和控制域的关系是()

A.作用域和控制域无关B.作用域在控制域之外C.控制域在作用域之内D.作用域在控制域之内

42.能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。

A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)

B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)

C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)

D.(x>=1)‖x<=10)&&(x>=100)‖(x<=110)

43.以下符合C语言语法的实型常量是()。

A.1.2E0.5B.3.14159EC.5E-3D.E15

44.算法的时间复杂度是指______。

A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数

45.设x=015,则x=x017的值是()。

A.1111B.11111101C.10D.11000000

46.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统管理阶段和数据库系统管理阶段。其中数据独立性最高的阶段是()。

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

47.设int型占2个字节,则unsignedint所能表示的数据范围是______。

A.0~65535B.-32769~32767C.1~65536D.0~32767

48.sizeof(float)是()。

A.一种函数调用B.一种函数定义C.一个浮点表达式D.一个整型表达式

49.个人计算机属于()。

A.小巨型机B.中型机C.小型机D.微机

50.已定义c为字符型变量,则下列语句中正确的是()。

A.c='97'B.c="97"C.c=97D.c="a"

51.设有以下定义inta=0;doubleb=1.25;charcc='A';#defined2则下面语句中错误的是

A.a++;B.b++;C.c++;D.d++;

52.若有以下定义:structlink{intdata;structlink*next;}a,b,c,*p,*q;且变量a和b之间已有下图所示的链表结构:

指针p指向变量a,指针q指向变量c,则能够把c插入到a和b之间并形成新的链表的语句组是()。

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

53.以下程序的输出结果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}

A.9B.6C.36D.18

54.以下程序输出的结果是

#include<stdio.h>

#include<string.h>

main()

{charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

A.ABCDFGHKLB.ABCEFGIJMC.EFGJK0D.FGHKL

55.以下程序的输出结果是()。main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=O;i<4;i+2)printf("%d",p[i]);}

A.52B.51C.53D.97

56.利用fseek函数可实现的操作是()。

A.实现文件的顺序读写B.改变文件的位置指针C.实现文件的随机读写D.以上答案均正确

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

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

58.下面程序段的运行结果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

59.数据库、数据库系统和数据库管理系统之间的关系是()

A.数据库包括数据库系统和数据库管理系统

B.数据库系统包括数据库和数据库管理系统

C.数据库管理系统包括数据库和数据库系统

D.3者没有明显的包含关系

60.以下能正确定义二维数给的是

A.inta[][3];

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

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

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

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

#include<stdio.h>

intf(intx):

main

{intn=1,m;

m=f(f(f(n)));printf("%d\n",m);

}

intf(intx)

{returnx*2;)

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

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

62.

63.(41)在下列选项中,哪个不是一个算法一般应该具有的基本特征()

A.确定性

B.可行性

C.无穷性

D.拥有足够的情报

64.有以下程序

65.为了提高软件的独立性,模块之间最好是()。

A.控制耦合B.公共耦合C.内容耦合D.数据耦合

66.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。

A.大写字母B.连接符C.数字字符D.下划线

67.有下列程序

main()

{

inta[5]={2,4,6,8,10},*p,**k;

p=a;

k=&p;

printf("%d",*(p++));

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

}

运行该程序,其输出结果是

A.4B.22

C.24D.46

68.

69.对如下二叉树进行后序遍历的结果为()。

A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

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

A.数据所占的存储空间

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

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

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

71.

72.下列语句组中,正确的是()。

A.char*s;s="Olympic";

B.charsE73;s="Olympic";

C.char*S;s={¨Olympic"};

D.charsET3;s={"Olympic"};

73.

74.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是()。

A.

B.

C.

D.

75.

76.算法是指()。

A.计算机程序

B.解决问题的计算方法

C.排序算法

D.解决问题的有限运算序列

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

A.c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

B.c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中

D.c语言源程序经编译后生成后缀为.obj的目标程序

78.

79.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。

A.scanfB.getcharC.getsD.getc

80.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其输出为______。

A.不确定B.编译错误C.gD.输出null字符

五、程序改错题(1题)81.下列给定程序中函数proc()的功能是:将长整型数中为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如,当s中的数为12345678时,则t中的数为8642。

请修改函数proc()中的错误,使它能得出正确的结果。

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

试题程序:

六、程序设计题(1题)82.三个整数a、b、c,由键盘输入,输出其中最大的一个数。

参考答案

1.D

2.D程序首先以读和写二进制文件的方式打开文件d.dat;然后通过for循环,调用fwrite函数将数组a中的各个元素写入d.dat中;接下来调用rewind函数,将文件指针fp重定位到文件的开始位置;再调用fread函数将文件的前3个整数1,2,3读入a[3]开始的位置,所以此时数组a中的元素值分别为:1,2,3,1,2,3。故本题答案为D选项。

3.C程序定义一个二维字符数组a,使用5个字符串对其初始化。另外定义字符指针数组P。for循环中,每次将数组a当前下标为i的字符串首地址赋给P[i],再求得P[i]的长度赋给len,第1个printf输出p[i]字符串的首字母,第2个printf输出p[i]字符串下标从len/2开始的子字符串。当下标i=0时输出efg;当下标i=l时输出acd;当下标i=2时输出mopq;当下标i=3时输出hjkl;当下标i=4时输出rvwxyz。所以程序输出:efgacdmopqhjklrvwxyz。本题答案为C选项。

4.A数组说明的一般形式为:类型说明符数组名[常量表达式]。B)中N是变量,不能用变量定义数组长度。C)选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D)选项中数组长度为空,所以非法。

5.Cscanf函数用于输入数据。第1个参数表示输入格式控制。本题变量a是double类型,使用格式控制符%If;变量b是float类型,使用%If;变量c是short类型,使用%hd,选项C正确。本题答案为C选项。

6.BC语言中,字符串是用一对双引号标识的字符序列,并用字符型数组来存放。C选项和D选项不属于字符串,A选项定义的是一个字符变量str,但赋值字符串,显然也不正确。故本题答案为B选项。

7.C

8.C题中定义了无符号数,c=a>>3;是指右移3位,然后输出。结果为C。

9.A

10.B

11.C

12.A树形结构是一类重要的非线性数据结构。树是n(n≥0)个结点的集合,对应任意一棵非空树,它具有以下几点重要的性质。

①有且仅有一个特定的称为根的结点。

②当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,TM,其中每一个集合本身又是一棵树,称为子树。

因此,本题的正确答案有且只有一个。

13.B

14.D解析:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。

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

16.A解析:C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个“\\”开头的字符。其中,“\\ddd”表示用ASCII码(八进制数)表示一个字符,本题中的charc='\\72'H口表示占一个字符的变量c的ASCII码值。

17.B解析:在主函数中,第—次调用fun函数,将变量b,c的值传给形参x,y,在fun()函数中执行if语句,判断b和c的值是否相等,由于在主函数中赋初值b=5,c=6,所以判断条件不满足,执行else语句,返回表达式(x+y)/2的值,即:(5+6)/2,因为参数的类型都为int型,所以结果也为整型:5,第二次调用时8和5也不相等,所以返回值为6,因此,选项B是正确的。

18.B

19.D

20.A

21.存储结构

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

23.*str1或*str1!='\0'或*str1!=0或*str1!=NUL*str1++=*str2++或*str1++=*str2*str2++*str1或*str1!='\\0'或*str1!=0或*str1!=NUL\r\n*str1++=*str2++或*str1++=*str2,*str2++解析:函数strcat(str1,str2)实现将字符串str2连接到字符串str1后面,所以首先要找到字符串str1的串尾,根据C语言的语法规定,一个串的串尾—定是—个隐含字符“\\0”,而在程序中,对字符串中字符的访问是通过两个指针变量来完成的,因此要找到字符串str1的串尾,要判断:str1是否为“\\0”,要找到字符串str2的串尾,要判断*str2是否为“\\0”,程序中必须以使字符串中字符逐—顺序体现,所以在题中我们应填写“*str1”和“*str1++=*str2++”。

24.封装性封装性解析:对象具有下列5个基本特点:①标识惟一性;②分类性:③多态性;④封装性;⑤模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内部状态,对外是不可见的,对象的内部状态只能由其自身改变。

25.1020010200解析:本题考查算术运算符,关系运算符和逻辑运算符的使用和优先级关系。程序中,a=10,b=20,c=(10%20<1)||(10/20>1)=(10<1)||(0>1)=0||0=0。

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

27.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中为了表示函数调用“不带回值”,可以用“void”定义函数为“无类型”(或称“空类型”),这样系统就保证不使函数带回任何值。当二维数组作为形参时,二维数组的第一维可以省略。

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

29.ex或structstex或structst解析:求一个变量所占的存储单元数,用sizeof函数,参数为该变量名或其变量类型。

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

31.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前疗遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。

32.1321,3,2解析:函数f的形参是简单变量,形参的改变不能影响实参,所以正确答案为1,3,2。

33.-16-16解析:将赋值运算符右侧的“表达式”的值赋给左侧的变量,并且赋值运算符按照“自右而左”的结合顺序,本题表达式应先算m的值为10,再运算y的值为8,最后计算y=y+(-8)=-8+(-8)=-16。

34.内聚性内聚性解析:模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是度量一个模块功能强度的一个相对指标,耦合性则用来度量模块之间的相互联系程度。

35.typedefintArrInt[4][10];

36.物理独立性物理独立性解析:数据的物理结构改变,不影响数据库的逻辑结构,从而不引起应用程序的变化,这种性质叫做物理独立性。

37.封装封装

38.fopen(fname"w")chfopen(fname,'w')\r\nch解析:数组fname用来存放终端输入的一个文件的文件名;文件使用方式'w'是为写而打开文本文件。若文件不存在,系统将用在fopen调用中以指定的文件名建立一个新文件;若存在,则覆盖原有内容;fputs(ch,fp)的功能是将字符ch写到文件指针fp所指的文件中去。

39.物理独立性物理独立性解析:数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为物理独立性。

40.*(str+i)或str[i]*(str+i)或str[i]解析:str是指针变量,它指向字符型数据,在循环过程中,用*(str+i)或str[i]来访问字符串的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到*(str+i)的值为'\\0'为止。

41.D

42.C解析:本题考查逻辑与(&&)和逻辑或(‖)运算符的使用。x>=1和x<=10是逻辑与的关系,因此C语言表达式应写成“(x>=1)&&(x<=10)”,x>=100和x<=110也是逻辑与的关系,因此C语言表达式应写成“(x>=100)&&(x<=110)”;[1,10]和[100,110]是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)。

43.C解析:实数在C语言中又称浮点数,它有两种表示形式:

①十进制数形式。它由数字和小数点组成(注意必须有小数点)。0.123,.123,123.0,123.,0.0都是十进制数形式。

②指数形式。如123e3或123E3都代表123*103。要注意字母e(或E)之前必须有数字,且e后面的指数必须为整数,如e3,2.1e3.5,.e3,e等都不是合法的指数形式。

44.C解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算的工具以及程序员的水平无关。选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误,因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项D错误,因为根据一个算法所编制出的程序之中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。所以,本题正确答案为C。

45.C解析:本题主要考查按位异或运算,x=015(二进制00001101),017的二进制为000001111,两者异或结果为00000010。

46.A解析:从题干中可知,数据项管理不属于数据管理技术的发展阶段,故可排除选项D;在人工管理阶段,数据与应用程序是一一对应的,数据结构改变时,程序也必须随之修改,数据与程序不具有独立性;在文件系统管理阶段,借助于操作系统中的文件系统,数据可以用统一格式、以文件形式长期保存在计算机系统中,数据的各种转换以及存储位置的安排也由文件系统来统一管理,使程序与数据之间具有一定的独立性:在数据库系统管理阶段,通过系统提供的映像功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数据的完整性、安全性和并发性。由上所述,数据独立性最高的阶段是数据库系统管理阶段。

47.A解析:本题int型占2个字节,即16位,unsignedint所能表示的数据范围是0~(2(上标)16-1),即0~65535。

48.D解析:sizeof(float)是c语言内部规定的用于计算单精度型变量(float)在计算机的内存中所占用的字节数量的函数,返回一个整数值。

49.D我国计算机界根据计算机的性能指标,如机器规模的大小、运算速度的高低、主存储器容量的大小、指令系统性能的强弱以及机器价格等,将计算机分为巨型机、大型机、中型机、小型机、微型机和单片机6大类。目前,国外还有一种比较流行的看法,根据计算机的性能指标及厂家生产的计算机的主要面向应用对象,把计算机分为巨型机、小巨型机、大型机、小型机、工作站和个人计算机6大类。其中,个人计算机(PersonalComputer),又称为微型计算机(MicroComputer)。故本题正确答案是D\n【考点】科技\n学科专题(物理、化学、生物医学、计算机)\n计算机发展史

50.C解析:本题考核的知识点是字符型变量的基本概念。用单引号括起来的一个字符称为字符常量,而选项B和选项D中用的是双引号,而用双引号括起来的字符为字符串常量,故选项B和选项D不正确。因为在C语言中,字符常量在存储时,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中,所以C语言使字符型数据和整形数据之间可以通用,选项C正确.而选项A中,给字符型变量赋值时只能赋一个字符,而9,7作为字符时为两个字符且必须分别为单引号括起来,故选项A不正确,所以,4个选项中选项C符合题意。

51.D解析:自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#defined2定义了d为常数2,不能再对d进行自加运算。

52.D解析:本题考查链表的数据结构,必须利用指针变量才能实现。b和c是变量,选项A)错误;p是指针变量,选项B)表达错误;选项C)的赋值/顷序错误。

53.C解析:观察程序段可知,对带参数的宏的展开只是将语句中的宏名后面括号内的实参字符串代替#define命令行中的形参。本题中c=f(a)/f(b)用#definef(x)x*x代替得c=f(6)/f(2),即c=6*6/2*2,结果为36。

54.D解析:考查二维数组的定义及其元素引用的方法。当k=1时,引用的是二维数组元素w[1][1],值为字符串'FGH';当k=2时,引用的是数组元素w[2][2],即字符串'KL';当k=3时,结束程序的执行。

55.C解析:执行for循环,输出p[0]、p[2]的值。P的初值为数组元素x[1][1]的地址,即5的地址,因此p[0]为5,p[2]为3。

56.D解析:改变文件位置指针函数fseek()的功能:①改变文件的位置指针;②辅助实现文件的顺序读写;③辅助实现文件的随机读写。

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

58.C解析:本段程序的作用是输出字符串“lanuage”中字母u之前的字符,并将其转化为大写字母。注意:如果一个字符数组用来作为字符串使用,那么在定义该字符数组时,数组的大小就应该比它将要实际存放的最长字符多一个元素,以存放‘\\0’。

59.B解析:数据库系统(DatabaseSystem,简称DBS)包括数据库(Database,简称DB)、数据库管理系统(DatabaseManagementSystem,简称DBMS):数据库管理员、硬件和软件。

60.B解析:选项A中省略了第一维的长度,在c语言中是不允许的,故选项A错误;选项C也是省略第一维的长度;选项D中定义了一个2行3列的数组,而在赋值的时候却赋了一个3行的值给它,显然不正确,故选项D错误,所以,4个选项中选项B符合题意。

61.D本题考查函数返回值作参数,最初n=1,f(n)=f(1)=2,将f(n)的结果代入第二个f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

62.A

63.C

64.Afopeni函数第二个参数是w则表示写的形式,会覆盖原来数据,所以选择A)。

65.D在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,以有利于提高模块的独立性。耦合性与内聚性是模块独立的两个定性标准,是互相关联的。

66.B解析:在C语言中,用户标识符命令规则规定:变量名只能由字母、数字或下划线3种字符组成,且第一个字符必须为字母或下划线。在C语言中,大写字母和小写字母被认为是两个不同的字符。据此规定A)、D)、C)三个选项是正确的,而B)选项是连字符,不在C语言规定的命名变量标识符的范围内。

67.C在本题中,程序首先定义了一个一维数组a,赋其初值,并定义一个同类型的指针变量p和一个指向指针的指针变量k,然后让指针变量p指向数组的首地址,接着将指针变

温馨提示

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

评论

0/150

提交评论