2021年安徽省安庆市全国计算机等级考试C语言程序设计_第1页
2021年安徽省安庆市全国计算机等级考试C语言程序设计_第2页
2021年安徽省安庆市全国计算机等级考试C语言程序设计_第3页
2021年安徽省安庆市全国计算机等级考试C语言程序设计_第4页
2021年安徽省安庆市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩105页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2021年安徽省安庆市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下面程序的输出是()。A.17B.18C.23D.24

2.

有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。

structnode

{chardata;

structnode*next:

}a,b,*p=&a,*q=&b;

A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;

3.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的运行结果是()。A.852B.963C.741D.875421

4.以下不完整的程序拟实现调用getmax函数,找出4个变量中最大的一个:#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下选项若填入下划线处,不能实现上述功能的是()。

A.getmax(getmax(getmax(a,b),c),d)

B.getmax(getmax(a,b),getmax(c,d))

C.getmax(a,getmax(b,getmax(c,d)))

D.mx=(getmax(a,b),getmax(c,d))

5.和顺序栈相比,链栈有一个比较明显的优势是()。

A.通常不会出现栈满的情况B.通常不会出现栈空的情况C.插入操作更容易实现D.删除操作更容易实现

6.以下是if语句的基本形式:if

(表达式)语句,其中表达式A.A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式

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

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

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

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

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

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

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

9.视图设计一般有3种设计次序,下列不属于视图设计的是______。

A.自顶向下B.由外向内C.由内向外D.自底向上

10.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序执行后的输出结果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba

