2021-2022年河北省廊坊市全国计算机等级考试C语言程序设计真题(含答案)_第1页
2021-2022年河北省廊坊市全国计算机等级考试C语言程序设计真题(含答案)_第2页
2021-2022年河北省廊坊市全国计算机等级考试C语言程序设计真题(含答案)_第3页
2021-2022年河北省廊坊市全国计算机等级考试C语言程序设计真题(含答案)_第4页
2021-2022年河北省廊坊市全国计算机等级考试C语言程序设计真题(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年河北省廊坊市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列程序的输出结果是()。#include<stdio.h>intfun(inta){intb=0;staticintc=4:a=c++:b++;return(a):main{inta=2,i,c;for(i=0:i<2;i++)c=f(a+1):printf("%d\n",c);}A.4B.7C.6D.5

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

A.break语句只能用于switch语句体中

B.continue语句的作用是使程序的执行流程跳出包含它的所有循环

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

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

3.

4.链栈与顺序栈相比,比较明显的优点是()。

A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况

5.有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i);)main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++){printf(“%d”,a[i]);}printf(“\n”);}程序运行后的输出结果是()。A.1313B.2234C.3234D.1234

6.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是()。

A.直接插入排序B.直接选择排序C.快速排序D.二路归并排序

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

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

8.以下非法的赋值语句是

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

9.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序运行后的输出结果是()。A.1,2B.3,4C.5,6D.123,456

10.

11.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()

A.100B.40C.55D.80

12.下列关于线性链表的叙述中,正确的是()A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C.进行出入与删除时,不需要移动表中的元素

D.以上三种说法都不催

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

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

14.软件设计中划分模块的一个准则是()。A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合

15.设有定义“intx[10],*p=x,i;”,若要为数组x读入数据,以下选项正确的是()。

A.for(i=0;i<10;i++)scanf(“%d”,p+i);

B.for(i=0;i<10;i++)scanf(“%d”,*p+i);

C.for(i=0;i<10;i++)scanf(“%d”,*(p+i));

D.for(i=0;i<10;i++)scanf(“%d”,x[i]);

