2021-2022年甘肃省嘉峪关市全国计算机等级考试C语言程序设计_第1页
2021-2022年甘肃省嘉峪关市全国计算机等级考试C语言程序设计_第2页
2021-2022年甘肃省嘉峪关市全国计算机等级考试C语言程序设计_第3页
2021-2022年甘肃省嘉峪关市全国计算机等级考试C语言程序设计_第4页
2021-2022年甘肃省嘉峪关市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年甘肃省嘉峪关市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.按照“先进先出”组织数据的数据结构是()。

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

2.若有定义:inta,h;通过语句:scanf(”%d;%d”,&a,&B.;,能把整数3赋给变量a,5赋给变量b的输入数据是()。

A.35B.3,5C.3;5D.35

3.以下关于C语言的叙述中正确的是()。

A.C语言中的注释不可以夹在变量名或关键字的中间

B.C语言中的变量可以在使用之前的任何位置进行定义

C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D.C语言的数值常量中夹带空格不影响常量值的正确表示

4.以下选项中,当x为大于1的奇数时,值为0的表达式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

5.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法所需要的存储空间

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

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

7.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式()。

A.从左起输出该字串,右补空格B.按原字符长从左向右全部输出C.右对齐输出该字串,左补空格D.输出错误信息

8.

9.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()

A.a<>0B.!aC.a=0D.a

10.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。

A.单链表B.给出表头指针的单循环链表C.双链表D.带头结点的双循环链表

11.下列字符数组初始化语句中,不正确的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

C.charc[]={a,b,c,d);

D.charc[]={"ffgoodmorning"};

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

A.数据库系统是一个独立的系统,不需要操作系统的支持

B.数据库技术的根本目标是要解决数据的共享问题

C.数据库管理系统就是数据库系统

D.以上三种说法都不对

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

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

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

if(表达式.语句

其中“表达式”()。

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

15.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为______。

A.abcdefB.abcdC.abcdD.abcdef

16.软件生命周期中的活动不包括()

A.软件维护B.市场调研C.软件测试D.需求分析

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

A.autoB.staticC.registerD.void

18.在KMP算法中,已知模式串为ADABCADADA,请写出模式串的next数组值()

A.0,1,1,2,1,1,2,3,4,3

B.1,2,3,2,1,1,2,4,4,3

C.0,1,1,1,2,1,2,3,4,3

D.2,1,1,2,1,1,2,3,3,4

19.在以下的叙述中,正确的是()。

A.线性表的顺序存储结构优于链表存储结构

B.二维数组是其数据元素为线性表的线性表

C.栈的操作方式是先进先出

D.队列的操作方式是先进后出

20.计算机算法指的是()。

A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法

二、2.填空题(20题)21.已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。

22.[]的任务是诊断和改正程序中的错误。

23.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

wordnum(str)

charstr[];

{inti,num=0,word=0;

for(i=0;str[i]!=【】;i++)

if(【】==)word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

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

charstr[]="ABCD",*p=str;

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

25.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

27.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisisNO.”。空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES.\n");

case'n':

case'N':Printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnte

28.fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大数,再求这N个最大值中最小的那个数并作为函数值返回。请填空。

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

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

{for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

29.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。

30.度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为______。

31.本程序用改进冒泡法对数组a[n]的元素从小到大排序,请在程序空白处填空。

voidbubble(inta[],intn)

{intj,k,jmax,temp;

jmax=【】;

do{

k=0;

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

if(a[j]>a[j+1])

{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;

jmax=k;

}while(jmax>0);}

32.有以下定义语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear,

union{intshare1;

floatshare2;

}share;

}a;

33.若有以下程序

intf(intx,inty)

{return(y-x)*x;}

main()

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

d=f(f(3,4),f(3,5));

ptintf("%d\n",D);

执行后输出结果是______。

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

35.以下程序中给指针p分配3个double型动态内存单元,请填空。

#include<stdllb.h>

main()

{double*p;

p=(double*)malloc(【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

36.设x和y均为int型变量,且x=1,y=2,则表达式2.0+y/x的值为【】。

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

#definePR(a)printf("%d\t",(int)(a))

#definePRINT(a)PR(a);printf("ok!")

main()

{inti,a=1;

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

PRINT(a+i);

printf("\n");}

38.E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【】。

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

#include<stdio,h>

main()

{inta,b,c;

a=10;b:20;c=(a%b<1)‖(a/b>1);

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

}

40.结构化分析方法是面向______进行分析的方法。

三、1.选择题(20题)41.以下程序的输出结果是#include<stdio.h>main(){unionun{inti;longk;charc;};structbyte{inta;longb;unionunc;}r;printf("%d\n",sizeof(r));}

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

42.位运算071∧052的八进制值是()

A.52B.23C.17D.71

43.C语言中while和do-while循环的主要区别是

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件更严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

44.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面

45.下列数据结构中能应用二分查找的是()。

A.有序线性链表B.有序顺序表C.顺序存储的栈D.顺序存储的队列

46.若变量已正确定义,要求通过scanf("%c%d%c%d",&c1,&a,&c2,&B)语句给变量a和b分别赋32和45,给变量c1和c2分别赋字符A和B;下列选项中数据从第1列开始输入,正确的输入形式是()。

A.A32<CR>B45<CR>B.A45<CR>B32<CR>C.A32B45<CR>D.A32B45<CR>

47.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

48.设inti=10,j=11,k=12,x=0;执行语句:if(i>5)if(j>100)if(k>11)X=3;elsex=4;elsex=5;后x的值是()。

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

49.有以下程序

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

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

case3:a++;b++;

}

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

}

程序的运行结果是

A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

50.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及()。A.A.数据的存储结构B.计算方法C.数据映象D.逻辑存储

51.有以下程序:#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf("%d\n",i);}执行后输出结果是

A.28B.22C.16D.4

52.请读程序:#include<stdio.h>main(){inta=5,b=7,c=9;pintf("%d,%d,"a,b,C);printf("%d,%d",a,D);}上面程序的输出结果是_______。

A.5,7,9,5,7B.5,7,5,7C.5,7,不定7,9D.5,7,5,7,不定

53.下面程序输出的结果是()。#include<stdio.h>main(){char*a="1234";fun(a);printf("\n");}fun(char*s){chart;if(*s){t=*S++;fun(s);}elsereturn;if(t!='\0')putchar(t);}

A.1234B.4321C.1324D.4231

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

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

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

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

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

55.若有如下定义:ints[3]则下面表达式中不能代表数组元素s[1]的地址的是()

A.&s[1]B.&s[0]+1C.s+1D.s++

56.以下数组定义中错误的是()。

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

C.intx[][3]={{1,2,3},{4,5,6}};

D.intx[2][3]={1,2,3,4,5,6};

57.以下4个程序中,完全正确的是

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.include<stdio.h>main(){/*programming*/printf("programming!\n");}

58.TurboC将对以下程序______。main(){intx,y;y=creat(&x):printf("%d\n",y);}creat(inta){returna++;}

A.编译时会给出出错信息

B.顺利进行编译、连接、执行,不报任何错误

C.顺利通过编译、连接,但不能执行

D.顺利通过编译,但连接出错

59.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后的输出结果是______。

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

60.关于return语句,正确的说法是______。

A.在主函数和其他函数中均可出现

B.必须在每个函数中出现

C.可以在同一个函数中出现多次

D.只能在除主函数之外的函数中出现一次

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

voidfunl(char*p)

{char*q;

q=P;

while(*q!='\O')

{(*q)++;q++;}

}

main

{chara[]={"Program"),*P;

p=&a[3];funl(p);

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

}

程序执行后的输出结果是()。A.A.ProhsbnB.PrphsbnC.ProgsbnD.Program

62.开发大型软件时,产生困难的根本原因是()

A.大系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重

63.软件(程序.调试的目标是()。

A.诊断和改正程序中的错误

B.尽可能多地发现程序中的错误

C.发现并改正程序中的所有错误

D.确定程序中错误的性质

64.下面不属于软件设计阶段任务的是()。

A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计

65.

66.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。

A.提高耦合性降低内聚性有利于提高模块的独立性

B.降低耦合性提高内聚性有利于提高模块的独立性

C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D.内聚性是指模块间互相连接的紧密程度

67.

68.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0

69.在C程序中有如下语句:char*func(intx,inty);它是()。

A.对函数func的定义。B.对函数func的调用。C.对函数func的原型说明。D.不合法的

70.

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

A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为n/2

C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为log2n

D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为nlog2n

72.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。

A.一对一B.一对多C.多对多D.多对一

73.

74.下列程序的输出结果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8

75.

76.

77.

78.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00

79.

有以下程序

#include<stdio.h>

inta=1;

intf(intc)

{staticinta=2:

c=c+1:

return(a++)+C;

}

main

(inti,k=0;

for(i=0;i<2;i++){inta=3;k+=f(a);}

k+=a:

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

}

程序运行结果是()。

A.14B.15C.16D.17

80.HTTP协议的GET请求方法可以获取()类型的数据。

A.HTML文档B.图片C.视频D.以上都可以

五、程序改错题(1题)81.下列给定程序中函数proc()的功能是:将长整型数中为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如,当s中的数为12345678时,则t中的数为8642。

请修改函数proc()中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中。请编写函数proc(),它的功能是:函数返回指定成绩的学生数据,指定的成绩在主函数中输入。若没找到指定的成绩,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:

参考答案

1.A队列是一种特殊的线性表,只允许在表的一端插八元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”。先插入的元素先被删除,是按“先进先出”的原则组织数据的。

【知识拓展】“队列”和“栈”都是一种特殊的线性表。之所以称之为“队列”,其形式如“排队”。要讲究“先来后到”,先进先出,后进后出。

2.C输入数据的格式必须与seanf()的格式控制串完全匹配,所以输入时必须在3和5之间输入“;”。

3.B解析:C语言中注释可以放在任何位置,选项A错误;C语言中的变量只要在使用之前定义即可,位置可以是使用前的任何位置,故选项B正确;C语言中两侧数据类型可以不一致,系统可进行强制类型转换,选项C错误;C语言数值常量中不允许存在空格,选项D错误。

4.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1,因此,选项A)、C)中表达式的结果为真,不为0;对于选项B)来说,x除以2的商不会等于0;选项D)中表达式的结果为假,即等于0。

5.D解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。

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

7.B

8.D

9.D

10.D

11.A本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②℃语言中没有字符串变量,只能用字符数组来存储字符串。

12.B解析:本题考查数据库系统的基本概念和知识。

数据库系统除了数据库管理软件之外,还心须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项A的说法是错误的。

数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。

通常将引入数据库技术的计算机系统称为数据库系统。一个数据库系统通常由五个部分组成,包括相关计算机的硬件、数据库集合、数据库管理系统、相关软件和人员。

因此,选项C的说法是错误的。

因此,本题的正确答案是选项B。

13.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。

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

15.C解析:1.getchar():此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。

2.putchar():此函数的作用是向终端输出一个字符,也可以输出控制字符。本题在输入字符时,ab和c后面的回车符分别赋给了c[2]和c[4],所以,正确答案为C。

16.B【答案】:B

【知识点】:软件生命周期

【解析】:一个软件产品或软件系统要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期。它把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。通常,软件生存周期包括可行性分析与开发项计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同的阶段去完成。故选B。

17.A

18.A

19.B

20.C

21.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函数只有一个参数,该参数指定了需要分配多少字节的内存。然后将分配好的内存块的首地址作为void*(未知类型指针)返回.故标准的调用形式应该写成:

p(double*)malloc(sizeof(double));

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

23.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:

①for循环的结束条件应当是:str[i]已是字符串的最后一个字符;

②str[i]代表字符串sb中的第i+1个字符:

③整型变量num的值是要记录的单词的个数。

C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第一个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第二个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。

24.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],*(p+3)指的是字符“D”,输出时是以“%d”格式输出的,即输出其相应ASCII码值68。

