2022-2023年山东省临沂市全国计算机等级考试C语言程序设计_第1页
2022-2023年山东省临沂市全国计算机等级考试C语言程序设计_第2页
2022-2023年山东省临沂市全国计算机等级考试C语言程序设计_第3页
2022-2023年山东省临沂市全国计算机等级考试C语言程序设计_第4页
2022-2023年山东省临沂市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年山东省临沂市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易读性和文档性

2.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于()。

A.定义阶段B.开发阶段C.维护阶段D.上述三个阶段

3.

4.栈和队列的共同特点是()。

A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点

5.CPU能够直接访问的存储器是

A.软盘B.硬盘C.RAMD.CD-ROM

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

main()

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

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

A.6,1B.2,1C.6,0D.2,0

7.以下程序输出正确的是______。amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);arnovep(p,a,3);printf("%d%d\n",p[2],p[5];free(p);}

A.56B.25C.34D.程序错误

8.以下选项中,能用作数据常量的是______。A.o115B.0118C.1.5e1.5D.115L

9.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序运行后的输出结果是()。

A.0B.4C.6D.7

10.以下程序的输出结果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

11.在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的。”这一性质指的是对象的

A.分类性B.标识惟一性C.多态性D.封装性

12.下面程序段的运行结果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

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

13.稀疏矩阵一般的压缩存储方式有两种,即()。

A.二维数组和三维数组B.三元组和散列C.三元组和十字链表D.散列和十字链表

14.

15.下列程序的运行结果是()。#include<stdio.h>#defineADD(x)x+xmain{intm=1,n=2,k=3;intS=ADD(m+n)*k;printf("s=%d",s);}A.sum=18B.sum=10C.sum=9D.sum=25

16.

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

A.只能在循环体内和switch语句体内使用break语句

B.eotinue语句的作用是结束整个循环的执行

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用got0语句

18.以下程序的输出结果是().A.A.2222B.2468C.222D.246

19.设有定义:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若变量均已正确赋初值,则以下语句中错误的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

20.有以下程序:#include<stdio.h>main(){unsignedchara=8,C;C=a>>3:printf("%d\n",c);}程序运行后的输出结果是()。A.32B.16C.1D.0

二、2.填空题(20题)21.在面向对象方法中,类之间共享属性和方法的机制称为______。

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

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=ii;i++)

switch(i/10)

{case0:m++;n++;break;

case10:n++;break;

default:k++;n++;

}

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

}

23.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

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

intm=13;

intfun(intx,inty)

{intm+3;

return(x*y-m);

}

main()

{inta=7,b,5;

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

}

25.写出下列程序的输出结果______。

main()

{intn=0;

while(n++<=1);

printf("%d,",n);

printf("%d",n++);

}

26.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。

27.以下程序的功能是找出三个字符串中的最大串。

【】

#include<stdio.h>

main()

{inti;

charstring[20],str[3][20];

(i=0;i<3;i++)gets(【】);

if(strcmp(str,str[0],str[1]>0)strcpy(string,str[0]);

elsestrcpy(string,str[1]);

if(strcmp(str[2],string)>【】)srtcpy(string,str[2]);

printf("Thelargeststringis\n%s\n",string);

}

28.若a是int型变量,则表达式(a=2*3,a*2),a+4的值为______。

29.下面程序的运行结果是______。

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

{

main()

{intaa[3]={1,2.3},s;

s=f(&aa[0],3);

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

}

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

structst

{charname[20];doublescore;};

main()

{structstex;

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

}

31.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

【】

if(s[*k]<s[i])*k=i;

return【】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

clrscr();

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

32.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)

______

main()

{printf("\n");

try_me();

printf("\n");}

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

34.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【】。

35.—个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

36.下列程序的运行结果为【】。

#include<stdio.h>

main()

{staticcharstr1[40];

charstr2140];

strcpy(str2,"China");

strcat(str1,str2);

strcat(str1,"isagreatcountry!");

printf("%s%s",str2,strl);

printf("%d%d\n",strlen(str2),strlen(str1));

}

37.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(______);

ch=fSetc(fp);

while(!feof(fp)){putchar(ch);ch=fSetc(fp);}

putchar('\n');fclose(fp);

}

38.与表达式a+=b等价的另一书写形式是______。

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

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);}

40.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

三、1.选择题(20题)41.下述关于数据库系统的叙述中正确的是______。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

42.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。

