2022年安徽省滁州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2022年安徽省滁州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2022年安徽省滁州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2022年安徽省滁州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2022年安徽省滁州市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

2022年安徽省滁州市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有定义语句intb;charc[10];,则正确的输入语句是______。A.scallf("%d%s",&b,&c);

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

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

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

2.以下不能作为合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

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

A.C程序中注释部分可以出现在程序中任意合适的地方

B.花括号"{"和"}"只能作为函数体的定界符

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.分号是C语句之间的分隔符,不是语句的一部分

4.以下不能输出字符A的语句是(注:字符A的ASCII值为65,字符a的ASCII值为97)()。

A.printf(“%c\n”,‘a’-32);

B.printf(“%d\n”,‘A’);

C.printf(“%c\n”,65);

D.printf(“%c\n”,‘B’-1);

5.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出的结果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

6.若有说明:inta[][3]={0,0};则不正确的叙述是()。

A.数组a的每个元素的初值都是0

B.数组a的第一维大小为1

C.数组a的行数为1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

7.以下程序的主函数中调用了在其面前定义的fun函数#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}则以下选项中错误的fun函数首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

8.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。

A.67,DB.B,CC.C,DD.不确定的值

9.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

10.线性表是具有n个()的有限序列。

A.字符B.数据元素C.数据项D.表元素

11.以下说法正确的是()。

A.C语言只接受十进制的数

B.C语言只接受八进制、十进制、十六进制的数

C.C语言接受除二进制之外任何进制的数

D.C语言接受任何进制的数

12.假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n,T(1)=1表示,则该算法的时间复杂度为()

A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)

13.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)当执行程序时,输出的结果是()。A.-1B.1C.4D.0

14.设有条件表达式:(EXP)?i++:j--,则以下表达式中与(E)(P)完全等价的是A.(EXP==0)B.(EXP!=0)C.(EXP=-1)D.(EXP!=1)

15.设x和y均为bool量,则x&&y为真的条件是()。

A.它们均为真B.其中一个为真C.它们均为假D.其中一个

16.

17.在顺序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找关键码12需做()次关键码比较。

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

18.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。

A.概要设计B.详细设计C.可行性分析D.需求分析

19.

20.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

二、2.填空题(20题)21.以下程序的功能是计算。补足所缺语句。

longf(intn)

{inti;longs;

s=【】;

for(i=1;i<=n;i++)s=【】;

returns;

}

main()

{longs;intk,n;

scanf("%d",&n);

s=【】;

for(k=0;k<=n,k++)s=s+【】;

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

}

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

23.设C语言中,一个int型数据在内存中占两个字节,则int型数据的取值范围为【】。

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

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

25.软件测试中路径覆盖测试是整个测试的基础,它是对软件【】进行测试。

26.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

27.下面程序的功能是输出数组中最大的数,由a指针指向该元素。请填空。

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b;

for(【】)

if(*a<*b)a=b;

printf("%d",*a);

}

28.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。

29.设有以下定义和语句,则*(*(p+2)+1)的值为【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

30.下面程序的输出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

printf("%d\n"k);}

31.需求分析的最终结果是产生【】。

32.函数compare的功能是比较两个字符串是否相等,若相等则函数返回1,否则返回o,请填空。

compare(chars[],chart[])

{

inti=0

while(s[i]==t[i]&&【】)i++;

return(【】?1:0);

}

33.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;

34.设有定义“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【】a。

35.子程序通常分为两类:【】和函数,前者是命令的抽象,后者是为了求值。

36.已知字符'A'的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是【】。

#include<stdio.h>

main()

{chara,b;

a=getchar();seanf("%d",&b);

a=a-'A'+'0';b=b*2;

prinff("%c%c\n",a,b);

}

37.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。

#defineN4

voidrotate(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=______;______=a[N-1][i];}

}

38.一个模块直接调用的其他模块的模块个数称为______。

39.有以下语句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式输出n1和n2的值:

n1=10

n2=20

每个输出行从第一列开始,请填空。

40.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,队列属于______。

三、1.选择题(20题)41.需求分析阶段的任务是确定()

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

42.不合法的main函数命令行参数表示形式是

A.main(inta,char*c[])

B.mmn(intarc,char**arv)

C.main(intargc,char*argv)

D.majn(intargv,char*atgc[])

