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.charstr=“\x43”;

B.charstr[]=“\0”;

C.charstr=”;

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

2.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。A.单链表B.静态链表C.线性链表D.顺序存储结构

3.若有定义int?x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()。A.(x-y<0|x-y>0)B.(x-y<0)C.(x-y>0).D.(x-y==0)

4.同一个关系模型的任意两个元组值()。

A.可以全相同B.不能全相同C.必须全相同D.以上都不对

5.以下能正确定义一维数组的选项是______。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

6.堆是一种有用的数据结构。下列关键码序列()是一个堆。

A.94,31,53,23,16,72

B.94,53,31,72,16,23

C.16,53,23,94,31,72

D.16,31,23,94,53,72

7.以下是根据文件大小分配存储空间的一个算法伪代码,请问其空间复杂度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))

8.下列4项说法中,不正确的是______。

A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性

9.下列叙述中,不属于软件需求规格说明书的作用的是()

A.便于用户,开发人员进行理解和交流

B.反映出用户问题的结构,可以作为软件开发工作的基础和依据

C.作为确认测试和验收的依据

D.便于开发人员进行需求分析

10.串是一种特殊的线性表,其特殊性体现在()。

A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符

11.

12.程序运行后的输出结果是()。#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}A.1.1.3B.2.2.3C.1.2.3D.3.3.3

13.下述关于C语言文件的操作的结论中,正确的是______。

A.对文件操作必须先关闭文件

B.对文件操作必须先打开文件

C.对文件操作顺序无要求

D.对文件操作前必须先测文件是否存在,然后再打开文件

14.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序运行后的输出结果是()。A.0B.1C.2D.3

15.下列不属于C语言关键字的是()。A.A.default

B.register

C.enum

D.external

16.有以下程序#include<stdio.h>voidfun(intx){if(x/2>1)fun(x/2);printf("%d",x);}main{fun(7);printf("\n");}程序运行后的输出结果是()。A.137B.731C.73D.37

17.对一个满二叉树,m个叶子,n个结点,深度为h,则()。

A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1

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

A.在switch语句中,不一定使用break语句

B.break语句只能用于switch语句

C.break语句必须与switch语句中的case配对使用

D.在switch语句中必须使用default

19.设有定义“doublea[10],*s=a;”,以下能够代表数组元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

20.层次型、网状型和关系型数据库划分原则是()。

A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式

二、2.填空题(20题)21.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

22.程序的运行结果为【】。

main()

{intx,y,z;

x=24;

y=024;

z=0x24;

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

}

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

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

}

24.若有程序

main()

{inti,j;

scanf("i=%d,j=%d",&i,&j);

pfintf("i=%d,j=%d\n",i,j);

}

要求给i赋10,给j赋20,则应该从键盘输入【】。

25.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

26.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【】。

27.以下程序的功能是:从键盘上输入若干学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。填空。

main()

{floatx[1000],sum,=0.0,avea;

intn=0,i;

printf("Entermark:"\n");scanf("%f",&a);

while(a>=0.0&&n<1000)

{sum+=【】;x[n]=【】;

n++;scanf("%f",&a);

}

ave=【】;

printf("Output:"\n");

printf("ave=%f"\n",ave);

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

if(【】)frintf("%f\n",x[i]);

}

28.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{intI;

*max=a[0];

*d=0;

for(I=0;【】;I++)

if(*max<【】)

{*max=a[I];*d=i;}}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);}

29.有以下程序:

main()

{inta=7,b=8,*p,*q,*r;

p=&a;q=&b;

r=p;p=q;q=r;

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

}

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

30.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是【】。

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

main()

charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

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

32.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。

33.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。

34.表达式pow(2.8,sqrt(float(x)))值的数据类型为______型。

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

#include<stdio.h>

fun()

{staticinta=0;

a+=2;printf("%d",a);}

main()

{intcc;

for(cc=1;CC<4;CC++)fun();

printf("\n");}

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

char*strcat(str1,str2)

char*str1,*str2;

{char*t=str1;

while(【】)str1++;

while(【】);

return(t);}

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

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

{staticinta[4]={1,2,3,4};

inti;

for(i=0;i<4;i++)a[i]+=a[i];

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

printf"\n");

}

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

