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

下载本文档

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

文档简介

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

一、单选题(20题)1.输入序列为(A,B,C,D),不可能得到的输出序列是______.

A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)

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

A.表达式“sizeof(FILE*)==sizeof(int*)”的值为真

B.文件指针的值是一个整数,它的值一定小于文件字节数

C.文件指针的值是所指文件的当前读取位置

D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符

3.具有10个叶子结点的二叉树中有()个度为2的结点。

A.8B.9C.10D.11

4.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)执行后的输出结果是()。A.5,5B.5,11C.11,11D.11,5

5.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式输出数组右上半三角

1234

678

1112

16

则在程序下划线处应填入的是()。

A.i-1B.iC.i+1D.4一i

6.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。A.log2+1

B.log2(n-1)

C.log2n

D.log2(n+1)

7.若有定义“inta;longb;doublex,y;”,则以下选项中正确的表达式是()。

A.a=x<>yB.a%(int)(x-y)C.(a*y)%bD.y=x+y=x

8.下列对于线性链表的描述中正确的是()

A.存储空间不一定是连续,且各元素的存储顺序是任意的

B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

9.下列说法不正确的是()。

A.图的遍历是从给定的源点出发每一个顶点仅被访问一次

B.图的深度遍历不适用于有向图

C.遍历的基本算法有两种:深度遍历和广度遍历

D.图的深度遍历是一个递归过程

10.

11.有下列程序:程序执行后的输出结果是()。A.1,0B.1,1C.1,4D.4,4

12.在执行()操作时,需要使用队列做辅助存储空间。

A.查找哈希(Hash)表B.深度优先搜索网C.前序(根)遍历二叉树D.广度优先搜索网

13.有以下程序

main()

{

intn[3],i,j;

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

n[i]=0;

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

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

n[j]=n[i]+1;

printf("%d\n",n[1]);

}

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

B.1

C.0

D.3

14.下列不属于过程设计工具中图形工具的是()。

A.N—SB.PADC.程序流程图D.PDL

15.有以下程序

main()

{inti;

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

{if(i++%5==0)

if(++i%8==0)printf("%d",i);

}

printf("\n");

}

执行后的输出结果是

A.5B.24C.32D.40

16.设初始输入序列为1,2,3,4,5,利用一个栈产生输出序列,下列()序列是不可能通过栈产生的。

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

17.下列数据模型中,具有坚实理论基础的是()。

A.关系模型B.网状模型C.层次模型D.以上三个都是

18.输入序列为ABC,可以变为CBA时,经过的栈操作为()。

A.push,pop,push,pop,push,pop

B.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,pop

D.push,pop,push,push,pop,pop

19.以下有关scanf函数的叙述中错误的是()。

A.在scanf函数的格式字符前既可以加入正整数指定输入数据所占的宽度,也可以对实数指定小数位的宽度

B.scanf函数有返回值,其值就是本次调用scanf函数时正确读入的数据项个数

C.scanf函数从输入字符流中按照格式控制指定的格式解析出相应数据,送到指定地址中

D.在scanf函数中的格式控制字符串不会输出到屏幕上

20.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。A.switch(x)

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

二、2.填空题(20题)21.以下程序的输出结果是【】。

main()

{charc=′z′;

printf("%c",c-25);}

22.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。

23.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。

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

structNODE

{intk;

structNODE*link;

};

main()

{structNODEm[5],*p=m,*q=m+4;

inti=0;

while(p!=q){

p->k=++i;p++;

q->k=i++;q--;

}

q->k=i;

for(i=0;i<5;i++)printf("%d",m[i].k);

printf("\n");

}

25.能把计算机处理好的结果转换成为文本、图形、图像或声音等形式并输送出来的设备称为【】设备。

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

27.以下程序的输出结果是()。#definePR(ar)printf("ar=%d”,ar)main(){intj,a[]={1,8,3,7,6,13,17,15},*p=a+5;for(j=3;j;j--)switch(j){case1:case2:PR(*p++);break;case3:PR(*(--p));}}

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

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

printf("%d\n",fun(a,B)/m);

}

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

intn='c':

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("moming");

case'd':printf("class");

}

30.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是【】。

intw[10]={23,54,10,33,47,98,72,80,61),*p=w;

31.多媒体计算机所用的CD-ROM是【】。

32.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

33.在结构化分析使用的数据流图(DFD)中,利用【】对其中的图形元素进行确切解释。