43.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序执行后的输出结果是()。

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

44.以下选项中不能作为合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0

45.在下列几种排序方法中,要求内存量最大的是______。

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

46.若有定义:inta=4,b=5;floatx=3.4,y=2.1;,则下列表达式的值为()

(float)(a+b)/2+(int)×%(int)y

A.5.5B.55C.5.500000D.55.00000

47.设有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是()

A.$8B.@10C.$9D.@9

48.设有以下程序段;inta[5]={0},*p,*q;p=a;q=a;则合法的运算是______。

A.p+qB.p-qC.p*qD.p%q

49.下面程序输出的结果是()。main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=-i;elseif(ok2)x=10;x=1;printf("%d\n",x);}

A.-1B.0C.1D.不确定的值

50.有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序运行后的输出结果是______。

A.15B.16C.12D.59

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

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

52.下列程序的输出结果是()。

main

{

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

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

}

A.3B.3.2C.0D.3.07

53.fwrite函数的一般调用形式是

A.fwrite(buffer,count,size,fp);

B.fwrite(fP,size,count,buffer);

C.fwrite(fp,count,size,buffer);

D.fwrite(buffer,size,count,fp);

54.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.R×SC.RNSD.RUS

55.微型计算机的性能主要取决于______。

A.内存B.硬盘C.中央处理器D.显示卡

56.以下程序的输出结果是_______。main(){inta=-1,b=1,k;if(++a<0)&&!(b-<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.00

57.下列不是合法的C语言语句是()。

A.a=5B.{inti;i++;}C.;D.{;}

58.若有以下定义和语句,则输出结果是______。char*s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));

A.4B.5C.9D.10

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

A.fun函数无返回值

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

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

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

60.下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是()。#include<stdio.h>main(){chars1[]="chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]==s2[i]&&i<7)__________________;}

A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

四、选择题(20题)61.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

62.阅读下面程序,则执行后的结果是()。

A.tomeetme

B.tmem

C.oete

D.tome

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

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

64.已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。

A.A.A,BB.A,68C.65,66D.65,68

65.

66.

67.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

68.按照c语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.连接符B.大写字母C.数字字符D.下划线

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

A.3B.5C.7D.9

70.

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

A.详细设计B.运行维护C.可行性研究D.需求分析

72.有以下程序:

程序的运行结果是()。

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

73.

74.有以下程序

#include<stdio.h>

#defineP24;

#defineS(x)P*x+x;

main()

{inta=2,b=2;

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

}

程序的运行结果是

A.程序编译运行时报错,无法输出B.54

C.96D.100

75.

有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。

structnode

{intdata;structnode*next;)*p,*q,*r;

现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是()。

A.p->next=q->next;

B.P-next=P->next->next;

C.p->next=r;

D.p=q->next;

76.在软件开发中,需求分析阶段产生的主要文档是()。

A.软件需求规格说明书B.数据库说明书C.集成测试计划D.概要设计说明书

77.

78.

79.

有下列程序段:

intn,t=1,S=0;

scanf("%d",&n);

