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

下载本文档

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

文档简介

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

一、单选题(20题)1.若有定义“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。

A.1B.1.9C.2D.2.4

2.有以下程序

#include<stdio.h>

voidfun(intP)

{intd=2;

P=d++;printf(“%d”,P);}

main()

{inta=1;

fun(A);prinff(“%.d\n”,A);}

程序运行后的输出结果是A.32B.12C.21D.22

3.C语言函数中未指定存储类的变量,其隐含类别是()

A.autoB.staticC.registerD.void

4.按照“先进后出”原则组织数据的结构是()。

A.队列B.栈C.双向链表D.二叉树

5.对于下述说明,不能使变量p->b的值增1的表达式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

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

A.在C语言中,预处理命令行都以“#”开头

B.预处理命令行必须位于C语言源程序的起始位置

C.“include<stdio.h>”必须放在C语言程序的开头

D.C语言的预处理不能实现宏定义和条件编译的功能

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

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

8.有下列程序:程序执行后的输出结果是()。A.2,14,3,18,4,18

B.1,14,2,18,3,18

C.2,14,3,18,4,22

D.1,14,2,18,3,18,4,18

9.对以下四个序列用直接插入排序方法由小到大进行排序时,元素比较次数最少的是()

A.89,27,35,78,41,15

B.27,35,41,16,89,70

C.15,27,46,40,64,85

D.90,80,45,38,30,25

10.一个队列的入队序列是1,2,3,4,则队列的输出序列是()。

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

11.

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

#include<stdio.h>

main

{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;

p=a;

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

{if(i<2)

p[1][i]=p[1][i]-1;

else

p[1][i]=1;

}

printf("%d\n",a[o][1]+a[1][1]+a[1][2]);

}

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

12.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的运行结果是()。

A.abcB.28cC.abc28D.因类型不一致而出错

13.在一个带头结点的单链表HL中,若要在第一个元素之前插入一个由指针p指向的结点,应该使用的语句为()

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

B.p->next=HL;HL=p;

C.p->next=HL->next;HL->next=p;

D.p->next=HL;p=HL;

14.以下说法错误的是A.A.高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式

B.计算机只能处理由0和1的代码构成的二进制指令或数据

C.C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件

D.每一种高级语言都有它对应的编译程序

15.合法的main函数命令参数形式是()。

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

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

16.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序运行的结果是()。A.9B.61490C.61D.5

17.程序流程图中带有箭头的线段表示的是()。

A.图元关系B.数据流C.控制流D.调用关系

18.

19.若有函数voidfun(doublea[]。int*n){…}以下叙述中正确的是()。A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

B.形参a和n都是指针变量

C.形参a是一个数组名,n是指针变量

D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组

20.有以下程序

#include<stdio.h>

main()

{charch[3][5]={“AAAA”,”BBB”,”CC”};

printf(“%s\n”,ch[1];)

}

程序运行后的输出结果是()A.A.AAAA

B.CC

C.BBBCC

D.BBB

二、2.填空题(20题)21.fseek函数的正确调用形式是【】。

22.在软件测试中,动态测试和静态测试手段只能发现程序中的错误,而不能证明程序中不存在错误,只有【】证明才有可能证明程序的正确性。

23.栈的基本运算有三种:入栈、退栈和【】。

24.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于()测试。

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

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

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

10ngfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

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

#include<stdio.h>

main()

{intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

28.数据结构分为逻辑结构和存储结构,循环队列属于______结构。

29.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

30.当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行()次。

#include<stdio.h>

main()

{charch;

while((ch=getchar())=='0')printf("#");

}

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

#include

char*ss(char*s)

{char*p,t;

P=s+1;t=*s;

while(*p){*(P-1)=*P;P++;}

*(P-1)=t;

returns;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}

32.语句“int(*ptr)();”的含义是______是指向函数的指针,该函数返回一个血型数据。

33.以下程序的运行结果是()。main(){inta=1,b=2,c;if(a>B)c=1;elseif(a==B)c=0;elsec=-1;printf("%d\n",C);}

34.当输入19、2时,下列程序的运行结果为【】;输入254、16时,则程序的运行结果是【】。

main()

{chardata_symbols[17]="0123456789abcdefghijklmnopqrstuvwxyz";

inti=0,t,subscript,data_converted[32];

longnumber;

while(1)

{scanf("%ld,%d",&number,&t);

if(number>=O&&t>=2&&t<=16)break;

}

do

{dataconverted[i++]=number%t;

number=number/t;

}

while(number!=0);

for(--i;i>=0;--i)

{subscript=data_converted[i];

printf("%c",data_symbols[subscript]);

}

printf("\n");

}

35.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。

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

main()

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

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

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

printf("\n");

}

}

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

38.一个算法的空间复杂度是指该算法所耗费的【】。

39.以下程序的运行结果是()。#defineA4#defineB(x)A*x/2main(){floatc,a=8.0;c=B(A;printf("%f\n",C);}

40.按“先进后出”原则组织数据的数据结构是[]。

三、1.选择题(20题)41.为了使模块尽可能独立,要求()。

A.内聚程度要尽量高,耦台程度要尽量强

B.内聚程度要尽量高,耦合程度要尽量弱

C.内聚程度要尽量低,耦合程度要尽量弱

D.内聚程度要尽量低,耦合程度要尽最强

42.若以“叶”方式打开一个己存在的文件,则下列叙述正确的是()。

A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作

B.文件打开时,原有文件内容不被删除,只能进行读操作

C.文件打开时,原有文件内容被删除,只能进行写操作

D.以上3种说法都不正确

43.设定义下列结构体,结构体变量p的出生年份赋值正确的语句是()。structst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;

A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;

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.设a、b、c、d、m.n均为血型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。

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

46.设有以下语句:charstr1[]="string",str2[8],*str3,*str4=="string;则______不是对库函数的正确调用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4")