34.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。

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

36.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

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

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

structst

{charname[20];doublescore;};

main()

{structstex;

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

}

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

main()

{inta=2,b=4,c=6;

int*p1=&a,*p2=&b,*p;

*(p=&c)=*p1*(*p2);

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

}

40.以下程序的功能是将字符串s中所有小写字母'a'删去,请填空。

#include<stdio.h>

main()

{chars[]="absuWWUDJFKFLaaakdK";

inti,j;

for(i=j=0;s[i]!='\0';i++)

if()

s[j++]=s[i];

s[j]='\0';

printf("%s",s);

}

三、1.选择题(20题)41.以下不正确的定义语句是()。

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

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

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

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

42.软件需求分析一般应确定的是用户对软件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

43.设有如下定义,则执行表达式(nFa>b)&&(n=c>d)后,n的值为______。inta=1,b=2,c=3,d=4,m=2,n=2;

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

44.若整型变量a、b、c、d中的值依次为1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

45.拥有PC机并以拨号方式接入网络的用户需要配置()

A.CD-ROMB.ModemC.电话机D.鼠标

46.命令“DIRA:*.*/W”的功能是()

A.宽行显示A盘当前目录的所有文件

B.宽行显示A盘所有目录的所有文件

C.宽行显示A盘的所有目录

D.显示A盘中的文件名,每满一屏后停顿一下

47.设变量已正确定义,则下列能正确计算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

48.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()

A.不确定的值

B.形参p中存放的值

C.形参p所指存储单元中的值

D.形参p的地址值

49.下列关于线性链表的描述中正确的是()。

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且各前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

50.下列选项中不属于软件生命周期开发阶段任务的是()。

A.软件测试B.概要设计C.软件维护D.详细设计

51.设函数fun的定义形式为voidfun(charch,floatx){…}则以下对函九fun的调节器用语句中,正确是

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8):

D.fun(32,32);

52.有定义语句:ihtb;charc[10];,则正确的输入语句是

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

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

53.数据的存储结构是指______。

A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据

54.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序运行后的输出结果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

55.若有以下定义和语句:inta[]={1,2,3,4,5,6,7,8,9,10),*p=a;则值为3的表达式是______。

A.P+=2,*(p++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p

56.设x的值为5,则表达式(++x)+(++x)+(++x)的值是()

A.24B.20C.15D.25

57.以下叙述中错误的是

A.C语言中对二进制文件的防问速度比文本文件快

B.C语言中,随机文件以二进制代码形式存储数据

C.语句FILEfp;定义了一个名为fp的文件指针

D.C语言中的文本文件以ASCII码形式存储数据

58.以下程序段执行后,a的值为______。int*p,a=10,b=1;p=&a;a=*p+b;

A.11B.12C.10D.编译出错

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

A.在面向对象的程序设计中,各个对象之间具有密切的联系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小

D.上述三种说法都不对

60.结构化程序设计主要强调的是

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

四、选择题(20题)61.在下列选项中,哪个不是一个算法一般应该具有的基本特征()。

A.无穷性B.可行性C.确定性D.有穷性

62.

63.

64.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。A.A.&B.^C.||D.~

65.设有如下定义:char*aa[2]={"abcd","ABCD"};则以下说法中正确的是()。

A.aa数组成元素的值分别是"abcd"和ABCD"

B.aa是指针变量,它指向含有两个数组元素的字符型一维数组

C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D.aa数组的两个元素中各自存放了字符’a’和’A’的地址

66.下列说法中不正确的是

A.C语言规定,不能在一个函数的内部再定义函数

B.在没有声明函数返回值类型的情况下,默认的函数返回值类型为int型

C.函数的类型可以是整型、实型、字符型,但不能是指针型

D.函数可以没有形参,但函数名后的一对圆括号不能省略

67.有以下程序:

#defineN20

fun(inta[],intn,intm)

{inti;

for(i=m;i>n;i--)a[i+1]=a[i];

returnm;

}

voidmain()

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,0,N/2);

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

}

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

A.10234B.12344C.12334D.12234

68.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。

A.4B.16C.32D.52

69.

70.下列程序的输出结果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}

A.123B.234C.223D.233

71.设有定义:

inta=1,b=2,C=3;

以下语句中执行效果与其他三个不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

72.

73.设x=011050,则x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

74.用树形结构来表示实体之间联系的模型称为()。