do{s=s+t;t=t-2;while(t!=n);

为使此程序段不陷入循环,从键盘输入的数据应该是()。

A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

80.有以下程序则输出结果是()。A.1245B.1256C.1278D.1267

五、程序改错题(1题)81.以下程序可把输入的十进制数以十六进制数的形式输出。请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹析下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数fun(),它的功能是将ss所指字符串中所有下标为奇数的字母转换为大写字母(若该位置上不是字母,则不转换)。例如,若输入“abc4Efg”,则应输出“aBc4EFg”。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.B解析:scanf函数中的“格式控制”后面应当是地址,而不是变量名。对于变量,通过地址运算符“&”求出内存中的地址;对于数组c[10],数组名c即为数组在内存中的地址。

2.A字符常量是使用单引号标注的单个字符,选项A错误;选项B属于浮点数常量,正确;选项C属于转义字符常量,正确;选项D属于转义字符,代表八进制数011的ASCII值的字符,正确。本题答案为A选项。

3.A解析:/*与*/之间的信息称为注释信息,在C语言中,允许在任何能够插入空格符的位置插入注释,但C语言的注释不能进行嵌套,故选项A正确:在C语言中,函数体是从花括号{开始,到花括号}结束。但没有规定花括号{和}只能作为函数体定界符,故选项B错误;选项C中前半句是正确的,C程序由一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数,比如主函数main()就不能由用户来命名,故选C不正确;在C语言中明确规定每条语句以分号;结束,分号是语句不可缺少的一部分,故选项D不正确。所以,4个选项中选项A符合题意。

4.BB选项输出的格式为%d,即整型格式,所以输出字符‘A’的ASCII值65,而不是字母A。因为大写字母比其对应的小写字母的ASCII值小32,所以A选项正确。字符‘A’的ASCII值是65,以%c格式输出可以输出字母A,所以C选项正确。因为字符‘A’的ASCII值比字符‘B’的小1,所以D选项正确。故本题答案为B选项。

5.B本题考查实参与形参调用,从实参传递到形参时,只是数值的传递,调用函数中值的改变不会影响主函数中的值,因此原样输出。

6.D解析:本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点:①在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。②二维数组第一维的大小由下列规则确定;当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加1。

7.A由题可知fun的参数为变量,而a[15]为常量,所以答案为A。

8.A解析:由于字符“5”和“3”的ASCII码相差为2,所以ch1经过运算后的值应为65+2=67;同理,ch2经过运算后的值应为65+3=68,即是字符“D”。

9.A

10.B

11.BC语言可以使用格式控制符“%d”“%u”等接受十进制的数,使用“%o”接受八进制的数,使用“%x”接受十六进制的数。本题答案为B选项。

12.B

13.A本题考查do-while循环。当--y是0(即y是o)时结束循环,输出--y,先将y的值减1再输出Y的值。

14.B解析:在C语言中,逻辑表达式的结果只有两种情况“tree”和“false”。如果要把一个逻辑值看成一个整数的话,true等于1;false等于0。如果要把一个整数看成一个逻辑值的话,非0等于true:0等于false。由此可见,如果EXP表达式的结果为0的话;(EXP)为假:(EXP==0)为真;(EXP!=O)为假;(EXP==1)为假;(EXP!=1)为真。如果EXP表达式的结果为非0的话:(EXP)为真:(EXP=0)为假;(EXP!=0)为真;(EXP=1)结果不定;(EXP!=1)结果不定。综上所述,只有(EXP!=0)完全等价于表达式(EXP)。故应该选择B。

15.A

16.C

17.B

18.D解析:在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为D。

19.B

20.A由题意可知,文件abc.txt中存放了6个整数。其中第1个表示后续数据的个数。要将最后5个数据读入数组data中,需要读取数据的个数为5,所以首先调用fscanf函数,将5读入整型变量n中;接着通过for循环,i分别取值0~n-1,调用fscanf函数将n个整数读入data[0]~data[n-1]中。故本题答案为A选项。

21.1s*i0f(k)

22.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,输出结果为3。

23.-32768~32767

24.21

25.结构结构解析:路径测试是白盒测试方法中的—种,它要求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。

26.静态分析静态分析解析:程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

27.a=sb=s+1;b-s<sizeof(s)/sizeof(s[0]);b++a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++解析:题目要求输出数组中最大的数,所以要遍历整个数组,而指针a用来指向最大数,所以循环变量只有使用指针b。for初始化时,应该先让a指向第1个数,然后让b指向第2个数,故循环初始化语句应该为a=s,b=s+1或其他等价表达式。因为要使b遍历整个数组,故循环条件应该为b-s<sizeof(s)/sizeof(s[0])或其他等价表达式。最后每次循环应该让b往后移动一位,故for的第3条语句应该是++b、b++或其他等价形势。所以本题应填a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++或其他等价语句。

28.软件工程学软件工程学

29.6060解析:程序中定义a是一个3行2列的二维数组,p是指向两个元素的一维数组指针,并让p指向二维数组a的首行。则代码*(*(p+2)+1)中的p+2指向二维数组a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

30.1212解析:本题通过第一个for循坪将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

31.需求规格说明书需求规格说明书解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。

32.s[i]&&t[i]或s[i]!='\0'&&t[i]!='\0'!(s[i]-t[i])s[i]&&t[i]或s[i]!='\\0'&&t[i]!='\\0'\r\n!(s[i]-t[i])解析:while后括号中的判断条件为两个字符串相同位置上的字符相等,且两个字符串都没有结束,则循环。故第一空应该填s[i]&&t[i]或其他等价表达式。如果两个字符串完全相等,则while循环退出时s[i]和t[i]的值同时为0,否则s[i]和t[i]不相等。故表达式s[i]-t[i]在字符串相等时为0,不相等时为非0,所以第二空应该填!(s[i]-t[i])就满足题意了。

33.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。

34.->->解析:若结构体变量abc有成员a,并有指针p_abc指向结构变量abc,则引用变量abc成员a的标记形式有abc.a和p_abc->a。

35.过程过程

36.1B1B解析:本题输入B33,字符'B'被输入给字符变量a,33赋给b,执行a=a-'A'+'0';得到a的值'1';执行b=b*2;得到b值66,最后以字符型输出为1B。

37.a[0][i]b[i][0]a[0][i]\r\nb[i][0]解析:因为数组a[N][N]的第0行表示为a[0][n](n=0~3),而数组b[N][N]的最后一列表示为b[n][N-1)(n=0~3),所以前一空应该填a[0][i]。又因为数组a[N][N]的最后一行表示为a[N-1)][n](n=0~3),而数组b[N][N]的第0列表示为b[n][0](n=0~3),所以后一空应该填b[i][0]。