47.有以下函数:intfun(char*s){char*t=s;while(*t++);return(t-s)该函数的功能是______。

A.比较两个字符串的大小

B.计算s所指字符串占用内存字节个数

C.计算s所指字符串的长度

D.将s所指字符串复制到字符串t中

48.结构化程序设计主要强调的是______。

A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性

49.有以下程序: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

50.有以下程序:streetSTU{charnum[10];floatscore[3];};main(){structSTUs[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s,inti;floatsum=0;for(i=0;i<3,i++)sum=sum+p->score[i];printf("%6.2f\n",sum);}程序运行后的输出结果是()。

A.260B.270C.280D.285

51.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()

A.控制流B.加工C.数据存储D.源和潭

52.当a=1、b=3、c=5、d=4时,执行下面一段程序:if(a<B)if(c<D)x=1;elseif(a<C)if(b<D)x=2;elsex=3;elesx=6;elsex=7;程序执行后,x的值为()

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

53.从未排序序列中依次取出元素与已排序序列中的元素作比较,将取出的元素放入已排序序列中的正确位置上,此方法称为______。

A.归并排序B.选择排序C.交换排序D.插入排序

54.请读程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的输出结果是______。

A.正数B.负数C.零D.不确定的值

55.若有说明chars1[30]="abc",s2[]="defghi";,则在使用函数strcat(s1,s2)后,结果是()。

A.s1的内容更新为abcdefgi

B.s1的内容更新为defghi\0

C.s1的内容更新为defghiabc\0

D.s1的内容更新为abcdefghi\0

56.阅读以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("请输入2个数:");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下说法正确的是()。

A.定义浯句出错,Case是关键字,不能用作用户自定义标识符,printF不能用作用户自定义标识符

B.定义语句出错,Int无法被识别

C.定义语句无错,scanf不能作为输入函数使用

D.定义语句无错,printf不能输出Case的值

57.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

58.有下列程序: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

59.若fp是指向某文件的指针,且已读到此文件的末尾,则函数feof(fp)的返回值是_______。

A.EOFB.0C.非零值D.NULL

60.下面程序段的输出结果是______。char*s="abcde";s+=2;printf("%d",s);

A.cdeB.字符'c'C.字符'c'的地址D.无确定的输出结果

四、选择题(20题)61.有以下程序:

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

A.AfternoonB.ftemoonC.MorningD.oming

62.

有以下程序

#include<stdi0.h>

voidfun(intn,int*p)

(intf1,f2;

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

else

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

*p=f1+f2;

}

}

main

{ints;

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

}

程序的运行结果是()。

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

63.下列叙述中不正确的是。

A.算法的效率不仅与问题的规模有关,还与数据的存储结构有关

B.算法的时间复杂度是指执行算法所需要的计算工作量

C.数据的逻辑结构与存储结构是一一对应的

D.算法的时间复杂度与空间复杂度不一定相关

64.若有以下程序段输出结果:是()。

A.4B.8C.16D.2

65.

66.

67.

68.有以下程序

#include"stdio.h"

voidfun(int*a,int*b,intc)

{c=*a+*b;}

main()

{inta[2]={6,9},c=0;

fun(a,a+1,&c);

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

}

程序输出的结果是

A.6B.9

C.0D.15

69.

已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字堪的表达式是()。

A.isupper(c)

B.A<=c<=Z

C.A<=c&&c<=Z

D.c<=(z-32)&&(a-32)<=c

70.有以下程序:

#include<stdio.h>

inta=1,b=2:

voidfunl(inta,intb)

{printf("%d%d",a,b);}

voidfun2()

{a=3;b=4;}

main()

{funl(5,6);fun2();

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

}

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

A.1256

B.5634

C.5612

D.3456

71.

有以下程序:

intfun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

执行后的结果是()。

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

72.在函数中默认存储类型说明符的变量应该是________存储类型。

A.内部静态B.外部C.自动D.寄存器

73.标准库函数fgets(s,n,file)的功能是()。

A.从文件file中读取长度为n的字符串存入字符数s由

B.从文件file中读取长度不超过n-1个字符的字符放到字符数组S中

C.从文件file中读到n个字符串存入字符数组s中

D.从文件file中读取长度为n-1个字符的字符串存字符数组S中

74.在软件设计中不使用的工具是()。

A.系统结构图B.PAD图C.数据流图(DFD图)D.程序流程图

75.

设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n—c>d)运算后,n的值是()n

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

76.(74)用链表表示线性表的优点是()

A.便于插入和删除操作

B.数据元素的物理顺序与逻辑顺序相同

C.花费的存储空间较顺序存储少

D.便于随机存取

77.链表不具有的特点是()。

A.不必事先估计存储空间B.可随机访问任意元素C.插入、删除不需要移动元素D.所需空间与线性表长度成正比

78.若有下面说明和定义:

structtest

{intm1;charm2;floatm3;

unionuu(charu1[5];intu2[2];)ua;

}myaa;

则sizeof(structtest)的值是()。

A)20B)16

C)14D)9

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

A.abc28B.28cC.abcD.因类型不一致而出错

80.以下选项中能表示合法常量的是()。

A.1,200B.1.5E2.0C.”\”D.”\007”