25.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历.前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左了树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树:并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然光遍历右子树,然后访问根结点,最后遍历左子树。

26.14

27.

28.a[row][c01]>max或max<a[row][co1]max<min或min>maxa[row][c01]>max或max<a[row][co1]\r\nmax<min或min>max解析:本题有两层for循环,函数首先定义了整型变量row、col、max和min,其中row用于外循环的循环变量,col用于内循环的循环变量,max记录每行中的最人值,min记录所有行最大值中的最小值。在内循环中,首先给max赋初值为每行的第0个元素值,然后从第一个开始依次与max进行比较。如果大于max则将其值赋给max,当每一行循环结束,max记录了每一行的最大值。所以第一个空应该填a[row][co1]>max或max<a[row][co1)。退出内循环,在第一次退出内循环时,将min赋初值为第0行的max,然后在每次退出内循环时,将min和每行的max比较,如果大于max,则将max值赋min,所以第二个空应该填max<min或min>max,当退出外循环时,rain为所有行中的最大值的最小值。

29.线性结构线性结构解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。

30.4545解析:对于长度为N的线性表,在最坏情况下(即线性表中元素现在的顺序与目标顺序正好相反),冒泡排序需要经过N/2遍的从前往后的扫描和N/2遍的从后往前的扫描,需要的比较次数为N(N-1)/2。

