2021-2022年湖北省襄樊市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2021-2022年湖北省襄樊市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2021-2022年湖北省襄樊市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2021-2022年湖北省襄樊市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2021-2022年湖北省襄樊市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年湖北省襄樊市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序#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

2.第

24

下面程序段的运行结果是

char*p="abcdefgh";

p+=3;

printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

3.下列一维数组初始化语句中,正确且与语句floata[]={0,3,8,0,9};等价的是().

A.floata[6]={0,3,8,0,9};

B.floata[4]={0,3,8,0,9};

C.floata[7]={0,3,8,0,9};

D.floata[5]={0,3,8,0,9};

4.广义表(a,b,c,d)的表尾是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

5.对于如图所示二叉树采用中根遍历,正确的遍历序列应为()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

6.

7.若串S=,software,其子串的数目是()。

A.8B.37C.36D.9

8.下列不可用于C语言用户标识符的是A.A.j2_KEY

B.char

C._g_

D.Double

9.递归式的先序遍历一个n节点,深度为d的二叉树,则需要栈空间的大小为()

A.O(logn)B.O(nlogn)C.O(n)D.O(d)

10.可以作为Windows外壳程序的是()

A.程序管理器B.文件管理C.程序管理器和文件管理器D.主群组

11.设有定义:“char*c;”,以下选项中能够使字符型指针c正确指向一个字符串的()。

A.charstr[]="string";c=str;

B.scanf(%s,c):

C.c=getchar();

D.*c="strin9";

12.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其输出结果是()。A.1B.30C.1-2D.死循环

13.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}该程序的输出结果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

14.已定义以下函数fun(char*p2,char*p1){while((*p2=*p1)!='0'){P1++;p2++;}}函数的功能是

A.将p1所指字符串复制到p2所指内存空间

B.将P1所指字符串的地址赋给指针p2

C.对p1和p2两个指针所指字符串进行比较

D.检查P1和p2两个指针所指字符串中是否有'\0'

15.

16.采用深度优先搜索或拓扑排序算法可以判断出一个有向图中是否有环(回路)()

A.对B.错

17.在位运算中,操作数每左移两位,其结果相当于()。

A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4

18.对于下述程序,在方式串分别采用“wt”和“wb”运行时,两次生成的文件TEST的长度是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fputc('\n',fp);fputc('C',fp);fclose(fp);}

A.7字节、7字节B.7字节、5字节C.5字节、7字节D.5字节、5字节

19.以下选项中不能用作C语言程序合法常量的是()。

A.123B.‘\123’C.1,234D.“\x7D”

20.以下叙述中错误的是()。

A.在一个函数内的复合语句中定义的变量在本函数范围内有效

B.在一个函数内定义的变量只在本函数范围内有效

C.在不同的函数中可以定义相同名字的变量

D.函数的形参是局部变量

二、2.填空题(20题)21.调用C语言标准库函数时要求用【】命令。

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

strcen(chara[],charb[])

{intnum=0,n=0;

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

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

return(num);

}

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

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7),i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

运行程序,输入HOWAREYOU。

25.设有以下定义

stnctss

{intinfo;sEruc5ss*link;}x.y,z;

且已建立如下图所示链表结构:

请写出删除结点y的赋值语句______。

26.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%x\",p+9);

}

27.在数据结构中,顺序存储结构的数据元素所占的存储空间是______的。

28.以下函数用于求出一个2×4矩阵中的最大元素值。

max_value(arr)

intarr[][4];

{

inti,j,max;

max=arr[O][0];

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

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

if(【】>max)max=【】;

return(max);

}

29.以下函数的功能是删除字符串s中的所有数字字符。请填空。

voiddele(char*s)

{

intn=0,i;

for(i=0,s[i];i++)

if(【】)

s[n++]=s[i];

s[n]=【】;

}

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

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

32.在面向对象方法中,对象之间进行通信的构造称为()。

33.若有定义:intk;,以下程序段的输出结果是______。for(k=2;k<6;k++,k++)printf("##%d",k);

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

#defineP(a)printf("%d",a)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>l;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

35.#define命令出现在程序中函数的外面,宏名的有效范围为______。

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

37.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

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

#include<stdio.h>

main()

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

if(a<b)

if(b<0)c=0;

elsec++;

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

}

39.下面程序的功能是输出数组s中最大元素的下标,请填空。

#include<stdio.h>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

}

40.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。