11.下列选项中,不属于数据管理员(DBA.职责的是()。

A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换

12.以下能正确定义一维数组的选项是()。

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

13.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系

14.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈S的容量至少应该是()。

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

15.队和栈的主要区别是________

A.逻辑结构不同B.存储结构不同C.所包含的运算个数不同D.限定插入和删除的位置不同

16.

17.有下列程序:

main()

{inty=20;

do{y--;}while(--y);

phntf("%d\n",y--);

}

当执行程序时,输出的结果是()。

A.-1B.1C.4D.0

18.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。

A.存储媒体B.表现媒体C.传输媒体D.感觉媒体

19.有以下程序:main(){chara[]={‘a',‘b',‘c',‘d',‘e',‘f',‘g',‘h',‘\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n",i,j);}程序运行后的输出结果是A.9,9B.8,9C.1,8D.9,8

20.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。

A.模拟现实世界中不同事物之间的联系

B.强调模拟现实世界中的算法而不强调概念

C.使用现实世界的概念抽象地思考问题从而自然地解决问题

D.不强调模拟现实世界中的算法而强调概念

二、2.填空题(20题)21.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。

22.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。

23.现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

当编译连接通过后,运行程序T18时,输入Thank!,则输出结果是【】。

24.以下程序段用于构成一个简单的单向链表。请填空。

struetSTRU

{intx,y;

floatrate;

【】p;

}a,b;

a.x=0;a.y=0;a.rate=0;a.p=&b;

b.x=0;b.y=0;b.rate=0;b.p=NULL;

25.下列程序的输出结果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

26.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

27.数据模型按不同应用层次分成3种类型,它们是概念数据模型、【】和物理数据模型。

28.在面向对象的程序设计方法中,类的实例称为______。

29.在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有______个元素。

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

FILE*myf;longfl;

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

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

fclose(myf);

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

31.诊断和改正程序中错误的工作通常称为【】。

32.设函数findbig已定义为求3个数中的最大值,以下程序将利用函数指针调用findbig函数。请填空。

main()

{intfindbig(int,int,int);

int(*f)(),x,y,z,big;

f=【】。

scanf("%d%d%d",&x,&y,&z);

big=(*f)(x,y,z);

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

}

33.下面程序的运行结果是______。

voidswap(int*a,int*B)

{

int*t;

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

}

main()

{

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

swap(p,q);

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

}

34.下列程序的输出结果是______。

longfun5(intn)

(longs;

if((n==l)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

35.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是【】。

structnode

{chardata;

structnode*next;}a,b

36.注释说明了程序的功能,它分为【】注释和功能性注释。

37.若a是血型变量,且a的初值为4,则计算a+=a-=a*a表达式后a的值为______。

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

39.若a=10,b=20,则表达式!(a<b)的值是【】。

40.设有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。

三、1.选择题(20题)41.有以下函数:fun(char*p){returnp;}该函数的返回值是()。

A.无确切值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值

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

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

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

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

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

43.以下叙述中错误的是

A.在程序中凡是以“#”开始的语句行都是预处理命令行

B.预处理命令行的最后不能以分号表示结束

C.#defineMAX是合法的宏定义命令行

D.C程序对预处理命令行的处理是在程序执行的过程中进行的

44.有以下程序: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中偶数之和

45.以下程序的输出结果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}

A.33B.22C.26D.25

46.在结构化方法中,软件功能分解属于下列软件开发中的阶段是()。

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

47.下列关于c语言用户标识符的叙述中正确的是()。

A.用户标识符中可以出现下划线和中划线(减号)

B.用户标识符中不可以出现中划线,但可以出现下划线

C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头

48.下面不属于软件设计原则的是()。

A.抽象B.模块化C.自底向上D.信息隐蔽

49.以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}

B.main{int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}

C.#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}

D.#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}

50.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法

A.对象B.数据结构C.数据流D.目标

51.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3%/4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若运行时从键盘上输入9876543210,则上面程序的输出结果是______。

A.a=9b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

52.设有定义语句:intx[6]={2,4,6,8,5,7),*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是()。

A.for(i=0;i<;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);

53.若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。

A.10011000B.10001100C.10101000D.10110000

54.以下不是面向对象思想中的主要特征的是

A.多态B.继承C.封装D.垃圾回收

55.软件需求分析阶段的工作,可以分为4个方面:需求获取、需求分析、编写需求规格说明书以及()。

A.阶段性报告B.需求评审C.总结D.都不正确

56.C语言运算对象必须是整型的运算符是______。

A.%=B./C.=D.<=

57.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;┆}程序在执行了c=&b;b=&a;语句后,表达式**c的值是()。

A.变量a的地址B.变量b中的值C.变量a中的值D.变量b的地址

58.有以下程序:#include<stdio.h>#include<string.h>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

59.关于结构化程序设计原则和方法描述错误的是()。

A.选用的结构只准许有一个入口和一个出口

B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C.不允许使用GOTO语句

D.语言中所没有的控制结构,应该采用前后一致的方法来模拟

60.设Y为整型变量,A=1,A的地址为EF01;B=2,B的地址为EF02;执行语句B=&A;Y=&b;后Y的值()。

A.1B.2C.EF01D.EF02

四、选择题(20题)61.设有以下函数:

A.

B.

C.

D.

62.下面四个选项中,均是不合法的用户标识符的选项是()。

A.

B.

C.

D.

63.以下程序段中的变量已正确定义:

程序段的输出结果是()。

A.**B.****C.*D.********

64.

65.

66.

67.

68.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。

A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统

69.链表不具有的特点是A.A.不必事先估计存储空间

B.可随机访问任一元素

C.插入和删除不需要移动元素

D.所需空间与线性表长度成正比

70.

71.

72.下列关于指针变量赋空值的说法错误的是

A.当赋空值的时候,变量指向地址为0的存储单元B.赋值语句可以表达为变量名=’\0’;

C.赋值语句可以表达为变量名=0;D.一个指针变量可以被赋空值

73.有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的输出结果是()。A.A.xyyxB.yyyyC.yyxxD.yxyx

74.

75.以下是if语句的基本形式:

if(表达式.语句

其中“表达式”()。

A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式

76.有三个关系R、S和t如下:由关系R和s通过运算得到关系T,则所使用的运算为()。

A.笛卡儿积B.交C.并D.自然连接

77.

78.设x为int型变量,则执行以下语句后,x的值为()。x=10;x=x-=x-x;

A.10B.20C.40D.30

79.(33)分布式数据库系统不具有的特点是______。

A.分布式

B.数据冗余

C.数据分布性和逻辑整体性

D.位置透明性和复制透明性

80.以下程序段中的变量已正确定义。

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

for(k=1;k<;3;k++);prinff(”*”);该程序段的输出结果是()。

A.*B.****C.**D.********

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据整型形参n,计算如下公式的值:A1=1,A2=1/(5+A1),A3=1/(5+A2),…,An=1/(5+A(n-1))例如,若n一10,则应输出0.192582。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将s所指字符串中ASCII值为奇数的字符删除,将剩余字符形成的新字符串放在t所指数组中。例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII值为奇数,字符1的ASCII值也为奇数,都应当删除,其他依此类推。最后t所指的数组中的内容应是“BDF24”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100],Msg[]=“Pleaseenterstrings:”; printf(Msg); scanf(“%s”,s); fun(s,t); printf(“\nTheresuitis:%s\n”,t);}

参考答案

1.B

2.B

\n本题考查结构体指针变量的赋值方法,要把结点b连接到结点;l的后面,必须把b的地址给a的next指针。故8正确。

\n

3.A答疑:[解析]第一次for循环,y的值为9.y%3的值为0.满足条件打印-y,即先减一-后打印,所以打印8;第二次for循环,y的值为7.y%3的值为1.不执行打印语句;第三次for循环,y的值为6.y%3的值为0.满足条件打印--y,即先减-后打印,所以打印5;第四次for循环,y的值为4.不满足条件,不执行打印语句;第五次for循环,y的值为3.满足条件,打印输出2;第六次for循环,y的值为1.不满足条件,不执行打印语句。

4.Dgetmax函数接收两个整型变量x、y,使用条件运算符返回x和y中的较大值。main函数首先输入a、b、c、d4个整数值,然后通过调用getmax函数,输出它们的最大值。假设x、y是整数,选项A中,首先执行“getmax(a,b)”,返回a、b中的较大值X,再执行“getmax(x,c)”,返回x、c中的较大值y,最后执行“getmax(y,d)”,返回y、d中的较大值,满足题意,正确;选项B中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行“getmax(x,y)”,返回x、y中的较大值,正确;选项C中,首先执行“getmax(c,d)”,返回c、d的较大值X,再执行“getmax(b,x)”,返回b、x中的较大值y,最后执行“getmax(a,y)”,返回a、y中的较大值,正确;选项D中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行逗号表达式“(x,y)”,返回值为7,不满足题意。故本题答案为D选项。

5.A

6.D

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

8.B数据库有三层模式结构,逻辑模式是数据的全局逻辑结构的描述,外模式也称为子模式,是局部数据的逻辑结构描述,而内模式也称为存储模式,是数据库物理存储结构和存取方法的描述。

9.B解析:视图设汁一般有3种设计次序,它们分别是自顶向下、自底向上和由内

向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以

单独使用也可混合使用。

注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后

对局部视图进行集成得到概念模式。

10.C本题考查swap函数,它的作用是把x、Y所指的内容互换,其他的不变,因此当执行完调用函数后,仅仅a与1互换,其他的没有变。

11.DD)【解析】数据库管理员(DataBaseAdministrator,DBA)是指对数据库的规划、设计、维护、监视等的人员,其主要工作如下:数据库设计。DBA的主要任务之一是数据库设计,具体地说是进行数据模式的设计;数据库维护。DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;改善系统性能,提高系统效率。DBA必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。