38.扇出扇出解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。

39.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根据输出结果,可以确定“格式控制”为n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原样输出的字符,“%d”是按十进制整数输出,“\\n”是转义字符,用于输出回车换行。

40.线性结构线性结构解析:队列有且只有一个根结点,而且每一个结点最多有一个前件,也最多有一个后件,满足线性结构的条件,所以属于线性结构。

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

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

42.C解析:main()函数可以带有参数,并且参数只能有两个,第一个参数类型为整型,用来记下命令行的参数个数,第二个参数为一个字符型指针数组,或字符型二级指针变量(指向一个数组,数组元素又是一个一级字符指针),其各个元素用来记下从命令行各参数字符串的首地址.故本题只有C选项不符合要求。所以,4个选项中C为所选。

43.B解析:本题中有一个陷阱,很多考生会根据程序的书写格式来判断:while循环的循环体为printf('y=%d\\n',y);语句。其实while的循环体是一条空语句,即y--后面的那个分号就是while的循环体。所以本题只要弄清楚表达式y--何时为“假”,即等于0,就能得出结果了。因为--运算符是后缀形式,所以表达式y--的值是y自减之前的值,即y等于。时,表达式y--就等于0了。但此时的y还要被减1,所以循环结束后,y的值为-1。故应该选择B。

44.B解析:本题考查的是C语言中实型常量的指数表示法。实型常量的指数表示法是用字母e(或E)将一个实数的小数部分和指数部分分隔开。字母e(或E)之前是小数部分,之后是指数部分,这两部分都不能省略,且指数部分必须为整数。故选项B不正确。所以,4个选项中选项B符合题意。

45.D解析:快速排序的基本思想是,通过一趟排序将排序记录分割成独立的两部

分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继

续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依

次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整

个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩

下的于表采用同样的方法,直到表空为止;归并:排序是将两个或两个以上的有序表组合

成一个新的有序表。

注意:各种排序方法实现过程及实现机制。