三、1.选择题(20题)41.有以下程序

#include<stdlib.h>

structNODE

{intnum;stmctNODE*next;};

main()

{structNODE*p,*q,*r;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeof(structNODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next=r;

printf(“%d\n”,p->num+q->next->num);

}

程序运行后的输出结果是

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

42.请读程序片段:inti=65536;printf("%d”\n”,i;上面程序片段的输出结果是()

A.65536B.0C.有语法错误,无输出结果D.-l

43.C语言结构体类型变量在程序运行期间

A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元

B.所有的成员一直驻留在内存中

C.只有最开始的成员驻留在内存中

D.部分成员驻留在内存中

44.下列存储器中,存取速度最快的是()。

A.软盘B.硬盘C.光盘D.内存

45.下面各选项中,均是C语言合法标识符的选项组是

A.33weautoB._23me_3ewC._433e_elseD.ER-DF32

46.在下面的语句中,赋值语句错误的是_______。

A.a=(b=(c=2,d=3));B.i++;C.a=a/b=2;D.a=a<a+1;

47.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序运行后的输出结果是______。

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

48.有以下程序:maln(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是()。

A.45B.20C.25D.36

49.设有以下定义和语句,输出的结果是(用small模式编译,指针变量2个字节)______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));

A.20B.16C.14D.12

50.结构化程序由三种基本结构组成,三种基本结构组成的算法A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务

51.在软件测试设计中,软件测试的主要目的是

A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.尽可能多地发现软件中的错误

52.阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}

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

53.下列数据结构中具有记忆功能的是()。

A.队列B.循环队列C.栈D.顺序表

54.有以下程序:int*flint*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}执行后输出结果是()。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

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

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

56.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是

A.startB.endC.startendD.endrt

57.以下程序的输出结果是()#include<stdlib.h>inta[3][3]={1,2,3,4,5,6,7,8,9},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n",*p);}f(int*s,intp[][3]){*s=p[1][1];}

A.1B.4C.7D.5

58.计算机硬件组成中,CPU包含______。

A.控制器和存储器B.控制器和运算器C.控制器、运算器和存储器D.内存储器和外存储器

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

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

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

C.数组a的行数为1

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

60.若有定义inta[5],*p=a;则正确引用数组元素的是()。

A.*&a[5]B.*a+2C.*(p+5)D.*(a+2)

四、选择题(20题)61.浏览器中用于负责向用户显示数据的是()。

A.WWWB.IP地址C.HTMLD.DNS

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

A.

B.

C.

D.

63.有如下程序

main()

{

inta=2,b=-1,c=2;

if(a<b)c=1;

if(b<0)c=0;

elsec++;

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

}

该程序的输出结果是

A.0B.1

C.2D.3

64.

下列程序的运行结果是()。

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

printf("x=%d,y=%d",x,y);

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

65.以下关于逻辑运算符两侧运算对象的叙述中正确的是()。

A.可以是任意合法的表达式B.只能是整数0或非0整数C.可以是结构体类型的数据D.只能是整数O或l

66.

67.下列叙述中正确的是()。A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化

68.下列程序段的输出结果是

inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("%2d,%2.1f,%2.1f",a,b,c);

A.无输出B.12,123.5,12345.5

C.1234,123.5,12345.5D.1234,123.4,12345.5

69.有以下程序运行时,‘若输入l23450<回车>,则输出结果是()。

A.6566456B.66656C.66666D.6666656

70.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()。

A.PAD图B.N—S图C.结构图D.数据流图

71.

72.针对简单程序设计,以下叙述的实施步骤顺序正确的是()。

A.确定算法和数据结构、编码、调试、整理文档

B.编码、确定算法和数据结构、调试、整理文档

C.整理文档、确定算法和数据结构、编码、调试

D.确定算法和数据结构、调试、编码、整理文档

73.数据流图中带有箭头的线段表示的是()。

A.控制流B.事件驱动C.模块调用D.数据流

74.已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。以下不能将变量C中的大写字母转换为对应小写字母的语句是()。

A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"

75.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA

76.软件需求规格说明书的作用不包括()。

A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解

77.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

当运行程序时,输入asdafaaz67<回车>,则输出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

78.以下不能正确定义二维数组的选项是()。

A.

B.

C.

D.

79.

表示关系X<=Y<=Z的C语言表达式为()。

A.(X<=Y)&&(Y<=Z)