12.B数组1标从0开始,A选项中所赋值的个数超过了数组的长度;C选项中定义a为字符型变量,而不是数组,赋值错误;D选项中,整型数组不能赋字符串。

13.C(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(DatabaseSystem)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。

14.C

15.D

16.A

17.D解析:本题考查do…while循环。当--寸是0(即y是0)时结束循环,输出y--是先输出y的值再将y的值减1。

18.D媒体分为感觉媒体、表示媒体、存储媒体、传输媒体和表现媒体五种,“多媒体技术”中的媒体强调的是感觉媒体。

19.D解析:sizeof(\u3000)函数返回字符串所占字节数,strlen函数返回字符串的长度,其中'\\0'是一个转义字符,

20.C\n面向对象的设计方法的基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。它虽强调模拟现实世界中的概念而不强调算法,但是它鼓励开发者在软件开发的过程中从应用领域的概念角度去思考。

\n

21.调试调试

22.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。

23.!knahT!knahT解析:此程序是一道次序颠倒题,即输入'Thank!',则输出'!knahT'。

24.structSTRU*

25.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。

26.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式为:scanf(格式控制,地址表列),因此,第一处应该填写地址,由于是循环输入,所以填&a[i]。依据题意第二处应该填写a[i],以实现sum=sum+a[i]的求和。

27.逻辑数据模型逻辑数据模型解析:数据是现实世界符号的抽象,而数据模型(datamodel)则是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束行为,为数据库系统的信息表示与操作提供一个抽象的框架。数据模型按不同的应用层次分成3种类型,它们是概念数据模型(conceptualdatamodel)、逻辑数据模型(logicdatamodel)、物理数据模型(physicaldatamodel)。

28.对象对象解析:在面向对象的程序设计方法中,类是具有相同的属性或方法的对象的抽象,对象是类的实例。

29.3131解析:设队列容量为m,如果:rear>front,则队列中元素个数为rear-front;如果rear<front,则队列中元素个数为m+(rear-front)。本题rear<front,则m=32+(2-3)=31。

30.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。

打开文件的函数为:fopen(),调用形式为:fp=fopen(“文件名”,“使用文件方式”);

关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。

31.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。

32.findbigfindbig解析:f是指向函数的指针变量,根据题意要求,空格处应填入findbig。

本题目考查:C语言中指向函数的指针变量定义的一般形式为;

数据类型标识符(*指针变量名)();

“数据类型标识符”表示函数返回值的类型。

函数的调用可以通过函数名调用,也可以通过函数指针调用。在给函数指针变量赋值时,只需给出函数名而不必给出参数。(*p)()表示定义一个指向函数的指针变量,专门用来存放函数的入口地址,可以先后指向不同的指针变量。用函数指针调用函数时,只需要将(*p)代替函数名即可,在(*p)之后的括号中,根据需要写上参数。

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

34.99解析:考查ifelse语句,n==4不满足条件,所以fun5(4)=4+fun5(3),n==3也不满足条件,fun5(3)=3+fun5(2),n==2满足条件fun5(2)=2,故x=4+3+2=9。

35.a.next=aba.next=ab解析:选项A)中,指针变量q保存的就是变量b的地址,选项B)中的p是指针变量,应该是p->next=&b;在选项D)中,用*运算符取出结构体变量,并且保存的就是b的地址。

