版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年广东省深圳市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列关于栈的描述中错误的是()。
A.栈是先进先出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入删除操作中,不需要改变栈底指针
2.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是()。
A.edcbaB.decbaC.dceabD.abcde
3.若有定义语句:"inta[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是()。
A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]
4.不带头结点的单链表head为空的判定条件是()。
A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL
5.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
6.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。
A.单链表B.给出表头指针的单循环链表C.双链表D.带头结点的双循环链表
7.采用邻接表存储的图的深度优先遍历算法类似于二叉树的()。
A.先序遍历B.中序遍历C.后序遍历D.按层遍历
8.
9.
10.下列函数的功能是
set(s,t)
{char*s,*t;
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}A.A.求字符串的长度
B.比较两字符串的大小
C.将字符串s复制到字符串t中
D.将字符串s连接到字符串t后
11.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的运行结果是()。
A.abcB.28cC.abc28D.因类型不一致而出错
12.以下选项中,合法的一组C语言数值常量是()。
A.028.5e-3-0xf
B.12.OXa234.5eO
C..1774c1.5Oabc
D.0x8A10,0003.e5
13.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指()
A.数据与程序独立存放
B.不同的数据被存放在不同的文件中
C.不同的数据只能被对应的应用程序所使用
D.以上三种说法都不对
14.下列运算符中,运算对象必须是整型的是()。
A./B.%=C.=D.&
15.下列说法不正确的是()。
A.调用函数时,实参可以是表达式
B.调用函数时,实参与形参可以共用内存单元
C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等
D.调用函数时,实参与形参的类型必须一致
16.
17.对于函数声明“voidfun(intarray[4],int*ptr);”,以下叙述中正确的是()。
A.array、ptr都是指针变量
B.调用fun函数时,实参的值将逐一复制给array
C.调用fun函数时,array按值传送,ptr按地址传送
D.array是数组,ptr是指针,它们的性质不同
18.以下关于C语言文件系统的叙述中正确的是()。
A.fprintf与fwrite函数功能相同
B.文件以“r”方式打开后,可以存储文本类型的数据
C.fscanf与fread函数功能相同
D.以“w”或“wb”方式打开的文件,不可以从中读取数据
19.对n个数进行排序,哪种算法,其时间复杂度在最坏和最好都是O(nlogn)()
A.快速排序B.希尔排序C.堆排序D.选择排序
20.以下关于顺序存储结构的叙述中,()是不正确的。
A.存储密度大
B.逻辑上相邻的结点物理上不必邻接
C.可以通过计算机直接确定第i个结点的存储地址
D.插入、删除运算操作不方便
二、2.填空题(20题)21.数据结构分为逻辑结构与存储结构,线性链表属于【】。
22.以下程序运行后的输出结果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
23.与表达式a+=b等价的另一书写形式是______。
24.下面的程序通过函数average计算数组中各元素的平均值,请填空。
floatavetage(int*pa,intn)
{inti;
floatavg=0.0;
for(i=0;i<n;i++);
avg=avg+【】;avg=【】;
returnavg;
}
main()
{inti,a[5]={2,4,6,8,10,};
floatmean;
prinf("%mean=%f\n",mean);
}
25.若有以下定义语句,则不移动指针p,并且通过指针p引用值为98的数组元素的表达式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
26.若有定义floatb[15],*p=b;,且数组b的首地址为200H,则p/13所指向的数组元素的地址为______。
27.下面程序的运行结果是()。#include<stdio.h>main(){chara[80],*p"AbabCDcd";inti=0,j=0;while(*(p++)!='\0'){if(*p>='a'&&*p<='z'){a[i]=*p;i++;}}a[i]='\0';puts(A);}
28.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。
29.按“先进后出”原则组织数据的数据结构是[]。
30.一棵二叉树中共有80个叶子结点与10个度为1的结点,则该二叉树中的总结点数为【】。
31.以下程序的输出结果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
32.已知字符'A'的ASCII码值为65,以下语句的输出结果是【】。
charch='B';
printf("%c%d\n",ch,ch);
33.以下程序的输出结果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
34.测试用例包括输入值集和【】值集。
35.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
36.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。
37.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是【】。
c=(a-=(b-5));
c=(a%11)+(b=3);
38.以下程序运行后的输出结果是______。
main()
{inta=1,b=2,c=3;
if(c=A)printf("%d\n",C);
elseprintf("%d\n",B);
}
39.对于软件测试,从是否需要执行被测软件的角度,可以分为静态测试和动态测试。代码检查属于______测试。
40.以下函数的功能是删除字符串s中的所有数字字符。请填空。
vioddele(char*s)
{intn=0,i;
for(i=0;s[i];i++)
if(______)
s[n++];s[i];
s[n]=______;
}
三、1.选择题(20题)41.若执行下列的程序时,从键盘上输入1和2,则输出结果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;S=S*S,printf("%d\n",s);}
A.1B.4C.2D.9
42.下列函数值的类型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
43.以下程序的输出结果是______。#include<stdio.h>main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d",a,b);}
A.6,1B.2,1C.6,0D.2,0
44.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是
A.i-1B.iC.i+1D.4-i
45.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}执行后输出结果是()。
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,
46.下列程序的输出结果是()。
#include<stdio.h>
main()
{iuta=2,b=3,p;
p=f(a,B)
printf("%d",p);
}
intf(a,b)
{intc;
if(a>B)c=1;
e1Seif(a==B)c=0;
else(3=-1;
return(C);
}
A.-1B.0C.1D.2
47.若已包括头文件<string.h>且已有定义chars1[18],s2={"ABCDE"}和inti,现要将字符串"ABCDE"赋给s1,下列语句错误的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.s1="ABCDE";
D.for(i=0;i<6;i++)s1[i]=s2[i];
48.下列选项中不属于结构化程序设计方法的是()。
A.自顶向下B.逐步求精C.模块化D.可复用
49.有以下程序:#include<stdio.h>#include<string.h>main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序运行后的输出结果是()。
A.22B.76C.72D.62
50.若有下面的说明和定义:structtest{intm1;Charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa;则sizeof(structtest)的值是
A.12B.16C.14D.9
51.以下只有使用时才为该类型变量分配内存的存储类型说明是()
A.auto和static
B.auto和register
C.register和static
D.extern和register
52.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(j=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序运行后的输出结果是
A.12B.123C.234D.345
53.已知函数ffead的调用形式为fread(buffer,size,count,fp);,其中buffer代表的是()。
A.存放读入数据项的存储区
B.一个指向所读文件的文件指针
C.一个指针,是指向输入数据存放在内存中的起始地址
D.一个整型变量,代表要读入的数据项总数
54.以下选项中不能作为合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0
55.以下叙述中错误的是()
A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B.在程序结束时,应当用fclose函数关闭已打开的文件
C.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D.不可以用FILE定义指向二进制文件的文件指针
56.有以下程序:main(){inta[]={2,4,6,8,10},y=0,x,*p;p=&a[1];for(x=1;x<3;x++)y+=p[x];printf("%d\n",y);}程序运行后的输出,结果是______。
A.10B.11C.14D.15
57.执行以下程序段后,m的值为______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));
A.15B.14C.13D.12
58.字长为32位的计算机是指()
A.该计算机中的CPU有32个寄器
B.该计算机能够处理的最大数不超过232
C.该计算机每秒钟所能执行的指令条数为32MIPS
D.该计算机中的CPU可以相同时处理32位的二进制数
59.当输入为"quert?"时,下面程序的执行结果是#include<stdio.h>main(){charc;c=getchar();while(c!='?'){putchar(c);c=getchar();}}
A.quertB.RvfsuC.quert?D.rvfsu?
60.下列程序的输出结果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}
A.2B.3C.4D.5
四、选择题(20题)61.
62.
63.以下关于字符串的叙述中正确的是()。
A.C语言中有字符串类型的常量和变量
B.两个字符串中的字符个数相同时才能进行字符串大小的比较
C.可以用关系运算符对字符串的大小进行比较
D.空串一定比空格打头的字符串小
64.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
65.如果intC=3,d=4,k=0,下列描述正确的是()。A.c>d!=k和c>(d!=k)的执行顺序是一样的
B.c&&d>k的结果为假
C.c||(d=k)执行后d的值为0
D.!c!=(d!=k)表达式的值为1
66.
67.下列能正确定义且赋初值的语句是()。
A.intn1=n2=1;
B.charC=99;
C.floatf=f+1;
D.doublex=1.2E5.6;
68.
69.有以下程序程序运行后的输出结果是()。A.a+b=0B.a+b=30C.a+b=lOD.出错
70.(29)有以下程序
#include<stdio.h>
main()
{ints;
scanf("%d",&s);
while(s>0)
{switch(s)
{case1:printf("%d",s+5);
case2:printf("%d",s+4);break;
case3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
运行时,若输入123450<回车>,则输出结果是
A)6566456
B)66656
C)66666
D)6666656
71.在以下选项中,不正确的赋值语句是()。
A.i++;B.nl=(n2=(n3=0..;C.m+n=1;D.i=k==j;
72.在数据流图(DFD)中,带有说明的箭头表示
A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向
73.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
74.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。
A.scanfB.getcharC.getsD.getc
75.
76.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)执行后的输出结果是()。A.5,5B.5,11C.11,11D.11,5
77.有以下程序:则以下函数调用语句错误的是()。.
A.k=f(a,B.;B.k=add(a,B.;C.k=(*f)(a,B.;D.k={f(a,B.;
78.若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。
intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];A.A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]
79.
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从m个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:987867563489.578.576.5则低于平均分的学生人数为3(平均分为72.187500)。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。编写函数fun(),其功能是除了字符串前导和尾部的*号外,将字符串中其他的*号全部删除。形参h指向字符串中第一个字母,形参p指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为“****A*BC*DEF*G********”,删除后,字符串中的内容应当是“****ABCDEFG********”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(char*a,char*h,char*p){}main(){chars[8l],*t,*f;printf(“Enterastring:\n”);gets(s);t=f=s;while(*t)t++;t--;while(*t==‘*’)t--;while(*f==‘*’)f++;fun(s,f,t);printf(“Thestringafterdeleted:\n”);puts(s);}
参考答案
1.B
\n栈是线性表的一种,它的特点是先进后出,并且只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,因此具有记忆作用,栈可以采用顺序存储,也可以采用链式存储。
\n
2.C
3.A数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。
4.A
5.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
6.D
7.A
8.C
9.B
10.B在本题中,从题目给出的四个选项我们就可以知道,程序是对两个字符串进行操作。下面将具体分析程序。
程序首先定义两个字符型的指针变量s和t,从后面的程序中不难看出这两个指针变量应该用来对两个字符串进行操作处理。用循环来对字符串进行处理时,循环继续的条件是指针变量s和指针变量t所指向的结果值不为0,且两结果值相等。很显然,指针变量s和指针变量t所指向的结果值不为0,说明两字符串没有结束,只有结束时才为0,而结果值相等说明两字符相等,如果不等,循环则结束,此时程序将要求返回不等元素之间的差值,从差值的正负关系我们可以判断出哪个元素更大。综上所述,程序段的作用是用来比较两字符串的大小。因此,本题正确的答案选B。
11.Cfprintf函数将内容写入硬盘的文件,fputs函数将字符串写入文件,最终文件的内容为abc28。故本题答案为C选项。
12.BC语言中,八进制数其开头必须是数字“0”,其数字包括0~7,因此选项A错误。浮点数据的指数形式表示中,字母e或E之后的指数必须为整数,所以选项C错误。选项D中,整型数据l0,000的表示形式是错误的。
13.D解析:在数据库系统中,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。由此可知,选项A.B与C中的说法都是错误的。
14.B
15.B
\n本题考查函数调用的基本概念。调用函数时,实参的形式可以是具体的数值,也可以是表达式。实参将数值或表达式的值传递给形参,因而两者的类型必须保持一致;形参在运算过程中会发生改变,但不一定会影响到实参值,所以可知两者不共用内存单元。
\n
16.A
17.A声明函数fun“voidfun(intarray[4],int*ptr);”,第1个参数虽然是数组类型,但是会退化为指针,并且形参数组的个数没有用;第2个参数是指针。两个形参都是指针,传递的都是地址,可知选项B、C、D错误。故本题答案为A选项。
18.Dfprintf函数和fscanf函数都可以读写文本文件,而fwrite和fread函数可以读写二进制文件,选项A、C错误;文件以“r”方式打开后,只可以读取文本数据,选项B错误。故本题答案为D选项。
19.C
20.B
21.存储结构
22.30253025解析:本题考核的知识点是变量的存储属性和算术运算的应用。本题涉及了自动变量、静态变量和外部变量。外部变量是定义在所有函数之外的变量,本题中inta=5定义了一个外部变量a,它是一个全局变量,即作用域是从定义的位置开始到本文件的结束;静态变量的存储空间在程序的整个运行期间是固定的(static),本题函数fun()中staticinta=10定义个一个静态变量a,此静态变量a是个静态的局部变量,即它的值只能在本函数中使用;自动变量是C程序中使用最多的一种变量,它的建立和撤消都是由系统在程序执行过程中自动进行的,auto是自动变量的存储类别标识符,如果省略auto,系统隐含认为此变量为auto,本题中main()中intc=20定义了一个自动变量c,此自动变量c是个静态的局部变量.算术运算中a+=b++相当于a=a+b,b=b+1.所以,在第一个ptine('%d',a)中a=a+b=10+20=30,第二个printf('%d',a)中a=a+c=5+20=25,即输出3025。
23.a=a+ba=a+b解析:a+=b与a=a+b等价,作用是把变量a的值加b后再赋给变量a。
24.pa[i]avg/n
25.*(p+5)
26.252H252H解析:要解答本题,首先要明白在对指针进行加、减运算时,数字'1'不是十进制数的'1',而是指'1'个存储单元长度。1个存储单元长度占存储空间的多少,应该视具体情况而定,如果存储单元的基类型是int型,则移动1个存储单元的长度就是位移2个字节;如果存储单元基类型是float型,则移动1个存储单元的长度就是位移4个字节。所以旷13所指向的数组元素的地址为:200H+(13*4)H=252H。
27.babcdbabcd解析:c语言中\\0表示字符串的结束。程序将D指针指向字符串“AbabCDcd”的首地址,循环开始后,若指针当前不是指向字符串结束标志位,则进入循环体。循环中每次检验字符串中字母是否在a与z之间,若满足则将当前值赋于数组a,最后给数组添加字符结束标志。此程序可以筛选出字符串中的小写字母。
28.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。
29.栈栈解析:栈和队列都是—种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的—端进行插入或删除操作,是—种“先进后出”的线性表;而队列只允许在表的—端进行插入操作,在另—端进行删除操作,是—种“先进先出”的线性表。
30.179179解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中的二叉树有80个叶子结点,因此,该二叉树有80-1=79个度为2的结点;又知本题中的二叉树有10个度为1的结点。因此,本题中的二叉树总结点数为:叶子结点数+度为1的结点数+度为2的结点数=80+10+79=179
31.3131解析:在函数调用时,形参值和改变,不会改变实参的值。
32.B66B66解析:字符B的ASCII码值为66,因此,按%c形式输出B,按%d形式输出66,输出结果为:B66。
33.99解析:本题要输出的结果是字符串'IBM\\n012\\1\\\\'的长度,'IBM'是3个字符,\'\\n\'是1个字符,'012'又是3个字符,最后的\'\\1\'和\'\\\\\'都是1个字符。所以最终字符串的长度应该是3+1+3+1+1=9。故本题应该填9。
34.输出输出解析:测试用例曲测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。
35.封装封装
36.加工加工解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。
37.33解析:这里:b-5=4,a-=4之后a的值为6,并把它赋给c。此时b的值并未被改变。在第2个表达式中,也只有赋值表达式b=3改变了b的值。所以两行语句执行完毕,b的值应该为3。
38.11解析:本题是一个陷阱题。在if语句的判断表达式中,使用的不是逻辑运算符==而是赋值运算符=,使该表达式返回的结果正好相反。如果是c==a,则结果为假。但是c=a则是将a赋给c,且表达式的结果是赋值之后的c的值,因此结果为1是真.故最后输出c的值1。
39.静态静态解析:静态测试包括代码检查、静态结构分析,代码质量度量等。静态测试不实际运行软件。
40.s[i]<'0'‖s[i]>9或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))isdigit(s[i])==0或s[i]>'9'‖s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'!(*(s+i)<='9'&&*(s+i)>='0'或iss[i]<'0'‖s[i]>9,或\r\n!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))\r\nisdigit(s[i])==0或s[i]>'9'‖s[i>'0'或\r\n!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或\r\n!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或\r\n*(s+i)>='9'&&*(s+i)<='0'\r\n!(*(s+i)<='9'&&*(s+i)>='0'或is解析:本题考核的知识点是字符指针变量作为函数的参数以及与字符串有关的算法。从一个字符串中删除某字符的方法是从字符串的第一个字符开始一一判断该字符是否是要删除的字符,若不是则把它放到结果字符串中,若是则不放入结果字符串中。本题的第一个空应判断a[i]是否为数字字符,只有在不是数字字符的情况下才存入结果字符串,所以应填入s[i]<'0'‖s[i]>'9'。最后应在结果字符串的末尾填上字符串结束标志“\\0”。
41.B解析:本题考查if语句。scanf函数通过键盘读入a、b的值,a=1,b=2。第一个if语句,先判断条件,发现a<b条件成立,则s=b=2,s=s*s=4。
42.A解析:本题考查默认函数的函数值的类型。在函数调用时,尽管y的类型是float,x的类型是double,但是因为函数定义时省去类型说明,系统默认函数值的类型为int型,所以计算后的y的类型是int型。
43.B解析:在表达式的值作为逻辑值时,非0值一律为1,0值才为0。
44.B解析:本题考查循环嵌套,外层循环控制每一行的输出,内层循环的第一个for循环控制空格的输出,第二个for循环控制的输出。而在第i行,输出的第一个元素是num[i][i],所以下划线处应填i。
45.A解析:在C语言中所谓函数的递归是指在调用一个函数的过程中,又出现了直接或间接调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用。由程序可以看出函数f(a,i,j)为一递归函数,其功能是当i<j时,将数组中的元素a[i]和a[j]交换,然后再调用函数f(a,i+1,j-1),将数组中a[i+1]和a[j--]交换,这样一直递归到数组下标i=j,可见该递归函数的作用是使数组中首尾元素依次互换。主函数中定义了一个长度为5的数组aa并初始化,然后调用f(a,0,4),将数组a中的元素依次互换,故最后for循环输出的数组aa中各元素的值为5、4、3、2、1,所以,4个选项中选项A符合题意。
46.A解析:本题考查ifelse语句。在intf(a,B)中:第一个if语句,先判断条件,发现a>b条件不成立,则执行与其配对的else语句:第二个if语句,先判断条件,发现a==b条件不成立,则执行与其配对的else语句,c=-1。
47.C解析:数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量,因此sl='ABCDE'的方法是错误的。
48.D解析:20世纪70年代以来,提出了许多软件设计方法,主要有①逐步求精:对复杂的问题,应设计一些子目标作过渡,逐步细化;②自顶向下:程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化;⑧模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块,而可复用是面向对象程序设计的一个优点。
49.C解析:C语言.中以,'\\0'作为字符串的结束符,且strlen函数计算的是,'\\0',字符前的所有字符的个数,故本题中strlen(a)应为2。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof运算符是计算变量或数组所分配到的内存空间的大小,所以本题的sizeof(a)为7。
50.A解析:结构体所占用的存储空间是其所有成员占用的存储空间之和,而共用体所占用的存储空间是成员中占用存储空间最大者的空间,共用体类型uu是结构体的成员,它所占的内存长度为最大成员的长度,即字符型数组u1的长度,即1×5=5。每个整型数据占用2个字节,每个字符型数据占用一个字节,单精度型数据占4个字节,myaa为结构体变量,它所占的存储空间为各个成员所占存储空间的之和,即2+1+4+5=12。
51.B
52.D解析:本题考查二维数组和指针,首先使指针p指向二维数组的首地址,通过第一个for循环对一维数组p赋值,其实也就是给二维数组a赋值,a[0][0]~a[2][2]分别赋以0~8,所以a[1][0],a[1][1],a[1][2]分别为3,4,5。
53.C解析:数据块读取函数调用形式:fread(buffer,size,count,fp)。
fread函数参数说明:“buffer”是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。
54.B解析:本题考查的是C语言中实型常量的指数表示法。实型常量的指数表示法是用字母e(或E)将一个实数的小数部分和指数部分分隔开。字母e(或E)之前是小数部分,之后是指数部分,这两部分都不能省略,且指数部分必须为整数。故选项B不正确。所以,4个选项中选项B符合题意。
55.D解析:顺序文件只能从头读写,二进制文件可以随机读写,选项A正确:文件在使用后应关闭,当程序结束时,应当把打开的文件关闭,选项B正确:用fread()函数可以一次性地读取同类型的很多数据,选项C正确;在C语言中指向各种文件的文件指针都是通过FILE来定义的,故选项D是错误的。所以4个选项中选D
56.C解析:因为p=&a[1],p[0]=a[1],p[1]=a[2],p[2]=a[3]。for循环是求p[1]+p[2],因此y的值应为:6+8=14。
57.A
58.D
59.A解析:本题考查的是字符的输入输出函数getchar和putchar。本题程序段实现的功能是:从键盘上逐个的输入字符,直到遇到‘?’则结束输入,并把除‘?’以外输入的每个字符输出到屏幕上。
60.C解析:带参数的宏定义命令行形式如下:
#define宏名(形参表)替换文本
在编译的时候编译预处理程序用“替换文本”来替换宏,即M(n,m)被替换为n%m,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。
61.A
62.B\r\n
63.D解析:C语言中只有字符串常量而没有字符串变量,故选项A不正确:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,故选项B不正确;字符串比较大小除了使用库函数strcn3()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小。因为字符串在表达式中相当于const\u3000char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。所以选项C也不正确。空串的长度为0,而以空格打头的字符串的长度至少为\u30001,故选项D正确,本题应该选择D。
64.B本题要求选项中的表达式能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算。
在选项A中,n=(n*100+0.5)/100.0表示先将n后的前两位小数变成整数,然后对其第三位小数进行加0.5操作,这个操作其实是第三位小数在进行四舍五入运算时只有入,而没有舍运算。因此,本选项不能实现题目的要求。
在选项B中,m=n*100+0.5,n=m/100.0表示先将n后的前两位小数变成整数,然后对第三位小数进行加0.5操作,并将最后的运算结果赋值给一个整型变量m,这是数据的强制转换,它对小数部分的处理是直接舍弃,而在对第三位小数进行加0.5操作时,其实就是对第三位进行四舍五入运算。因此选项能实现题目的要求,是正确的答案
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 户外冰雪世界运营方案
- diy蛋糕店运营方案
- 键鼠品牌运营思路及方案
- 江西mom管理运营方案
- 抖音速配厅运营方案
- 大跨度模块化厂房预制安装方案
- 商城运营规划整改方案
- 核电站核辅助设施施工方案
- 抖音站内流量运营方案
- 5G通信市场竞争地位分析2025年可行性分析报告
- 电商平台食品安全管理制度
- T-CECS120-2021套接紧定式钢导管施工及验收规程
- 输油管道初步设计-本科毕业论文
- 突发环境事件应急预案评审会汇报课件-(模板)
- JTS-T-116-2019水运建设工程概算预算编制规定
- 《公路桥涵养护规范》(JTG5120-2021)
- 饲料质量培训课件
- 高考英语高频词组+短语+固定搭配
- 王慧文清华大学《互联网产品管理课》
- 3206回撤作业规程
- 循证医学课件:临床实践指南的评价与应用
评论
0/150
提交评论