




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年福建省南平市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
3.
4.
5.需求分析最终结果是产生
A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告
6.C语言中函数返回值的类型是由()决定的。
A.return语句中的表达式类型B.调用该函数的主调函数类型C.定义函数时所指定的函数类型D.以上说法都不正确
7.
有以下程序:
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
8.
9.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称______。
A.希尔排序B.冒泡排序C.插入排序D.选择排序
10.简单的交换排序方法是()。
A.快速排序B.选择排序C.堆排序D.冒泡排序
11.以下叙述中错误的是______。A.C程序中的#include和#define行均不是C语句
B.除逗号运算符外,赋值运算符的优先级最低
C.C程序中,j++;是赋值语句
D.C程序中,+、-、*、/、%号是算术运算符,司用于整型和实型数的运算
12.有说明语句“inta,b;”,如果输入111222333,使得a的值为111,b的值为333,则以下正确的语句是()。A.scanf("%3d%*3d%3d",&a,&b);
B.scanf("%*3d%3d%3d",&a,&b);
C.scanf("%3d%3d%*3d",&a,&b);
D.scanf("%3d%*2d%3d",&a,&b);
13.用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为()。
A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next
14.程序运行后的输出结果是()。A.3B.4C.1D.9
15.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。
A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1
16.堆的形状是一棵_______。
A.二叉排序树B.满二叉树C.完全二叉树D.平衡二叉树
17.以下不能对二维数组a进行正确初始化的语句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
18.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的运行结果为248,应在下划线处填入的是()。A.>>2B.|248C.&0248D.<<1
19.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
执行后的输出结果是A.A.0X0
B.0x0
C.0
D.0xABC
20.
二、2.填空题(20题)21.软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和()的集合。
22.有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能与之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
23.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。
24.对于软件测试,从是否需要执行被测软件的角度,可以分为静态测试和动态测试。代码检查属于______测试。
25.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为
26.软件定义时期主要包括______和需求分析两个阶段。
27.下列程序的输出结果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
28.下列程序用来输出结构体变量ex所占存储单元的字节数。
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
29.与十进制数101等值的二进制数为【】。
30.对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为【】。
31.下列程序的输出结果是______。
#include<stdio.h>
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
如:dp=x*-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,D);
printf("%d%d\n",c,D);
}
32.一般来说,数据库的设计过程要经历3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【】阶段。
33.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
34.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
35.在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。
36.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
37.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
structnode
{intinfo;
【】link;};
38.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。
39.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。
40.下列程序的功能:对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(c))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
三、1.选择题(20题)41.若要求从键盘读入含有空格字符的字符串,应使用函数A.getc()B.gets()C.getchar()D.scanf()
42.以下关于宏的叙述中正确的是()
A.宏名必须用大写字母表示B.宏替换时要进行语法检查C.宏替换不占用运行时间D.宏定义中不允许引用已有的宏名
43.有以下程序:#include<stdio.h>main(){FILE*fp;inti;charch[]="abcd",t;fp=fopen("abc.dat","wb+");for(i=0;i<4;i++)fwrite(&ch[i]1,1,fp);fseck(fp,-2L,SEEK_END);fread(&t,1,1,fp);felose(fp);printf("%c\n",t);}程序执行后的输出结果是()。
A.dB.cC.bD.a
44.下列有关数据库的描述,正确的是______。
A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件
45.程序的3种基本控制结构的共同点是______。
A.不能嵌套使用B.只能用宋写简单的程序C.已经用硬件实现D.只有一个入口和一个出口
46.以下选项中可作为C语言合法整数的是A.10110BB.386C.0XffaD.x2a2
47.以下描述中正确的是()。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式.后面不能写分号
C.在do-while循环体中,是先执行一次循环,再进行判断
D.do-while循环中,根据情况可以省略while
48.需求分析阶段的任务是()
A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能
49.假定w、x,y、z、m均为int型变量,有如下程序段;w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;则该程序段执行后,m的值是()
A.4B.3C.2D.1
50.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
51.下列程序的输出结果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}
A.49B.36C.25D.64
52.以下叙述中错误的是()。
A.C语言源程序经编译后生成后缀为.obj的目标程序
B.C程序经过编译、连接步骤后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
53.设x的值为5,则表达式(++x)+(++x)+(++x)的值是()
A.24B.20C.15D.25
54.树是结点的集合,它的根结点数目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
55.有以下程序:#include<stdio.h>structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042};c=b;}voidf2(structSTU*c){structSTUb={"SanDan",2044};*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043};f1(a);f2(&b);printf("%d%d\n",a.num,b.hum);}执行后的输出结果是()。
A.20412044B.20412043C.20422044D.20422043
56.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。
A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2
57.已知在ASCII字符集中,数字0的序号为48,下列程序的输出结果为______。main()}chara='0',b='9';printf("%d,%c\n",a,b);}
A.因输出格式不合法B.48,57C.0,9D.48,9
58.以下只有在使用时才为该类型变量分配内存的存储类说明是______。
A.auto和static
B.auto和register
C.register和static
D.extern和register
59.以下程序的输出结果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}
A.6,1B.2,1C.6,0D.2,0
60.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。
A.概要设计B.详细设计C.可行性分析D.需求分析
四、选择题(20题)61.
62.有以下函数该函数的功能是()。
A.计算s所指字符串占用内存字节的个数
B.比较两个字符串的大小
C.计算s所指字符串的长度
D.将s所指字符串复制到字符串t中
63.下列选项中,不是一个算法的基本特征的是()。
A.完整性B.可行性C.有穷性D.拥有足够的情报
64.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。
A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统
65.
66.三种基本结构中,能简化大量程序代码的是()。
A.顺序结构B.分支结构C.选择结构D.重复结构
67.
68.以下程序运行后的输出结果是()。
A.220.000000B.10020.000000C.240.000000D.10040.000000
69.下列函数的功能是()。
A.将a所指字符串赋给b所指空间
B.使指针b指向a所指字符串
C.将a所指字符串和b所指字符串进行比较
D.检查a和b所指字符串中是否有’\0
70.有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的三个连续节点。structnode{intdata;structnode*next;}*P,*q,*r;现要将q所指节点从链表中删除,同时要保持链表的连续,
以下不能完成指定操作的语句是()。
A.p->next=q->next;
B.p->next=P->next->next;
C.p->next=r;
D.p=q->next;
71.有以下程序:
若想通过键盘输入,使得al的值为12,a2的值为34,cl的值为字符a,c2的值为字符b,程序运行后的输出结果是:l2,a,34,b。则正确的输入格式是(以下-代表空格,<;CR>;代表回车)()。
A.12-a34-b<CR>
B.12-a-34-b<CR>
C.12,a,34,b<CR>
D.12a34b<CR>
72.下述程序的输出结果是()。
#include<stdio.h>
main
{charch[2][5]-{”1234”,”5678”},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(j=0;j<2;j++)
{s=p[i][j]一'0';
printf("%d",s);}
}A.A.6357B.6135C.1357D.691357
73.
74.
75.有以下程序:
程序的运行结果是()。
A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC
76.
77.以下叙述中错误的是
A.C语言源程序经编译后生成后缀为.obj的目标程序
B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
78.
79.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是逐个比较str1,str2两个字符串对应位置中的字符,把比ASCⅡ值大或相等的字符依次存放到str数组中,形成一个新的字符串。
例如,str1中的字符串为fshADfg,str2中的字符串为sdAEdi,则str中的字符串应为sshEdig。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数该函数的功能是使数组下三角元素中的值乘以n。注意:部分源程序给出如下。请勿改动函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5voidfun(inta[][N],intn){}main(){inta[N][N],n,i,j;printf(“*****Thearray*****\n”);for(i=0;i<n;i++)<p=""></n;i++)<>{for(j=0;j<=""p="">{a[i][j]=rand()%10;printf(“%4d”,a[i][j]);}printf(“\n”);}n=rand()%4;printf(“n=%4d\n”,n);fun(a,n);printf(“*****TheResult*****\n”);for(i=0;i<=""p="">{for(j=0;j<=""p="">printf(“%4d”,a[i][j]);printf(“\n”);}}
参考答案
1.C
2.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
3.C
4.B
5.B解析:本题考核软件工程中的需求分析环节。需求分析应交付的主要文档就是需求规格说明书。
6.C
7.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、k2,b¨ak跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。
\n
8.B
9.A解析:希尔排序法的基本思想是:将整个无序列分割成若干小的子序列分别进行插入排序。
10.D解析:所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。
11.D解析:“%”是求余运算符,其两侧的数值只能为整型,所以它不能用于实型的运算,故选项D错误。
12.A根据题意,要使a的值为111,b的值为333,必须在读入时指定a的读入宽度为3,b的读入宽度为3,且a和b的控制字符之间必须额外增加%*控制符,用于跳过中间的3位输入数字,选项A正确。本题答案为A选项。
13.A
14.B[解析]每次内循环只循环一-次就结束,第一次外循环时t=t+b[][0][]=1+b[0][0]=1+0=1;第二次外循环时t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循环时t=t+b[][2][]=2+b[2][2]=2+2=40
15.B本题考查按位异或的用法。按位异或运算的规则是:两个运算数的相应二进制位相同,则结果为0,相异则结果为1。b=2的二进制为00000010,a=1的二进制为00000001,a=a^b=00000011,转化为十进制后为3,b=b^a=00000010-00000011=00000001,即1。
16.C
17.C解析:关于二维数组的初始化,我们需要掌握如下方法:①所赋初值个数与数组元素的个数相同;②所赋初值行数少于数组行数时,系统将自动给后面各行的元素补初值0;③在给二维数组赋初值时可以不用行花括号对。选项C)应该是inta[3][2]={{1,2},{3,4},{5,6,}};
18.D124的2进制值为1111100,要输出为248即124*2,则2进制值为11111000,即右移l位,所以选D。
19.C本题考查C语言中的数据输出格式。
题目中定义了两个整型变量m、n,对这两个变量赋值,输入的数值为十六进制整数,并且有m=n。进行m-n运算后,将减法所得到的值赋给m,并将m值输出。其中printf的格式字符选用的格式字符为x,即以十六进制形式输出整数。注意,0x是表示该数为十六进制的标志,输出数据时,数据前面不会自动加上进制的标志。
20.B
21.相关文档相关文档解析:软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档。程序足对计算机的处理对象和处理规则的描述,是软件开发入员根据用户需求开发的、用程序语言描述的、适合计算机执行的指令序列。数拼是使程序能正常操作信息的数据结构。文档是为了便于了解程序所需的资源说明,是与程序的开发、维护和使用有关的资料。
22.k<=nk++k<=n,k++解析:本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句'k++;'\ue009。
23.消息消息解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。
24.静态静态解析:静态测试包括代码检查、静态结构分析,代码质量度量等。静态测试不实际运行软件。
25.89218921
26.可行性研究可行性研究解析:软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等,还可以将软件生命周期分为三个阶段:①软件定义阶段:可行性研究和需求分析;②软件开发阶段:设计、实现和测试;③软件运行维护阶段:交付使用和维护。
27.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。
28.ex或structstex或structst
29.1100101
30.n/2n/2解析:删除一个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2;所以总体平均移动元素个数为n/2。
31.7979解析:因为在调用子函数时进行的是数值传递,调用子函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。
32.系统设计系统设计解析:系统设计阶段是系统的具体设计过程,主要包括概念设计、逻辑结构设计、物理结构设计3个步骤。这3个不同层次上的设计过程,是把实体以及相互之间的联系转换为“数据”并落实于计算机中。
33.调试调试
34.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表达式1+1/(2*2)+1/(3*3)+...+1(n*n)可写为1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
对应的C语言的表达式s=s+1.0/(i*i)。注:必须要写成1.0的形式,否则1/(i,i)返回值为其值截尾取整,即恒为0。
35.自然连接自然连接解析:在关系运算中,自然连接运算是对两个具有公共属性的关系所进行的运算。
36.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。
37.structnode*structnode*解析:本题中的结构类型名为structnode,所以空白处应填:structnode*。即定义一个指向自身的结构体指针。
38.交换排序交换排序解析:常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。注意:常见的排序方法及其作用机制和区别。
39.x<z‖y<zx<z‖y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即x<z或y<z,是“或”的关系。
40.分析题目可知,程序中运用函数c=getchar()从标准输入设备读取下一个字符,而且是一行的字符(即没有换行),所以条件为(c=getchar())!='\\n'。\r\n\r\n
41.Bscanf(\u3000)语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用scanf(\u3000)函数不能输入空格;getehar(\u3000)函数用于输入字符,其调用形式为:ch=getelaar(\u3000),getehar(\u3000)函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。gets(\u3000)函数的凋用形式为:gets(str_adr),其中stradr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。9ets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc(\u3000)函数的调用形式为:ch=getc(pf)其中pf是文件指针。函数的功能是从pf指定的文件中读入一个字符,并把它作为函数值返回。
42.C
43.B解析:程序首先定义了一个文件指针fp,并使用fopen()函数以'wb+'方式新建一个可读写文件'abe.dat'。然后使用一个for循环,循环变量i从0递增到3,在循环体中每次写入ch[i]的值。所以循环结束时,文件中的内容应该为:abed。接下来程序使用fseek()函数,将文件的读写指针从文件末尾处向后退2个字节,文件末尾是最后一个输出字节的下一个字节,即下次写入数据的位置,所以此时文件读写指针指向的是字符\'c\'。最后调用ficadO函数从文件中读取1个字节到变量t中。所以最终输出应该为:c。故本题选B。
44.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。
45.D
46.C解析:本题考核的知识点是整数及常数的表示方法。在C语言中,整数常量可以用十进制、八进制和十六进制来表示,选项A为二进制表示,故选项A不正确;选项B是八进制表示法,但在八进制数中,各个位数只能为数字。到7中的一个,而在选项B中,有一个数字8,故选项B不正确;选项C为十六进制表示法正确:选项D中也为十六进制表示法,但十六进制数以Ox开头,故选项D不正确,所以,4个选项中选项c符合题意。
47.C解析:do-while语句的一般形式为:do循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。
48.DD)【解析】需求分析是软件定义时期的最后一个阶
\n段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。
49.D
50.B解析:条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式17表达式2:表达式3其求解顺序是:先求解表达式1,若为非O(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。并且注意++、--的用法。
51.C解析:本题考查if语句.当执行到第一个满足(i*i>=20)&&(i*i<=100)这个条件的i出现时,通过break语句跳出循环,执行下列的printf语句。
52.D解析:C语言程序编译时,每条可执行语句将转换为二进制的机器指令,非执行语句如注释语句等不被编译。
53.A
54.A树形结构是一类重要的非线性数据结构。树是n(n≥0)个结点的集合,对应任意一棵非空树,它具有以下几点重要的性质。
①有且仅有一个特定的称为根的结点。
②当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,TM,其中每一个集合本身又是一棵树,称为子树。
因此,本题的正确答案有且只有一个。
55.A解析:f2函数传递的是变量的地址,可以实现数据的交换,而f1函数传递的是值,调用完f1函数后,c的值改变了,但main函数中的a值并未改变。
56.DD。【解析】本题主要考查对排序算法的理解。冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第n-1个与第n个记录的关键字进行比较。第一趟冒泡排序使最大的关键字元素放到最后。以此类推,进行第2~n次冒泡排序。如果在排序过程中不存在逆序,则排序结束。在最坏情况下,冒泡排序中,若初始序列为“逆序”序列,则需要比较n(D-1)/2次。快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。对于快速排序,当初始记录序列按关键字有序或基本有序时,快速排序退化为冒泡排序,最坏情况下比较次数为n(n-1)/2。
57.D解析:注意输出控制符%d,%c,分别表示以十进制形式输出字符的ASCII码值和字符。
58.B解析:extern、register、static、auto分别是定义外部变量、寄存器变量、静态变量、自动变量,其中,自动变量和寄存器变量属于动态存储,调用时临时分配单元而静态变量和外部变量属于静态存储,在整个程序运行时都存在。
59.B解析:第—个表达式中,运算的方向是从左至右,所以a的值为2;第二个表达式中,等式右边是—个逻辑表达式,由于结果为真,所以表达式的值为1,即b为1。
60.D解析:在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和具体的要求,即要明确系统必须做什么的问题。本题的正确答案为D。
61.A
62.C首先char*s接受一个字符型数组的首地址并将这个首地址赋给另一个字符型指针char*t,while(*t++)不断循环,直到*t为‘\\o’,再将t一1,这时字符指针t指向字符串的最后一个字符,又因为s指向字符数组的首地址即字符串的首地址,所以return(t--s)便是返回字符数组中字符串的长度。故本题答案为C)。
63.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。
64.A
65.B
66.D重复结构也称为循环结构,它根据给定的条件,判断是否需要重复执行某一相同或类似的程序段,这种可以简化大量的程序行。
67.C
68.A对于c语言中的赋值运算符,必须遵循以下规则:赋值运算符优先级别只高于逗号运算符,比其他任何运算符的优先级都低,并且具有自右向左的结合性。因此先得到变量C的值为50,变量n经过计算结果为2,最后通过变量f的值l0和n的值2相乘得到变量x的值为20.000000。因此选项A)正确。
69.A表达式*b=*a是将a所指的字符赋给b所指的空间,然后,指针a和b依次后移,直到到达指针a所指字符串的结尾。
70.D解析:本题的考点是链表的指针操作。要想将q所指节点从链表中删除,同时要保持链表的连续,从图上看,应该将p->next=r,由于q->next、p->next->next都指向r,因此p->next=q->next、p->next=p->next->next同样可以实现指定的操作。因此选项A、B、C都能完成指定操作。而选项D“p=q->next”只是将指针p指向了r,不能完成指定的操作。因此正确选项是D。
71.D在输入多个数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。所以应按选项D的顺序输入数据。
72.C本题先将指针P指向二维数组ch[2][5],相当于p[0]="1234",p[1]="5678";通过双重for循环,将P中的字符隔一个输出一个,通过“s=p[i][j]-'0';”语句将所要输出的字符#换成相应的十进制数。
73.A
74.D
75.A函数fun(char*s[],intn)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={“xy”,“bcc”,“bbcc”,“aabcc”,“aaaacc”},ss[0],ss[4]的输出结果为xy,aaaacc。所以选项A)为正确答案。
76.C
77.D由C语言编写而成的程序称为C源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。
由于C语言编写程序采用的是西文字符,而西文字符一般都是以ASCII码编码的。因此,C语言的源程序是以ASCII码形式存放在一个文本文件中的。
C语言程序中主要包含程序部分和注释部分,其中程序部分最终将转化为二进制的机器指令,而注释部分没有。因此,选项D的说法不正确。
78.B
79.C根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
80.B
81.
【解析】题目中要求将ASCIl码值较大的字符放到新的字符串中,因此if的条件判断语句“if(*p>=*q)”应改为“if(*p<=*q)”;在C语言中,每一条语句的结束是以“;”来标识的,因此k++后应该加上分号。
82.voidfun(inta[][n],intn){inti,j;for(i=0;i<=""p="">for(j=0;j<=i;j++)/*矩形的下三角时,积相乘*/a[i][j]=a[i][j]*n;}首先从数组中找出要乘以n的元素。这其实就是找出将被挑出的元素在原数组中的分布规律的过程。通过观察得出,要被处理的元素下标的范围是从每行中第1个元素开始,直到列数等于该行行数为止。即数组下三角元素的列下标(j)小于等于(<=)行下标(j)。找到这个规律后,依次从数组中取得符合要求的元素,然后乘以n。2021年福建省南平市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
3.
4.
5.需求分析最终结果是产生
A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告
6.C语言中函数返回值的类型是由()决定的。
A.return语句中的表达式类型B.调用该函数的主调函数类型C.定义函数时所指定的函数类型D.以上说法都不正确
7.
有以下程序:
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
8.
9.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称______。
A.希尔排序B.冒泡排序C.插入排序D.选择排序
10.简单的交换排序方法是()。
A.快速排序B.选择排序C.堆排序D.冒泡排序
11.以下叙述中错误的是______。A.C程序中的#include和#define行均不是C语句
B.除逗号运算符外,赋值运算符的优先级最低
C.C程序中,j++;是赋值语句
D.C程序中,+、-、*、/、%号是算术运算符,司用于整型和实型数的运算
12.有说明语句“inta,b;”,如果输入111222333,使得a的值为111,b的值为333,则以下正确的语句是()。A.scanf("%3d%*3d%3d",&a,&b);
B.scanf("%*3d%3d%3d",&a,&b);
C.scanf("%3d%3d%*3d",&a,&b);
D.scanf("%3d%*2d%3d",&a,&b);
13.用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为()。
A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next
14.程序运行后的输出结果是()。A.3B.4C.1D.9
15.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。
A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1
16.堆的形状是一棵_______。
A.二叉排序树B.满二叉树C.完全二叉树D.平衡二叉树
17.以下不能对二维数组a进行正确初始化的语句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
18.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的运行结果为248,应在下划线处填入的是()。A.>>2B.|248C.&0248D.<<1
19.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
执行后的输出结果是A.A.0X0
B.0x0
C.0
D.0xABC
20.
二、2.填空题(20题)21.软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和()的集合。
22.有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能与之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
23.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。
24.对于软件测试,从是否需要执行被测软件的角度,可以分为静态测试和动态测试。代码检查属于______测试。
25.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为
26.软件定义时期主要包括______和需求分析两个阶段。
27.下列程序的输出结果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
28.下列程序用来输出结构体变量ex所占存储单元的字节数。
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
29.与十进制数101等值的二进制数为【】。
30.对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为【】。
31.下列程序的输出结果是______。
#include<stdio.h>
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
如:dp=x*-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,D);
printf("%d%d\n",c,D);
}
32.一般来说,数据库的设计过程要经历3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【】阶段。
33.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
34.函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
35.在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。
36.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。
37.以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。
structnode
{intinfo;
【】link;};
38.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。
39.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。
40.下列程序的功能:对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(c))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
三、1.选择题(20题)41.若要求从键盘读入含有空格字符的字符串,应使用函数A.getc()B.gets()C.getchar()D.scanf()
42.以下关于宏的叙述中正确的是()
A.宏名必须用大写字母表示B.宏替换时要进行语法检查C.宏替换不占用运行时间D.宏定义中不允许引用已有的宏名
43.有以下程序:#include<stdio.h>main(){FILE*fp;inti;charch[]="abcd",t;fp=fopen("abc.dat","wb+");for(i=0;i<4;i++)fwrite(&ch[i]1,1,fp);fseck(fp,-2L,SEEK_END);fread(&t,1,1,fp);felose(fp);printf("%c\n",t);}程序执行后的输出结果是()。
A.dB.cC.bD.a
44.下列有关数据库的描述,正确的是______。
A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件
45.程序的3种基本控制结构的共同点是______。
A.不能嵌套使用B.只能用宋写简单的程序C.已经用硬件实现D.只有一个入口和一个出口
46.以下选项中可作为C语言合法整数的是A.10110BB.386C.0XffaD.x2a2
47.以下描述中正确的是()。
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式.后面不能写分号
C.在do-while循环体中,是先执行一次循环,再进行判断
D.do-while循环中,根据情况可以省略while
48.需求分析阶段的任务是()
A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能
49.假定w、x,y、z、m均为int型变量,有如下程序段;w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;则该程序段执行后,m的值是()
A.4B.3C.2D.1
50.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
51.下列程序的输出结果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}
A.49B.36C.25D.64
52.以下叙述中错误的是()。
A.C语言源程序经编译后生成后缀为.obj的目标程序
B.C程序经过编译、连接步骤后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
53.设x的值为5,则表达式(++x)+(++x)+(++x)的值是()
A.24B.20C.15D.25
54.树是结点的集合,它的根结点数目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
55.有以下程序:#include<stdio.h>structSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={"LiSiGuo",2042};c=b;}voidf2(structSTU*c){structSTUb={"SanDan",2044};*c=b;}main(){structSTUa={"YangSan",2041},b={"WangYin",2043};f1(a);f2(&b);printf("%d%d\n",a.num,b.hum);}执行后的输出结果是()。
A.20412044B.20412043C.20422044D.20422043
56.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。
A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2
57.已知在ASCII字符集中,数字0的序号为48,下列程序的输出结果为______。main()}chara='0',b='9';printf("%d,%c\n",a,b);}
A.因输出格式不合法B.48,57C.0,9D.48,9
58.以下只有在使用时才为该类型变量分配内存的存储类说明是______。
A.auto和static
B.auto和register
C.register和static
D.extern和register
59.以下程序的输出结果是________。#include<stdio.h>mam(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,B);}
A.6,1B.2,1C.6,0D.2,0
60.在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。
A.概要设计B.详细设计C.可行性分析D.需求分析
四、选择题(20题)61.
62.有以下函数该函数的功能是()。
A.计算s所指字符串占用内存字节的个数
B.比较两个字符串的大小
C.计算s所指字符串的长度
D.将s所指字符串复制到字符串t中
63.下列选项中,不是一个算法的基本特征的是()。
A.完整性B.可行性C.有穷性D.拥有足够的情报
64.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。
A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统
65.
66.三种基本结构中,能简化大量程序代码的是()。
A.顺序结构B.分支结构C.选择结构D.重复结构
67.
68.以下程序运行后的输出结果是()。
A.220.000000B.10020.000000C.240.000000D.10040.000000
69.下列函数的功能是()。
A.将a所指字符串赋给b所指空间
B.使指针b指向a所指字符串
C.将a所指字符串和b所指字符串进行比较
D.检查a和b所指字符串中是否有’\0
70.有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的三个连续节点。structnode{intdata;structnode*next;}*P,*q,*r;现要将q所指节点从链表中删除,同时要保持链表的连续,
以下不能完成指定操作的语句是()。
A.p->next=q->next;
B.p->next=P->next->next;
C.p->next=r;
D.p=q->next;
71.有以下程序:
若想通过键盘输入,使得al的值为12,a2的值为34,cl的值为字符a,c2的值为字符b,程序运行后的输出结果是:l2,a,34,b。则正确的输入格式是(以下-代表空格,<;CR>;代表回车)()。
A.12-a34-b<CR>
B.12-a-34-b<CR>
C.12,a,34,b<CR>
D.12a34b<CR>
72.下述程序的输出结果是()。
#include<stdio.h>
main
{charch[2][5]-{”1234”,”5678”},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(j=0;j<2;j++)
{s=p[i][j]一'0';
printf("%d",s);}
}A.A.6357B.6135C.1357D.691357
73.
74.
75.有以下程序:
程序的运行结果是()。
A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC
76.
77.以下叙述中错误的是
A.C语言源程序经编译后生成后缀为.obj的目标程序
B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
78.
79.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是逐个比较str1,str2两个字符串对应位置中的字符,把比ASCⅡ值大或相等的字符依次存放到str数组中,形成一个新的字符串。
例如,str1中的字符串为fshADfg,str2中的字符串为sdAEdi,则str中的字符串应为sshEdig。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数该函数的功能是使数组下三角元素中的值乘以n。注意:部分源程序给出如下。请勿改动函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5voidfun(inta[][N],intn){}main(){inta[N][N],n,i,j;printf(“*****Thearray*****\n”);for(i=0;i<n;i++)<p=""></n;i++)<>{for(j=0;j<=""p="">{a[i][j]=rand()%10;printf(“%4d”,a[i][j]);}printf(“\n”);}n=rand()%4;printf(“n=%4d\n”,n);fun(a,n);printf(“*****TheResult*****\n”);for(i=0;i<=""p="">{for(j=0;j<=""p="">printf(“%4d”,a[i][j]);printf(“\n”);}}
参考答案
1.C
2.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
3.C
4.B
5.B解析:本题考核软件工程中的需求分析环节。需求分析应交付的主要文档就是需求规格说明书。
6.C
7.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、k2,b¨ak跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。
\n
8.B
9.A解析:希尔排序法的基本思想是:将整个无序列分割成若干小的子序列分别进行插入排序。
10.D解析:所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。
11.D解析:“%”是求余运算符,其两侧的数值只能为整型,所以它不能用于实型的运算,故选项D错误。
12.A根据题意,要使a的值为111,b的值为333,必须在读入时指定a的读入宽度为3,b的读入宽度为3,且a和b的控制字符之间必须额外增加%*控制符,用于跳过中间的3位输入数字,选项A正确。本题答案为A选项。
13.A
14.B[解析]每次内循环只循环一-次就结束,第一次外循环时t=t+b[][0][]=1+b[0][0]=1+0=1;第二次外循环时t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循环时t=t+b[][2][]=2+b[2][2]=2+2=40
15.B本题考查按位异或的用法。按位异或运算的规则是:两个运算数的相应二进制位相同,则结果为0,相异则结果为1。b=2的二进制为00000010,a=1的二进制为00000001,a=a^b=00000011,转化为十进制后为3,b=b^a=00000010-00000011=00000001,即1。
16.C
17.C解析:关于二维数组的初始化,我们需要掌握如下方法:①所赋初值个数与数组元素的个数相同;②所赋初值行数少于数组行数时,系统将自动给后面各行的元素补初值0;③在给二维数组赋初值时可以不用行花括号对。选项C)应该是inta[3][2]={{1,2},{3,4},{5,6,}};
18.D124的2进制值为1111100,要输出为248即124*2,则2进制值为11111000,即右移l位,所以选D。
19.C本题考查C语言中的数据输出格式。
题目中定义了两个整型变量m、n,对这两个变量赋值,输入的数值为十六进制整数,并且有m=n。进行m-n运算后,将减法所得到的值赋给m,并将m值输出。其中printf的格式字符选用的格式字符为x,即以十六进制形式输出整数。注意,0x是表示该数为十六进制的标志,输出数据时,数据前面不会自动加上进制的标志。
20.B
21.相关文档相关文档解析:软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档。程序足对计算机的处理对象和处理规则的描述,是软件开发入员根据用户需求开发的、用程序语言描述的、适合计算机执行的指令序列。数拼是使程序能正常操作信息的数据结构。文档是为了便于了解程序所需的资源说明,是与程序的开发、维护和使用有关的资料。
22.k<=nk++k<=n,k++解析:本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句'k++;'\ue009。
23.消息消息解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。
24.静态静态解析:静态测试包括代码检查、静态结构分析,代码质量度量等。静态测试不实际运行软件。
25.89218921
26.可行性研究可行性研究解析:软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等,还可以将软件生命周期分为三个阶段:①软件定义阶段:可行性研究和需求分析;②软件开发阶段:设计、实现和测试;③软件运行维护阶段:交付使用和维护。
27.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。
28.ex或structstex或structst
29.1100101
30.n/2n/2解析:删除一个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2;所以总体平均移动元素个数为n/2。
31.7979解析:因为在调用子函数时进行的是数值传递,调用子函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。
32.系统设计系统设计解析:系统设计阶段是系统的具体设计过程,主要包括概念设计、逻辑结构设计、物理结构设计3个步骤。这3个不同层次上的设计过程,是把实体以及相互之间的联系转换为“数据”并落实于计算机中。
33.调试调试
34.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表达式1+1/(2*2)+1/(3*3)+...+1(n*n)可写为1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
对应的C语言的表达式s=s+1.0/(i*i)。注:必须要写成1.0的形式,否则1/(i,i)返回值为其值截尾取整,即恒为0。
35.自然连接自然连接解析:在关系运算中,自然连接运算是对两个具有公共属性的关系所进行的运算。
36.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 首钢股份电商协议书
- 船舶主机买卖协议书
- 俱乐部会长转让协议书
- 风水布局转让协议书
- 车辆质押免责协议书
- 企业公众号转让协议书
- 金融贸易合伙协议书
- 项目收益分红协议书
- 高中作业安全协议书
- 餐厅股权激励协议书
- 2025年社区工作者招聘考试试题及答案清单
- 单细胞测序:解锁妊娠相关疾病细胞与分子特征的新钥匙
- 江苏省海安中学、金陵中学、宿迁中学三校2024-2025学年高三年级下学期4月联考测试 化学试卷(含答案)
- 离婚协议书正规打印电子版(2025年版)
- 2025年湖北省武汉市高考数学模拟试卷(附答案解析)
- 【MOOC】跨文化交际入门-华中师范大学 中国大学慕课MOOC答案
- 部编人教版小学4四年级《道德与法治》下册全册教案
- 2024年江西省高考生物试卷(真题+答案)
- CJT 526-2018 软土固化剂 标准
- 品质提升计划改善报告课件
- 中考数学计算题练习100道(2024年中考真题)
评论
0/150
提交评论