A.关系模型B.层次模型C.网状模型D.数据模型

75.最简单的交换排序方法是()。A.快速排序B.选择排序C.堆排序D.冒泡排序

76.

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

main

{inta=1,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

77.以下选项中,合法的一组c语言数值常量是()。

A.12.0Xa234.5e0

B.028.5e…30xf

C.1774el.50abe

D.0x8A10,0003.e5

78.

79.有以下程序:

程序输出结果是()。

A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错

80.数据库管理系统是()。

A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:判断字符ch是否与sir所指字符串中的某个字符相同;若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.N名学生的成绩已在主函数中放人一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。

例如,若学生的成绩是:8576698591726487,则平均分应当是:78.625。注意:部分源程序在文件PROGl.C中。

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

参考答案

1.D

2.A“sizeof(FILE*)=4”,因为“file*”为指针,指针变量占用字节数为4,所以“sizeof(int*)=4”,选项A正确。文件指针的值是地址,是一个十六进制数,它的值不一定小于文件字节数,因此选项B错误。文件指针是所指文件的当前读取位置,而不是文件指针的值,因此选项C错误。“intfscanf(FILE*Stream,constchar*format,[argument...]);”,fScanf函数可以向任意类型的文件写入任意数量的数据(不能超过系统的缓冲区),写文件先写入缓冲区,最后一起写入文件,因此选项D错误。故本题答案为A选项。

3.B

4.B子函数fun(intx,inty),将变量m和i声明为局部静态变量,因此第l次调用主函数后,局部静态变量m和i的值为5和3,第l次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。

5.B

\n本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。

\n

6.A

7.BC语言中没有“<>”运算符,所以A选项错误。运算符“%”的左右两个操作数必须为整型数据,所以B选项正确。表达式“a*y”的结果为double型,所以C选项错误。不能将值赋给像“x+y”这样的表达式,所以D选项错误。故本题答案为B选项。

8.A本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。\n在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。故本题答案为A。

9.C

10.D

11.A&&是逻辑与运算符,x、y的取值为4、2,两个都是非零值,所以x&&y的结果为真,值为1;&是位运算符,x的二进制为0100,y的二进制为0010,0100&0010的结果为0。本题答案为A选项。

12.D

13.D初始时定义一个大小为3个一维整型数组,第一个for语句是对数组赋初值,每个值都为0。后面是一个for语句的嵌套调用,外层的循环变量i的取值为[0,2],内层循环变量的取值范围为[0,2]。最初外层的循环变量i=0,内层的循环变量j取值从0到2,计算n[j]=n[0]+1,得到n[0]=1,n[1]=1,n[2]=1。外层for语句的循环变量为1时,内层的循环变量j取值从0到2,计算n[j]=n[1]+1,得到n[0]=2,n[1]=2,n[2]=2。外层for语句的循环变量为2时,内层的循环变量j取值从0到2,计算n[j]=n[2]+1,得到n[0]=3,n[1]=3,n[2]=3。最后的输出结果为3。

14.D\n常用的过程设计工具有图形工具(程序流程图、N-S图、PAD图、HIPO)、表格工具(判定表)、语言工具(PDL)。

\n

15.C解析:当for循环执行到第30次时,i的值为30能被5整除,然后继续执行两次if语句,i经过两次自加1运算,值变为32,能被8整除,故此时第一次执行'printf('%d',i);'语句,即输出32。

16.B

17.A解析:在层次模型和网状模型的系统研究和数据库设计中,其性能和质量主要决定于设计者的经验和技术水平,缺乏一定的理论指导。关系模型有坚实的理论基础,它以数学理论为基础,从而避免了层次模型和网状模型系统中存在的问题。

18.B

19.A在scanf函数的格式字符前可以加入一个正整数指定输入数据所占的宽度,但不可以对实数指定小数位的宽度,选项A错误,其他选项正确。故本题答案为A选项。

20.C

21.aa解析:'z'的ASCII码值为122,经过c-25运算后,得97,以字符形式输出是a。

22.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本题考查基本逻辑表达,“整数x的绝对值大于5”时值为“假”,即整数x的绝对值小于等于5,也就是整数x要大于等于-5且要小于等于5。这里“且”用“与(&&)”表示,所以C语言表达式为:(x>-5)&&(x<5)。

23.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。

24.1343113431解析:初始化时,指针p指向m[0]的地址,指针q指向m[4]的地址,p!=q满足循环条件,执行循环语句,得到m[0].k=1,m[4].k=1,此时i=2,指针p指向m[1]的地址,指针q指向m[3]的地址,p!=q满足循环条件,执行循环语句,得到m[1].k=3,k=3,此时i=4,指针q指向m[2]的地址,p==q不满足循环条件,则退出循环,m[2].k=4。所以最后输出为13431。

25.输出输出

26.非线性结构非线性结构

27.ar=6ar=6ar=13ar=6ar=6ar=13解析:通过*p=a+5将指针P指向a[5],第1次循环,i=3时,switch(3),执行case3,*(-p)-a[4]=6,所以输出ar=6;第2次循环,j=2时,switch(2),执行case2,(*p++)是先引用a[4]的值6,输出ar=6,再将指针P移位指向a[5];第3次循环,j=1时,switch(1),执行case1,case1后没有break语句,接着执行case2,(*p++)是先引用a[5]的值13,输出ar=13,再将指针P移位指向a[6]。

28.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。

29.morningclassmorningclass解析:本题考查了两个知识点:①“++、--”运算后缀形式是先使用变量原来的值,使用完后再使其增1或减1;②在switch语句中,当n=\'c\'时,执行“case\'c\':”,输出morning;因为此句中没有break语句,因此接着执行'case\'d\':”,输出class,最终输出结果为morningclass。

30.p[5]或*(p+5)p[5]或*(p+5)解析:98是数组w的第5个元素(最开始的为第0个),而通过*p=w已经将p指向了数组w,要想不移动指针p而引用98,可以有以下两种写法:p[5]、*(p+5)。

31.只读光盘只读光盘

32.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。

33.数据字典或DD数据字典或DD解析:数据流图用来对系统的功能需求进行建模,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据词典(DataDictionary,DD)用于对数据流图中出现的所有成分给出定义,它使数据流图上的数据流名字、加工名字和数据存储名字具有确切的解释。

34.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。

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

36.概念(或概念级)概念(或概念级)

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

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

39.88解析:本程序定义了3个指针变量p1、p2、p,并且将,、b的地址分别赋给P1、p2,则*p1=a=2,*p2=b=4,所以表达式*p1*(*p2)的值是8。在赋值语句的左边是*(p=&c),即使指针p指向了变量c,因而*(p)代表了c的存储单元,赋值语句“*(p=&c)=*p1*(*p2);”是把整数8赋给了变量c。

40.s[i]!='a's[i]!='a'解析:本题是要将字符串s中所有小写字母'a'删去,所以if语句的判断条件应该是字符串s中的字符和字符'a'不相同的时候,就把它仍然存在原来的数组中,若是和字符'a'相同,就不再保存它。

41.B解析:在一维数组中要注意的是下标常量表达式的值必须是大于等于零,并且小于自身元素的个数,选项B)的下标不是整数,所以错误。