A.函数的实参和其对应的形参共占同一存储单元

B.形参只是形式上的存在,不占用具体存储单元

C.同名的实参和形参占同一存储单元

D.函数的形参和实参分别占用不同的存储单元

43.一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用()。A.A.栈B.堆C.数组D.链表

44.以下程序调用findmax函数返回数组中的最大值findmax(int*a,intn){int*p,*s;for(p=a,s=a;p-a<n;p++)if(_____)s=p;return(*s);}main(){intx[5]={12,21,13,6,18};printf(“%d\n”,findmax(x,5));}在下划线处应填入的是

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

45.下列形式的常数中,不符合c语言语法规范的是______。

A.0.45B.±123C.25.6e-2D.4e3

46.已知下列函数定义:fun(int%,intc,intn,intdatA){intk;for(k=0;k<m*n;k++){*b=data;b++;}}则调用此函数的正确写法是(假设变量a的说明为inta[50])()。

A.fun(*a,4,5,1);

B.fun(&a,4,5,1);

C.fun((int*)a,4,5,1);

D.fun(a,4,5,1);

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

A.在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息

B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节

C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则

D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法

48.变量a所占的内存字节数是______。unionU{charst[4];inti;long1;};structA{intc;unionUu;}a;

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

49.在下列四条叙述中,错误的一条是()

A.内存是主机的组成部分

B.对于种类不同的计算机,其机器指令系统都是相同的

C.CPU由运算器和控制器组成

D.十六进制微型机的含义是:这种机器能同时处理十六位二进制数

