版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年福建省泉州市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下函数:fun(char*p){returnp;}该函数的返回值是()。
A.无确切值B.形参p中存放的地址值C.一个临时存储单元的地址D.形参p自身的地址值
2.下列描述错误的是()。
A.继承分为多重继承和单继承
B.对象之间的通信靠传递消息来实现
C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征
D.类是具有共同属性、共同方法的对象的集合
3.软盘上第()磁道最重要,一旦损坏,该盘就不能使用了。
A.0B.40C.1D.80
4.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。
A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)
5.有下列程序:main{inti,j,x=0;for(i=0,i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++:}x++:}printf("x=%d\n",x);}程序执行后的输出结果是()。A.x=4B.x=8C.x=6D.x=12
6.C语言可执行程序的开始执行点是()。
A.包含文件中的第一个函数B.程序中第一个函数C.程序中的main()函数D.程序中第一条语句
7.数据结构通常是研究数据的及它们之间的联系______。A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑
8.下列有关数据库的描述,正确的是______。
A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件
9.下列程序的输出结果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999
10.循环队列存储在数组A[0..m]中,则入队时的操作为()。
A.rear=rear+1
B.rear=(rear+1)mod(m-1)
C.rear=(rear+1)modm
D.rear=(rear+1)mod(m+1)
11.已知:intx,y;doublez;则以下语句中错误的函数调用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
12.以下叙述中正确的是()。
A.在switch语句中,不一定使用break语句
B.break语句只能用于switch语句
C.break语句必须与switch语句中的case配对使用
D.在switch语句中必须使用default
13.设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。
A.xYB.x<=YC.x‖y+zy-zD.!((x
14.有以下程序:程序运行后的输出结果是()。
A.10B.40C.32D.8
15.下面的排序算法中初始数据集的排列顺序对算法的性能无影响的是()A.插入排序B.堆排序C.冒泡排序D.快速排序
16.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的运行结果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
17.以下叙述中错误的是()。
A.由3种基本结构构成的程序只能解决简单问题
B.结构化程序由顺序、分支、循环3种基本结构组成
C.C语言是一种结构化程序设计语言
D.结构化程序设计提倡模块化的设计方法
18.
19.若有定义intx=3,y=2和floata=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是()。
A.0B.2C.1.5D.1
20.下述程序的输出结果是()。#include<stdio.h>voidmain(){chara=1,b=2;charc=a^b<<2;printf("\n%d",C);}
A.9B.10C.12D.2
二、2.填空题(20题)21.类是一个支持集成的抽象数据类型,而对象是类的【】。
22.以下程序运行后的输出结果是______。
main()
/inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
23.已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。
24.阅读下列程序,则程序的输出结果为______。
#include"stdio.h"
struetty
{intdata;
charc;};
main()
{streettya={30,'x'};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c='y';}
25.【】是从二维表列的方向进行的运算。
26.以下程序运行后的输出结果是()。
main()
{charc;intn=100;
loatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
27.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n-->1)
for(i=0;i<n;i++)
if(str[i]<str[i+l])
{temp=【】;
str[i]=str[i+l];
【】=temp;
}
printf(【】);
}
28.在软件开发中,结构化方法包括结构化分析方法、结构化设计方法和结构化程序设计方法。可行性研究阶段采用的是【】。
29.下列程序的运行结果是______。
#defineP(a)printf("%d",a)
main()
{intj,a[]={1,2,3,4,5,6,7},i=5;
for(j=3;j>l;j--)
{switch(j)
{case1:
case2:P(a[i++]);break;
case3:P(a[--i]);
}
}
}
30.以下程序的输出结果是_______。
main()
{char*p[]={"BOOL","OPK","H","SP:,};
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
31.设x和y均为int型变量,且x=1,y=2,则表达式2.0+x/y的值为_______。
32.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______。
33.下述函数统计一个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
34.以下程序运行后的输出结果是【】。
structNODE
{
intnum;
stmctNODE*next;
};
main()
{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;
intsum=0;
s[0].next=s+1;
s[1].next=s+2;
s[2].next=s;
p=s
q=p->next;
r=q->next;
sum+=q->next->num;
sum+=r->next->next->num;
printf("%d\n",sum);
}
35.下列程序的输出结果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
36.阅读下面程序,则程序的执行结果为【】。
#include"stdio.h"
fun(intk,int*p)
{inta,b;
if(k==1‖k==2)
*p=1;
else{fun(k-1,&a);
fun(k-2,&b);
*p=a+b;}}
main()
{intx;
fun(6,&x);
printf("%d\n",x);}
37.以下程序运行后的输出结果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
38.在深度为5的完全二叉树中,度为2的结点数最多为【】。
39.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
40.下面程序的输出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
三、1.选择题(20题)41.关于指针概念,下列说法中,不正确的是______。
A.一个指针变量只能指向同一类型的变量
B.一个变量的地址称为该变量的指针
C.只有同一类型变量的地址才能放到指向该类型变量的指针变量之中
D.指针变量可以由整数赋值,不能用浮点数赋值
42.设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是
A.PER是结构体变量名
B.PER是结构体类型名
C.typedefstruct是结构体类型
D.struct是结构体类型名
43.下面程序段的输出结果是()。chara[]="lanuage",*p;p=a;while(*P!='u'){printf("%c",*p-32);P++;}
A.LANGUAGEB.languageC.LAND.langUAGE
44.下列选项中正确的语句组是()。
A.chars[8];s={"Beijing"};
B.char*s;s={"Beijing"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing";
45.计算机系统的组成是______。
A.主机、外设B.运算器、控制器C.硬件系统和软件系统D.CPU、内存储器
46.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.没有任何关系
47.设已定义i和k为int类型变量,则以下for循环语句______。for(i=0;k=-1,k=1;i++,k++)printf("****\n");
A.判断循环结束的条件不合法B.是无限循环C.循环一次也不执行D.循环只执行一次
48.在c语言中,变量的隐含存储类别是()。
A.autoB.staticC.externD.无存储类别
49.以下叙述不正确的是______。
A.分号是C语言的必要组成部分
B.C程序的注释可以写在句的后面
C.函数是C程序的基本单位
D.主函数的名字不一定用main表示
50.有以下程序:#include<stdio.h>fun(inta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序运行后的输出结果是()。
A.3B.6C.8D.12
51.有以下程序:main(){unsignedchara,b,c;a=0x3;b=a│0x8;c=b<<1;printf("%d%d\n",b,C);}程序运行后的输出结果是()。
A.-1112B.-19C.1224D.1122
52.数据的存储结构是指______。
A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据
53.有以下程序:voidf(inty,int*x){y=y+*x;*x;=*x+y;}main(){intx=2,y=4;f(y,&x);-printf("%d%d\n",x,y);}执行后的输出结果是______。
A.84B.88C.48D.42
54.下列选项可以正确表示字符型常量的是
A.'\r'B.aC.\897D.296
55.有如下定义#defineD2intx=5;floaty=3.83;charC='D';则下面选项中错误的是
A.x++;B.y++;C.c++;D.D++;
56.在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示______。A.A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向
57.以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是()。
A.feof(fp)B.tell(fp)C.fgetc(fp)D.rewind(fp)
58.设栈S的初始状态为空。元素a、b、c、d、e、f依次通过栈S,若出栈的顺序为b、d、c、f、e、a,则栈S的容量至少应该为()。
A.3B.4C.5D.6
59.已知字符'0'的ASCII码的十进制数为48,并且数组的第0个元素在低位,有以下程序#include<stdio.h>main(){union{inti[2];longk:charc[4];}r,*s=&r;s->i[0]=0x39;s->i[1]=0x38;printf("%c\n",s->c[0]);}程序运行后的输出结果是()
A.39B.9C.38D.8
60.若有定义:inta=8,b=5,c;执行语句c=a/b+0.4;后,c的值为
A.1.4B.1C.2D.2
四、选择题(20题)61.以下程序运行后的输出结果是()。
#include<stdio.h>
main()
{inti;
for(i=1;i<=5;i++)
switch(i%5)
{case0:printf("*");break;
case1:printf("#");break;
default:printf("\n");
case2:printf("&");
}
}
A.B.#&C.#&D.&
**
&**
62.
63.
下列程序执行后的输出结果是()。
voidfunc(int*a,intb[])
{b[0]=*a+b;}main
{inta,b[5];
a=0.b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
A.6B.7C.8D.9
64.下列选择中,不能用做标识符的是()。
A.1234B._1_2C.int_2_D.2_int_
65.有以下程序程序运行后的输出结果是()。
A.1,2B.1,1C.2,1D.2,2
66.下列叙述中正确的是()。
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定的
67.
68.
有以下程序:
intfun(intx)
{intp;
if(x==0||x==1)return(3);
p=x-fun(x-2);
returnp;
}
main
{printf("%d\n",fun(7));}
执行后的结果是()。
A.7B.3C.2D.0
69.以下叙述中正确的是(
)。A.C语言中的全部数据类型都是基本类型B.C语言中的全部数据类型都是构造类型C.C语言中的数据类型只有两种,即基本类型和构造类型D.以上都不对
70.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
71.有以下函数:
该函数的功能是()。
A.tt-gs所指字符串的长度
B.比较两个字符串的大小
C.计算s所指字符串占用内存字节的个数
D.将s所指字符串复制到字符串t中
72.如果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
73.设有以下函数:
A.
B.
C.
D.
74.
75.
有下列程序:
intfun(intn)
{if(n==1)}return1;
else
return(n+fun(n-1));
}
main
{intx;
scanf("%d",&x);x=fun(x);printf("%d\n",x);
)
执行程序时,给变量x输入10,程序的输出结果是()。
A.55B.54C.65D.45
76.若有函数内部说明:inta[3][4];则数组a中各元素
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
77.
78.冒泡排序在最坏情况下的比较次数是()。
A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2
79.若变量已正确定义,有以下程序段:
其输出结果是()。
A.0,0B.0,1C.1,1D.程序进入无限循环
80.有以下程序程序运行后的输出结果是()。
A.9B.10C.8D.7
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCIl码升序排序后输出。例如,输入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);j4-+)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=C;}}voidmain{charst/[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\nknBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%S",str);}六、程序设计题(1题)82.使用vc++2010打开文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是在一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回该值。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)。例如,若输入8.4共10个得分,则输出结果为8.687500。注意:部分源程序存放在文件prog1.c中,请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.B解析:return中返回的是指针p的值,也就是形参p中存放的地址值。
2.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。
3.A
4.A
5.B在第1次外层for循环中,首先x++得到x=1。进入到内层for循环,只有循环j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量x的值自加两次,当退出内层for循环时,x=3,然后执行x++,得到x=4。在进入执行第2次外层for循环中,首先x++得到x=5。进入到内层for循环,只有循环变量j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量X的值自加1两次,当退出内层for循环时,x=7,然后执行x++,得到x=8,所以打印输出变量x的值为8。
6.C解析:每个C程序有且只有一个主函数main(),且程序必须从main函数开始执行,并在main()函数中结束。
7.A
8.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。
9.C本题考查do-while循环,在fun函数中,首先定义了静态变量i=0,do-while循环要实现的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不变的规则重新给b数组赋值。在主函数中,通过调用fun函数,按上面的规则对数组a重新赋值,最后输出数组a。
10.D
11.BB项的格式应该为scanf("%1d*%d%1f",&x,&y,&z);
12.Aswitch语句中不一定使用break语句,选项A正确;break语句除了用于switch语句,还可以用于循环语句中,选项B、C错误;switch语句不一定需要使用default语句,选项D错误。本题答案为A选项。
13.D本题考查逻辑运算符的使用。当“”的两个运算对象都是逻辑l时,表达式返回值才是1;“‖”的两个运算对象至少有一个是逻辑1时,表达式返回值也是l,x<y为1,!z为0,10为1,0‖为1,因此,!l为0。
14.D整型变量ch使用八进制数020初始化,二进制数为10000,右移一位结果为1000,使用%d输出十进制数为8。本题答案为D选项。
15.B
16.Cf函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,然后返回变量a。
17.A由顺序、选择(分支)、循环3种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A选项错误。故本题答案为A选项。
18.C
19.D
20.A
21.实例将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。
22.123\n056\n009123\\n056\\n009解析:数组是用于按顺序存储同类型数据的数据结构,如果有一个一维数组,它的每一个元素是类型相同的一维数组,就形成了一个二维数组。在内存中数组的元素是连续顺序存放的,对;维数组来说,先存放第一行,再存放第;行,…,因为每一行都是其广义一维数组的元素,并且在给出全部数组元素的初值后,二维数组的定义中可以将第一维的下标省略。本题中,定义了一个元素类型为整型的二维数组敢a[][3]={1,2,3,4,5,6,7,8,9),它相当于一个3*3的矩阵,for(i=0;i<3:i++)for(j=i+1;j<3;j++)a[j][i]=0;将行下标i大于列下标j的元素s[1][0],a[2][0],a[2][1]赋值为0,最后for(j=0;j<3;j++)prinff('%n',a[i][j]);printf('\\n');进行换行输出,所以输出结果为
123
056
009
23.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函数只有一个参数,该参数指定了需要分配多少字节的内存。然后将分配好的内存块的首地址作为void*(未知类型指针)返回.故标准的调用形式应该写成:
p(double*)malloc(sizeof(double));
24.30x30x解析:本题的参数传递属于值传递,所以被调用函数内不能改变调用函数中的数据。
25.投影投影解析:在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交,差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。投影是从二维表的列方向上进行的运算。
26.0
27.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实过程是将相邻两个字符进行比较,如果当前字符小于下一个字符,则通过中间变量temp将字符两两交换,所以第—空应填:str[i],第二空应填str[i+1]最终打印输出得到的字符串str,所以第三空应填'%s',str。
28.结构化分析方法结构化分析方法解析:结构化分析方法主要用于系统分析阶段;结构化设计方法主要用于系统设计阶段;结构化程序设计方法主要用于编码阶段。可行性研究属于系统分析阶段,因此,可行性研究阶段采用的是结构化分析方法。
29.5555解析:分析程序执行过程,第一次循环时,j=3,i-5,因为switch(3),所以执行case3,调用P(a[-i)=p(a[4])=P(5),输出5;第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(s[i++])=P(a[4])=P(5),输出5,之后i的n等于5。
30.
31.2.0。2.0。解析:x和y为整数,运算符“/”在这里是整型除,整除后值为0。
32.数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段解析:在数据库系统管理阶段,数据是结构化的,是面向系统的,数据的冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性,同时提高了数据的可扩充性和数据应用的灵活性;数据具有独立性,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数据的完整性、安全性和并发性-综上所述,数据独立性最高的阶段是数据库系统管理阶段。
33.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在统计字符串单词个数的算法中,本题的flag是为了记录一个单词是否结束。第18空应填*s++;如果某个字符不是空格,则必需判断它是否是单词,如是,则使得flag的标志为1,num的值加1。本题判断方法是:先判断s所指向的字符是否为空格,如果是则使得flag=0,否则判断前一个字符是否是空格,如果是则说明这个字符是一个单词的开始,将flag标志为1,num的值加1,如果不是,则不必记录。故第19空应flag==0或*(s-1)=='';最后一个空格需填写的是返回的单词的个数,即num。
34.55解析:主函数首先声明了一个结点数组s[3],并分别初始化其成员num为1、2、3,而成员next全部被初始化为'\\0'也就是0。下面又用三条语句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分别将三个结点指向其后面一个结点,而最后一个结点指向第1个结点,构造出一条单向循环链表。接下来用结点指针p=s即让其指向s[0],然后让q=p->next,即指向了s[1],r=q->next即让r指向s[2],然后让一个累计变量sum累加q->next->num和r->next->next->nm,因为q指向s[1]所以它的next指针指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最终输出结果为5。
35.11解析:ifelse语句的功能是:若表达式的值为真,执行语句1,并跳过其他语句,执行ifelse语句的下一条语句,若表达式的值为假,跳过语句1,执行语句2,依次往下判断。题中,x=3,y=2,第一个if语句的控制条件x<y就不满足,又没有与之配对的else语句,所以直接执行printf语句,在整个过程中变量z的值都没发生变化。
36.88解析:函数可以被递归调用,但是不能递归定义。有返回值的函数调用可以出现在表达式可以出现的任何地方。
37.8888解析:C语言规定,以0开头的整型常量为八进制。另外,在primf()函数中,%X表示以十六进制无符号形式输出一个整数,且十六进制中的ABCDEF为大写字母。本题的输出应该是八进制210的十六进制形式。将八进制转换为十六进制,可以先将其转换为二进制。因为1位八进制表示3位二进制,4位二进制表示1位十六进制。(210)8=(10001000)2=(88)16,故本题输出为880
38.1515解析:在深度为5的完全二叉树中,度为2的结点数最多的是深度为5的满二叉树。在深度为5的满二叉树中,前4层中所有结点的度为2。即在深度为5的完全二叉树中,度为2的结点数最多相当于深度为4的满二叉树中的结点数。深度为4的满二叉树中的结点数为24(上标)-1=15。
39.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
40.1212解析:本题通过第一个for循坪将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
41.D
42.B解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。
43.C解析:本段程序的作用是输出字符串'lanuage'中字母u之前的字符,并将其转化为大写字母。
44.D解析:字符数组初始化可以有两种方式:方式一,按单个字符的方式赋初值。方式二,把一个字符串作为初值赋给字符数组。选项A定义的字符数组长度为8,由于最后还要加一个“、0”做结束标志,所以赋给他的字符串长度应小于等于7;在给字符数组赋初值的时候,应该用花括号“{”和“}“将字符串括起来。将字符型指针变量指向字符串也有两种方法,一是在定义指针变量时就给其赋初值,比如:char*p=“student”;二是给指针变量赋值,比如:p=“student”;(p已经被定义为字符型指针变量;)。
45.C
46.CC。【解析】数据库系统(DBS)由数据库(DBS)、数据库管理系统(DBMS)、数据库管理员、硬件平台和软件平台五个部分组成,可见DB和DBMS都是DBS的组成部分。
47.B解析:本题定义了一个for循环,循环变量是i,但由于本题并没有设置循环条件,所以循环的条件永远默认为真,即无限次执行循环。
48.A解析:auto变量:无static声明的局部变量。用auto作存储类别的声明时,可以不写auto,存储类别隐含确定为auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用static声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用extern声明外部变量,外部变量即全局变量,可以用extern声明来改变全局变量的作用域,实际上,关键字'auto'可以省略,auto不写则隐含确定为'自动存储类别',属于动态存储方式。
49.D解析:C语言的程序是由主函数main()开始运行,由主函数来调用其他函数,所以D是错误的。
50.D解析:本题考查函数的返回值。fun函数的功能是比较a,b的值,返回其中较大者。对于main函数中的语句r=fun(fun(x,y),2*z);是先调用fun(x,y)返回8,再将8和12作为实参调用函数fun,得到的返回值为12。
51.D解析:将a的值转换为二进制位:00000011,再与0x8的二进制“00001000”位与,得到结果“00001011”赋值给b,b的值为11,再将b左移一位得到;00010110,赋值给c,c的值为22,所以最后输出的b,c的值位11,22。所以4个选项中D正确。
52.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。
53.A解析:函数{的形参Y是简单变量,x是地址变量,故Y=4,x=2+4+2=8
54.A解析:C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的范围是0~127。由于字符常量用单引号括起来,所以选项B),C)错误,选项D)超过了字符常量的表示范围。
55.D解析:C语言中++运算符的对象可以是整型、实型和字符型,但不可是常量,本题中D为常量。
56.A解析:让考生对常用的软件结构设计工具要有较深入的了解。常用的软件结构设计工具是结构图(SC-structureChart),也称程序结构图。其中,矩形内用于注明模块的功能和名字;箭头表示模块间的调用关系,带实心圆的箭头表示传递的是控制信息,带空心圆的箭头表示传递的是数据。注意:根据结构图设计思想,了解结构图构成的基本形式。
57.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)相同。
58.A解析:根据题中给定的条件,可以作如下的模拟操作:①元素a,b进栈,栈中有2个元素,分别为a,b;②元素b出栈后,元素c,d进栈,栈中有3个元素,分别为a,c,d;③元素d,c出栈后,元素e,f进栈,栈中有3个元素,分别为a,e,f;④最后,元素f,e,a出栈,栈为空。可以看出,进栈的顺序为a,b,c,d,e,f,出栈的顺序为b,d,c,f,e,a,满足题目要求。每次进栈操作后,栈中最多有3个元素,所以,为了顺利完成这些操作,栈的容量应至少为3。本题的正确答案为A。
59.B
60.B解析:在表达式中根据运算的结合性和运算符的优先级,首先计算的是a/b(8/5=1),再将1+0.4赋值给c,由于c为整型变量所以要将1.4转换为整型,即舍弃小数位(c的值变为1)。
61.Afor循环语句嵌套一个switch语句;i=1,i%5=1,执行case1,遇到break退出switch语句,i=2,i%5=2,执行case2,i=3,i%5=3,执行default语句,然后执行case2……
62.A
63.A
\n本题考查函数的调用,从主函数传递到调用函数中,*a的值为0,因此当执行完调用函数后,b[0]的值为6。
\n
64.DC语言规定标识符是由字母、数字和下划线组成的,且必须以字母或下划线开头,因此可知D选项错误。
65.Afun(++n)返回值为l,fun(n++)因为fun函数内n为static类型,仍保持原值1,函数返回值为2,所以答案选择A)。
66.D循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B与C错误。
67.D
68.C
\n调用函数fun(7)时,由于x的值为7,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(5);
\n调用函数fun(5)时,由于x的值为5,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(3);
\n调用函数fun(3)时,由于x的值为3,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(1);
\n调用函数fun(1)时,由于X的值为1,执行语句“return(3);”,函数的返回值为3。
\n因此函数调用fun(7)等价于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函数fun(7)的返回值为2。答案为C。
\n
69.D在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类
70.B解析:条件表达式的形式为:“表达式1?表达式2:表达式3”。其含义为:当“表达式1”的值为非零时,求出“表达式2”的值,此时“表达式2”的值就是整个条件表达式的值;当“表达式1”的值为零时,求出“表达式3”的值,此时“表达式3”的值就是整个条件表达式的值。对于本题来说,当表达式EXP为非0值时条件成立,即执行语句i++;当EXP等于0时,执行语句j--;这等同于条件表达式“(EXP!=0)?i++:i++;”。
71.A首先charss接受一个字符型数组的首地址并将这个首地址赋给另一个字符型指针char+t.while(}t++)不断循环直到}t为’、O’,再将t-1,这时字符指针t指向字符串的最后一个字符,又因为s指向字符数组的首地址即字符串的首地址所以retum(t—S)便是返回字符数组中字符串的长度。
72.DA)中>的优先级大于!=,所以执行顺序不一样;B)中c和d>k都为真,所以整个表达式为真;C)中不用执行d=k,因为c就可以确定这个表达式的值。
73.A函数指针的定义形式是:数据类型标识符(*指针变量名)。void(*pf)定义了一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安庆医药高等专科学校《大学美育》2025-2026学年期末试卷
- 厦门医学院《思想政治教育学原理》2025-2026学年期末试卷
- 福建电力职业技术学院《会展战略管理》2025-2026学年期末试卷
- 会计职业发展规划范文
- 印制电路照相制版工QC考核试卷含答案
- 学校学生行为规范制度
- 锅炉设备装配工班组安全评优考核试卷含答案
- 铁合金电极糊工安全文明测试考核试卷含答案
- 电动轮自卸车机械装配工持续改进测试考核试卷含答案
- 咨询公司服务质量保证制度
- 区块链金融(第二版)课件 项目三 区块链赋能数字银行业务
- 英语试卷+答案广东省江门市2026届普通高中高三调研测试(江门一模)(.5-.6)
- 2026年见证取样员试卷含答案详解【培优】
- 2025-2026学年苏教版小学四年级数学下册教学计划及进度表
- 雨课堂学堂在线学堂云人工智能技术与应用(江南大学)单元测试考核答案
- 2026中国商用飞机公司招聘面试题库
- 4.1《致敬劳动者》课件 统编版道德与法治三年级下册
- 宝钢采购管理制度
- 公安机关人民警察内务条令试题库(附答案)
- 水处理厂卫生管理制度
- 南京2025年江苏南京师范大学招聘专职辅导员9人笔试历年参考题库附带答案详解
评论
0/150
提交评论