voidreverse(inta[],intn)

{inti,t;

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

{t=a[i];a[i]=a[n+1+i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

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

}

39.在最坏情况下,冒泡排序的时间复杂度为【】。

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

三、1.选择题(20题)41.有以下程序:#include<stdio.h>voidswap1(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其输出结果是()。

A.5353B.5335C.3535D.3553

42.设x、y、t均为int型变量,则执行语句x=y=3;t=++x||++y;后,y的值为______。

A.不定值B.4C.3D.1

43.数据存储和数据流都是______,仅仅是所处的状态不同。

A.分析结果B.事件C.动作D.数据

44.以下程序的输出结果是()main(){charss[16]="test\0\n\"";printf("%d,%d\n",strlen(ss),sizeof(ss)):}

A.4,16B.7,7C.16,16D.4,7

45.对存储器按字节进行编址,若某存储器芯片共有10根地址线的引脚,则该存储器芯片的存储容量为()

A.512BB.1KBC.2KBD.4KB

46.若有运算符:>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列次序为()。

A.*=<<>%sizeof

B.<<*=>%sizeof

C.%=><<sizeof%

D.*=><<%sizeof

47.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序运行后的输出结果是______。

A.运行后报错B.66C.611D.510

48.已知inta=1,b=3则a^b的值为

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

49.在数据库设计中,将E-R图转换成关系数据模型的过程属于()A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

50.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}执行后输出结果是()。

A.赋初值的字符串有错B.6,7C.5,6D.6,6

51.判断char型变量cl是否为大写字母的正确表达式是()。

A.'A'<=cl<='Z'

B.(cl>=A)&&(cl<=Z)

C.('A'>=cl)||('Z'<=cl)

D.(cl>='A')&&(cl<='Z')

52.有以下函数定义:voidfun(intn,doublex){…}若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是______。

A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfun(n,x);

53.在关系数据库中,用来表示实体之间联系的是

A.树形结构B.网状结构C.线性表D.二维表

54.设x=011050,则x=x&01252的值是()。

A.1000101000

B.1111110100011000

C.1011100010

D.1100000000101000

55.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

56.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为()

A.0B.1C.-1D.一个非0值

57.有以下程序main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\b",i,j);}程序运行后的输出结果是

A.9,9B.8,9C.1,8D.9,8

58.开发大型软件时,产生困难的根本原因是()

A.大系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重

59.有下列程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4;n+=2;k--;break;}printf("%d",n);}while(k>O&&n<5);}程序运行后的输出结果是()。

A.235B.0235C.02356D.2356

60.执行语句printf(“%ukn”,+12345)的输出结果是()。

A.12345B.0C.-1D.非定值

四、选择题(20题)61.有以下函数函数的功能是()。

A.统计x和y所指字符串中最前面连续相同的字符个数

B.查找x和y所指字符串中是否有’\0’

C.将y所指字符串赋给x所指存储空间

D.统计x和y所指字符串中相同的字符个数

62.设文件指针fp已定义,执行语句fp=fopen(”61e”,”W”);后,以下针对文本文件file操作叙述的选项中正确的是()。

A.只能写不能读B.写操作结束后可以从头开始读C.可以在原有内容后追加写D.可以随意读和写

63.有如下程序段

voidfun(int*a,int*b)

{int*k;

k=a;a=b;b=k;

}

main()

{inta=3,b=6,*x=&a,*y=&b;

fun(x,y);

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

}

程序运行后输出的结果是A.A.63

B.36

C.编译出错

D.00

64.第

15

以下程序的输出结果是

main()

{inta=21,b=11;

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

}

A.30B.31C.32D.33

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

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

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

A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值

B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C语言中,外部变量的隐含类型是自动存储类别

D.在C语言中,函数形参的存储类型是自动(auto)类型的变量

67.以下选项中关于C语言常量的叙述错误的是()。

A.经常被陡用的变量可以定义成常量

B.常量分为整型常量、实型常量、字符常量和字符串常量

C.常量可分为数值型常量和非数值型常量