46.C解析:在计算(float)(a+b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。

在计算(int)x%(int)y时,先将x和y通过强制类型转换成血型,再进行求余运算,得1。

又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。

[知识扩展]类型转换的一般规则是:低级类型服从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→long→float→double。

47.D

48.B解析:指向同一字符串的指针可以、也只能进行减运算,返回一个整型数。

49.C解析:如果没有大括号,else总是与它上面的最近的if配对。所以本题中的elseif(ok2)是与if(!ok1)配对的,首先因为a<b成立所以进一步判断b!=15也成立,再进一步判断!ok1,为假,不执行子句X=-1;继续判断ok2是否为真,ok2亦为假,故子句x=10;也不执行,最后让x=1;输出x,所以结果应该选择C。

50.A解析:自增运算符“++”放在变量之前表示在使用变量之前,先使变量的值加1;放在变量之后表示在使用变量之后,再使变量的值加1。语句p=s;使指针p指向字符串s的首地址,第一次输出语句先输出字符'1',指针p再往后移一位,指向字符'5'的地址,第二个输出语句,同样先输出字符'5',指针p再往后移一位,指向字符'9'的地址。

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

52.C解析:本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量1.2转换为int型,即取整为1,然后将1赋值给变量x。接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。小括号内的运算过程:先将整型变量x的值1转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。接着进行除法运算4.8/5.0,其结果小于1.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边的变量y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d*y的值也为0。注意:格式输出语句printf的使用。

53.D解析:fwrite的形式是fwrite(buffer,size,count,fp),buffer表示准备输出的数据块的起始地址,size表示每个数据块的字节数,count用来指定每写一次或输出的数据块,fp为文件指针。

54.B解析:关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元S只能做笛卡儿积运算。

55.C解析:中央处理器是计算机的核心部件,控制着计算机的一切活动。

56.C解析:逻辑运算符的优先次序如下:!(非)→&&(与)→||(或),但本题特别注意的是短路的概念。

57.A解析:选项A)是一个表达式,它后面没有分号结尾(C语言中规定语句必须以分号结束),所以它不是语句;选项B)用一个花括号把几条语句括起来了,这是一个复合语句;选项C)中只有一个分号,是一个空语句;选项D)是个复合语句,也是一个空语句。

58.A

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

类型标识符函数名()

{说明部分

语句

}

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

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

形式参数说明

{说明部分

语句

}

类型标识符函数名(类型名形参1,类型名形参2,…)

{说明部分

语句

}

其中函数名为用户定义的C语言的合法标识符,其前面的类型标识符用来说明函数值的类型,可以是C允许的任何类型,如int、char、float、double和指针类型等。当函数值为整型时类型标识符可以省略,如果函数没有返回值,类型标识符可以是void型。当函数的形参多于一个时,各个形参之间用逗号分隔。

60.C解析:putchar(s)的功能是把字符s输出到标准输出设备;puts(s1)是把s1指向的字符串输出到标准输出设备。

61.A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

62.B存放字符串的字符数组的名字就是这个字符串的首地址。本题的功能是对字符串”tomeetme”进行选择式输出,从第一个字母开始,每输出一个字符即跳过一个。

63.A本题考查数据库中的数据管理技术相关知识。

数据管理技术的发展大体可以归为三个阶段:人工管理、文件系统和数据库管理系统。

人工管理阶段:计算机主要用于科学计算。外部存储器只有磁带、卡片和纸带等还没有磁盘等直接存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理方式基本是批处理。这个阶段有几个特点:数据不保存;应用程序中包含自己要用到的全部数据;数据不共享;数据不具有独立性。

文件系统阶段:计算机不仅用于科学计算,还用在信息管理方面。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取的存储设备。软件领域出现了操作系统和高级软件。操作系统中的文件系统是专门管理外存的数据管理软件,文件是操作系统管理的重要资源之一。数据处理方式有批处理,也有联机实时处理。在文件系统支持下,数据开始从程序中逐步独立出来,数据文件可以独立、长期地存储,数据的逻辑结构和物理结构有了一定的区别。数据的逻辑结构是指呈现在用户面前的数据结构形式。数据的物理结构是指数据在计算机存储设备上的实际存储结构。文件系统对计算机数据管理能力的提高虽然起了很大的作用,但是仍然存在许多根本性问题。主要表现在:数据文件是为满足特定业务领域某一部门的专门需要而设计,数据和程序相互依赖,数据缺乏足够的独立性;数据没有集中管理的机制,其安全性和完整性无法保障,数据维护业务仍然由应用程序来承担;数据冗余度大;对现有数据文件不易扩充,不易移植,难以通过增、删数据项来适应新的应用要求;各数据文件之间缺乏联系,互相独立,不能反映现实世界中事物之间的联系。文件系统管理数据有如下特点:数据可以长期保存;由文件系统管理数据;数据共享性差,冗余度大;数据独立性差。

数据库管理系统阶段:数据管理技术进入数据库系统阶段。数据库系统克服了文件系统的缺陷,提供了对数据更高级、更有效的管理。这个阶段的程序和数据的联系通过数据库管理系统来实现(DBMS)。数据库系统阶段的数据管理具有以下特点:

采用数据模型表示复杂的数据结构。数据模型不仅描述数据本身的特征,还要描述数据之间的联系,这种联系通过存取路径实现。通过所有的存取路径表示自然的数据联系是数据库与传统文件的根本区别。这样,数据不再面向特定的某个或多个应用,而是面向整个应用系统。数据冗余明显减少,实现了数据共享。