B.(X<=Y)AND(Y<=Z)

C.(X<=Y<=Z)

D.(X<一Y)&(Y<一Z)

80.有以下程序:

程序的运行结果是()。

A.0B.9C.6D.8

五、程序改错题(1题)81.给定程序MODll.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第l门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第l门课程的平均分是:76.125000请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将ss所指字符串中所有下标为奇数的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss){}voidmain(void){ chartt[51]; printf(“\nPleaseenterancharacterstringwithin50characters:\n”); gets(tt); printf(“\n\nAfterchanging,thestring\n%s”,tt); fun(tt); printf(“\nbecomes\n%s”,tt);}

参考答案

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

2.C在本题中,程序段首先定义了字符型指针变量p,并使其指向一个字符串,然后将指针变量p加3,即使其指向字符串的第四个元素。然后执行输出语句,通过输出语句的输出格式我们可以知道,最后输出的是一个十进制数的整型数值,其输出列表为strlen(strcpy(P,″ABCD″))。这就要求我们了解strlen函数和strcpy函数的作用。

strcpy的调用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串复制到目的地址中,这种复制将覆盖原来的字符串。strcat函数的功能是将源地址的字符串复制到目的地址字符串的后面。

strlen的调用格式是:strlen(字符串地址),其功能是返回字符串中字符的个数。

那么程序中执行strcpy(P,″ABCD″)后指针变量p所指向的字符串为“ABCD”,该字符串中字符的个数为4,那么执行strlen后,程序最终输出的结果是4。因此本题正确的答案是C。

3.D

4.C

5.D

6.B

7.B

8.B本题主要考查标识符的命名规则。选项A是合法的用户标识符,它符合命名的规则;选项B不是一个合法的用户标识符,因为它是系统中定义了的关键字;选项C是一个合法的标识符;选项D可能也会有很多人认为它不是一个合法的标识符,认为它是关键字,但事实上它不是一个关键字,因为C语言中严格区分大小写,因此,它不是双精度关键字“double”,所以它是一个合法的用户标识符。

9.D

10.C

11.A选项B是从键盘上输入字符串,选项C是接收字符,选项D不正确。

12.C本题考查do-while循环,先执行d0输出的x的值为1,接着执行while语句,此时--x的值为0,x也为0,而非0为1,循环成立,接着执行do输出X值为-2,执行--x后,表达式为-2,而!(--x)为0,退出循环。

13.D解析:本题考查指向字符串指针的运算方法。执行p=s+1后,指针变量p就指向字符串中的第二个字符“B”,然后输出字符串“BCD”并换行;下面继续执行循环语句,指针变量p指向下一个字符“C”,输出字符串“CD”,最后一次循环,p指向字符“D”,输出字符串“D”。

14.A解析:fun()函数中声明了两个字符串指针作为形参,在其函数体中用了一个while循环,首先while括号内表达式*p2=*p1是将p1所指的内容赋值到P2所指的存储空间中,然后再判断是否为'\\0',表达式的值为真时,执行循环体,指针p1和指针P2分别下移一位,当p1指向字符'\\0'时,表达式的值为假,循环结束,故此函数的功能是将p1所指字符串复制到p2所指内存空间中。

15.C

16.A

17.D解析:本题主要考查左移、右移对数据值的影响,左移n位相当于乘以2的n次幂,右移n位相当于除以2的n次幂。

18.B解析:以“wt”方式写入的是字符文件,转义字符\'\\n\'被看作两个字符来处理。而'wb'方式写入的是二进制文件,转义字符\'\\n\'是一个字符。故正确答案为选项B)。

19.CC选项中不能含有逗号,所以“1,234”不能用作C语言程序的合法常量。B选项表示的是八进制的常量,D选项表示的是十六进制的常量。故本题答案为C选项。

20.A在一个函数内的复合语句中定义的变量在本复合语句块范围内有效,选项A错误,其他选项正确。本题答案为A选项。

21.includeinclude解析:include命令可调用标准的C语言库函数,可以用一对尖括号或一对双引号将“.h”文件括起来,在include前面要加“#”。

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

23.5555解析:分析程序执行过程,第一次循环时,j=3,i=5。因为switch(3),所以执行case3,调用P(a[--i])=P(a[4])=P(5),输出5;第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(a[i++])-P(a[4])=P(5),输出5,之后i自加等于5。