D.所谓常量,是指在程序运行过程中,其值不能被改变的量

68.有以下程序:

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

A.y=一1B.Y=0C.y=1D.while构成无限循环

69.

70.

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

A.a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值

B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式

C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0

D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3

72.有以下程序:

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

A.0B.3C.4D.7

73.

74.

75.有以下程序:

#include<stdio.h>

main()

{chara[20],b[20],c[20];

scanf("%s%s",a,b);

gets(c);

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

}

程序运行时从第一列开始输入:

Thisisacat!<回车>

则输出结果是()。

A.Thisisacat!

B.Thisisa

C.Thisisacat!

D.Thisisacat!

76.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。

structnode

{hardata;

structnode*next;)*P,*q,*r;

现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;

B.q-:>next=r;q->next=r->next;r->next=q;

C.q-:>next=r->next;r->next=q;p->next=r;

D.q-:>next=q;p->next=r;q->next=r->next;

77.下面的变量说明中__________是正确的。

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

78.下列程序的运行结果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}

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

79.以下关于C语言的叙述中正确的是()。

A.C语言的数值常量中夹带空格不影响常量值的正确表示

B.C语言中的变量可以在使用之前的任何位置进行定义

C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致\

D.C语言中的注释不可以夹在变量名或关键字的中间

80.在结构化分析方法中,数据字典的作用是()。

A.存放所有需要处理的原始数据

B.存放所有处理的结果

C.存放所有程序文件

D.描述系统中所用到的全部数据和文件的有关信息

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

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

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

试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是统计s所指字符串中的数字字符个数,并将其作为函数值返回。例如,s所指字符串中的内容是2def35adh253kjsdf7/kj8655x,函数fun()返回值为11注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

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

2.B

3.A条件表达式:x=表达式1:表达式2:表达式3的含义是:先求解表达式1.若为非0(真),则求解表达式2.将表达式2的值赋给x。若表达式1的值为0(假),则求解表达式3.将表达式3的值赋给x。在本题中与表达式1:(x-y)等价的是(x-y<0|x-y>0)。

4.B关系具有以下7个性质。①元组个数有限性:二维表中元组的个数是有限的。②元组的唯一性:二维表中任意两个元组不能完全相同。③元组的次序无关性:二维表中元组的次序,即行的次序可以任意交换。④元组分量的原子性:二维表中元组的分量是不可分割的基本数据项。⑤属性名唯一性:二维表中不同的属性要有不同的属性名。⑥属性的次序无关性.二维表中属性的次序可以任意交换。⑦分量值域的同一性:二维表属性的分量具有与该属性相同的值域,或者说列是同质的。满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。本题答案为B选项。

5.B解析:选项A)定义的是长度为5的数组元素,但初值有6个元素,所以错误;选项C)不符合数组定义形式,数组名后应加上“[];选项D)的类型说明符错误,应改为char;选项B)中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以正确。

6.D

7.C

8.C解析:数据库系统具有以下4个特点:数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。

9.D解析:软件需求规格说明书SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用,①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。

10.B

11.D

12.D

13.B解析:在C中对文件操作必须先打开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行打开操作时,同时会执行文件的检查文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式打开时,文件不存在,将会自动创建文件,因此在C中打开文件前不必对其检查文件是否存在,故答案为B。

14.A根据C语言运算符的优先级与结合性,先计算a/b,结果为l,再将a/b的结果与C做按位与运算,即l与2做按位与运算,其结果为0。

15.Dregister声明寄存器变量enum声明枚举类型default开关语句中的“其他”分支

16.D本程序主要考查递归函数。fun(7),首先将参数代入函数,因为(7/2)>1,所以执行f(3),依此类推直到f(1.5),(1.5/2)<1,所以执行打印函数,此时X值为3,然后退出f(1.5),返回f(3),打印x值即7。所以选D。

17.D

18.Aswitch语句中不一定使用break语句,选项A正确;break语句除了用于switch语句,还可以用于循环语句中,选项B、C错误;switch语句不一定需要使用default语句,选项D错误。本题答案为A选项。