50.以下程序运行后,输出结果为______。main(){inta[2][3]{1,3,5,7,9,11}*s{2]**pp,*p;s[0]=a[0],s[1]=a[1]pp=sp=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

A.1B.7C.9D.11

51.下面程序的输出结果为______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

52.下列不属于软件工程的3个要素的是______。

A.工具B.过程C.方法D.环境

53.已知学生记录描述为:structstudent{intno;charname[20],sex;struct{intyear,month,day;}birth;};structstudents;设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是()。

A.year=1984;month=11;day=12;

B.s.year=1984;s.month=11;s.day=12;

C.birth.year=1984;birth.month=11;birth.day=12;

D.s.birth.year=1984;s.birth.month=11;s.birth.day=12;

54.有以下程序:main(){unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf(“%d\n",D);}程序运行后的输出结果是()。

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

55.有以下程序int*f(znt*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

56.以下程序的输出结果是f(intb[],intm,intn){inti,s=0;for(i=m;i<n;i=i+2)s=s+b[i];returns;}main(){intx,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf(“%d\n”,x);}

A.10B.18C.8D.15

57.若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是()。

A.int*i=NULL;

B.float*f=NULL;

C.chart='m',*c=&t;

D.long*Lscanf("%d",i);*f=10.5;*c=&t;L='\0';

58.设有定义:intn1=0,n2,*p=&n2,*q=&n1;,下列赋值语句中与n2=n1;语句等价的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

59.两个或两个以上的模块之间关联的紧密程度称为()

A.耦合度B.内聚度C.复杂度D.连接度

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

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

四、选择题(20题)61.若有以下说明,则()不是对strcpy库函数正确的调用。strcpy库函数用于复制一个字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";

A.strcpy(str2,strl)

B.strcpy(str3,strl)

C.strcpy(strl,str2)

D.strcpy(str5,strl)

62.有以下程序

#defineN15

fun(inta[],intn,intm)

{inti,j;

for(i=m;i>=n;i--)

a[i+1]=a[i];

}

main()

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

fun(a,3,7);

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

printf("%d",a[i]);

}

程序的运行结果是A.A.45678

B.44567

C.45567

D.45677

63.下面的变量说明中__________是正确的。

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

64.

65.

66.

67.执行语句“for(i=1;i++<;4;);”后,变量i的值是()。

A.3B.4C.5D.不定

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

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

69.(14)结构化程序设计主要强调的是()

A.程序的规模

B.程序的易读性

C.程序的执行效率

D.程序的可移植性

70.

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

A.ABCDE\0FG\OUKB.ABCDUKC.UKD.EFGUK

71.为用户与数据库系统提供接口的语言是

A.高级语言B.数据描述语言(DDL)C.数据操纵语言(DML)D.汇编语言

72.

73.

74.运行下列程序,若从键盘输入字符“a”,则输出结果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

75.(69)单个用户使用的数据视图的描述称为()

A.外模式

B.概念模式

C.内模式

D.存储模式

76.

77.

78.

79.(24)对建立良好的程序设计风格,下面描述正确的是()

A.程序应简单、清晰、可读性好

B.符号名的命名要符合语法

C.充分考虑程序的执行效率

D.程序的注释可有可无

80.

五、程序改错题(1题)81.下列给定程序中,proc()函数的功能是:根据形参m,计算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若输入10,则应输出2.928968。请修改程序中的错误,使它能计算出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编一个函数fun(char*str),该函数的功能是把字符串中的内容逆置。例如,字符串中原有的字符串为asdfg,则调用该函数后,串中的内容为gfdsa。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C

2.B解析:软件生命周期由软件定义、软件开发和软件维护三个阶段组成。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发阶段由5个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。选项B正确。

3.D

4.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。

5.C解析:CPU读取和写人数据都是通过内存来完成的。

6.B解析:算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a=25/10%9=2%9=2:当逻辑运算符“&&”两边的值都是非零时,逻辑表达式的值才为真(即为1)。所以b=2&&(-1)=1。

7.A解析:本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各元素分别为:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过mailoc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用函数amovep,使得实参p与形参p,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。

8.D在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量和实型常量又称数值型常量。基本整型常量只能用数字表示,不带小数点,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—个字母l(L的小写)或L;实型常量必须用带小数点的数表示,例如3.14159、-2.71828、0.0等;选项A中字母o不符合要求,选顶B中超出八进制的范围,选项C中e后面的不为整数,因此选顶D是正确的。

9.D解析:在程序中,当L的值为5和4时,case都没有与其匹配的值,所以执行default语句;当k=3时,执行n+=k;得n=3;当L=2时,执行case2:然后顺序执行case3:n+=k;得n=5;当k=1时,执行case1:n+=k;得n=6,然后顺序执行case2:和case3:n+=k;使得n=7。

10.A解析:n--是先使用后自减,--n是先自减后使用。n=4时,执行n--后,n变为3,执行--n后,n变为2,所以,第一次输出时,n为2;同上过程,第二次输出时,n为0。

11.D解析:从外面看只能看到对象的外部特性,而对象的内部,即处理能力的实行和内部状态,指的是对象的封装性。

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

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

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

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

13.C

14.D

15.B本题考查带参数的宏的定义:“#defineADD(x)x+x”中X代表m+n,故s写成s=m+n+m+n*k=1+2+1+2*3=10。

16.D

17.A本题考查循环跳出的知识点:①break语句可以出现在switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行,执行contiune语句不会使整介循环终止;③循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用90t0语句或者break语句。

18.D

19.C结构体不能通过结构体名字整体赋值,通过结构体名.成员名的方式赋值。所以C选项错误。

20.C题中定义了无符号数,c=a>>3;是指右移3位,然后输出。结果为C。

21.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。

22.132132解析:本题for循环语句的执行过程为:

第一次循环:i=9,9/10=0,执行m++、n++得m=1、n=1、k=0;

第二次循环:i=10,10/10=1,执行k++、n++得m=1、n=2、k=1;

第三次循环:i=11,11/10=1,执行k++、n++得m=1、n=3、k=2;

即执行完for循环后m=1、n=3、k=2。

23.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。

24.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。

25.333,3解析:本题在while(n++<=1)语句后,直接加了分号,说明如果while()的条件为真时,该循环什么都不做:n++是先取n的当前值和1做比较,然后再将n加1。第一次循环,n=0时,循环条件n++=<1成立,执行循环,然后得到n=1。第二次循环,n=1时,循环条件n++=1<=1成立,执行循环,然后得到n=2。第三次循环,n=2时,循环条件n++=2<=1不成立,不执行循环,但在判断循环条件时仍将n加1,得到n=3.退出循环后执行printf语句,第二个printf语句输出n++,是先输出n的当前值3,然后再将n加l,即程序结束后得到n=4,但输出的是3。

26.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。

27.#include<string.h>str[i]0

28.此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给a赋值6,所以返回值a+4=6+4=10。

29.66解析:经过分析将递归函数写成其数学表达式如下:

f(&a,n)=a[0]+f(&a[1],n-1)n>1

f(&a,n)=a[0]n=1

本题中定义了一个长度为3的数组aa并初始化。接着调用递归函数f,由上面的数学表达式以计算其返回值s=1+2+3=6,所以空格处应该填6。

30.ex或structstex或structst

31.for(i=0;i<t;i++)0for(i=0;i<t;i++)\r\n0解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应使*k的值为数组中的某一下标值,即*k=0。

32.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用ginclude文件包含命令将定义函数的文件包含进来。

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

34.物理独立性物理独立性解析:数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为物理独立性。

35.可重用性可重用性解析:继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

36.ChinaChinaisagreatcountry!525

37.解析:fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。

38.a=a+ba=a+b解析:a+=b与a=a+b等价,作用是把变量a的值加b后再赋给变量a。

39.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;

40.doublemax或externdoublemaxdoublemax或externdoublemax解析:本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。

41.A解析:由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。这里所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一个数据在系统的不同拷贝处有不同的值。

42.D解析:在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择D。

43.A解析:一些较流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每一次执行后,都能返回到最近一次调用它的过程中。这样各调用点之间形成一种后进先出关系,而栈结构正适合来存储这些调用点。选项A正确。

44.B解析:在main()函数中定义了一个具有5个元素的x数组并赋初值,然后调用findmax()函数求数组中元素的最大值。调用时把数组元素x的首地址,传给了形参指针变量a,把5传给形参n。在函数findmax()中定义了两种指针变量p和s,其中s用来记录最大元素的地址,p作为循环控制变量,表示每个元素的地址。求最大值的算法是先将第一个元素(用s记下它的地址)做为最大值,然后用最大值(*s)与后面的每个元素比较(*p),若后面的元素大,则用s记下它的地址,所以下划线应填“*8<*p或“*p>*8”。

45.B解析:C程序允许出现的常数为有一确定值的整数或实数(可用小数形式或指数形式)等。土123不是确定值,是不可以出现的。

46.D

47.CC。【解析】在模块化程序设计中,模块之间的联系可以通过程序的控制结构来实现,在自顶向下、逐步细化的设计过程中,首先要考虑全局目标,而不是细节。在程序设计中模块化和结构化可以同时使用,一个模块的内部结构也要符合结构化设计原则。

48.C解析:结构体变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变量u最大长度为4个字节,故选C。

49.B

50.C解析:s是—个含有两个元素的指针数组,pp是—个指向指针变量的指针,s[0]是指向二维数组a行下标为0的元素的首地址,即a[0][0]的地址,s[1]为a[1][0]的地址。pp的值为s[o]的地址。*pp=s[1][1])后,a[0][0]的值将被赋值为a[1][1]的值,执行p*pp;后,p中将是s[0]的值,最后的输出语句将输出地址s[0])所指向的数据,即时a[0][0]。

51.B解析:strcpy(str1,s1):作用是将字符串s1拷贝到字符数组str1中去。strcat(字符数组1,字符数组2):把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后返回字符数组1的地址。本题定义了三个字符数组p1,p2,sir,strcat(p1,p2)函数的作用是将字符串数组p2接到字符串p1的后面,结果放在字符数组p1中,再通过strcpy()函数将该字符串拷贝到str数组中,原str数组中的字符串xyz被覆盖,因此打印输出字符串str即可得到abcABC。

52.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。

53.D解析:本题考查结构体变量的基本概念。引用结构体成员的方式为:

结构体变量名.成员名

“.”是“成员运算符”(分量运算符),如果成员本身又是一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员。只能对最低级的成员进行赋值或存取以及运算,所以选项D)正确。