有较高的数据独立性。数据的逻辑结构与物理结构之间的差别可以很大。用户以简单的逻辑结构操作数据而无须考虑数据的物理结构。数据库的结构分成用户的局部逻辑结构、数据库的整体逻辑结构和物理结构三级。用户(应用程序或终端用户)的数据和外存中的数据之间转换由数据库管理系统实现。

数据库系统为用户提供了方便的用户接口。用户可以使用查询语言或终端命令操作数据库,也可以用程序方式(如用C语言和数据库语言联合编制的程序)操作数据库。

数据库系统提供了数据控制功能,增加了系统的灵活性。对数据的操作不一定以记录为单位,可以以数据项为单位。

64.C在C语言中,用整型格式输出字符时,输出的是其ASCII码值。

65.B

66.B

67.D解析:中序遍历的递归算法定义:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法定义:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法定义:①遍历左子树;②遍历右子树;③访问根结点。根据前序遍历的结果可知,a是根结点。由中序遍历的结果dgbaechf可知,d、g、b是左子树的结点,e、c、h、f是右子树的结点。再由前序遍历的结果bdg可知,b是a左边子树的根,由cefh可知,c是a右边子树的根。再由中序遍历的结果dgb可知,d、g是b左边子树的结点,b右边子树无结点。再由前序遍历结果dg可知,d为b左子树的根,g是以d为根的子树的右结点。至此,a的左子树已完全弄清楚了。同样的道理,可以弄清楚以c为根的子树的结点位置。所以可知后序遍历的结果是D。

68.AC语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。因此A选项中的连接符不合法。

69.A向switch语句块传送参数后,编译器会先寻找匹配的case语句块,找到后就执行该语句块,遇到break跳出;如果没有匹配的语句块,则执行default语句块。case与default没有顺序之分。因此第一次循环k的值为l,执行c+=k,c的值为1,再执行ease2后的语句c++,c的值为2,遇到break语句跳出循环;第:二次循环k的值为2,执行case2后面的语句c++,c的值为3,跳出循环。故本题答案为A)。

70.D

71.A\n软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。定义阶段包括问题定义、可行性研究和需求分析,开发阶段包括概要设计、详细设计、实现和测试,运行维护即软件的运行和维护。

\n

72.D在程序中指针变量P初始指向a[3],执行P减1后,P指向a[2],语句y=*P的作用是把a[2]的值赋给变量y,所以输出为y=3。

73.C

74.A本题主要考查宏的定义。宏定义用一个标识符来表示一个字符串,这个字符串可以是常量、变量或表达式。在宏调用中将用该字符串代换宏名。宏定义中,我们主要需要注意以下几点:

(1)同一宏名不能重复定义,除非这两个宏定义命令行完全一致。

(2)定义宏时,记得其结尾处不要用分号隔开。

(3)替换带参数的宏名时,一对圆括号必不可少,圆括号中实参个数应该与形参个数相同,若有多个参数,它们之间用逗号隔开。

(4)宏定义中的字符串应加括号,字符串中出现的形式参数两边也应加括号。

在本题中,定义宏时,出现了一个明显的错误,即在宏的定义后面用分号表示结束,这显然是不对的。程序编译时,系统会报错,无法完成输出。因此,本题的正确答案是A。

75.D

\n本题考查链表结点的删除,q一>next中存放的是r所指结点的首地址,将r所指结点的首地址存于p--next中,则实现删除q所指点的功能,并保持链表连续,P所指点与r所指结点相连。

\n

76.A软件需求规格说明书是需求分析阶段最后的成果,它是作为需求分析的一部分而制定的可交付文档。概要设计说明书、数据库说明书、集成测试计划都是概要设计阶段需要编写的文档。

77.D

78.C

79.D

\n本题主要考查do—while循环,因为变量t的初始值等于1,经过第一次do-while循环后,执行t=t-1这条语句一次,所以变量t的值为-1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,如果关系表达式不成立,退出循环。由此可见,只要输入变量n的值为负奇数,则一定会使t==n成立,故退出do-while循环。

\n