19.B题中,首先定义了double型的数组a,并将数组首地址赋给指针s。“(*s)”表示“a[1]”,“s[3]”不是指针变量,不能使用间址运算符“*”,故选项A、C不能表示“a[3]”;选项D的“*s+3”等于“a[0]+3”。故本题答案为B选项。

20.D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

21.q<p+nq<p+n解析:考查对于函数的地址传递的掌握情况。通过地址传递可以在被调函数中对调用函数中的变量进行引用。

22.242036

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

24.i=0j=20i=0,j=20解析:scanf()函数的使用,该函数的第一个参数是格式字符串,主要由两类字符组成,一类是非格式符要求原样输入,一类是格式符对应要输入的变量,所以说本题中应该原样输入i=,j=,后面分别给变量0和20,所以说空格处应该填入i=0,j=20。

25.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

26.软件生命周期软件生命周期解析:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。

27.aasum/n或sum/(float)n或sum/(double)nx[i]<sve或!(x[i]>=sve)或sve>x[i]a\r\na\r\nsum/n或sum/(float)n或sum/(double)n\r\nx[i]<sve或!(x[i]>=sve)或sve>x[i]

28.I<na[I]I<n,a[I]解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它们所指向的变量时,要对它们进行指针运算,即*号运算。

29.87788,7,7,8解析:本题中执行语句p=&a和q=&b后,*p=7,*q=8;执行完语句r=p,p=q,q=r后,*p=8,*q=7,故答案为8,7,7,8。

30.功能模型功能模型

31.220.0或220或220.或220.000000220.0或220或220.或220.000000解析:所有的赋值运算符的优先级都相同,它们的结合性为从右至左,它们返回的表达式值为赋给变量的值.所以,语句x=f*=n/=(c=50):→x=f*=n/=50;→x=f*=2;(n的值变成2)→x=20;。故最终输出的结果应该是:220.000000

32.概要概要

33.continuecontinue解析:continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。

34.floatfloat解析:在此表达式中x是float类型的变量,经过开方所得到的结果仍是float类型,再和2.8进行运算时,应该先将2.8转换成float类型再运算,最后结果仍是float型。

35.246246解析:本题考查了for循环语句的使用,同时静态局部变量的存储和生存其特性也要注意。第一次执行fun()函数时,a=0,所以a+=2=2;第二次执行fun()函数时,a保留着上次制形式的结果2,所以a+=2=4;同理第三次执行fun()函数时,a=6,所以输出结果为246。

36.*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++”。

37.24682,4,6,8解析:子函数fun()的功能是将数组a中的元素都自加一遍,然后仍然将结果存在原数组中,其实就是将数组a的每个元素都变为原来的2倍,然后输出。在主程序中首先通过intfun()定义了子函数fun(),然后再调用fun()。

38.在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]…b[9]的值相加,结果为盟。\r\n\r\n

39.

解析:冒泡排序法是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过遍的从前往后的扫描和遍的从后往前的扫描,需要的比较次数为。

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

41.B解析:swap1函数传递的是变量的地址,可以实现两个数的交换;而swap2函数传递的是值,执行完swap2后,c0,c1的值互换了,但main函数中的b0和b1并未互换,即形参值的改变无法传给实参。

42.C解析:++高于=和||,=的优先级最低。而||为自左向右的结合性,因此先计算表达式++x的值,x的初值为3,3+1=4,4为非零值,不必再计算||右侧表达式的值,即可得到整个逻辑表达式的值1,++y没有做运算,仍为原值3,所以,选项C正确。

43.D解析:数据流图有4种成分:源点或终点、处理、数据存储和哦数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。

44.A

45.B

46.D解析:本题主要考查算术运算的优先级。顺序如下:

[*]

注:*=、>、<<、%、sizeof的优先级依次递增。

47.A解析:本题考核的知识点是通过指针引用数组的元素的方法.本题中首先定义了一个一维数组a并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。所以,4个选项中选项A符合题意。

48.C解析:^是按位异或运算,如果对应位不同则结果为1,相同则为0。