54.B解析:本题中主要进行位逻辑计算。将a的值转换为二进制000000010,b转换为二进制00000100,将a和b进行按位或运算,因此d的二进制数为00000110,c的二进制为00000101;接下来把d和c进行按位与运算,并转化为十进制输出。

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

56.A解析:在main()函数中定义了一个变量x,以及一个有9个元素的数组a,并且每个元素分别赋初值为1、2、3、4、5、6、7、8和9。执行函数调用f(a,3,7),把a的首地址赋给形参b,把3和7分别赋给形参m和n。在f()函数中,for循环执行了2次:第一次,i的值为3,相当于执行了语句“s=s+b[3],b[3]的值就是a[3]的值4,故s的值变为4;第二次,i值为5,相当于执行了语句“s=s+b[5];”,b[5]的值6,故s的值变为10。把s作为函数值返回并赋值给x。

57.D解析:选项A定义了一个整型变量i,并且初始化让它指向NULL,接着通过scanf()函数,改变i指向的存储空间的值,选项A中首先定义了整型指针变量i并初始化为NULL,即表示指针i不指向任何内存,即此时程序还没有为i在内存中开辟存储单元,而在scanf0函数中第二个参数是地址参数,显然在这里i不在表示地址,所以下面的scanf('%d',i)语句足不正确的,故选项A不正确;选项B定义了一个浮点型变量f并初始化让它指向NULL,而当一个指针变量指向NULL以后不能在给它赋值,而接下来的程序中为其赋了一值;故选项B错误;选项C中首先定义了一个字符变量t并给它赋初值\'m\',然后定义个字符型指针c并让它指向了变量t,这一部分正确,然后接着用了—个语句“*c=&t;”应该将该语句中c前的“,”去掉,故选项C运用指针变量不正确。所以,4个选项中选项D符合题意。