31.n-1jn-1\r\nj解析:此题采用了do…while循环内嵌for循环的双层循环结构来实现了数组元素的排序。数组元素通过首地址和数组下标的方式来引用的。

32.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4-10。

33.99解析:在主函数中函数f(f(3,4),f(3,5))的返回值赋给d。函数的第一个参数为f(3,4)的返回值,函数f(9,4)返回值为(4-3)*3=3,f(3,5)返回值为(5-3)*3=6,那么函数f(f(3,4),f(3,5))等价于函数f(3,6)其返回值为(6-3)*3=9。因此d被赋值为9;所以输出9。

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

35.3*sizeof(double)3*sizeof(double)解析:malloc(size)函数用于申请动态存储空间,故应填3个double型变量在内存中所占的字节数。while循环的功能把字符从第二个元素开始左移一位,并将原第一个元素赋给最后一个元素。

36.4.0或44.0或4

37.123ok!123ok!解析:本题主要考查了printf函数用在了宏替换中。宏替换不是函数调用,只是一种简单的字符替代。所以本题中PRINT(a+i)展开为:printf(“%d\\t”,(int)(a+i)),当i=0时,输出1;当i=1时,输出2;当i=2时;输出3;for循环结束后输出ok!。

38.@

39.1020010200解析:程序中(a%b<1)||(a/b>1)的运算顺序为先算括号→算术运算符→关系运算符→逻辑运算符。首先计算a%b=10,a/b=0,因为a%b<1为假(0),a/b>1也为假(0),所以整个表达式的结果为假(0),最后输出a,b,c的值为10200。