16.有下列程序:main{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

17.结构化程序所要求的基本结构不包括()。

A.顺序结构B.GOT0跳转C.选择(分支)结构D.重复(循环)结构

18.表达式“a+=a-=a=9”的值是()。

A.18B.-9C.0D.9

19.检查软件产品是否符合需求定义的过程称为______。

A.确认测试B.集成测试C.验证测试D.验收测试

20.程序执行后的输出结果是()。A.321.cbaB.123.abcC.abc,123D.1bc,a23

二、2.填空题(20题)21.表达式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的数据类型为______。

22.“printf("%d\n",strlen("\t\"023\xABC\n");”语句的输出结果是______。

23.函数fun的功能是计算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函数中已正确定义m、a、b变量并赋值,并调用fun函数计算:m=a4+b4-(a+b)3。实现这一计算的函数调用语句为【】。

24.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为【】。

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

main()

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

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

26.实现算法所需的存储单元多少和算法的工作量大小分别为算法的【】。

27.若有定义:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[2][2]得到的初值是______。

28.若线性表的长度经常发生变化,那么该线性表应采用的存储结构是【】。

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

#definePOWER(x)((x)*(x))

main()

{inti=1;

primtf("%d,%d",POWER(i++),i);

}

30.\13'在内存中占1个字节,"\12"在内存中占______个字节。

31.已定义charch='$';inti=1,j;,执行j!=ch&&i++以后,i的值为______。

32.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

33.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

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

35.以下程序将两个数从小到大输出。请填空。

{floata,b,【】;

scanf(,【】&a,&b);

if(a>b)

{t=a;

【】;

b=t;

printf("%5.2f%5.2f\n",a,b);

}

36.数据的逻辑结构在计算机存储空间中的存放形式称为数据的【】。

37.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

38.下面程序的运行结果是:【】。

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

39.若已经定义inta=25,b=14,c=19;,以下三目运算符(?:)所构成的语句的执行结果是【】。

a++<=2&&b--<=2&&c++?printf("***

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

40.以下程序的功能是:从键盘输入一字符串,要求将每个单词中的第一个字母改成小写(如果原来已是小写字母,则不变),然后输出转换结果,补足所缺语句。

main()

{charstr[200];inti=0;

while((______=getchar())!='\n');

str[i-1)='\0';

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

if((str[i-1]==''‖i==0)&&str[i]>='A'&&str[i]<='Z')

str[i]+=______;

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

}

三、1.选择题(20题)41.C语言允许函数类型缺省定义,此时函数值隐含的类型是()。

A.floatB.intC.longD.double

42.判断char型变量c1是否为大写字母的正确表达式是

A.'A'<=c1<='Z'

B.(c1>=A)&&(c1<=Z)

C.('A'>=c1)‖('Z'<=c1)

D.(c1>='A')&&(c1<='Z')

43.请读程序:#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100:a++){if(b>=20)break;if(b%3=1”{b+=3;continue;}b=5;}printf("%d\n",A);}上面程序的输出结果是_______。

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

44.下列叙述中,不属于结构化分析方法的是()。A.A.面向数据流的结构化分析方法

B.面向数据结构的Jackson方法

C.面向数据结构的结构化数据系统开发方法

D.面向对象的分析方法

45.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序:floatsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10),i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}程序运行后的输出结果是______。

A.1,2,3,4,5,6,7,8,9,10

B.10,9,8,7,6,5,4,3,2,1

C.1,2,3,8,7,6,5,4,9,10

D.1,2,10,9,8,7,6,5,4,3

46.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是A.6.5B.6C.5.5D.6

47.有以下程序:#include<stdio.h>floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是()。

A.编译出错B.9C.21D.9

48.有以下程序段:intk=Owhile(k=1)k++;while循环执行的次数是()。

A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次

49.有以下程序:#include<stdio,h>main(){intm=0256,n=256;printf("%o%o\n",m,n);程序运行后的输出结果是()。

A.02560400B.0256256C.256400D.400400

50.下列合法的字符型常量是()。

A.'\x13'B.'\081'C.'65'D.\n

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

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

52.有以下程序#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的运行结果是

A.12300B.123C.1D.321

53.关系表中的每一行称为一个()。

A.元组B.字段C.属性D.码

54.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量

55.为了使模块尽可能独立,要求()。

A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

56.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}该程序的输出结果是

A.69825B.63825C.6385D.693825

57.已知下面的程序段,正确的判断是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));

A.程序错误,不允许嵌套定义B.X=93C.X=81D.程序错误,宏定义不允许有参数

58.下列描述中,正确的一条是______。

A.关系表达式的值是一个逻辑值,即“真”或“假”,可以赋给一个逻辑变量

B.在C语言中,判断一个量是否为:真”时,以0代表“假”,以1代表“真”.

C.设a=3、b=4、c=5,则表达式!(x=a)&&(y=b)&&0的值为0

D.一个数组的各个数组元素可属于不同的数据类型

59.以下程序的输出结果是()。#include<stdio.h>main(){inta=4,b=3,c=2,d=1;printf("%d",a<b?a:d<c?d:B);}

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

60.下列选项中,不能用作标识符的是A._1234_B._1_2C.int_2_D.2_int_

四、选择题(20题)61.在C语言程序中可用做用户标识符的是()。

A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG

62.设有宏定义:

#defineIsDIV(k,n)((k%1"1==1)?1:O)且变量m已正确定义并赋值,则宏调用:

IsDIV(m,5)&&;IsDIV(m,7)为真时所要表达的是()。

A.判断m是否能被5和7整除

B.判断m被5和7整除是否都余l

C.判断m被5或者7整除是否余1

D.判断m是否能被5或者7整除

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

A.程序应简单、清晰、可读性好B.符号名的命名只需符合语法

C.充分考虑程序的执行效率D.程序的注释可有可无

64.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。

A.编译程序B.操作系统C.教务管理系统D.汇编程序

65.

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

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

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

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

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

67.

68.

69.有以下程序:

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

A.1,2,3,4,5,6,7,8,9,10,

B.1,2,7,6,3,4,5,8,9,10,

C.1,2,7,6,5,4,3,8,9,10,

D.1,2,9,8,7,6,5,4,3,l0,

70.

有下列程序:

main