58.A解析:在定义指针变量p和q时,分别把变量n2和n1的地址赋给了指针变量p和q,所以*p和*q中内容就分别是变量n2和n1的值,所以语句*p=*q与语句n2=n1等价。因此选项A)正确。

59.AA)【解析】耦合度是模块间互相连接的紧密程度的度量;内聚度是一个模块内部各个元素间彼此结合的紧密程度的度量。

60.C

61.Cstrcpy(sl,s2)函数的功能是将字符串s2复制到字符串s1中。要保证s1存储区能容纳下s2字符串。

62.B题目中的程序包括主程序main和fun函数。主程序中定义了一个数组a,并赋给了初值。通过调用fun函数,对数组a中的值进行更改操作,最后要求的结果是输出数组a中a[3]~a[7]的值。解决本题的关键在于清楚地理解fun函数的功能。fun函数有3个形参,包括1个整型数组a[],2个整型变量n和m。fun函数的功能是将数组a[i+1]的值等于a[i]的值,i的初始值大小为m,依次减1,直到数值等于n。主函数调用fun函数时,输入的实参为(a,3,7),即fun函数要将数组a[i+1]的值等于a[i]的值,i的取值范围从7到3,如a[8]=a[7]。fun函数执行完毕,数组a中的值变为1,2,3,4,4,5,6,7,9,10。输出a[3]~a[7]的值为4,4,5,6,7。

63.B

64.D

65.B

66.B

67.Cfor循环结束时,i++的值应为4,i自加后此时应为5,故选择C选项。

68.D

69.B

70.Bchar*streat(char*dest,char*src)的功能是:把sre所指字符串添加到dest结尾处(覆盖dest结尾数组中存放的字符串为”ABCD”,所以将两个字符串拼接后结果为”ABCDUK”。

71.C数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。

\u3000\u3000数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。

\u3000\u3000数据查询语言(DQL),例如:SELECT语句。

\u3000\u3000数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。

72.A

73.C

74.C

\ngetchar函数是读取键盘的输入函数,本题中输入字母“a”,则c=a,判断if条件,发现a>=a&&a<=g成立,则执行下列语句:C=C+4,C得到的字符的ASCII码值,退出if语句,通过putchar函数输出字符。

75.A

76.C

77.A

78.D

79.A

80.C

81.(1)错误:t+=1.0/k;

正确:t+=1.o/i;

(2)错误:returni;

正确:returnt;

【解析】根据for循环可知,变量i中存放每一项的分母,变量k在函数procee没有定义,因此t+=l.0/k;应改为t+=1.0/i;。变量t中存放各项的和,题目要求将各项的和返回给主函数,因此returni应改为returnt。

82.

【解析】在fun()函数中,首先求行字符串的长度,然后通过循环进行字符交换。要注意的是,如果字符串长度是奇数,则最中间的元素在逆置前后的位置是没有改变的。

2022-2023年山东省临沂市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易读性和文档性

2.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于()。

A.定义阶段B.开发阶段C.维护阶段D.上述三个阶段

3.

4.栈和队列的共同特点是()。

A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点

5.CPU能够直接访问的存储器是

A.软盘B.硬盘C.RAMD.CD-ROM

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

main()

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

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

A.6,1B.2,1C.6,0D.2,0

7.以下程序输出正确的是______。amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);arnovep(p,a,3);printf("%d%d\n",p[2],p[5];free(p);}

A.56B.25C.34D.程序错误

8.以下选项中,能用作数据常量的是______。A.o115B.0118C.1.5e1.5D.115L

9.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序运行后的输出结果是()。

