版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年安徽省宣城市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.数据结构通常是研究数据的及它们之间的联系______。A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑
2.软件设计中划分模块的一个准则是()。A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合
3.
4.
5.以下关于结构化程序设计的叙述中正确的是()。
A.结构化程序使用goto语句会很便捷
B.在c语言中,程序的模块化是利用函数实现的
C.一个结构化程序必须同时由顺序、分支、循环三种结构组成
D.由三种基本结构构成的程序只能解决小规模的问题
6.以下正确的叙述是()。
A.在C程序中,每行中只能写一条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C.在C程序中,无论是整数还是实数,都能被准确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
7.选出任何情况下都不引起二义性的宏定义()。
A.#definePOWER(x)x*x
B.#definePOWER(x)((x)*(x))
C.#definePOWER(x)(x*x)
D.#definePOWER(x)(x)*(x)
8.
9.若有说明:int*p,m=5,n;以下正确的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
10.第
11
题
若有定义:char*st="howareyou";下列程序段中正确的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
11.
12.以下程序的运行结果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}
A.6B.8C.10D.12
13.C语言中,组成数据文件的成分是()。A.A.记录
B.数据行
C.数据块
D.字符(字节)序列
14.请阅读以下程序:#include<stdio.h>voidfun(ints[]){staticintj=0;dos[j]+=s[j+1];while(++j<2);}main(){intk,a[10]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}上面程序的输出是
A.34756B.23445C.35745D.12345
15.参加百年阿里培训的n位同学结伴去西湖旁边为游人指路,两人一组,他们打算先让体重之和恰好为102公斤的同学一组,请给出一个算法找到这样的组合,或者确定他们中不存在这样的组合,其中最优的算法时间复杂度为?(假设体重均为整数)()
A.O(log(n))B.O(n)C.O(nlog(n))D.O(n^2)
16.
17.以下叙述中错误的是()。
A.可以通过typedef增加新的类型
B.可以typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
18.以下编码方法中,()属于熵编码。
A.哈夫曼编码B.小波变换编码C.线性预测编码D.形成编码
19.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。A.单链表B.静态链表C.线性链表D.顺序存储结构
20.下列条件语句中,输出结果与其他语句不同的是()。
A.if(a!=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);
C.if(a==0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
D.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);
二、2.填空题(20题)21.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”语句的输出结果是()。
22.若a是int型变量,则表达式(a=2*3,a*2),a+4的值为______。
23.有以下程序:
#include<stdio.h>
voidf(inty,int*x)
{y=y+*x;*x=*x+y;}
main()
{intx=2,y=4;
f(y,&x);
printf("%d%d\n",x,Y);
}
执行后的输出结果【】。
24.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。
25.以下程序的输出结果是()。#definePR(ar)printf("ar=%d”,ar)main(){intj,a[]={1,8,3,7,6,13,17,15},*p=a+5;for(j=3;j;j--)switch(j){case1:case2:PR(*p++);break;case3:PR(*(--p));}}
26.注释说明了程序的功能,它分为【】注释和功能性注释。
27.下列语句的输出结果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
28.若有下列定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,则值为3的表达式为:______。
29.以下程序段的输出结果是【】。
inta=1234;
printf("%2d\n",a);
30.买来一张新盘后,在存入文件前,必须进行【】处理。
31.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,______给出了数据库物理存储结构与物理存取方法。
32.以下程序运行后的输出结果是【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
char*p,t;
p=s+1:t=*s:
whilet*p){*(,p-1)=*p;p++;}
*(p-1)=t;
returns:}
main()
{char*p,str[10]="abedefgh";
p=ss(str);printf("%s\n".p):}
33.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。可行性研究阶段采用的是【】。
34.假定变量x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式【】。
35.以下程序的运行结果是______。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
pfintf("\n",);}
36.下列循环的循环次数是______。
ihtk=2;
while(k=0)
printf("%d",k);
k--;
printf("\n");
37.一个模块直接调用的其他模块的模块个数称为______。
38.下列程序的运行结果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
39.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
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");
}
40.funl函数的调用语句为:fun1(&a,&b,&c);它将3个整数按由大到小的顺序调整后依次放入a、b、c这3个变量中,a中放最大数。
voidfun2(int*x,int*y)
{intt;
t=*x;*X=*y;*y=t;
}
voidfunl(int*pa,int*pb,int*pc)
{if(*pc>*pb)fun2(【】);
if(*pa<*pc)fun2(【】);
if(*pa<*pb)fun2(【】);
}
三、1.选择题(20题)41.以下程序的功能是:建立一个带有头结点的甲—向链表,并将存储在数组中的字符依次转存到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。
#include<stdlib.h>
structnode
{chardata;structnode*next:};
(1)CreatList(char*s)
{
structnode*h,*p,*q;
h=(structnode*)mallocsizeof(structnode));
p=q=h;
while(*s!='\0')
{
p=(structnode*)malloc(sizeof(structnode));
p->data=(2);
q->next=p;
q-(3);
S++;
}
p->next='\0';
returnh;
}
main()
{
charstr[]="linklist";
structnode*head;
head=CreatList(str);
}
(1)
A.char*B.structnodeC.structnode*D.char
42.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
43.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
44.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送()。A.调用语句B.命令C.口令D.消息
45.下列选项中不能正确定义结构体的是_______。
A.typedefstruct
B.structcolorcl{intred;{intred;intgreen;intgreen;intblue;intblue;}COLOR;};COLORcl;
C.structcolor
D.struct{intred;{intred;intgreen;intgreen;intblue;intblue;}cl;}cl;
46.执行下面的程序段intx=40;charz='B';intB;B=((x&0xff)&&(z>'a'));后,B的值为()
A.0B.1C.2D.3
47.以下4个选项中,不能被看作是一条语句的是______。
A.{;}B.a=0,b=0,c=0;C.if(a>O);D.if(b==0)m=1;n=2;
48.下列对于软件测试的描述中正确的是()。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
49.请选出以下程序的输出结果______。#include<stdio.h>sub(x,y,z)intx,y*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}
A.5,23B.-5,-12,7C.-5,-12,-17D.5,2,-7
50.函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后
C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后
D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中
51.下列数据结构中,能用二分法进行查找的是()
A.无序线性表B.线性链表C.二叉链表D.顺序存储的有序表
52.关于线性表的描述,错误的一条是______。
A.线性表是线性结构
B.线性表就是单链表
C.线性表的顺序存储结构,必须占用一片连续的存储单元
D.线性表的链式存储结构,不必占用连续的存储单元
53.以下叙述中错误的是______。A.用户所定义的标识符允许使用关键字
B.用户所定义的标识符应尽量做到“见名知意”
C.用户所定义的标识符必须以字母或下划线开头
D.用户定义的标识符中,大、小写字母代表不同标识
54.设有定义语句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是()。
A.for(i=0;i<6;i++)printf("%2d",*(p++));
B.for(i=0;i<6;i++)printf("%2d",*(p+i));
C.for(i=0;i<6;i++)printf("%2d",*p++);
D.for(i=0;i<6;i++)printf("%2d",(*p)++);
55.下列叙述中正确的是A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构
56.下列函数的运行结果是
main()
{inti=2,p;
intj,k;
j=i;k=++i;p=f(j,k);
printf("%d",p);}
intf(inta,intb)
{intc;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-1;
return(c);}
A.-1B.1C.2D.编译出错,无法运行
57.详细设计主要确定每个模块具体执行过程,也称过程设计,下列不属于过程设计工具的是()
A.DFD图B.PAD图C.N-S图D.PDL
58.以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是()。
A.feof(fp)B.tell(fp)C.fgetc(fp)D.rewind(fp)
59.若要用下面的程序片段使指针变量p指向一个存储字符型变量的动态存储单元,则应填入;char*p;p=()malloc(sizeof(char));
A.charB.char*C.(*char)D.(char*)
60.下面程序的输出结果是______。#include<string.h>main(){char*p1="abc",*p2="ABC",s[20]="xyz";strcpy(s+1,p2);strcat(s+2,p1);printf("%s\n",s);}
A.xABCabcB.zABCabcC.yzabcABCD.xyzABCabc
四、选择题(20题)61.
62.下列叙述中正确的是()。
A.循环链表是非线性结构
B.双向链表是非线性结构
C.只有一个根结点的数据结构不一定是线性结构
D.有一个以上根结点的数据结构不一定是非线性结构
63.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.数据的逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
64.
65.
66.有以下程序:
程序运行后的输出结果是()。A.235B.0235C.02356D.2356
67.若有以下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为6的表达式是_______。
A.*p+6B.*(p+6)C.*p+=5D.p+5
68.若变量已正确定义并赋值,以下符合C语言语法的表达式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a:a+7:c+b
69.有以下程序:
程序运行后的输出结果是()。
A.6B.3C.8D.12
70.对两个数组a和b进行下列初始化:
charm[]1="l234567":
charn[]={'1','2','3','4','5','6','7');
则下列叙述正确的是()。A.A.数组m与数组n完全相同
B.数组m与数组n长度相同
C.数组m比数组n长1
D.数组m与数组n中都存放字符串
71.以下选项中不属于字符常量的是()。
A.
B.
C.
D.
72.
73.
74.有以下程序:
程序运行后的输出结果是()。.
A.3,3B.1,1C.2,3D.1,2
75.
有以下程序
#include<stdio.h>
main
{inta=1,b=2,c=3,x;
x=(a^b)&C;printf("%d",x);
}
程序的运行结果是()。
A.0B.1C.2D.3
76.下列选项中不符合良好程序设计风格的是()。
A.数据说明的次序要规范化
B.程序中要有必要的注释
C.对所有输入的数据都要进行检查,确保数据的合法性
D.程序的效率第一,清晰第二
77.
设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:
if(a<b)
if(c==d)y=0;
elsey=1;
该语句所表示的含义是()。
A.y=0,a<b且c=dy=1,a≥b
B.y=0,a<b且c=dy=1,a≥b且c≠d
C.y=0,a<b且c=dy=1,a<b且c≠d
D.y=0,a<b且c=dy=1,c≠d
78.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序运行的结果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
79.
80.以下叙述中错误的是()。A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedd可以为各种类型起别名,但不能为变量起别名
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从字符串str中,删除所有小写字母c。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写一个函数proc(),它的功能是:求出一个4×N整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A
2.B一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
3.D
4.D
5.B滥用90t0语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。—个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。
6.D
7.B解析:引起带参数宏的二义性主要有两个方面:一是,参数之间因运算符优先级不确定而带来的二义性。例如本题的选项A),若程序中使用POWER(a+b),会展开为a+b*a+b,这样就会先计算b*a的值,然后再加一个a和一个b,产生二义性。杜绝这种二义性的方法是在宏定义的每个参数外加上圆括号以保证总是先计算每个参数的值,就好像本题的选项D)那样。另一个是,整个宏所代表的表达式因运算符优先级不确定而带来的二义性。例如本题的选项D),若程序中使用a/POWER(b),会展开为a/(b)*(b),这样就会先计算a/b的值,然后再乘以b,产生二义性。杜绝这种二义性的方法是对整个宏定义加一个圆括号,就好像本题的选项B)那样。故选项B)在任何情况下都不会引起二义性,应该选B。
8.A
9.D解析:“&”是求址运算符,“*”是指变量说明符。选项A)、B)应改为scanf('%d',p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。
10.A本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:str1='China',如果想把“China”这5个字符放到数组str1中,除了逐个输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给str1):str1=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
strcpy函数的结构是:strcpy(字符数组1,字符串2)
其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(str1),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
11.A
12.A解析:结构体变量的长度是其内部成员总长度之和,在本题中,structdate中包含year,month,day三个整型变量。通常一个整型变量占2个字节,因此,用sizeof求得该结构体变量的长度为6个字节。
13.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。
14.C解析:本题考查了通过数组首地址引用数组元素的方法。第一次执行fun(a)后,a[0]=3,a[1]=5。第二次执行fun(a)时,因为static变量j保存着上次执行时的值为2,所以a[2]=7,最后数组a={3,5,7,4,5},所以正确答案为C)。
15.B
16.C
17.A关键字typedet的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A)错误。
18.A
19.B
20.CA、B、D选项的含义均为:a的值如果为0,输出y的值,否则输出x的值。而C选项的含义是:a的值为0时输出x的值,不为0时输出y的值,与其他选项正好相反。故本题答案为C选项。
21.66解析:strlen()函数的作用是计算字符串的长度并作为函数的返回值,这里的长度不包括串尾的结束标志\'\\0\'。\'\\t\'是转义字符,代表横向跳若干格;\'\\'\'是转义字符,代表双引号:\'\\023\'也只代表一个字符,而不管转义字符后面有几个符;\'\\xAB\'是以两位十六进制数AB表示的ASCII码字符,只代表一个字符;\'\\n\'是转义字符,代表回车换行。题中语句中的字符串有5个字符常量各代表一个字符,再加上字母C,所以返回的长度是6。
22.此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a+4。前面已经给a赋值6,所以返回值a+4=6+4=10。
23.8484解析:f函数中变量x传的是变量的地址,而变量y是传的值,调用函数f后,虽然f函数中的。x变为8,y值也变了,但main函数中的y未变,仍然为4。
24.完整性控制完整性控制
25.ar=6ar=6ar=13ar=6ar=6ar=13解析:通过*p=a+5将指针P指向a[5],第1次循环,i=3时,switch(3),执行case3,*(-p)-a[4]=6,所以输出ar=6;第2次循环,j=2时,switch(2),执行case2,(*p++)是先引用a[4]的值6,输出ar=6,再将指针P移位指向a[5];第3次循环,j=1时,switch(1),执行case1,case1后没有break语句,接着执行case2,(*p++)是先引用a[5]的值13,输出ar=13,再将指针P移位指向a[6]。
26.序言性序言性解析:注释一般分为序言性注释和功能性注释。
27.aaaaAAAAAaaaaAAAAA解析:函数strcat(sp,'AAAAA')的作用是将字符中“AAAAA”连接到字符串sp的末尾,并自动覆盖字符数组sp末尾的\'\\0\'。
28.p+=2*(p++)p+=2,*(p++)解析:由题可知a[2]=3,因此只要使指针p指向a[3],然后再引用指针的值就可以了。
29.12341234解析:在%与格式符之间插入一个整型数来指定输出宽度,当指定宽度小于输出数的实际宽度时,则按实际宽度输出。
30.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
31.内模式内模式解析:内模式又称为物理模式,它给出?数据库物理存储结构与物理存取方法。
32.bedefghabedefgha解析:函数9,的作用是将指针变量。指向的字符串的首字符移到最后一个位置,其他字符依次前移。其方法是:首先将指针变量p指向字符串s的第2个字符b,然后将首字符保存在字符变量t中;从字符串的第2个字符开始,通过语句*(P-1)=*p;依次前移,直到字符串结束符;最后通过语句*(P-1)=t;将保存在t中的字符放到移动后的字符串末尾,返回main函数并输出,输出结果为bedefsh。
33.结构化分析方法结构化分析方法解析:结构化分析方法主要用于系统分析阶段;结构化设计方法主要用于系统设计阶段;结构化程序设计方法主要用于编码阶段。可行性研究属于系统分析阶段,因此,可行性研究阶段采用的是结构化分析方法。
34.x==0
35.本题主要考查for循环语句的使用以及静态局部变量的特点。
36.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。
37.扇出扇出解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。
38.22132,2,1,3解析:本题考查++,--运算符和条件运算符的使用。
“表达式1?表达式2:表达式3”的功能是:表达式1的值若非0,则计算表达式2的值,且表达式2的值为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。
本题中,x=1,y=2时,x<y成立,输出y的值2;y=2,z=3时,z<y不成立,执行y++,输出2后y值增1,所以最后一个输出x的值不变为1,y的值为增加后的3。
39.!=returnj!=,returnj解析:本题程序的流程是:让i,j都从1开始,其中j用于控制删除后剩下的数中的下标,i用于搜索原数组中的元素。j始终是新数组已有元素中最后一个元素的下一个元素的下标,所以if()中的条件是a[j-1]!=a[i],其中a[j-1]就是新数组中的最后一个元素,若条件成立则表示出现了不同的值,所以a[i]要留到新数组中。注本题中i、j的初值都要从1开始,该算法只能用于数组已排序的题目中。
40.pcpb或pbpcpcpa或papcpbpa或papbpc,pb或pb,pc\r\npc,pa或pa,pc\r\npb,pa或pa,pb
41.C
42.A解析:主函数中首先定义了4个字符变量a、b、cd,然后通过scanf()函数输入a、b、c、d输入中a和b是按字符格式c输入的,c和d是按整型符号d输入的。在看下面的printf()函数中,要求a、b、c、d都按字符输出,故a和b原样输出为6、5,c和d将把与其ASCII码对应的字符输出,65和66的ASCII码对应字符A和B,故最后的输出为6,5,A,B。所以,4个选项中选项A符合愿意。
43.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
44.D解析:面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。
45.B解析:将一个变量定义为标准类型与定义为结构体类型不同之处在于:后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例如,structcolor),不能只指定结构体名。其中可以不出现结构体名,答案D就是缺省结构体名的隋况。而变量名歹婊必须放在成员列表后面,所以B答案不能正确将cl定义为结构件变量。
46.A
47.D解析:选项D中有两条语句。
48.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。
49.B解析:sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&a),10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随*z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化其值为-5-7=-12,在sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。
50.C解析:strcat(s1,s2)是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制给s1字符串,要保证s1能容纳下连接或复制后的字符串。
51.DD)【解析】二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。
52.A解析:线性表是一种最简单,最常用的数据结构。线性表操作的实现依赖于线性表中数据元素及元素之间的关系在存储器中如何存储。采用顺序存储方式存储的线性表称为顺序表,用链式存储方式存储的线性表称为线性链表,用散列方法存储的线性表称为散列表。
53.A解析:C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。大写字母和小写字母被认为是两个不同的字符,用户在定义标识符时应尽量做到“见名知意”,且不允许使用关键字作标识符。
54.D解析:*p=x的作用是将x的首地址赋给指针变量p。选项A)正确,*(P++)中括号内的++是在P的后面,所以它先取*P的值x[0],再执行p++;选项B)正确,p+i表示x[i]的地址,*(p+i)表示x[i]的值;选项C)中的*和++处于同一优先级别,而结合方向为自右而左,因此*p++相当于*(p++),与选项A)相同;选项D)中的(*p)++是使*p的值+1,即x[0]的值加1,它不能实现指针的移动,每次循环只是x[0]的值在改变,而P的值并没有改变,所以不能实现6个元素的输出。
55.A根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:1,有且只有一根节结点,2,每一个结点最多有一个前件,也最多有一个后件,则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
56.A解析:函数调用相当于f(2,3),程序运算应得结果为'-1'。
57.AA)【解析】DFD图(数据流图)是以图形的方式描述数据在系统中流动和处理的过私,只反映系统必须完成的逻辑功能,它是需求分析阶段的图形工具。盒式图(N—S图)、问题分析图
\n(PAD图)和PDL(伪码)是详细设计的常用工具。
58.D解析:本题的考点是C语言的文件操作。函数fseek(fp,0L,SEEK_SET)的作用是,将文件指针fp移到相对于文件开始处(SEEK_SET)位移为0L的地方,也就是文件的开头。选项A的feof(fp)是判断是否读到了文件尾,作用与函数fseek不符。选项B的ftell(fp)是告知文件指针的当前位置,作用与函数fseek也不符。选项C的fgetc(fp)是从文件指针fp中读入一个字符,作用与函数fseek也不符。选项D的rewind(fp)是将文件指针回绕到文件开始处,作用与函数fseek(fp,0L,SEEK_SET)相同。
59.D
60.A解析:strcpy(s+1,p2)是字符串复制,s中的内容变为'xABC',strcat(s+2,p1)是字符串连接(s的内容已不是初始化的内容,而是复制之后的内容),结果为'xABCabc'。
61.C
62.C线性结构指的是数据元素之间存在着“一对一”线性关系的数据结构,这样的结构中只有一个根
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 7944:2024 EN Optics and photonics - Reference wavelengths
- 客户管理沟通
- 四年级数学几百几十数乘以一位数过关监控试题大全附答案
- 输液反应及护理
- 现代家政学导论模块二家庭与家庭制度
- 项目生命周期社会工作专业教学案例宝典
- 四中国社会工作的发展第一部分社会工作的产生与发展
- 团主题教育实践活动汇报
- 《品牌构造方案》课件
- 大班健康领域活动加
- 文书模板-《电力工程验收与评价表》
- 2024至2030年中国智能应变测试系统数据监测研究报告
- 乡村(社区)后备干部考试卷及答案
- 2022版义务教育物理课程标准
- 风电场工程强制性条文实施计划
- 《船舶电气设备操作与管理(二、三类)》全套教学课件
- 顾客满意度调查分析报告表
- 家校共筑成长桥 期中回望促前行-期中考试总结家长会(课件)
- 解读2024网络数据安全管理条例课件模板
- 期末模拟练习(试题)(含答案)2024-2025学年二年级上册数学苏教版
- 扭扭棒课程设计
评论
0/150
提交评论