




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年吉林省松原市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A.-3B.9C.-12D.6
2.
3.设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为()
A.7B.8C.9D.10
4.已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字堪的表达式是()。
A.isupper(c)B.A<=c<=ZC.A<=c&&c<=ZD.c<=(z-32)&&(a-32)<=c
5.若有以下定义和语句:#include<stdio.h>charsl[10]=“abcd!”,*s2=“\nl23\\”;printf(“%d%d\n”,strlen(s1),strlen(s2));程序的运行结果是()。
A.107B.105C.55D.58
6.
7.数据的存储结构是指()。
A.数据所占的存储空间
B.数据的逻辑结构在计算机中的存放形式
C.数据在计算机中的顺序存储方式
D.存储在计算机外存中的数据
8.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
9.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
10.若有如下函数定义:doublefun(intx,inty){return(x+y);}return语句中表达式值的类型与说明的类型不一致,则以下叙述中正确的是()。
A.运行时出错B.函数返回的值为int型C.编译出错D.函数返回的值为double型
11.下列定义中,不正确的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
12.
13.每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序。
A.插入B.堆C.快速D.归并排序
14.
15.
16.设有条件表达式:(EXP)?i++:j--,则以下表达式中与(E)(P)完全等价的是A.(EXP==0)B.(EXP!=0)C.(EXP=-1)D.(EXP!=1)
17.设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过()次比较容易
A.1B.2C.3D.4
18.下述哪一个是顺序存储结构的优点()。
A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示
19.有以下程序程序执行后的输出结果是()
A.60B.50C.45D.55
20.若有以下定义:chara;intb;floatc;doubled;则表达式a*b+b-c值的类型为()。A.floatB.intC.charD.double
二、2.填空题(20题)21.在scanf()函数调用语句中,可以在格式字符和%号之间加上一个星号,它的作用是跳过对应的输入数据;当输入以下数据时,100200300400500<回车>,下面语句的执行结果为【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
22.阅读下面程序,则执行后的输出结果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
23.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。
24.关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。
25.数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。
26.下列程序的运行结果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
27.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。
28.下面程序的功能是根据公式e=1+1/1!+1/2!+1/3!+1/4!+...计算e的近似值,精度要求为10-5。请填空。
main()
{intn;
doublee=1.0,t=1.0;
for(n=1;【】n++);
{【】e+=t;}
printf("%f\n",e);}
29.Jackson方法是一种面向【】的结构化方法。
30.以下程序统计从终端输入的字符中大写字母的个数。用#号作为输入结束标志,请填空。#include<stdio.h>#include<ctype.h>main(){intnum[26],i;charc;for(i=0;i<26;i++)num[i]=0;();while(c!='#'}{if(isupperC)num[c-65]+=1;}for(i=0;i<26;i++)if(num[i])printf("%c,%d\n",i+65,num[i]);}
31.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
32.以下说明语句中,【】是结构体类型名。
typedefstruct
{intn;
charch[8];
}PER;
33.软件工程研究的内容主要包括:【】技术和软件工程管理。
34.下面能正确进行字符串赋值操作的是
35.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。
36.有以下程序
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-'()';n2=n1*10+(ch2-'()');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后输出结果是【】。
37.阅读下面程序段,则执行后输出的结果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara='A';
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
38.#define命令出现在程序中函数的外面,宏名的有效范围为______。
39.下列程序的输出结果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
40.要使以下程序段输出10个整数,请填入一个整数;
for(i=0;i<=【】;printf("%d\n",i+=2));
三、1.选择题(20题)41.以下语句或语句组中,能正确进行字符串赋值的是______。A.char*sp;*sp="right!";
B.chars[10];s="right!";
C.chars[10];*s="right!";
D.char*sp="right!";
42.下列叙述中正确的是()。
A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用
43.有下列二叉树,对此二叉树前序遍历的结果为()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
44.在下列几种排序方法中,要求内存量最大的是______。
A.插入排序B.选择排序C.快速排序D.归并排序
45.执行下列程序段后,变量a,b,c的值分别是()。intx=5,y=4;inta,b,c;a=(--x==y++)?x:++y;b=++x;c=y;
A.a=5,b=5,c=5
B.a=4,b=5,c=5
C.a=5,b=6,c=5
D.a=1,b=5,c=6
46.以下叙述中正确的是______。
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现的最晚,具有其他语言的—切优点
47.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。
A.log2nB.n/2C.nD.n+1
48.整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达是______。
A.X||YB.X|YC.X&YD.XY
49.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为
A.10g2nB.n/2C.nD.n+1
50.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。main()/*Beginning*/{intr;floats;scanf("%d",&);s=*π*r*r;printf("s=%f\n",s);}出错的原因是
A.注释语句书写位置错误
B.存放圆半径的变量r不应该定义为整型
C.输出语句中格式描述符非法
D.计算圆面积的赋值语句中使用了非法变量
51.下面程序的输出结果为______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}
A.xyzabcABCB.abcABCC.xyzabcD.xyzABC
52.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
53.下列程序中的for循环执行的次当次数是______。#defineN2#defineMN+i#defineNUM2*M+l#main(){inti;for(i=1;i<=NUM;i++)printf("%d\n",i);}
A.5B.6C.7D.8
54.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。
A.334HB.30DHC.352HD.31AH
55.以下不能定义为用户标识符的是()。
A.scanfB.VoidC.3comD.int
56.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填______。structlink{chardata;______;}node;
A.Structlinknext
B.link*next
C.structnextlink
D.Structlink*next
57.下列叙述中错误的是()。
A.一种数据的逻辑结构可以有多种存储结构
B.数据的存储结构与数据处理的效率无关
C.数据的存储结构与数据处理的效率密切相关
D.数据的存储结构在计算机中所占的空间不一定是连续的
58.单个用户使用的数据视图的描述称为______。
A.外模式B.概念模式C.内模式D.存储模式
59.在结构化程序设计中,模块划分的原则是()。
A.各模块应包括尽量多的功能
B.各模块的规模应尽量大
C.各模块之间的联系应尽量紧密
D.模块内具有高内聚度,模块间具有低耦合度
60.在下列叙述中,错误的是()。
A.C语言中,二维数组或多维数组是按行存放的
B.赋值表达式b[1][2]=a[2][3]是正确的
C.chara[1];a[0]='A'与inta[1];a[0]='A'等价
D.数组名后的方括号内可以为常量表达式,也可以为变量
四、选择题(20题)61.有以下定义和语句
62.若有以下程序段(n所赋的是八进制数)
intm=32767,n=032767;
printf("%d,%o\n",m,n);
执行后的输出结果是
A.32767,32767B.32767,032767
C.32767,77777D.32767,077777
63.
64.
65.下列定义数组的语句中,正确的是()。
66.
67.以下符合c语言语法的实型常量是()。
A.8E一2B.3)14)159EC.E14D.2)2E0)5
68.
69.已知各变量的类型说明如下:
则以下不符合C语言语法的表达式是()。
A.
B.
C.
D.
70.下列叙述中正确的是()。
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
71.下列关于结构化设计原则的描述,错误的是
A.在块和进程的非正常出口处往往需要调用GOTO语句,使用GOTO语句使程序执行效率提高,但是滥用GOTO语句确实有害,应该避免使用GOTO语句
B.程序设计时应该自顶向下,逐步求精
C.程序设计时,应该将复杂问题进行模块化,就是将程序设计的总目标分解为若干个分目标,再进一步分解为具体的小目标
D.在进行程序设计时,应该尽量在一行写一条语句,尽量做到效率第一,清晰第二
72.
73.
74.
75.软件生命周期是指()。
A.软件的开发过程
B.软件的运行维护过程
C.软件产品从提出、实现、使用维护到停止使用退役的过程
D.软件从需求分析、设计、实现到测试完成的过程
76.
77.有以下程序:
程序运行后的输出结果是()。
A.2,3,1,6,8,7,5,4,10,9,
B.3,4,2,7,9,8,6,5,11,10,
C.2,4,3,9,12,12,11,11,18,9,
D.1,2,3,6,8,7,5,4,10,9,
78.若有定义“inta=5,b=7;”,则表达式a%-(b%2)运算后,a的值为()。
A.0B.1C.11D.3
79.现有定义inta;doubleb;floatc;chark;,则表达式a/b+C—k值的类型为:()。
A.intB.doubleC.floatD.char
80.
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:先将字符串s中的字符按顺序存放到t中,然后把S中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidproc(char*s,char*t)
{
inti,s1;
s1=strlen(s);
for(i=0;i<s1;i++)
//****found****
t[i]=s[s1];
for(i=0;i<s1;i++)
t[s1+i]一s[i];
t[2*s1]=\O0;
}
voidmain
{
chars[100],t[100];
system("CLS");
print{("\nPleaseenterstrings:");
scanf("%s",s);
proc(s,t);
printf("Theresultis:%s\n",t);
}
六、程序设计题(1题)82.请编写函数proc(),其功能是:将str所指字符串中除下标为偶数、同时ASCⅡ码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为ABCDEFG12345,其中字符8的ASCⅡ码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCⅡ码值为奇数,所在数组中的下标为偶数,因此不应当删除。依次类推,最后t所指的数组中的内容应是ACEG。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所写的若干语句。试题程序:
参考答案
1.C解析:本题中首先定义一个整型变量a并给它赋初值为3,在表达式中,从右开始执行,即先执行“a-=a*a;”等价于a=a-a*a即a=3-3*3=-6,此时a的值为-6,接着执行“a+=a-;”相当于执行a=a+a即a=-6+(-6)=-12,此时a的值为-12。所以,4个选项中选项C符合题意。
2.B
3.BB)【解析】在具有11个结点的满二叉树,其非叶子结点数为int(n/2),而叶子结点数等于总结点数减去叶子结点数。本题n=15,故非叶子结点数等于int(15/2)=7,叶子结点数等于15-7=8。
4.B选项B先计算关系表达式“A<=c”的值是0还是l,再比较该值与字符z之间的大小关系,不能实现题目所要求的功能。
5.Cstrlen函数返回字符串的长度。求字符串长度时,遇到结束标识‘\\0’为止,但是长度不包括结束标识。字符数组s1的后5个元素没有赋值,都为‘\\0’,即“abcd!”后为‘\\0’,所以“strlen(s1)”的值为5。字符指针s2所指向的字符串中,“\\n”为转义字符,代表换行符,是1个字符,“\\\\”也为转义字符,代表“\\”,也是1个字符,其后为字符串结束标识‘\\0’,所以“strlen(s2)”的值也为5。故本题答案为C选项。
6.B
7.B解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。
8.A
9.B本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j~0到3,j=4时不符合,所以退出j循环;然后i减1,J仍然要从0~3,j=4时退出J循环直到i变成0,退出i循环。第一条for语句执行6次,第二条for语句执行4次,所以内循环体执行6*4=24次。
10.D题干中“x+y”是整型,函数的返回值是double类型,由于整型可以自动转换成double类型,因此函数值返回时自动转换成double类型。故本题答案为D选项。
11.C
12.D
13.A
14.A
15.D
16.B解析:在C语言中,逻辑表达式的结果只有两种情况“tree”和“false”。如果要把一个逻辑值看成一个整数的话,true等于1;false等于0。如果要把一个整数看成一个逻辑值的话,非0等于true:0等于false。由此可见,如果EXP表达式的结果为0的话;(EXP)为假:(EXP==0)为真;(EXP!=O)为假;(EXP==1)为假;(EXP!=1)为真。如果EXP表达式的结果为非0的话:(EXP)为真:(EXP=0)为假;(EXP!=0)为真;(EXP=1)结果不定;(EXP!=1)结果不定。综上所述,只有(EXP!=0)完全等价于表达式(EXP)。故应该选择B。
17.C
18.A
19.A函数fun的功能是求数组的n个元素之和。fun(a,5)=15。由于s岫是静态局部变量,所以保持l5不变,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。
20.D在表达式a*b+d-c中,double的类型最高,C语言中,由低类型自动向高类型转换,所以最后的结果一定是double型。
21.100300400100300400解析:scanf的格式控制字符串中,“*”表示跳过对应的输入数据,所以第二个输入数200被跳过去了,只有100,300,400三个数被从键盘输入了进来。
22.33解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合。因为x不大于y,所以执行printf('%d\\n',z);语句。
23.x<z‖y<zx<z‖y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即x<z或y<z,是“或”的关系。
24.查询查询
25.概念概念
26.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。
27.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函数的一般格式为:“printf(格式控制,输出表列)”。
28.t>=le-5;t=t/n;
29.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
30.c=getchar()
31.p->dataqp->data,q解析:本题考查的是链表这一数据结构对结构体变量中数据的引用。链表的特点是结构体变量中有两个域,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。
32.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。
33.软件开发
34.C
35.调试调试
36.1212解析:字符类型的数据在内存中以相应的ASCII码存放,在C语言中,字符数据可以等价为与其相应的ASCII码的整数,还可以作为整数参加运算。在本题中,n1=h1-0'=1-0=49-48=1,n2=n1*10+(ch2-'0')=1*10+(2-0)=10+2=12。
37.NN解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符“A”的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。
38.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。
39.1234theend1,2,3,4,theend解析:本题考查带参数的宏的定义。第1次循环,i=1时,调用PRINT(1),P(1)输出1;第2次循环,i=2时,调用PRINT(2),P(2)输出2:第3次循环,i=3时,调用PRINT(3),P(3)输出3:第4次循环,i=4时,调用PRINT(4),P(4)输出4,theend。
40.18或1918或19
41.D解析:本题考查了考生对字符串常量的理解。字符串常量是一段以双引号括起来的字符序列,它既可以出现在对字符数组的初始化中,也可以出现在表达式中。当它用于对字符数组的初始化时,应注意系统自动为其添加的结束标志'\\0'。而当它出现在表达式中时,应该将其看作一个constchar*类型的指针常量。在选项A中,首先定义了一个字符指针sp,然后将一个字符串赋给甲所指的地址,这是错误的。因为sp是一个未经初始化的野指针,不知其指向哪儿,往一个不确定的地址中写数据很容易让程序出错。选项B首先定义了一个字符数组,然后将一个字符串赋给数组名,这是错误的。因为数组名是一个指针常量,不可以被改变。选项C首先定义了一个字符数组,然后将一个字符串赋给数组的第一个元素,这也是错误的。因为字符串在表达式中相当于一个常字符指针,将一个指针值赋给一个字符型变量是行不通的。选项D是定义一个字符指针sp,同时使其指向一个字符串常量,即将一个常字符型指针赋给sp。这是可行的。所以,4个选项中选项D符合题意。
42.D解析:C语言相对其他高级语言来说,放宽了语法检查,因此程序设计自由度大,但并不是不检查语法,C语言的程序是由函数构成的。函数不能嵌套定义,但是可以嵌套调用。
43.B解析:对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左,右子树。
44.D解析:快速排序的基本思想是,通过一趟排序将排序记录分割成独立的两部
分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继
续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依
次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整
个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩
下的于表采用同样的方法,直到表空为止;归并:排序是将两个或两个以上的有序表组合
成一个新的有序表。
注意:各种排序方法实现过程及实现机制。
45.B解析:本题考查自加(++)、自减(--)运算符的使用。“++i,--i”,在使用i之前,先使i的值加1或者减1,再使用此时的表达式的值参与运算:“i++,i--”,先使用此时的i的值参与运算,在使用i之后,再使i的值加1或者减1。
对于第1个表达式--x=4,y++=4。两者相等,--x==y++为真,所以a=x=4,执行完此语句后y的值是5。
第2个表达式b=++x,x的值先加1,然后赋给b,即b=x+1=5第一个表达式c=y=5。
46.C解析:计算机语言分为低级语言、汇编语言和高级语言,C语言属于高级语言,但并不是说C语言比其他语言高级,所以选项A错误;除了低级语言外,其他各种语言都必须编译成能被计算机识别的二进制数才能执行,选项B错误;C语言出现从1972年到1973年间,并不是出现最晚的语言,所以选项D也是错误的。
47.C本题考查的是顺序查找。在进行顺序查找过程中,如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效率最高;但如果被查找的元素是线性表中的最后一个元素,或者被查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。所以对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。故本题答案为C。
48.D解析:“||”为或运算符,当其左右表达式中只要一个为非零则整个表达式的值1。是按位或,&是按位与,^是按位异或,这三位运算符是按值的二进制位来比较的。
49.C解析:对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较logn2次,而顺序查找需要比较n次。
50.D解析:计算圆面积的赋值语句中使用了非法变量π。所以,答案为选项D)。注意:注释语句可以出现在程序中的任意位置,故选项A)中的描述错误;圆的半径可以是整型,也可以是实型,定义成哪种类型都不算错,故选项B)中的描述错误;显而易见,选项D)中的描述也错误。
51.B解析:strcpy(str1,s1):作用是将字符串s1拷贝到字符数组str1中去。strcat(字符数组1,字符数组2):把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后返回字符数组1的地址。本题定义了三个字符数组p1,p2,sir,strcat(p1,p2)函数的作用是将字符串数组p2接到字符串p1的后面,结果放在字符数组p1中,再通过strcpy()函数将该字符串拷贝到str数组中,原str数组中的字符串xyz被覆盖,因此打印输出字符串str即可得到abcABC。
52.B本题考核的知识点是puts()函数的应用。主函数中定义了一个字符数组s并赋初值,一个字符串指针变量ps并让它指向s。程序中p+4的地址为数组第5个元素的地址,而调用put(str_adr)函数时,将从str_adr这一地址开始,依次输出存储单元中的字符,遇到第一个“\\0”时结束输出,并自动输出一个换行符。所以put(p++4)将输出n/No,put(s)将从s第一个元素开始输出到第3个元素结束(因为执行*(p4)c0语句后s中的第5个元素的值为0,而s中的第4个元素为“\\”,puts将遇到“\\0”,结束输出),即输出yes。所以,4个选项中选项B符合题意。
53.B
54.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。
55.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。
56.D解析:在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为structlink*next。
57.B解析:一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等,选项A和选项D正确。采用不同的存储结构,其数据处理的效率不同,因此,在进行数据处理时,选择合适的存储结构是很重要的,选项C正确,选项B错误,应为本题正确答案。
58.A解析:选项A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式即为内模式。
59.D解析:本题考查软件工程中软件设计的概念和原理。人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式规则:
(1)改进软件结构,提高模块独立性;通过模块的分解或合并,力求降低耦合提高内聚。低耦合也就是降低不同模块间相互依赖的紧密程度,高内聚是提高一个模块内各元素彼此结合的紧密程度。
(2)模块的规模应适中。一个模块的规模不应过大,过大的模块往往是由于分解不够充分:过小的模块开销大于有益操作,而且模块过多将使系统接口复杂。因此过小的模块有时不值得单独存在。
(3)模块的功能应该可以预测,但也要防止模块功能过分局限。如果模块包含的功能太多,则不能体现模块化设计的特点:如果模块的功能过分的局限,使用范围就过分狭窄。
经过上述分析,本题的正确答案是选项D。
60.D解析:本题考查数组的4个知识点:①C语言中,二维数组或多维数组元素排列的顺序是按行存放;②不同数组的元素之间可以相互赋值;③字符型数组中存放的是字符,int型数组中存放的是字符对应的ASCII码值,虽然在计算机内部字符常量都是作为蹩型量来处理的,其对应的整数值就是ASCII码值,但两者并不完全等价;④数组名后的方括号内可以为常量,也可以为常量表达式,但不可以为变量。
61.A嵌套的结构体定义,要访问内层的成员,需要一层层用“.”访问,所以答案选择A)。
62.A在程序段中,首先定义了两个整型变量m和n,然后将m初始化为32767,将n初始化为032767,题目告诉我们,n中的数值是一个八进制数,然后程序运行输出语句,从输出语句的输出格式“%d,%o\\n”可以看出一共输出两个数,第一个为十进制整数,第二个为八进制整数,从它的输出列表中可以看出第一个输出的是变量m,第二个输出的是变量n,那么将其与输出格式对应,我们可以知道输出的结果分别是输出变量m值的十进制形式和变量n的八进制形式。因此,最后输出的结果是32767,32767,这里需要注意,八进制数输出后并不带上它的标识符0。因此本题的答案选A。
63.B
64.A
65.A数组说明的一般形式为:类型说明符
数组名[常量表达式]。B选项中N是变量,不能用变量定义数组长度。c选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D选项中数组长度为空,所以非法。
66.B
67.A实型常量又称为实数或浮点数,在c语言中可以表示为小数形式和指数形式。其中用”e或E+整数”表示以10为底的幂,字母e或E之前必须有数字,后面必须是整数。因此正确答案为选项A)。
68.B
6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届广东省普宁市华侨中学高三第二次调研化学试卷含解析
- 河南许昌普高2025届高三第五次模拟考试化学试卷含解析
- 2025届广西贵港市覃塘高级中学高三下学期联合考试化学试题含解析
- 2025年LED超大屏幕显示器项目建议书
- 湖北省鄂东南示范高中教改联盟2025年高三下学期联合考试化学试题含解析
- 护理小讲课:高血压
- 中考数学高频考点专项练习:专题15 考点35 与圆有关的计算 (1)及答案
- 2025届陕西省商洛市丹凤中学高考考前模拟化学试题含解析
- 三效定格管理体系
- 打造多彩现场教学课件
- 2025年电子设备装接工岗位职业技能资格知识考试题库(附含答案)
- 《几内亚地质概况》课件
- 城市内涝课件()
- (安全生产)2020年硫酸安全设施设计专篇
- 公关活动策划的创意与执行
- 南充房地产市场月报2024年08月
- 标志设计(全套课件88P)
- 急诊专科护士进修汇报课件
- 2024北京丰台区初三一模物理试题及参考答案
- 【二年级】下册道德与法治-部编版-2年级下册-第三单元+绿色小卫士(作业设计)部编版道德与法治二年级下册
- (统)人教部编版六年级下册道德与法治8.科技发展 造福人类
评论
0/150
提交评论