24.HOWHOW解析:在scanf()函数中,使用空格作为分隔符,如果输入含有空格的字符中,则不能使用scanf()数,所以本题中输入空格就返回了'\\0\\,s数组也就确定了,后面的输入就不再读入数组s中。

25.x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;解析:本题考核的知识点是链表中结点的删除。要删除结点y,只需要让结点x的指针域指向y结点的指针域所指向的后续结点就可,因此只需把结点2的地址赋给x的指针域就可以了即让结点x的指针域指向结点2。而结点z得地址保存在节点y的指针域中,因此只需把节点y的指针城赋值给节点x的指针域即可。

26.1a61a6解析:对于指针变量的运算,就是对地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以十六进制输出的。

27.连续连续解析:顺序存储结构具有两个特点:1)数据元素所占空间是连续的;2)数据元素在存储空间中是按逻辑顺序依次存放的。

28.j<4arr[i][j]arr[i][j]j<4\r\narr[i][j]\r\narr[i][j]解析:2*4矩阵实际上就是一个二维数组,结合本题应为arr[2][4],所以在第一个循环中应当填写“4”;第二个横线处是要判断当前的数组元素值是否大于max,所以应填写arr[i][j];第三个横线处是要将当前大于max的数组元素的值赋给变量max,所以应当填写“arr[i][j]”。

29.s[i]<'0'||s[i]>'9'或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))或isdigit(s[i])==0或s[i]>'9'||s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'||*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'或!(*(s+i)<='9'&&*(s+i)>='0'或isdigis[i]<'0'||s[i]>'9'或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))或isdigit(s[i])==0或s[i]>'9'||s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'||*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'或!(*(s+i)<='9'&&*(s+i)>='0'或isdigi解析:从一个字符串中删除某字符的力‘法是从字符串的第一个字符开始一一判断该字符是否是要被删除,若不是则把它放到结果字符串中,若是则不放入结果字符串中。本题的第一个空应判断s[i]是否为数字字符,只有在不是数字字符的情况下才存入结果字符串,所以应填入s[i]<'0'||s[i]>'9'。最后应在结果字符串的末尾填上字符串结束标志\\0。

30.BCDCDDBCD\r\nCD\r\nD解析:本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值'BCD'并换行,依次执行循环语句。

31.软件开发

32.消息消息解析:对象之间进行通信的构造叫做消息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。

33.本题主要考查for循环语句。for循环的增量表达式为逗号表达式,相当于k+=2;,即每次循环后k增加2。第一次循环时,k=2,因此输出##2;第二次循环时k=4,输出##4。此后k=6,不满足循环条件。\r\n\r\n

34.5555解析:分析程序执行过程,第一次循环时,j=3,i-5,因为switch(3),所以执行case3,调用P(a[-i)=p(a[4])=P(5),输出5;第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(s[i++])=P(a[4])=P(5),输出5,之后i的n等于5。

35.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。

36.指针P指向数组a的首地址,执行语句p++;后p指向数组a的第2个元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n

37.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。

38.22解析:分析程序,a=2,b=-1,c=2时,if语句的表达式a<b不成立,不再往下判断,直接退出if语句,执行后面的输出语句,程序结束。在这个程序中a、b、c的值没做任何改变。

39.k=p;k=p;解析:要找数组中最大元素的下标,首先预设数组首元素下标为临时最大元素的下标,从首元素开始顺序向后继元素逐一比较,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标,直至比较了数组的全部元素后,临时最大元素下标就是数组中最大元素的下标。程序中,变量k用于存储临时最大元素下标,变量p控制顺序比较的循环变量。当发现当前元素s[p]比临时最大元素s[k]更大时,用p更新k。所以在下划线处应填入代码“k=p;”。

40.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

41.D解析:主函数中首先定义了三个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量q->num的值为20,指针变量q->next指向指针变量r,r->num的值为30,所以变量q->next->num的值为30,因此,表达式q->num+q->next->num的值为20+30=50。

42.B

43.B解析:结构体类型的变量在程序运行期间要作为一个整体占用连续的内存单元。

44.D\nD【解析】存储器中.存取速度最快的是内存。

\n

45.B解析:合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。选项A),数字不能为第一个字母,auto为关键字;选项C)中,也是数字不能为第一个字母,else为关键字;选项D)中负号不合法。

46.C解析:①C语言中的赋值号“=”是—个运算符;②赋值语句是由赋值表达式加上一个分号构成。赋值表达式的左侧不能为常量或表达式。