36.序言性序言性解析:注释一般分为序言性注释和功能性注释。

37.-24-24解析:本题考查赋值运算符a+=b等价于a=a+b;a-=a*a等价于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

38.概念概念

39.00解析:已知a=10,b=20,所以逻辑表达式a<b的值为true,即为1,在这个表达式前面有一个逻辑运算符!,表示反操作,所以整个语句的值应当为false,即为0。

40.QTHRGQTHRG解析:strcmp(t,s)函数用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。strcpy(t,s)函数的功能是把字符数组s所指字符串的内容复制到字符数组t所指的存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环.s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指的存储空间中,然后输出字符数组t。

41.B解析:return中返回的是指针p的值,也就是形参p中存放的地址值。

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

43.D解析:在C语言中,凡是以“#”开头的行都称为编译预处理命令行,如#include、#define、#if等,每行的末尾不得用“;”结束,以区别于C语句、定义和说明语句。选项C中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C源程序进行编译前执行的.当然也在程序执行之前执行,因此选项D是错误的。

44.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符合题意。

45.C解析:C语言规定如果全局变量与局部变量同名,则在局部变量的作用域内全局变量不起作用。程序开头定义的变量x为全局变量,函数incre中定义的变量x是局部静态变量,存放在静态存储区,incre调用结束后不释放x占据的存储单元。main函数中使用的x是全局变量x=3,所以main函数中调用函数incre两次。调用过程如下。第1次调用:x=x*(x+1)=1×(1+1)=2,printf函数输出2;第2次调用:x=x*(x+1)=2×(2+1)=6,printf函数输出6。

46.A解析:概要设计的任务是划分出构成系统的各物理元素以及设计出软件的结构(如确定模块及模块间的关系)。设计过程通常分为以下几步:提出可选择方案;选择合理方案;推荐最佳方案;功能分解;设计软件结构;制定测试计划:最后提交概要设计文档。软件功能分解属于概要设计阶段。本题的正确答案为选项A。

47.B解析:在C语言中,合法的标识符由字母,数字和下划线组成(故选项A不正确),并且第一个字符必须为字母或者下划线(故选项B和选项D不正确).所以,B选项为所选.

48.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。

49.C解析:选项A和B中p指向局部变量s的地址,退出函数fun后,该局部变量也被释放,不能使p指向一个整型单元地址;选项D中通过malloc函数分配一个整型地址,但不能被返回到main函数中,因为指针参数指向的地址不能被改变;选项C中,p是指向指针的指针,函数fun改变的是其指向的内容,而不是其地址。

50.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

51.C解析:scanf()用户从键盘录入助数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000.

