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

下载本文档

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

文档简介

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

一、单选题(20题)1.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

2.有以下程序段

#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

3.下列关于软件测试的目的和准则的叙述中,正确的是()

A.软件测试是证明软件没有错误

B.主要目的是发现程序中的错误

C.主要目的是确定程序中错误的位置

D.测试最好由程序员自己来检查自己的程序

4.在下列几种排序方法中,空间复杂度最高的是()

A.归并排序B.快速排序C.插入排序D.选择排序

5.运算符________的优先级最高。

A.[]B.+=C.?:D.++

6.下列选项中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

7.有以下程序函数fun只对下标为偶数的元素进行操作.:

程序运行后的输出结果是()。A.A.7,2,5,4,3,6,1,

B.1,6,3,4,5,2,7,

C.7,6,5,4,3,2,1,

D.1,7,3,5,6,2,1,

8.判断一个栈ST(最多元素为Maxsize)为满的条件是()。

A.ST->top!==-1

B.ST->top==-1

C.ST->top!==Maxsize-1

D.ST->top==Maxsize-1

9.设有定义:intn=0,*p=&n,**q=&p;则下列选项中正确的赋值语句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

10.以下选项中表示空函数的是()。

A.intfun(){return0;}

B.intfun();

C.intfun(){}

D.intfun(inta,intB){return1;}

11.有下列程序:程序执行后的输出结果是()。A.Sun,f,90,Sun,f,90

B.Zhao,m,85,Sun,f,90

C.Zhao,m,85,Qian,f,95

D.Sun,f,90,Qian,f,95

12.有以下程序#include<stdio.h>structst{intx,y;}data[2]={1,10,2,20};main(){structst*p=data;printf("%d,",p->y);printf("%d\n",(++p)->x);}程序的运行结果是______。A.10,1B.20,1C.10,2D.20,2

13.下列函数的类型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不确定C.voidD.float

14.数据库设计包括两个方面的设计内容,它们是()。

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

15.在C语言中,int、char和short种类型数据在内存中所占用的字节数()。

A.由用户自己定义B.均为2个字节C.是任意的D.由所用机器的机器字长决定

16.

17.设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。如T=R×S,则T的元组的个数为()。A.6B.8C.9D.12

18.下列程序的运行结果是()。#include<stdio.h>#defineADD(x)x+xmain{intm=1,n=2,k=3;intS=ADD(m+n)*k;printf("s=%d",s);}A.sum=18B.sum=10C.sum=9D.sum=25

19.则以下函数调用语句错误的是()。#include<stdio.h>intadd(inta,intb){return(a+b)}main(){intk,(*f)(),a=5,b=10;f=add;...}A.k=f(a,b);B.k=add(a,b);C.k=(*f(a,b);D.k=*f(a,b);

20.有以下程序(注:字符a的ASCII值为97):#include<stdio.h>main(){char*s={“abc”};do{printf(“%d”,*s%10);++s;}while(*s);}程序的运行结果是()。

A.789B.abcC.7890D.979899

二、2.填空题(20题)21.以下程序运行后的输出结果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

22.数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。

23.若x为int类型,请写出与!x等价的C语言表达式______。

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

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

main()

{inta=1,b=2,c=3;

if(c=A)printf("%d\n",C);

elseprintf("%d\n",B);

}

26.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______。

27.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

28.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

29.当线性表采用顺序存储结构实现存储时,其主要特点是______。

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

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

32.在ER图中,矩形表示【】。

33.数据的逻辑结构有线性结构和______两大类。

34.有如下图所示的双链表结构,请根据图示完成结构体的定义:

structaa

{intdata;

【】}node;

35.软件开发环境是全面支持软件开发全过程的______的集合。

36.不改变关系表中的属性个数但能减少元组个数的是()。

37.若x和a均是int型变量,则计算完x=(a=4,6*2)后的x值为______。

38.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

39.成本估算模型中,Putnam估算模型是一种【】模型。

40.与结构化需求分析方法相对应的是【】方法。

三、1.选择题(20题)41.判断字符串s1是否大于字符串s2,应该使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