80.A本题考查的是输入输出函数。sCanf()是格式化输入函数;getChar()函数从键盘缓冲区读一个字符;putChar()输出一个字符;printf()函数是格式化输出函数。在题目中,程序执行到sCanf()函数时,会暂停等待用户输A4个字符,按题意输)k123<回车>后,字符l-3被分别赋值到Cl-C3中,而C4会得到一个换行符’\\\\n’。然后执行第1个getChar()函数,由于前面的sCanf()函数读完了缓冲区中的所有字符,所以此时程序又会暂停等待用户输入,按题意输入45678<回车>后,缓冲区第一个字符4赋值到。5,第二个字符5赋值给C6,所以本题应该选择A)。

81.(1)错误:缺少语句

正确:应填人num%base

(2)错误:缺少语句

正确:应填人[d]

【解析】按题目中的要求把输入的十进制数以十六进制数的形式输出,首先要对十进制数对16求余,得出十六进制每一位上的数字。因此,c[i]__________处填num%base。数组b为十进制数0~15所对应的十六进制数,数组c中存放的是十六进制数每一位上的数字。因此,b__________处填Ed2。

82.1voidfun(char*ss)2{3inti;4for(i=0;ss[i]!='\\0';i++)/*将ss所指字符串中所有下标为奇数的字母转换为大写字母*/5if(i%2==1&&ss[i]>='a'&&ss[i]<='z')6ss[i]=ss[i]-32;7}本题要求将给定字符串ss中下标为奇数的字母转换为大写字母。需要先判断下标为奇数的字母是否是小写字母,如果是再通过其转换方法进行转换。从C语言的学习中知道,只要将小写字母减去32即转换成大写宇母,将大写字母加上32即换转成小写字母。本程序用if语句实现转换功能。2022年安徽省滁州市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有定义语句intb;charc[10];,则正确的输入语句是______。A.scallf("%d%s",&b,&c);

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

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

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

2.以下不能作为合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

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

A.C程序中注释部分可以出现在程序中任意合适的地方

B.花括号"{"和"}"只能作为函数体的定界符

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.分号是C语句之间的分隔符,不是语句的一部分

4.以下不能输出字符A的语句是(注:字符A的ASCII值为65,字符a的ASCII值为97)()。

A.printf(“%c\n”,‘a’-32);

B.printf(“%d\n”,‘A’);

C.printf(“%c\n”,65);

D.printf(“%c\n”,‘B’-1);

5.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出的结果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

6.若有说明:inta[][3]={0,0};则不正确的叙述是()。

A.数组a的每个元素的初值都是0

B.数组a的第一维大小为1

C.数组a的行数为1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

7.以下程序的主函数中调用了在其面前定义的fun函数#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}则以下选项中错误的fun函数首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

8.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。

A.67,DB.B,CC.C,DD.不确定的值

9.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

10.线性表是具有n个()的有限序列。

A.字符B.数据元素C.数据项D.表元素

11.以下说法正确的是()。

A.C语言只接受十进制的数

B.C语言只接受八进制、十进制、十六进制的数

C.C语言接受除二进制之外任何进制的数

D.C语言接受任何进制的数

12.假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n,T(1)=1表示,则该算法的时间复杂度为()

A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)

13.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)当执行程序时,输出的结果是()。A.-1B.1C.4D.0

14.设有条件表达式:(EXP)?i++:j--,则以下表达式中与(E)(P)完全等价的是A.(EXP==0)B.(EXP!=0)C.(EXP=-1)D.(EXP!=1)

15.设x和y均为bool量,则x&&y为真的条件是()。

A.它们均为真B.其中一个为真C.它们均为假D.其中一个

16.

17.在顺序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找关键码12需做()次关键码比较。

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

18.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。

A.概要设计B.详细设计C.可行性分析D.需求分析

19.

20.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

二、2.填空题(20题)21.以下程序的功能是计算。补足所缺语句。

longf(intn)

{inti;longs;

s=【】;

for(i=1;i<=n;i++)s=【】;

returns;

}

main()

{longs;intk,n;

scanf("%d",&n);

s=【】;

for(k=0;k<=n,k++)s=s+【】;

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

}

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

23.设C语言中,一个int型数据在内存中占两个字节,则int型数据的取值范围为【】。

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

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

25.软件测试中路径覆盖测试是整个测试的基础,它是对软件【】进行测试。

