版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年甘肃省白银市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。A.大写字母B.下划线C.数字字符D.连接符
2.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的运行结果是
A.987654321B.4321098765C.5678901234D.987651234
3.
4.
5.对于哈希表,如果将装填因子α定义为表中装入的记录数与表的长度之比,那么向表中加入新纪录时,()
A.α的值随时冲突次数的增加而递减
B.α越大发生冲突的可能性越大
C.α等于1时不会再发生冲突
D.α低于0.5时不会发生冲突
6.
7.算法分析的两个主要方面是()。
A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性
8.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y)reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序运行后的输出结果是______。A.3B.6C.8D.12
9.
10.在一个被调用函数中,关于return语句使用的描述,()是错误的。
A.被调用函数中可以不用return语句
B.被调用函数中可以使用多个return语句
C.被调用函数中,如果有返回值,就一定要有return语句
D.被调用函数中,一个return语句可以返回多个值给调用函数
11.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序运行后的输出结果是()。
A.3B.13C.1D.0
12.有以下程序:#include<stdio.h>#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf(“%4.1f\n”,S(a+b));}程序的运行结果是()。
A.7.5B.31.5C.程序有错,无输出结果D.14.0
13.设某文件内排序后得到100个初始归并段(初始顺串),若使用多路归并排序算法,且要求三趟归并完成排序,问归并路数最少为()
A.5B.6C.7D.8
14.若二维数组a有m列,则在a[i][j]刚前的元素个数为()。
A.i*m+j-1B.i*m+jC.j*m+iD.i*m+j+1
15.任何一棵二叉树的叶子结点在前序、中序和后序遍历序列中的相对次序()。
A.不发生改变B.发生改变C.不能确定D.以上都不对
16.对于关键字值序列(12,13,11,18,60,15,7,18,25,100)
A.100B.12C.60D.15
17.若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值()。
A.0B.1C.12D.6
18.设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。如T=R×S,则T的元组的个数为()。A.6B.8C.9D.12
19.在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是()。
A.G中有弧
B.G中有一条从Vi到Vj的路径
C.G中没有弧
D.G中有一条从Vj到Vi的路径
20.某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)()。
A.3B.4C.6D.7
二、2.填空题(20题)21.为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域)。请填空。
structlink{chardata;【】;}node;
22.设a、b、c为整形数,且a=2,b=3,c=4则执行完以下语句后,a的值是【】。
a*=16+(b++)-(++c);
23.以下程序中,for循环体执行的次数是______。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i-1;i<K;i++)
{...}
...
}
24.已有定义;charc='';inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
25.该程序运行的结果是【】。
#include<stdio.h>
main()
{unionEXANPLE
{struct
{
intx;
inty;
}in;
inta;
intb;
}e;
e.a=1;
e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("\n%d,%d",e.in.x,e.in.y);
printf("%d,%d\n",e.a,e.b);
}
26.如下程序片段:
ina,b,c;
printf("inputa,b,c:");
scanf("a=%d,b=%d,c=%d",&a,&b,&c);
欲使输出结果为1、2、3(分别对应于a、b、c),输入数据的正确形式为【】。
27.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)【】;
28.已有定义:intx;,执行以下语句后的辅出结果是【】。
x=11/3;y=5;
printf("%%d,%%%d\n",x,y);
29.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
30.以下程序运行后的输出结果是【】。
#include<stdio.h>
msin()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
31.下面程序
main()
{inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
运行后,i,j,m,n的值分别是_______。
32.数据结构分为逻辑结构与存储结构,线性链表属于【】。
33.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
34.以下程序调用函数swap_p将指针s和t所指单元(a和b)中的内容交换,请填空。
main()
{inta=10,b=20,*s,*t;
s=&a;t=&b;
swap_p(【】);
printf("%d%d,a,b");}
swap_p(int**ss,int**tt)
{intterm;
term=**ss;
**ss=**tt;
**tt=term;}
35.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。
36.下面程序的运行结果是:【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf(“%d%d\n”,i1,i2);
}
37.若有如下程序:
main()
{intx=5,y,*t;t=&x;
y=++(*t);
printf("%d,%d",x,y);}
则程序执行后的x值为【】,y的值为【】。
38.下列语句能循环______次。
ints=12;
while(s);
--s;
39.执行下列语句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
40.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
三、1.选择题(20题)41.486PC机主板上一般带有高速缓冲存储器Cache,它是()之间的储存。
A.CPU与辅助存助器B.CPU与主存储器C.软盘与内存D.硬盘与内存
42.以下选项中合法的字符常量是()。
A.“B”B.‘\O1O’C.68D.D
43.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}
A.200100B.100100C.100200D.200200
44.以下错误的定义语句是()。
A.intx[][3]={{0},{1},{1,2,3}};
B.intx[4][3]={{1,2,3},{1,2,3),{1,2,3},{1,2,3}};
C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D.intx[][3]={1,2,3,4};
45.若有定义floata=25,b,*p=&b;,则下列对赋值语句*p=a;和p=&a;的正确解释为()。
A.两个语句都是将变量a的值赋予变量p
B.*p=a是使p指向变量a,而p=&a是将变量a的值赋予变量指针p
C.*p=a是将变量a的值赋予变量b,而p=&a是使p指向变量a
D.两个语句都是使p指向变量a
46.在下列关于宏定义命令#define的叙述中,正确的一条是()
A.用一个指定的标识符(宏名)来代替一个长整型数
B.用一个指定的标识符(宏名)来代替一个双精度数
C.用一个指定的标识符(宏名)来代替一个字符串
D.用一个指定的标识符(宏名)来代替一个单精度实数
47.以下合法的赋值语句是______。
A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)
48.下述关于数据库系统的叙述中,正确的是()。
A.数据库系统减少了数据冗余
B.数据库系统避免了一切冗余
C.数据库系统中数据的一致性是指数据类型一致
D.数据库系统比文件系统能管理更多的数据
49.在深度为5的满二叉树中,结点的个数为
A.32B.31C.16D.15
50.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序运行后的输出结果是()。
A.3B.2C.1D.0
51.在C语言中,while和do…while循环的主要区别是()。
A.do…while的循环体不能是复合语句
B.do…while允许从循环体外转到循环体内
C.while的循环体至少被执行一次
D.do…while的循环体至少被执行一次
52.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是()。
A.if(x++);
B.if(x>y&&y!=0);
C.if(x>y)x--elsey++;
D.if(y<0){;}elsex++;
53.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<-10‖!(y-x)>10
D.(x-y)*(x-y)<100
54.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}执行后的输出结果是
A.4B.3C.2D.1
55.在C语言中,引用数组元素时,其数组下标的数据类型允许是()
A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式
56.下列程序的输出结果是()。#inclUde<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}},(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[0][1]+a[1][1]+a[1][2];}
A.15B.10C.7D.8
57.设有以下定义和语句,输出的结果是(用small模式编译,指针变量2个字节)______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));
A.20B.16C.14D.12
58.下列叙述中正确的是______。
A.程序设计就是编制程序
B.程序测试必须由程序员自己去做
C.程序经调试改错后还应进行再测试
D.程序经调度改错后不必进行再测试
59.软件生命周期中所花费用最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护
60.线性结构中的一个结点代表一个数据元素,通常要求同一线性结构的所有结点所代表的数据元素具有相同的特点,这意味着______。
A.每个结点所代表的数据元素都一样
B.每个结点所代表的数据元素包含的数据项的个数要相等
C.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
D.结点所代表的数据元素有同一特点
四、选择题(20题)61.有以下程序:
程序运行后的输出结果是()。A.235B.0235C.02356D.2356
62.结构化程序设计主要强调的是
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性
63.
64.
65.若有如下说明和定义
structtest
{intml;charm2;floatm3;
unionuu{charul[5];intu2[2];}ua;
}myaa;
则sizeof(structtest)的值是
A.12B.16
C.14D.9
66.下述程序的输出结果是()。
#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
67.
68.
69.下面描述中,不属于软件危机表现的是()A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高
70.以下程序的输出结果是()。
#include<stdio.h>
voidmain()
{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
71.设有定义:
则以下赋值语句中错误的是()。
A.data2=(2,6);
B.data2=datal;
C.data;real=datal.real;
D.data2.real=datal.unreal;
72.有以下程序:
#include<stdio.h>
main()
{intX=011;
printf("%d\n",++x);
}
程序运行后的输出结果是()。
A.12B.11C.10D.9
73.有以下程序程序运行后的输出结果是()。
A.28B.24C.32D.36
74.以下关于C语言数据类型使用的叙述中错误的是()。
A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
B.若要保存带有多位小数的数据,可使用双精度类型
C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
D.整数类型表示的自然数是准确无误差的
75.
76.对于存储同样的一组数据元素而言().
A.顺序结构比链接结构易于扩充空间
B.顺序结构与链接结构相比,更有利于对元素进行插入、删除运算
C.顺序结构占用整块空间,而链接结构不要求整块空间
D.顺序结构比链接结构多占存储空间
77.
78.
79.函数fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始点是()。
A.文件开始B.文件末尾C.文件当前位置D.以上都不对
80.以下选项中合法的表达式是()。
A.a=a+7=c+b
B.(3+x)++
C.3+x++
D.x+1=x+1
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据整型参数m,计算如下公式的值:y=1/(100100)+1/(200200)+1/(300300)+…+1/(mm)例如,若m=4000,则应输出0.000162。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.程序定义了M×M的二维数组,并在主函数中自动赋值。请编写函数proc(inta[][M],intn),该函数的功能是使数组左下半三角元素中的值加上n。例如,a数组中的值为:
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.D[解析]C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不合法。
2.C解析:函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5.6,7,8,9,01;再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。
3.B
4.B
5.B
6.B
7.A
8.B解析:在主函数中,第—次调用fun函数,将变量b,c的值传给形参x,y,在fun()函数中执行if语句,判断b和c的值是否相等,由于在主函数中赋初值b=5,c=6,所以判断条件不满足,执行else语句,返回表达式(x+y)/2的值,即:(5+6)/2,因为参数的类型都为int型,所以结果也为整型:5,第二次调用时8和5也不相等,所以返回值为6,因此,选项B是正确的。
9.B
10.D
11.AC语言中的转义字符也是一个字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3个字符。strlen遇到‘\\0’字符计数结束,因此计数为3。故本题答案为A选项。
12.C宏定义不是C语句,末尾不需要有分号。语句“printf(“%4.1f\\n”,S(a+b));”展开后为“printf(“%4.1f\\n”,3.5;*a+b*a+b;);”,所以程序会出现语法错误。故本题答案为C选项。
13.A
14.B解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。
15.A
16.C
17.A
18.CC。R为n元关系,有P个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。
19.D若G中有一条从Vj到Vi的路径,则图的拓扑序列中顶点Vj在顶点Vi之前。设G(V,E)是一个具有n个顶点的有向图,V中顶点的序列v1,v2,…,vn称为一个拓扑序列,当且仅当该顶点满足下列条件:若在有向图G中,从顶点vi在vj有一条路径,则在拓扑序列中顶点vi必须排在顶点vj之前。
20.D根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,因此本题中度为2的结点为l一1=0个,据此可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即深度为7,选择D)。
21.structlink*next
22.28
23.44解析:将程序中所有的宏替换掉可得:M=2+1,K=2+1*2+1/2=4,所以for循环共循环了K-1+1次,即4-1+1共4次。
24.00解析:本题考查数据类型及其运算的逻辑运算,c为空格字符但其ASCII码不为0,所以!c=0,在逻辑与运算中,只要有一项为假,其值为0,所以b的值为0。
25.4844
26.a=1b=2c=3a=1,b=2,c=3解析:此题考查了scanf函数的输入格式。scanf函数的输入格式规定如果两个格式说明项间有一个或多个普通字符,那么在输入数据时,在两个数据之间也必须以这一个或多个字符作为分隔符。
27.malloc(11)malloc函数的格式是void*(或char*)malloc(size),size表示应分配的存储区,此题要分配11字节的单元,把11代入即可。
28.%d%3
29.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
30.1371513715解析:程序中n是一个有5个元素,且元素值全为0的数组。在for循环中,当i=1时,n[1]=n[0]*2+1,此时n[1]=1;i=2时,n[2]=n[1]*2+1,此时n[2]=3;i=3时,n[3]=n[2]*2+1,此时n[3]=7;i=4时,n[4]=n[3]*2+1,此时n[4]=15,循环结束。输出函数中%d后有空格,因此输出结果为13715。
31.611610。6,11,6,10。解析:本题考查自加的前置和后置的区别。
32.存储结构
33.*(str+i)或str[i]*(str+i)或str[i]解析:str是指针变量,它指向字符型数据,在循环过程中,可以用*(str+i)来访问字符串中的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到*(str+i)的值为'\\0'为止,也可以用下标的方式引用字符,如*(str+i)相当于str[i]。
34.&s&t&s,&t解析:指针做函数参数时,形参和实参指向同一个数据,所以函数中对形参所指向的数据的改变也能影响到实参。本题中函数swap_p的形参为指向指针的指针,即双重指针,原理跟普通的指针是一样的。注意:通过指针来引用一个存储单元。
35.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本题考查基本逻辑表达,“整数x的绝对值大于5”时值为“假”,即整数x的绝对值小于等于5,也就是整数x要大于等于-5且要小于等于5。这里“且”用“与(&&)”表示,所以C语言表达式为:(x>-5)&&(x<5)。
36.100010100010解析:首先将程序中的宏替换掉,两处的宏替换后分别为i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后输出的i1和i2的值分别为1000和10。
37.66
38.无限无限解析:分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。
39.150150解析:本题先给变量x赋初始值100,然后将指针p指向变量x,*p是取指针p所指地址的内容,即100,所以x=100+50=150。
40.k=p;k=p;解析:为寻找数组中最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查通常从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k]更大时,应该用p更新k,所以在空框处应填入代码'k=p;'。
41.B
42.B解析:选项A中是字符串的表示方法,选项B是一个转义字符,选项C是整型常量,选项D不是常量的表示方法。
43.C解析:#define宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef命令终止宏定义的作用域。本题由于#undef的作用,使a的作用范围在#definea100到#undefa之间,故答案为C。
44.C解析:若在定义二维数组的同时对数组进行初始化,可以不指定一维长度.但二维长度不能省略,因此选项C是错误的。如果数据不足,系统将自动给后面的元素自动补初值0。
45.C解析:“p”是指针变量,指向一个地址:“*p”,为p指针所指向地址的内容。
46.C
47.B解析:本题中的答案A与D都缺少“;”,而答案C中,表达式是不能独立成为语句的,答案B使用了C语言的自减运算符它就相当于D=D-1,所以答案B为一赋值语句。
48.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。
49.B解析:二叉树有如下性质:深度为m的二叉树最多有2的m次方再减1个结点,也就是2m-1=25-1=32-1=31。由此可知答案为B。
50.D解析:位与运算符“&”,按二进位进行“与”运算,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0;取反运算符“~”,用来对一个二进制按位取反,即将0变1,1变0。在prinf()函数的表达式中,“&”前面表达式的值为1(3/2=1)表示为二进制为00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。z的二进制表示为00000001,取反后为11111110,最后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0。
51.D解析:本题考查while和do…while循环的区别。while循环的控制出现在循环体之前,只有当while后面的表达式的值为非零时,才可能执行循环体:在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。
52.C
53.C解析:选项A用了一个绝对值函数abs();选项B中用了一个“&&”逻辑与;选项C中,“||”左边的式子如为真,将不再判断其后的表达式的值;选项D为本题中数学关系式的一个等价命题。
54.A解析:本题考核的知识点是数组的定义、赋初值以及函数调用的组合应用.本题中函数sum(int*A)的作用是:将形参a所指的数组中的第二个元素的值a[1]赋给第一个元素a[0]。主函数中定义一个长度为10的整型数组并赋初值,接着执行一个for循环,该循环共执行了3次.当i=2时,调用函数sum(&aa[2]),主函数中将&aa[2]作为实参传给行参a,所以此时形参a所指的数组的第一个元素和第二个元素分别为aa[2]和aa[3],故执行完该函数后将aa[3]的值赋给aa[2],即aa[1]=aa[3]=4,当i=1时,调用函数sum(&aa[1]),主函数中将&aa[1]作为实参传给行参a,所以此时形参a所指的数组的第一个元素和第二个元素分别为aa[1]和aa[2],故执行完该函数后将aa[2]的值赋给aa[1],即aa[1]=aa[2]=4;当i=0时;调用函数sum(&aa[0]),,主函数中将&aa[0]作为实参传给行参a,所以此时形参a所指的数组的第一个元素和第二个元素分别为aa[0]和aa[1],故执行完该函数后将aa[1]的值赋给aa[0],即aa[0]=aa[1]=4;故最后输出的aa[0]的值为4,所以,4个选项中选项A符合题意。
55.C解析:C语言规定只能逐个引用数组元素而不能一次引用整个数组,数据元素的表示形式为数组名[下标],下标可以是整型常量或整型表达式。
56.B解析:本题涉及字符串最基本的两个概念:①字符串的长度是指字符串中字符的个数,但不包括字符串结束符;②以反斜杠“\\”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。
57.D解析:sizeof函数计算已知类型所占的字节数。结构体变量所占内存长度是各成员占的内存长度之和。指针变量占2个字节,所以cat和*next各占2个字节;double型占8个字节,故too共占12个字节。
58.C解析:软件测试包括需求分析、结构功能模块设计、编制程序等阶段。程序的测试可以由专门的测试人员来完成。程序经调试改错后还应进行再测试。
59.D解析:软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。本题中,详细设计、软件编码和软件测试都属于软什开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段.软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。
60.C
61.B本题考查分支语句用法。因为变量的初始值分别为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=2,break跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。
62.D结构化程序设计由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主张“清晰第一,效率第二”,以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,为设计一些较大的软件打下了良好的基础。
由于模块相互独立,因此,在设计其中一个模块时,不会受到其他模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为可以充分利用现有的模块作为积木式的扩展。
结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年沪教版第二学期七年级-英语重点句型背默
- 2025 奇特的石头造型作文课件
- 数字化转型下H啤酒苏州市场客户管理的创新与实践:策略、挑战与突破
- 数字化转型下DCTL物流园场站新业务系统建设与实践
- 2025 好玩的篮球投篮比赛作文课件
- 社会工作者《社会工作综合能力(中级)》测题库与模拟题库及答案
- 数字化浪潮下:信息技术重塑小学数学教育新生态
- 数字化浪潮下光的设计:理念、应用与创新
- 数字化浪潮下M国际快递公司发展战略的多维剖析与转型路径
- 2025 下雪天作文课件
- (完整版)笔录模板
- EN ISO 15614-05金属材料焊接工艺规程与评定-焊接工艺试验 中文
- 惠州市惠城区2022-2023学年数学六年级第二学期期末综合测试试题含解析
- 2023年江苏对口单招财会高考试卷
- 工程地质勘察报告110000字
- 实验动物课件 实验动物的营养控制-研究生2018
- YY/T 1778.1-2021医疗应用中呼吸气体通路生物相容性评价第1部分:风险管理过程中的评价与试验
- GB/T 23901.1-2019无损检测射线照相检测图像质量第1部分:丝型像质计像质值的测定
- FZ/T 73009-2021山羊绒针织品
- 印刷及纸张基础知识培训课件
- 利用导数证明数列不等式问题课件-高考数学二轮复习
评论
0/150
提交评论