




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年福建省南平市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下程序的输出结果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
2.以下叙述中错误的是()。
A.在一个函数内的复合语句中定义的变量在本函数范围内有效
B.在一个函数内定义的变量只在本函数范围内有效
C.在不同的函数中可以定义相同名字的变量
D.函数的形参是局部变量
3.有以下程序:
程序执行后的输出结果是()。
A.357B.753C.369D.751
4.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的输出结果是()。A.xyyxB.yyyyC.yyxxD.yxyx
5.
6.
7.一个无向连连通图的生成树是含有该连通图的全部项点的_______。
A.极小连通子图B.极小子图C.极大连通子图D.极大子图
8.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
9.
10.以下叙述中错误的是()。
A.可以通过typedef增加新的类型
B.可以typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
11.下列程序的输出结果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8
12.在银行业务中,实体客户和实体银行之间的联系是()。
A.—对一B.—对多C.多对一D.多对多
13.需求分析阶段的任务是确定()
A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能
14.
15.按照“先进后出”原则组织数据的结构是()。
A.队列B.栈C.双向链表D.二叉树
16.
17.设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。如T=R×S,则T的元组的个数为()。A.6B.8C.9D.12
18.以下程序的输出结果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}
A.650B.1470C.5430D.输出值不定
19.
20.程序中主函数的名字为()。
A.mainB.MAINC.MainD.任意标识符
二、2.填空题(20题)21.若输入5、9,以下程序的运行结果为【】。
main()
{inta,b,*pt1,*pt2;
printf("inputa,b:");
scanf("%d%d",&a,&b);
pt1=&a;
pt2=&b;
if(a<b)swap(pt1,pt2);
printf("\n%d,%d\n",*pt1,*pt2);
}
swap(p1,p2)
int*p1,*p2;
{int*p;
p=p1;
p1=p2;
p2=p;
}
22.下列语句的输出结果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
23.在软件测试中,动态测试和静态测试手段只能发现程序中的错误,而不能证明程序中不存在错误,只有【】证明才有可能证明程序的正确性。
24.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。
25.无论对于顺序存储,还是链接存储的栈和队列来说,进行插入或删除运算的时间复杂性均相同,则为【】。
26.下列程序执行后输出的结果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
27.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控制。
28.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%dln",a,b,c);
}
执行后输出结果为______。
29.不改变关系表中的属性个数但能减少元组个数的是()。
30.\13'在内存中占1个字节,"\12"在内存中占______个字节。
31.一个关系表的行称为()。
32.下列程序的输出结果是【】。
voidfun(int*n)
{
while((*n)--);
printf("%d",++(*n));
}
main()
{inta=100;
fun(&a);
}
33.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
34.若定义#definePI3.14159,则执行完下列程序后输出结果是______。
#definePI3.14159;printf("PI=%f",PI);
35.以下程序运行后的输出结果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
36.以下程序运行后的输出结果是【】。
main()
{charc;intn=100;
floatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
37.设在主函数中有以下定义和函数调用语句,且函数fun为void型,请写出函数fun的首部【】。要求形参名为b。
main()
}doubles[10][22];
intn;
┆
fun(s);
┆
}
38.下列执行后输出的结果是【】。
main()
{intarr[10],i,k=0
for(i=0;i<10;i++)atr[i]=i
for(i=1,i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
39.以下程序的运行结果是【】。
main()
{inta=2,b=7,c=5;
switch(a>0)
{
case1:
switch(b<0)
{case1:printf("@");break;
case2:pnntf("!");break;
}
case0:
switch(c==5)
{case0:pnntf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
40.下面程序段的输出结果是【】。
intx=5;
do{printf("%d",x-=4);
}while(!(--x));
三、1.选择题(20题)41.若运行时给变量x赋值12,则以下程序的运行结果是()。#include<stdio.h>main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}
A.0B.22C.12D.10
42.下列选项中不符合良好程序设计风格的是A.源程序要文档化B.数据说明的次序要规范化C.避免滥用goto语句D.模块设计要保证高耦合、高内聚
43.已知下面的程序段,正确的判断是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));
A.程序错误,不允许嵌套定义B.X=93C.X=81D.程序错误,宏定义不允许有参数
44.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序运行后的输出结果是______。
A.3B.4C.5D.6
45.有以下程序#include<stdio.h>main(){intk=5,n=0;while(k>0){switch(k){defhult:break;case1:n+=k:case2:case3:n+=k;}k--;}printf("%d\n",n);}程序运行后的输出结果是()
A.0B.4C.6D.7
46.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。structlink{chardata;______,}node;
A.structlinknext
B.link*next
C.stuctnextlink
D.structlink*next
47.若有语句:char*line[5];,以下叙述中正确的是
A.定义line是一个数组,每个数组元素是一个基类型为char为指针变量
B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C.定义line是一个指针数组,语句中的*号称为间址运算符
D.定义line是一个指向字符型函数的指针
48.有如下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.Of\n",fun((int)fun(a+c,B),(a-C)))}程序运行后的输出结果为_______。
A.编译出错B.9C.21D.9
49.数据库系统的核心是()。
A.数据模型B.数据库管理系统C.数据库D.数据库管理员
50.有以下程序:#include<stdio.h>#include<string.h>#includevoidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t):}main(){charstr[10]="abcdefg",*P;P=str+strlen(str)/2+1:f(p,p-2);printf("%s\n",str);}程序运行后的输出结果是()。
A.abcdefgB.gfedcbaC.gbcdefaD.abedcfg
51.在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的”这一性质指的是对象的
A.分类性B.标识惟一性C.多态性D.封装性
52.下列程序输出的结果是()。
main()
{inta;
a=-4+4*5-6;printf("d",a);
a=4+4%5-6;printf("%d",a);
a=-3+4%6/5;printf("%d",a);
a=(7+6)%5/2;printf("%d",a);
}
A.102-31B.10-221C.11-221D.10221
53.算法的空间复杂度是指
A.算法程序的长度B.算法程序中的指令条数C.执行算法程序所占的存储空间D.算法执行过程中所需要的存储空间
54.有以下程序
#include<stdio.h>
main()
{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++)c[s[i]]++;
for(i=1;i<5;i++)printf("%d",c[i]);
printf("\n");
}
程序的运行结果是
A.1234B.2344C.4332D.1123
55.C语言库函数fgets(str,n,fg)的功能是_______。
A.从中指向的文件中读取长度n的字符串存入str指向的内存
B.从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存
C.从fp指向的文件中读取n个字符串存入str指向的内存
D.从sb读取至多n个字符到文件fp
56.以下程序的输出结果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20
57.有如下程序:#include<stdio.h>main(){FILE*fpl;fp1=fopen("ftxt","w");fpfinff(fp1,"abc");fclose(fp1);若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为()。
A.goodabcB.abcdC.abcD.abegood
58.需求分析阶段的任务是()
A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能
59.关系表中的每一行记录称为一个()。
A.字段B.元组C.属性D.关键码
60.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是()。
A.地址传递B.值传递C.由实参传给形参,并由形参传回给实参D.由用户指定传递方式
四、选择题(20题)61.在数据管理技术发展的三个阶段中,数据共享最好的是()。
A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同
62.以下叙述中错误的是()。
A.C语言源程序经编译后生成后缀为.obj的目标程序
B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
63.软件设计中,有利于提高模块独立性的一个准则是______。A.低内聚低耦合B.低内聚高耦合C.高内聚低耦合D.高内聚高耦合
64.
有以下程序:
main()
{intk=5,n=0;
do
{switch(k)
{case1:
case3:n+=l;k--;break;
defalut:n=0;k--;
case2:
case4:n+=2;k--;break:
}
printf("%d",n);
}while(k>0&&n<5);
}
程序运行后的输出结果是()。
A.235B.0235C.02356D.2356
65.下列关于C语言的叙述错误的是()。
A)大写字母和小写字母的意义相同
B)不同类型的变量可以在一个表达式中
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
66.
67.
68.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其输出结果是()。A.1B.30C.1-2D.死循环
69.有两个关系R和S如下:
则由关系R得到S的操作是()。
A.投影B.交C.选择D.并
70.设有定义:
inta=1,b=2,C=3;
以下语句中执行效果与其他三个不同的是()。
A.if(a>B.C=a,a=b,b=C;
B.if(a>B.{C=a,a=b,b=C;}
C.if(a>B.C=a;a=b;b=c;
D.if(a>B.{C=a;a=b;b=c;}
71.用数据流图(DFD.作为描述工具的软件开发阶段是()。
A.可行性分析B.需求分析C.概要设计D.详细设计
72.有以下程序程序运行后的输出结果是()。
A.1,2B.2,4C.1,4D.2,3
73.
当执行下面的程序时,如果输入ABC,则输出结罘是()。
#include<stdio.h>
#include<string.h>
main()
{charss[10]="1,2,3,4,5":
gets(ss);strcat(ss,"6789");printf("%s\n",ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
74.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的形参和实参分别占用不同的存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的实参和其对应的形参共占同一存储单元
75.有以下程序程序运行后的输出结果是()。
A.3B.0C.7D.8
76.若变量已正确定义为int型,要通过语句给a赋值l、+给b赋值2、给c赋值
3,以下输入形式中错误的是()(注:口代表一个空格符)。
77.
78.若intk=8;则执行下列程序后,变量k的正确结果是
main()
{intk=8;
switch(k)
{case9:k+=1;
case10:k+=1;
default:k+=1;
case11:k+=1;break;
}
printf("%d\n",k);
}
A.12B.1
C.10D.9
79.
80.
五、程序改错题(1题)81.程序改错题(共l8分)下列给定程序中,函数fun的功能是:传人一个整数m,计算如下公式的值。例如,若输入5,则应输出一0.283333。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数其功能是移动一维数组中的内容,若数组中有n个整数,要求把下标为0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为1、2、3、4、5、6、7、8、9、10;P的值为3。移动后,一维数组中的内容应为5、6、7、8、9、10、1、2、3、4。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn){}main(){ inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; inti,p,n=15; printf(“Theoriginaldata:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\nEnterp:”); scanf(“%d”,&p); fun(a,p,n); printf(“\nThedataaftermoving:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\n”);}
参考答案
1.B
2.A在一个函数内的复合语句中定义的变量在本复合语句块范围内有效,选项A错误,其他选项正确。本题答案为A选项。
3.A本题考查的是for循环与二维数组的定义和引用。当定义二维数组的初始化列表只使用一重花括号时,其中的每个值依次代表从第l行的第1个元素起,直到第l行满,接着代表第2行、第3行……的每一个元素。程序中的循环将循环3次,循环变量i的值分别是0、1、2,所以3次循环中输出的数分别是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后输出的结果为357。故应该选择A)。
4.B本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出Y,然后将X的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将X的值减1,x=l,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出Y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以B正确。
5.D
6.B
7.A
8.D各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序0(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)
9.B
10.A关键字typedet的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A)错误。
11.A本题考查switch语句。当i一1时,执行case1,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当i=2时,执行case2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3=10”;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a—a+2—13,a—a+3一l6:当i=4时,执行default,a=a+3=19,结束循环。
12.D一个客户可以在多家银行办理业务,一家银行也有多个客户办理业务,因此,实体客户和实体银行之间的联系是多对多。本题选择D选项。
13.D解析:结构化分析方法,数据流图,数据字典,软件需求规格说明书
评析,需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织,部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能.选项A)软件开发方法是在总体设计阶段完成的任务;选项B)软件开发工具是在实现阶段需完成的任务:选项C)软件开发费用是在可行性研究阶段需完成的任务。
14.A
15.B栈是线性表的一种,其插入和删除运算都只在表的一端进行。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,不是最后被删除的元素,是按先进后出的原则组织数据的。
16.C
17.CC。R为n元关系,有P个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。
18.A解析:对未给出初始值的整数数组元素,被默认初始化为零。
19.D
20.A
21.59
22.aaaaAAAAAaaaaAAAAA解析:函数strcat(sp,'AAAAA')的作用是将字符中“AAAAA”连接到字符串sp的末尾,并自动覆盖字符数组sp末尾的\'\\0\'。
23.程序正确性程序正确性
24.交换排序交换排序解析:常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。注意:常见的排序方法及其作用机制和区别。
25.O(2)
26.1111解析:程序中结构体数组data首地址(即&data[0])赋值给结构体指针变量p,++(P->x)表示先将p所指向的结构体变量的成员x值加1,然后将此x(即data[0].x)输出。
27.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。
28.503503解析:此处需注意的是:如果if后面的条件为真,只执行其后的一条语句或一条复合语句,如果if后面的条件为假,只执行else后面的一条语句或一条复合语句。先判断表达式“a<b”为假,不执行“t=a”,但执行“a=b;b=t;”,s的值为3,b的值为0。在判断表达式“a<c”,值为真,所以执行后面的3条语句“t=a;a=c;c=t”,结果a的值为5,c的值为3,所以最后输出的结果为5、0和3。
29.选择选择解析:关系数据库的专门关系运算包括选择、投影和连接3种,其中选择不改变关系表中的属性个数但能减少元组个数。
30.22解析:'\\13':表示八进制数13表示的ASCII字符,是一个字符,占一个字节;而”\\12”是个字符串,除了八进制数12表示的ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志“'\\0'”,所以共有2个字节。
31.元组元组解析:一个关系表中的行称为元组,列称为属性。
32.00解析:在函数fun()中,while((*n)-)是先引用*n的值,再做(*n)--运算,所以循环结束时*n的值为0,再做(*n)--运算后,*n的值为-1;执行++(*n)后,*n的值是0。
33.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为“a”,执行一次循环后变为“c”,之后再变成“e”,当其变为“g”时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式“i-'a'+'A'”即表示输出i对应的大写字母,结果为ACE。
34.PI=3.14159PI=3.14159解析:本题先定义了一个宏名PI,以后在程序中出现PI都用3.14159替代,但是C语言规定:双引号中的宏名是不进行替换的。
35.252137252137解析:本题中先定义了整型变量a、b和c,然后分别给赋值a为25,b为八进制的025,c为十六进制0x25。然后调用pruntf()函数将a、b和c分别用十进制输出,且中间用空格隔开,八进制025转换为十进制的值为21,十六进制的0x25转换为十进制的值为37,故最后的输出结果为252137。
36.220.000000220.000000解析:注意区分运算符的优先级。先是给c赋值,然后计算x=f*=n/=50,得x=f*=2,最后有x=20。x输出是按浮点数的形式输出的,小数点后的0不能少。
37.voidfun(double*b)或voidfun(doubleb[10][12])voidfun(double*b)或voidfun(doubleb[10][12])解析:本题考查数组名作函数参数。程序中被调用函数fun(s)的实参s是数组名,而s为double型数组名,所以函数fun的形参类型为double*。
38.1212解析:本题的第—个for循环用于始数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。
39.#&解析:首先看最外面的switch,其表达式为a>0,结果为真(即1),从case1:标号处开始执行。这里又是一个switch语句,其表达式为b<00,结果为假(即0),由于没有case0:或default:标号,所以直接跳过此switch语句。因为没有遇到break;语句,所以继续执行进入内部第2个switch语句,其表达式为c==5,结果为真,从case1:标号处开始执行,输出一个#,遇到break;语句,跳出该内部switch语句,最后执行default:标号后的输出语句输出一个&后,整个外部switch语句执行完毕。程序最后输出的换行符不会显示,所以本题应该填#&。
40.1-41-4解析:题目中首先让x=5,然后进入do-while循环体,输出x-4的值1,此时x为1,表达式!(--x)的值为!(0)为真(此时x变为0),所以再次执行循环体,输出x-4的值-4,此时x为-4,表达式!(--x)的值为!(—5)为假,退出循环。故输出结果是1-4。
41.A解析:条件运算符“?:”是三目运算符,其形式为:
表达式17表达式2:表达式3
当表达式1的值为真时,则表达式2的值为整个表达式的值;如果表达式1的值为假,则表达式3的值为整个表达式的值。题中,表达式x>12的结果为假,所以将表达式x-12的值0作为y的值。
42.D解析:编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接地说,风格就是意味着要按照规则进行编程。这些规则包括:(1)程序文档化。就是程序文档包含恰当的标识符、适当的注解和程序的视觉组织等。(2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。(3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。(4)注意goto语句的使用。合理使用goto语句可以提高代码的运行效率,但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用goto语句。因此,本题的正确答案是D。
43.C解析:本题的宏定义是合法的,宏定义展开为3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。
44.B解析:本题是考查手工模拟执行程序的能力。a初值是1,循环开始时b值为1,由于a>=8为假,不执行break,但a%2==1为真,执行a+=5,a值变为6,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为2,由于a值为6,a>=8仍为假,不执行break,但a%2==1为假,不执行复合语句“{a+=5;continue;}”而执行a-=3,a值变为3。再开始下一次循环,这时b值为3。由于a值为3,a>=8仍为假,不执行break,但a%2==1为真,执行a+=5,a值变为8,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为4。由于a值为8,a>=8为真,执行break,停止for循环。此时输出的b值应为4。
45.D解析:因为没有break语句,当k=2的时候,会顺序执行两条语句,k=1的时候,会顺序执行3条语句。
46.D解析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下—个结点的数据类型与前—个结点的数据类型完全相同,故应为structlink*next。
47.A解析:C语言中[]比*优先级高,因此line先与[5]结合,形成line[5]形式,这是数组形式,它有5个元素,然后再与line前面的'*'结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为char的指针变量。
48.B解析:本题中先执行(int)fun(a+c,b)函数的调用,值为整型数值15;然后再执行fun(15,(a-c))函数调用,值为单精度实型数值9.000000。输出为%3.of,即有效数长度为3,没有小数位数,所以最后结果为9。
49.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。
50.B
51.D解析:从外面看只能看到对象的外部特性,而对象的内部,即处理能力的实行和内部状态,指的是对象的封装性。
52.A解析:本题考查%和/运算符的使用。如果两个数不能整除,只取结果的整数部分,小数部分全部舍去。运算符“%”要求两个运算对象都为整型,其结果是整数除法的余数。表达式:a=-4+4*5-6=-4+20-6=10;表达式:a=4+4%5-6=4+4-6=2:表达式:a=-3+4%6/5=-3+0=-3:表达式:a=(7+6)%5/2=13%5/2=1。
53.D解析:算法的空间复杂度一般是指这个算法执行时所需要的内存空间,其中包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行旱灾程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。
54.C解析:在for(i=0;i<12;i++)c[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组c的4个元素的值分别为4、3、3、2。
55.B解析:fgets函数的作用是从指定的文件读入一个字符串。fgets(str,n,fp);中的n为要求得到的字符的个数,但只从fp指向的文件输入n-1个字符,然后在最后加一个‘\\0’字符,因此得到的字符串共有n个字符。
56.B
57.C执行语句fp1=fopen("f1.txt","w");以“只写”方式打开了一个名为f1.txt的文件,执行语句fPrintf(fp1,"abc",);向该文件写数据时,如果文件f1.txt不存在,则新建一个f1.txt文件;如果f1.txt已存在,则在打开该文件时重写文件内容。所以执行fprintf(fp1,"abc");时,f1.txt中原有内容good被删除,而字符中”abc”被输出到fpl指向的文件f1.txt中。
58.DD)【解析】需求分析是软件定义时期的最后一个阶
\n段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。
59.BB)【解析】在关系表中,每一列称为一个属性,对应表中的一个字段;每一行称为一个元组,对应表中的一条记录。
60.B解析:本题考查函数调用时的参数传递。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间只是实参将值传递给形参.
61.C数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择C)。
62.D并不是源程序中的所有行都参加编译。在条件编译形式下,相关内容只在满足一定条件时才进行编译。选项D)中的非执行语句不在其范围内。
63.C耦合是对一个软件结构内不同模块之间互连程度的度量,耦合度越高,则模块的独立性越差。内聚反映一个模块内各个元素彼此结合的紧密程度。高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。低耦合是指不同软件模块之间通过稳定的接口交互,而不需要关心模块内部的实现。
64.B
\n本题考查分支语句用法加个句号因为变量的初始值分别为k一5、n一0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0、k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2、k=3,打印出2;这时n=2、k=3,break跳出,程序进行第3次循环,执行case3:这个分支,结果是n=3、k=2,打印出3;这时n一3、k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鼻肠管非计划性拔管的预防
- 高中语文《边城》说课
- 护理基本操作培训
- 餐饮部门投诉解决办法
- 八年级上册《科学记数法》课件与练习
- 英语 第四册(五年制高职)6课件 Unit6 Green Development
- 第二章 4 单摆-2025版高二物理选择性必修一
- 鼻咽癌病理分型
- 实战演练CFA试题及答案技巧
- 鼻肠营养管的护理
- 水果收货标准
- 宝鸡-英文介绍文档
- 急诊专科护士进修汇报课件
- 2024儿童青少年抑郁治疗与康复痛点调研报告
- 小学数学骨干教师专题讲座《如何有效培养小学生的数学阅读能力》
- 幼儿园小班科学小蝌蚪找妈妈课件
- 公园保洁服务投标方案
- 随州市公共租赁住房租赁资格申请表
- 10J113-1内隔墙-轻质条板(一)
- 苏科版八年级数学上册讲练专题训练勾股定理30道经典压轴题型(原卷版+解析)
- 2024年广东省初中学业水平考试中考英语试卷(真题+答案解析)
评论
0/150
提交评论