版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年湖北省黄石市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下叙述中错误的是()。
A.在同一源文件中,函数名必须唯一
B.凡是带有返回值的库函数,都不能通过加分号而作为独立的语句出现
C.不同函数中的形式参数可以同名
D.返回基本数据类型的库函数的调用,均可以出现在赋值号右边的表达式中
2.字符串"\\"ABCDEF\"\\”的长度是()。
A.11B.10C.5D.3
3.若希望下列的程序运行后输出25,程序空白处的正确选项是()。
main()
{inti,j=50,a[]={7,4,10,5,8};
for()
j+=a[i];
primf("%d,j-40);
}
A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
4.表达式“a+=a-=a=9”的值是()。
A.18B.-9C.0D.9
5.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
6.以下程序执行后sum的值是()。
A.15
B.14
C.不确定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
7.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
8.串的长度是指()。
A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数
9.若主调用函数类型为double,被调用函数定义中没有进行函数类型说明,而return语句中的表达式类型为float型,则被调函数返回值的类型是()。
A.int型B.float型C.double型D.由系统当时的情况而定
10.依次读入数据元素序列{a,b,c,d,e,f,g}进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下哪些序列?
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,b,c,a}
D.{c,d,b,e,f,a,g}
11.线性表是具有n个()的有限序列。
A.字符B.数据元素C.数据项D.表元素
12.设散列表长m=14,散列函数H(K)=K%11,已知表中已有4个结点:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是_____。
A.8B.3C.5D.9
13.有以下函数定义:voidfun(intn,doubx){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfum(n,x);
14.某二叉树结点的中序序列为ABCDEFG,后序序列为BDCAFGE,则其左子树中结点数目为()
A.3B.2C.4D.5
15.在下述论述中,正确的是()。①只有一个结点的二叉树的度为0;②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的顺序二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③B.②③④C.②④D.①④
16.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的事()。
A.C语言程序仅可以编译执行B.C语言程序仅可以解释执行C.C语言程序既可以编译执行又可以解释执行D.以上说法都不对
17.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.输出无定值B.d,eC.e,fD.g,d
18.
19.在16位C编译系统上,若定义longa;,则能给a赋值40000的正确语句是()
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;
20.以下能正确定义一维数组的选项是______。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
二、2.填空题(20题)21.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
22.在两种基本测试方法中,()测试的原则之一是保证所测模块中每一个独立路径至少执行一次。
23.以下程序的功能是【】。
main()
{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
intsum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf("sum=%6d",sum);
}
24.数据库系统中实现各种数据管理功能的核心软件是______。
25.若有语句:
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是【】。
26.以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。请填空。
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
27.以下函数sstrcat的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:,所指字符串为abed,t所指字符串为efgh,调用函数sstrcat后s所指字符串为abcdefgh。请填空。
#inehde<stdio.h>
#include<string.h>
voidsstuat(char*9,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
28.以下程序运行后的输出结果是【】。
main()
{
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{
n[i]=n[i-1]*2+1;
printfi["%d",n[i]);
}
}
29.下列语句能循环______次。
ints=12;
while(s);
--s;
30.以下程序运行后的输出结果是【】。
main()
{inta[4][4]={{1,2,3,4),{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<4)
{
if(i==2||i==4)continue;
j=0;
do{S+=a[i][j];j++;}while(j<4);
}
printf("%d\n",s);
}
31.下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空______。
32.以下函数的功能是【】。
floatav(a,n)
floata[];
intn;
{inti;floats;
for(i=0,s=0;i<n;i++)s=s+a[i];
returns/n;}
33.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【】。
34.为了列出当前盘当前目录中所有第三个字符为C的文件名的有关信息,应该使用命令【】。
35.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{inta[4][4]={{1,2,3,4},{5'6'7'8},{11'12'13'14},{15'16'17'18}};
inti=0,j=0,s=0;
while(i++<4)
if(i==2[[i==4)continue;
j=0;
do{s+=a[i][j];j++;}while(j<4);
}
pdnff("%d'\n",s);
}
36.设有定义“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
37.对下列二叉树进行中序遍历的结果为【】。
38.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后的输出结果是【】。
39.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
40.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件的具体位置,从而确定文件长度,请填空。
FILE*myf;longfl;
myf=【】("test.t","rb”);
fseek(myf,()SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%ld\n",fl);
三、1.选择题(20题)41.C语言规定,函数返回值的类型是由
A.return语句中的表达式类型所决定
B.调用该函数时的主调函数类型所决定
C.调用该函数时系统临时决定
D.在定义该函数时所指定的函数类型所决定
42.若有下面的说明和定义:structtest{intm1;Charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa;则sizeof(structtest)的值是
A.12B.16C.14D.9
43.若有说明:intn=2,*p=&n,*q=p;,则以下非法的赋值语句是
A.p=q;B.*p=*q;C.n=*q;D.p=n;
44.有以下程序voidf(int*x,int*y){intt;t=*X;*X=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7);while(p>q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序运行后的输出结果是
A.8,2,3,4,5,6,7,1,
B.5,6,7,8,1,2,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1,
45.在一棵二叉树上第5层的结点数最多是______。
A.8B.16C.32D.15
46.下列程序的运行结果是#include"stdio.h"main(){intx=-9,y=5,z=8;if(x<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);}
A.6B.7C.8D.9
47.下列程序的输出结果是______。structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dr[0],60,&dr[0],}main(){p=aa;printf("%d\n",++(p->x));}
A.51B.11C.10D.60
48.已知i、j、k为血型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。
A.scanf("%3d,%3d,%3d",&i,&j,&k);
B.scan("%d,%d,%d",&i,&j,&k);
C.scan("%do/od%d",&i,及j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
49.下列函数定义中,会出现编译错误的是()。
A.max(intx,inty,int*z){*z=x>y?x:y;}
B.intmax(intx,y){intz;z=x>y?x:y;returnz;}
C.max(intx,inty){intz;z=x>y?x:y;return(z);}
D.intmax(intx,inty){return(x>y?x:y);}
50.下列程序执行输出的结果是()。#include<stdio.h>f(inta){intb=0;stoicc=3;a=c++;b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}
A.3B.4C.5D.6
51.下列合法的字符型常量是()。
A.'\x13'B.'\081'C.'65'D.\n
52.若有定义intb[8],*p=b;则p+6表示()。
A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6
53.下列选项中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
54.若有"doublea;",则正确的输入语句是()。
A.scanf("%lf",a);
B.scanf("%f",&a);
C.scanf("%lf",&a)
D.scanf("%le",&a);
55.执行以下语句的结果为______。y=10;x=y++;
A.x-10,y=10B.x=11,y=11C.x=10,y=11D.x=11,y=10
56.C语言库函数fgets(str,n,fp)的功能是______。
A.从中指向的文件中读取长度n的字符串存入str指向的内存
B.从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存
C.从fp指向的文件中读取n个字符串存入str指向的内存
D.从str读取至多n个字符到文件fp
57.结构化程序设计主要强调的是()。
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性
58.include<stdio.h>
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
59.有以下程序main(){intx[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n",s[2]);}执行后输出结果是
A.随机值B.0C.5D.6
60.以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址:#include<stdio.h>#include<string.h>char*scmp(char*S1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若运行时依次输入abed、abba和abc三个字符串,则输出结果为()。
A.abedB.abbaC.abcD.abca
四、选择题(20题)61.以下叙述中错误的是(
)。A.预处理命令行必须位于源文件的开头B.宏替换可以出现在任何一行的开始部位C.宏替换的作用一直持续到源文件结尾D.宏替换不占有程序的运行时间
62.以下()不是标准的HTTP消息头字段。
A.StatusB.HostC.AcceptD.Referer
63.下述程序执行的输出结果是()。
#include<stdio.h>
main()
{chara[2][4];,
strcpy(a。"are");strcpy(a[1],"you");
a[o][3]=&;
printf("%s\n",a);
}
A.are&you
B.you
C.are
D.&
64.(27)程序流程图(PFD)中的箭头代表的是()
A.数据流
B.控制流
C.调用关系
D.组成关系
65.下列数据结构中,能用二分法进行查找的是()。
A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表
66.
67.
68.有以下程序:
程序运行后的输出结果是()。
A.3,3,3B.2,2,3C.1,2,3D.1,l,3
69.若有定义语句:intX=10;,则表达式x-=x+x的值为()。
A.0B.-20C.-10D.10
70.下列叙述中正确的是()。
A.一个逻辑数据结构只能有一种存储结构
B.逻辑结构属于线性结构,存储结构属于非线性结构
C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率
D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率
71.
72.
73.有以下程序程序运行后的输出结果是()。
A.1,2,3.4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.2,3,1,6,8,7,5,4,10,9,
D.10,9,8,7,6,1,2,3,4,5,
74.有以下程序程序运行后的输出结果是()。
A.程序错无输出结果B.31.5C.7.5D.14.0
75.有以下程序:
程序运行后的输出结果是()。
A.02356B.0235C.235D.2356
76.
77.设有定义"doublea[10],*s=a;",以下能够代表数组元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
78.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送()。A.调用语句B.命令C.口令D.消息
79.有以下程序:
#include<stdio.h>
#include<strin9.h>
main()
{printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}
程序运行后的输出结果是()。
A.3B.8C.4D.9
80.在数据管理技术的发展过程中,先后经历了人工管理阶段、文件系统阶段和数据库系统管理阶段。其中数据独立性最高的阶段是
A.数据库系统B.文件系统C.人工管理D.数据项管理
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,输入opdye,则应输出deopy。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charc;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j++)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=c;}}voidmain{charstr[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\n\nBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%s",str);}
六、程序设计题(1题)82.请编写一个函数intproc(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:876675896101999401980431451777则输出结果为4,999。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.B在同一源文件中,函数名必须唯一,选项A正确。函数的调用有两种形式:①出现在表达式中,可以出现在赋值号右边的表达式中;②作为独立的语句完成某种操作。因此选项B错误,选项D正确。不同函数中的形参可以同名,它们的作用域都限制在各自的函数体内,选项C正确。故本题答案为B选项。
2.B解析:本题涉及字符串的两个最基本的概念。①字符串的长度是指字符串中字符的个数,但不包含字符串结束符;②以反斜线“\\”开头的特殊字符序列,意思是把反斜线后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。
3.D解析:要想使程序输出是25,则j-40=25,j=65,而j初值是50,所以填入for循环中的语句,使引用的数组元素累加为65-50=15即可。
4.C首先计算表达式“a=9”;再计算表达式“a-=9”;即“a=a-9”,结果为0;最后计算表达式“a+=0”,即“a=a+0”,所以最终结果为0。故本题答案为C选项。
5.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
6.C解析:C语言中,如果对定义的变量没有赋初值,那么在后面使用时,变量的值是不确定的。所以,本程序中,没有对sum赋初值,它的值不确定。在执行了for循环语句后,sum的值也不确定的,所以,4个选项中选项C符合题意。
7.C由于后序遍历的最后一个儿素为E,所以E为根结点,所以它的前序遍历的首个元素为E,敞排除A)和D)选项。由于中序遍历中,元素B在元素根结点E自:J后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个儿素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉埘的前序遍历序列是EACDB。
8.B解析::串的长度定义为串中字符的数目。所以B)为正确答案。C)答案不正确,因为串中可以含有相同的字符;A)答案不正确,因为串中可能含有相同的字母,而且也可能含有数字等其他非字母字符;D)答案不正确,因为空格也是一种字符,在计算长度时理应将其计算在内。
9.A
10.A
11.B
12.D
13.C解析:选项A中应将y和m前面的函数的类型说明符去掉,故选项A不正确;选项B中函数传了2个参数,其中一个为整型—个为浮点型,而fun()函数在定义时声明的2个参数,一个为整型一个为双精度型,其参数类型不一致,故选项B不正确;选项D在调用函数时,不应该再声明其返回类型,故选项D不正确。所以,4个选项中选项C符合题意.
14.C
15.D
16.A解释执行是计算机语言的一种执行方式。由解释器现场解释执行,不生成目标程序。如BASIC便是解释执行。一般解释执行效率较低,低于编译执行。而C程序是经过编译生成目标文件然后执行的,所以C程序是编译执行。
17.D解析:C语言规定,所有字符常量都可以化为整型常量来处理,因而字符常量也可以参与算术运算。注:字符常量参与算术运算时,其实是使用其对应的ASCII码值进行计算。本题中,'a'对应的ASCII码值是97。题中虽然没有给'6'和'0'的ASCII码值,但应该知道'6'-'0'是将字符'6'转换成整数6的表达式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型输出分别是g和d。
18.D
19.D
20.B解析:选项A)定义的是长度为5的数组元素,但初值有6个元素,所以错误;选项C)不符合数组定义形式,数组名后应加上“[];选项D)的类型说明符错误,应改为char;选项B)中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以正确。
21.55解析:分析程序,当a=3;b=4;c=5时,判断语句a>b不成立,所以不执行后面的语句,直接执行“printf('%d\\n',c);”语句,输出c的值,输出结果为5。
22.白盒白盒解析:按功能划分测试可分为白盒测试和黑盒测试。白盒测试的原则是保证所测试模块中每一独立路径至少执行一次;保证所测试模块所有判断的每一分支至少执行一次:保证所测试模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。
23.计算数组num中大于零的数据之和计算数组num中大于零的数据之和
24.数据库管理系统数据库管理系统解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
25.-3-3解析:%运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中“-19%4”的值为“-3”。
26.*pmax=*px*pmax=*px解析:首先将变量x的值放到max中,然后依次和变量y、z进行比较。若有比max大的数,将该数存放到max中,这样最后在max中的值就是x、y、z中的最大值。
27.*t*t解析:程序中,(a+n)代表字符串s最后一个字符后的,'\\0',根据题意,'\\0'所在位置应该赋值为字符串t的第一个字符,字符中t的其他字符根据循环,依次赋值到,所指字符串的尾部,所以[14]应填:*t。
28.1371513715解析:本题中,定义了个整型数组n并初始化,在for循环语句中,再对数组中各元素重新赋值。循环执行第一次时,n[1]=n[0]*2+1=0+1=1,printf函数输出1,然后i的值加1,比较i<=4成立,继续执行循环体语句,相应输出3、7、15,直至i<=4不成立,退出循环。所以最后输出为1、3、7、15。
29.无限无限解析:分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。
30.9292解析:本题的主函数中首先定义了一个4行4列的二维数组,然后执行一个while循环,该循环中又嵌套了一个do-while循环。先看while循环,该循环通过i++的值来判断是否结束循环,当i++的值为4的时候结束循环,当i=O时,执行while的循环体,显然if语句条件不满足不执行,接着让j=0,然后执行do-while循环体,不难看出do-while循环的功能是将第i+1行的所有元素加起来,所以这时s的值为s=a[1][0]+a[1][1]+a[1][2]+a[1][3]=26,当i=1时,i+1=2,if后面括号里的表达式的值为真执行后面的continue语句,结束该次循环;当i=2时,i加1变为3,把第3+1行的所有元素的值加到s上,此时s=s+a[2][0]+a[2][1]+a[2][2]+a[2][3]=92,当i=3时,3+1=4,if后面括号里的表达式的值为真执行后面的continue语句,结束该次循环,当i=3时,if后面括号里的表达式的值为真执行后面的continue语句,结束该次循环当i=4时while循环结束,所以最后输出的s的值为92。
31.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查逻辑表达。年号能被4整除(y%4==0)但不能被100整除(y%100!=0),两者是与的关系,年号能被400整除即y%400==0,与前两项是或的关系。
32.求出数组元素平均值求出数组元素平均值解析:函数有一个数组形参a和一个整型形参n。函数首先用循环求数组a的前n个元素和,然后将和除以n。即求数组元素的平均值。
33.软件生命周期软件生命周期解析:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。
34.DIR??C*.*
35.9292解析:本题考查循环的嵌套。
①当i=0时执行while语句,i++<4成立,这时i=1,不执行continue语句,继续执行j=0;然后执行do-while语句,共循环4次:
a)j=0时,s=0+a[1][0]=5,j=j+1=1。
b)j=1时,s=5+a[1][1]=5+6=11,j=j+1=2。
c)j=2时,s=11+a[1][2]=11+7=18,j=j+1=3。
d)j=3时,s=18+a[1][3]=18+8=26,j=j+1=4。终止循环。
②当i=1时执行while语句,i++<4成立,这时i=2,执行continue语句,结束本次循环。
③当i=2时执行while语句,i++<4成立,这时i=3,不执行continue语句,继续执行j=0;然后执行do-while语句,共循环4次:
a)s=26+a[3][0]=26+15=41,j+1=1。
b)s=41+a[3][1]=41+16=57,j+1=2。
c)s=57+a[3][2]=57+17=74,j+1=3。
d)s=74+a[3][3]=74+18=92,j+1=4。终止循环。
④i=3时,执行while语句,i++<4成立,这时i=4,执行continue语句,结束本次循环。
⑤当i=4时,执行while语句,i++<4不成立,结束while循环。输出s的结果92。
36.->->解析:若结构体变量abc有成员a,并有指针p_abc指向结构变量abc,则引用变量abc成员a的标记形式有abc.a和p_abc->a。
37.ACBDFEHGPACBDFEHGP解析:中序遍历方法的递归定义;当二叉树的根不为空时,依次执行如下3个操作:①按中序遍历左子树。②访问根结点。③技中序遍历右子树。根据遍历规则来遍历本题中的二叉树。首先遍历F的左子树,同样按中序遍历。先遍历C的左子树,即结点A,然后访问C,接着访问C的右子树,同样按中序遍历C的右子树,先访问结点B,然后访问结点D,因为结点D没有右子树,因此遍历完C的右子树,以上就遍历完根结点F的左子树。然后访问根结点F,接下来遍历F的右子树,同样按中序遍历。首先访问E的左子树,E的左子树为空,则访问结点E,然后访问结点E的右子树,同样按中序遍历。首先访问G的左子树,即H,然后访问结点G,最后访问G的右子树P。以上就把整个二叉树遍历一遍,中序遍历的结果为ACBDFEHGP。因此,划线处应填入“ACBDFEHGP”。
38.2828解析:i=f(4+4)/f(2+2)=4+4×4+4/2+2×2+2=4+16+2+4+2=28。
39.a=2b=3a=2,b=3解析:分析程序,程序从x=1语句开始执行,之后执行第一个switch语句,switch(x)=switch(1),所以执行case1,case1语句中包含一个复合switch语句:这时执行第二个switch语句,此时y=1,所以switch(y)=switch(1),因此执行case1,将b加1,得到b=2,遇到break语句,退出第二个switch语句,则整个case1的复合语句执行完毕,由于在这个case1的后面没有break语句使其退出第一个switch语句,所以接着执行下列的case2后面的语句,即将a,b各加1,得到a=2,b=3。
40.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。
打开文件的函数为:fopen(),调用形式为:fP=fopen(”文件名”,”使用文件方式”);
关闭文件的函数为:folose(),调用形式为:foclose(fp);其中fp为文件指针。
41.D解析:C语言容许函数返回一个值,通过re-turn语句实现,其格式是:
return(表达式);或return表达式;
功能是把表达式的值带回主调函数的调用处,作为函数的返回值。函数返回值的类型以函数类型为准,为了明确表示“不带回值”,可用“void”类型说明符定义“空类型”。在以下几种情况下,可不在调用函数中对被调用函数类型声明:①如果函数值是整型或字符型,可不进行声明,系统自动默认函数值是整型。②如果被调用函数的定义出现在调用函数之前,可不进行声明。注意:函数的定义。
42.A解析:结构体所占用的存储空间是其所有成员占用的存储空间之和,而共用体所占用的存储空间是成员中占用存储空间最大者的空间,共用体类型uu是结构体的成员,它所占的内存长度为最大成员的长度,即字符型数组u1的长度,即1×5=5。每个整型数据占用2个字节,每个字符型数据占用一个字节,单精度型数据占4个字节,myaa为结构体变量,它所占的存储空间为各个成员所占存储空间的之和,即2+1+4+5=12。
43.D解析:本题中首先定义了一整型变量n并赋初值为2,接着定义了一个整型指针变量p并让它指向n,接着又定义了一指向指针的指针变量q。选项A中给指针变量p赋值q,故这个赋值语句正确。选项B中*p=*q就是将*q的值赋给指针变量p所指向的变量n,故这个赋值语句不是非法的赋值语句。选项C中是将*q的值赋给变量n,故这个表达式不是非法的赋值语句。选项D中p为一指针变量,应该将一地址赋给它,而在此选项的表达式中将变量n而不是n的地址赋给它,故这个表达式不合法。
44.D解析:在C语言中,函数参数的默认传递方式是传值,即函数内部的形参只是调用时的实参的一个拷贝,改变形参,实参不会被改变.如果想要实现传址调用只能使用传递指针的方式来实现.利用指针作函数的参数时,无论形参指针还是实参指针所指的都是同一个内存地址,所以形参如果改变了这个地址中的内容,也就是改变了实参所指的地址内容.本题程序开头定义了一个函数f(),在函数中用一个临时变量t交换了两个指针参数所指的地址内容,所以该函数的作用就是交换两个参数所指的内容。在主函数中,首先定义了一个int型数组a,并定义了两个int型指针p、q分别指向数组a的第一个元素和最后一个元素。然后使用一个while循环调用函数f()不断交换两个指针所指的内容,每次交换后p往后移动一个元素,q往前移动一个元素,直到q不再大于p,即直到两个指针在数组a的中间相遇为止。所以,程序最终运行的结果是数组a中的所有元素全被反序排列一次。故应该选择选项D。
45.B[答案]B
[考点]数据结构与算法
[评析]依次从上到下,可得出:
第1层结点数为1;
第2层结点数为2*1=2;
第3层结点数为2*2=4;
第n层结点数为2的n-1次幂
46.D解析:if...else语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个ifelse相当于嵌套在第一个if子句里,相当于x<y&&y<0时,z=0;当x<y&&y>=0时,z=z+1。
47.A
48.B解析:函数scan()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。
49.B解析:本题考核的知识点是函数的定义方法。选项B中在说明形参时,省略了第二个参数的类型,故选项B编译不能通过。
50.B解析:本题考查函数调用时的参数传递。在函数调用时,static变量在函数调用结束后所做的所有变化均保持(即上次调用结束时的值)。在主函数中,第一次循环,i=0,调用k=f(a++)=f(2),调用完之后才将a加1,a变为3,在f(2)中,先将c=3赋值给a返回,然后将c加1,得到k=a=3,c=4。第二次循环,i=1,调用k=f(a++)=f(3),调用完之后才将a加1,a变为4,在f(3)中,先将c=4赋值给a返回,然后将c加1,得到k=a=4,c=5。
51.A解析:C语言的字符常量是用单引号(\')括起来的一个字符,也可以用以一个“\\”开头的字符序列来表示字符常量。其中形式\\ddd表示1到3位8进制数所代表的字符;形式\\xhh表示1到2位16进制数所代表的字符。在本题中\'\\x13\'表示回车符,是一个字符常量;而\'\\081\'用8进制数所代表的字符形式不正确,因为8进制数所表示的字符中不会出现数字“8”;\'65\'单引号(即撇号)括起来的不是一个字符,而是一个十进制数字;'\\n'是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。
52.B解析:指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中将p+6指的是将指针向后移动了6个存储单元,指向b[6],存放的是b[6]的地址。
53.B水平制表符中,'\t'表示的是横向跳若干格;选项B中,'\039'错误,'\039'是八进制形式表的字符,最大数为7,但其中出现'9',','是字符逗号;选项D中,'\n'表示的是换行。
54.D解析:scanf函数的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。题中定义变量a为双精度型变量,双精度变量的格式符为“1e”;变量的地址用取地址符“&”加变量名表示,例如变量a的地址为“&a”。
55.C解析:执行语句x=y++,是先将y的值10赋给x,然后y自增。
56.B解析:fgets函数的作用是从指定的文件读入一个字符串。fgets(str,n,fp)冲的n为要求得到的字符的个数,但只从fp指向的文件输入n-1个字符,然后在最后加一个'\\0'字符,因此得到的字符串共有n个字符。
57.D解析:程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。
58.C解析:本程序中的函数sort(inta[],intn)实现的功能是将数组a中的前n个数进行从大到小排序。sort(&a[1],7)是将数组中从a[1]到a[7]这7个数进行从大到小排序,其他数不变。
59.B解析:本题考核的知识点是指向一维数组的指针变量,通过赋值语句“s=x+3”,使指针变量s指向数组元素x[3],输出语句中的s[2]等价于*(s+2),即x[5]僖为0。所以,B选项为所选。
60.B解析:本题首先从键盘读入3个字符串放到二维数组str中,然后通过两次比较,每次把较小的字符串复制到字符数组string中,所以执行完以后,string中存放的是最小的字符串,输入的3个字符串前两个字符都是“ab”,而第3个字符‘e’、‘b’、‘c’中‘b’最小,所以最小字符串是“abba”,故应该选择B。
61.AC语言中对于预处理命令行的位置没有明确的规定。通常,预处理命令位于源文件的开头,也可以写在函数与函数之间;不能在一行上写多条预处理命令:宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母。
62.A
63.A\nstrcpy实现的功能是复制,该操作把are复制到a中,aE03E33一’&’,且strcpy(aEl],'you')把you复制到a[l]中,故输出a为“are&you”。
\n
64.B
65.A\nA。【解析】二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。
\n
66.C
67.B
68.A根据程序可以分析出系统只分配了一个整型数据的存储空间,把这个空间的地址分别赋给了指针型变量a,b和c。程序利用指针a把数据1写入了该空间,然后利用指针b,把数据2写入该空间,所以原来的1就被覆盖掉了,最后用指针c把数据3写入该空间把数据2覆盖掉了,此空间中最后留有的数据是3。因为3个指针都指向该空间,所以输出数据均为3。
69.C算术运算符+的优先级高于-=.且-=的结合方向为自右向左,所以表达式x-=x+x可以表示成;=x-(x+x)=10-(10+10)=-10,选择C。
70.D数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。
71.C
72.C
73.A本题考查的是结构体成员的引用。在主函数main中定义了一个整型变量i和一个结构体变量s。f函数中,定义了一个结构体类型的指针P,外层循环变量i表示数组的第i个元素,内层循环变量j表示数组的第i+1个元素,调用f函数,通过指针变量P来引用结构体成员。执行if语句,当P一>a[i]>P一>a[j]时进行互换,其作用就是从小到大行排序,最后将排序后的元素输出:l,2,3,4,5,6,7,8,9,10,。
74.A宏定义不是c语句,末尾不需要有分号。因此语句“printf(”%4.1f\n”。S(a+b));”展开后为“prinff(”%4.1tXn",3.5;+a+b}a+b;);”,所以程序会出现语法错误。
75.Ck的值为5,逐个对caBe语句进行匹配,均不匹配,执行default下的语句n=0;k一一。再执行case2:ca804:后面的语句n+=2;k一一;。执行break语句跳出switch判断,打印n的值,即2。经过第一次循环后,k的值为3,然后进行k>0&&ll<5条件判断为真。第二次执行循环体,执行case3:后面的语句n+=1;k一一;。再执行break语句跳出循环,此时打印n的值3,此时k的值为2。第三次执行循环体k的值为2,满足条件,执行case2:case4:后面的语句n+=2;k一一;。执行break语句跳出循环体。打印n的值5。此时n不满足条件k>0&&n<5,所以结束循环。整个程序的打印结果为235。
76.D
77.B\n用带下标的指针变量引用一维数组元素若有以下定义和语句:“int*P,s[10],i;P=s}”,且o≤i<10,可以用&.s[i]、s+i和p+i三种表达式来表示s[i]的地址。同时可以用s[i]、*(s+i)和*(p+i)三种表达式来表示数组元素s[i]。
\n
78.D解析:面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。
79.B\n本题考查strlen函数和转移字符,strlen函数的功能是求字符串的长度,在本题中有“\”,C语言中“\”是转义字符,在计算长度时会将转义符以及后面的第一个字符作为1个长度进行计算,所以答
\n
80.A本题考查数据库中的数据管理技术相关知识。
数据管理技术的发展大体可以归为三个阶段:人工管理、文件系统和数据库管理系统。
人工管理阶段:计算机主要用于科学计算。外部存储器只有磁带、卡片和纸带等还没有磁盘等直接存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理方式基本是批处理。这个阶段有几个特点:数据不保存;应用程序中包含自己要用到的全部数据;数据不共享;数据不具有独立性。
文件系统阶段:计算机不仅用于科学计算,还用在信息管理方面。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取的存储设备。软件领域出现了操作系统和高级软件。操作系统中的文件系统是专门管理外存的数据管理软件,文件是操作系统管理的重要资源之一。数据处理方式有批处理,也有联机实时处理。在文件系统支持下,数据开始从程序中逐步独立出来,数据文件可以独立、长期地存储,数据的逻辑结构和物理结构有了一定的区别。数据的逻辑结构是指呈现在用户面前的数据结构形式。数据的物理结构是指数据在计算机存储设备上的实际存储结构。文件系统对计算机数据管理能力的提高虽然起了很大的作用,但是仍然存在许多根本性问题。主要表现在:数据文件是为满足特定业务领域某一部门的专门需要而设计,数据和程序相互依赖,数据缺乏足够的独立性;数据没有集中管理的机制,其安全性和完整性无法保障,数据维护业务仍然由应用程序来承担;数据冗余度大;对现有数据文件不易扩充,不易移植,难以通过增、删数据项来适应新的应用要求;各数据文件之间缺乏联系,互相独立,不能反映现实世界中事物之间的联系。文件系统管理数据有如下特点:数据可以长期保存;由文件系统管理数据;数据共享性差,冗余度大;数据独立性差。
数据库管理系统阶段:数据管理技术进入数据库系统阶段。数据库系统克服了文件系统的缺陷,提供了对数据更高级、更有效的管理。这个阶段的程序和数据的联系通过数据库管理系统来实现(DBMS)。数据库系统阶段的数据管理具有以下特点:
采用数据模型表示复杂的数据结构。数据模型不仅描述数据本身的特征,还要描述数据之间的联系,这种联系通过存取路径实现。通过所有的存取路径表示自然的数据联系是数据库与传统文件的根本区别。这样,数据不再面向特定的某个或多个应用,而是面向整个应用系统。数据冗余明显减少,实现了数据共享。
有较高的数据独立性。数据的逻辑结构与物理结构之间的差别可以很大。用户以简单的逻辑结构操作数据而无须考虑数据的物理结构。数据库的结构分成用户的局部逻辑结构、数据库的整体逻辑结构和物理结构三级。用户(应用程序或终端用户)的数据和外存中的数据之间转换由数据库管理系统实现。
数据库系统为用户提供了方便的用户接口。用户可以使用查询语言或终端命令操作数据库,也可以用程序方式(如用C语言和数据库语言联合编制的程序)操作数据库。
数据库系统提供了数据控制功能,增加了系统的灵活性。对数据的操作不一定以记录为单位,可以以数据项为单位。81.(1)错误:intproc(charstr[])正确:voidproc(char、tr[])(2)错误:str[j]=str[++];正确:str[j]=str[i];【解析】由主函数中的函数调用可知,函数proc没有返回值。因此,“intproccharstr[])”应改为“voidproc(charstr[])”;由函数proc可知,if语句块完成将字符串str中的第i个元素与第j个元素相交换。因此,“str[j]=str[i++];”应改为“str[j]=str[i];”。
82.
【解析】要得到数组中的最大元素的下标,需要比较数组中的每一个元素。将最大的元素返回给主函数,最大元素的下标通过形参返回给主函数。
2021年湖北省黄石市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.以下叙述中错误的是()。
A.在同一源文件中,函数名必须唯一
B.凡是带有返回值的库函数,都不能通过加分号而作为独立的语句出现
C.不同函数中的形式参数可以同名
D.返回基本数据类型的库函数的调用,均可以出现在赋值号右边的表达式中
2.字符串"\\"ABCDEF\"\\”的长度是()。
A.11B.10C.5D.3
3.若希望下列的程序运行后输出25,程序空白处的正确选项是()。
main()
{inti,j=50,a[]={7,4,10,5,8};
for()
j+=a[i];
primf("%d,j-40);
}
A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
4.表达式“a+=a-=a=9”的值是()。
A.18B.-9C.0D.9
5.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
6.以下程序执行后sum的值是()。
A.15
B.14
C.不确定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
7.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
8.串的长度是指()。
A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数
9.若主调用函数类型为double,被调用函数定义中没有进行函数类型说明,而return语句中的表达式类型为float型,则被调函数返回值的类型是()。
A.int型B.float型C.double型D.由系统当时的情况而定
10.依次读入数据元素序列{a,b,c,d,e,f,g}进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下哪些序列?
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,b,c,a}
D.{c,d,b,e,f,a,g}
11.线性表是具有n个()的有限序列。
A.字符B.数据元素C.数据项D.表元素
12.设散列表长m=14,散列函数H(K)=K%11,已知表中已有4个结点:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是_____。
A.8B.3C.5D.9
13.有以下函数定义:voidfun(intn,doubx){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfum(n,x);
14.某二叉树结点的中序序列为ABCDEFG,后序序列为BDCAFGE,则其左子树中结点数目为()
A.3B.2C.4D.5
15.在下述论述中,正确的是()。①只有一个结点的二叉树的度为0;②二叉树的度为2;③二叉树的左右子树可任意交换;④深度为K的顺序二叉树的结点个数小于或等于深度相同的满二叉树。
A.①②③B.②③④C.②④D.①④
16.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的事()。
A.C语言程序仅可以编译执行B.C语言程序仅可以解释执行C.C语言程序既可以编译执行又可以解释执行D.以上说法都不对
17.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.输出无定值B.d,eC.e,fD.g,d
18.
19.在16位C编译系统上,若定义longa;,则能给a赋值40000的正确语句是()
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;
20.以下能正确定义一维数组的选项是______。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
二、2.填空题(20题)21.下列程序的运行结果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
22.在两种基本测试方法中,()测试的原则之一是保证所测模块中每一个独立路径至少执行一次。
23.以下程序的功能是【】。
main()
{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
intsum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf("sum=%6d",sum);
}
24.数据库系统中实现各种数据管理功能的核心软件是______。
25.若有语句:
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是【】。
26.以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。请填空。
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
27.以下函数sstrcat的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:,所指字符串为abed,t所指字符串为efgh,调用函数sstrcat后s所指字符串为abcdefgh。请填空。
#inehde<stdio.h>
#include<string.h>
voidsstuat(char*9,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
28.以下程序运行后的输出结果是【】。
main()
{
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{
n[i]=n[i-1]*2+1;
printfi["%d",n[i]);
}
}
29.下列语句能循环______次。
ints=12;
while(s);
--s;
30.以下程序运行后的输出结果是【】。
main()
{inta[4][4]={{1,2,3,4),{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<4)
{
if(i==2||i==4)continue;
j=0;
do{S+=a[i][j];j++;}while(j<4);
}
printf("%d\n",s);
}
31.下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空______。
32.以下函数的功能是【】。
floatav(a,n)
floata[];
intn;
{inti;floats;
for(i=0,s=0;i<n;i++)s=s+a[i];
returns/n;}
33.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【】。
34.为了列出当前盘当前目录中所有第三个字符为C的文件名的有关信息,应该使用命令【】。
35.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{inta[4][4]={{1,2,3,4},{5'6'7'8},{11'12'13'14},{15'16'17'18}};
inti=0,j=0,s=0;
while(i++<4)
if(i==2[[i==4)continue;
j=0;
do{s+=a[i][j];j++;}while(j<4);
}
pdnff("%d'\n",s);
}
36.设有定义“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc【】a。
37.对下列二叉树进行中序遍历的结果为【】。
38.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后的输出结果是【】。
39.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
40.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件的具体位置,从而确定文件长度,请填空。
FILE*myf;longfl;
myf=【】("test.t","rb”);
fseek(myf,()SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%ld\n",fl);
三、1.选择题(20题)41.C语言规定,函数返回值的类型是由
A.return语句中的表达式类型所决定
B.调用该函数时的主调函数类型所决定
C.调用该函数时系统临时决定
D.在定义该函数时所指定的函数类型所决定
42.若有下面的说明和定义:structtest{intm1;Charm2;floatm3;unionuu{charu1[5];intu2[2];}ua;}myaa;则sizeof(structtest)的值是
A.12B.16C.14D.9
43.若有说明:intn=2,*p=&n,*q=p;,则以下非法的赋值语句是
A.p=q;B.*p=*q;C.n=*q;D.p=n;
44.有以下程序voidf(int*x,int*y){intt;t=*X;*X=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7);while(p>q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序运行后的输出结果是
A.8,2,3,4,5,6,7,1,
B.5,6,7,8,1,2,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1,
45.在一棵二叉树上第5层的结点数最多是______。
A.8B.16C.32D.15
46.下列程序的运行结果是#include"stdio.h"main(){intx=-9,y=5,z=8;if(x<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);}
A.6B.7C.8D.9
47.下列程序的输出结果是______。structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dr[0],60,&dr[0],}main(){p=aa;printf("%d\n",++(p->x));}
A.51B.11C.10D.60
48.已知i、j、k为血型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。
A.scanf("%3d,%3d,%3d",&i,&j,&k);
B.scan("%d,%d,%d",&i,&j,&k);
C.scan("%do/od%d",&i,及j,&k);
D.scanf("i=%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年生物多样性保护法律与政策考试题
- 2025-2026年上海市生态文明知识测试卷
- 2026年网络安全风险评估与控制备考习题
- 2025-2026年电子商务师考试电子商务安全与隐私保护习题
- 分析仪校准合同
- 2026年合同到期工作总结(3篇)
- 2026年医院专科护士培养工作计划
- 2026下半年初中美术教资面试结构化真题题库
- DB63-T 2274-2024 枸杞产业标准体系
- 信用风险管理增强中国金融企业稳健经营能力
- 精神科用药错误应急措施
- 广州医科大学2024年临床医学(呼吸内科)内科学试题及答案
- DB52∕T 1401.26-2020 山地旅游 第26部分:景区最大承载量核定指引
- 模拟政协课件
- 保山电力股份有限公司招聘笔试题库
- 风电场施工材料采购与管理方案
- 医学计算机应用
- 童年第九章题目和答案
- 中风偏瘫中医护理查房
- 供货计划安排方案(3篇)
- 2024年贵州省粮食储备集团有限公司招聘真题
评论
0/150
提交评论