




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年河南省濮阳市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.一个算法的语句执行次数为(2n2+2nlog2n+4n-7),则其时间复杂度为()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
2.有以下程序:#include<stdio.h>voidsub(doublea,double*pb);intmain(){doublex,y;scanf(“%lf%lf”,&x,&y);sub(x,&y);printf(“x=%fy=%f\n”,x,y);}voidsub(doublea,double*pb){a=a-*pb;*pb=*pb-a;}程序运行时输入10.23.5并按<Enter>键,则输出结果为()。
A.x=10.200000y=-3.200000
B.x=6.700000y=-13.700000
C.x=7.000000y=-3.500000
D.x=13.400000y=-7.000000
3.下面关于B树和B+树的叙述中,不正确的结论是()。
A.B树和B+树都能有效的支持顺序查找
B.B树和B+树都能有效的支持随机查找
C.B树和B+树都是平衡的多叉树
D.B树和B+树都可用于文件索引结构
4.若串S=,software,其子串的数目是()。
A.8B.37C.36D.9
5.有以下函数定义:voidfun(intn,doubx){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfum(n,x);
6.有下列程序:main{intk=5,n=0;while(k>0){switch(k){dcfault:break;case1:n=n+k;case2:case3:n+=k;}k--;}printf("%d\n".n);}程序运行后的输出结果足()。A.0B.4C.6D.7
7.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为()。
A.CB.BasicC.DDLD.DML
8.软件生命周期是指()。
A.软件的定义和开发阶段
B.软件的需求分析、设计与实现阶段
C.软件的开发阶段
D.软件产品从提出、实现、使用维护到停止使用退役的过程
9.下面哪种排序的平均比较次数最少()
A.插入排序B.选择排序C.堆排序D.快速排序
10.下列关于c语言用户标识符的叙述中正确的是()。
A.用户标识符中可以出现下划线和中划线(减号)
B.用户标识符中不可以出现中划线,但可以出现下划线
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
11.有以下程序:#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(“%d\n”,c);}程序的运行结果是()。
A.1B.2C.3D.4
12.
13.向一个栈顶指针为H的链栈中执行出栈运算时,需执行()。
A.p=H;H=H->link;free(p);
B.H=H->link;free(H);
C.p=H;H->link=H->link->link;free(p);
D.p=H;H=H->link;
14.在顺序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找关键码12需做()次关键码比较。
A.2B.3C.4D.5
15.设有如下定义:intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是()。
A.1B.0C.4D.3
16.对线性表进行二分法检索,其前提条件是()。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
17.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4
18.给定数列(541,132,984,746,518,181,946,314,205,827)按照从小到大的顺序排列,采用快速排序(以中间元素518为基准)的第一趟扫描结果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
19.
20.C语言的基本单位是()。
A.函数B.过程C.子程序D.子函数
二、2.填空题(20题)21.已有定义:intx;,执行以下语句后的辅出结果是【】。
x=11/3;y=5;
printf("%%d,%%%d\n",x,y);
22.对长度为8的线性表进行冒泡排序,最坏情况下需要比较的次数为()。
23.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
24.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
25.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
26.下列程序的运行结果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
27.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块),其中【】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
28.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是【】。
29.在scanf()函数调用语句中,可以在格式字符和%号之间加上一个星号,它的作用是跳过对应的输入数据;当输入以下数据时,100200300400500<回车>,下面语句的执行结果为【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
30.[]的任务是诊断和改正程序中的错误。
31.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。
32.数据库系统中实现各种数据管理功能的核心软件是______。
33.以下程序的运行结果是【】。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:case2:return1;
}
return(fib(g-1)+fib(g-2));
}
main()
{longk;
k=fib(5);
printf("k=%d\n",k);
}
34.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2223445666677899101010
删除后,数组中的内容应该是:
2345678910。
请填空。
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])
a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
35.下列程序执行后输出的结果是【】。
f(inta)
{staticc=0;
c=a+c++;
return(c);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
prinf("%d\n",k);
}
36.下列程序的运行结果是______。
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]);
}
}
37.以下程序段中,错误的行号是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}
38.下面程序的功能是:计算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);}
39.若a的值为1,则表达式!a‖++a的值是______。
40.以下程序运行后的输出结果是______。
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
三、1.选择题(20题)41.在数据流图(DFD)中,带有名字的箭头表示
A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向
42.下列程序的功能是给r输入数据后计算半径为r的圆面积s。程序在编译时出错。main()/*Beginning*/{intr;floats;seanf("%d",&r);s=*π*r*r;printf("s=%f\n",s);}出错的原因是()。
A.注释语句书写位置错误
B.存放圆半径的变量r不应该定义为整型
C.输出语句中格式描述符非法
D.计算圆面积的赋值语句中使用了非法变量
43.有以下程序:fun(inta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序运行后的输出结果是
A.3B.6C.8D.12
44.若变量已正确定义,要求程序段完成5!的计算,不能完成此操作的程序段是______。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(i<=5);
45.有以下程序:main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是()。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
46.有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序运行后的输出结果是——。
A.10234B.12344C.12334D.12234
47.设栈S的初始状态为空,栈的容量为5,若入栈元素的顺序是e1、e2、e3、e4、e5,则出栈元素的顺序不可能是______。
A.e1、e2、e3、e4、e5
B.e5、e4、e3、e2、e1
C.e2、e4、e3、e5、e1
D.e3、e4、e1、e2、e5
48.算法的时间复杂度是指______。
A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数
49.设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是
A.PER是结构体变量名
B.PER是结构体类型名
C.typedefstruct是结构体类型
D.struct是结构体类型名
50.下列不属于静态测试方法的是()。A.A.代码检查B.白盒法C.静态结构分析D.代码质量度量
51.有以下函数char*fun(char*p){returnp;}该函数的返回值是______。
A.无确切的值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值
52.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是()。
A.10,01B.02,12C.102,10D.02,10
53.已有定义int(*p)(),指针p可以
A.代表函数的返回值B.指向函数的入口地址C.表示函数的类型D.表示函数返回值的类型
54.设有以下定义和语句:inta[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];则.(P[0]+1)所代表的数组元素是()。
A.a[0][1]B.a[1][0]C.s[1][1]D.a[1][2]
55.下面函数的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;}
A.求字符串的长度
B.比较两个字符串的大小
C.将字符串str1复制到字符串str2中
D.将字符串str1接续到字符串str2中
56.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。
A.地址传递B.单向值传递C.由实参传递给形参,再由形参传递给实参D.传递方式由用户指定
57.以下叙述中正确的是()。
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main函数必须放在其他函数之前
D.C函数定义的格式是K&R格式
58.现有格式化输入语句,scanf("x=%d],sum]y=%d,line]z=%dL",&x,&y,&z);,已知在输入数据后,x,y,z的值分别是12,34,45,则下列选项中是正确的输入格式的是
[注]:"]"表示空格,<Enter>表示回车
A.12,34,45<Enter>
B.x=12,y=34,z=45<Enter>
C.x=12C,sumy=34,z=45<Enter>
D.x=12],sum]y=34,line]z=45<Enter>
59.在计算机中,算法是指()。
A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法
60.有以下程序
#inGlude<stdlib.h>
structNODE{
intnum;
structNODE*next;
}
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(stnlctNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next;r;r->next=NULL;
sum+=q->next->Num,sum+=p->num;
printf("%d\n",sum);
}
执行后输出结果是
A.3B.4C.5D.6
四、选择题(20题)61.
62.树是结点的集合,它的根结点数目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
63.有以下程序:
程序运行后的输出结果是()。
A.6B.3C.8D.12
64.
65.下列叙述中正确的是()。A.在c程序的函数中不能定义另一个函数
B.在c程序中main函数的位置是固定的
C.C程序中所有函数之间都可以相互调用
D.每个C程序文件中都必须要有一个main函数
66.
67.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。A.′a′<=c<=′z′
B.(c>=′a′)||(c<=′z′)
C.(′a′=C)
D.(c>=′a′)&&(c<=′z′)
68.
69.(18)下列说法中,不属于数据模型所描述的内容的是______。
A.数据结构
B.数据操作
C.数据查询
D.数据约束
70.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
71.(55)在设计程序时,应采纳的原则之一是()
A.程序结构应有助于读者理解
B.不限制goto语句的使用
C.减少或取消注解行
D.程序越短越好
72.下列叙述中正确的是()。
A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D.上述三种说法都不对
73.
74.设有数组定义:chararray[]="Chinese";则数组array所占的空间为
A.6个字节B.7个字节C.8个字节D.9个字节
75.有以下程序:
#include<stdio.h>
main()
{inta[]={10,20,30,40},*p=a,j;
for(i=0;i<=3;i++){a[i]=*P;p++;}
printf("oAd\n",a[2]);
}
程序运行后的输出结果是()。
A.30
B.40
C.10
D.20
76.以下选项中,合法的一组c语言数值常量是()。
A.12.0Xtl234.5e0
B.028.5e-3-0xf
C.1774el.50abe
D.0x8A10,0003.e5
77.以下关于字符串的叙述中正确的是()。
A.C语言中有字符串类型的常量和变量
B.两个字符串中的字符个数相同时才能进行字符串大小的比较
C.可以用关系运算符对字符串的大小进行比较
D.空串一定比空格打头的字符串小
78.假定X和Y为double型,则表达式x=2,y=x+3/2的值是()。
A.3.500000B.3C.2.000000D.3.000000
79.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
80.在软件设计中不使用的工具是()。
A.系统结构图B.PAD图C.数据流图(DFD图)D.程序流程图
五、程序改错题(1题)81.写出下列程序的运行结果。
main
{intn;
For(n=3;n<=10;n++)
{if(n%6==0)break;Printf(“%d”,n);}}
六、程序设计题(1题)82.请编写函数proc(),其功能是:计算并输出下列多项式值。S=(1+1/2)+(1/3+1/4)+…+(1/(2n1)+1/2n)例如,若主函数从键盘给n输入100后,则输出为s=5.878031。n的值要求大于1但不大于100。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A
2.Asub函数接收两个参数:double类型变量a,double指针变量pb。首先将a与pb指向的变量值相减,结果存放在a中;然后再将pb指向的变量值与a的新值相减,结果存放在pb指向的内存空间中。sub函数不会修改实参x的值,但会修改实参y的值。当输入10.23.5时,实参x的值为10.2,y的值为3.5,执行sub函数后,x的值不变,y的值变成-3.2。故本题答案为A选项。
3.A
4.B
5.C解析:选项A中应将y和m前面的函数的类型说明符去掉,故选项A不正确;选项B中函数传了2个参数,其中一个为整型—个为浮点型,而fun()函数在定义时声明的2个参数,一个为整型一个为双精度型,其参数类型不一致,故选项B不正确;选项D在调用函数时,不应该再声明其返回类型,故选项D不正确。所以,4个选项中选项C符合题意.
6.D本题主要考查while循环语句和switchcase语句的使用方法。其执行步骤为:k=5时,跳出switch语句,然后k自减1;当k=4时,跳出switch语句,然后k自减1;当k=3时,n=13+k=0+3=3,跳出switch语句,然后k自减1;当k=2时n=n+k=3+2=5,跳出switch语句,然后k自减l;当k=1时,case1:n=n+k一5+1=6,没有break继续执行CaSe3;n=n+k=6+1=7,跳出switch语句,然后k自减1;当k=0时,退出循环,所以输出结果为7。
7.C解析:选项A)、选项B)显然不合题意。数据定义语言(DataDefinitionLanguage,简称DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言(DataManipulationLanguage,简称DML)负责数据的操纵,包括查询及增、删、改等操作。
8.D通常把软件产品从提出、实现、使用、维护到停止使用、退役的过程称为软件生命周期。选项A、B、C选项均为生命周期的一部分。故选D选项。
9.D
10.B解析:在C语言中,合法的标识符由字母,数字和下划线组成(故选项A不正确),并且第一个字符必须为字母或者下划线(故选项B和选项D不正确).所以,B选项为所选.
11.C该程序中“int*p1=&a,*p2=&b,*p=&c;”定义了3个指针变量,并赋值。指针变量p1指向a,p2指向b,p指向c。执行“*p=*p1*(*p2);”语句,给p所指的存储单元c赋值。p1所指的存储单元的值,与p2所指的存储单元b的值相乘,也就是c=a*b,等价于c=1*3=3。故本题答案为C选项。
12.B
13.A
14.B
15.D
16.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。
17.C根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
18.B
19.D
20.AA。【解析】C语言是函数式的语言。它的基本组成单位是函数,在C语言中任何程序都是由一个或者多个函数组成的。
21.%d%3
22.2828解析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(n1.5);堆排序所需要的比较次数为O(nlog2n)。
23.11解析:ifelse语句的功能是:若表达式的值为真,执行语句1,并跳过其他语句,执行ifelse语句的下一条语句,若表达式的值为假,跳过语句1,执行语句2,依次往下判断。题中,x=3,y=2,第一个if语句的控制条件x<y就不满足,又没有与之配对的else语句,所以直接执行printf语句,在整个过程中变量z的值都没发生变化。
24.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字符进行比较,如果当前字符小于下—个字符,则通过中间变量temp将字符两两交换,所以第一空应填:str[i],第二空应填:str[i+1]。最终打印输出得到的字符串str,所以第三空应填:'%s',str。
25.67G67G解析:字符型变量中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分别按十进制整数和字符形式输出a和b的值为:67G。
26.282,8解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。这里程序初始时a=1,b=10,经过操作b-=a;a++后b=9,a=2,判断条件b--<O不成立,退出循环,但b的值被减1,因此结果为:a=2,b=8。
27.驱动模块驱动模块解析:在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。承接模块通常用于代替被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。
28.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=0”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。
29.100300400100300400解析:scanf的格式控制字符串中,“*”表示跳过对应的输入数据,所以第二个输入数200被跳过去了,只有100,300,400三个数被从键盘输入了进来。
30.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去找出软件错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。
31.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历.前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左了树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树:并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然光遍历右子树,然后访问根结点,最后遍历左子树。
32.数据库管理系统数据库管理系统解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
33.k=5k=5解析:由题可知fib(0)的值为0,fib(1)和fib(2)的值为1,因此,fib(3)=fib(2)+fib(1)=2;fib(4)=fib(3)+fib(2)=3;fib(5)=fib(4)+fib(3)=5。
34.!=returnj!=,returnj解析:本题程序的流程是:让i,j都从1开始,其中j用于控制删除后剩下的数中的下标,i用于搜索原数组中的元素。j始终是新数组已有元素中最后一个元素的下一个元素的下标,所以if()中的条件是a[j-1]!=a[i],其中a[j-1]就是新数组中的最后一个元素,若条件成立则表示出现了不同的值,所以a[i]要留到新数组中。注本题中i、j的初值都要从1开始,该算法只能用于数组已排序的题目中。
35.77解析:在程序执行时,static变量仅初始化一次,下次使用时将使用上次保存的值。
36.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个的形式输出。
37.③数组可以在定义时整体赋初值,但不能在赋值语句中整体赋初值。因此,可将第三行改为charstr[14]={"IloveChina!"};
38.b=I+1b=I+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2后的和累加至a,所以a的值就是110之间的偶数之和;b的值是111之间的奇数和,但在输出b值时,c去掉多加的11,即为110之间的奇数之和。
39.11解析:逻辑运算中,非1即0,非0即1,!a=0,++a为逻辑1,所以0和1相或结果为1。
40.136136解析:本题考核的知识点是函数递归。主函数调用函数fun(6),由于6/2>0为真递归调用fun(3),接着递归调用fun(1),输出1,返回上一层输出3,在返回上一层输出6。故空格处应该填136。
41.D解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。
42.D解析:在C语言程序中,可以用一个符号名来代表一个常量,称为符号常量。这个符号名必须在程序中进行特别的“指定”,并符合标识符的命令规则。在本题中圆周串n是一个符号常量,但在程序中并没有指定其值,所以编译器找不到其值就会报错。所以选项D)正确。
43.D解析:本题考核的知识点是函数的返回值作为函数参数的应用。主函数中首先定义了4个整型变量x、y、z和r,并分别给x、y、z赋初值为3、8、6,接着调用一个fun()函数,并将返回值赋给变量r。其中将fun(x,y)函数的返回值和2*z作为fun()函数的两个参数。在内层fun(x,y)函数中,将x的值和y的值传给形参a和b,此时a和b的值分别为3和8,执行if语句,由于if后面判断条件表达式“a>b”为假,所以执行else后面的语句,返回值为8。此时,外层fun(x,y)函数两个参数为8和2*z=12,所以r的赋值语句相当于r=fun(8,12),同上分析可知fun(8,12)返回值为12,因此最后r的值为12。所以,4个选项中选项D符合题意。
44.B解析:选项B中每次执行循环体都要执行p=1,无法保存上次的运算结果,执行完while循环后p=5。
45.B解析:本题中首先定义了3个整型变量x、y和z,并分别赋值为0、5和3,while循环的判定条件为z-->0&&++x<5,由于z的初值为3,所以当z--执行3次后,z-->O将不再成立,又由于x的初值为0,所以++x执行5次,++x<5将不再成立,而它们两个表达式的值为逻辑与的关系,故当z-->O不成立时整个表达式的值为假,因此该循环共执行了3次,即语句y=y-1:共执行了三次,但while循环的判定表达式却执行了四次,故最后输出的x、y、z的值分别为3,2,-1,所以,4个选项中选项B符合题意。
46.C解析:由于用了宏定义a[10]~a[19]均为0。函数fun的功能是把从a[n]到a[m]中的元素依次赋给后面的一个元素。调用了fun(a,2,9)以后,a[N]={1,2,3,3,4,5,6,7,8,9,10}。
47.D解析:栈是仅在表头和表尾进行插入和删除元素操作的线性表,其特点是“先进后出”。本题中,进栈的过程中可以出栈。选项D中,如果第一个出栈的元素为e3,由于入栈顺序是e1、e2、e3,那么e3出栈后,栈中元素必定有e1和e2,因为e1先入栈,故e1应在e2后出栈,所以选项D是不可能的出栈顺序。
48.C解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算的工具以及程序员的水平无关。选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误,因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项D错误,因为根据一个算法所编制出的程序之中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。所以,本题正确答案为C。
49.B解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。
50.B解析:静态测试包括代码检查、静态结构分析和代码质量度量等。其中白盒测试属于动态测试。
51.B解析:p本身就是一个字符型指针变量,返回p也就是返回变量p中存放的地址值。
52.C解析:本题中,“printf('%2d,%2d\\n',x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是2。而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为102和10(y的初值012表示八进制整数12,等于十进制的10)。所以,4个选项中选项C符合题意。
53.B解析:此题考查了函数指针的概念,函数指针是定义一个指针指向函数的入口地址,可用这个指针来调用函数。
54.C解析:*p[3]是指针数组,它由3个指向整型数据的指针元素组成,p[0]=a[1]是将a数组第一行的首地址赋给第0个指针元素,p[0]+1表示a[1]+1即a[1][1]的地址,所以*(p[0]+1)表示a[1][1]。
55.C解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体,while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。本题中逻辑与符号连接的表达式值为真,*str2++=*strl++语句是将strl的内容逐个复制到str2字符串。
56.B解析:C语言以定,实参变量对形参变量的数据传递是“单向值传递”,只由实参传绐形参。在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维持原值。
57.A解析:本题考查C语言的综合基础知识。构成C程序的基本单位是函数,一个C程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何。C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。
58.D解析:若在scanf的格式化控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。
59.CC。【解析】计算机算法是指解题方案的准确而完整的描述,它的基本特征分别是:可行性、确定性、有穷性和拥有足够的情报。
60.B解析:本题中定义了一个结点structNODE,在主函数中定义了三个结点变量指针p、q和r,接着通过malloc函数分配了三个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的num域赋值为1、2、3,然后让结点p指向q,让q指向r,r指向NULL。显然q->next->num的值为指针r所指向结点的num域的值为3,p->hum的值为指针P所指向结点的num域的值为1,故最后输出s的值为3+1=4。
61.D
62.A树形结构是一类重要的非线性数据结构。树是n(n≥0)个结点的集合,对应任意一棵非空树,它具有以下几点重要的性质。
①有且仅有一个特定的称为根的结点。
②当n>1时,其余
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解读注册会计师考试标准化趋势对考生的影响试题及答案
- 运维优化面试题及答案
- 农艺师考试实战技能提升试题及答案
- 项目管理考试的直接实践要求试题及答案
- 花艺师考试中实战经验与理论知识的结合方式试题及答案
- 2025年并购重组市场的现状与挑战试题及答案
- 2024年项目管理考试新趋势试题及答案
- 证券从业资格证考试应试能力试题及答案
- 2024年项目管理考试模拟题目试题及答案
- 考生特质2025年注册会计师考试试题及答案分析
- 河南省洛阳市强基联盟2024-2025学年高二下学期3月月考历史试题(原卷版+解析版)
- 2025届上海市奉贤区高三语文二模试卷作文题目解析及范文:达克效应
- 2024年新瓦斯检查工国家考试题库
- 河南省普通高中2024-2025学年高三下学期学业水平选择性模拟考试(四)历史试题(原卷版+解析版)
- (一模)桂林市、来宾市2025届高考第一次跨市联合模拟考试地理试卷(含答案详解)
- 饰品干货知识培训课件
- 2024-2030年中国高纯铜行业发展监测及发展趋势预测报告
- 2022城市道路照明设施养护维修服务规范
- 企业员工环保培训
- 2024年9月21日浙江省事业单位统考《职业能力倾向测验》真题及答案
- 兽医病理学基础试题及答案
评论
0/150
提交评论