40.数据流数据流解析:结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

41.A解析:本题主要考查了结构体和共用体数据的存储形式。共用体的一个特点是所有数据成员共用一段存储单元,而结构体每个数据成员都单独占据一段存储单元。共用体所占存储单元的大小由长度最长的数据成员的长度决定。题中共用体变量c占据4个字节的长度,结构体r所占存储空间的大小为int(2个字节)+long(4个字节)+共用体c(4个字节)=10个字节,所以答案为A)。

42.C

43.A解析:while是先判断条件再执行语句;do-while则是先执行依次语句再判断条件从而决定是否继续再执行循环体中的语句,这正是二者主要区别。注意:3种循环结构的比较。

44.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。

45.B解析:二分查找的具体过程为:将x与线性表的中间项进行比较,若中间项的值等于x,则说明查到,查找结束:若x小于中间项的值,则性表的前半部分(即中间项以前的部分)以相同的方法进行查找:若x大于中间项的值,则性表的后半部分(即中间项以后的部分)以相同的方法进行查找。这个过程一直进行到查找成功或子表长度为0(说明线性表中没有这个元素)为止。由此可知,有序线性表/顷序存储时才能采用二分查找。所以,本题的正确答案为B。

46.D解析:本题考查scanf函数的基本格式。当需要从键盘上输入数据时,输入的数值之间需要有间隔符(空格符号、制表符号、回车符号),间隔符号的使用数量不限。直到按下回车键,scanf函数才会接受从键盘输入的数据。

47.C解析:带参数宏的格式为:#define标识符(形参表)形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

48.D解析:首先判断i>5,表达式的值为真,再判断j>100,表达式的值为假,执行x=5。因此只有选项D正确。

49.D解析:本题考查switch语句,首先,x=1符合条件case1,执行switch(y)语句,y=0符合case0语句,执行a++并跳出switch(y)语句,此时a=1。因为case1语句后面没有break语句,所以向后执行case2语句,执行a++,b++,然后跳出switch(x),得a=2,b=1。

50.A解析:数据结构作为计算机的一门学科,主要研究和讨论以下三个方面的问题:①数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;②在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;③对各种数据结构进行的运算。

51.A解析:本题考核的知识点是宏定义的简单应用。本题中首先将所有的宏替换掉,则表达式为i=4+4*4+4/2+2*2+2,故最后输出的i的值为28。所以,4个选项中选项A符合题意。