47.A解析:本题中定义一个全局变量a和一个局部变量a。局部变量和全局变量的不同在于,局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失,而全局变量是在函数外部任意位置上定义的变量,它的作用域从变量定义的位置开始,到整个源文件结束为止。若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽,在该函数内,起作用的将是局部变量,与同名的全局变量不发生任何关系。在程序中首先定义了变量s并赋值为0,接着在嵌套的复合语句{}中定义了变量a并赋初值为5,接着执行语句s+=a+a;在这条语句中a加1,但表达式a++还是原来的值,故s=s+5,s为5,程序执行到外层,此时{}内定义的变量a不再有效,此时的变量a为{}之前定义的且初值为3,接着执行{}后面的语句s+=a++;相当于执行语句s=s+(++);即s=5+3,最后值为8,所以最后输出的s值为8。所以4个选项中A正确。

48.C解析:通过for循环语句s=*(t+0)+*(t+2)+*(t+4)+*(t+6)+*(t+8)=1+3+5+7+9=25。

49.D解析:sizeof函数计算已知类型所占的字节数。结构体变量所占内存长度是各成员占的内存长度之和。指针变量占2个字节,所以cat和*next各占2个字节;double型占8个字节,故too共占12个字节。

50.A解析:C程序由顺序结构、选择结构和循环结构三种基本的结构组成,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务。

51.D解析:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。

52.A解析:带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(C)。

53.C解析:由栈的定义可知,栈是先进后出(或后进先出)的线性表,因此,栈具有记忆功能。

54.B解析:本题定义了一个返回值为指针的函数f(),此函数有两个指针型的形参x和y,该函数的功能,是返回x和y指向的变量中值较小的那个指针变量。主函数中定义了两个指针变量p和q,并让它们指向了变量a和b,调用函数f(),返回指向的变量值较小的指针变量,r的值为指针变量p的值(变量a的地址),因此最后输出的*p、*q和*r的值是7,8和7。所以,B选项为所选。

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

56.B解析:本题主要考查的是打开文件函数fopen().题目开始定义了一个函数,该函数有两个字符指针型参数,其作用分别用来传入文件名和文件内容。函数首先定义一个文件指针印,然后使用fopen()函数打开参数fn所指定的文件。本题的关键就在于fopen()函数的第2个参数,这个参数指定了文件打开的方式。'w'表示为写而打开一个文本文件,如果文件不存在,则新建一个文件,否则将清空原有文件。接下来函数使用fputs()函数将参数str中的内容写入文件,最后调用fclose()函数关闭文件。在主函数中两次调用该函数,但写入的是同一个文件,故只有最后一次写入有效。所以应该选择B。

57.D

58.B

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

60.D

61.C

62.B解析:选项A中定义的是5个数组元素,但赋值的时候赋的是6个元素,所以出错;选项C不符合数组定义形式,数组名后应加上“[]”;选项D的类型说明符错误,如果用char定义就对了;选项B中的0,1,2,3,4,5分别表示对应字符的\u3000ASCII码,所以选项B是正确的。

63.A本题主要考查if结构的应用。在程序中,首先定义三个整型变量a,b,c,并分别赋初值为2,-1,2,然后执行第一条if语句,由于变量a的值大于变量b的值,a<b为假,那么接着执行第二条if语句,由于变量b的值小于0,b<0为真,则执行c=0,这时跳过else结构,输出结果为0。

提醒注意:if与else结构具有就近结合的原则。本题中的else结构与第二个if语句结合,而不是与第一个if语句结合。

64.C解析:逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就是最后一个表达式N的值。

表达式(x=3*y,x+1)中,第一个表达式x=3*y=3*5=15;第二个表达式x+1=16,但没有给x或y赋值,所以x还是等于15;第3个表达式x-1=15-1=14,所以y的值为14。

65.Ac语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是仨意合法的表达式,因此选择A)。

66.B

67.C栈是先进后出的数据结构,在对栈操作的整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来完成,因此本题答案为c)。

68.C本题主要考查C语言的输出格式。在本题程序中,分别给出了三个不同类型的变量并赋初值。三个变量中,一个为整型,一个为单精度型,一个为双精度型,然后用一条输出语句将它们输出,输出的格式分别为%2d,%2.1f,%2.1f。