五、程序改错题(1题)81.下列给定程序中,fun()函数的功能是:求3个数的最小公倍数,例如,给变量a、b、c、分别输入15、11、2,则输出结果应当是330。请修改函数中的错误,得出正确的结果。注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数proc(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。

例如,若输入字符串“1234”,则函数把它转换为整数值1234。

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。

试题程序:

参考答案

1.A在表达式“z=0.9+x/y”中,先计算“3.6-2”,结果为1;再计算“0.9+1”,结果为1.9。因为变量z为整型,所以z的值为1。故本题答案为A选项。

2.C程序运行后,首先输出的是p的值,然后再输出a的值。p=d++,得到p的值为d的初始值2;a的值不变,仍为1。

3.A

4.B栈是线性表的一种,其插入和删除运算都只在表的一端进行。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,不是最后被删除的元素,是按先进后出的原则组织数据的。

5.D解析:p->b应作为一个整体看待,++p->b和p->b++都使变量b增1,++(p++)->b先使b增1,再使p后移,D中表达式的含义是使p+1所指结构体变量中的成员b的值增1。

6.A预处理命令以“#”开头,一般在源文件的最前面书写,但不是必须在起始位置书写,所以B、C选项错误。C语言的预处理能够实现宏定义和条件编译的功能,所以D选项错误。故本题答案为A选项。

7.B

8.A程序定义整型变量a和i,其中a的初值为7。for循环中,循环变量i的取值为1,2,3。循环体中判断a的取值,当a>14时,执行break跳出循环;当a取值为奇数时,a%2==1,a自增3,执行continue继续执行循环体;当a取值为偶数时,a%2==0,a自增4,输出i和a的值。i取值为1时,a取值为7,自增3后a的值为10,执行下一个循环。i取值为2时,a取值为10,自增4后a的值为14,输出2,14。i取值为3时,a取值为14,自增4后a的值为18,输出3,18。i取值为4时,a取值为18,循环终止,输出4,18。综上,程序输出:2,14,3,18,4,18。本题答案为A选项。

9.C

10.C

11.B

\n本题考查for循环及if…else语句嵌套,第1次执行for循环,p[1][0]=p[1][0]=p[1][0]-1=3;第2次执行for循环,p[1][1]=p[1][1]-1=4;第3次执行for循环,p[1][2]=l,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

\n

12.Cfprintf函数将内容写入硬盘的文件,fputs函数将字符串写入文件,最终文件的内容为abc28。故本题答案为C选项。

13.C

14.C本题主要考查我们对C语言一些基础知识的掌握情况。下面分别分析本题的四个选项。

由于高级程序设计语言具有可读写、可理解性好等特点,这就要求高级程序设计语言用接近人们习惯的自然语言和数学语言作为语言的表达形式,选项A的说法正确。

在计算机中,机器可以接受和处理的只能是由0和1组成的二进制代码,用高级语言编写的程序都需要经过编译和连接,使其转化为二进制代码才能被机器执行。因此,选项B的说法正确。

C语言源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。因此,选项C的说法不正确。

由于高级语言编写的程序都需要经过编译和连接,才能被计算机执行,因此,每一种高级语言都有它对应的编译程序,D选项的说法正确。

15.C在C语言中,main函数也可以有参数,例如,main(intar90,char*argv),argc是指字符串的指针数组,而其他几项表达不正确。

16.C在fun函数中,while循环的功能是逐个取字符数组s的字符判断其是否是数字。若是则将这些数字组成一个数保存到变量n中,并返回变量n的值。

17.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;

表示逻辑条件。

18.A

19.B\n本题考查函数中数组和指针的传值,数组a[]在参数传递时,是传递的数组a的首地址,所以形参a和n都是指针变量。。

\n

20.Dch[1]即输出的为第二个字符串,即BBB。

21.fseek(文件指针位移量起始点)fseek(文件指针,位移量,起始点)解析:本题考查函数fseek的用法。fseek函数的调用形式为:

fseek(文件指针,位移量,起始点)

“起始点”用0,1或2代替,其中,0代表“文件开始”;1为“当前位置”;2为“文件末尾”。“位移量”指以“起始点”为基点,向前移动的字节数。ANSIC和大多数C版本要求位移量是long型数据,这样当文件的长度大于64k时不致出现问题。ANSIC标准规定在数字的末尾加一个字母L,就表示long型。

22.程序正确性程序正确性

23.读栈顶元素读栈顶元素解析:栈的基本运算有三种:入栈、退栈和读栈顶元素。

入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作:首先将栈顶指针进一(即top加1),然后将新元素插入到栈顶指针指向的位置。

退栈运算是指取出栈顶元素并赋给一个指定的变量。这个运算有两个基本操作:首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针退一(即top减1)。

读栈顶元素是指将栈顶元素赋给一个指定的变量。这个运算不删除栈顶元素,只是将它的值赋给一个变量。

24.自盒自盒解析:自盒测试法即结构测试,它与程序内部结构相关,要利用程序结构的实现细节设计测试实例。白盒测试法主要有逻辑覆盖、基本路径测试等。

25.SOSO解析:考查用指针引用字符串数组中元素的方法。题中需要注意两个问题:一是for循环的修正表达式共执行两次'i--'操作;二是*p[i]是对某个字符的引用。

26.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。

27.33解析:(p/3>0?p/10:p%3)是一个条件表达式。题中p=30,p/3>0为真,所以p/10的结果3作为整个表达式的值。

28.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。

29.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。

30.00解析:“ch=getchat()”的功能是从终端读入一个字符赋给变量ch,由于getchar()只能接收一个字符,所以输入的字符1被赋给ch,即“'1'!='0'”,循环体不执行,直接退出while循环,所以循环体执行的次数为0。

31.bcdefgha

32.ptrptr解析:本题考查函数指针的概念。函数指针的定义格式是:类型标识符(叶旨针变量名)()。注:“类型标识符”为函数返回值的类型。

33.-1-1解析:if~else语句的形式:if(表达式)语句1elseif语句2else语句3它的功能是:若表达式的值为真,执行语句1,并跳过其他语句,执行ifelse语句的下一条语句,若表达式的值为假,跳过语句1,执行语句2,依次往下判断;a=1,b=2,条件a>b不成立,继续判断a==b,仍不成立,则执行c=-1,输出-1。

34.10011fe

35.输出结果输出结果解析:注意:测试的基本方法和步骤。

36.123\n056\n009123\\n056\\n009解析:数组是用于按顺序存储同类型数据的数据结构,如果有一个一维数组,它的每一个元素是类型相同的一维数组,就形成了一个二维数组。在内存中数组的元素是连续顺序存放的,对;维数组来说,先存放第一行,再存放第;行,…,因为每一行都是其广义一维数组的元素,并且在给出全部数组元素的初值后,二维数组的定义中可以将第一维的下标省略。本题中,定义了一个元素类型为整型的二维数组敢a[][3]={1,2,3,4,5,6,7,8,9),它相当于一个3*3的矩阵,for(i=0;i<3:i++)for(j=i+1;j<3;j++)a[j][i]=0;将行下标i大于列下标j的元素s[1][0],a[2][0],a[2][1]赋值为0,最后for(j=0;j<3;j++)prinff('%n',a[i][j]);printf('\\n');进行换行输出,所以输出结果为

123

056

009

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

38.存储空间存储空间解析:空间复杂度是指算法在执行过程中临时占用的存储空间大小,包括:①算法本身所占用的存储空间;②算法的输入输出数据所占用的存储空间;③算法在运行过程中临时占用的存储空间。

39.16.0

40.栈栈解析:栈和队列都是—种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的—端进行插入或删除操作,是—种“先进后出”的线性表;而队列只允许在表的—端进行插入操作,在另—端进行删除操作,是—种“先进先出”的线性表。

41.B

42.A解析:本题考查文件使用方式标识符,以“叶”方式打开一个已存在的文件,则表示保留文件中原有的数据,文件的位置指针在文件末尾,此时,可以进行追加或读操作。

43.C解析:本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y、z。

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.A解析:C语言中比较表达式的运算结果为0或1。0代表不成立,1表示成立。

46.C解析:C语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项C中的目的中指针str3没有指向具体有效的存储单元,故是错误的调用。

47.C解析:定义一个字符指针t,并将字符指针s的首地址赋给字符指针t;通过while语句将指针t往下移到字符串最后一个字符后面的地址,指针s始终指向首地址,将末地址减去首地址可以计算出字符串的长度。

48.B解析:采用结构化编程方法的好处主要在于:一是便于控制、降低程序的复杂性,因此便于编写程序。二是程序清晰易读,可理解性好。因此,结构化程序设计主要强调的是程序的易读性,而不是程序的规模、程序的执行效率和程序的可移植性。

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

50.B解析:程序中首先定义了一个结构体,其成员为一字符数组和一浮点型数组。在main()首先定义了一个结构体数组并初始化。接下来在for循环中遍历了结构体数组中的第一个元素中数组成员即{“20021”,90,95,85”}循环结果为90+95+85=270最后sum为270,又输出格式为“%6.2f\\n”要求保留两位小数故最后输出为270.00。所以4个选项中B正确。

51.A解析:数据流图包括4个方面,即加工(转换)(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体)。不包括选项中的控制流。

52.B

53.D

54.A解析:本题考查字符串比较函数strcmp()的应用。strcmp(s1,s2)是中比较函数,当s1>s2时返回值为正数,当s1<s2时返回值为负数,当s1=s2时返回值为零。本题中s1,s2分别表示两个串中第一个字符的地址,s1++和s2++是将指针指向串的第二个字符,指针变量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指针变量s2指向的是字符'B'的地址。而在字符串比较中,宁符串大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的,字符'B'的ASCII码值为66,字符“b”的ASCII码值为98,所以s1>s2,返回值为正数。

55.D解析:streat(s1,s2)是把s2字符串连接到s1字符串的末尾,要保证s1能容纳下连接后的字符串。

56.B解析:C语亩足一种大小写敏感的语言,因此Int应为int,而CaseprintF则可以使用。

57.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

58.C解析:在for循环体中,首先判断自变量i能否被5整除,然后再自加两次,最后判断i能否被8整除。当for循环执行到第30次时,i的值为30能被5整除,然后i经过两次自加1运算,值变为32,能被8整除,故执行“printf('%d',i);”语句,即输出32。本题的答案为选项C)。