42.有以下程序intfun(intn){if(n==1)return1;elsererurn(n+fun(n+1));}main(){intx;scanf("%d",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量x输入10,程序的输出结果是

A.55B.54C.65D.45

43.执行以下程序后i的值为()。main(){intx,i;for(i=l,x=1;i<=36;i++){if(x>=20)break;if(x%5==1){x+=5;continue;}x-=5;)printf("%d",i);}

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

44.下面程序执行后的输出结果是(小数点后只写一位)______。main(){doubled;floatf;long1;inti;i=f=1=d=20/3;printf("%d%ld%f%f\n",i,l,f,d);}

A.666.06.0B.666.76.7C.666.06.7D.666.76.0

45.若有下列定义和语句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);则输出结果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

46.语句“printf("%d\n",12&012);”的输出结果是______。

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

47.以下正确的函数声明语句是______。

A.intfun(inta,B);

B.floatfun(inta,int

C.doublefun();

D.intfun(chara[][]);

48.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是______。

A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

49.下列数据结构中,能用二分法进行查找的是()。

A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表

50.阅读以下程序及对程序功能的描述,其中正确的是

#include<stdio.h>

main()

{FILE*in,*out;

charch,infile[10],outfile[10];

printf("Entertheinfilename:\n");

scanf("%s",infile);

printf("Entertheoutfilename:\n");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{printf("cannotopeninfile\n");

exit(0);}

if((out=fopen(outfile,"w"))==NULL)

{printf("cannotopenoutfile\n");

exit(0);}

while(!feof(in))fputc(fgetc(in),out);

fclose(in);fclose(out);}

A.程序完成将磁盘文件的信息在屏幕上显示的功能

B.程序完成将两个磁盘文件合二为一的功能

C.程序完成将一个磁盘文件复制到另一个磁盘文件中

D.程序完成将两个磁盘文件合并并在屏幕上输出

51.有以下程序

#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

52.

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

inti=8,j=9;

则下列语句:

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

输出的结果是()。

A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

53.下列所述中,是软件调试技术的是()。

A.错误推断B.集成测试C.回溯法D.边界值分析

54.有以下程序point(char*p){p+=3;}main(){charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);}程序运行后的输出结果是______。

A.aB.bC.cD.d

55.栈通常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

56.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为______。

A.希尔排序B.冒泡排序C.插入排序D.选择排序

57.需求分析阶段的任务是确定()

A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能

58.下列叙述中正确的是()。

A.一个算法的空间复杂度大,则其时间复杂度也必定大

B.一个算法的空间复杂度大,则其时间复杂度必定小

C.一个算法的时间复杂度大,则其空间复杂度必定小

D.上述三种说法都不对

59.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

60.程序中对fun()函数有如下说明void*fun();此说明的含义是______。

A.fun函数无返回值

B.fun函数的返回值可以是任意的数据类型

C.fun函数的返回值是无值型的指针类型

D.指针fun指向一个函数,该函数无返回值

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

A.在C语言程序中,main函数必须放在其他函数的最前面

B.每个后缀为C的C语言源程序都可以单独进行编译

C.在C语言程序中,只有main函数才可单独进行编译

D.每个后缀为.C的C语言源程序都应该包含一个main函数

62.

63.

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

A.10,l4B.8,11C.7,llD.9,l8

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

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

66.对于存储同样的一组数据元素而言().

A.顺序结构比链接结构易于扩充空间

B.顺序结构与链接结构相比,更有利于对元素进行插入、删除运算

C.顺序结构占用整块空间,而链接结构不要求整块空间

D.顺序结构比链接结构多占存储空间

67.

68.

69.(27)程序流程图(PFD)中的箭头代表的是()

A.数据流

B.控制流

C.调用关系

D.组成关系

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

charstr[15]=”hello!”;

printf(“%d\n”,strlen(str));

A.15B.14C.7D.6

71.有以下程序

#include<stdio.h>

voidfun(char**p)

{++p;printf("%s",*p);}

main

{char*a[]={"Morning","Afternoon","Evening","Night");

fun(a);

}

程序的运行结果是()。A.A.AfternoonB.fternoonC.MorningD.orning

72.

73.

有以下程序

#include<stdi0.h>

voidfun(intn,int*p)

(intf1,f2;

if(n==1||n==2)*p=1;

else

{fun(n-1,&f1);fun(n-2,&f2);

*p=f1+f2;

}

}

main

{ints;

fun(3,&s);printf("%d",s);

}

程序的运行结果是()。

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

74.某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)()。

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

75.下列是用户自定义标识符的是()。

A._wlB.3_xyC.intD.LINE-3

76.有以下程序

77.在HTML文档中,应该在下列哪个部分引用外部样式表?()A.A.文档的末尾

