版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年河北省廊坊市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.
2.
3.用树形结构来表示实体之间联系的模型称为()。
A.关系模型B.层次模型C.网状模型D.数据模型
4.有以下定义语句,编译时会出现编译错误的是()。
A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:
5.若有定义“inta=0,b=1,c=1;”,关于逻辑表达式“a++||b++&&c++”中各个部分的执行顺序,以下说法正确的是()。
A.先执行“b++”,再执行“c++”,最后执行“a++”
B.先执行“a++”,再执行“b++”,最后执行“c++”
C.先执行“c++”,再执行“b++”,最后执行“a++”
D.先执行“b++”,再执行“a++”,最后执行“c++”
6.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。
A.20B.0或35C.15D.16
7.有以下程序:
执行后的结果是()。A.7B.3C.2D.0
8.
9.以下程序的输出结果是()。
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i<n;i=i+2)s=s+b[i];
returns;
}
voidmain()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}A.A.10
B.18
C.8
D.15
10.若有定义语句“inta,b;doubleX;”,则下列选项中没有错误的是()。
A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}
C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}
11.图的BFS生成树的树高比DFS生成树的树高()
A.小或相等B.小C.大或相等D.大
12.下列程序的输出结果是()#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf(“%d”,a);}A.19B.18C.6D.8
13.以下不能作为合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
14.以下对结构体类型变量的定义中,不正确的是()。
A.typedefstruetaa{intn;floatm;}AA;AAtdl;
B.#defineAAstructaaAA{intn;floatm;}tdl;
C.struct{intn;floatm;}aa;structaatdl;
D.struct{intn;floatm;}tdl;
15.下面程序的运行结果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
16.以下选项中不能用作C语言程序合法常量的是()。
A.123B.‘\123’C.1,234D.“\x7D”
17.
18.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为()。
A.(rear-front+m)%m
B.rear-front+1
C.(front-rear+m)%m
D.(rear-front)%m
19.若要说明一个类型名STP,使得定义语句STPs;等价于Char*s;,以下选项中正确的是()。
A.typedefChar*s;
B.typedefChar*STP;
C.typedefSTP*Char;
D.typedef*CharSTP;
20.下列叙述错误的是()。
A.函数名是属于用户标识符,需符合C语言对标识符的规定
B.形参只能是变量
C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名
D.函数中定义的变量可以与其他函数中的变量同名
二、2.填空题(20题)21.以下程序的输出结果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
22.有以下说明定义和语句,可用a.day引用结构体成员day,写出引用结构体成员day的其他两种形式【】、【】。
struct{intday;charmouth;intyear;}a,*b;b=&a;
23.设函数findbig已定义为求3个数中的最大值,以下程序将利用函数指针调用findbig函数。请填空。
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】。
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
24.下面程序的功能是:对字符串从小到大进行排序并输出,请填空。
#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]);
}
25.数据的安全性是指保护数据以防止【】用户的使用造成的数据泄密和破坏。
26.当先后输入1、3、4、12、23时,屏幕上出现【】;再输入12时,则屏幕上出现【】。
#include<stdio.h>
#defineN5
main()
{inti,j,number,top,bott,min,loca,a[N],flag;
charc;
printf("Pleaseinput5numbers(a[i]>a[i-1])\n");
scanf("%d",&a[0]);
i=1;
while(i<N)
{scanf("%d",&a[i]);
if(a[i]>=a[i-1))i++;
}
printf("\n");
for(i=0;i<N;i++)printf("%d",a[i]);
printf("\n");
flag=1;
while(flag)
{scanf("%d",&number);
loca=0;
top=0;
bott=N-1;
if((number<a[0])||(number>a[N-1]))loca=-1;
while((loca==0)&&(top<=bott))
{min=(bott+top)/2;
if(number==a[min])
{loca=min;
printf("%disthe%dthnumber\n",number,loca+1);
}
elseif(number<a[min])bott=min-1;
elsetop=min+1;
}
if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);
c=getchar();
if(c=='N'||c=='n')flag=0;
}
}
27.若有以下定义,则使指针p指向值为35的数组元素的语句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
28.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护o
29.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。
30.下列程序的输出结果是______。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0‖x==1)
return3;
else
p=x-fun(x-2);
returnp;
}
voidmain()
{printf("\n%d",fun(11));
}
31.数据流图的类型有【】和事务型。
32.设有以下定义和语句,则*(*(p+2)+1)的值【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
33.fwrite函数的一般调用形式是
34.下列的for语句的循环次数为______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
35.在索引查找或分块查找中,首先查找【】,然后再查找相应的【】,整个索引查找的平均查找长度等于查找索引表的平均查找长度与查找相应子表的平均查找长度之和。
36.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,当s<t时返回负值。请填空。
my_cmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}return【】;
}
37.以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*abc能构成三角形*/
elseprintf("NO\n");/*abc不能构成三角形*/
}
38.类是一个支持集成的抽象数据类型,而对象是类的【】。
39.以下程序的输出结果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
40.一般来说,数据库的设计过程要经历3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【】阶段。
三、1.选择题(20题)41.若有下列定义(设int类型变量占2个字节):floatx=123.4567;则下列语句:printf("x=%5.2f",x);输出的结果是()。
A.x=123.46B.123.4567C.x=123.4567D.123.46
42.以下能正确定义一维数组的选项是
A.inta[5]={0,1,2,3,4,5}
B.chara[]={'0','1','2','3','4','5','\0'};
C.chara={'A','B','C'};
D.inta[5]="0123";
43.在下列关于逻辑表达式a&&b的叙述中,错误的一条是()
A.若a为真、b为真,则a&&b为真
B.若a为真、b为假,则a&&b为假
C.若a为假、b为真,则a&&b为真
D.若a为假、b为真,则a&&b为假
44.C语言中,凡未指定存储类别的局部变量的隐含存储类别是()。
A.自动(auto)B.静态(statiC)C.外部(extern)D.寄存器(register)
45.以下叙述中错误的是()。
A.C语言程序中的#include和#define行均不是C语句
B.除逗号运算符外,赋值运算符的优先级最低
C.C语言程序中,j++;是赋值语句
D.C语言程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
46.一个良好的算法由下面的基本结构组成,但不包括______。
A.顺序结构B.选择结构C.循环结构D.跳转结构
47.在C语言中,运算对象必须是整型数的运算符是()。
A.%B.\C.%和\D.**
48.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A.63B.64C.6D.7
49.下面程序的输出结果是______。main(){unsigneda=32768;printf("a=%d\n",a);}
A.a=32768B.a=32767C.a=-32767D.a=-1
50.执行以下程序后,test.txt文件的内容是(若文件能正常打开)()。#include<stdio.h>#include<stdlib.h>main(){FILE*fp;char*s1="Fortran",*s2="Basic";if((fp=fopen("test.txt","wb"))==NULL){prinff("Can'topentest.txtfile\n");exit(1);}fwrite(s1,7,1,fp);/*把从地址s1开始到7个字符写到fp所指文件中*/fseek(fp,OL,SEEK_SET);/*文件位置指针移到文件开头*/fwrite(s2,5,1,fp);felose(fp);}
A.BasieanB.BasieFortranC.BasicD.FortranBasie
51.有以下程序:#include<stdio.h>main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(pa+4)=0;puts(s);}程序运行后的输出结果是()。
A.n/NoYes/NoB./NoYesC./NOYes/NoD.n/NoYes
52.以下合法的十六进制数是()。
A.0xB.0x4deC.0x1hD.oX77
53.下列关于线性链表的描述中正确的是()。
A.存储空间不一定连续,且各元素的存储顺序是任意的
B.存储空间不一定连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且各前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
54.下列叙述中,正确的是
A.线性表是线性结构B.栈和队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构
55.下面的关键字中,不能够从循环体中跳到循环体外的是______。
A.gotoB.breakC.returnD.continue
56.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
57.
对两个数组a和b进行下列初始化:
charm[]="1234567";
charn[]={1,2,3,4,5,6,7};
则下列叙述正确的是()。
A.数组m与数组n完全相同B.数组m与数组n长度相同C.数组m比数组n长1D.数组m与数组n中都存放字符串
58.下列叙述中错误的是()。
A.在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统
B.在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关
C.在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关
D.在数据库设计的过程中,物理结构设计依赖于具体的计算机系统
59.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}该程序的输出结果是
A.69825B.63825C.6385D.693825
60.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。
A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2
四、选择题(20题)61.下列是用户自定义标识符的是
A._w1B.3_xyC.intD.LINE-3
62.
63.
64.在Internet中,域名服务器的主要功能是实现()的转换。
A.IP地址到域名(主机名字)B.域名到IP地址C.主机IP地址和路由器IP地址之间D.路由器IP地址之问
65.有以下程序:
程序运行后的输出结果是()。
A..3,2,1,B.1,2,3,4,5,6,C.1,1,1,1,1,lD.6,6,6,6,6,6,
66.有三个关系R、S和t如下:由关系R和s通过运算得到关系T,则所使用的运算为()。
A.笛卡儿积B.交C.并D.自然连接
67.若有以下的定义:‘intt[3][2];”,能正确表示t数组元素地址的表达式是()。
A.&t[3][2]B.t[3]C.t[l]D.t[2][2]
68.以下函数返回a所指数组中最小的值所在的下标值:fun(int*a,intn){inti,j=0,P;p=j;for(i=j;i<n;i++)if(a[i]<a[j])____return(p);}在下划线处应填入的是()。A.i=PB.a[p]=a[i]C.p=jD.p=i
69.
70.
71.计算机能直接执行的程序是()。
A.源程序B.目标程序C.汇编程序D.可执行程序
72.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则下列不能正确执行的语句是_______。
A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);
73.
74.以下程序的功能是计算:s=1+12+123+1234+12345
A.tB.t*10C.t*100D.t+10
75.当用“#defineF37.5f”定义后,下列叙述正确的是()。
A.F是float型数B.F是Char型数C.F无类型D.F是字符串
76.
77.设有定义:“char*c;”,以下选项中能够使字符型指针c正确指向一个字符串的()。
A.charstr[]="string";c=str;
B.scanf(%s,c):
C.c=getchar();
D.*c="strin9";
78.以下关于C语言的叙述中正确的是()。
A.C语言中的注释不可以夹在变量名或关键字的中间
B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D.C语言的数值常量中夹带空格不影响常量值的正确表示
79.以下选项中,能用作用户标识符的是()。
A.-0-B.8-;8C.voidD.unsigned
80.算法的空间复杂度是指()。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行算法需要的内存空间
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头2个元素进行排序,然后把第3个字符插入到前2个字符中,插入后前3个字符依然有序;再把第4个字符插人到前3个字符中,待排序的字符串已在主函数中赋予。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写函数proc,其功能是:将str所指字符串中除下标为偶数、同时ASCIl码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为ABCDEFGl2345,其中字符B的ASCIl码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCIl码值为奇数,所在数组中的下标为偶数,因此不应当删除。依此类推,最后t所指的数组中的内容应是ACEG。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidproc(char*str,chart[])
{
}
voidmain
{
charstr[100],t[100];
system("CLS");
printf("\nPleaseenterstringstr:");
scanf("%S",str);
proc(str,t);
printf("\nTheresultiS:%s\n",t);
参考答案
1.A
2.A
3.B解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有3种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是B。
4.DD选项中将字符串常量…aa赋给字符变量a是错误的。
5.BC语言中运算符有优先级和结合性。自增、自减运算符的优先级高于逻辑运算符,逻辑运算符中逻辑与“&&”的优先级比逻辑或“||”高,逻辑运算符的结合性自左向右。所以题干中表达式等价于“(a++)||((b++)&&(c++))”。运算顺序为:首先执行“a++”,再执行“b++”,最后执行“C++”。故本题答案为B选项。
6.BQ(1:35)则队列的存储空间为35;对空条件:front=rear(初始化时:front=rear),队满时:(rear+1)%n==front,n为队列长度(所用数组大小),因此当执行一系列的出队与入队操作,front=rear.则队列要么为空,要么为满。
7.C调用函数fun(7)时,由于x的值为7,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(5);
调用函数fun(5)时,由于x的值为5,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(3);调用函数fun(3)时,由于X的值为3,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(1);调用函数fun(1)时,由于x的值为1,执行语句“return(3);”,函数的返回值为3。
因此函数调用fun(7)等价于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函数fun(7)的返回值为2。
8.D
9.A函数的功能是对数组某一区域内的元素隔个求和;a[3]=4,所以从4开始进行隔个求和,a[7]=8,即对4到8的元素隔个求和,4+6=10。
10.CC语言中,switch语句中的表达式和case表达式都不能是浮点类型。所以选C。
11.A
12.A本题考查switch语句。当i=1时,执行case1,因为没有遇到break语句,所以依次往下运行,a=a+2=2,a=a+3=5;当i=2时,执行case2,因为没有遇到break语句,所以依次往下运行,a=a+2=7,a=a+3=10;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a=a+2=13,a=a+3=16;当i=4时,执行default,a=a+3=19,结束循环。
13.A字符常量是使用单引号标注的单个字符,选项A错误;选项B属于浮点数常量,正确;选项C属于转义字符常量,正确;选项D属于转义字符,代表八进制数011的ASCII值的字符,正确。本题答案为A选项。
14.C解析:定义结构体类型的变量有如下几种方法:
①定义结构体类型的同时,定义结构体类型的变量,如:
stractaa
{…}tdl;
选项B)中将宏名AA用宏体structaa替换后,与该定义形式一样,因此是正确的。在这一定义形式中,结构体类型名aa是可以省略的,因此,D)项也是正确的。
②先定义结构体类型,然后再定义结构体类型的变量,形式如下:
structaa
{…};
strnctaatdl;
这种定义形式也可演变为:先用类型定义语句typedef将该结构体类型定义成一个类型名AA,然后直接用该类型名AA定义一个结构体变量(这时不再需要使用关键字struct)。因此选项A)正确。
15.D解析:本题考查“++”和“--”运算符,运算符“++”是操作数加1,而“--”则是操作数减1。在do-while循环中,首先执行y--,再执行--y。当y=2时,执行y--,y的值变为1,--y使y值变为0,循环结束。执行输出时,先输出y的值0,然后执行y--,使y的值变为-1。
16.CC选项中不能含有逗号,所以“1,234”不能用作C语言程序的合法常量。B选项表示的是八进制的常量,D选项表示的是十六进制的常量。故本题答案为C选项。
17.B
18.A
19.B用关键字typedef声明一种新的类型的形式为typedef类型名标识符。本题中的类型为char*。
20.C解析:本题考查函数调用时参数的作用域。在函数调用时,函数体内定义的变量的作用域连函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。
21.852852解析:循环前,变量y的值为9,其中的循环语句在y大于0情况下循环,每次循环后y的值减1。循环体是当y能被3整除时输出表达式--y,输出的是减1后的y值。这样,第一次循环因y为9,能被3整除,输出8,y也变成8。又经两次循环,y的值变为6,又让y减1变成5,并输出5;又经两次循环,y的值变成3,让y减1变成2,输出2;再经两次循环后,y的值变成0,结束循环。所以程序输出852。
22.(*B).dat.b->day
23.findbigfindbig解析:f是指向函数的指针变量,根据题意要求,空格处应填入findbig。
本题目考查:C语言中指向函数的指针变量定义的一般形式为;
数据类型标识符(*指针变量名)();
“数据类型标识符”表示函数返回值的类型。
函数的调用可以通过函数名调用,也可以通过函数指针调用。在给函数指针变量赋值时,只需给出函数名而不必给出参数。(*p)()表示定义一个指向函数的指针变量,专门用来存放函数的入口地址,可以先后指向不同的指针变量。用函数指针调用函数时,只需要将(*p)代替函数名即可,在(*p)之后的括号中,根据需要写上参数。
24.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所指向的字符串的个数)。
25.(非法)不合法(非法)不合法
26.134122312isthe4thnumber.
27.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接将数组元素a[4]的地址(即&a[4])赋给指针变量p,也可以用数组名加偏移量的形式(即a+4)表示数组元素a[4]的地址,并赋给指针变量p。
28.完善性完善性解析:软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
29.log2n
30.44解析:本题考查函数的递归调用.在主函数中第1次调用于函数是调用的fun(11),返回11-fun(9);第2次调用于函数是调用的fun(9),返回9-fun(7);第3次调用于函数是调用的fun(7),返回7-fun(5):第4次调用子函数是调用的fun(5),返回5-fun(3):第5次调用于函数是调用的fun(3),返回3-fun(1):第6次调用于函数是调用的fun(1),返回3。总的返回值是:11-(9-(7-(5-(3-3))))=4.
31.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
32.6060解析:*(*(p+2)+1)相当于访问的是a[2][1]的值。*(p[2]+1)、p[2][1]以及(*(p+2))[1]表达的含义都是a[2][1]的值。
33.D
34.66解析:分析程序可知,每循环一次,x的值加1,然后检测循环控制条件(y!=19)&&(x<7),因y的值不变,故满足x<7时循环6次。
35.索引表块索引表\r\n块
36.*s-*t*s-*t解析:两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回0值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回。所以在空框处应填入*s-*t,保证在e>t时返回正值,当s<t时返回负值。
37.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的条件是两边之和大于第三边。要用'&&'指令连接三个条件,表示三个条件都要满足。
38.实例将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。
39.00解析:对于一个unsignedshort来说,它能取的最大值是65535。这里给a赋值65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它(全零)。所以a的值实际为0。
40.系统设计系统设计解析:系统设计阶段是系统的具体设计过程,主要包括概念设计、逻辑结构设计、物理结构设计3个步骤。这3个不同层次上的设计过程,是把实体以及相互之间的联系转换为“数据”并落实于计算机中。
41.A解析:本题考查printf函数的格式。“%5.2f”格式符中的“f”表示以带小数点的形式输出单精度或者双精度数:“5”表示指定数据输出宽度为5;“.2”表示指定输出数据小数位占2位数,并对截去的第一位小数做四舍五入处理。
42.B解析:选项A)中,定义的初值个数大于数组的长度;选项C)中,数组名后少了中括号;选项D)中,整型数组不能赋予字符串。
43.C
44.A
45.D解析:在C程序中,以#开头的行都称为“编译预处理”行,它不是C语言本身的组成成分,不能对它们进行直接编译;在运算符优先级表中,逗号运算符的优先级最低,赋值运算符其次;自加运算表达式j++等价于赋值语句j=j+1;求余运算符%仅用于整型变量。故选项D错误。
46.D解析:1966年,Bohra和Jacopini提出了以下三种结构,用这三咱基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。
47.A解析:在C语言中,“%”运算符两侧的运算数必须是整型。
48.B解析:在长度为64的有序线性表中,其中的64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功,否则,继续进行比较。依次类推,直到性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为64的有序线性表十进行顺序查找,最坏的情况下需要比较64次。因此,本题的正确答案为选项B。
49.C
50.A解析:程序以“只写”方式打开一个名为test.txt的文件,并向该文件写入指针变量s1指向的7个字符'Fortran',执行fseek函数,使文件位置指针移到文件的开头,再次向文件输入指针变量s2指向的5个字符'Basic'这时系统会覆盖原有的内容'Fortr',所以最后test.txt里的内容为:Basican。
51.B用puts函数输出的字符串中可以包含转义字符,遇到转义字符,自动跳过去。例如本题中ps+4指的是'/'的地址,并不是'\\n'的地址,所以puts(ps+4)输出的是/NO。C规定以字符'\\0',作为字符串结束标志,以便系统据此判断字符串是否结束。本题执行*(Ps+4)=0之后,再执行puts(s),就相当于输出字符串Yes后遇到结束标志。
52.B解析:考查十六进制数的表示方法。十六进制数以0x开头,后面跟着若干位1f的数,所以正确答案为B)。整形常量、实型常量和字符型常量的合法性判断。
53.A解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。
54.A解析:所谓的线性结构是指:如果一个非空的数据结构满足下列两个条件:
1)有且只有一个根结点;
2)每一个结点最多有一个前件,也最多有一个后件。所以同时满足两个条件的有队列、线性表、栈,而二叉树的结点可能存在两个后件,不是线性结构。
55.B解析:在C语言中,可以用break语句和continue语句跳出本层循环和结束本次循环。goto语句可跳出多层循环,如果在函数的循环体内使用return语句,就会直接结束循环返回函数值。
56.A解析:本题考核的知识点是函数声明的应用。函数声明是对所用到的函数的特征进行必要的声明,编译系统以函数声明中给出的信息为依据,对调用表达式进行检测,以保证调用表达式与函数之间的参数正确传递。函数声明的一般格式为:
类型标识符函数名(类型标识符形参…);
这些信息就是函数定义中的第一行的内容。这里形参的名字是不重要的,重要的是类型标识符,函数声明中也可以不写形参名只写该形参的声明类型,但不能只写形参名而不写该形参的类型。本题中,选项A中doublemyadd(doublea,b),没写出形参b的类型,故选项A不正确。所以,4个选项中选项A符合题意。
57.C解析:本题考查字符数组和字符串赋值给数组的一些区别。语句“charm[]='1234567';”定义了一个字符型数组并进行了初始化,C语言规定,在字符串的末尾自动加上串结束标记\'\\0\',因此数组m的长度是8;而数组n是按照字符方式对数组进行初始化,系统不会自动加上串结束标记\'\\0\',因此数组n的长度是7。
58.B解析:数据库设计主要分4个步骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计。选项B错误,应为本题的正确答案,因为概念结构设计在需求分析的基础上对客观世界做抽象,独立于数据库的逻辑结构,也独立于具体的数据库管理系统,与具体的数据库管理系统无关。
59.C解析:该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char.p[2]后,程序中第一个循环for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p11)元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的内容为字符串'8254'。③程序中第二个循环中的循环体s=e*10+p[i][j]-‘0’;的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前p[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串结束标志,\\0,就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串'6937'中一个隔一个地取出字符,分别是‘6’和‘3’,然后从p[1]所指向的字符串'8254'中一个隔一个地取出字符,分别是‘8’和‘5’,同时经过转换和相加运算后,结果s中的值应该是6385,所以,正确答案是C)。
60.DD。【解析】本题主要考查对排序算法的理解。冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第n-1个与第n个记录的关键字进行比较。第一趟冒泡排序使最大的关键字元素放到最后。以此类推,进行第2~n次冒泡排序。如果在排序过程中不存在逆序,则排序结束。在最坏情况下,冒泡排序中,若初始序列为“逆序”序列,则需要比较n(D-1)/2次。快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。对于快速排序,当初始记录序列按关键字有序或基本有序时,快速排序退化为冒泡排序,最坏情况下比较次数为n(n-1)/2。
61.A本题主要考查标识符的定义。对标识符的定义是考试中常考的内容之一。标识符主要由数字、下画线和字母组成,其中数字不能放在首位,另外,用户自定义标识符时,不能将标识符定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中山职业技术学院《高级综合商务英语(1)》2026-2027学年第一学期期末试卷含解析
- 桐城师范高等专科学校《国际结算》2026-2027学年第一学期期末试卷含解析
- 浙江交通职业技术学院《医学与人文》2026-2027学年第一学期期末试卷含解析
- 郑州城市职业学院《大型数据库应用技术》2026-2027学年第一学期期末试卷含解析
- 四川城市职业学院《Linux应用技术课程设计专业》2026-2027学年第一学期期末试卷含解析
- 重庆安全技术职业学院《婴幼儿社会性发展与教育》2026-2027学年第一学期期末试卷含解析
- 长治职业技术学院《家畜环境卫生与牧场设计实训》2026-2027学年第一学期期末试卷含解析
- 2026年农业节水灌溉设备校准案例分享
- 2026年电驱系统电机温度场仿真分析
- 2026印务相关面试题及答案
- 2025年城市规划师《城市规划实务》练习题(含答案)
- 2026年北师大版八年级数学下册期末考试卷附答案
- 2026年公需课《人工智能赋能制造业高质量发展》试题及答案
- 时空穿越的启蒙之作:《时间机器》文学与科幻价值探索
- 2026年现代交换技术能力检测试卷带答案详解(突破训练)
- 2025华润电力投资有限公司新疆分公司招聘笔试历年常考点试题专练附带答案详解
- 老年共病患者肾功能不全的用药调整
- 湖北省孝感地生中考试卷及答案
- 2025江苏省苏豪控股集团招聘笔试考试参考试题及答案解析
- 精神科出科考试试题及答案
- 个人职级晋升申请书
评论
0/150
提交评论