59.C解析:函数feof是用来判断文件是否已读到末尾,如果已读到末尾则返回非零值,否则返回0。

60.C解析:语句s+=2;使指针指向字符'c',此时s中保存的便是字符'c'的地址。

61.A本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和一般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针,所以数组名a可以用做函数fun()的实参。在fun()函数中,++P操作使形参P往后移动一个字符指针的位置,即指针a[1]的位置。故最后通过础nd()函数输出的字符串为“Afternoon”。因此A选项正确。

62.A

\n在函数fun中对参数n的值进行判断,如果其值等于1或2,则*p=1,否则,函数fun进行递归调用fun(n.1,&f1);fun(13.2,&f2);*p=n+f2;在主函数调用fun函数时传递给参数n的值为3,fun函数又递归用了两次自身fun(2,&n);fun(1,&f1);所以n和f2的值都为1,通过指针P的引用,变量S的值为2。

\n

63.C本题主要考查与算法有关的基本知识。算法是对一个问题求解步骤的描述,是求解问题的方法,它是指令的有限序列,其中的每条指令表示一个或多个操作。算法的效率不仅与问题的规模有关,还与数据的存储结构有关。

算法的时间复杂度和空间复杂度是衡量一个算法好坏的度量,其中时间复杂度是指执行算法所需要的计算工作量;空间复杂度是指算法在执行过程中所需要的计算机存储空间。算法的空间复杂度与时间复杂度不一定相关。

数据的逻辑结构反映的是数据的逻辑关系,与数据的存储结构无关,是独立于计算机的。因此,题目中说数据的逻辑结构与存储结构一一对应的说法不正确。本题答案选C。

64.Ar右移1位,结果为4,所以选择A。

65.C

66.C

67.D

68.C函数的参数通常分为两种:数值变量和指针变量。数值变量被函数调用后,函数内的参数为该数值变量的副本。对副本的一切操作都不会影响到调用函数外原来的参数。指针变量在函数中传递的是对其

温馨提示

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

评论

0/150

提交评论