49.B数据库应用系统的逻辑设计包括数据库逻辑结构设计、数据库事务概要设计和应用程序概要设计三方面。数据库逻辑结构设计的主要步骤为:将E—R图转换为初始关系模式,对初始关系模式进行优化,检查关系表对数据库事务的支持性,确定关系模式完整性约束,设计基于关系模式的用户视图。

50.C解析:本题在定义字符数组时没有定义数组长度,但用字符常量给数组赋了初值,这时初值的个数即为数组的长度,故数组长度为6(包括'\\0')。字符串的长度为有效字符的个数5。strlen(s)返回值为串中字符的个数(不计最后的'\\0'),则输出值为5。sizeof(s)计算数组所占的字节数,包含'\\0',则输出值为6。因此,C选项正确。

51.D解析:字符型数据在计算机内部是以ASCII码存储的,英文大写字母和小写字母在ASCII码表中都是连续的。大写字母A到Z是从65到90,所以只要变量c1大于A并且小于Z就能保证其为大写字母。A)、C)表示形式错误,B)的字符A、Z没有用单引号括起来。

52.C解析:若函数fun没有返回值,选项B错误;函数调用语句中没有函数返回值,选项D错误;函数凋用语句中只写实参名称,选项A错误。

53.D解析:数据库中的关系模型是采用二维表来表示实体与实体之间的联系。

54.A解析:本题主要考查按位与运算,x=011050的二进制形式为000100100010t000,01252的二进制形式为0000001010101010,两者相与得0000001000101000。

55.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

56.A解析:文件尾测试函数feof()的应用,读取文件时,当文件中的数据全部读完后,文件位置指针将位于文件的结尾。此时如果读数据,将会出现错误。为了保证读写数据的正确性,需要进行文件尾测试,文件尾测试使用函数feof(),它的功能是测试fp指向的文件是否到达文件尾。若到达文件尾,返回值为非0,否则返回值为0。在本题中fP指向的某文件还没有到了文件尾,因此返回0。

57.D解析:本题首先定义了字符数组a,由于它的长度省略,所以其长度由初值个数确定,为9。接着将sizeof()函数返回的值赋给i(sizeof()函数的作用是返回运算对象占用的字符数),所以i值为9。然后将strlen()函数的返回值赋给j(strlen()函数的作用是返回字符串的长度,不包括字符串的结束标记'\\0'),所以j值为8,故最后输出的i,j值为9,8。4个选项中D正确。

58.A开发大型软件时,产生困难的原因有很多,如需求难以捕捉、员工水平有限、工作安排不太合理、进度控制难以把握、系统开发时间有限等元素,但这些都不是根本的原因,根本的原因是大系统的复杂性。

59.B解析:因为变量的初始值分别为k=5,n=0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0,k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2,k=3,打印出2;这时n=2,k=-3,程序进行第3次循环,执行case3:这个分支,结果是n=3,k=2,打印出3;这时n=3,k=2,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5,k=1,打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束。所以在屏幕上打印

60.A解析:“%u”表示输出无符号的整数(注意:如果输出值前有符号,将自动转化为相应的无符号数输出)。

61.A本题中由循环条件可知,当遇到l\0”’或“x与y所指的字符的值不相等”中的一个条件时就结束循环,因此本题函数的功能是统计x和y所指字符串中最前面连续相同的字符个数。

62.A考查文件操作函数fopen的基础知识,以”W”方式打开文件,只能写不能读。选项A正确。

63.B在本题中,程序首先定义了一个无返回值的函数fun,该函数带有两个整型的指针形参变量,在函数体中,首先定义一个整型指针变量k,然后试图利用k来交换a和b的结果。但处理语句k=a;很明显是对地址进行赋值操作。在C语言中,指针变量作为函数参数时,可以改变被指向的变量的值,但不能改变指针变量本身的值,即我们可以改变实参指向的变量的值,不能使实参指向其他的变量。因此,本函数并不能交换形参所指向变量的结果。

在主函数中,首先定义了两个整型变量a和b,并分别被初始化为3和6,然后定义两个指针变量x和y,分别指向a和b,接着调用fun函数,传递的实参为指针变量x和y,

温馨提示

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

评论

0/150

提交评论