![2022年山东省枣庄市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页](http://file4.renrendoc.com/view/704b9b33719cfa8b87de028e7f11b336/704b9b33719cfa8b87de028e7f11b3361.gif)
![2022年山东省枣庄市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页](http://file4.renrendoc.com/view/704b9b33719cfa8b87de028e7f11b336/704b9b33719cfa8b87de028e7f11b3362.gif)
![2022年山东省枣庄市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页](http://file4.renrendoc.com/view/704b9b33719cfa8b87de028e7f11b336/704b9b33719cfa8b87de028e7f11b3363.gif)
![2022年山东省枣庄市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页](http://file4.renrendoc.com/view/704b9b33719cfa8b87de028e7f11b336/704b9b33719cfa8b87de028e7f11b3364.gif)
![2022年山东省枣庄市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页](http://file4.renrendoc.com/view/704b9b33719cfa8b87de028e7f11b336/704b9b33719cfa8b87de028e7f11b3365.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年山东省枣庄市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.串的长度是指()。
A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数
2.
3.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0
4.在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。
A.删除单链表中的第一个元素
B.删除单链表中的最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
5.有下列程序:main{charp[]={a,h,c},q[]="a";printf("%d%d\n".sizeof(P),sizeof(q));}程序运行后的输出结果是()。A.44B.33C.34D.43
6.在E-R图中,用来表示实体的图形是______。A.矩形B.椭圆形C.菱形D.三角形
7.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}输出结果是()。A.11B.10C.9D.1011
8.数据结构中,与所使用的计算机无关的是数据的()结构。
A.存储B.物理C.逻辑D.物理和存储
9.有以下程序:#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
10.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45
11.下面结构中最适于表示稀疏无向图的是()。
A.邻接矩阵B.逆邻接表C.邻接多重表D.十字链表
12.下面程序的输出结果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}
A.1B.2C.7D.10
13.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。
A.R-SB.R×SC.R∩SD.R∪S
14.以下程序的输出结果是______。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.输出值不定
15.某某二叉树的中序序列和后序序列正好相反,则该二叉树一定是______的二叉树
A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子
16.以下选项中不属于字符常量的是
A.′C′B.′′C′′C.′\xCC′D.′\072′
17.字符串"alibaba"的二进制哈夫曼编码有多少位()
A.11B.12C.13D.14
18.软件工程的出现是由于()。A.A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展
19.在inta=3,int*p=&a;中,*p的值是()
A.变量a的地址值B.无意义C.变量p的地址值D.3
20.若二维数组a有m列,则在a[i][j]刚前的元素个数为()。
A.i*m+j-1B.i*m+jC.j*m+iD.i*m+j+1
二、2.填空题(20题)21.一棵二叉树第6层(根结点为第一层)的结点最多为______个。
22.以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。#include<stdio.h>long();/*函数说明语句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}
23.栈满时,再作入栈操作会产生【】,栈空时,删除操作会产生【】。
24.以下程序用以删除字符串中所有的空格,请填空。
#include<stdio.h>
main()
{chars[100]={"OurteacherteachClanguage!"};inti,j;
for(i=j=0;s[i]!='\0';i++)
if(s[i]!=''){()}
s[j]='\0';
printf("%s\n",s);
}
25.在一棵二叉树中,度为0的结点的个数为n0,度为2的结点的个数为n2,则有n0=【】。
26.表示条件;10<x<100或x<0的C语言表达式是【】。
27.注释一般分为序言性注释和______注释。
28.要求使下列程序输出5个整数,请填空。
for(i=0;i<=______;printf("%d\n",i+=2));
29.以下程序运行时,若从键盘输入:102030<回车>,输出的结果是【】。
#include<stdio.h>
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
prinff("%d%d%d\n",i,j,k);
}
30.以下程序中函数fun的功能是求出能整除x且不是偶数的务正整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。
请按题意,完成填空。
试题程序:
#include<stdio.h>
voidfun(intx,intpp[],int*n)
{inti,j=0;
【】;
if(x%i==0)pp[j++]=i;
【】;
}
main()
{intx,aa[1000],n,i;
printf("\nPleaseenteranintegernumber:\n");
scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++)printf("%d",aa[i]);
printf("\n");
}
31.以下程序运行后的输出结果是【】。
#include<stdio.h>
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
32.在数据库系统中,实现各种数据管理功能的核心软件称为【】。
33.已有定义;charc='';inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
34.阅读程序:
main()
{charstrl[]="howdoyoudo",str2[10];
char*p1=strl,*p2=str2;
scanf("%s”,p2);
printf("%s”,p2);
printf("%s\n",p1);
}
运行上面的程序,输入字符串HOWDOYOUDO则程序的输出结果是【】。
35.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
36.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i-'a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
37.下列程序的运行结果为【】。
main()
{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("maxvalueis%d\n",maxvalue(3,4,a));
}
maxvalue(m,n,array)
intm,n,array[][4];
{inti,j,max;
max=array[0][0];
for(i=0;i<m;i++)
for(i=0;i<n;j++)
if(max<array[i][j])max=array[i][j];
return(max);
}
38.设有如下程序:
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,贝愉出结果为【】。
39.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
40.一个项目有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【】的联系。
三、1.选择题(20题)41.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为()。
A.221B.219C.231D.229
42.下列特征中不是面向对象方法的主要特征的是()。
A.多态性B.继承C.封装性D.模块化
43.以下说法不正确的是
A.C程序中必须有一个main()函数,C程序是从main()函数的第1条语句开始执行的。
B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的。
C.C程序中的main()函数必须放在程序的开始位置。
D.C程序中的main()函数位置可以任意指定。
44.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
45.以下叙述中正确的是()。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main函数必须放在其他函数之前
D.C函数定义的格式是K&R格式
46.下列说法不正确的足()。
A.int*ptr;//指针指向整形数据
B.char*ptr;//指针的类型是字符型指针
C.int**ptr;//指针的类型是双重指针
D.int(*ptr)[3];//是一一个指针数组,数组共有三个元素,而三个元素是int型指针
47.下面程序的运行结果是
#include<stdio.h>
main()
{staticchara[]="Languagef",b[]="programe";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.gaC.LanguageD.有语法错
48.有下列二叉树,对此二叉树中序遍历的结果为()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
49.有以下程序voidf(int*x,int*y){intt;t=*X;*X=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7);while(p>q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序运行后的输出结果是
A.8,2,3,4,5,6,7,1,
B.5,6,7,8,1,2,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1,
50.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf(“%d\n”,j);}程序运行后的输出结果是
A.4B.3C.2D.1
51.字符串"\\\"ABCDEF\"\\"的长度是()。
A.15B.10C.7D.8
52.阅读下面程序段,则执行后的结果为#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
53.若有以下程序段(n所赋的是八进制数):intm=32767,n=032767;printf("%d,%\n",m,n);执行后输出结果是()。
A.32767,32767B.32767,032767C.32767,77777D.32767,077777
54.以下程序执行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}
A.252B.1C.0D.运行时出错,x无定值
55.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是()。
A.地址传递B.值传递C.由实参传给形参,并由形参传回给实参D.由用户指定传递方式
56.设有变量说明int(*p)[m],其中的标识符p是()。
A.m个指向整型变量的指针
B.指向m个整型变量的指针
C.一个指向具有m个整型元素的一维数组的指针
D.具有m个指针元素的一维指针数组,每个元素都指向整型变量
57.下列叙述中正确的是______。
A.C程序中注释部分可以出现在程序中任伺合适的地方
B.花括号""{""和""}""只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的—部分
58.若有以下定义和语句,且0<=I<10,则对数组元素的错误引用是()
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,I
p=a;
A.*(a+I)B.a[p-a]C.p+ID.*(&a[I])
59.下列程序执行后的输出结果是()。#include<stdio.h>#include<string.h>main(){chararr[2][4];strcpy(arr[0],"you");strcpy(arr[1],"me");arr[0][3]='&';Printf("%s\n",arr);}
A.you&meB.youC.meD.err
60.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
四、选择题(20题)61.以下符号C语言语法的实型常量是()。
A)1.2E0.5B)3.14159E
C)5E-3D)E15
62.
有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+l;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main
{intc[10]={1,2,3,4,5,6,7,8,9,0),i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序运行的结果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
63.(52)栈和队列的共同点是()
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
64.已定义:inta=25,b=14,c=19;,以下三目运算符(?:)所构成语句的执行后
a<=25&&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);程序输出的结果是
A.***a=25,b=13,c=19B.***a=26,b=14,c=19C.###a=25,b=13,c=19D.###a=26,b=14,c=19
65.
设有如下定义:
intarr[]={6,7,8,9,10);
int*ptr:
ptr=arr;
*(ptr2)=2;
printf("%d,%d\n",*ptr,*(ptr2)):
则下列程序段的输出结果为()。
A.8,10B.6,8C.7,9D.6,2
66.
67.定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};
则语句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的输出结果是()。
A.159B.147C.357D.369
68.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。
若有以下程序段:
该程序段实现的功能是()。
A.删除尾结点B.尾结点成为首结点C.删除首结点D.首结点成为尾结点
69.有以下程序:
以下叙述中正确的是()。
A.在给P和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B.由于P数组中没有字符串结束符,长度不能确定;但q数组中字符长度为3
C.由于q数组中没有字符串结束符,长度不能确定;但P数组中字符长度为3
D.由于P和q数组中没有字符串结束符,故长度都不能确定
70.
有以下程序,其中函数f的功能是将多个字符串按字典顺序排序()。
#include<string.h>
voidf(char*p[],intn)
{char*t;inti,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j]
=t;}
}
main
{char*P[5]={"abe","aabdfg","abbd","dcd-
be","cd"};
f(p,5);
printf("%d\n",strlen(p[1]));
}
程序运行后的输出结果是()o
A.2B.3C.6D.4
71.对于循环队列,下列叙述中正确的是()。
A.队头指针是固定不变的
B.队头指针一定大于队尾指针
C.队头指针一定小于队尾指针
D.队头指针可以大于队尾指针,也可以小于队尾指针
72.若要说明一个类型名STP,使得定义语句STPs;等价于Char*s;,以下选项中正确的是()。
A.typedefChar*s;
B.typedefChar*STP;
C.typedefSTP*Char;
D.typedef*CharSTP;
73.标准库函数fgets(s,n,file)的功能是()。
A.从文件file中读取长度为n的字符串存入字符数s由
B.从文件file中读取长度不超过n-1个字符的字符放到字符数组S中
C.从文件file中读到n个字符串存入字符数组s中
D.从文件file中读取长度为n-1个字符的字符串存字符数组S中
74.下列程序执行后的输出结果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}
A.5B.6C.7D.8
75.
76.在深度为5的满二叉树叶中,叶子结点的个数为()。
A.32B.31C.16D.15
77.有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是
A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数
78.下列描述错误的是()。
A.继承分为多重继承和单继承
B.对象之问的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
79.有以下程序:
程序的运行结果是()。
A.y=0B.y=1C.y=2D.y=3
80.
五、程序改错题(1题)81.写出下列程序的运行结果。
main
{intn;
For(n=3;n<=10;n++)
{if(n%6==0)break;Printf(“%d”,n);}}
六、程序设计题(1题)82.规定输入的字符串中只包含字母和+号。编写函数fun,其功能是:除了字符串前导和尾部的母号外,将其他的*号全部删除。形参h已指向字符串中第一个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用c语言提供的字符串函数。
参考答案
1.B解析::串的长度定义为串中字符的数目。所以B)为正确答案。C)答案不正确,因为串中可以含有相同的字符;A)答案不正确,因为串中可能含有相同的字母,而且也可能含有数字等其他非字母字符;D)答案不正确,因为空格也是一种字符,在计算长度时理应将其计算在内。
2.A
3.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。
4.B
5.C语句charp[]={a,b,c);定义了一个一维字符数组p[],并用3个字符a,b,c进行了初始化;而语句q[]="abe"表示定义了一个一维字符数组,并用一个字符串常量"abc"进行了初始化。在C语言中,系统在每个字符串常量的最后自动加入一个字符\0作为字符串的结束符。所以函数sizeof(q)=4,而sizeof(p)=3,因而选项C为正确答案。
6.A解析:在E-R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名;用菱形框表示实体间的联系,框内标明联系名。所以,选项A正确。
7.B本题考多循环的使用,当j=10,i=9时,循环成立,第一个if条件为假,第二个if条件i==j-1成立,则输出j的值为10,接者执行i++后,i为10;当i为10,for循环不成立,退出内层循环,此时执行j++后,j为11,循环不成立,退出循环。
8.C解析:数据结构是指数据以及他们之间的相互联系。其中数据的逻辑结构是指数据元素之间的逻辑关系,它与所使用的计算机无关:数据的物理结构,又称存储结构,是指数据结构在计算机中的表示,它包括数据元素的表示和元素的表示,其中数据元素之间的关系在计算机中有顺序存储结构和链式存储结构两种。因此C是正确答案。
9.C宏定义不是C语句,末尾不需要有分号。语句“printf(“%4.1f\\n”,S(a+b));”展开后为“printf(“%4.1f\\n”,3.5;*a+b*a+b;);”,所以程序会出现语法错误。故本题答案为C选项。
10.A函数fun()通过递归调用实现的功能为n+(n-1)+…+1,故程序的输出结果为55。
11.C
12.B解析:本题考查函数的调用。函数fun2的作用是将形参x和y的值相乘后减去3,在fun2中的变量m是一个局部变量,它的值在fun2函数内有效;在主函数中的m指的是全局变量,其值为13,所以fun2(a,b)/m的值为(7*5-3)/13,即2。
13.BB。【解析】关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元的S只能做笛卡儿积运算。
14.A解析:对未给出初始值的整数数组元素,被默认初始化为零。
15.C
16.B解析:在C语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项A)、C)和D)为正确的字符常量,而选项B)是用双引号括起来的字符,表示一个字符串常量。
17.C
18.C解析:软件工程的基本概念。软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。
19.D
20.B解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。
21.3232解析:二叉树第k层上,最多有2k-1(k≥1)个结点。第6层的结点数最多是26-1=32。注意区别“二叉树的结点最多数”和“某一层的结点最多数”。前者的计算是深度为m的二叉树最多有2m-1个结点。
22.tunc()m++tunc()m++解析:第一空白处,在C语言中如果子函数在主函数之后定义,就要对其进行说明,说明的形式为:“函数类型名函数名”。所以此处填写func()。第二空白处,整型变量m表示输入字符的个数,所以每输入一个字符,变量m的值就加1。所以此处填写m++。
23.上溢下溢上溢\r\n下溢
24.s[j]=s[i];j++;s[j]=s[i];j++;解析:本题中相当于字符串s中存储着含有空格的字符,当发现空格的时候就用这个空格字符后面的字符前移覆盖这个空格字符,依次类推向后继续。因此,应填s[j]=s[i];j++;两条语句。
25.n2+1
26.(x>10&&x<100)||x<0
27.功能性功能性解析:注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,给出程序的整体说明;功能性注释一般嵌在源程序体之中,主要描述其后的语句或程序做什么,
28.88解析:本题考查基本的for循环条件,i+=2表示i每次递增2,从0开始,输出5个整数则需要的条件是i<=8。
29.1030010300解析:在scanf格式控制符中有一个“*”附加说明符,表示跳过它指定的列数。程序中'%d%*d%d'表示首先将10赋给i,然后遇%。d读入整数但不赋给任何变量,最后将读人的整数30赋给变量j,变量k并没有重新赋值,仍为初始值0。所以输出的结果为10300。
30.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本题题干信息是求能整除x且不是偶数的所有正整数。循环语句中i从1开始且每次增2,所以i始终是奇数,语句,n=j;是记录符合题意的整数的个数。
31.136136解析:程序中定义了一个递归调用函数fun。程序运行时,先把实参6传给形参。if语句中6/2>0成立,执行fun(x/2),即fun(3),同时输出x的值6;再判断if条件,3/2>0成立,再执行fun(x/2),即fun(1),同时输出x的值3;此时1/2>0不再成立,输出1。而递归调用的输出顺序是相反的,故输出结果为136。
32.数据库管理系统或DBMS数据库管理系统或DBMS解析:数据库管理系统(DatabaseManagementSystem,DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。因此,数据库系统中,数据库管理系统是实现各种数据管理功能的核心软件。本题的答案是数据库管理系统或DBMS。
33.00解析:本题考查数据类型及其运算的逻辑运算,c为空格字符但其ASCII码不为0,所以!c=0,在逻辑与运算中,只要有一项为假,其值为0,所以b的值为0。
34.HOWhowdoyoudo
35.调试调试
36.ACEACE解析:题目中for循环的循环变量i从字符'a'变到字符'e',但由于每次循环后都连续执行了两次i++,所以for循环将执行3次,循环变量i的值依次为'a'、'c'、'e'。循环体中是一条输出语句,按字符输出表达式i-'a'+'A'。因为大小写字母的ASCII码是连续的,例如'b'+1='c'、'W'-1='V',而且小写字母的ASCII码比大写字母的大。所以,同一个字母的大小写字符之差是一个固定值。由此可见,将一个字符从小写转换为大写,只需将其减去这个固定值,而将大写转为小写可以加上这个固定值。固定值可以通过任一字符的小写减去大写来得到。所以本题的i-'a'+'A'=i-('a'-'A'),即让i减去了此固定值,从而使整个表达式的值为i所代表的小写字母的大写形式。故本题的输出结果是ACE。
37.maxvalueis34
38.89218921解析:本题的程序的功能是将输入的整数反向输出。
39.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。所以此题中输入数据的形式是5.04,c=3。
40.一对多或1:N一对多或1:N解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有三种,即一对一(1:1)的联系、一对多(1:N)或多对一(N:1)的联系和多对多(N:N)的联系。
41.B解析:二叉树有一个性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个,由于本题中的二叉树有70个叶子结点,因此有69个度为2的结点。
该二叉树中总的结点数为
度为2的结点数+度为1的结点数+叶子结点数=69+80+70=219
42.DD。【解析】面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。
43.C解析:本题考核的知识点是main()函数的作用,以及main()函数在程序中出现的位置。一个完整的C语言程序有且仅有一个主函数(main()函数)。程序总从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的,故选项c不正确。所以,4个选项中C符合题意。
44.C由于后序遍历的最后一个儿素为E,所以E为根结点,所以它的前序遍历的首个元素为E,敞排除A)和D)选项。由于中序遍历中,元素B在元素根结点E自:J后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个儿素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉埘的前序遍历序列是EACDB。
45.A解析:本题考查C语言的综合基础知识。构成C程序的基本单位是函数,一个C程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何。C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。
46.D解析:int(*ptr)[3]是一个数组指针,指针指向一个有3个int型变量的数组。
47.A解析:考查用指针来引用字符数组元素的方法。指针p1+k相当于指针p1向后移动了k个字符的位置,指针p2同理。
48.B对二叉树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,注意依旧按照“左子树一根结点一右子树”的顺序。本题的遍历顺序是这样的:①首先访问左予树:BDEY;②在左子树BDEY中,也按中序遍历,先访问左子树DY;在左子树DY中,也按中序遍历,先访问左子树,左子树没有,则访问根结点D,然后访问右子树Y;③接着访问根B,再访问右子树E;④访问左子树BDEY后,接着访问根结点A,接着访问右子树CFXZ;⑤右子树CFXZ的访问顺序同理可得:FCZX。
49.D解析:在C语言中,函数参数的默认传递方式是传值,即函数内部的形参只是调用时的实参的一个拷贝,改变形参,实参不会被改变.如果想要实现传址调用只能使用传递指针的方式来实现.利用指针作函数的参数时,无论形参指针还是实参指针所指的都是同一个内存地址,所以形参如果改变了这个地址中的内容,也就是改变了实参所指的地址内容.本题程序开头定义了一个函数f(),在函数中用一个临时变量t交换了两个指针参数所指的地址内容,所以该函数的作用就是交换两个参数所指的内容。在主函数中,首先定义了一个int型数组a,并定义了两个int型指针p、q分别指向数组a的第一个元素和最后一个元素。然后使用一个while循环调用函数f()不断交换两个指针所指的内容,每次交换后p往后移动一个元素,q往前移动一个元素,直到q不再大于p,即直到两个指针在数组a的中间相遇为止。所以,程序最终运行的结果是数组a中的所有元素全被反序排列一次。故应该选择选项D。
50.B解析:本题考查的知识点是递归函数。通过分析不难写出,f()函数的数学表达式为:
f(n)=1n=1;
f(n)=f(n-1)+1n不等于1;
在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到i中,i的值为1。第二次i为2,调用f(n),根据递归公式可知“f(2)=f(1)+1”,得到返回值2并把它加到j中,j的值为3。所以最后输出的j的值为3。
51.B解析:本题涉及字符串最基本的两个概念:①字符串的长度是指字符串中字符的个数,但不包括字符串结束符;②以反斜杠“\\”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。
52.C解析:如果没有指明函数值类型,则默认函数返回值的类型为int型。注意:顺序程序结构的执行过程。
53.A解析:程序在定义时,以十进制形式为m赋初值,以八进制的形式为n赋初值。输出的时候m以十进制形式输出,n以八进制形式输出,因此输出的结果为32767和32767。所以,A选项为所选。
54.C解析:指针变量m和z分别指向整型变量y和i,所以这两个指针变量中存储的地址是不同的。变量x接受的是一个关系运算的结果,因为两个地址是不同的,所以“z=y”的判断结果为0。注意:C语言中,逻辑值的表示方法。
55.B解析:本题考查函数调用时的参数传递。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间只是实参将值传递给形参.
56.C解析:本题考查指向数组的指针变量的声明。这里的p表示一个指向数组的指针;*p表示指针p指向地址的内容。
57.A解析:C程序中注释部分用“/*”和“*/”括起来,可以出现在程序中任何合适的地方;花括号“{”和“}”不仅可作为函数体的定界符,也可作为复合语句的定界符;构成C程序的基本单位是函数;一个语句必须在最后出现分号,分号是C语句中不可缺少的部分。
58.C
59.A解析:函数strcpy的功能是字符串拷贝,函数原型为char*strcpy(char*strl,char*str2),作用是将字符串2复制到字符串1中去。二维数组可以看做是一种特殊的一维数组,它的每一个元素又是一个一维数组。本题arr可看做是一个具有两个元素arr[0]和arr[1]的一维数组,每个元素又是一个包含四个元素的一维数组。
60.B解析:调用函数f()时,将数组a的地址传递给了指针q,此时q指向的就是数组a的第一个元素a[0]。在5次循环过程中,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4-溴苯酐行业市场发展及发展趋势与投资战略研究报告
- 成本核算专业论文开题报告
- 三农信息服务平台
- 企业供电合同范例
- h钢材采购合同范本
- 产品委托加工服务合同范本
- 入股居间合同范本
- 买二手车写合同范本有效
- 井盖模具采购合同范例
- 信贷担保合同范本
- 电镀产业园项目可行性研究报告(专业经典案例)
- 2025年鲁泰集团招聘170人高频重点提升(共500题)附带答案详解
- 2024-2025学年成都高新区七上数学期末考试试卷【含答案】
- 企业员工食堂管理制度框架
- 【开题报告】中小学校铸牢中华民族共同体意识教育研究
- 《辣椒主要病虫害》课件
- 2024年煤矿安全生产知识培训考试必答题库及答案(共190题)
- 《法律援助》课件
- 小儿肺炎治疗与护理
- GB/T 36547-2024电化学储能电站接入电网技术规定
- 育婴员初级培训
评论
0/150
提交评论