




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年山西省吕梁市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列叙述中正确的足
A.软件交付使用后还需要进行维护
B.软件一旦交付使用就不需要再进行维护
C.软件交付使用后其生命周期就结束
D.软件维护是指修复程序中被破坏的指令
2.C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符()。
A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母,数字或下划线中的任意一种
3.设有以下函数:voidfun(intn,char*s){…}则下面对函数指针的定义和赋值均正确的是()。
A.void(*pf)();pf=fun;
B.void*pf();pf=fun
C.void*pf();*pf=fun;
D.void(*pf)(int,char);pf=&fun;
4.由两个栈共享一个向量空间的好处是______。
A.减少存取时间,降低下溢发生的机率
B.节省存储空间,降低上溢发生的机率
C.减少存取时间,降低上溢发生的机率
D.节省存储空间,降低下溢发生的机率
5.设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为()。
A.O(n+e)B.O(n^2)C.O(ne)D.O(n^3)
6.有如下嵌套的if语句:if(a<b)if(a<c)k=a;elsek=C:elseif(b<c)k=b;elsek=C;以下选项中与上述if语句等价的语句是()。A.k=(a<b)?a:b;k=(b<c)?b:C;
B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
D.k=(a<b)?a:b;k=(a<c)?a:c;
7.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。
A.1/2B.1C.2D.4
8.定义结构体数组:structstu{intnum;charnameE20];}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.112A3H4IC.1A2N3A4UD.2H3A4H5I
9.下面哪个序列不是此图的一个拓扑排序()A.ebfgadchB.aebdgfchC.adchebfgD.Aedbfgch
10.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率
11.有以下程序#include<stdi0.h>main(){inta[]={2,3,5,4),i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;casel:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序运行后的输出结果是()。A.3344B.2050C.3040D.0304
12.有以下函数intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函数的功能是()。A.查找X和y所指字符串中是否有\o
B.统计x和Y所指字符串中最前面连续相同的字符个数
C.将Y所指字符串赋给X所指定存储空间
D.统计X和Y所指字符串中相同的字符个数
13.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
14.以下程序中函数sort的功能是对数组a中的数据进行由大到小的排序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[]={1,2,3,4,5,6,7,8,9,10},i;son(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,2,3;8,7,6,5,4,9,10,
D.1,2,10,9,8,7,6,5,4,3,
15.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}
A.将磁盘文件的内容显示在屏幕上
B.将两个磁盘文件合为一个
C.将一个磁盘文件复制到另一个磁盘文件中
D.将两个磁盘文件合并后送屏幕
16.若有定义“inta[2][3],*p[3];”,则以下语句中正确的是()。
A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a;
17.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序运行后的输出结果是()。
A.20045537B.20044550C.20042580D.20041703
18.
19.
20.表达式a*(-b+c)的逆波兰式是()
A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*
二、2.填空题(20题)21.以下程序的运行结果是【】。
intk=0;
voidfun(intm)
{m+=k;k+=m;
printf("m=%dk=%d",m,k++)
}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
22.无论对于顺序存储,还是链接存储的栈和队列来说,进行插入或删除运算的时间复杂性均相同,则为【】。
23.以下程序运行后的输出结果是______。
main()
{
chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{
if(i%2==0)
*p='*';
p++;i++;
}
puts(a);
}
24.在算法正确的前提下,评价一个算法的两个标准是【】。
25.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
whi1e()s[i]){d[j]=【】:j++;}
d[j]=0;
26.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
27.下列程序的输出结果是【】。
voidfun(int*n)
{while((*n))
printf("%d",(*n)--);
}
main()
{inta=10;
fun(&a);
}
28.下列程序的输出结果是【】。
main()
{inti;
for(i=1;i+1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
29.以下程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234
请填空。
main()
{inti,j,x;
for(j=4;j>0;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+【】;
printf("%4d",x);
}
printf("\n");
}
}
30.算法的复杂度主要包括【】复杂度和空间复杂度。
31.下面程序的功能是:对字符串从小到大进行排序并输出,请填空。
#include"string.h"
#include"stdio.h"
sort(char*a[],intn)
{inti,j;
char*p;
for(j=1;j<=n-1;j++)
for(i=0;i<n-j;i++)
if(())>0)
{p=a[i];
a[i]=a[i+1];
a[i+1]=p;}
}
main()
{inti;
char*book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};
sort(());
for(i=0;i<6;i++)
printf("%s\n",book[i]);
}
32.以下程序的输出结果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
33.下面程序的运行结果是______。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
34.在E-R图中,矩形表示【】。
35.数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。
36.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护o
37.以下程序的输出结果是______。
main()
{chars[]="abcdef";
s[3]='\0';
printf("%s\n",s);
}
38.以下程序的输出结果是()。#include<stdio.h>main(){inti=10,j=0;do{j=j+i;i--;}while(i>5);printf("%d\n",j);}
39.下列程序的运行结果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%\n",p);
}
40.一棵二叉树第6层(根结点为第一层)的结点最多为______个。
三、1.选择题(20题)41.以下四个程序中,完全正确的是()。
A.#include<stdio.h>main();{/*programmlng*/printf("programming!\n");}
B.#include<stdio.h>main(){/*/programmingprintf("programming!\n");}
C.#include<stdio.h>main(){/*programming*/printf("programming!\n");}
D.include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}
42.计算机软件系统包括______。
A.计算机与外部设备B.硬件系统与软件系统C.系统软件与应用软件D.CPU与外部设备
43.数据库技术的根本目标是要解决数据的()。
A.存储问题B.共享问题C.安全问题D.保护问题
44.以下数组定义中错误的是______。
A.intx[][3]={0};
B.intx[2][3]={{1,2},{3,4},{5,6)};
C.intx[][3]={{1,2,3},{4,5,6}};
D.mtx[2][3]={1,2,3,4,5,6};
45.下面程序段的执行结果可能为()。main(){intb[]={1,2,3),i;for(i=1;i<=4;++i)printf("%u\t",b[i]);}
A.12365516B.0123C.2365516285D.程序不能通过编译
46.设x,y均为int型变量,且x=10,y=3,则printf("%d\n"x-,-y);语句的输出结果是______。
A.10,3B.9,3C.9,2D.10,2}
47.有以下程序:#include<stdio.h>main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是()。
A.21,43B.43,21C.43,00D.21,00
48.下面程序的输出结果是______。main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;ptintf("%d\n",*p+9);}
A.0B.1C.10D.9
49.结构化程序设计的核心和基础是()。
A.结构化分析方法B.结构化设计方法C.结构化设计理论D.结构化编程方法
50.当说明一个结构体变量时,系统分配给它的内存是()。
A.各成员所需内存量的总和
B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需的容量
D.结构中最后一个成员所需内存量
51.已知下列函数定义setw(int*b,intm,intn,intdat){intk;for(k=0;k<m*n,k++){*b=dat;b++;}}则调用此函数的正确写法是(假设变量a的说明为inta[50])()
A.setw(*a,5,8,1);
B.setw(&a,5,8,1);
C.setw((int*)a,5,8,1);
D.setw(a,5,8,1);
52.有以下程序unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a,u.z=6;a.k=0;printf("%d\n",a.u.x);}程序运行后的输出结果是()
A.4B.5C.6D.0
53.下列叙述中错误的是()。
A.线性表是由n个元素组成的一个有限序列
B.线性表是一种线性结构
C.线性表的所有结点有且仅有一个前件和后件
D.线性表可以是空表
54.下列叙述中,错误的一条是______。
A.已知i=3,执行语句k=(++i)+(++i)+(++i)后,k的值为15
B.逻辑表达式!(5>3)&&(2<4)的值为0
C.表达式'c'&&'d'||!(3+4)的值为1
D.整型、实型、字符型数据可以混合运算
55.语句int(*ptr)()的含义是()。
A.ptr是一个返回值是血的函数
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个血型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
56.假设在turboc2.0采用small模式编译如下程序main(){chara[4]={'a','b'};char*b="abc";printf("%d,%d",sizeof(a),sizeof(b));}其输出结果为______。
A.4,2B.4,4C.4,3D.2,2
57.以下数组定义中错误的是()。
A.intx[][3]={0};
B.intx[2][3]={{1,2},{3,4},{5,6}};
C.intx[][3]={{1,2,3},{4,5,6}};
D.intx[2][3]={1,2,3,4,5,6};
58.以下程序的输出结果是()。#include<stdio.h>main(){inta=1,b=3;if((++a<0)&&!(b--<=0))printf("%d,%d\n",a,B;elseprintf("%d,%d\n",b,A);}
A.2,2B.1,3C.3,2D.3,1
59.若有语句:char*line[5];以下叙述中正确的是()。
A.定义line是一个数组,每个数组元素是一个基类型为char的指针变量
B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C.定义line是一个指针数组,语句中的.号称为求地址运算符
D.定义line是一个指向字符型函数的指针
60.下列选项中,当x为大于1的奇数时,值为0的表达式是()。
A.x%2==1B.x/2C.x%2!=0D.x%2==0
四、选择题(20题)61.
62.有以下程序
.程序运行后的输出结果是()。
A.6B.9C.11D.7
63.下列叙述中正确的是()。A.算法的效率只与问题的规模有关,而与数据的存储结构无关
B.算法的时间复杂度是指执行算法所需要的计算工作量
C.数据的逻辑结构与存储结构是一一对应的
D.算法的时间复杂度与空间复杂度一定相关
64.有以下程序
voidfun(inta,intb,intc)
{
a=456,b=567,c=678;
}
main()
{
intx=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
输出结果是
A.10,20,30B.30,20,10
C.456,567,678D.678,567,456
65.有以下程序若想通过键盘输入,使得al的值为12,a2的值为34,el的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b则正确的输入格式是()。
66.
67.有以下程序:
程序运行后的输出结果是()。
A.9B.8C.7D.10
68.有如下程序
#include<stdio.h>
main()
{
FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有内容为good,则运行以上程序后,文件f1.txt中的内容为
A.goodabcB.abcd
C.abcD.abcgood
69.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。A.A.&B.^C.||D.~
70.(52)栈和队列的共同点是()
A.都是先进后出B.都是先进先出
C.只允许在端点处插入和删除元素
D.没有共同点
71.设有定义:
则以下赋值语句中错误的是()。
A.data2=(2,6);
B.data2=datal;
C.data;real=datal.real;
D.data2.real=datal.unreal;
72.以下程序的输出结果是()。
A.20,024,0x14
B.20,24,14
C.20,0x14,024
D.20,20,20
73.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。
A.提高耦合性降低内聚性有利于提高模块的独立性
B.降低耦合性提高内聚性有利于提高模块的独立性
C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D.内聚性是指模块间互相连接的紧密程度
74.以下叙述中正确的是()。
A.预处理命令行必须位于C源程序的起始位置
B.在C语言中,预处理命令行都以“#”开头
C.每个C程序必须在开头包含预处理命令行:#include
D.C语言的预处理不能实现宏定义和条件编译的功能
75.软件生命周期中,花费最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护
76.下列叙述中错误的是()。
A.C程序可以由多个程序文件组成
B.一个c语言程序只能实现一种算法
C.c程序可以由一个或多个函数组成,
D.一个C函数可以单独作为一个C程序文件存在
77.一个栈的初始状态为空。现将元素l、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,恻元素出栈的顺序是()。A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.5432lEDCBA
78.
定义结构体数组:
structstu
{intnum;
charnameE20];
}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.112A3H4IC.1A2N3A4UD.2H3A4H5I
79.有以下程序
main()
{inti=010,j=0X10;
pirntf("%d,%d\n",i,j);
}
该程序的输出结果是
A.10,10B.8,10
C.8,16D.10,16
80.有以下程序五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。
例如,若输入“Ab,cD”,则输出“AB,CD”。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc,其功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#defineMl6typedefstruct{charnum[l0];intS;}STREC:voidproc(STRECa[]){inti,j;STRECt;for(i=1;i<M;i++)/*用冒泡法来按从高到低排序*/for(j=0;j<M-1;j++)。if(a[j].s<a[j+1].s)//*按分数的高低排列学生的记录,高分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;)}voidmain{STRECstu[M]={{"GA005",85),{"GA003",76},{"GA002",69},{"GA004",85),{"GA001",91),{"GA007",72),{"GA008",64),{"GA006",87),{"GA015",85),{"GA013",91),{"GA012",64),{¨GA014",91),{"GA011",66),{"GA017",64},{"GA018",64),{"GA016",72}};inti;proc(stu);printf("Thedataaftersorted:\n");for(i=0;i<M;i++){if(i%4==0)//每行输出4个学生记录printf("n");printf("%s%4d",stu[i],num,stu[i].s);}printf("\n");}
参考答案
1.A解析:本题考核软件维护的概念.维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段,在软件交付使用后,还需要进行维护。软件维护通常有以下四类:为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。综上所述,本题的正确答案是A,其余选项的说法错误。
2.C
3.A函数指针的定义格式为函数类型(*指针变量名)(形参列表);函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。所以选项A正确。
4.B
5.A
6.C条件运算符(?:)是C语言中唯一的一个三目运算符,它是对第一个表达式做真/假检测,然后根据结果返回两个表达式中的一个作为运算的结果。<表达式1>?<表达式2>:<表达式3>。在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值。
7.C
8.A本题主要考查结构体数组的使用。x[i].num为结构体x[i]中的hum成员,x[i].num[2]是结构体x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[i].num,x[1].name[2]的值;第2次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N;第3次循环,i=3,输出X[3].hum,x[3].name[2]的值,即4A;第4次循环,i=4,输出x[4].num,x[4].name[2]的值,即5U。
9.C
10.D数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。
11.C本题考查嵌套分支语句。共输出4个值:当i=0时,i%2取余后还是0,则执行ease0语句,继续switch语句,此时i为0,数据的下标是从0开始的,a[03的值为2,则a[0]%2=0,继续执行case0,数组a[0]++,值变为3,执行break跳出第二重开关语句。出来后继续执行break,跳出第一重开关语句,继续循环;输出第一个值为3。i++后值为1,i%2=1%2取余后值为1,执行casel,将0赋给a[l],退出开关语句,输出第二个值为0。i++后值为2,i%2=2%2取余后值为0’a[2]的值为5,则a[2]%2=1,继续执行casel,数组a[2]--,值变为4,执行break跳出第二重开关语句。出来后继续执行break,跳出第一重开关语句,继续循环;输出第三个值为4。i++后值为3,i%2=3%2取余后值为1,执行casel,将0赋给a[3],退出开关语句,输出第四个值为0。结果为3040。
12.B由题中while(*x==*y*x!=\\n)可知此函数是统计x和y所指向的字符串中最前面的联系相同的字符的个数。
13.D各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序0(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)
14.C解析:在main函数中调用sort函数时,实参&aa[3]把数组元素aa[3]的首地址传给形参数组a,使aa[3]与a[0]相对应。sort函数将从aa[3]开始的连续5个数进行了从大到小的排序,其他数组元素不变。
15.C解析:程序首先定义了两个文件类型的指针fp1、fp2。为读打开文件filel,并让指针fp1指向该文件;为写打开文件file2,并让指针fp2指向该文件。循环执行从文件file1中读取一个字符,输出到文件file2中,直到文件file1结束。因此程序的功能是将文件file1中的内容复制到文件file2中。
16.CA选项错误,因为p是指向一个指针数组,而数组名相当于常量,不能重新赋值。B选项错误,因为p[0]是一个int指针,也就是int*,而a是一个指向指针的指针int**。C选项正确,因为p[0]是int*,a[1][2]是int,&a[1][2]是int*,类型吻合。D选项错误,因为a作为数组名,不能取地址,即使能取,P[1]是int*,&a是int***,类型不吻合。故本题答案为C选项。
17.D解析:函数f中定义了结构体类型的变量P作为形参,在main函数中,将结构体变量s[0]中的值传给了形参变量P,在函数f中,虽然改变了p中的内容,但其改变对main函数中s[0]的值不产生影响,所以main函数中输出s[0]的数据仍然是main函数中初始化时的数据。
18.D
19.C
20.D
21.m=4k=4i=5k=5m=4k=4i=5k=5解析:main()函数首先定义了1个变量i,并初始化为4。然后用表达式i++的值为实参调用函数fun(),因为后缀”表达式的值为增1之前的值,故此时传递给函数的参数m值为4。fun()函数中,首先让形参m自增k,由于此时k还是0,所以m不变,然后让k自增m,执行后k的值和m相同为4。最后fun()函数输出m和k廿的值,两个值都是4,故首先输出了“m=4k=4”,输出完后,k自增1(k变为5)。fun()函数执行完毕,返回main()函数中,此时i会被自增1变为5,故接着又输出的i和k的值都是5。故最终输出结果是“m=4k=4i=5k=5”。
22.O(2)
23.*2*4*6*8**2*4*6*8*解析:程序中定义了一个字符数组a,并初始化为123456789,接着定义了一个指针p并让它指向数组a,紧接着执行了一个while循环,此循环的作用是:当i为偶数时,将“*”赋给a[i],p指向数组末尾,循环结束,此时数组中a[0]、a[2]、a[4]、a[6]和a[8]的值都为“*”,所以最后调用puts()函数输出的a的值为*2*4*6*8*
24.时间复杂度和空间复杂度时间复杂度和空间复杂度
25.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。
26.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。
27.1.09877e+010
28.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i=3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1;执行第三次for循环时,i=5,if语句条件满足,所以执行printf('%d\\n',i),输出5,然后break语句跳出了for循环。
29.ii解析:外循环是递减的,方阵中的每个元素为(j-1)*4+i,因此空格处填i。
30.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
31.strcmp(a[i]a[i+1])book6strcmp(a[i],a[i+1])book,6解析:此程序段的功能是使字符串从大到小进行排列。显然,第一空白处,是利用strcmp函数比较字符串a[i]和a[i+1]的大小,若不符合题意,就进行调换;main函数中,sort函数是对数组book中的字符串按从小到大进行排序,所以第二空白处填入“book,6”(6是指book所指向的字符串的个数)。
32.77解析:在C语言中,宏定义是直接替换的,所以在刘表达式MAX(a+b,c+d)*10进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。
33.
34.实体实体解析:E-R模型中,有3个基本的抽象概念:实体、联系和属性。在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。
35.概念概念
36.完善性完善性解析:软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
37.abcabc解析:字符串的结束标记'\\0',当输出一个存放在字符数组中的字符串时,只需输出到'\\0'为止,而不管其后有什么数据。本题给字符数组s的元素s[3]赋值为'\\0',故只能输出3个字符“abc”。
38.4040解析:分析程序,初始时i=10,j=0,这时do循环中的“i=j+i”
39.efghefgh解析:函数ss的作用是让形参指针s指向该字符串的右半部分。主函数中首先定义了一个字符型指针变量p和字符型指针str,并初始化为“abcdefgh”,然后调用函数ss,将实参str传给形参s,因此可知该函数返回的指针,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后输出指针p(指针p的值为调用函数ss(str)的返回值)所指向的字符串为“efgh”。
40.3232解析:二叉树第k层上,最多有2k-1(k≥1)个结点。第6层的结点数最多是26-1=32。注意区别“二叉树的结点最多数”和“某一层的结点最多数”。前者的计算是深度为m的二叉树最多有2m-1个结点。
41.C解析:选项A)main();后面不应该有分号;选项B)中的注释语句不正确;选项D)的include前缺少#。
42.C
43.B解析:数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖的使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共,享数据的要求,就出现了数据库技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项B正确。
44.B解析:二维数组赋初值时,第一个维数即行数可以省略,但是列数不能省略。因此选项A、C正确。选项D是按数据在二维数组中的顺序初始化。在选项B中,列维数的初始化格式跟定义的维数不一致,为错误选项。
45.C解析:本题使用了一个for循环输出b[1]~b[4]的值,由于数组b定义时初始化列表只有3个值,所以数组b的长度为3,下标范围是0~2,故输出的前面两个数一定是2和3,后面的数就不能确定了,因为已经超出数组b的范围。故正确答案为C。
46.D解析:C语言的自减运算符有前置与后置两种形式。当自减运算符前置时,变量先自减一后再参与表达式运算;而后置时,变量先参与表达式运算后再自身减一。
47.A解析:int型变量和字符数组ch共用两个字节的存储单元,通常ch[0]位于低字节,ch[1]位于高字节,所以s.ch[0]=21,s.c[1]=43。
48.C解析:p是一个指向整型数据的指针,执行p=a后,p指向a[0]。指针运算比算术运算的级别高,先运算*p,得到1,然后执行加9,结果等于10。
49.CC。【解析】结构化程序设计的核心和基础是结构化设计理论,其中包括:结构化分析方法、结构化设计方法和结构化编程方法。
50.A解析:结构体变量所占内存长度是各成员所占内存长度之和,每个成员分别占有自己的内存单元,而共用体变量所占的内存长度等于最长的成员的长度。
51.D
52.D
53.CC.【解析】线性表是一种线性结构,由n(n≥0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C.是错误的。
54.A
55.C解析:本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(指针变量名)()。“类型标识符”为函数返回值的类型。
56.A解析:用small模式编译,指针变量占2个字节。sizeof(array):数组名array代表数组本身,sizeof函数测出的是整个数组的大小。a数组的大小为4,b指针变量的大小为2。
57.B解析:二维数组的初始化有以下几种形式:①分行进行初始化;②不分行进行初始化;③部分数组元素进行初始化;④省略第一维的定义,不省略第二维的定义。选顷B)等号右边分了3行,大于等号左边数组的行数2。
58.C
59.A解析:由于运算符[]优先级比*高,所以line是一个数组,每个数组元素是一个基类型为char的指针变量。
60.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项D)等于关系表达式的结果为假,即等于0。
61.D
62.A本题首先定义了3个字符数flip、q、r,并分别被初始化。数组p;}i旨定的大小为20,初始化列表为la,b,c,d},即只指定了前4个元素的内容,根据c语言的规定,初始化列表不足时,其余元素均自动初始化为0。然后通过streat()函数,将字符串r连接到字符串p之后,即执行后p中的内容为“123d123de”。因为“strlen(q)”表示求字符串q的长度,很明显为3,所以语句“strcpy(p+strlen(q),q);”的作用就是:将字符串q复制到数9lp的第4个元素位置处。
63.B解析:本题考查数据结构中有关算法的基本知识和概念。数据的结构,直接影响算法的选择和效率。而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。因此,数据的逻辑结构和存储结构都影响算法的效率。选项A的说法是错误的。算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。因此,选项B的说法是正确的。
数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。可见,逻辑结构和存储结构不是一一对应的。因此,选项C的说法是错误的。
有时人们为了提高算法的时间复杂度,而以牺牲空间复杂度为代价。但是,这两者之间没有必然的联系。因此,选项D的说法是错误的。
64.A本题考查函数中变量的作用范围,在主函数中给变量x、y、z赋值,然后将其作为实参传递给了函数fun(),虽然在函数fun()中改变了这三个变量的值,但只是同名的局部变量,不影响函数中变量的值。所以,在调用函数fun()结束后,主函数三个变量的值未改变,即形参值的改变不能影响实参值。
65.A在输入多个数据时,如果格式控制串中没有非格式字符,则认为所有输入的字符均为有效字符。因此应按选项A)的顺序输人数据。
66.A
67.A题目中静态局部变量a,在静态存储区内分配存储单元,在程序整个运行期间都不释放。所以第-次调用函数执行n+=a++;时a先与n相加在再进行自增。n的值为4,a的值为2,且a变量执行完后空间没有释放。再执行s:。+f(a)时,s的值为4,调用f(a)函数时n的返回值为n=3+2=5,且此时a的值为3了。所以s的值为9。
68.Cfp1=fopen('f1.txt','w')表示打开名为f1.txt的文件,使用文件方式为向该文件写数据,如果原来不存在该文件,则在打开时新建一个以指定的名字命名的文件;如果原来已存在一个以该文件命名的文件,则在打开时将该文件删去,然后重新建立一个新文件,所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年渤海船舶职业学院单招职业倾向性测试题库完整
- 自家车辆质押合同6篇
- 个人厂房出售合同
- 单独招生计算机类练习题库
- 2025合作共建房地产项目合同(合同范本)
- 诊断学基础练习题库与参考答案
- 2024年采购管理师历年真题试题及答案
- 臭鳜鱼现代化发酵关键技术
- 古建筑信息模型实体继承关系、典型数据模式拓展
- 小龙虾四季有虾绿色高效养殖技术
- 2024-2025学年人教版数学七下 第七章 相交线与平行线(含答案)
- 【精选】方剂学解表剂练习题
- 英语沪教版小学五年级下册Unit6优质课课件1
- 误吸的护理应急预案
- 法制宣传教育小报
- 上海西郊国际农产品展示直销中心贵州馆入驻方案
- 等离子体水处理技术
- 危重孕产妇救治中心建设与管理指南
- 折纸大全A4纸可打印3D拼图(共36页)
- EBZ200掘进机用户手册
- 《汴京的星河》答案详解
评论
0/150
提交评论