![2021-2022年广东省汕头市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页](http://file4.renrendoc.com/view/01dc6868a95d3c73b2ce698688424219/01dc6868a95d3c73b2ce6986884242191.gif)
![2021-2022年广东省汕头市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页](http://file4.renrendoc.com/view/01dc6868a95d3c73b2ce698688424219/01dc6868a95d3c73b2ce6986884242192.gif)
![2021-2022年广东省汕头市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页](http://file4.renrendoc.com/view/01dc6868a95d3c73b2ce698688424219/01dc6868a95d3c73b2ce6986884242193.gif)
![2021-2022年广东省汕头市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页](http://file4.renrendoc.com/view/01dc6868a95d3c73b2ce698688424219/01dc6868a95d3c73b2ce6986884242194.gif)
![2021-2022年广东省汕头市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页](http://file4.renrendoc.com/view/01dc6868a95d3c73b2ce698688424219/01dc6868a95d3c73b2ce6986884242195.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年广东省汕头市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i+j;}}printf("m=%d\n",m);}程序运行后的输出结果是()。A.m=6B.m=2C.m=4D.m=3
2.
3.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是()。
A.head(tail(LS))
B.tail(head(LS))
C.head(tail(head(tail(LS)))
D.head(tail(tail(head(LS))))
4.二维数组A按行顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为_______
A.470B.471C.472D.473
5.
6.设有定义:int?x=2,以下表达式中,值不为6的是()。
A.2*<.x+=2B.x++.2*xC.x=x*(1+x)D.x*=x+1
7.按照标识符的要求,()符号不能组成标识符。
A.连接符B下划线B.大小写字母C.数字字符
8.以下不正确的定义语句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5.3]={0,1,3,5,7,9};
C.charc1[]={′1′,′2′,′3′,′4′,′5′};
D.charc2[]={′\x10′,′\xa′,′\x8′};
9.以下说法正确的是()。
A.C程序总是从第一个函数开始执行
B.在C程序中,被调用的函数必须在main函数中定义
C.C程序总是从main函数开始执行
D.C程序中的main函数必须放在程序的开始部分
10.下列程序的运行结果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2
11.若串S=,software,其子串的数目是()。
A.8B.37C.36D.9
12.若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]
13.
14.根据二叉树的定义可知道二叉树共有种不同形态的二叉树()。
A.3B.4C.5D.7
15.若有以下定义,则能使值为3的表达式是intk=7,x=12;
A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
16.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是
A.i-1B.iC.i+1D.4-i
17.设q1和q2是指向一个float型一维数组的指针变量,k为float型变量,则不能正确执行的语句是()。
A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);
18.表达式9!=10的值为()。
A.非零值B.trueC.0D.1
19.按照标识符的要求,()符号不能组成标识符。A.连接符B.下划线C.大小写字母D.数字字符
20.
二、2.填空题(20题)21.下列程序的输出结果是______。
#include<stdio.h>
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,D);
primf("%d,%d%d\n",c,D);
}
22.数据流图的类型有【】和事务型。
23.下面程序的功能是:计算110之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,I;
a=c=0;
for(I=0;I<=10;I+=2)
{a+=I;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
24.当线性表的元素总数基本稳定,且很少进行插入和删除操作,并要求以很快的速度存取线性表中的数据元素时,应采用【】存储结构。
25.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。
26.以下程序运行时若从键盘输入:102030<回车>。输出结果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
27.某二叉树中度为2的结点有n个,则该二叉树中有【】个叶子结点。
28.以下程序的输出结果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
29.以下程序运行后的输出结果是______。
main()
/inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
30.软件生命周期分为软件定义期、软件开发期和软件维护期,详细设计属于______中的一个阶段。
31.以下程序运行后的输出结果是______。
main()
{intx,a=1,b=2,c=3,d=4;
x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;
pfintf("%d\n",x);
}
32.以下程序的运行结果是()。#defineA4#defineB(x)A*x/2main(){floatc,a=8.0;c=B(A;printf("%f\n",C);}
33.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getehar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后的输出结果是【】。
34.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为______。
35.以下scanf函数调用语句中对结构体变量成员的引用不正确的是{charname[20];}pup[5],*p;
36.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
37.按照“先进先出”的原则组织数据的结构是______。
38.买来一张新盘后,在存入文件前,必须进行【】处理。
39.诊断和改正程序中错误的工作通常称为【】。
40.以下程序的输出结果是()。#definePR(ar)printf("ar=%d”,ar)main(){intj,a[]={1,8,3,7,6,13,17,15},*p=a+5;for(j=3;j;j--)switch(j){case1:case2:PR(*p++);break;case3:PR(*(--p));}}
三、1.选择题(20题)41.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序运行后的输出结果是()。
A.3B.2C.1D.0
42.有以下程序intx=3;do{printf("%d",x-=2);}while(!(--x));程序运行后的输出结果是()
A.1B.30C.1,-2D.死循环
43.打开一个已经存在的非空文本文件,若文件名为stu,则正确的打开语句为()
A.FILE*fp;fp=fopen("stu.txt","r")
B.FILE*fp;fp=fopen(stu.txt,r)
C.FILE*fp;fP=fopen("stu,txt","wb")
D.FILE*fp;fp=fopen("stu.txt",wb)
44.在数据流图(DFD)中,带有名字的箭头表示______。
A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分
45.设有下列二叉树:
对此二叉树先序遍历的结果为
A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA
46.若有如下程序:main(){chara[]={"1234"};inti,t=0;for(i=0;a[i]>='0'&&a[i]<='9';i+=2)t=10*t+a[i]一-'0';printf("%d\n',t);}则程序运行后的输出结果是()。
A.13B.1234C.24D.123
47.若有定义“char,*p2,*p3,*p4,ch;”,则不能正确赋值的程序语句为()
A.p1=&ch;scanf("%c",p1);
B.p2=(char*)malloc(1);scanf("%c",p2);
C.p3=getchar();
D.p4=&ch;*p4=getchar();
48.下面程序的输出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=8,v2=8,v3=8,v4=8
49.线性表若采用链式存储结构时,要求内存中可用存储单元的地址()
A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以
50.在深度为5的满二叉树中,叶子结点的个数为A.32B.31C.16D.15
51.下述程序段的输出结果是()intx=10;inty=x++;printf("%d,%d",(x++,y),y++);
A.11,10B.11,11C.10,10D.10,11
52.下列字符序列中,不可用作C语言标识符的是______。
A.b70B.#abC._symbolD.al
53.下列程序的输出结果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}
A.0,1,2B.1,2,3C.1,1,3D.1,2,2
54.不合法的main函数命令行参数表示形式是
A.main(inta,char*c[])
B.mmn(intarc,char**arv)
C.main(intargc,char*argv)
D.majn(intargv,char*atgc[])
55.以下叙述中正确的是______。
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别执行
C.C语言以接近英国国家的自然语言和数学语言作为语言的表达形式
D.C语言出现得最晚,具有其他语言的一切优点
56.定义结构体数组:
structstu
{intnum;
charname[20];
}x[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"};
for(i=1;i<5;i++)
printf("%d%c",x[i].num,x[i].name[2];
以上程序段的输出结果为()。
A.2A3N4A5UB.112A3H41C.1A2N3A4UD.2H3A4H51
57.在下列几种排序方法中,要求内存量最大的是______。
A.插入排序B.选择排序C.快速排序D.紧并排序
58.若x是int型变量,且有下面的程序片段:for(x=3;x<6;x++)printf(x%2)?("**%d"):(”##%d\n”),x);上面程序片段的输出结果是()
A.**3##4**5
B.##3**4##5
C.##3**4##5
D.**3##4**5
59.在C语言中,变量的隐含存储类别是
A.autoB.staticC.extemD.无存储类别
60.下列叙述中正确的是()。
A.在面向对象的程序设计中,各个对象之间具有密切的关系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述3种说法都不对
四、选择题(20题)61.语句int(*ptr)的含义是()。
A.ptr是一个返回值为int的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
62.
63.有以下程序:
程序运行后的输出结果是()。
A.2B.0C.元素ch[5]的地址D.字符y的地址
64.已定义以下函数
fun(char*p2,char*p1)
{
while((*p2=*p1)!=’\0’){p1++;p2++;}
}
函数的功能是
A.将p1所指字符串复制到p2所指内存空间B.将p1所指字符串的地址赋给指针p2
C.对p1和p2两个指针所指字符串进行比较D.检查p1和p2两个指针所指字符串中是否有’\0’
65.
66.有下面程序段:
则程序段的输出结果是()。
A.18B.19C.20D.21
67.
68.下面的函数调用语句中func函数的实参个数是()。func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))
A.3B.4C.5D.8
69.设有定义:intX=2;,以下表达式中,值不为6的是()。
A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1
70.有以下程序:#include〈stdio.h〉intabe(intu,intv);main{inta=24,b=16,c;c=abc(a,b);printf(“%d\n”,c);}intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w;)returnu;}输出结果是()。A.6B.7C.8D.9
71.
72.以下能正确定义二维数组的是()。
A.inta[][3];
B.inta[][3]={2*3);
C.inta[][3]={};
D.inta[2][3]一{{1),{2},{3,4}};
73.以下选项中不属于字符常量的是()。
A.
B.
C.
D.
74.以下叙述中正确的是()。A.A.break语句只能用在循环体内和switch’语句体内
B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C.在循环体内使用break语句和continue语句的作用相同
D.break语句只能用于switch语句体中
75.
76.有以下程序:
程序运行后的输出结果是()。
A.1.1.3B.2,2,3C.1,2,3D.3,3,3
77.有以下程序:
#include<stdio.h>
main
{inty=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是()。
A.y=0B.y=-1C.y=lD.while构成无限循环
78.以下选项中不合法的标识符是()。
A.&aB.FORC.printD._00
79.有以下程序:
#include<stdio.h>
#include<strin9.h>
main()
{printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}
程序运行后的输出结果是()。
A.3B.8C.4D.9
80.
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,输入opdye,则应输出deopy。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charc;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j++)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=c;}}voidmain{charstr[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\n\nBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%s",str);}
六、程序设计题(1题)82.请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
例如,当str所指字符串中的内容为abcdefg,则在t所指数组中的内容应是bdf。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.A本题考查了多重for循环。当(i*j)>3时,跳出循环,本题中i=1,j=3,i*J后值为3,所以执行下边语句:m*=i+j,也可写成m=m*i+j,这时要注意优先级,所以m的值为6。
2.B
3.C
4.C
5.A
6.A?A)选项中逗号表达式先计算第一表达式2*x,然后计算表达式x+=2的值,即x=x+2即4,整个逗号表达式为第二个表达式的值4,所以选A)。B)选项中首先计算逗号表达式中第一一个表达式x++,此时x为3,再执行第二个表达式2*x=2*3=6,所以逗号表达式为第二个表达式的值6。C)选项的赋值表达式可以表示为x=x*(1+x)=2*(1+2)=6。D)选项中的表达式可以表示为x=x*(x+1)=2*3=6。
7.A
8.B
9.C解析:C程序是由main函数开始运行,通过main函数调用其他函数,所以,选项A)错误;在C程序中,函数不能嵌套定义,即不能在一个函数中定义另一个函数,选项B)错;C程序总是从main函数开始执行,但main函数不必放在最前面,故选项D)错。
10.D本题考查"drhile循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,X++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,x=2,y-1=1,循环条件成立,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<X成立,执行break语句,退出循环。结果为D。
11.B
12.D本题考查如何引用数组元素的地址。选项A)中,p5引用的是af51的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误;选项B)中,*a1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。
13.D
14.B
15.D解析:运算符“%”的两侧都应该是整型数。另外,本题需要掌握的知识点是:x%=k,等价于x=x%k。注意:强制类型转换表达式。
16.B解析:本题考查循环嵌套,外层循环控制每一行的输出,内层循环的第一个for循环控制空格的输出,第二个for循环控制的输出。而在第i行,输出的第一个元素是num[i][i],所以下划线处应填i。
17.B解析:选项A)是将指针q1和q2所指向的变量值相加,然后赋给k;选项B)中,float型数据和指针型数据之间不能进行赋值运算:选项C)中,是两个指针变量之间的赋值:选项D)中,是两个指针型变量所指向的两个float型数据相乘。
18.D
19.A
20.C
21.7979解析:因为在调用子函数时进行的是数值传递,调用子函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。
22.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
23.b=I+1b=I+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2后的和累加至a,所以a的值就是110之间的偶数之和;b的值是111之间的奇数和,但在输出b值时,c去掉多加的11,即为110之间的奇数之和。
24.顺序顺序
25.模块模块解析:矩形表示的是模块,箭头表示的是模块间的调用关系。用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。
26.1030010300解析:本题的scanf()函数要求用户输入三个十进制整数,但只接受第一和第三个到函数的第二和第三个参数所指的内存地址中。所以本题的输出为:10300。
27.n+1n+1解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为0的结点多一个。
28.3131解析:在函数调用时,形参值和改变,不会改变实参的值。
29.123\n056\n009123\\n056\\n009解析:数组是用于按顺序存储同类型数据的数据结构,如果有一个一维数组,它的每一个元素是类型相同的一维数组,就形成了一个二维数组。在内存中数组的元素是连续顺序存放的,对;维数组来说,先存放第一行,再存放第;行,…,因为每一行都是其广义一维数组的元素,并且在给出全部数组元素的初值后,二维数组的定义中可以将第一维的下标省略。本题中,定义了一个元素类型为整型的二维数组敢a[][3]={1,2,3,4,5,6,7,8,9),它相当于一个3*3的矩阵,for(i=0;i<3:i++)for(j=i+1;j<3;j++)a[j][i]=0;将行下标i大于列下标j的元素s[1][0],a[2][0],a[2][1]赋值为0,最后for(j=0;j<3;j++)prinff('%n',a[i][j]);printf('\\n');进行换行输出,所以输出结果为
123
056
009
30.软件开发软件开发解析:软件生命周期分为3个时期共8个阶段:软件定义期(问题定义、可行性研究和需求分析)、软件开发期(系统设计、详细设计、编码和测试)、软件维护期(即运行维护阶段)。
31.因为在条件表达式(a<b)?a:b中,比较表达式a<b为真,所以x的值等于a的值等于1,后面两个条件表达式中的比较表达式都为真,所以最终x的值等于1。\r\n\r\n
32.16.0
33.1212解析:程序中的ch1与ch2为字符型变量,输入12后,ch1得到字符'1',ch2得到字符'2'。n1=ch1-'0'将字符1,转换为数值1,同理,n2为1*10+2=12。程序执行后输出十进制整数12。
34.物理独立性物理独立性解析:数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物理结构(包括存储结构、存取方式)改变时,不需要修改应用程序。而逻辑独立性是指当逻辑结构改变时,不需要修改应用程序。
35.D
36.调试调试
37.队列队列解析:队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫做“队尾”,删除元素的一端叫做“队头”,先插入的元素先被删除,是按先进先出的原则组织数据的。
38.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
39.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。
40.ar=6ar=6ar=13ar=6ar=6ar=13解析:通过*p=a+5将指针P指向a[5],第1次循环,i=3时,switch(3),执行case3,*(-p)-a[4]=6,所以输出ar=6;第2次循环,j=2时,switch(2),执行case2,(*p++)是先引用a[4]的值6,输出ar=6,再将指针P移位指向a[5];第3次循环,j=1时,switch(1),执行case1,case1后没有break语句,接着执行case2,(*p++)是先引用a[5]的值13,输出ar=13,再将指针P移位指向a[6]。
41.D解析:位与运算符“&”,按二进位进行“与”运算,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0;取反运算符“~”,用来对一个二进制按位取反,即将0变1,1变0。在prinf()函数的表达式中,“&”前面表达式的值为1(3/2=1)表示为二进制为00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。z的二进制表示为00000001,取反后为11111110,最后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0。
42.C
43.A
44.C解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。
45.C解析:二叉树的遍历分为先序,中序、后序三种不同方式.本题要求先序遍历,其遍历顺序应该为:访问根结点->,先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDECF,故答案为C。
46.A解析:程序中首先以字符串常量定义并初始化了一个字符数组a,此时数组a包含5个元素{'1','2','3','4','\\0'},然后定义了一个变量t,并初始化为0。接下来是一个for循环,循环变量i从0开始每次递增2,循环条件a[i]是一个数字字符。因为a[0]、a[2]分别是数字字符'1'、'3'而a[4]不是,所以循环体执行了两次,第一次执行前t为0,执行后t=10*t+a[i]-'0'=10*0+'1'-'0'=1,所以第二次执行结果为t=10*t+a[i]-'0'=10*1+'3'-'0'=13。程序运行后的输出结果是13,本题选A。
47.C
48.C解析:当switch后面括弧内的表达式的值与某一个case后面的常量的表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。
49.D解析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据接点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
50.C2(n-1)
=2(5-1)=16
51.A
52.B
53.C解析:本题考查if语句。先判断if语句的条件是否成立,++a=1>0,此条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算符的真假,即不进行++b操作,就可以直接得出整个表达式的值为逻辑1,执行下列的++c。
54.C解析:main()函数可以带有参数,并且参数只能有两个,第一个参数类型为整型,用来记下命令行的参数个数,第二个参数为一个字符型指针数组,或字符型二级指针变量(指向一个数组,数组元素又是一个一级字符指针),其各个元素用来记下从命令行各参数字符串的首地址.故本题只有C选项不符合要求。所以,4个选项中C为所选。
55.C解析:C语言是于1972—1973年,由D.M.Ritehie在贝尔实验室为描述和实现UNIX操作系统而在B语言的基础上设计出来的。C语言同时具备高级语言和低级语言的特点,既适用于编写系统软件,义可用于编写应用软件。计算机不能直接执行C语言的源程序,必须编译生成目标程序后才能执行。
56.A解析:本题主要考查结构体数组的使用。x[i].num为结构体x[i]中的num成员,x[i].name[2]是结构体x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[1].num,x[1].name[2]的值,即2A;第2次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N;第3次循环,i=3,输出x[3].num,x[3].name[2]的值,即4A;第4次循环,i=4,输出x[4].num,x[4].name[2]的值,即5U。
57.D解析:快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的前面(这是它应有的位置),然后对乘下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成一个新的有序表。
58.D
59.A解析:auto变量:无static声明的局部变量。用auto作存储类别的声明时,可以不写auto,存储类别隐含确定为auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用static声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用extern声明外部变量,外部变量即全局变量,可以用extern声明来改变全局变量的作用域,实际上,关键字“auto”可以省略,auto不写则隐含确定为“自动存储类别”,属于动态存储方式
60.C本题考查对面向对象的理解。面向对象的程序设计是对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。
61.C本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)()。“类型标识符”为函数返回值的类型。
62.D
63.A语句pc=eh;使得指针变量指向字符数组ch的首地址,即指向字符‘u’,则pc+5指向的是字符向后移动5位,指向字符‘z’。所以输出的$pc+5的值即为‘Z’。因此A选项正确。
64.A本题主要考查字符串的操作。从题目的选项中我们可以看出,本题给出的程序是对字符串进行相应的操作。
本题的程序是一个fun函数,该函数带有两个指针类型的形参p1和p2,它们分别指向两个需要被操作的字符串,程序中主要是一个while循环,循环的判断条件是(*p2=*p1)!=’\0’,这个表达式的作用是将指针变量p1所指向的字符串的当前字符赋值给指针变量p2所指向的存储空间,并判断该字符串是否为字符串结束标识,如果不是结束标识,则两个指针都后移一位,即分别指向下一个存储单元。
通过上面对程序的分析我们可以看出,程序是将指针变量p1所指向的字符串复制到指针变量p2所指向的存储空间中,直到字符串结束。因此,本题的答案选A。
65.C
66.B字符串连接函数strcat的调用形式如下:strcat(sl,s2)。此函数将s2所指字符串的内容连接到sl所指的字符串后面,并自动覆盖sl串末尾的尾标,函数返回sl的地址值。本题中首先将二维数组中各行的字符串都复制到了指针P所指向的一维数组k的地址空间,然后用strlen函数求得k数组的长度i,即l9。
67.D
68.A解析:本调用语句func中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国基础设施建设行业市场发展现状及市场格局与投资研究报告(2024-2030)
- 中国呼吸机市场调研及发展策略研究报告(2024-2030)
- 中国可吸收医疗器械行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030)
- 中国儿童双语教育市场发展风险与前景经营趋势建议报告2024-2029版
- 中国仲钨酸铵行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030版)
- 中国亚麻酸市场供应形势探析与前景营销现状报告2024-2030年
- 中国乌鸡产品市场营销渠道与投资策略规划报告2024-2030年
- 中国中草药加工行业投融资规模及竞争优势分析报告2024-2030年
- 中国DCS控制系统行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030版)
- 中国APAO改性沥青防水卷材行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030版)
- 高中英语新课程标准试题含答案(四套)
- 光纤通信(第5版)课后习题答案要点
- 走向世界的中国文学知到章节答案智慧树2023年哈尔滨工业大学
- 羽毛球社团活动记录
- LX400立式旋压机设计
- 部编版一年级语文(下册)看拼音写词语
- JJF 1139-2005计量器具检定周期确定原则和方法
- GB/T 17906-2021消防应急救援装备液压破拆工具通用技术条件
- 北师大版四年级数学下册第一单元测试题
- 2021年国家开放大学电大心理学作业1形考任务答案
- 2022年二级造价工程师(土建建设工程计量与计价实务)考试题库通关300题附答案(四川省专用)
评论
0/150
提交评论