{intk=5,n=0;

while(k>0)

{switch(k)

{dcfault:break;

case1:n=n+k;

case2:

case3:n+=k;

}

k--;

}

printf("%d\n".n);

}

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

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

71.有以下程序:

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

A.9.One*World

B.9.One*Dream!

C.10.One*Dream!

D.10.One*World

72.已定义以下函数

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

A.在面向对象的程序设计中,各个对象之间具有密切的关系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设中,各个对象之间相对独立,相互依赖性小

D.上述3种说法都不对

74.

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

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

76.

77.

若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。

intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

78.已有定义intx=3,y=4,z=5;则表达式“!(x+y)+z-1y+z/2”的值是________。

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

79.(73)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是()

A.堆排序

B.直接插入排序

C.快速排序

D.直接选择排序

80.以下选项中正确的定义语句是()。

A.double,a,b;B.doublea=b=7;C.doublea;b;D.doublea=7,b=7;

五、程序改错题(1题)81.程序改错题(共l8分)下列给定程序中,函数fun的功能是:传人一个整数m,计算如下公式的值。例如,若输入5,则应输出一0.283333。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符为l,则输出3。

注意:部分源程序在文件PROGl.C中。

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

参考答案

1.Dstatic变量是局部度量,函数无法修改,所以当i=1时,第2次进入f函数时c=5,所以最终main函数中C的值为5。

2.C解析:只能在循环体内和switch语句体内使用break语句。当break出现在循环体的switch语句体内时,其作用只是跳出该switch语句体,并不能中止循环体的执行。若想强行中止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件,则跳出本层循环体。

3.B

4.D

5.C本题考查了宏定义与局部变量的区别,宏定义的作用范围为整个程序,而变量的作用范围只在定义它的函数体的部分,因此,主函数中定义的i与fun中的i互不相干。

6.C

7.C解析:程序流程图是软件过程设计中常用的图形描述工具之一。构成程序流程图的最基本符号有:→或↓,表示控制流;□表示加工步骤;

表示逻辑条件。

8.C解析:本题考查的知识点是赋值语句的基本知识。在表达式的运算中,双目赋值运算符的格式为“变量二表达式”,单目运算符一般形式为“运算符表达式”或“表达式运算符”。常量和表达式是不能被赋值的。选项A为复合表达式,首先计算(i=2,++i)的值,然后赋值给n,故选项A正确;选项B为简单自加运算,故选项B正确;选项C在表达式++(i+1);中,(i+1)不是变量,该表达式的值为常量,而在++运算中,其运算对象必须为变量,故选项C错误;选项D中为复合赋值表达式,正确.所以应当选择C。

9.C此题是考查fprintf和fscanf,其中fprintf是向文件输出,文件为da2.dat文件,fscanf是向文件输入,所以根据程序循环写入和写出.可知答案为C。

10.D

11.C

12.C

试题2分析

结点的存储顺序和逻辑顺序不一定一致,存储空间也不一定连续。插入和删除元素的时候,不需要移动表中的元素。

试题2答案

C

13.C

14.B一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

15.AC语言中scanf函数的声明为“scanf(“<格式化字符串>”,<地址表>);”,可知scanf的第2个参数是地址。因此,从4个答案中可以判断,只有选项A是p[i]的地址,其他的均是变量本身。故本题答案为A选项。

16.C在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。

17.B1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

18.C首先计算表达式“a=9”;再计算表达式“a-=9”;即“a=a-9”,结果为0;最后计算表达式“a+=0”,即“a=a+0”,所以最终结果为0。故本题答案为C选项。

19.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。