B.<title>部分

C.<body>部分

D.<head>部分

78.若变量均已正确定义并赋值,以下合法的c语言赋值语句是()。A.x---y=--5;B.x--n%2.5;C.x+n=i;D.x=5--4+1;

79.

定义结构体数组:

structstu

{intnum;

charnameE20];

}X[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU");

for(i=1;i<5;i++)

printf("%d%c",x[i].num,x[i].name[2]);

以上程序段的输出结果为()。

A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I

80.若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是()。

A.v0=7,vl=4,v2=7

B.v0=8,vl=4,v2=8

C.v0=11,vl=4,v2=11

D.v0=13,vl=4,v2=12

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母'F'。

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

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

试题程序:

六、程序设计题(1题)82.实现字符串拷贝的函数strcpy为()。

参考答案

1.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

2.D本题主要考查文件的操作。在本题的程序中,首先定义了一个无返回值的函数fun,该函数带有两个指针类型的形参,其中第一个形参指向需要被操作文件的文件名,而第二个形参指向被操作的字符串。在函数体中,首先定义一个文件指针,然后以只写的方式打开第一个形参所指向的文件,接着执行for循环,循环结束的条件是循环变量小于被操作字符串的长度,循环体中的程序fputc(st[i],myf);的功能是将字符串中的当前字符输入到文件中。由这些分析我们可以知道,函数fun的作用是将字符串的内容写入到文件中。

在主函数中,两次调用函数fun,当第一次调用时,写入文件的内容为newworld,然后第二次调用函数,此时打开文件,文件的指针重新回到开始,然后往文件中写内容“hello,”,由于此时文件中已经有内容“newworld”,则需要覆盖前面一部分的内容,因此,程序的最终输出结果是hello,rld,本题的正确答案选D。

3.BB)【解析】软件侧试的目的:

\n①软件测试是为了发现错误而执行程序的过程;

\n②一个好的测试用例能够发现至今尚未发现的错误;

\n⑧一个成功的测试是发现了至今尚未发现的错误。

\n软件侧试的准则:

\n①所有测试都应追溯到需求;

\n②严格执行测试计划,排除测试的随意性;

\n③充分注意测试中的群集现象:

\n④程序员应避免检查自己的程序;

\n⑤穷举测试不可能;

\n⑥妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。

4.A

5.A

6.B水平制表符中,'\t'表示的是横向跳若干格;选项B中,'\039'错误,'\039'是八进制形式表的字符,最大数为7,但其中出现'9',','是字符逗号;选项D中,'\n'表示的是换行。

7.A由函数fun(int*a,intn)中语句if(a[j]>a[k])k=j;可知当前k是记录数组中较大数据值所在位置的下标变量,所以该函数的作用是对数组a中的下标为偶数位置的数据进行从大到小的排序,即对a[0],a[2],a[4],a[6]中的数据1,3,5,7进行从大到小的排序,其他位置的数据不变,所以答案为A)。

8.D

9.D解析:选项A),B),C)的指针赋值表达方式都不正确,*p=5表达整数5放到指针p所指向的存储单元中。注意:通过指针引用一个存储单。

10.C空函数是函数体没有执行语句的函数。选项A、D不是空函数;选项B是函数的声明;只有选项C是空函数。故本题答案为C选项。

11.A程序定义结构体类型STU,定义类型STU的全局变量a。main函数定义局部类型为STU变量b,并对它初始化,调用函数f。将局部变量c的各个成员值赋给a,覆盖a的旧值,将a的新值返回并赋给b,此时a、b的各个成员值都是Sun,f,90,程序输出:Sun,f,90,Sun,f,90。本题答案为A选项。

12.C解析:本题定义了一个包含两个元素(data[0]、data[1])的结构体数组data,其中data[0].x=1;data[0].y=10;data[1].x=2;\u3000data[1].y=20。在主函数中,定义了一个指向结构体数组的结构体指针变量p,使得p指向结构体数组的首地址,所以p->y访问的是第一个鲒构体数组元素的第二个值,即data[0].y;(++p)->x访问的是第二个结构体数组元素的第一个值,即\u3000data[1].x,所以程序输出结果为10,2。

13.A本题考查函数值的类型。在函数调用时,尽管Y的类型是float.x的类型是double,但是因为函数定义时没有指定类型说明,系统默认函数值的类型为int型,所以计算后Y的类型是int型。