52.D解析:printf函数按格式控制符的个数输出表列中对应的数据,若输出表列的个数大于格式控制符个数,则输出与格式控制符对应的输出表列的数据,输出表列中多的则省略;若格式控制符个数大于输出表列的个数,则输出与格式控制符对应的输出表列的数据,格式控制符多的部分输出的数据是随机的。

53.B解析:本题的fun()函数是用递归法实现逆序输出一个字符串。函数中首先定义一个局部变量t,然后s所指的内容是否为字符串结束符,不是的话将s所指的内容赋给t,同时使s后移一位,然后递归调用fun(s)。到这条语句为止是递归过程,即接下来连续递归调用fun(s)都只会执行到这一半,直到回朔条件(s所指内容是字符串结束符)出现,fun()函数连续返回,判断t不等于0的话,就输出t,所以输入的字符串被逆序输出,故本题的正确答案应该是B。

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

55.D

56.B解析:二维数组的初始化有以下几种形式:①分行进行初始化;②不分行进行初始化;③部分数组元素进行初始化;④省略第一维的定义,不省略第二维的定义。选顷B)等号右边分了3行,大于等号左边数组的行数2。

57.B解析:选项A)main();的分号是错误的,不能有分号;选项C)的注释语句多了两个*号;选项D)include前面没有#。

58.B解析:本题传送的实参是变量x的存储地址,但程序会把它当做实际传递的值来处理,不会报错。

59.C解析:本题考查“逻辑或”运算的特例。本题中if语句的条件表达式为(j++||k++)&&i++,首先计算表达式(j++||k++)的值,++运算符位于右侧,因此先取j、k当前值进行运算,因j=1,所以表达式(j++||k++)的值为真,k++表达式不再执行,故执行完表达式(j++||k++)&&i++后,j=2、k=2、i=2。

60.C