%2d表示输出位数为两位的整型数据,但很显然,题目中给出的数据不只两位,那么需要按其实际位数输出,因此,最后输出变量a的结果为1234。

%2.1f表述输出位数为两位的实型数据,并保留一位小数位,同样,题目中给出的数据不只两位,那么需要按其实际位数输出。这里需要注意,因为小数位很多,只输出一位时需要对其进行四舍五入操作。因此,最后输出变量b的结果为1234.5;输出变量C的结果为12345.5。

69.A第一次循环输出65;然后s接收到2,第二次循环输出6;。接收到3,第三次循环输出64;接收到4,第四次循环输出5;接收到5,第五次循环输出6;接收到0,结束循环,所以答案为A):

70.BN-S图的定义;在使用过程中,人们发现流程线不一定是必需的,为此,人们设计了一种新的流程图,它把整个程序写在一个大框图内,这个大框图由若干个小的基本框图构成,这种流程图简称N-S图

71.C

72.A\nC语言中程序中的步骤实现为:先确定程序中的算法和数据结构,然后进行程序的编码,再进行对程序的调试,最后进行文档的整理和记录。使用这种步骤可以方便程序的编写以及在完成后提高代码的重用性。

\n

73.D解析:数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要的图形元素与说明如下:

加工(转换):输入数据经加工变换产生输出。

数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。

存储文件(数据源):表示处理过程中存放各种数据的文件。

源,潭:表示系统和环境的接口,属系统之外的实体。

74.A根据题意可知,小写字母比与之对应的大写字母的ASCⅡ码大32。A选项中字符A加上c表示的大写字符再对字母个数26取余,本身这个表达式没有任何含义,所以选择A选项。

75.B栈是先进后出的原则组织数据,所以人栈最早的最后出栈,所以选择B。

76.B《软件可行性分析报告》是软件可行性研究的依据。

77.A在本题中,程序首先定义一个返回类型为整型的函数fun,该函数带有一个指针型的形参变量str,从主函数中对其调用时传递的参数我们可以知道,该指针指向的是一个数组,在该函数体中,首先定义两个整型变量,然后执行循环,循环变量i的初始值为0,循环结束的条件是str[i]!=’\\0’,表示取到的数组元素是字符串结束标识,即字符串中的字符被处理完,在循环体中,首先执行条件判断语句if(str[i]!=’’),如果结果为真,说明取到的当前字符不是空字符,这时执行str[j++]=str[i],即将非空格字符保存到数组中;如果为假,说明取到了空格字符,此时不保存,而接着执行下次循环跳过空格字符。循环结束后执行str[j]=’\\0’;,即保存字符结束标识符,用来标识字符串结束。通过上面的这些分析,我们可以知道函数fun的作用是去掉字符数组中的空格字符。

在主函数中,首先定义了一个大小为81的字符数组,然后调用函数clrscr()清除输入文本窗口,接着输出一条提示语句,执行gets(str);语句,该语句的作用是从键盘输入一个字符串到str数组,碰到换行符结束。然后调用函数fun,其实参为str。通过上面对函数fun作用的分析我们可以知道,调用函数后输入字符串中的空格符都被删除了,最后得到的字符串为asdafaaz67。

程序最后执行输出语句,输出字符数组str中的字符串,因此,程序最终的输出结果是asdafaaz67,本题答案选A。

78.D本题的考查点是二维数组的定义和初始化。

选项A)定义的数组中各元素实际上是这样的:

1,0

2.O

选项B)定义的数组中各元素实际上是这样的:

1,2

3.4

选项c)定义的数组中各元素实际上是这样的:

1,0

2.3

选项D)错在省略了第2维的长度。C中在对数组进行初始化时,如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

79.A

\n题中X<=Y<=Z的意思为X<=Y并且Y<=Z,在c语言中,要表示“且”的关系,应用“与”逻辑运算符,即“&&”,故选择A选项。

\n

80.C函数intf(intx)是一个递归函数调用,

