版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年山东省东营市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。
A.INPUTX,Y,Z;
B.scanf("%d%d%d",&X,&Y,&Z);
C.scanf("%d%d%d",X,Y,Z);
D.read("%d%d%d",&X,&Y,&Z);
2.有以下程序:#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(“%d\n”,c);}程序的运行结果是()。
A.1B.2C.3D.4
3.下列选项中,当x为大于1的奇数时,值为0的表达式是()。
A.x%2==1B.x/2C.x%2!=0D.x%2==0
4.若要判断char型变量c中存放的是否为小写字母,以下正确的表达式是()。A.'a'<=c<='z'
B.(c>='a')&&(c<='z')
C.(c>='a')‖(c<='z')
D.('a'<=c)AND('z'>=c)
5.设x、y、z、t均为int型变量,则执行以下语句后,t的值是()x=y=z=l;t=++x||++y&&++z;
A.不定值B.2C.1D.0
6.有以下程序:#include<stdio.h>#include<strin9.h>main(){printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}程序运行后的输出结果是()。A.3B.8C.4D.9
7.已知intt=0;while(t=1){…}则以下叙述正确的是()。
A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对
8.以下选项中可作为C语言合法常量的是_____。A.-80B.-080C.-8e1.0D.-80.Oe
9.
10.
11.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
12.有以下函数intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函数的功能是()。A.查找X和y所指字符串中是否有\o
B.统计x和Y所指字符串中最前面连续相同的字符个数
C.将Y所指字符串赋给X所指定存储空间
D.统计X和Y所指字符串中相同的字符个数
13.设有定义“char*c;”,以下选项中能够使c正确指向一个字符串的是()。
A.charstr[]=“string”;c=str;
B.scanf(“%s”,c);
C.c=getchar();
D.*c=“string”;
14.以下叙述中错误的是()。
A.将函数内的局部变量说明为static存储类是为了限制其他编译单位的引用
B.—个变量作用域的开始位置完全取决于变量定义语句的位置
C.全局变量可以在函数以外的任何部位进行定义
D.局部变量的“生存期”只限于本次函数调用,因此不能将局部变量的运算结果保存至下一次调用
15.有以下程序: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,
16.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
17.以下程序执行后的输出结果是()。
A.5,5
B.5,11
C.11,11
D.11,5
18.使用二分查找算法在一个有序序列中查找一个元素的时间复杂度为()
A.O(N)B.O(logN)C.O(N*N)D.O(N*logN)
19.有以下程序:#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序的运行结果是()。
A.0B.-12C.-20D.10
20.设栈S的初始状态为空,6个元素入栈的顺序为e1,e2,e3,e4,e5和e6。若出栈的顺序是e2,e4,e3,e6,e5,el,则栈s的容量至少应该是()。
A.6B.4C.3D.2
二、2.填空题(20题)21.数据结构分为逻辑结构与存储结构,线性链表属于【】。
22.算法执行过程中所需要的存储空间称为算法的______。
23.有下列程序,功能是把输入的+进制长整型数以+六进制的形式输出,完成程序
#include"stdio.h"
main()
{charb[17]={"0123456789ABCDEF"};
intc[50],d,i=0,base=16;
longn;
scanf("%1d",&n);
do{c[i]=n%base;i++;n=【】;}
while(n!=0);
for(--i;i>=0;--i)
{d=【】;printf("%c",b[d]);}
printf("H\n");}
24.下列程序的输出结果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
25.算法的基本特征主要包括叫个方面,它们分别是可行性、确定性、()和拥有足够的情报。
26.在面向对象方法中,属性与操作相似的一组对象称为【】。
27.设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有【】个元素。
28.执行以下for语句后,变量i的值是【】。
for(i=1;i++<=5;);
29.以下和程序中,主函数调用了lineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值,请填空。
#defineN3
#defineM4
voidlineMax(intx[N][M])
{inti,j,p;
for(i=0;i<N;i++)
{p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j]【】;
printf("Themaxvalueinlineis%d\n",【】);
}
{
main()
{intx[N][M]={1,5,4,2,6,4,3,8,2,3,1};
【】;
}
30.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abcl23edf456gh,执行程序后输出:123456。请填空。
#include<stdioo.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
31.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。
32.以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}
33.数据的逻辑结构在计算机存储空间中的存放形式称为数据的【】。
34.下面程序段的输出结果是【】。
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
print("%d\n",sum);
35.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
36.阅读下面程序,则程序的执行结果为【】。
#include"stdio.h"
main()
{inta=30,b=20,z;
z=fun(a+b,a-b);
printf("%d\n",z);}
fun(inta,intb)
{intz;
z=a/b;
returnz;}
37.请选出以下程序的输出结果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);Printf("%d",x);}printf("\n");}sub(S,y)int*s,y;{staticintt=3;y=s[t];t--;}
38.下列程序的运行结果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%\n",p);
}
39.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
40.以下程序的输出结果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
三、1.选择题(20题)41.有以下程序#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]++;for(i=l;i<5;i++)printf("%d",c[i]);printf("\n");}程序的运行结果是
A.1234B.2344C.4332D.1123
42.下面程序的输出结果是()。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,7,10},*p;p=a;printf("%d\n",*p+8);}
A.0B.1C.10D.9
43.下列程序的输出结果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}
A.1,2B.1,3C.0,2D.0,3
44.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序运行后的输出结果是______。
A.SunDan20044580
B.Penghua20045537
C.LiSiGUO20042580
D.SunDan20041703
45.没有程序段:intk=10;while(k=0)k=k-1;则下面描述中正确的是()。
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
46.在位运算中,操作数左移一位,其结果相当于A.A.操作数乘以2
B.操作数除以2
C.操作数除以4
D.操作数乘以4
47.以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。voidf(intb[],intn,intflag){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(flag?b[!]>[j]:b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}}main(){inta[10]={5,4,3,2,1,6,7,8,9,10},i;f(&a[2],5,0);f(a,5,1),for(i=0;i<10;i++)printf("%d,",a[i]);}程序运行后输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.3,4,5,6,7,2,1,8,9,10,
C.5,4,3,2,1,6,7,8,9,10,
D.10,9,8,7,6,5,4,3,2,1,
48.设变量a,b,c,d和y都已正确定义并赋值。若有以下if语句
if(a<b)
if(c==d)y=0;
elsey=1;
A.
B.
C.
D.
49.下面的程序执行后,文件test.t中内容是______。#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"W");for(i=0;i<strlen(st);i++)foutc(st[i]myf;fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello,rid
50.人们提出了用______的原理来设计软件,这就是软件工程学诞生的基础。
A.计算机科学B.数学C.工程学D.运筹学
51.软件需求分析阶段的工作,可以分为四个方面需求获取,需求分析,编写需求规格说明书,以及()A.阶段性报告B.需求评审C.总结D.以上都不正确
52.对于一个正常运行的C程序,下列叙述中正确的是()。A.A.程序的执行总是从main函数开始,在main函数结束
B.程序的执行总是从程序的第一个函数开始,在main函数结束
C.程序的执行总是从main函数开始,在程序的最后一个函数中结束
D.程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束
53.若有以下定义和语句,则输出结果是______。char*s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));
A.4B.5C.9D.10
54.以下叙述中错误的是()。
A.可以通过typedef增加新的类型
B.可以用tyPedef将已存在的类型用新的名字来表示
C.用typedef定义新的类型名后,原有类型名仍有效
D.用tyPedcf可以为各种类型起别名,但不能为变量起别名
55.请阅读以下程序:
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;}
case2:
a++,b++;break;}
printf("a=%d,b=%d\n",a,b);
上面程序的输出结果是
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
56.下列关于线性链表的描述中正确的是()。
A.存储空间不一定连续,且各元素的存储顺序是任意的
B.存储空间不一定连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且各前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
57.下列程序的输出结果是______。main(){inti,k,ai[0],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+l)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
58.设有下列二叉树:
对此二叉树后序遍历的结果为
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
59.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
60.以下程序的输出结果是_______。main(){inta=-1,b=1,k;if(++a<0)&&!(b-<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}
A.-11B.01C.10D.00
四、选择题(20题)61.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
62.
63.
下面程序输出的是()。
main
{intt=l;fun(fun(t));}
fun(inth)
{staticinta[3]={1.2.3};
intk;
for(k=0;k<3;k++)a[k]+=a[k]-h;
for(k=0;k<3;k++)printf("%d",a[k]);
printf("\n");
return(a[h]);}
A.1,2,3,1,5,9,
B.1,3,5,1,3,j,
C.1,3,5,0,4,8,
D.1,3。5,-1,3,7,
64.设有以下语句:inta=1,b=2,c;c=a^(b<<2);执行后,c的值为()。A.6B.7C.8D.9
65.有以下程序:
程序运行后的输出结果是()。
A.7B.5C.3D.9
66.设有定义:doublex=5.16894;,则语句prinff(”%If\n”,(int)(x$1000+0.5)/1000.);的输出结果是()。
A.5.16900B.5.16800C.0.00000D.输出格式说明符与输出项不匹配,产生错误信息
67.有如下程序:
则b的值是()。
A.15B.16C.18D.19
68.有以下程序段:
以下选项中表达式的值为11的是()。
A.++pt一>xB.pt一>xC.*pt一>yD.(pt++)一>x
69.以下定义数组的语句中错误的是()。
70.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A.10B.8C.6D.4
71.下列关于栈的描述错误的是()。
A.栈按“先进后出”组织数据B.栈是特殊的线性表,只能在一端插入或删除数据C.栈具有记忆功能D.栈只能顺序存储
72.若有语句:Char*line[5];,以下叙述中正确的是()。
A.定义line是一个数组,每个数组元素是一个基类型为Char的指针变量
B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C.定义line是一个指针数组,语句中的*号称为间址运算符
D.定义line是一个指向字符型函数的指针
73.程序段:intx=12;doubley=3.141593;printf(”%d%8.6f”,x,y.;的输出结果是()。
A.123.141593
B.123.141593
C.12,3.141593
D.123.1415930
74.设有以下函数:
75.有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序运行后的输出结果是
A.12B.15C.16D.20
76.下列叙述中正确的是()。
A.每个C语言程序文件中都必须要有一个main(.函数
B.在c语言程序中main(.函数的位置是固定的
C.c语言程序中所有函数之间都可以相互调用,与函数所在位置无关
D.在c语言程序的函数中不能定义另一个函数
77.有如下程序:
main()
{intx=1,a=0,b=0;
switch(x)
{
case0:b++;
casel:a++;
case2:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
78.
79.有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i<7);printf("%d\n",s);}执行后输出结果是
A.16B.12C.28D.21
80.以下程序的运行结果是()。
A.17B.16C.15D.14
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。π/4≈1-1/3+1/5-1/7+…例如,程序运行后,输入0.0001,则程序输出3.1414。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编一个函数voidproc(intttEM][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#defineM3
#defineN4
voidproc(intttrM3rN]。intpp[N])
{}
voidmain
{
intstr[M][N]={{34,56,84,78},
{23,84,93,12),
{28,38,39,93}};
intp[N],i,j,k;
system("CLS");
printf("Theriginaldatais:\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%6d",str[i][j]);
printf("\n");
}
proc(str,p);
printf("\nTheresultis:\n");for(k=0:k<M;k++)
printf("%4d",p[k]);
printf("n");}
参考答案
1.B解析:scanf()函数要求将输入的数据存入变量所在的地址。选项A不是C语言中的输入语句,故选项A不正确;选项C中输入的是变量字符串而不是地址字符串,不满足scanf()函数要求将输入的数据存入变量所在的地址,故选项C不正确;选项D不是C语言中的输入语句,故选项D不正确:所以,4个选项中选项B符合题意。
2.C该程序中“int*p1=&a,*p2=&b,*p=&c;”定义了3个指针变量,并赋值。指针变量p1指向a,p2指向b,p指向c。执行“*p=*p1*(*p2);”语句,给p所指的存储单元c赋值。p1所指的存储单元的值,与p2所指的存储单元b的值相乘,也就是c=a*b,等价于c=1*3=3。故本题答案为C选项。
3.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项D)等于关系表达式的结果为假,即等于0。
4.BC语言中,char型变量的值是其对应字符的ASCII值,可以做比较运算。由于小写字母的ASCII值按字母表的顺序连续递增,因此判断char型变量c是不是小写字母时,判断c的ASCII值是否在’a’和’z’之间,即(c>=’a’)&&(c<=’z’)。本题答案为B选项。
5.C
6.B本题考查strlen函数和转移字符,strlen函数的功能是求字符串的长度,在本题中有“\”,C语言中“\”是转义字符,在计算长度时会将转义符以及后面的第一个字符作为1个长度进行计算,所以答
7.B解析:t=1是将t赋值为1,所以循环控制表达式的值为1。判断t是否等于1时,应用t==1,注意“=”与“==”的用法。
8.A解析:C语言的常量分为整型常量、实型常量和字符型常量。选项A属于实型常量中的十进制小数形式的表示法,是合法的。
9.C
10.C
11.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。
12.B由题中while(*x==*y*x!=\\n)可知此函数是统计x和y所指向的字符串中最前面的联系相同的字符的个数。
13.A选项A为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组时为其分配确定的地址)。C选项错误,getchar函数输入一个字符给字符型变量,而不是字符指针。B选项和D选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在B选项和D选项中,字符指针没有被赋值,是一个不确定的值,指向一个不确定的内存区域,这个区域可能存放有用的指令或数据。在这个不确定的区域重新存放字符串,可能会发生无法预知的错误。故本题答案为A选项。
14.A将函数内的局部变量说明为static存储类,第1次调用该函数时才对其初始化,后续调用时使用上一次调用结束后的值;函数体内的局部变量无论是否声明为stat\x1fic,外部编译单位都不能引用,选项A错误,其他选项正确。本题答案为A选项。
15.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符合题意。
16.B解析:条件表达式的形式为:“表达式1?表达式2:表达式3”。其含义为:当“表达式1”的值为非零时,求出“表达式2”的值,此时“表达式2”的值就是整个条件表达式的值;当“表达式1”的值为零时,求出“表达式3”的值,此时“表达式3”的值就是整个条件表达式的值。对于本题来说,当表达式EXP为非0值时条件成立,即执行语句i++;当EXP等于0时,执行语句j--;这等同于条件表达式“(EXP!=0)?i++:i++;”。
17.Bmain函数中的局部变量m与fun函数中的静态局部变量m同名,因此main访问的是其局部变量m,所以main中的两次函数调用,实际上都是调用fun(1,1)。
第一次调用时,i=i+(m+1)=2+(0+1)=3,m=i+x+y=3+1+1=5。
第二次调用时,i=i+(m+1)=3+(5+1)=9,m=i+x+y=9+1+l=11。
所以程序输出5,11。
18.B
19.C宏定义只是做简单的替换,本题中SUB(a+b)*c=(a+b)-(a+b)*c=-20。故本题答案为C选项。
20.C
21.存储结构
22.空间复杂度空间复杂度解析:算法执行时所需要的存储空间,称为算法的空间复杂度。
23.n/base或n/16c[i]n/base或n/16\r\nc[i]解析:字符串的综合运用。
24.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。
25.有穷性有穷性
26.类类解析:在面向对象方法中,类描述的是具有相似性质的一组对象。所以,属性与操作相似的一组对象称为类。
27.2424解析:在循环队列中因为头指针指向的是队头元素的前一个位置,所以是从第6个位置开始有数据元素,所以队列中的数据元素的个数为29-5=24。
28.7
29.p=jx[i][p]lineMax(x)
30.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:“chars[80],d[80];”定义了两个字符型数组,可以放入80个字符。gets函数是C语言提供的一个专门用于读字符串的函数,它读入全部字符(包括空格),直到遇到回车为止。本题中,读入字符串s后,开始比较s中的每个字符是否为数字字符,因为字符数据在内存中以相应的ASCII码存放,所以只需比较相应的字符是否在'0'到'9'之间,或使用库函数isdigit(),来判断是否为数字字符。如果是数字字符则将此字符存入d数组中,不是则继续进行下一字符的比较,直至s结束(即'0'的出现)。将'\\0'字符作为字符串d结束标志,最后调用puts函数输出d。所以空白处应填入比较语句s[i]>>='0'&&s[i]<='9'或isdigit(s[i])以及其他任何等价表达式。
31.模块模块解析:矩形表示的是模块,箭头表示的是模块间的调用关系。用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。
32.x=2
33.模式或逻辑模式或概念模式模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等。
34.16
35.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
36.55解析:函数调用的时候,函数名字必须与所调用的函数名完全一致,形参与实参类型要一致,在没有给出函数返回值类型的情况下,默认为整形,当返回值为整型的函数放到主函数后面时,可以不需要事先说明就调用这个函数。return既可以返回一个普通常量,也可以返回一个指针变量。
37.C
38.efghefgh解析:函数ss的作用是让形参指针s指向该字符串的右半部分。主函数中首先定义了一个字符型指针变量p和字符型指针str,并初始化为“abcdefgh”,然后调用函数ss,将实参str传给形参s,因此可知该函数返回的指针,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后输出指针p(指针p的值为调用函数ss(str)的返回值)所指向的字符串为“efgh”。
39.静态分析静态分析解析:程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
40.00解析:对于一个unsignedshort来说,它能取的最大值是65535。这里给a赋值65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它(全零)。所以a的值实际为0。
41.C解析:在for(i=0;i<12;i++)c[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组c的4个元素的值分别为4、3、3、2。
42.D解析:“*”号的优先级比“+”的优先级高,所以先执行“*P”:指针P指向的是数组的首地址,因此*p=1;再加8得9。
43.D解析:本题主要考查自加(++)、自减(--)运算符的使用。“++i,--i”在使用i之前,先使i的值加1或者减1,然后再使用i此时的值参与运算;“i++,i--”是在使用i参与表达式运算之后,再使i的值加1或者减1。本题中--a和++b是先执行a减1和b加1操作,再输出表达式的值。
44.B解析:f函数用了显式传地址的方式,因此主函数中的s值发生了变化。
45.C解析:本题的while语句是将0赋给k,表达式的值为0,没有执行循环体语句。
46.A左移运算符“<<”是双目运算符,其功能是把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如,a<<4是把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
47.B解析:题目中先后两次调用了函数f()。第1次,使用参数“&a[2],5,0”表示从数组a下标为2的元素开始,对其后的5个元素进行由大到小排序。所以排序结果是{5,4,7,6,3,2,1,8,9,10)。第2次,使用参数“a,5,1”表示从数组a的首元素开始,对其后5个元素进行由小到大排序。所以排序结果是{3,4,5,6,7,2,1,8,9,10)。故本题应该选择B。
48.C解析:本题考查的是if语句的嵌套。解此类题目只需记住else子句总是与前面最近的不带else的if相结合,切不可轻信试卷上的缩进格式。另外,花括号括起来部分相当于一条语句,外部else不可与内部的if结合,应把整个花括号部分看成一条普通语句.所以题目中的嵌套讧语句的意思是“在a<b的前提下,如果c==d就让y=0,如果c!=d就让y=1。”所以应该选择C。
49.A解析:C语言中文件有文本文件与二进制文件,对文件的使用前必须先打开,打开方式有只读、写入、读写等方式。
50.C
51.B解析:需求分析阶段的工作,可以概括为以下4个方面:需求获取、需求分析、编写需求规格说明书和需求评审。本题的正确答案为选项B。
52.A解析:一个C语言源程序无论包括了多少函数,总是从main函数开始执行,从main函数结束。
53.A
54.A解析:选项A)错误,原因是typedef可以声明新的类型名来代替已有的类型名,但却不能增加新的类型。
55.A解析:考查switch语句的使用。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。
56.A解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。
57.B
58.D解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求后序遍历,其遍历顺序应该为:后序遍历左子树->,后序遍历右子树->,访问根结点。按照定义,后序遍历序列是DEBFCA,故答案为D。
59.B解析:本题考查while语句的使用。本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符'!'的优先级大于不等于运算符'!='的优先级。
60.C解析:逻辑运算符的优先次序如下:!(非)→&&(与)→||(或),但本题特别注意的是短路的概念。
61.D解析:在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择D。
62.D
63.D
\n本题考查双重函数调用及for循环使用,fun函数中第一个for循环语句的作用是给数组a赋值。当第一次调用fun函数时,把实参1传给形参,输出a数组的元素为1,3,5;第二次调用fun函数时,由于数组a为静态局部变量,故输出a数组的元素为一1,3,7。
\n
64.D本题考查两个知识点,按位异或左移把b左移2位化成二进制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故选择D。
65.C向switch语句块传送参数后,编译器会1先寻找匹配的csse语句块,找到后就执行该语句块。遇到break跳出;如果没有匹配的语句块,则执行default语句块。ca∞与default没有顺序之分。所以第2次循环k的值为l,执行c+:k,c的值为1,再执行case2后的语句c++,c的值为2,遇到break语句跳出循环;第二次循环k的值为2,执行case2后面的语句c++,C的值为3,跳出循环。
66.A(x}1000+0.5)表示x移动3位小数,细0.5,也就是小数第4位加5,若这位大于等于5,则进1到个整。因为“5.16894}10005168.94+0.575169.44”所以(int)(x$1000+0.5)强制转换为整型结果为5169。(5169/1000.0)5.169,由于1000.0结果自动转换为浮点数所以prinff(“%lf\n”,5.169)结果是5.16900。故答案为A选项
67.DP=&a[3]将指针指向数组a的第4个元素,P[5]指向数组a的第9个元素,而a[8]=19,所以b=19。
68.A本题考查结构体数组初始化以及结构体变量的引用,题目中定义了一个结构体数组C并初始化,指针pt指向c的第一个元素,那么pt一>x为10,++pt一>x为11,4pt一>Y为1,(pt++)一>x为20,所以答案为A。
69.AA)选项中定义的数组为2行4列,而赋值时赋成了3行,因此出错。
70.C根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
71.B\n栈是限定在一端进行插入与删除的线性表,允许插入和删除元素的一端称为栈顶,另一端为栈底。栈顶元素是最后被插入的元素,也是最先被删除的元素,即栈是按照”先进后出”的原则组织数据的。栈具有记忆功能,带链的栈的结点存储顺序与其逻辑顺序可以不一致。
\n
72.A解析:理解复杂定义要掌握两点:一、右结合原则.本题中的定义char*line[5];等价于char*(line[5]);;二、自外向内分解成typedef语句。char*(line[5]);等价于typedefchar*A;Aline[5];其中A被typedef定义成字符指针的别名,然后line被定义成A的一维数组,即字符指针的一维数组。再来看看行指针的定义char(*line)[5];它应该被分解成typedefcharB[5];B*line;其中B被定义成包含5个元素的一维字符数组,然后line被定义成指向B的指针,即指向包含5个元素的一维字符数组的指针。所以两者切不可混淆了,后者的括号不能省略。故本题应该选择A。
73.A本题考查prinff函数的输出格式控制符,%m.nf表示指定输出的实型数据的宽度为m(包含小数点),并保留n位小数。当输出数据的小数位大于n时,截去右边多余的小数,并对截去的部分的第一位做四舍五入的处理;当输出数据小数位小于n时,在小数的最右边补0,输出数据的小数部分宽度为n。若给出的总宽度m小于ll加上整数位数和小数点,则自动突破m的限制;反之,数字右对齐,左边补空格。本题中3.141593数值长度为8,小数位数是6,因此左端没有空格,故正确答案为A。
74.A赋值给函数指针,需要函数的参数一致,返回值一致,才可以赋值。选项A)正确。
75.A解析:此题考查的是编译预处理命令以及自加运算符。F(a++,b++)先取a和b的值,参加运算,再把a和b的值分别加1,所以F(a++,b++)=F(3,4)=3*4=12。
76.Amain函数是c语言程序的主函数,可以出现在程序中的任何位置。函数是c语言程序的基本模块,函数内部可以再定义其他函数。但函数间可相互调用,被调用的既可以是c语言提供的库函数,也可以是用户自定义函数。
77.A\n当X为1时,执行case1,a自加等于1,因为case1后没有break,接着执行case2,此时a的值为2,b自加为1,故选择A选项。
\n
78.D
79.A解析:do循环与continue语句,在循环体中有一条if语句,其后面表达式为“i%2”,当i的值为奇数时,其值为真,执行其后面的语句,i的值加1,重新开始循环,当i的值为偶数时,“i%2”为假,执行“i++;s+=i”。在循环中i为偶数时的值分别为0、2、4、6,加1过后的值分别为1、3、5、7,s中存放的是它们的和,值为16。
80.Dfun函数语句retun3(a++)+c;中访问的a,是其内部定义的静态局部变量,main函数中语句k+=f(a)访问的a是其局部变量,所以两次调用实际上都是调用f(3)。第一次调用时,fun函数中c=4,表达式(a++)+c的
值为6,a递增为3,k=6。第二次调用时,fun函数种c=4,表达式(a++)+c的值为7,a递增为4,k=6+7=13。语句k+=a中的a是全局变量,所以k=13+l=14。
81.82.\r\n\tvoidproc(inttt[M][N],intpp[N])
inti,j,max;
for(i=0;i<M;i++)//i控制行的下标
{
max=tt[i][c];//max存放每行中最大的数
for(j=0;j<N;j++)
if(tt[i][j]>max)
max=tt[i][j];
pp[i]=max;//把大的数放到PP数组中,经过i来控制pp数组的下标
}
}
【解析】按照题目中要求,求出二维数组每行中最大元素,并依次放入PP所指的一维数组中。首先比较二维数组中每一行的元素,找出每一行中的最大元素,放入一维数组pp中,返回到主函数当中。2022-2023年山东省东营市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。
A.INPUTX,Y,Z;
B.scanf("%d%d%d",&X,&Y,&Z);
C.scanf("%d%d%d",X,Y,Z);
D.read("%d%d%d",&X,&Y,&Z);
2.有以下程序:#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(“%d\n”,c);}程序的运行结果是()。
A.1B.2C.3D.4
3.下列选项中,当x为大于1的奇数时,值为0的表达式是()。
A.x%2==1B.x/2C.x%2!=0D.x%2==0
4.若要判断char型变量c中存放的是否为小写字母,以下正确的表达式是()。A.'a'<=c<='z'
B.(c>='a')&&(c<='z')
C.(c>='a')‖(c<='z')
D.('a'<=c)AND('z'>=c)
5.设x、y、z、t均为int型变量,则执行以下语句后,t的值是()x=y=z=l;t=++x||++y&&++z;
A.不定值B.2C.1D.0
6.有以下程序:#include<stdio.h>#include<strin9.h>main(){printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}程序运行后的输出结果是()。A.3B.8C.4D.9
7.已知intt=0;while(t=1){…}则以下叙述正确的是()。
A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对
8.以下选项中可作为C语言合法常量的是_____。A.-80B.-080C.-8e1.0D.-80.Oe
9.
10.
11.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),
A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定
12.有以下函数intfun(char*X,char*y){intn=0;while((*x===*y)*x!=\O){x++;y++;n++;}returnn;}函数的功能是()。A.查找X和y所指字符串中是否有\o
B.统计x和Y所指字符串中最前面连续相同的字符个数
C.将Y所指字符串赋给X所指定存储空间
D.统计X和Y所指字符串中相同的字符个数
13.设有定义“char*c;”,以下选项中能够使c正确指向一个字符串的是()。
A.charstr[]=“string”;c=str;
B.scanf(“%s”,c);
C.c=getchar();
D.*c=“string”;
14.以下叙述中错误的是()。
A.将函数内的局部变量说明为static存储类是为了限制其他编译单位的引用
B.—个变量作用域的开始位置完全取决于变量定义语句的位置
C.全局变量可以在函数以外的任何部位进行定义
D.局部变量的“生存期”只限于本次函数调用,因此不能将局部变量的运算结果保存至下一次调用
15.有以下程序: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,
16.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
17.以下程序执行后的输出结果是()。
A.5,5
B.5,11
C.11,11
D.11,5
18.使用二分查找算法在一个有序序列中查找一个元素的时间复杂度为()
A.O(N)B.O(logN)C.O(N*N)D.O(N*logN)
19.有以下程序:#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序的运行结果是()。
A.0B.-12C.-20D.10
20.设栈S的初始状态为空,6个元素入栈的顺序为e1,e2,e3,e4,e5和e6。若出栈的顺序是e2,e4,e3,e6,e5,el,则栈s的容量至少应该是()。
A.6B.4C.3D.2
二、2.填空题(20题)21.数据结构分为逻辑结构与存储结构,线性链表属于【】。
22.算法执行过程中所需要的存储空间称为算法的______。
23.有下列程序,功能是把输入的+进制长整型数以+六进制的形式输出,完成程序
#include"stdio.h"
main()
{charb[17]={"0123456789ABCDEF"};
intc[50],d,i=0,base=16;
longn;
scanf("%1d",&n);
do{c[i]=n%base;i++;n=【】;}
while(n!=0);
for(--i;i>=0;--i)
{d=【】;printf("%c",b[d]);}
printf("H\n");}
24.下列程序的输出结果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
25.算法的基本特征主要包括叫个方面,它们分别是可行性、确定性、()和拥有足够的情报。
26.在面向对象方法中,属性与操作相似的一组对象称为【】。
27.设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有【】个元素。
28.执行以下for语句后,变量i的值是【】。
for(i=1;i++<=5;);
29.以下和程序中,主函数调用了lineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值,请填空。
#defineN3
#defineM4
voidlineMax(intx[N][M])
{inti,j,p;
for(i=0;i<N;i++)
{p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j]【】;
printf("Themaxvalueinlineis%d\n",【】);
}
{
main()
{intx[N][M]={1,5,4,2,6,4,3,8,2,3,1};
【】;
}
30.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abcl23edf456gh,执行程序后输出:123456。请填空。
#include<stdioo.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
31.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。
32.以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}
33.数据的逻辑结构在计算机存储空间中的存放形式称为数据的【】。
34.下面程序段的输出结果是【】。
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
print("%d\n",sum);
35.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
36.阅读下面程序,则程序的执行结果为【】。
#include"stdio.h"
main()
{inta=30,b=20,z;
z=fun(a+b,a-b);
printf("%d\n",z);}
fun(inta,intb)
{intz;
z=a/b;
returnz;}
37.请选出以下程序的输出结果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);Printf("%d",x);}printf("\n");}sub(S,y)int*s,y;{staticintt=3;y=s[t];t--;}
38.下列程序的运行结果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%\n",p);
}
39.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
40.以下程序的输出结果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
三、1.选择题(20题)41.有以下程序#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]++;for(i=l;i<5;i++)printf("%d",c[i]);printf("\n");}程序的运行结果是
A.1234B.2344C.4332D.1123
42.下面程序的输出结果是()。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,7,10},*p;p=a;printf("%d\n",*p+8);}
A.0B.1C.10D.9
43.下列程序的输出结果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}
A.1,2B.1,3C.0,2D.0,3
44.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序运行后的输出结果是______。
A.SunDan20044580
B.Penghua20045537
C.LiSiGUO20042580
D.SunDan20041703
45.没有程序段:intk=10;while(k=0)k=k-1;则下面描述中正确的是()。
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
46.在位运算中,操作数左移一位,其结果相当于A.A.操作数乘以2
B.操作数除以2
C.操作数除以4
D.操作数乘以4
47.以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序。voidf(intb[],intn,intflag){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(flag?b[!]>[j]:b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}}main(){inta[10]={5,4,3,2,1,6,7,8,9,10},i;f(&a[2],5,0);f(a,5,1),for(i=0;i<10;i++)printf("%d,",a[i]);}程序运行后输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.3,4,5,6,7,2,1,8,9,10,
C.5,4,3,2,1,6,7,8,9,10,
D.10,9,8,7,6,5,4,3,2,1,
48.设变量a,b,c,d和y都已正确定义并赋值。若有以下if语句
if(a<b)
if(c==d)y=0;
elsey=1;
A.
B.
C.
D.
49.下面的程序执行后,文件test.t中内容是______。#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"W");for(i=0;i<strlen(st);i++)foutc(st[i]myf;fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello,rid
50.人们提出了用______的原理来设计软件,这就是软件工程学诞生的基础。
A.计算机科学B.数学C.工程学D.运筹学
51.软件需求分析阶段的工作,可以分为四个方面需求获取,需求分析,编写需求规格说明书,以及()A.阶段性报告B.需求评审C.总结D.以上都不正确
52.对于一个正常运行的C程序,下列叙述中正确的是()。A.A.程序的执行总是从main函数开始,在main函数结束
B.程序的执行总是从程序的第一个函数开始,在main函数结束
C.程序的执行总是从main函数开始,在程序的最后一个函数中结束
D.程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束
53.若有以下定义和语句,则输出结果是______。char*s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));
A.4B.5C.9D.10
54.以下叙述中错误的是()。
A.可以通过typedef增加新的类型
B.可以用tyPedef将已存在的类型用新的名字来表示
C.用typedef定义新的类型名后,原有类型名仍有效
D.用tyPedcf可以为各种类型起别名,但不能为变量起别名
55.请阅读以下程序:
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;}
case2:
a++,b++;break;}
printf("a=%d,b=%d\n",a,b);
上面程序的输出结果是
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
56.下列关于线性链表的描述中正确的是()。
A.存储空间不一定连续,且各元素的存储顺序是任意的
B.存储空间不一定连续,且前件元素一定存储在后件元素的前面
C.存储空间必须连续,且各前件元素一定存储在后件元素的前面
D.存储空间必须连续,且各元素的存储顺序是任意的
57.下列程序的输出结果是______。main(){inti,k,ai[0],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+l)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
58.设有下列二叉树:
对此二叉树后序遍历的结果为
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
59.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
60.以下程序的输出结果是_______。main(){inta=-1,b=1,k;if(++a<0)&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东省临沂商城外国语校初三教学测试(一)生物试题含解析
- 2026届济南市天桥区重点中学初三第二次月考试题含解析
- 2026年各地陆海统筹可复制经验做法典型案例汇编
- 苏州市吴江区达标名校2026届高中毕业生五月供题训练化学试题试卷含解析
- 河北省邢台市名校2025-2026学年初三第一次调查研究考试(4月)化学试题含解析
- 2026年千元级激光雷达与纯视觉方案成本优势
- 2026年偏远地区通信覆盖难题破解:6G非地面网络从设计之初即集成
- 美容院顾客服务专员操作指南
- 新浪网络推广策划与时间安排表
- 京东集团内部品牌管理流程规范
- 西方心理学史课件
- 入职体检肝功能查询报告
- CPK-数据自动生成器
- 商业运营管理培训课件
- 国防科技大学宣讲ppt
- 闽教版小学英语五年级下册校本作业
- 自制中外对比旧约历史年代对照表
- 结构化面试答题套路90结构化面试题型及答题套路
- GB 20922-2007城市污水再生利用农田灌溉用水水质
- FZ/T 43008-2012和服绸
- 浓密池专项施工方案
评论
0/150
提交评论