52.D解析:本题中首先定义了一个了维数组并初始化,接着定义了一个指针变量p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A和C,*和++的优先级相同且都具有右结合性,p++是先使用p的值再对p加1,即先输出*p的值,再将指针下移一位。选项B是取*(p+i)所对应的存储单元中的数据输出,随着i的递增输出x数组的6个元素。选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位,故选项D不正确。所以,4个选项中选项D符合题意。

53.A解析:本题主要考查运算表达式的运算。3+(int)(x)的结果是10011010,~3的结果是11111100,二者逻辑与得10011000。

54.D解析:面向对象思想中的三个主要特征是:封装性、继承性和多态性。

55.B解析:需求分析是软件定义时期的最后一个阶段。可以概括为4个方面:①需求获取;②需求分析;⑧编写需求规格说明书;④需求评审。

56.A解析:在C语言中,模运算(即取余运算%)的运算对象必须是整型数据(常量、变量或表达式)。

57.C解析:本题考查指向指针的指针。*c表示c间接指向的对象的地址,而**c是c间接指向的对象的值。在c*&b中,已经把b的地址存放在c里了,*c就指向了b的地址,而b里存放的就是a的地址,那么**c应该是变量a的值。也可以用排除法排除选项A),B)。由b=&a可知,这两个选项是同一个意思,变量b中的值就是变量a的地址。所以可以排除。

58.C解析:C语言.中以,'\\0'作为字符串的结束符,且strlen函数计算的是,'\\0',字符前的所有字符的个数,故本题中strlen(a)应为2。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof运算符是计算变量或数组所分配到的内存空间的大小,所以本题的sizeof(a)为7。

59.C解析:限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他3项为结构化程序设计的原则。

60.C

61.A函数指针的定义形式是:数据类型标识符(*指针变量名)。void(*pf)定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

62.AC语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。选项A)中got0和

63.C由于内层循环for(k=1;k<3;k++)后面直接跟了空语句“;”所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个“t”,选择C。

64.B

65.D

66.D

67.B\r\n

68.A

69.B链表是一种特殊的线性表,链表的存储结构与顺序存储结构不同,它的存储区域可以是任意的存储单元,对存储系统中零碎的存储部分具有更好的应用,在给其分配存储单元时,不必事先估计整个存储单元的空间大小;由于链表的元素是通过指针域的指针相连的,用链表存储数据时,对其进行插入和删除操作时,不需要移动其他元素,只需改变其直接前驱指针域,使其指向该结点,并将该结点的指针域修改为指向其直接后继结点即可。当然,不管是链表还是顺序存储,所需空间与线性表长度都成正比。在链式存储的链表结构中,由于后一结点数据被存储在哪里,只有通过前一结点的指针域才知道,因此,访问时只能是逐个访问,而不能实现随机访问。

70.B

71.B

72.A本题考查的是对指针变量赋空值。在C语言中用NULL给指针赋空值,如p=NULL。当指针值为NULL时,指针不指向任何有效数据。由于NULL与整数0相对应,所以有下面三条语句等价:

p=NULL;p=0;p=’\\0’。

73.B本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出Y,然后将X的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将X的值减1,x=l,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出Y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以B正确。

74.D

75.D解析:本题主要考查关于if语句的说明,if后面圆括号中的表达式,可是任意合法的C语言表达式(如:逻辑表达式、关系表达式、算术表达式、赋值表达式等),也可以是任意类型的数据(如:整型、实型、字符型、指针型等。)

76.D自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,因此根据关系T中的有序组可知关系R与s进行的是自然连接操作,故本题答案为D)。

77.B

78.A执行x=x-=x-x语句可写成x=x-(x-x),可看出结果为10,故八选项正确。

79.B

80.Ac语言约定分号为一条语句的结束。因此for(i=0;i<4;i++,i++)for(k=1;k<3;k++);是完整的语句,对研nd();没有任何影响,最后一nff(”·’),执行一次。因此答案为A选项。

81.(1)错误:intA[100];

正确:floatA[100];

(2)错误:for(i=1;i<=n;i++)

正确:for(i=2;i<=n;i++)