14.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

15.D

16.A

17.CC。R为n元关系,有P个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。

18.B本题考查带参数的宏的定义:“#defineADD(x)x+x”中X代表m+n,故s写成s=m+n+m+n*k=1+2+1+2*3=10。

19.DD选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。

20.A因为小写字符a、b、c的ASCII值分别为97、98、99。在dowhile循环语句中,每次对字符的ASCII值取余数并输出,所以分别输出7、8、9。故本题答案为A选项。

21.136136解析:本题考核的知识点是函数递归。主函数调用函数fun(6),由于6/2>0为真递归调用fun(3),接着递归调用fun(1),输出1,返回上一层输出3,在返回上一层输出6。故空格处应该填136。

22.概念概念

23.x==0x==0解析:!x的逻辑意思就是x为非,即x==0。

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

25.11解析:本题是一个陷阱题。在if语句的判断表达式中,使用的不是逻辑运算符==而是赋值运算符=,使该表达式返回的结果正好相反。如果是c==a,则结果为假。但是c=a则是将a赋给c,且表达式的结果是赋值之后的c的值,因此结果为1是真.故最后输出c的值1。

26.数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段解析:在数据库系统管理阶段,数据是结构化的,是面向系统的,数据的冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性,同时提高了数据的可扩充性和数据应用的灵活性;数据具有独立性,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数据的完整性、安全性和并发性-综上所述,数据独立性最高的阶段是数据库系统管理阶段。

27.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。

28.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

29.逻辑结构中相邻的结点在存储结构中仍相邻。逻辑结构中相邻的结点在存储结构中仍相邻。解析:顺序存储结构的主要特点是数据元素按线性表的逻辑次序,依次存放在一组地址连续的存储单元中。在存储单元中,各元素的物理位置和逻辑结构中各结点间的相邻关系是一致的。

30.软件开发

31.4040解析:分析程序,初始时i=10,j=0,这时do循环中的“i=j+i”

32.实体实体解析:在E-R图中用矩形表示实体;椭圆形表示属性;菱形表示联系。

33.非线性结构非线性结构

34.structaa*lhead*rchild;structaa*lhead,*rchild;解析:结构体对链表的定义。

35.软件工具软件工具解析:软件开发环境是各类软件开发工具的集合体。

36.选择选择解析:关系数据库的专门关系运算包括选择、投影和连接3种,其中选择不改变关系表中的属性个数但能减少元组个数。

37.1212解析:x=(表达式1,表达式2,…)的形式,结果为最后一个表达式的值:x=(a=4,6*2)=2*6=12。

38.1对多(或1:N)1对多(或1:N)

39.动态多变量动态多变量

40.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。

41.C解析:本题考查字符串比较函数strcmp()。调用形式:strcmp(s1,s2),其中s1、s2分别是字符串存储区的首地址。函数功能:比较字符串str1和str2,当str1<str2时,返回值为负数;当str1=str2时,返回0;当str1>str2,返回值为正数(注意:不能使用关系运算符比较两个字符串的大小)。

42.A解析:本程序考查的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+9+10=55。

43.C解析:第1次循环执行情况如下:

i=1,x=1,判断i<=36为真执行循环体。

x=1,判断x>=20为假。

判断x%5==1为真,执行x+=5;x值为6,执行continue;跳过本次循环余下的语句,即不执行X-=5:。

执行i++,i=2。

第2次循环执行情况如下:

i=2,判断i<=36为真执行循环体。

x=6,判断x>=20为假。

判断x%5==1为真,执行x+=5:x值为11,执行continue;跳过本次循环余下的语句,即不执行X-=5;。

执行i++,i=3。

第3次循环执行情况如下:

i=3,判断i<=36为真执行循环体。

x=11,判断x>=20为假。

判断x%5==1为真,执行x+=5;x值为16,执行continue;跳过本次循环余下的语句,即不执行X-=5:。

执行i++,i=4。

第4次循环执行情况如下:

i=4,判断i<=36为真执行循环体。

x=16,判断x>=20为假。

判断x%5==l为真,执行x+=5;x值为21,执行continue;跳过本次循环余下的语句,即不执行X-=5;。

执行i++,i=5。

第5次循环执行情况如下:

i=5,判断i<=36为真执行循环体。

x=21,判断x>=20为真。

执行break;,跳出循环体,即结束循环。最后i=5,选项C正确。

44.A