A.0B.4C.6D.7

10.以下程序的输出结果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

11.在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的。”这一性质指的是对象的

A.分类性B.标识惟一性C.多态性D.封装性

12.下面程序段的运行结果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

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

13.稀疏矩阵一般的压缩存储方式有两种,即()。

A.二维数组和三维数组B.三元组和散列C.三元组和十字链表D.散列和十字链表

14.

15.下列程序的运行结果是()。#include<stdio.h>#defineADD(x)x+xmain{intm=1,n=2,k=3;intS=ADD(m+n)*k;printf("s=%d",s);}A.sum=18B.sum=10C.sum=9D.sum=25

16.

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

A.只能在循环体内和switch语句体内使用break语句

B.eotinue语句的作用是结束整个循环的执行

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用got0语句

18.以下程序的输出结果是().A.A.2222B.2468C.222D.246

19.设有定义:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若变量均已正确赋初值,则以下语句中错误的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

20.有以下程序:#include<stdio.h>main(){unsignedchara=8,C;C=a>>3:printf("%d\n",c);}程序运行后的输出结果是()。A.32B.16C.1D.0

二、2.填空题(20题)21.在面向对象方法中,类之间共享属性和方法的机制称为______。

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

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=ii;i++)

switch(i/10)

{case0:m++;n++;break;

case10:n++;break;

default:k++;n++;

}

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

}

23.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

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

intm=13;

intfun(intx,inty)

{intm+3;

return(x*y-m);

}

main()

{inta=7,b,5;

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

}

25.写出下列程序的输出结果______。

main()

{intn=0;

while(n++<=1);

printf("%d,",n);

printf("%d",n++);

}

26.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。

27.以下程序的功能是找出三个字符串中的最大串。

【】

#include<stdio.h>

main()

{inti;

charstring[20],str[3][20];

(i=0;i<3;i++)gets(【】);

if(strcmp(str,str[0],str[1]>0)strcpy(string,str[0]);

elsestrcpy(string,str[1]);

if(strcmp(str[2],string)>【】)srtcpy(string,str[2]);

printf("Thelargeststringis\n%s\n",string);

}

28.若a是int型变量,则表达式(a=2*3,a*2),a+4的值为______。

29.下面程序的运行结果是______。

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

{

main()

{intaa[3]={1,2.3},s;

s=f(&aa[0],3);

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

}

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

structst

{charname[20];doublescore;};

main()

{structstex;

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

}

31.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

【】

if(s[*k]<s[i])*k=i;

return【】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

clrscr();

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

32.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)

______

main()

{printf("\n");

try_me();

printf("\n");}

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

34.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【】。

35.—个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

36.下列程序的运行结果为【】。

#include<stdio.h>

main()

{staticcharstr1[40];

charstr2140];

strcpy(str2,"China");

strcat(str1,str2);

strcat(str1,"isagreatcountry!");

printf("%s%s",str2,strl);

printf("%d%d\n",strlen(str2),strlen(str1));

}

37.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(______);

ch=fSetc(fp);

while(!feof(fp)){putchar(ch);ch=fSetc(fp);}

putchar('\n');fclose(fp);

}

38.与表达式a+=b等价的另一书写形式是______。

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

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);}

40.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

三、1.选择题(20题)41.下述关于数据库系统的叙述中正确的是______。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

42.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。

A.函数的实参和其对应的形参共占同一存储单元

B.形参只是形式上的存在,不占用具体存储单元

C.同名的实参和形参占同一存储单元

D.函数的形参和实参分别占用不同的存储单元

43.一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用()。A.A.栈B.堆C.数组D.链表

44.以下程序调用findmax函数返回数组中的最大值findmax(int*a,intn){int*p,*s;for(p=a,s=a;p-a<n;p++)if(_____)s=p;return(*s);}main(){intx[5]={12,21,13,6,18};printf(“%d\n”,findmax(x,5));}在下划线处应填入的是

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

45.下列形式的常数中,不符合c语言语法规范的是______。

A.0.45B.±123C.25.6e-2D.4e3

46.已知下列函数定义:fun(int%,intc,intn,intdatA){intk;for(k=0;k<m*n;k++){*b=data;b++;}}则调用此函数的正确写法是(假设变量a的说明为inta[50])()。

A.fun(*a,4,5,1);

B.fun(&a,4,5,1);

C.fun((int*)a,4,5,1);

D.fun(a,4,5,1);

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