82.voidfun(char*s,chart[]){ inti,j=0,n; n=strlen(s);/*遍历整个数组*/ for(i=0;i<=""p="">/*如果元素的ASCII值为偶数*/ if(s[i]%2==0) {/*将元素保存到t中*/ t[j]=s[i]; j++; } t[j]=-‘\0’;}要删除ASCII值为奇数的字符,也就是要保留ASCII值为偶数的字符,将ASCII值为偶数的字符保存到新字符串。所以本题的算法是对原字符串从头到尾进行扫描,找出ASCII值为偶数的字符并依次存入数组。2021年安徽省安庆市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下面程序的输出是()。A.17B.18C.23D.24

2.

有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。

structnode

{chardata;

structnode*next:

}a,b,*p=&a,*q=&b;

A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;

3.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的运行结果是()。A.852B.963C.741D.875421

4.以下不完整的程序拟实现调用getmax函数,找出4个变量中最大的一个:#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下选项若填入下划线处,不能实现上述功能的是()。

A.getmax(getmax(getmax(a,b),c),d)

B.getmax(getmax(a,b),getmax(c,d))

C.getmax(a,getmax(b,getmax(c,d)))

D.mx=(getmax(a,b),getmax(c,d))

5.和顺序栈相比,链栈有一个比较明显的优势是()。

A.通常不会出现栈满的情况B.通常不会出现栈空的情况C.插入操作更容易实现D.删除操作更容易实现

6.以下是if语句的基本形式:if

(表达式)语句,其中表达式A.A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式

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

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

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

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

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

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

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

9.视图设计一般有3种设计次序,下列不属于视图设计的是______。

A.自顶向下B.由外向内C.由内向外D.自底向上

10.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序执行后的输出结果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba

11.下列选项中,不属于数据管理员(DBA.职责的是()。

A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换

12.以下能正确定义一维数组的选项是()。

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

13.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系

14.设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈S的容量至少应该是()。

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

15.队和栈的主要区别是________

A.逻辑结构不同B.存储结构不同C.所包含的运算个数不同D.限定插入和删除的位置不同

16.

17.有下列程序:

main()

{inty=20;

do{y--;}while(--y);

phntf("%d\n",y--);

}

当执行程序时,输出的结果是()。

A.-1B.1C.4D.0

18.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。

A.存储媒体B.表现媒体C.传输媒体D.感觉媒体

19.有以下程序:main(){chara[]={‘a',‘b',‘c',‘d',‘e',‘f',‘g',‘h',‘\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n",i,j);}程序运行后的输出结果是A.9,9B.8,9C.1,8D.9,8

20.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。

A.模拟现实世界中不同事物之间的联系

B.强调模拟现实世界中的算法而不强调概念

C.使用现实世界的概念抽象地思考问题从而自然地解决问题

D.不强调模拟现实世界中的算法而强调概念

二、2.填空题(20题)21.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。

22.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。

23.现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

当编译连接通过后,运行程序T18时,输入Thank!,则输出结果是【】。

24.以下程序段用于构成一个简单的单向链表。请填空。

struetSTRU

{intx,y;

floatrate;

【】p;

}a,b;

a.x=0;a.y=0;a.rate=0;a.p=&b;

b.x=0;b.y=0;b.rate=0;b.p=NULL;

25.下列程序的输出结果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

26.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

27.数据模型按不同应用层次分成3种类型,它们是概念数据模型、【】和物理数据模型。

28.在面向对象的程序设计方法中,类的实例称为______。

29.在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有______个元素。

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

FILE*myf;longfl;

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

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

fclose(myf);

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

31.诊断和改正程序中错误的工作通常称为【】。

32.设函数findbig已定义为求3个数中的最大值,以下程序将利用函数指针调用findbig函数。请填空。

main()

{intfindbig(int,int,int);

int(*f)(),x,y,z,big;

f=【】。

scanf("%d%d%d",&x,&y,&z);

big=(*f)(x,y,z);

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

}

33.下面程序的运行结果是______。

voidswap(int*a,int*B)

{

int*t;

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

}

main()

{

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

swap(p,q);

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

}

34.下列程序的输出结果是______。

longfun5(intn)

(longs;

if((n==l)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

35.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是【】。

structnode

{chardata;

structnode*next;}a,b

36.注释说明了程序的功能,它分为【】注释和功能性注释。

37.若a是血型变量,且a的初值为4,则计算a+=a-=a*a表达式后a的值为______。

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

39.若a=10,b=20,则表达式!(a<b)的值是【】。

40.设有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。

三、1.选择题(20题)41.有以下函数:fun(char*p){returnp;}该函数的返回值是()。

A.无确切值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值

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

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

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

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

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

43.以下叙述中错误的是

A.在程序中凡是以“#”开始的语句行都是预处理命令行

B.预处理命令行的最后不能以分号表示结束

C.#defineMAX是合法的宏定义命令行

D.C程序对预处理命令行的处理是在程序执行的过程中进行的

44.有以下程序: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中偶数之和

45.以下程序的输出结果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}

A.33B.22C.26D.25

46.在结构化方法中,软件功能分解属于下列软件开发中的阶段是()。

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

47.下列关于c语言用户标识符的叙述中正确的是()。

A.用户标识符中可以出现下划线和中划线(减号)

B.用户标识符中不可以出现中划线,但可以出现下划线

C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头

48.下面不属于软件设计原则的是()。

A.抽象B.模块化C.自底向上D.信息隐蔽

49.以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

A.main(){int*p;fun(p);…}intfun(int*p){ints;p=&s;}

B.main{int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}

C.#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}

D.#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}

50.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法

A.对象B.数据结构C.数据流D.目标

51.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3%/4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若运行时从键盘上输入9876543210,则上面程序的输出结果是______。

A.a=9b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

52.设有定义语句:intx[6]={2,4,6,8,5,7),*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是()。

A.for(i=0;i<;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);

53.若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。

A.10011000B.10001100C.10101000D.10110000

54.以下不是面向对象思想中的主要特征的是

A.多态B.继承C.封装D.垃圾回收

55.软件需求分析阶段的工作,可以分为4个方面:需求获取、需求分析、编写需求规格说明书以及()。

A.阶段性报告B.需求评审C.总结D.都不正确

56.C语言运算对象必须是整型的运算符是______。

A.%=B./C.=D.<=

57.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;┆}程序在执行了c=&b;b=&a;语句后,表达式**c的值是()。

A.变量a的地址B.变量b中的值C.变量a中的值D.变量b的地址

58.有以下程序:#include<stdio.h>#include<string.h>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

59.关于结构化程序设计原则和方法描述错误的是()。

A.选用的结构只准许有一个入口和一个出口

B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C.不允许使用GOTO语句

D.语言中所没有的控制结构,应该采用前后一致的方法来模拟

60.设Y为整型变量,A=1,A的地址为EF01;B=2,B的地址为EF02;执行语句B=&A;Y=&b;后Y的值()。

A.1B.2C.EF01D.EF02

四、选择题(20题)61.设有以下函数:

A.

B.

C.

D.

62.下面四个选项中,均是不合法的用户标识符的选项是()。

A.

B.

C.

D.

63.以下程序段中的变量已正确定义:

程序段的输出结果是()。

A.**B.****C.*D.********

64.

65.

66.

67.

68.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。

A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统

69.链表不具有的特点是A.A.不必事先估计存储空间

B.可随机访问任一元素

C.插入和删除不需要移动元素

D.所需空间与线性表长度成正比

70.

71.

72.下列关于指针变量赋空值的说法错误的是

A.当赋空值的时候,变量指向地址为0的存储单元B.赋值语句可以表达为变量名=’\0’;

C.赋值语句可以表达为变量名=0;D.一个指针变量可以被赋空值

73.有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的输出结果是()。A.A.xyyxB.yyyyC.yyxxD.yxyx

74.

75.以下是if语句的基本形式:

if(表达式.语句

其中“表达式”()。

A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式

76.有三个关系R、S和t如下:由关系R和s通过运算得到关系T,则所使用的运算为()。

A.笛卡儿积B.交C.并D.自然连接

77.

78.设x为int型变量,则执行以下语句后,x的值为()。x=10;x=x-=x-x;

A.10B.20C.40D.30

79.(33)分布式数据库系统不具有的特点是______。

A.分布式

B.数据冗余

C.数据分布性和逻辑整体性

D.位置透明性和复制透明性

80.以下程序段中的变量已正确定义。

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

for(k=1;k<;3;k++);prinff(”*”);该程序段的输出结果是()。

A.*B.****C.**D.********

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据整型形参n,计算如下公式的值:A1=1,A2=1/(5+A1),A3=1/(5+A2),…,An=1/(5+A(n-1))例如,若n一10,则应输出0.192582。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个

温馨提示

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

评论

0/150

提交评论