(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。

(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。

(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。

(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。

20.D[解析]字符串是一个特殊的数组,所以按照数组的规则,s1应该指向的是数组的首地址,即"abc的第一个字符的地址。s2指向的是"123"的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符ai和1的内容,所以打印输出为D)。

21.整型整型解析:上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了int型,所以最后得到的结果也是int类型。

22.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。

\'\\t\'f是转义字符,代表横向跳若干格:'\\'是转义字符,代表双引号;\'\\023\'只代表一个字符,而不管转义字符后面有几个字符;’仅AB,是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。

5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。

23.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函数fun(x,n)的作用是求xn,因此a4应该调用函数fun(a,4),b4应该调用函数fun(b,4),(a+b)3应该调用函数fun(a+b,3),所以题目中的数学表达式,写成C程序中的语句为m=fun(a,4)+fun(b,4)-fun(a+b,3)。

24.1313解析:在任意一棵二叉树中,叶子结点总是比度为2的结点多一个。本题中的二叉树有3个叶子结点,所以,该二叉树有3-1=2个度为2的结点;又知本题中的二叉树有8个度为1的结点。所以,本题中的二叉树总结点数为:叶子结点数+度为l的结点数+度为2的结点数=3+8+2=13。所以,本题的正确答案为13。

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

26.空间复杂度和时间复杂度空间复杂度和时间复杂度解析:算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。

27.88解析:二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[0]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为ap[0][0]、a[0][1]、a[0][2]、a[0][3]。

28.链式存储结构链式存储结构

29.111,1解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。

30.22解析:'\\13':表示八进制数13表示的ASCII字符,是一个字符,占一个字节;而”\\12”是个字符串,除了八进制数12表示的ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志“'\\0'”,所以共有2个字节。

31.11解析:在执行逻辑表达式“j=!ch&&i++”时,首先判断j=!ch的值,因为“ch='$'”不为0,所以“j=!ch=0”,编译系统便不再计算表达式“i++”的值,i的值不变,仍为1。

32.1对多(或1:N)1对多(或1:N)

33.67G67G解析:字符型变量中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分别按十进制整数和字符形式输出a和b的值为:67G。

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

35.t"%f%f"a=b

36.模式或逻辑模式或概念模式模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等。

37.封装封装

38.1111解析:此题涉及函数的调用和if语句。程序先执行第二个if语句,然后再执行第一个if语句,最后用return返回数值。

39.a=26b=14c=19a=26,b=14,c=19解析:这种条件表达式的—般形式为:表达式1?表达式2:表达式3,三目运算符的执行顺序,先求解表达式1,若非0则求解表达式2,此时表达式2的值就作为整个表达式的值,若表达式1的值为0,则求解表达式3,此时表达式3的值就作为整个表达式的值。C语言在做一系列表达式相与时,从左到右分别计算各表达式的值,一旦遇到一个表达式为false,则剩余的表达式都不再进行运算。该题中,a++<=2的值为false,则b-<=2和c++就都不再运算再运算。

40.str[i++]32。str[i++]32。解析:while语句的循环控制条件既要将相应元素赋予从键盘输入的字符,又要改变元素的下标值,以便接受下一个字符,可用下标变量的后置加实现;小写字母的ASCII码值比相对应的大写形式大32。

41.B解析:在C语言中,对于自定义函数要遵循“先定义,后使用”的规则,如定义时,不指定函数类型,C编译系统都默认函数的返回值是int型。

42.D

43.B解析:break语句的作用是用刊曲循环体;Continue语句的作用是用于跳出本次循环。执行第一次循环时,(b%3=1)为真,b=4,继续下一次循环,如此反复,当b=22时结束循环,共循环8次,即a=8。

44.D解析:常见的需求分析方法有结构化分析方法和面向对象的分析方法两类。其中结构化分析方法又包括面向数据流的结构化分析方法(SA-Structuredanalysis),面向数据结构的Jackson方法(JSD-Jacksonsystemdevelopmentmethod)和面向数据结构的结构化数据系统开发方法(DSSD-Datastructuredsystemdevelopmentmethod)。

45.C解析:本题考查数组名作为函数形参的函数调用问题。数组名作函数形参是按地址传递,形参的改变可以传回实参。sort函数的两个形参中一个是数组名,sort函数的功能是对数组元素进行由大到小的排序。主函数调用sort函数时,实参为aa[3]元素的地址和整数5,即sort函数将对数组aa中的元素aa[3]、aa[4]、aa[5]、aa[6]、aa[7]5个元素的值进行由大到小的排序,排序后aa[3]=8、aa[4]=7、aa[5]=6、aa[6]=5、aa[5]=4,而数组aa中其余元素的值不变,因此结果是C。

46.D解析:本题考查的知识点是运算符的优先级。在这个表达式中,优先级最高的是(int)a,也就是对5.5取整,结果是5,其次是b/b,即2.5/2.5,结果是1.000000,最后相加结果为6.000000(表达式的最终结果为实型),所以4个选项中D正确。

47.B解析:本题考查函数调用。将a,b,c的值代入函数调用fun((int)fun(a+c,b),a-c)可得到fun((int)fun(10,5),-6)。函数调用分为两步:

①调用函数fun(10,5)。

②利用强制类型转换(int)将函数fun(10,5)的返回值15.000000转换成15,再将其结果作为函数的实参进行第二次函数调用fun(15,-6),其结果为9。

48.A解析:程序中,k的初值为0。执行while后面小括号中的赋值表达式k=1,则k的值为1,即整个表达式的值为真。所以执行循环体,执行语句“k++;”。因为k进行自加,不再减小,没有值为0的可能,即while后面小括号中的赋值表达式的值一直为真,不能退出循环,因此while循环将无限次地执行下去,所以,选项A正确。

49.C解析:o格式符是以八进制形式输出整数。此题m已是八进制数(256前面的0表示此数是八进制数),n是十进制数,所以输出时,直接输出m的值,n的值需要转换成八进制数400后再输出。

50.A解析:C语言的字符常量是用单引号(\')括起来的一个字符,也可以用以一个“\\”开头的字符序列来表示字符常量。其中形式\\ddd表示1到3位8进制数所代表的字符;形式\\xhh表示1到2位16进制数所代表的字符。在本题中\'\\x13\'表示回车符,是一个字符常量;而\'\\081\'用8进制数所代表的字符形式不正确,因为8进制数所表示的字符中不会出现数字“8”;\'65\'单引号(即撇号)括起来的不是一个字符,而是一个十进制数字;'\\n'是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。

51.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。

52.B解析:在函数中首先把整型数组a[10]中的每个元素写入文件d1.dat中,然后再次打开这个文件,把文件d1.dat中的内容读入到整型变量n中,最后输出变量n的值。

53.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。

54.A本题考查的知识点是转义字符。题目中的关键是八进制101的十进制是多少.八进制的101转换为十进制为65,也就是字符A的ASCII。

55.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。

56.C解析:该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char.p[2]后,程序中第一个循环for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p11)元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的内容为字符串'8254'。③程序中第二个循环中的循环体s=e*10+p[i][j]-‘0’;的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前p[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串结束标志,\\0,就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串'6937'中一个隔一个地取出字符,分别是‘6’和‘3’,然后从p[1]所指向的字符串'8254'中一个隔一个地取出字符,分别是‘8’和‘5’,同时经过转换和相加运算后,结果s中的值应该是6385,所以,正确答案是C)。

57.C解析:本题的宏定义是合法的,宏定义展开为3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

58.D

59.A

60.D解析:本题考核的知识点是用户的标识符。在C语言中,合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线,如:acd,d_ad、_adf124,_124等都是合法的标识符号.而2asdf、_sd/=都不是合法的标识符.在C语言中大写字母和小写字母被认为是两个不同的字符,如:ACD和acd是两个不同的标识符号。选项D中用下划线作为第一个字符,这是不合法的,故选项D不正确,所以,4个选项中选项D符合题意。

61.Bc语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线,不能使用关键字和数字,A中void,C中if,D中D0,都属于关键字。

62.B本题考查逻辑运算符的相关概念,逻辑与若要为真,那么两边都要为真,即m都能被5和7整除都余1,所以选项B正确。

63.A具有良好的程序设计风格是一个程序员必不可少的素质。我们在编写程序时要养成良好的程序设计习惯,对程序的要求不仅能够在计算机上正确运行,而且要便于阅读和被别人理解,便于程序的调试和维护。好的程序设计风格有助于提高程序的正确性、可读性、可维护性和可用性。要使程序具有良好的风格,必须做到以下几点:

(1)合理的标识符的命名。由于一个程序中必然有很多标识符,特别是在一个大型复杂的程序中,标识符可能成千上万,对标识符作用的正确理解是读懂程序的前提,如果程序员随意命名标识符,程序的可读性会很差。因此,在命名标识符时要注意其可理解性。

(2)在程序中添加一定的注释。注释是程序员与日后的程序读者之间询通的重要工具,它用自

温馨提示

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

评论

0/150

提交评论