26.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

27.下面程序的功能是输出数组中最大的数,由a指针指向该元素。请填空。

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b;

for(【】)

if(*a<*b)a=b;

printf("%d",*a);

}

28.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。

29.设有以下定义和语句,则*(*(p+2)+1)的值为【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

30.下面程序的输出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

printf("%d\n"k);}

31.需求分析的最终结果是产生【】。

32.函数compare的功能是比较两个字符串是否相等,若相等则函数返回1,否则返回o,请填空。

compare(chars[],chart[])

{

inti=0

while(s[i]==t[i]&&【】)i++;

return(【】?1:0);

}

33.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;

34.设有定义“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【】a。

35.子程序通常分为两类:【】和函数,前者是命令的抽象,后者是为了求值。

36.已知字符'A'的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是【】。

#include<stdio.h>

main()

{chara,b;

a=getchar();seanf("%d",&b);

a=a-'A'+'0';b=b*2;

prinff("%c%c\n",a,b);

}

37.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。

#defineN4

voidrotate(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=______;______=a[N-1][i];}

}

38.一个模块直接调用的其他模块的模块个数称为______。

39.有以下语句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式输出n1和n2的值:

n1=10

n2=20

每个输出行从第一列开始,请填空。

40.按照逻辑结构分类,数据结构可分为线性结构和非线性结构,队列属于______。

三、1.选择题(20题)41.需求分析阶段的任务是确定()

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

42.不合法的main函数命令行参数表示形式是

A.main(inta,char*c[])

B.mmn(intarc,char**arv)

C.main(intargc,char*argv)

D.majn(intargv,char*atgc[])

43.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序执行后的输出结果是()。

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

44.以下选项中不能作为合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0

45.在下列几种排序方法中,要求内存量最大的是______。

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

46.若有定义:inta=4,b=5;floatx=3.4,y=2.1;,则下列表达式的值为()

(float)(a+b)/2+(int)×%(int)y

A.5.5B.55C.5.500000D.55.00000

47.设有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是()

A.$8B.@10C.$9D.@9

48.设有以下程序段;inta[5]={0},*p,*q;p=a;q=a;则合法的运算是______。

A.p+qB.p-qC.p*qD.p%q

49.下面程序输出的结果是()。main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=-i;elseif(ok2)x=10;x=1;printf("%d\n",x);}

A.-1B.0C.1D.不确定的值

50.有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序运行后的输出结果是______。

A.15B.16C.12D.59

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

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

52.下列程序的输出结果是()。

main

{

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

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

}

A.3B.3.2C.0D.3.07

53.fwrite函数的一般调用形式是

A.fwrite(buffer,count,size,fp);

B.fwrite(fP,size,count,buffer);

C.fwrite(fp,count,size,buffer);

D.fwrite(buffer,size,count,fp);

54.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.R×SC.RNSD.RUS

55.微型计算机的性能主要取决于______。

A.内存B.硬盘C.中央处理器D.显示卡

56.以下程序的输出结果是_______。main(){inta=-1,b=1,k;if(++a<0)&&!(b-<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}

A.-11B.01C.10D.00

57.下列不是合法的C语言语句是()。

A.a=5B.{inti;i++;}C.;D.{;}

58.若有以下定义和语句,则输出结果是______。char*s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));

A.4B.5C.9D.10

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

A.fun函数无返回值

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

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

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

60.下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是()。#include<stdio.h>main(){chars1[]="chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]==s2[i]&&i<7)__________________;}

A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

四、选择题(20题)61.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

62.阅读下面程序,则执行后的结果是()。

A.tomeetme

B.tmem

C.oete

D.tome

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

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

64.已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。

A.A.A,BB.A,68C.65,66D.65,68

65.

66.

67.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

68.按照c语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.连接符B.大写字母C.数字字符D.下划线

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

A.3B.5C.7D.9

70.

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

A.详细设计B.运行维护C.可行性研究D.需求分析

72.有以下程序:

程序的运行结果是()。

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

73.

74.有以下程序

#include<stdio.h>

#defineP24;

#defineS(x)P*x+x;

main()

{inta=2,b=2;

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

}

程序的运行结果是

A.程序编译运行时报错,无法输出B.54

C.96D.100

温馨提示

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

评论

0/150

提交评论