61.A本题中使用了函数的调用,由{unl函数中的while循环可知,循环的作用是为了把q所指向的内容增加l,而从主函数传到函数时是从下标为3开始传,因此当调用函数执行完后,传过去的字符串为'hsbn',前面不变。

62.A开发大型软件时,产生困难的原因有很多,如需求难以捕捉、员工水平有限、工作安排不太合理、进度控制难以把握、系统开发时间有限等元素,但这些都不是根本的原因,根本的原因是大系统的复杂性。

63.A\n软件测试与软件调试是两个不同的概念:软件测试的目的是发现错误,而软件调试的目的是发现错误或导致程序失效的原因,并修改程序以修正错误,调试是测试之后的活动。

\n

64.A软件设计阶段的主要任务包括丙个:一是进行软件系统的可行性分析,确定软件系统的建设是否值得,能否建成。二是进行软件的系统分析,了解用户的需求,定义应用功能,详细估算开发成本和开发周期。

65.B

66.B模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。故答案为B选项。

67.C

68.C子函数fun1(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doublex,doubley)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.0。

69.C

70.A

71.C\n\tC。【解析】二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。

72.C因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。

73.C

74.B本题考查函数调用时的参数传递。在执行函数func时,由于全局定义了一个变量b,所以在函数体中执行b=2+1=3,最终t=2+3=5。

75.B

76.D

77.A

78.A结构体和共用体;在“联合”中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值

79.A

\n在主函数中,k的初值为0,首先调用函数f(3),返回值为6,k的值变为6,而函数intfun(intc)中的局部静态变量a等于3。第二次调用函数f(3)时,返回值为7,所以k=6+7=13。退出循环语句,k再加上全局变量a的值l,其最终的值为14。

\n

80.D81.(1)错误:if(d%2!=0)

正确:if(d%2==0)

(2)错误:t=d*s1+t;

正确:*t=d*s1+*t;

【解析】题目要求长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。首先要判断每一位上的数是否为偶数,因此“if(d%2!=0)”应改为“if(d%2==0)”;变量t是一个指针变量,其是直接运算操作的内存地址,因此“t=d*sl+t;”应改为“*t=d*s1+*t;”。

82.

【解析】要返回指定成绩的学生数据,首先应该将所有学生的成绩与指定成绩相比较。如果有学生的成绩与指定成绩相等,则将该学生的记录返回给主函数,否则将学号置成空串,成绩置一l返回给主函数。

2021-2022年甘肃省嘉峪关市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.按照“先进先出”组织数据的数据结构是()。

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

2.若有定义:inta,h;通过语句:scanf(”%d;%d”,&a,&B.;,能把整数3赋给变量a,5赋给变量b的输入数据是()。

A.35B.3,5C.3;5D.35

3.以下关于C语言的叙述中正确的是()。

A.C语言中的注释不可以夹在变量名或关键字的中间

B.C语言中的变量可以在使用之前的任何位置进行定义

C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D.C语言的数值常量中夹带空格不影响常量值的正确表示

4.以下选项中,当x为大于1的奇数时,值为0的表达式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

5.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法所需要的存储空间

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

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

7.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式()。

A.从左起输出该字串,右补空格B.按原字符长从左向右全部输出C.右对齐输出该字串,左补空格D.输出错误信息

8.

9.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()

A.a<>0B.!aC.a=0D.a

10.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。

A.单链表B.给出表头指针的单循环链表C.双链表D.带头结点的双循环链表

11.下列字符数组初始化语句中,不正确的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

C.charc[]={a,b,c,d);

D.charc[]={"ffgoodmorning"};

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

A.数据库系统是一个独立的系统,不需要操作系统的支持

B.数据库技术的根本目标是要解决数据的共享问题

C.数据库管理系统就是数据库系统

D.以上三种说法都不对

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

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

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

if(表达式.语句

其中“表达式”()。

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

15.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为______。

A.abcdefB.abcdC.abcdD.abcdef

16.软件生命周期中的活动不包括()

A.软件维护B.市场调研C.软件测试D.需求分析

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

A.autoB.staticC.registerD.void

18.在KMP算法中,已知模式串为ADABCADADA,请写出模式串的next数组值()

A.0,1,1,2,1,1,2,3,4,3

B.1,2,3,2,1,1,2,4,4,3

C.0,1,1,1,2,1,2,3,4,3

D.2,1,1,2,1,1,2,3,3,4

19.在以下的叙述中,正确的是()。

A.线性表的顺序存储结构优于链表存储结构

B.二维数组是其数据元素为线性表的线性表

C.栈的操作方式是先进先出

D.队列的操作方式是先进后出

20.计算机算法指的是()。

A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法

二、2.填空题(20题)21.已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。

22.[]的任务是诊断和改正程序中的错误。

23.下述函数用于统计一行字符中的单词个数,单词之间用空格分隔。

wordnum(str)

charstr[];

{inti,num=0,word=0;

for(i=0;str[i]!=【】;i++)

if(【】==)word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

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

charstr[]="ABCD",*p=str;

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

25.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

27.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisisNO.”。空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES.\n");

case'n':

case'N':Printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnte

28.fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大数,再求这N个最大值中最小的那个数并作为函数值返回。请填空。

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

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

{for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

29.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。

30.度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为______。

31.本程序用改进冒泡法对数组a[n]的元素从小到大排序,请在程序空白处填空。

voidbubble(inta[],intn)

{intj,k,jmax,temp;

jmax=【】;

do{

k=0;

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

if(a[j]>a[j+1])

{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;

jmax=k;

}while(jmax>0);}

32.有以下定义语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear,

union{intshare1;

floatshare2;

}share;

}a;

33.若有以下程序

intf(intx,inty)

{return(y-x)*x;}

main()

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

d=f(f(3,4),f(3,5));

ptintf("%d\n",D);

执行后输出结果是______。

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

35.以下程序中给指针p分配3个double型动态内存单元,请填空。

#include<stdllb.h>

main()

{double*p;

p=(double*)malloc(【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

36.设x和y均为int型变量,且x=1,y=2,则表达式2.0+y/x的值为【】。

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

#definePR(a)printf("%d\t",(int)(a))

#definePRINT(a)PR(a);printf("ok!")

main()

{inti,a=1;

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

PRINT(a+i);

printf("\n");}

38.E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【】。

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

#include<stdio,h>

main()

{inta,b,c;

a=10;b:20;c=(a%b<1)‖(a/b>1);

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

}

40.结构化分析方法是面向______进行分析的方法。

三、1.选择题(20题)41.以下程序的输出结果是#include<stdio.h>main(){unionun{inti;longk;charc;};structbyte{inta;longb;unionunc;}r;printf("%d\n",sizeof(r));}

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

42.位运算071∧052的八进制值是()

A.52B.23C.17D.71

43.C语言中while和do-while循环的主要区别是

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件更严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

44.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面

45.下列数据结构中能应用二分查找的是()。

A.有序线性链表B.有序顺序表C.顺序存储的栈D.顺序存储的队列

46.若变量已正确定义,要求通过scanf("%c%d%c%d",&c1,&a,&c2,&B)语句给变量a和b分别赋32和45,给变量c1和c2分别赋字符A和B;下列选项中数据从第1列开始输入,正确的输入形式是()。

A.A32<CR>B45<CR>B.A45<CR>B32<CR>C.A32B45<CR>D.A32B45<CR>

47.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

48.设inti=10,j=11,k=12,x=0;执行语句:if(i>5)if(j>100)if(k>11)X=3;elsex=4;elsex=5;后x的值是()。

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

49.有以下程序

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

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

case3:a++;b++;

}

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

}

程序的运行结果是

A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

50.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及()。A.A.数据的存储结构B.计算方法C.数据映象D.逻辑存储

51.有以下程序:#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf("%d\n",i);}执行后输出结果是

A.28B.22C.16D.4

52.请读程序:#include<stdio.h>main(){inta=5,b=7,c=9;pintf("%d,%d,"a,b,C);printf("%d,%d",a,D);}上面程序的输出结果是_______。

A.5,7,9,5,7B.5,7,5,7C.5,7,不定7,9D.5,7,5,7,不定

53.下面程序输出的结果是()。#include<stdio.h>main(){char*a="1234";fun(a);printf("\n");}fun(char*s){chart;if(*s){t=*S++;fun(s);}elsereturn;if(t!='\0')putchar(t);}

A.1234B.4321C.1324D.4231

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

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

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

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

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

55.若有如下定义:ints[3]则下面表达式中不能代表数组元素s[1]的地址的是()

A.&s[1]B.&s[0]+1C.s+1D.s++

56.以下数组定义中错误的是()。

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

C.intx[][3]={{1,2,3},{4,5,6}};

D.intx[2][3]={1,2,3,4,5,6};

57.以下4个程序中,完全正确的是

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.include<stdio.h>main(){/*programming*/printf("programming!\n");}

58.TurboC将对以下程序______。main(){intx,y;y=creat(&x):printf("%d\n",y);}creat(inta){returna++;}

A.编译时会给出出错信息

B.顺利进行编译、连接、执行,不报任何错误

C.顺利通过编译、连接,但不能执行

D.顺利通过编译,但连接出错

59.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后的输出结果是______。

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

60.关于return语句,正确的说法是______。

A.在主函数和其他函数中均可出现

B.必须在每个函数中出现

C.可以在同一个函数中出现多次

D.只能在除主函数之外的函数中出现一次

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

voidfunl(char*p)

{char*q;

q=P;

while(*q!='\O')

{(*q)++;q++;}

}

main

{chara[]={"Program"),*P;

p=&a[3];funl(p);

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

}

程序执行后的输出结果是()。A.A.ProhsbnB.PrphsbnC.ProgsbnD.Program

62.开发大型软件时,产生困难的根本原因是()

A.大系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重

63.软件(程序.调试的目标是()。

A.诊断和改正程序中的错误

B.尽可能多地发现程序中的错误

C.发现并改正程序中的所有错误

D.确定程序中错误的性质

64.下面不属于软件设计阶段任务的是()。

A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计

65.

66.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。

A.提高耦合性降低内聚性有利于提高模块的独立性

B.降低耦合性提高内聚性有利于提高模块的独立性

C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D.内聚性是指模块间互相连接的紧密程度

67.

68.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0

69.在C程序中有如下语句:char*func(intx,inty);它是()。

A.对函数func的定义。B.对函数func的调用。C.对函数func的原型说明。D.不合法的

70.

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

A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为n/2

C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为log2n

D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为nlog2n

72.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。

A.一对一B.一对多C.多对多D.多对一

73.

74.下列程序的输出结果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8

75.

76.

77.

78.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00

79.

有以下程序

#include<stdio.h>

inta=1;

intf(intc)

{staticinta=2:

c=c+1:

return(a++)+C;

}

main

(inti,k=0;

for(i=0;i<2;i++){inta=3;k+=f(a);}

k+=a:

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

}

程序运行结果是()。

A.14B.15C.16D.17

80.HTTP协议的GET请求方法可以获取()类型的数据。

A.HTML文档B.图片C.视频D.以上都可以

五、程序改错题(1题)81.下列给定程序中函数proc()的功能是:将长整型数中为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如,当s中的数为12345678时,则t中的数为8642。

请修改函数proc()中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中。请

温馨提示

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

评论

0/150

提交评论