版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年山东省东营市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.在inta=3,int*p=&a;中,*p的值是()
A.变量a的地址值B.无意义C.变量p的地址值D.3
3.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
4.以下选项中非法的字符常量是A.A.'\101'
B.'\65'
C.”\xff'
D.'\019'
5.有以下程序: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
6.栈的特点是B,队列的特点是()。
A.先进先出B.先进后出
7.C语言常量的类型从字面形式上可区分,以下判断中正确的是()。
A.2E3——整型B.2.0E3——实型C.‘\025’——字符串D.“a”——字符型
8.设有定义:#include<stdio.h>#include<stdlib.h>typedefstruct{intx,y;}T;typedefstruct{intx,y;}*USER;USERfun(){USERp;p=(USER)malloc(sizeof(T));p->x=1;p->y=2;returnp;}函数fun返回值的类型是()。
A.T类型的结构体B.指向结构体类型的指针C.int类型的元素D.int类型的指针
9.在一个有头结点的链队列中,假设f和r分别为队首和队尾指针,则插入s所指的结点的运算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.s->next=r;r=s;
D.s->next=f;f=s;
10.下列程序的运行结果是()。
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
11.就平均查找速度而言,下列查找速度从慢至快的关系是()
A.顺序折半哈希分块B.顺序分块折半哈希C.分块折半哈希顺序D.顺序哈希分块折半
12.有如下定义:structperson{charname[9];intage;}structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};能输出字母M的是()
A.printf("%c\n",class[3].name);
B.printf("%c\n",class[3].name[1]);
C.printf("%c\n",class[2].name[1]);
D.printf("%c\n",class[2].name[0]);
13.关于数组和指针,以下说法错误的是()。
A.数组名本身就是一个指针,指向数组内存的起始位置
B.既可以读入数据到数组中,也可以读入数据到未賦初值的指针中
C.可以将指针指向一个同类型的数组
D.指针可以指向同类型的数组中的任意一个元素
14.以下对C语言函数的有关描述中,正确的是
A.在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.函数必须有返回值,返回值类型不定
15.函数fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始点是()。
A.文件开始B.文件末尾C.文件当前位置D.以上都不对
16.
17.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是
A.1267B.1256C.1278D.1245
18.从堆中删除一个元素的时间复杂以为____。
A.O(1)B.O(log2n)C.O(n)D.O(nlog2n)
19.下述关于C语言文件的操作的结论中,正确的是______。
A.对文件操作必须先关闭文件
B.对文件操作必须先打开文件
C.对文件操作顺序无要求
D.对文件操作前必须先测文件是否存在,然后再打开文件
20.有以下程序:fun(intx){intP;if(x==0||x==l)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}程序执行后的输出结果是()。A.7B.3C.2D.0
二、2.填空题(20题)21.有以下语句段
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
22.以下程序的功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码值之差。请填空。
#include"stdio.h"
main()
{chara1[20],a2[20];intn=0,t;
scanf("%st",a1);scanf("%s",a2);
while(a1[n]!=a2[n]&&(a1[n]!=【】))
{t=【】;
printf("%d\n",t);n++;}}
23.表示""整数x的绝对值大于5""时值为""真""的C语言表达式是【】。
24.下面程序
main()
{inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
运行后,i,j,m,n的值分别是_______。
25.以下程序的运行结果是【】。
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
26.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。
27.有以下程序
main()
{intx=1,y=1,z=1;
y=y+z;x=x+y;
printf("%d",x<y?y:x);
printf("%d",x<y?x++:y++);
printf("%d",x);
printf("%d",y);
}
运行结果是【】
28.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
29.在面向对象方法中,类的实例称为______。
30.设inta=5,b=6,表达式(++a==b--)?++a:--b的值是【】。
31.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)
______
main()
{printf("\n");
try_me();
printf("\n");}
32.以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}
33.以下程序中给指针p分配3个double型动态内存单元,请填空。
#include<stdllb.h>
main()
{double*p;
p=(double*)malloc(【】);
p[0]=1.5;p[1]=2.5;p[2]=3.5
printf("%f%f%f\n",p[0],p[1],p[2]);
}
34.数据库系统中实现各种数据管理功能的核心软件是______。
35.没有chara,b;,,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的二进制是【】。
36.下列程序的运行结果是______。
main()
{ints=0,i=1;
while(s<=10)
{S=S+i*i;
i++;
b
}
printf("%d",--i);
}
37.在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。
38.算法的复杂度主要包括时间复杂度和______复杂度。
39.在面向对象方法中,类之间共享属性和操作的机制称为______。
40.下面程序的运行结果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
三、1.选择题(20题)41.有以下程序:#include<stdio.h>fun(intx,inty,intz){z=x*y;}main(){inta=4,b=2,c=6;fun(a,b,c);printf("%d",c);}程序运行后的输出结果是()。
A.16B.6C.8D.12
42.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}该程序中的for循环执行的次数是______。
A.5B.6C.7D.8
43.以下程序的输出结果是#include<stdio.h>#include<string,h>main(){charb1[8]="abcdefg",b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pB);printf("%d\n",strlen(b2));}
A.8B.3C.1D.7
44.线性结构中的一个结点代表一个数据元素,通常要求同一线性结构的所有结点所代表的数据元素具有相同的特点,这意味着______。
A.每个结点所代表的数据元素都一样
B.每个结点所代表的数据元素包含的数据项的个数要相等
C.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
D.结点所代表的数据元素有同一特点
45.以下叙述中正确的是()。
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
46.对于建立良好的程序设计风格,下面描述正确的是()。
A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法即可C.充分考虑程序的执行效率D.程序的注释可有可无
47.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
48.数据库技术的根本目标是要解决数据的()。
A.存储问题B.共享问题C.安全问题D.保护问题
49.下列说法错误的是
A.函数调用时,函数名必须与所调用的函数名字完全相同
B.实参的个数必须与形式参数的个数一致
C.实参可以是表达式,在类型上必须与形参一一对应匹配
D.C语言规定,函数必须先定义,后调用(函数的返回值类型为int或char时除外)
50.下列叙述中正确的是()。
A.运行结果正确的程序一定具有易读性
B.自己编写的程序主要是给自己使用的
C.当前编写的程序主要是为当前使用的
D.上述三种说法都不对
51.有以下程序:structs{intx,y;)data[2]={10,100,20,200);main(){structs*p=data;printf("%d\n",++(p->x));}程序运行后的输出结果是()。
A.10B.11C.20D.21
52.下列数据结构中,按先进后出原则组织数据的是
A.线性链表B.栈C.循环链表D.顺序表
53.线性表常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
54.若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为()
A.floatB.intC.charD.double
55.若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
56.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是______。
A.3B.4C.5D.有语法错误
57.设x,y均为int型变量,且x=10,y=3,则printf("%d,%d\n",x-,-y);语句的输出结果是______。
A.10,3B.9,3C.9,2D.10,2}
58.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法需要的内存空间
59.有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&&b)&&(c<′B′);
执行该程序段后,x的值为
A.trueB.falseC.0D.1
60.下面的程序段运行后,输出结果是
inti,j,x=0;
staticinta[8][8];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j;
for(i=0;i<8;i++)
x+=a[i][j];
printf("%d",x);
A.9B.不确定值C.0D.18
四、选择题(20题)61.
62.有以下程序
.程序运行后的输出结果是()。
A.6B.9C.11D.7
63.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()。A.A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码
64.若程序中有宏定义行:#defineN100则以下叙述中正确的是()。
A.宏定义行中定义了标识符N的值为整数100
B.在编译程序对C源程序进行预处理时用100替换标识符N
C.对C源程序进行编译时用100替换标识符N
D.在运行时用100替换标识符N
65.
66.运算符________的优先级最高。
A.[]B.+=C.?:D.++
67.
68.若有定义语句:inta[4][10],*P,*q[4];且0<=i<4,则错误的赋值是()。
A.P=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1]
69.有如下程序
voidf(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
main()
{inta[6]={1,2,4,6,8,10},i,*p,*q;
p=a;q=&a[5];
while(p<q)
{f(p,q);p++;q--;}
for(i=0;i<6;i++)
printf("%d,",a[i]);
}
该程序的输出结果是
A.1,2,4,6,8,10B.10,8,4,6,2,1
C.10,8,6,4,2,1D.10,2,4,6,8,1
70.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
71.一个栈中初始元素依次为A、B、C、D、E。现将元素1、2、3、4、5依次入栈,然后将所有的元素依次出栈,则元素出栈的顺序是
A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA
72.有以下程序程序运行后的输出结果是()。
A.30B.10C.0D.64
73.有如下程序:
该程序的输出结果是()。
A.0.000000B.0.250000C.0.500000D.1.000000
74.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。
A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义
B.用户标识符可以由字母和数字任意顺序组成
C.在标识符中大写字母和小写字母被认为是相同的字符
D.关键字可用做用户标识符,但失去原有含义
75.以下叙述中正确的是()。
A.在C语言中,预处理命令行都以“#”开头
B.预处理命令行必须位于c源程序的起始位置
C.#include<stdi0.h>必须放在C程序的开头
D.C语言的预处理不能实现宏定义和条件编译的功能
76.以三级模式为框架形成的3种数据库中,真实存在于计算机外存的数据库是()。
A.概念数据库B.用户数据库C.物理数据库D.逻辑数据库
77.
78.
79.执行语句X=(a=10,b=a--.后,x、a、b的值依次为()。
A.10,10,9
B.10,9,9
C.9,10,9
D.10,9,10
80.下列程序段的输出结果是
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("%2d,%2.1f,%2.1f",a,b,c);
A.无输出B.12,123.5,12345.5
C.1234,123.5,12345.5D.1234,123.4,12345.5
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.编写函数fun,其功能是:将所有大于1小于整数m的非素数存人xx所指数组中,非素数的个数通过k返回。
例如,若输入l7,则应输出:46891012141516。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。
参考答案
1.B
2.D
3.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。
4.D【答案】D
【知识点】字符常量的考察
【解析】在C语言中要求八进制字符常量的表示为\\ddd形式,但是八进制中只有0~7,7个数字,没有9这个数字,所以选择D。
5.A函数fun()通过递归调用实现的功能为n+(n-1)+…+1,故程序的输出结果为55。
6.A
7.B2E3是实型常量的指数形式,选项A错误;2.0E3是实型常量的指数形式,选项B正确;‘\\025’是八进制表示的转义字符,选项C错误;“a”是双引号标注的字符串常量,选项D错误。故本题答案为B选项。
8.B由题意可知:使用typedef将类型“struct{intx,y;}*”重命名为“USER”,所以函数fun的返回类型为“struct{intx,y;}*”,即指向结构体类型的指针。故本题答案为B选项。
9.B
10.D本题考查while循环。第一次循环,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
13.BC语言中,数组名本身就是一个指针,指向数组内存的起始位置,选项A正确;已经定义的数组被分配了内存空间,所以可以读入数据到数组中,未赋初值的指针没有分配内存空间,不可以读入数据,选项B错误;可以将指针指向一个同类型的数组,选项C正确;指针指向一个数组后,可以通过移动指针,指向该数组中的任意一个元素,选项D正确。故本题答案为B选项。
14.A解析:C语言中的函数可以进行递归调用,但不能在函数中定义函数,即函数不能嵌套定义。函数可以没有返回值,若有返回值,则返回值类型必须确定。
15.BSEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。
16.C
17.D解析:putchar(c1)输出1,putchar(c2)输出2,printf('%c%c\\n',c5,c6)输出45。
18.B
19.B解析:在C中对文件操作必须先打开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行打开操作时,同时会执行文件的检查文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式打开时,文件不存在,将会自动创建文件,因此在C中打开文件前不必对其检查文件是否存在,故答案为B。
20.C在函数funlintx)中,有个if语句判断,如果参数x等于0或1时,返回值,否则进入下面的p=x-fun(x-2)递归函数。当在主函势中调用fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的输出结果为2。
21.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函数有两种参数:格式控制参数和输出项参数,其中格式控制参数由两种成分组成:格式说明和普通字符,普通字符将被简单地复制显示,格式说明项将引起一个输出参数项的转换与显示,它是由“%”引出并以一个类型描述符结束的字符串。本题中,n1=和n2=就是普通字符,可以直接显示,又因为n1,n2为整数,所以格式说明项为%d,也可以在%与d之间加上域宽,另外还要在每行输出结束时加转义字符\\n进行换行。所以,应填写n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。
22.\0'al[n]-a2[n]或s2[n]-al[n]\\0'\r\nal[n]-a2[n]或s2[n]-al[n]
23.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整数x的绝对值大于5,则x大于5或x小于5,用C语言表示即为:x>5||x<-5或者x<-5||x>5。故本题答案为;x>5||x<-5或者x<-5||x>5。
24.611610。6,11,6,10。解析:本题考查自加的前置和后置的区别。
25.99解析:本题考查宏定义与三目运算符的综合用法,宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则为b+1的值为整个表达式的值,(应注意后面的加1)。
26.模块模块解析:矩形表示的是模块,箭头表示的是模块间的调用关系。用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。
27.3233
28.调试调试
29.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。
30.77解析:此表达式为三目运算符,++a的值为6,b--的值为6,则整个表达式的值为++a的值,++a的值为7。请注意前缀++,--和后缀++,--的区别。
31.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本题考查了函数的存储分类的概念。如果没有特别说明,函数的存储范围是从定义函数的位置到文件的结尾,如果其他文件想使用这个函数,需要用ginclude文件包含命令将定义函数的文件包含进来。
32.x=2
33.3*sizeof(double)3*sizeof(double)解析:malloc(size)函数用于申请动态存储空间,故应填3个double型变量在内存中所占的字节数。while循环的功能把字符从第二个元素开始左移一位,并将原第一个元素赋给最后一个元素。
34.数据库管理系统数据库管理系统解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
35.1000001010000010解析:运算“&”的规则是只有当两个相应的二进制位都为1时,该位的结果才为1。要保留第2、8位,只要将其与二进制数10000010相与。
36.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,输出结果为3。
37.类类解析:在面向对象的方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。
38.空间空间解析:算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
39.继承继承
40.x=2y=1
41.B解析:本题考查函数形参与实参的传递规则,当形参与实参都是简单的数据类型时,形参值的改变不能影响实参值,即本题中c的值未改变,仍然是6。
42.B解析:该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2。(N+1)+1,这就是宏名和变量名之间的区别),在将N代进去,得到NUM的值为6。
43.D解析:本题考核的知识点是指针变量的运算及字符函数strcpy()的应用。strepy()函数的作用是把第二个参数代表的字符串,复制到第一个参数指向得数组中.首先定义了两个字符数组b1和b2,并用一个字符串给b1赋初值,然后定义了一个字符型指针变量pb,通过赋初值使它指向b1[3]。接着执行while循环,该循环执行了3次;第一次判断条件“--pb>=b1”,使pb的值为“b1+2”,执行“strcpy(b2,pB);”后,b2中的内容为“cdefg”;第二次判断条件“--pb>=b1”,使pb的值为“b1+1”,执行“strcpy(b2,pB);”后b2的内容为“bcdefg”第三次判断条件“--pb>=b1”使Pb的值为“b1”,执行“strcpy(b2,pB);”后b2的内容为“abcdefg”。最后输出b2数组中存放的字符串长度,显然是7。(这里还有一个关键点:就是每当执行一次while循环判断条件,就执行一次“--Pb”,他使得指针pb自减1,即前移一位)所以,4个选项中D为所选。
44.C
45.B解析:本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行;连接,将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件;执行,执行一个经过编译和连接的可执行的目标文件。由以上定义可知,选项A、C、D均不正确。所以,4个选项中选项B符合题意。
46.A解析:选项B错误:符号名的命名除了要符合语法之外,还应具有一定的实际含义,以便理解程序功能;选项C错误:程序设计风格强调清晰第一,效率第二;选项D错误:程序注释能帮助读者理解程序,是提高程序可读性的重要手段。所以选项A正确。
47.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。
48.B解析:数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖的使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共,享数据的要求,就出现了数据库技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项B正确。
49.C解析:实参可以是表达式,在类型上应按位置与形参一一对应匹配。如果类型不匹配,C编译程序按赋值兼容的规则进行转换。
50.D解析:程序设计中,除了设计和编制出一个运行结果正确的程序之外,还应养成良好的程序设计风格。我们编制的程序主要是给别人看的,而且,所编制的程序主要是为以后看的。因此,选项A、B和C的说法都错误。
51.B解析:本题中定义了一个结构体数组data[2]并初始化,主函数中定义了一个结构体类型指针变量并让它指向data的首地址,由于p指向第一个元素的地址,所以p->x相当于data[0].x即为10,所以++(p->x)后的值为11。故4个选项中选项B符合题意。
52.B解析:栈是限定在二端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据的。注意:队列组织数据的原则是“先进先出”或“后进后出”。注意:数据结构中,栈和队列组织数据的原则。
53.AA.【解析】线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。
54.D基本类型的数据可以混合运算,但运算时,对要求运算分量类型相同的运算来说,如运算分量的类型不是全相同,则会有自动类型转换发生。类型自动转换规则规定类型低(简单)的向类型高(复杂)的转换。各类型由高到低的排列顺序是:longdouble、float、unsignedlong、long、unsignedint、int这样,若有定义:chara;intb;floatc;doubled;则表达式a*b+d-c的值的类型是double的。首先计算a*b,得到int类型的值,接着计算a*b+d,得到double类型的值,最后计算a*b+d-c,得到double类型的值。所以解答是D。
55.C
\n题中整型指针变量P存放的是变量C的地址。所以本题答案为C。
\n
56.A解析:(rec4,rec5)是逗号表达式,它的值是rec5的值。所以该函数调用语句含有的实参个数是3。
57.D解析:C语言的自减运算符有前置与后置两种形式。当自减运算符前置时,变量先自减一后再参与表达式运算;而后置时,变量先参与表达式运算后再自身减一。
58.D解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。
59.D解析:在C语言中,逻辑运算符有4个,它们分别是:!(逻辑非)、逻辑或)、&&(逻辑与)、^(异或)。在位运算里面还有&(位与)、|(位或)的运算。本题考查逻辑与运算符的用法,在表达式x=(a&&b)&&(c<'B');中,先判断a&&b条件,逻辑与条件的两边都要保证为1,即a和b都成立,当然c<'B'是成立的,显然,该表达式的值为1。
60.C解析:本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:
012
234
456
由于数组的下标是从0开始的,所以二维数组元素a[i][j]表示的是二维数组a的第i+1行、第j+1列对应位置的元素。
61.B
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.D解析:概要设计是软件系统结构的总体设计,其目的就是要按照需求规格说明书,把软件按照功能划分为多个模块,然后确定每个模块要实现的功能,最后确定模块之间的调用关系。而设计每个模块的伪代码则属于详细设计。所以只有最后一个不属于概要设计范畴。
64.B解析:宏定义是预处理命令,即在C源程序进行编译之前,编译程序对源程序进行编译预处理时所进行的一种替换操作。所以选项C和\u3000D可以排除。宏定义是用宏名代替一个字符串,也就是作简单的置换,不做正确性检查。所以选项A的叙述也不正确,宏替换时100被当作一个字符串来替换宏名的,而不是被看作整数值100。故本题的正确答案为B。
65.D
66.A
67.A
68.A二维数组名是指向指针的指针,所以a和q都为指向指针的指针,而P为指向int类型的指针。所以选项A)是将一个指向int类型的指针用来指向一个指针的指针,显然是错误的。其他几个选项都是正确的赋值,其中选项D)是用&返回整数的地址,然后赋值给P。
69.C题目中给出的程序分为两个部分:主函数main和函数f。在主函数中初始化定义了一个整型数组a,大小为6,并定义了两个数组指针p,q。指针p指向数组第一个元素的地址,指针q指向数组最后一个元素的地址。主函数包含一个while语句,循环条件为p<q,while语句内部先调用了f函数,p、q指针为该函数的实参,随后进行了p++操作和q--,即使p指针指向下一个元素的地址,q指针指向前一个元素的地址。由于是数组存储,必然存在初始时,有p<q,当p>=q时,while语句结束。while语句后面是for语句,该语句的作用是输出数组a[]中所有的数据。
f函数的形参为整型指针,函数的功能是使得输入的指针变量所指向的数据进行交换,由于使用的是指针变量,故在f函数中对指针的操作结果会影响调用函数中(main)实参所指数据的改变,题目中f函数的调用实质是将main函数中的p、q指针所指的数据进行交换,也将导致数组a中相应的数据进行交换。结合while语句,也就是将数组a中的第1个数据与第6个数据进行交换,第2个数据与第5个数据进行交换,以此类推,得到结果10,8,6,4,2,1。
70.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。
71.D栈是具有后进先出(LIFO)性质的线性表,表尾称为栈顶,表头称为栈底。栈的插入和删除操作都是在栈顶执行的,向栈内插入元素的操作称为入栈,从栈内删除元素的操作称为出栈。题目中所给出的栈的初始状态自栈底到栈顶的元素分别为A,B,C,D,E。此时的栈顶元素为E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省南京市2027届高三上学期9月学情调研化学试卷(含答案)
- 2026-2027学年人教版四年级数学上册第六单元条形统计图培优验收综合卷(含答案)
- 2026九年一贯制学校名班主任工作室专题培训课件:班主任的情绪管理与自我调节
- 尖锐湿疣的护理与预防
- 2026新学期小学生心理健康教育课件
- 2026新学期社区居民加强灾害预警守护生命安全课件
- 2025-2026年生物多样性保护与生态保护法律法规模拟试卷
- 2025-2026年计算机网络基础与安全知识巩固习题
- 2026年浙江省部编版初中数学下册第3单元同步练习题
- 2025-2026年江苏省湘教版九年级化学第5课有机化学基础测试题
- 保山电力股份有限公司招聘笔试题库
- 风电场施工材料采购与管理方案
- 医学计算机应用
- 童年第九章题目和答案
- 中风偏瘫中医护理查房
- 供货计划安排方案(3篇)
- 2024年贵州省粮食储备集团有限公司招聘真题
- 航天器轨道课件
- 新12S8室外给水管道附属构筑物标准图集
- 部编高教版2023·职业模块 中职语文 2.《宁夏闽宁镇:昔日干沙滩今日金沙滩》 课件
- 2025届高三化学一轮复习策略讲座
评论
0/150
提交评论