42.DD。【解析】软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,使用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。

43.B

44.A解析:条件表达式的形式如下:表达式1?表达式2:表达式3,所以本题条件表达式a<b?a:c<d?c:d应该理解为a<b?a:(c<d?c:d),首先求出条件表达式c<d?c:d的值等于2,再求条件表达式a<b?a:2的值,由于a-1<b-4成立,所以上述条件表达式的值等于1。

45.B

46.A

47.D解析:要正确计算函数f=n!,由n!的数学定义可知n!=n*(n-1)*(n-2)*……*1。在选项A)中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,……,n。最后计算f=n!=O,所以选项A)不正确。在选项B)中,f的初值为1,在for循环语句中,f依次乘以1,2,3,……,(n-1)。最后计算得到f=(n-1)!,所以选项B)不正确。在选项C)中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项C)不正确。在选项D)中,f的初值为1,在for循环语句中,f依次乘以n,n-1,n-2,……,2。最后计算f=n!,所以选项D)正确。

48.C解析:本题考核的知识点是函数的返回值.函数的返回值应该为return后面的表达式的值,在本题中的表达式为*p,*p指的是形参p所指存储单元中的值,所以,4个选项中选项C符合题意。

49.A解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。

50.C解析:软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是C。

51.D解析:本题考查了函数的定义。题目中定义的函数fun()有两个参数,一个是字符型变量ch,另一个是浮点型变量x,函数类型是void即无返回值。选项A调用fun的第1个参数是字符串常量与字符变量不匹配,所以不正确。选项B是有返回值函数的调用形式,不正确。选项C的第1个参数是错误的字符常量,字符常量是用单引号括起来的一个字符(是转义字符可能有多个字符),故也不正确。选项D使用两个整型常量调用fun这在C语言中是允许的。因为整型到字符型可以自动转换,整型到浮点型也可以自动转换。故应该选择D。

