




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年山西省晋中市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若运行时从键盘上输入9876543210,则上面程序的输出结果是______。
A.a=98,b=765,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000
D.a=98,b=765.0,c=4321.0
2.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“THIS\0”,*b=“OK\0\0”;printf(“%d,%d,%d,%d”,strlen(a),sizeof(a),strlen(b),sizeof(b));}程序运行后的输出结果是()。
A.4,6,2,4B.4,4,4,1C.6,5,2,1D.6,4,2,4
3.
4.一个递归算法必须包括()。
A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分
5.假设某算法的计算时间可用递推关系式T(n)=2T(n/2)+n,T(1)=1表示,则该算法的时间复杂度为()
A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)
6.设有定义“intm=1,n=2;”,则以下if语句中,编译时会产生错误信息的是()。
A.if(m>n)m--elsen--;
B.if(m=n){m++;n++;}
C.if(m<0&&n<0){}
D.if(m>0);elsem++;
7.数组A中,每个元素的长度为4个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[8][5]的起始地址为()。
A.SA+292B.SA+296C.SA+300D.304
8.
9.下列程序的输出结果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}
A.22B.76C.72D.62
10.若有以下程序段intm=0xabc,n=0xubc;m-=n;printf("%X\n",m);执行后输出结果是
A.0X0B.0x0C.0D.0XABC
11.
12.已知函数的调用形式为fread(buf,size,count,fp),参数buf的含义是
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针;指向要读入数据的存放地址
D.一个存储区,存放要读的数据项
13.有以下程序#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
14.在一个带头结点的单链表HL中,若要在第一个元素之前插入一个由指针p指向的结点,应该使用的语句为()
A.HL=p;p->next=HL;
B.p->next=HL;HL=p;
C.p->next=HL->next;HL->next=p;
D.p->next=HL;p=HL;
15.排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称______。
A.希尔排序B.冒泡排序C.插入排序D.选择排序
16.以下叙述中错误的是()。
A.c语言是一种结构化程序设计语言
B.使用三种基本结构构成的程序只能解决简单问题
C.结构化程序设计提倡模块化的设计方法
D.结构化程序由顺序、分支、循环三种基本结构组成
17.栈通常采用的两种存储结构是A.A.线性存储结构和链表存储结构
B.散列方式和索引方式
C.链表存储结构和数组
D.线性存储结构和非线性存储结构
18.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。
A.67,DB.B,CC.C,DD.不确定的值
19.下列程序的输出结果是()。#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
20.若定义了函数double*function(),则函数function的返回值为()。
A.实数型B.实数的地址C.指向函数的指针D.函数的地址
二、2.填空题(20题)21.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
请填空。
doublefun(doublex){return(x*x-2*x+6);}
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun([6]);
y2=fun([7]);
printf("y1=%lf,y2=%lf\n",y1,y
22.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
23.有以下定义语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear,
union{intshare1;
floatshare2;
}share;
}a;
24.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。
25.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计算它们的和。请填空。
main()
{
inti,a[20],sum,count;
sum=count=【】;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{
if(a[i]>0)
{count++:
sum+=【】;
}
}
printf("sum=%d,count=%d\n",sum.count);
}
26.下面程序的功能是:从输入的正整数中选3个数进行输出,要求这些数都是2的倍数,请填空。
main()
{inta,i=0;
scanf("%d",&A);
do
{if(a>0&&a%2==0)
{printf("%d\n",A);i++;}
if(i!=3)
{scanf("%d",&A);}
}while(());
}
27.如果一个工人可管理多个设备,而一个设备只被一个工人管理,则卖体“工人”与实体“设备”之间存在【】关系。
28.在数据流图的类型中有两种类型,它们是变换型和()。
29.若输入thistestterminal,以下程序的输出结果为:terminaltestthis。请填空。
#defineMAXLINE20
【】
{inti;
char*pstr[3],str[3][MAXLINE];
for(i=0;i<3;++)pstr[i]=str[i];
for(i=0;i<3;i++)scanf("%s",pstr[1]);
sort(pstr);
for(i=0;i<3;i++)prntf("%s",pstr[i]);
}
sort(【】)
char*pstr[3];
{inti,j;
char*p;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
if(strcmp(*(pstr+i,*(pstr+j)>0
{p=*(pstr+i);
*(pstr+i=【】;
*(pstr+j)=p;
}
30.若有如下定义,则该数组的第一维大小为【】。
intb[][4]={1,2,3,4,5,6,7,8,9}
31.设有下列宏定义:
#defineA2
#defineB(A+3)
则执行赋值语句“k=B*20;”(k为int型变量)后,k的值是______。
32.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。
33.下列程序的输出结果是______.
#include<stdio.h>
fun()
{staticinta=O;
a+=3;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
34.在一棵二叉树上第6层的结点个数最多是______个。
35.下面函数用来求出两个整数之和,并通过形参传回两数相加之和值。请填空。
intadd(intx,inty,【】,)
{【】=x+y;}
36.程序的运行结果为【】。
main()
{charc1='a',c2='b',c3='c';
printf("a%cb%c\tc%c\n",c1,c2,c3);
}
37.软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。
38.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【】。
39.下列程序的循环次数是______。
x=2;
do
{x=x*x;}
while(!x);
40.数据的逻辑结构在计算机存储空间中的存放形式称为数据的【】。
三、1.选择题(20题)41.下列程序的输出结果是()。
main()
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)
if(p[i]%2)j+=p[i];
printf("%dXn",j);}
A.42B.45C.56D.60
42.在以下程序段中,已知血型数据占两个字节,则输出结果是unionun{inti;doubley;}structst{chara[10];unionunb;};printf("%",sizeof(structst));
A.14B.18C.20D.16
43.若有说明:inta[][3]={0,0};则不正确的叙述是()。
A.数组a的每个元素的初值都是0
B.数组a的第一维大小为1
C.数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
44.下列可用于C语言用户标识符的一组是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
45.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}执行后的输出结果是
A.8,6B.8,3C.6,4D.7,4
46.若有下面的说明和定义,则sizeof(structaa)的值是______。structaa{intr1;doubler2;floatr3;unionuu{charu1[5];longu2[2]}ua;}mya;
A.30B.29C.24D.22
47.有以下程序main(){inta=15,b=21,m=0;switCh(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf("%d\n",m);程序运行后的输出结果是
A.1B.2C.3D.4
48.CPU处理数据基本单位为字,一个字的字长()
A.为8个二进制位B.为16个二进制位C.为32个二进制位D.与CPU芯片的型号有关
49.下面关于完全二叉树的叙述中,错误的是______。
A.除了最后—层外,每—层上的结点数均达到最大值
B.可能缺少若干个左右叶子结点
C.完全二叉树—般不是满二叉树
D.具有结点的完全二叉树的深度为[log2n]+1
50.执行语句printf(“%ukn”,+12345)的输出结果是()。
A.12345B.0C.-1D.非定值
51.下列选项中,不是一个算法的基本特征的是()。
A.完整性B.可行性C.有穷性D.拥有足够的情报
52.1.以下选项中属于C语言数据类型的是()
A.复数型B.逻辑型C.双精度型D.集合型
53.C语言规定,程序中各函数之间()
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许间接递归调用
D.不允许直接递归调用允许间接递归调用
54.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
A.log2nB.n2C.O(n1.5)D.n(n-1)/2
55.有以下程序:main(){charal='M'a2='m';printf("%c\n",(al,a2));}以下叙述中正确的是______。
A.程序输出大写字母MB.程序输出小写字母mC.格式说明符不足,编译出错D.程序运行时产生出错信息
56.在下列叙述中,正确的一条是______。
A.如果形参发生改变,不会改变主调函数的实参值
B.在C语言中,函数可以递归调用或递归定义
C.数组名作函数参数时,也采用“值传送”方式
D.预处理时,宏名用字符串代替,并检查语法正确与否
57.有以下函数:fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a-*b);}该函数的功能是()。
A.计算a和b所指字符串的长度之差
B.将b所指字符串复制到a所指字符串中
C.将b所指字符串连接到a所指字符串后面
D.比较a和b所指字符串的大小
58.在C语言中,运算对象必须是整型数的运算符是()。
A.%B.\C.%和\D.**
59.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
60.在一棵二叉树上,第5层的结点数最多是()A.8B.9C.15D.16
四、选择题(20题)61.以下数组定义中错误的是()。
A.intx[2][3]=|1,2,3,4,5,6|;
B.intx[][3]=|0|
C.intx[][3]={|1,2,3|,|4,5,6|}
D.intx[2][3]=||1,2|,|3,4|,|5,6||
62.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。
若有以下程序段:
该程序段实现的功能是()。
A.删除尾结点B.尾结点成为首结点C.删除首结点D.首结点成为尾结点
63.下列程序中c的二进制值是()。chara=2,b=4,c;c=a^b>>2;A.00000011B.00010100C.00011100D.00011000
64.
65.
66.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系
67.
68.设有以下定义和语句:
则以下叙述中正确的是()。
A.str数组长度和P所指向的字符串长度相等
B.*P与str[0]的值相等
C.str与P的类型完全相同
D.数组str中存放的内容和指针变量P中存放的内容相同
69.
70.
71.下列叙述中正确的是()。
A.break语句只能用于switch语句体中
B.continue语句的作用是使程序的执行流程跳出包含它的所有循环
C.break语句只能用在循环体内和switch语句体内
D.在循环体内使用break语句和continue语句的作用相同
72.
73.有以下程序程序运行后的输出结果是()。
A.3B.5C.7D.9
74.在数据管理技术发展的三个阶段中,数据共享最好的是()。
A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同
75.以下选项中,不能作为合法常量的是
A.1.24e03B.1.34e0.3C.1.24e+3D.1.34e0
76.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}
77.
78.
79.
80.有以下程序:
程序执行后的输出结果是()。
A.2B.3C.7D.0
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。π/4≈1-1/3+1/5-1/7+…例如,程序运行后,输入0.0001,则程序输出3.1414。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写函数proc(),该函数的功能是:实现B=A+A',即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main()函数中输出。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
参考答案
1.C解析:scanf()把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。
2.Astrlen函数求得参数中字符串的长度(不包括字符串结束标识“\\0”)sizeof函数求得特定类型参数所占存储空间的长度。题干中a是数组名,由于定义时省略维数大小,因此数组大小是初始化的字符个数,即a的数组大小为6。综上,strlen(a)只计算字符“T”“H”“I”“S”,结果为4;sizeof(a)求得数组a的大小,结果为6;指针b指向一个字符串“OK\\0\\0”,所以strlen(b)只计算字符“O”“K”,结果为2;sizeof(b)求得指针占用存储空间的大小,结果为4。故本题答案为A选项。
3.A
4.B
5.B
6.A选项A中,if语句的语句块“m--”后面少了分号,不合法,编译会出错。其他选项都是正确的。故本题答案为A选项。
7.B
8.C
9.C解析:函数slzeof(a)的功能是求出字符串a中的字符占用存储空间的大小,由于字符数组a有长度为7,所以i=7;函数strlen(a)的功能是:求出字符串a的长度。而每个字符串都以'\\0'为字符串的结束标记,所以j的值等于2。
10.C解析:C语言中的自反赋值运算符。“m-=n”相当于“m=m-n”,两个相等的数相减,其值为0。
11.C
12.C解析:这是一道考查fread函数的题。buf是一个指针,fread是读入数据的存放地址;fwrite是输出数据的地址(以上指的是起始地址)。
13.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是正确的。
14.C
15.A解析:希尔排序法的基本思想是:将整个无序列分割成若干小的子序列分别进行插入排序。
16.BC语言是一种结构化程序设计语言。结构化程序设计是以模块化设计为中心的,有三种基本结构:顺序、选择和循环结构。各模块相互独立,因而可将原来较为复杂的问题化简为一系列简单模块并充分利用现有模块搭建新系统,提高程序的重用性和可维护性。
17.A解析:和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。注意:这3种运算方法在各种存储结构中的应用。
18.A解析:由于字符“5”和“3”的ASCII码相差为2,所以ch1经过运算后的值应为65+2=67;同理,ch2经过运算后的值应为65+3=68,即是字符“D”。
19.C解析:本题考查if语句。先判断if语句的条件是否成立,++a=1>0,此条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算符的真假,即不进行++b操作,就可以直接得出整个表达式的值为逻辑1,执行下列的++c。
20.B
21.
22.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。
23.10410\r\n4解析:结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。int占2个字节,float占4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4-10。
24.共享性共享性解析:数据库系统中的数据能被不同的应用程序使用,实现了数据的高度共享,从而降低了数据的冗余,这也是数据库的主要目的。
25.0&a[i]a[i]0\r\n&a[i]\r\na[i]解析:本题要求从终端读入数据到数组中,统计其中正数的个数,井计算它们的和。程序中首先要对存放正数个数的变量count及存放和值的变量sum初始化为0,所以第一空应填0。接着要求从终端读入数据到数组中,可以通过scanf函数实现,因此第二空应填&a[i]。最后通过sum+=a[i];语句累加正数a[i]的值到sum中,因此第三空应填a[i]。
26.i<3
27.一对多一对多解析:实体之间的联系有3类:一对一,一对多,多对多。设有两个实体集E1和E2,如果E2中的每一个实体与E1中的任意个实体(包括零个)有联系,而E1中的每一个实体最多与E2中的一个实体有联系,则称这样的联系为“从E2到E1的一对多的联系”,通常表示为“l:n的联系”。由此可见,工人和设备之间是一对多关系。
28.事务型事务型解析:典型的数据流类型有两种:变换型和事务型。
29.main()pstr*(pstr+j)
30.3
31.100100解析:本题考查带参数的宏定义及相关运算。运算过程为:k=B*20=(A+3)*20=(2+3)*20=100。
32.continuecontinue解析:continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。
33.3691236912解析:本题考查最基本的for循环:for(cc=1;cc<5;cc++)规定循环次数为4次,每次a+=3即每次a的值增3,但因为fun函数中变量a为static类型,所以每次调用完子函数之后,变量a所做的改变都要保存。
34.3232解析:根据二叉树的性质,在二叉树的第K层上,最多有2k-1个结点。所以,第6层的结点数最多为32。
35.int*p*p或p[0]int*p\r\n*p或p[0]
36.aabbccaabbcc解析:printf函数先输出a,遇%c,接着输出变量c1的值a,然后输出bb,遇%t,从第9个位置开始输出cc。
37.软件开发软件开发解析:软件生命周期可以分为3个时期:软件定义期,包括问题定义、可行性研究和需求分析3个阶段;软件开发期,包括系统设计、详细设计、编码和测试4个阶段;软件维护期,即运行维护阶段。编码和测试属于软件开发阶段。
38.88解析:在一般系统中,一个float型数据在内存中占4个字节(32位),一个double型数据占8个字节。
39.11解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环;do…while语句的特点是先执行后判断,因此循环体至少执行1次.本程序中x=2不符合循环条件,所以只循环1次。
40.模式或逻辑模式或概念模式模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等。
41.B解析:在C语言中,数组的下标默认为0,因此数组p的下标范围为:0~7。程序循环过程为:第1次循环i=0,执行循环,并且i自加,得i=1,因此p[i]为p[1]=12,12%2=0,不执行后面的语句:接着进行第2次循环,此时i=1,小于7执行循环,并且i自加,得i=2,因此p[i]为p[2]=13,13%2=1,执行后面的语句;这样一直到退出循环。最后,i的值为.i=13+15+17=45。
42.B解析:本题考查了结构体和共用体类型的特点。结构体变量的各个数据成员分别占据不同的存储空间,而共用体变量的数据成员共同占据一段存储空间。所以共用体un的变量占8个字节,而结构st中,变量所占据的存储空间为成员a和b的存储空间之和,所以答案为B。
43.D解析:本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点:①在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。②二维数组第一维的大小由下列规则确定;当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加1。
44.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。
45.C解析:本题考查的知识点是运算符的优先级.在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由i*=k得i=2*2为4,k=k+i,即k值为6,m=k故m=6.所以4个选项中C正确。
46.D解析:结构伸变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。
47.A解析:在switch语句中break语句的作用是退出分支语句,若没有break语句则一直向下执行。本题中首先计算switch后面括号里的表达式a%3,印15%3为0;执行case0:后面的语句m++;m自加1,即m为1遇到break语句;然后跳出switch语句,所以最后输出的m的值为1,所以选项A正确。
48.D
49.B解析:满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后—层上只缺少右边的若干子结点(叶子结点)的二叉树。
50.A解析:“%u”表示输出无符号的整数(注意:如果输出值前有符号,将自动转化为相应的无符号数输出)。
51.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。
52.C解析:C语言的数据类型分为基本类型、构造类型、指针类型、空类型四大类,其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种。
53.A解析:C语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。
54.D解析:假设线性表的长度为n,则在最坏情况下,冒泡排序要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
55.B解析:输出项表是一个逗号表达式,它的值为a2,因此输出的是a2的值。
56.A
57.D解析:本题要求阅读的代码是一个函数,阅读之前先要看清函数的定义,该函数有两个参数,都是字符指针,这说明它接收的是两个字符串.该函数没有定义返回类型,C语言规定函数的返回类型为int时可以省略,所以切不可将其看成是无返回类型的void型函数,它是int型函数。函数体中除了返回语句外,只有一条while循环语句,该循环的循环条件为(*a!='\\'0}&&(*b!='\\0')&&(*a==*B),即当a和b所指处都不是字符结束符'\\0'并且a和b所指处的内容相等时执行循环。而循环体中只是简单地将指针a和b同时往后移动1位。循环结束后返回a所指内容减去b所指内容的差。换个角度去考虑,也就是说当字符串a或b中有一个结束了或者是它们的相同位置中有一个字符不同时,则返回该位置两个字符之差。若两者长度相同而且所有对应字符都相同的话,最后返回的是'\\0\\-'\\0'=0,否则的话就返回两个字符串第一对不相同的字符之差.这时应该可以看出来,这个函数实现的是对两个字符串的比较。所以,4个选项中D正确。
58.A解析:在C语言中,“%”运算符两侧的运算数必须是整型。
59.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。
60.DD)根据二叉树的性质:二叉树第i(i≥1)层上至多多有2i-1个结点。得到第5层的结点数最多是16个。
61.DD选项中x[2][3]定义的是一个两行三列的二维数组,而在给数组元素赋值时却赋成了三行,所以错误。
62.D本题考查链表的操作,本题中首先是s指向了它的下个结点,题目中说明了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025共同投资合作协议范文
- 永泰消防知识培训课件学校
- 建筑工程项目施工人员安全培训方案
- 机电设备安装协调与沟通方案
- 建筑工程施工图纸审核方案
- 水稻田保护政策解读课件
- 建筑工程项目设计变更与管理方案
- 水电站生产安全知识培训课件
- 中成药非处方药39课件
- 2025版木工手工艺品制作与销售合同
- 2025至2030年中国小信号分立器件行业市场运行现状及投资战略研究报告
- 在县政协党组理论学习中心组2025年第六次集中学习上的研讨发言(五个进一步到位)
- 2025年邮政柜员考试题库及答案
- 第8课 认识TCP-IP 课件 2025-2026学年七年级上册信息技术浙教版
- 足球裁判规则讲解
- 2025年重庆对外建设集团招聘考试笔试试题(含答案)
- 信访工作心得及改进措施总结报告
- 班组人工协议书
- 2025广西公需科目考试答案(3套涵盖95-试题)一区两地一园一通道建设人工智能时代的机遇与挑战
- 沉淀池安全操作规程
- 职业规划杨彬课件
评论
0/150
提交评论