81.(1)doublesum改为doublesunl=0.0;(2)for(i=0;i<2;i*)改为细(i=0;i<2;i++)改为for(i_0;i82.voidfun(char*ss){ inti; for(i=0;ss[i]!=‘\0’;i++)/*将ss所指字符串中所有下标为奇数的字母转换为大写字母*/ if(i%2==1&&ss[i]>=‘a’&&ss[i]<=‘z’) ss[i]=ss[i]-32;}将指定字符串中奇数位置的字母转换为大写字母,首先需要判断奇数位置,再判断该位置字符是不是小写字母,如果是小写字母,则将小写字母转换为大写字母。字母大小写转换操作中,只要将小写字母的ASCII值减去32即可转换为大写字母。2021-2022年湖北省襄樊市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序#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

2.第

24

下面程序段的运行结果是

char*p="abcdefgh";

p+=3;

printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

3.下列一维数组初始化语句中,正确且与语句floata[]={0,3,8,0,9};等价的是().

A.floata[6]={0,3,8,0,9};

B.floata[4]={0,3,8,0,9};

C.floata[7]={0,3,8,0,9};

D.floata[5]={0,3,8,0,9};

4.广义表(a,b,c,d)的表尾是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

5.对于如图所示二叉树采用中根遍历,正确的遍历序列应为()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

6.

7.若串S=,software,其子串的数目是()。

A.8B.37C.36D.9

8.下列不可用于C语言用户标识符的是A.A.j2_KEY

B.char

C._g_

D.Double

9.递归式的先序遍历一个n节点,深度为d的二叉树,则需要栈空间的大小为()

A.O(logn)B.O(nlogn)C.O(n)D.O(d)

10.可以作为Windows外壳程序的是()

A.程序管理器B.文件管理C.程序管理器和文件管理器D.主群组

11.设有定义:“char*c;”,以下选项中能够使字符型指针c正确指向一个字符串的()。

A.charstr[]="string";c=str;

B.scanf(%s,c):

C.c=getchar();

D.*c="strin9";

12.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其输出结果是()。A.1B.30C.1-2D.死循环

13.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}该程序的输出结果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

14.已定义以下函数fun(char*p2,char*p1){while((*p2=*p1)!='0'){P1++;p2++;}}函数的功能是

A.将p1所指字符串复制到p2所指内存空间

B.将P1所指字符串的地址赋给指针p2

C.对p1和p2两个指针所指字符串进行比较

D.检查P1和p2两个指针所指字符串中是否有'\0'

15.

16.采用深度优先搜索或拓扑排序算法可以判断出一个有向图中是否有环(回路)()

A.对B.错

17.在位运算中,操作数每左移两位,其结果相当于()。

A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4

18.对于下述程序,在方式串分别采用“wt”和“wb”运行时,两次生成的文件TEST的长度是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fputc('\n',fp);fputc('C',fp);fclose(fp);}

A.7字节、7字节B.7字节、5字节C.5字节、7字节D.5字节、5字节

19.以下选项中不能用作C语言程序合法常量的是()。

A.123B.‘\123’C.1,234D.“\x7D”

20.以下叙述中错误的是()。

A.在一个函数内的复合语句中定义的变量在本函数范围内有效

B.在一个函数内定义的变量只在本函数范围内有效

C.在不同的函数中可以定义相同名字的变量

D.函数的形参是局部变量

二、2.填空题(20题)21.调用C语言标准库函数时要求用【】命令。

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

strcen(chara[],charb[])

{intnum=0,n=0;

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

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

return(num);

}

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

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7),i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

运行程序,输入HOWAREYOU。

25.设有以下定义

stnctss

{intinfo;sEruc5ss*link;}x.y,z;

且已建立如下图所示链表结构:

请写出删除结点y的赋值语句______。

26.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%x\",p+9);

}

27.在数据结构中,顺序存储结构的数据元素所占的存储空间是______的。

28.以下函数用于求出一个2×4矩阵中的最大元素值。

max_value(arr)

intarr[][4];

{

inti,j,max;

max=arr[O][0];

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

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

if(【】>max)max=【】;

return(max);

}

29.以下函数的功能是删除字符串s中的所有数字字符。请填空。

voiddele(char*s)

{

intn=0,i;

for(i=0,s[i];i++)

if(【】)

s[n++]=s[i];

s[n]=【】;

}

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

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

32.在面向对象方法中,对象之间进行通信的构造称为()。

33.若有定义:intk;,以下程序段的输出结果是______。for(k=2;k<6;k++,k++)printf("##%d",k);

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

#defineP(a)printf("%d",a)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>l;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

35.#define命令出现在程序中函数的外面,宏名的有效范围为______。

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

37.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

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

#include<stdio.h>

main()

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

if(a<b)

if(b<0)c=0;

elsec++;

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

}

39.下面程序的功能是输出数组s中最大元素的下标,请填空。