52.B解析:定义b为整型数,c为字符数组,所以在输入语句的地址表列中,要在b前加上取址符“&”,而c就是字符数组的首地址,所以不用加上取址符&。

53.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。

54.B解析:主函数中先定义了一个整型变量a,一个字符变量c并赋初值10,一个浮点型变量f并赋初值100.00和一个double型x,接着执行a=f/=c*=(x=6.5),该语句从右向左计算,先把6.5赋值给x(该括号表达式的值也为6.5),此时x的值变为6.5,然后执行c*=(x=6.5)相当于执行c=c*(x=6.5),此时c的值为65,接着向左执行f/c*=(x=6.5),语句相当于执行f=f/c,所以f的值为100/65≈1.538。接着向最右边执行“a=f”,由于a是整型变量,所以a最后去f的整数部分为1。程序最后输出的a、c、f和x的值(f和x只保留小数点后面1位)分别为1、65、1.5、6.5。所以,4个选项中选项B符合题意。

55.A解析:引用—个数组元素,可以用:(1)下标法,如a[i]形式;(2)指针法,如*(a+i)或*(p+i)。数组的下标从0开始,值为3的数组元素是a[2]。B、C的内容为a[3],D将[2]前自加,结果为4。

56.A

57.C解析:本题考查了C语言中文件的一些基本概念。定义文件类型指针变量的一般形式为:

FILE*指针变量名;

因此选项C是错误的,应该选择C。

58.A解析:p是指向整型变量的整型指针,并赋值为指向a,*p表示指针p所指向单元的内容,即为a,等于10,a=*p+b=10+1=11。

59.C解析:在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项A与B错误,选项C正确。

60.B

61.A作为一个算法,一般应具有以下几个基本特征:可行性、确定性、有穷性、拥有足够的情报。本题答案为A)。

62.C

63.B

64.B解析:按逻辑位运算的特定作用主要有3点:①用按位与运算将特定位清0或保留特定位:②用按位或运算将特定的位置设置为1;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。

65.D

66.C本题主要考查函数定义的基本知识。函数是C语言的基本组成部分,用来完成子程序的功能。一个完整的C程序包括一个main()函数(主函数)和若干个其他函数,C程序从main()函数开始执行。

在C语言中,函数定义是平行的,函数不能嵌套定义,即一个函数不能在另一个函数内部定义,函数之间没有从属关系。函数定义表达的一般形式为:

<函数返回值类型>函数名(<类型名><形式参数1>,<类型名><形式参数2>,……)

{

函数体变量定义部分;

函数体语句部分;

}

其中,<函数返回值类型>部分可以省略,默认为整型。函数返回值类型可以为各种整型、字符型、实型,还可以是指针类型。这里需要注意,在定义没有形参的函数时,函数的括号不能没有,如果没有,就不是函数了,很有可能被当成变量处理。

67.D函数的功能是将某个间隔内的数据向后移动一位,m=5,将a[5]赋给a[6],a[4]赋给a[5],……;a[1]赋给a[2],最后i--,i=0,不满足i>0,退出循环,所以a[0],a[1]的值不变。

68.C本题主要考查逗号表达式。逗号是一个特殊的运算符,它具有所有运算符中最低的优先级。在C语言中,用它可以将两个表达式连接起来,逗号表达式的一般表现形式为:

表达式1,表达式2,…,表达式n

逗号表达式的求解过程是:先求解表达式1,再求解表达式2,依次往后计算,整个逗号表达式的值是最后一个表达式的值,如“3+5,5+6”的值是11。

在本题中,逗号表达式为i=4,j=16,k=32,根据上面的分析,计算逗号表达式得到的结果为k=32,最后将逗号表达式的结果赋值给变量x,那么变量x的值为32。因此,本题的正确答案选C。

69.A

70.D本题考查自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“++”出现在变量之前,表示先使用变量的值加l,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&&’’两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“||”只要一个值为1,值就为1。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;1与任何数都为

温馨提示

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

评论

0/150

提交评论