45.C解析:在C语言中,“%d”表示输出带符号的十进制整型数;“%x”表示以十六进制无符号型输出整型数据(即不带前导0x或0x);“%o”表示以八进制无符号型输出整型数据(即不带前导0)。

46.B解析:012是八进制数,转换成十进制为10,12&10转换成二进制为00001100&00001010=00001000,00001000转换成十进制为8。

47.C解析:函数声明语句必须以分号结束,形参要分别说明,若二维数组作为函数的形参,则第二维的大小不能缺省。

48.B解析:第一次执行while语句时,z=3>0,然后执行z--得z=2,执行++x得x=1<5,条件成立,执行y=y-1=5

-1=4;第二次执行while语句时,z=2>0,然后执行z--得z=1,执行++x得x=2<5,条件成立,执行y=y-1=4-1=3;第三次执行while语句时,z=1>0,然后执行z--得x=0,执行++x得x=3<5,条件成立,执行y=y-1=3-1=2;第四次执行while语句时因z=0,z<0条件不成立,同时执行c--得z=-1。即执行完while循环后x=3、y=2、z=-1。

49.A\nA。【解析】二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。

\n

50.C解析:本题中,最主要的是掌握几个有关文件的函数的应用。

函数名:fopen

功能:打开一个文件

调用方式FILE*fp;fp=fopen(文件名,使用文件方式);

函数名:feof

功能:检查文件是否结束

调用方式:feof(FILE*fp);

函数名:fputc

功能:把一个字符写到磁盘文件上去

调用方式:fputc(ch,fp)(ch是要输出的字符,fp是从指定的文件读入一个字符,该文件必须是以读或读写方式打开的调用方式:ch=fgetc(fp)(ch是字符变量,fp是文件指针变量);

函数名:fclose

功能:关闭一个文件

调用方式:fclose(文件指针)。

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

52.B解析:本题考查printf函数的格式。在printf函数中,如果格式说明符中有两个%说明,则将第1个%后面的字符原样输出,并不输出其对应的变量值。

53.C解析:软件调试技术包括强行排错法、回溯法和原因排除法。边界值分析、错误推断都是黑盒测试的方法。

54.A解析:本题是一个陷阱,看似考查函数的传址调用,其实考的是传值调用。在C语言中,不管你给函数传递的参数是什么,指针也好数组名也罢,系统都是严格的将实参的值复制了一份作为函数的形参,即传值调用。在函数中,对形参中的值怎么改变都不会影响到实参。那传址调用又是怎么实现的呢?那是因为在函数中改变的不是形参指针变量中的值,而是形参指针变量所指内存中的值。其实骨子里还是将实参指针的值复制?一份给形参指针变量,它们是两个独立的互不相干的变量,只不过指向的内存地址值一模一样罢了。本题的函数只是改变了形参指针变量p的值,这对程序没有任何影响,主函数中p一开始就是指向b[0],最后输出时还是b[0]的值'a'。所以应该选择A。

55.A解析:和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。注意:这3种运算方法在各种存储结构中的应用。

56.A解析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。

57.D解析:结构化分析方法,数据流图,数据字典,软件需求规格说明书

评析,需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织,部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能.选项A)软件开发方法是在总体设计阶段完成的任务;选项B)软件开发工具是在实现阶段需完成的任务:选项C)软件开发费用是在可行性研究阶段需完成的任务。

58.D解析:时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项A、B、C的说法都是错误的。故本题的正确答案是D。

59.B本题主要考查C语言合法语句的定义。

在选项A中,a==1不是一个合法的语句,因为它没有语句结束标识符“;”,不能说是一条语句,如果作为一个表达式,它是正确的。

在选项B中,由于变量i已被正确定义并有初值,“++i;”是正确的语句。

在选项C中,由于正确的赋值语句中,赋值符号的左边不能为常量或表达式,而右边不能为变量或表达式,很明显,“a=a++=5;”违背了赋值语句的原则。

在选项D中,“a=int(i);”语句是不正确的,在C语言中没有这种表示形式,如果是想将变量i强制转换为整型的操作,应该为“a=(int)i;”。

60.C解析:C语言中函数的定义分为有参函数的定义和无参函数的定义。无参函数的定义形式为:

类型标识符函数名()

{说明部分

语句

}

有参函数的定义有两种形式:

类型标识符函数名(形式参数列表)

形式参数说明

温馨提示

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

评论

0/150

提交评论