#include<stdio.h>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

}

40.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。

三、1.选择题(20题)41.有以下程序

#include<stdlib.h>

structNODE

{intnum;stmctNODE*next;};

main()

{structNODE*p,*q,*r;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeof(structNODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next=r;

printf(“%d\n”,p->num+q->next->num);

}

程序运行后的输出结果是

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

42.请读程序片段:inti=65536;printf("%d”\n”,i;上面程序片段的输出结果是()

A.65536B.0C.有语法错误,无输出结果D.-l

43.C语言结构体类型变量在程序运行期间

A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元

B.所有的成员一直驻留在内存中

C.只有最开始的成员驻留在内存中

D.部分成员驻留在内存中

44.下列存储器中,存取速度最快的是()。

A.软盘B.硬盘C.光盘D.内存

45.下面各选项中,均是C语言合法标识符的选项组是

A.33weautoB._23me_3ewC._433e_elseD.ER-DF32

46.在下面的语句中,赋值语句错误的是_______。

A.a=(b=(c=2,d=3));B.i++;C.a=a/b=2;D.a=a<a+1;

47.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序运行后的输出结果是______。

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

48.有以下程序:maln(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是()。

A.45B.20C.25D.36

49.设有以下定义和语句,输出的结果是(用small模式编译,指针变量2个字节)______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));

A.20B.16C.14D.12

50.结构化程序由三种基本结构组成,三种基本结构组成的算法A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成一些简单的任务

51.在软件测试设计中,软件测试的主要目的是

A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.尽可能多地发现软件中的错误

52.阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}

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

53.下列数据结构中具有记忆功能的是()。

A.队列B.循环队列C.栈D.顺序表

54.有以下程序:int*flint*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}执行后输出结果是()。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

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

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

56.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是

A.startB.endC.startendD.endrt

57.以下程序的输出结果是()#include<stdlib.h>inta[3][3]={1,2,3,4,5,6,7,8,9},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n",*p);}f(int*s,intp[][3]){*s=p[1][1];}

A.1B.4C.7D.5

58.计算机硬件组成中,CPU包含______。

A.控制器和存储器B.控制器和运算器C.控制器、运算器和存储器D.内存储器和外存储器

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

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

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

C.数组a的行数为1

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

60.若有定义inta[5],*p=a;则正确引用数组元素的是()。

A.*&a[5]B.*a+2C.*(p+5)D.*(a+2)

四、选择题(20题)61.浏览器中用于负责向用户显示数据的是()。

A.WWWB.IP地址C.HTMLD.DNS

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

A.

B.

C.

D.

63.有如下程序

main()

{

inta=2,b=-1,c=2;

if(a<b)c=1;

if(b<0)c=0;

elsec++;

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

}

该程序的输出结果是

A.0B.1

C.2D.3

64.

下列程序的运行结果是()。

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

printf("x=%d,y=%d",x,y);

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

65.以下关于逻辑运算符两侧运算对象的叙述中正确的是()。

A.可以是任意合法的表达式B.只能是整数0或非0整数C.可以是结构体类型的数据D.只能是整数O或l

66.

67.下列叙述中正确的是()。A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化

68.下列程序段的输出结果是

inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("%2d,%2.1f,%2.1f",a,b,c);

A.无输出B.12,123.5,12345.5

C.1234,123.5,12345.5D.1234,123.4,12345.5

69.有以下程序运行时,‘若输入l23450<回车>,则输出结果是()。

A.6566456B.66656C.66666D.6666656

70.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()。

A.PAD图B.N—S图C.结构图D.数据流图

71.

72.针对简单程序设计,以下叙述的实施步骤顺序正确的是()。

A.确定算法和数据结构、编码、调试、整理文档

B.编码、确定算法和数据结构、调试、整理文档

C.整理文档、确定算法和数据结构、编码、调试

D.确定算法和数据结构、调试、编码、整理文档

73.数据流图中带有箭头的线段表示的是()。

A.控制流B.事件驱动C.模块调用D.数据流

74.已知大写字母A的ASCIl码值是65,小写字母a的ASCIl码值是97。以下不能将变量C中的大写字母转换为对应小写字母的语句是()。

A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"

75.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA

76.软件需求规格说明书的作用不包括()。

A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解

77.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

当运行程序时,输入asdafaaz67<回车>,则输出是A.A.asdafa

温馨提示

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

最新文档

评论

0/150

提交评论