A.在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息

B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节

C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则

D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法

48.变量a所占的内存字节数是______。unionU{charst[4];inti;long1;};structA{intc;unionUu;}a;

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

49.在下列四条叙述中,错误的一条是()

A.内存是主机的组成部分

B.对于种类不同的计算机,其机器指令系统都是相同的

C.CPU由运算器和控制器组成

D.十六进制微型机的含义是:这种机器能同时处理十六位二进制数

50.以下程序运行后,输出结果为______。main(){inta[2][3]{1,3,5,7,9,11}*s{2]**pp,*p;s[0]=a[0],s[1]=a[1]pp=sp=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

A.1B.7C.9D.11

51.下面程序的输出结果为______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

52.下列不属于软件工程的3个要素的是______。

A.工具B.过程C.方法D.环境

53.已知学生记录描述为:structstudent{intno;charname[20],sex;struct{intyear,month,day;}birth;};structstudents;设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是()。

A.year=1984;month=11;day=12;

B.s.year=1984;s.month=11;s.day=12;

C.birth.year=1984;birth.month=11;birth.day=12;

D.s.birth.year=1984;s.birth.month=11;s.birth.day=12;

54.有以下程序:main(){unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf(“%d\n",D);}程序运行后的输出结果是()。

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

55.有以下程序int*f(znt*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

56.以下程序的输出结果是f(intb[],intm,intn){inti,s=0;for(i=m;i<n;i=i+2)s=s+b[i];returns;}main(){intx,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf(“%d\n”,x);}

A.10B.18C.8D.15

57.若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是()。

A.int*i=NULL;

B.float*f=NULL;

C.chart='m',*c=&t;

D.long*Lscanf("%d",i);*f=10.5;*c=&t;L='\0';

58.设有定义:intn1=0,n2,*p=&n2,*q=&n1;,下列赋值语句中与n2=n1;语句等价的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

59.两个或两个以上的模块之间关联的紧密程度称为()

A.耦合度B.内聚度C.复杂度D.连接度

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

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

四、选择题(20题)61.若有以下说明,则()不是对strcpy库函数正确的调用。strcpy库函数用于复制一个字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";

A.strcpy(str2,strl)

B.strcpy(str3,strl)

C.strcpy(strl,str2)

D.strcpy(str5,strl)

62.有以下程序

#defineN15

fun(inta[],intn,intm)

{inti,j;

for(i=m;i>=n;i--)

a[i+1]=a[i];

}

main()

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

fun(a,3,7);

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

printf("%d",a[i]);

}

程序的运行结果是A.A.45678

B.44567

C.45567

D.45677

63.下面的变量说明中__________是正确的。

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

64.

65.

66.

67.执行语句“for(i=1;i++<;4;);”后,变量i的值是()。

A.3B.4C.5D.不定

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

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

69.(14)结构化程序设计主要强调的是()

A.程序的规模

B.程序的易读性

C.程序的执行效率

D.程序的可移植性

70.

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

A.ABCDE\0FG\OUKB.ABCDUKC.UKD.EFGUK

71.为用户与数据库系统提供接口的语言是

A.高级语言B.数据描述语言(DDL)C.数据操纵语言(DML)D.汇编语言

72.

73.

74.运行下列程序,若从键盘输入字符“a”,则输出结果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

75.(69)单个用户使用的数据视图的描述称为()

A.外模式

B.概念模式

C.内模式

D.存储模式

76.

77.

78.

79.(24)对建立良好的程序设计风格,下面描述正确的是()

A.程序应简单、清晰、可读性好

B.符号名的命名要符合语法

C.充分考虑程序的执行效率

D.程序的注释可有可无

80.

五、程序改错题(1题)81.下列给定程序中,proc()函数的功能是:根据形参m,计算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若输入10,则应输出2.928968。请修改程序中的错误,使它能计算出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编一个函数fun(char*str),该函数的功能是把字符串中的内容逆置。例如,字符串中原有的字符串为asdfg,则调用该函数后,串中的内容为gfdsa。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C

2.B解析:软件生命周期由软件定义、软件开发和软件维护三个阶段组成。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发阶段由5个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。选项B正确。

3.D

4.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。

5.C解析:CPU读取和写人数据都是通过内存来完成的。

6.B解析:算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a=25/10%9=2%9=2:当逻辑运算符“&&”两边的值

温馨提示

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

评论

0/150

提交评论