计算机二级C语言选择题及答案(2)
}printf("%d
计算机二级C语言选择题及答案(2)
",num);
}程序执行后的输m结果是()。
A.35
B.37
C.39
D.3975
32.以下程序的'输出结果是()。
main()
{char st[20]="hello\0\t\\\";
printf("%d%d
",strlen(st).sizeof(st));
}A.9 9
B.5 20
C.13 20
D.20 20
33.若有以下的定义:‘int t[3][2];”,能正确表示t数组元素地址的表达式是()。
A.&t[3][2]
B.t[3]
C.t[l]
D.t[2][2]
34.函数fseek(pf,OL,SEEK END)中的SEEK ENE 代表的起始点是()。
A.文件开始
B.文件末尾
C.文件当前位置
D.以上都不对
35.下述程序的输出结果是()。
#include
main()
{ int i;
for(i=l;i<=10;i++)
{if(ii>=20)&&(ii<=100))
break;
}printf("%d
",ii);
}A.49
B.36
C.25
D.64
36.若有定义“int b[8],p=b;”,则p+6表示()。
A.数组元素b[6]的值
B.数组元素b[6]的地址
C.数组元素b[7]的地址
D.数组元素b[o]的值加上6
37.设变量已正确定义,则以下能正确计算f=n!的程序是()。
A.f=0:
for(i=1;i<=n;i++)f=i:
B.F=1:
for(i=l;i<2n;i++)f=i:
C.f=l:
for(i=n;i>1;i++)f=i:
D.f=1;
for(i=n;i>=2;i--)f=i:
38.下述程序执行的输出结果是()。
#include
main()
{ char a[2][4];
strcpy(a,"are");strcpy(a[1],"you");
a[0][3]=’&’;
printf("%s
",a):
}A.are&you
B.you
C.are
D.&
39.设x=011050,则x=x&01252的值是()。
A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
40.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用(双引号)括起时,寻找被包含文件的方式是()。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
【答案与解析】
1.D。【解析】算法的空间复杂度,是指执行这个算法所需的存储空间。算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间、算法执行过程中所需要的额外空间。
2.D。【解析】数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。
3.D。【解析】所谓的交换排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序通过相邻元素的交换,逐步将线性表变成有序是一种简单的交换排序方法。
4.C。【解析】结构化程序设计的原则和方法之一是限制使用GOT0语句,但不是不允许使用GOT0语句。其他三项为结构化程序设计的原则。
5.D。【解析】文件系统所管理的数据文件基本上是分散、相互独立的。相对于数据库系统,以此为基础的数据处理存在3个缺点:数据冗余大、数据的不一致性、程序与数据的依赖性强。
6.C。【解析】面对象的设计方法的基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。它虽强调模拟现实世界中的概念而不强调算法,但是它鼓励开发者在软件开发的过程中从应用领域的概念角度去思考。
7.D。【解析】所谓的后序遍历是指,首先遍历左子树,然后遍历右子树,后访问根结点,并且在遍历左、右树时,仍然先遍历左子树,然后遍历右子树,后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。
8.B。【解析】软件的过程设计是指系统结构部件转换成软件的过程描述。
9.A。【解析】①对软,牛开发的进度和费用估计不准确:②用户对已完成的软件系统不满意的现象时常发生;③软件产品的质量往往靠不住;④软件常常是不可维护的;⑤软件通常没有适当的文档;⑥软件成本在计算机系统总成本中所占的比例逐年上升;⑦软件开发生产率提高的速度远远跟不上计算机应用迅速普能及深入的趋势。
10.C。【解析】对象的封装性是指从外面看只能看到对象的外部特性,而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。
11.C。【解析】数据库系统由如下5个部分组成:数据库(DB)、数据库管理系统fDBMS)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。其中 DB(DataBase)即数据库,是统一管理的相关数据的;DBMS即数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,为用户或应用完程序提供访问DB的方法。由以上可知,选C为正确答案。
12.A。【解析】标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。B选项int不是表达变量类型的标识符,它不能再用做变量名和函数名。C 选项do是C语言的一个关键字。D选项标识符只能以字母或下划线开始。
13.D。【解析】本题考查逻辑运算符的使用。当“&&”的两个运算对象都是逻辑1时,表达式返回值才是1;“||” 的两个运算对象至少有一个是逻辑1时,表达式返回值也是1,x14.C。【解析】第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有两个%说明,第1个%后面的字符要原样输出。本题考查printf函数的格式。①“%x”和“%0”分别表示以十六进制和八进制无符合型输出整型数据(不带前导ox或0);②printf函数中格式说明符之前插入的任何字符都原样输出;③格式说明与输出项的个数,也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。
15.C。【解析】函数fun(int x,int y)的功能是返回x+y的值。在主函数中,变量a,b,c的初始值分别为1,2,3。因此,逗号表达式“a++,b++,aq b”的值等于5,表达式c++的值为3,调用于函数的表达式为“fun(5,3);”,其返回值等于8。
16.D。【解析】在x=2,y=x+3/2中,3/2=1。2+1= 3,因此表达式的值为3,因为x,y为double型变量,故选择D选项。
17.A。【解析】当x为1时,执行case 1,a自加等于1,因为case 1后没有break,接着执行case 2,此时a的值为2,b自加为1,故选择A选项。
18.D。【解析】本题考梦自增运算符“++”、逻辑与运算符“&&”和逻辑或运算符“||”。自增运算符“++”出现在变量之前,表示先使用变量的值加l,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&&’’两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“||”只要一个值为1,值就为1。根据运算符的优先级,题中应先计算内层括号中的值。++j是先自加后运算,因此运算时j的值等于3,所以表达式++j=3成立,即表达式的值为1;1与任何数都为进行或(||)运算,结果都为1,因此k=3的表达式i++是先运算后自加,因此运算时i为1,所以i++=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。
19.A。【解析】本题考查switch语句。当i一1时,执行case 1,因为没有遇到break语句,所以依次往下运行,“a=a+ 2=2,a=a+3=5”;当i=2时,执行case 2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3= 10”;当i=3时,执行case 3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a—a+2—13,a—a+3一l6:当i=4时,执行default,a=a+3=19,结束循环。
20.C。【解析】只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择C选项。
21.A。【解析】循环的作用是求行下标从1到2列下标从0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a [2][1]+a[2][2]=3+4+5+6+0=18。
22.A。【解析】在程序语句中,k的初始值为5,进行第l次while循环后,k自减1为4,非0,执行循环体里的printf语句,输出k,此时k的值变为1。程序执行第2次循环时,k 自减1变为0,为假,退出while循环语句。所以程序的后结果为1。
23.A。【解析】通过地址来引用数组元素的方法有下列5种:
(1)a[i][j];(2)(a[i]+j);(3)((a+j)+i);(4) (a[i][j]);(5)(&aE0][0]q-3i+j)。故A正确。
24.C。【解析】选项A、B的空间不够;字符串存储要有结束符’\0’,且要占用一个空间,printf用来输出字符,不能输入字符串。
25.D。【解析】由题目ee线性链表的定义可知,要将q 和r所指的结点交换前后位置,只要使q指向r的后一个结点,p指向r结点,r指向q结点即可。而在选项D由,r-> next=q,这时r指向的节点为q;p->next r,这时p指向的节点为r;q->next=r->next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。
26.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。
27.C。【解析】子函数fun1(double a)的功能是返回a的平方值的整数部分。子函数fun2(double x,double y)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2) 的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.O。
28.C。【解析】在for循环语句中自变量i从0开始,每次自加2,执行s+=(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。
29.A。【解析】本题在函数int fun(int n)的定义中又出现了对函数fun的调用,所以函数fun是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量x时,递归调用的过程为
fun(10)=10…fun(9)=104-94-fun(8)=104-9+84- fun(7)
=10+9++8++7++fun(6)=10+9++8+7+6+fun (6)
=10+9++8+7+6+5+fun(4)
=10+9++8+7+6+5+4+fun(3)
=10+9++8+7+6+5+4+3+fun(2)
=10+9++8+7+6+5+4+3+2+fun(1)
=10+9++8+7+6+5+4+3+2=55
计算机二级考试C语言选择题(2)
{ char x=0xFFFF;printf("%d\n",x--);}
A.-32767
B.FFFE
C.1
D.32768
22.下面的函数调用语句中func函数的实参个数是( )。
func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))
A.3
B.4
C.5
D.8
23.语句“printf("akbre"\’hi\’y\\\bou\n")”;的输出结果是( )。
A.akbre\’hi\’y ’\\\bou
B.a\bre\’hi\\y\bou
C.re ’hi’you
D.abre’hi’y\bou
24.下面程序输出的是( )。
main()
{ int t=l;fun(fun(t));}
fun(int h)
{ static int a[3]={1.2.3};
int k;
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,
25.以下叙述中正确的是( )。
A.预处理命令行必须位于C源程序的起始位置
B.在C语言中,预处理命令行都以“#”开头
c.每个C程序必须在开头包含预处理命令行:#include
D.C语言的预处理不能实现宏定义和条件编译的功能
26.为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与( )配对。
A.缩排位置相同if
B.其前面近的if
C.其后面近的if
D.同一行上的if
27.设有下列程序段:
char str[]="HelloWorld":
char plr;
ptr=str:
执行上面的程序段后,(ptr+10)的'值为( )。
A.’\0 ’
B.’0’
C.不确定的值
D.’0’的地址
28.有以下程序:
void swap(charx,chary)
{ char t;
t=x;x=y;y=t;
}main()
{ chars1="abe",s2="123":
swap(s1,s2);
printf("%s,%s\n",s1,s2);
}程序执行后的输出结果是( )。
A.123,abe
B.abc.123
C.1bc,a23
D.321,cba
29.下列程序的运行结果是( )。
#include
main()
{ static char a[]="Languagef",b[]="programe":
charp1,p2;int k;
p1=a;p2=b;
for(k=0;k<=8;k++)
if((p1+k)==(p2+k))
printf("%c",(p1+k)):
}A.gae
B.ang
C.program
D.有语法错
30.下列程序的运行结果为( )。
#define MAX(x,y)(x)>(y)?(x):(y)
main()
{ int a=2,b=3,C=1,d=3,t:
printf("%d\n",(MAX(a+h,c+d))100):
}A.500
B.5
C.4
D.400
31.设int x=7,则~x的值是()。
A.-8
B.7
C.-1
D.1
32.有以下程序:
void fun(chara,charb)
{a=b; (a)++; }
main()
{char c1=’A ’,c2=’a’,p1,p2;
p1=&c1;p2=c2;fun(p1,p2);
printf("%C%c\n",c1,c2);
}程序运行后的输出结果是()。
A.Ab
B.aa
C.Aa
D.Bb
33.有以下程序:
int fun(int n)
{if(n==l)return l;
else return(n+fun(n一1)):
}main()
{int x;
scanf("%d",&x);x=fun(x);printf("%d\n",
x):
}执行程序时,给变量X输入10,程序的输出结果是()。
A.55
B.54
C.65
D.45
34.有以下程序:
void f(int x,int y)
{int t;
if(x}
main()
{int a=4,b=3,c=5;
f(a,b);f(a,c);f(b,c);
printf("%d,%d,%d\n",a,b,c);
}执行后输出结果是()。
A.3,4,5
B.5,3,4
C.5,4,3
D.4,3,5
35.以下程序的输出结果是()。
main()
{chars="12134211";
int v[4]=(0,0,0,0),k,i;
for(k=0;s[k];k++)
{switch(s[k])
{case’1’:i=0;
case’2’:i=1;
case’3’:i=2;
计算机二级C语言操作题积累
2017年计算机二级C语言操作题积累
多媒体计算机是当前计算机领域中引人注目的高新技术之一。多媒体计算机就是利用计算机技术、通信技术和大众传播技术,来综合处理多种媒体信息的计算机。下面是我整理的关于计算机二级C语言操作题积累,欢迎大家参考!
一、单选题(每小题1分,共40分)
1[单选题] 下列关于综合布线系统的描述中,错误的是()。
A.双绞线扭绞可以减少电磁干扰
B.管理子系统设置在楼层配线间内
C.多介质插座是用来连接铜缆和光纤的
D.对于建筑群子系统直埋布线是理想的方式
2[单选题] IP地址块59.67.79.128/28、59.67.79.144/28和59.67.79.160/27经聚合后可用地址数为()。
A.62
B.64
C.126
D.128
3[单选题] IP地址块202.111.15.128/28、202.111.15.144/28和202.111.15.160/28经过聚合后可用的地址数为()。
A.40
B.42
C.44
D.46
4[单选题] 下列攻击手段中,基于网络的入侵防护系统无法阻断的是()。
A.SYNFlooding
B.SQL注入
C.DDOS
D.PingofDeath
5[单选题] 异备份、增量备份、完全备份三种备份策略的备份速度由快到慢依次为()。
A.增量备份、异备份、完全备份
B.异备份、增量备份、完全备份
C.完全备份、异备份、增量备份
D.完全备份、增量备份、异备份
6[单选题] CiscoPIX525防火墙用来允许数据流从具有较低安全级接口流向较高安全级接口的配置命令是()。
A.fixup
B.conduit
C.global
D.nameif
7[单选题] 在Windows2003系统下DHCP服务器中添加排除时,应输入的信息是()。
A.起始IP地址和结束IP地址
B.起始IP地址和地址
C.起始IP地址和MAC地址
D.起始IP地址和掩码
8[单选题] 下列关于服务器技术的描述中,错误的是()。
A.集群系统中一台主机出现故障时不会影响系统的性能
B.采用RISC结构处理器的服务器通常使用UNIX系统
C.热插拔功能允许用户在不切断电源的情况下更换硬盘、电源等
D.分布式内存访问(NUMA.技术将对称多处理器(SMP)和集群(Cluster)技术结合起来
9[单选题] 下列对交换机中交换表的描述中,错误的是()。
A.在一些高端交换机中,交换表通常被保存在CAM存储器中
B.交换表中没有接收帧的目的MAC地址时,交换机用Flood技术转发该帧
C.使用“showmac-addres-table”命令可显示小型交换机的交换表内容
D.交换表的内容包括目的IP地址及其所对应的交换机端口号
10[单选题] 下列关于无线网络HipeR1AN/2协议的描述中,错误的.是()。
A.采用5GHz工作频段
B.上行速率多可达54Mbps
C.室外覆盖范围为30米
D.可支持面向连接的传输服务
二、综合题(每空2分,共40分)
(1)打开工作簿文件EXCEL.xlsx,将工作表sheetl的Al:El单元格合并为一个单元格,内容水平居中,计算“合计”列的内容,将工作表命名为“科研经费使用情况表”.
(2)选取“科研经费使用情况表”的“项目编号”列和“合计”列的单元格内容,建立“簇状棱锥图”,x轴上的项为项目编号,图表标题为“科研经费使用情况图”,插入到表的A7:El8单元格区域内.
三、演示文稿题
打开考生文件夹下的演示文稿yswg.pptx,按照下列要求完成对此文稿的修饰并保存.
(1)整个演示文稿设置成“时装设计”模板;将全部幻灯片切换效果设置成“分割”.
(2)将第二张幻灯片对象部分的动画效果设置为“向内溶解”;在演示文稿的开始处插入一张“标题幻灯片”,作为文稿的第一张幻灯片,主标题键人“讽刺与幽默”,并设置为60磅、加粗、红色(请用自定义标签中的红色250,绿色1,蓝色1).
二、电子表格题
(1)【解题步骤】
步骤1:通过“答题”菜单打开EXCEL.xlsx文件,选中A1:E1单元格,在【开始】功能区的【对齐方式】分组中,单击“合并后居中”按钮,合并单元格并使内容居中。
步骤2:计算“合计”列内容。在E3单元格中插入公式“=SUM(B3:D3)”,并按回车键,将鼠标移动到E3单元格的右下角,按住鼠标左键不放向下拖动即可计算出其他行的值。
注:当鼠标指针放在已插入公式的单元格的右下角时,它会变为小十字“+”,按住鼠标左键拖动其到相应的单元格即可进行数据的自动填充。
步骤3:双击现有名称,输入新名称“科研经费使用情况表”。
步骤4:保存文件。
(2)【解题步骤】
步骤1:按照要求建立“簇状棱锥图”。选中“项目编号”列和“合计”列,在【插入】功能区的【图表】分组中,单击“创建图表”按钮,弹出“插入图表”对话框,在“柱形图”中选择“簇状棱锥图”,单击“确定”按钮,即可插入图表。
步骤2:按照题目要求设置图表标题。在插入的图表中,选中图表标题,改为“科研经费使用情况图”。
步骤3:调整图的大小并移动到指定位置。选中图表,按住鼠标左键单击图表不放并拖动,将其拖动到A7:El8单元格区域内。
注:不要超过这个区域。如果图表过大,无法放下,可以将鼠标放在图表的右下角,当鼠标指针变为“、”时。按住左键拖动可以将图表缩小到指定区域内。
步骤4:保存文件。
三、演示文稿题
(1)【解题步骤】
步骤1:通过“答题”菜单打开ysw9.pptx文件,按照题目要求设置幻灯片模板。选中幻灯片,在【设计】功能区的【主题】分组中,单击“其他”下拉三角按钮,选择“时装设计”模板。
步骤2:按照题目要求设置幻灯片的切换效果。选中幻灯片,在【切换】功能区的【切换到此幻灯片】分组中,单击“其他”下拉三角按钮,在“细微型”选项组中选择“分割”效果。
(2)【解题步骤】
步骤1:按照题目要求设置剪贴画的动画效果。选中第二张幻灯片的图片,在【动画】功能区的【动画】分组中,单击“其他”下拉三角按钮,选择“更多进入效果”选项,弹出“更改进入效果”对话框。在“基本型”选项组中选择“向内溶解”效果,单击“确定”按钮。
步骤2:按照要求插入新幻灯片。用鼠标右键单击第一张幻灯片前面的位置,在【开始】功能区的【幻灯片】分组中,单击“新建幻灯片”下拉三角按钮,选择“标题幻灯片”选项。新插入的幻灯片作为第一张幻灯片。
步骤3:在第一张幻灯片的“单击此处添加标题”处输入“讽刺与幽默”。
步骤4:按题目要求设置字体。选中“讽刺与幽默”,在【开始】功能区的【字体】分组中,单击“字体”按钮,弹出“字体”对话框。在“字体”选项卡中,设置“大小”为“60磅”,设置“字体样式”为“加粗”。单击“字体颜色”下拉三角按钮,选择“其他颜色”选项,弹出“颜色”对话框。单击“自定义”选项卡,设置“红色”为“250”,设置“绿色”为…l’,设置“蓝色”为…l’,单击“确定”按钮,再单击“确定”按钮。
步骤5:保存文件。
三、应用题(共20分) ;
计算机二级c语言题库及答案
计算接二级c语言题库我建议大家去百度搜索:原创力文档
原创力文档大概收纳了100套计算机二级c语言试题,这100套题基本上涵盖了计算机二级c语言所有的题目和知识点。一共480多页pdf,这么多试题我们应该如何使用呢?
1,首先我们做题要有针对性地做,做的时候多加思考,为什么要操作这一步?为什么要输入这个代码?然后根据我们不明白不理解的地方对着答案多加练习。
2,然后我们要善于反思,善于总结。我们要学会归类,这一类题目怎么做?这一类题目用哪个函数?然后对于我们不理解的题目或者是错题要及时整理下来,随时翻阅查看。
3,我们一定要多加练习,熟悉各种公式,看到一个题目能马上在脑海中想到用什么公式,如何用,这就需要我们多加练习,而且要认真地练习。
4,第四点就是在考前一周左右,我们就要停止做题,开始回顾知识点,查看自己整理的错题,总结做题方法。然后要注意对于题库我们是不可能全做完的,100套题我们时间和精力是不允许的。我们要选择历年考的比较多的题目去做去练习。
总结一下:计算机二级c语言题库和答案,原创力文档整理的还算比较齐全的。
下半年计算机二级c语言基础试题
下半年计算机二级c语言基础试题
任何设计活动都是在各种约束条件和相互矛盾的需求之间寻求一种平衡,程序设计也不例外。下面是我收集的关于计算机二级c语言基础试题,希望大家认真阅读!
下半年计算机二级c语言基础试题1 一、选择:
1.给出以下定义:
char acX[ ]= "abcdefg";
char acY[ ]= {'a','b','c','d','e','f','g'};
则正确的叙述为( )
A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同
C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组acY的长度
答案:C
2.
void example(char acHello[])
{printf("%d", sizeof(acHello));
return;
}void main()
{char acHello[] = "hello";
example(acHello);//数组名称作参数,传的是地址,一个地址占四个字节
return;
}的输出是
A 4 B 5 C 6 D不确定
答案:A
3. 有以下程序段
char acArr[]= "ABCDE";
char pcPtr;
for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++)
{printf("%s/n", pcPtr);
}return;
输出结果是( )
A) ABCD B) A C) E D) ABCDE
B D BCDE
C C CDE
D B DE
E A E
答案:D
4.在中断中,不能同步获取信号量,但是可以释放信号量。
A.正确 B.错误
答案:A
5.以下叙述中不正确的是( )
A) 在不同的函数中可以使用相同名字的变量
B) 函数中的形式参数是局部变量
C) 在一个函数内定义的变量只在本函数范围内有效
D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)
答案:D
6.设有如下定义:
unsigned long pulArray[] = {6, 7, 8, 9, 10};
unsigned long pulPtr;
则下列程序段的输出结果为( )
pulPtr = pulArray;
(pulPtr + 2) += 2;
printf ("%d,%d/n", pulPtr, (pulPtr + 2));
A)8,10 B)6,8 C)7,9 D)6,10
答案:D
7. 定义结构体时有下面几种说法,请指出正确的(多选):______
A、结构体中的每个部分,进行四字节对齐;
B、结构体的总长度是四字节对齐;
C、结构中成员的存放不用考虑字节对齐情况;
答案:A、B
8.void example()
{int i;
char acNew[20];
for(i = 0; i < 10; i++)
{acNew[i] = '0';
}printf("%d/n", strlen(acNew));
return;
}的输出为( )
A 0 B 10 C 11 D不确定
答案:D
9.switch(c)中的c的数据类型可以是char、long、float、unsigned、bool. ( )
A. 正确 B. 错误
答案:B
10. 网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是
大字节序,为了程序的一致性及可移植性,也在程序中加上字节序转换的操作(空操作)。
A. 正确 B.错误
答案:A
二、 填空题
1、 C语言函数返回类型的默认定义类型是
2、 函数的实参传递到形参有两种方式: 和
3、在一个函数内部调用另一个函数的调用方式称为 。在一个函数内部直接或间接调用该函数成为函数 的调用方式
4、C语言变量按其作用域分为 和
5、凡在函数中未指定存储类别的局部变量,其默认的存储类别为
三、 看程序写结果
1、#include
Int abc(int u,int v);
Void main()
{int a=24,b=16,c;
c=abc(a,b);
printf(“value=%d”,c);
}Int abc(int u, int v)
{int w;
While(v)
{w=u%v;
u=v;
v=w;
}Return u;
}2、#include
int x1=30,x2=40;
main()
{int x3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf(“%d,%d,%d,%d ”,x3,x4,x1,x2);
}sub(int x,int y)
{x1=x;x=y;y=x1;}
3、#include
Main()
{int i=5;
Printf(“%d ”,sub(i));
}sub(int n)
{int a;
If(n==1) return 1;
a=n+sub(n-1);
return (a);
}4、#include
Void fun()
{static int m;
m+=2;
printf(“%d ”,m);
}Main()
{int a;
For(a=1;a<=4;a++) fun();
Printf(“ ”);
}四、 编程题
1、 编写一个函数,判断任一整数是否为素数,用main()函数调用并测试之。
2、 用递归方法求n!
3、 有一个一维数组,内放10个学生成绩,写一个函数,求出平均分,分和分
下半年计算机二级c语言基础试题2 1.下列叙述中正确的是( )。
A. 所有数据结构必须有根结点
B. 所有数据结构必须有终端结点(即叶子结点)
C. 只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构
D. 没有根结点或没有叶子结点的数据结构一定是非线性结构
【答案】D
【解析】D项正确,线性结构的特点是:
①中必存在“第一个元素"且惟一;
②中必存在“后一个元素”且惟一;
③除后一个元素外,其他数据元素均有惟一的“后继;
④除第一个元素外,其他数据元素均有惟一的“前驱”。所以没有根结点或没有叶子结点的数据结构一定是非线性结构。AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。答案选择D选项。
2. 以下叙述中错误的是( )。
A. C语言中的每条可执行语句和非执行语句终都将被转换成二进制的机器指令
B. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D. C语言源程序经编译后生成后缀为.obj的目标程序
【答案】A
【解析】A项错误,注释语句不会被翻译成二进制的'机器指令。C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。答案选择A选项。
3. C语言主要是借助以下( )功能来实现程序模块化的。
A. 定义函数
B. 定义常量和外部变量
C. 三种基本结构语句
D. 丰富的数据类型
【答案】A
【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。
4. 有以下程序段:
char ch;
int k;
ch='a';
k=12;
print("%c,%d,",h,ch,k);
printf("k=%d ",k);
已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是( )。
A. 因变量类型与格式描述符的类型不匹配输出无定值
B. 输出项与格式描述符个数不符,输出为零值或不定值
C.a,97,12k=12
D. a,97,k=12
【答案】D
【解析】字符变量的值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。"ch='a",%c表示以字符格式输出ch的值,所以输出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出"k=",然后以十进制代码输出k的值,为12。答案选择D选项。
5. 下列叙述中正确的是( )。
A. 栈是“先进先出”的线性表
B. 队列是“先进后出"的线性表
C. 循环队列是非线性结构
D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
【答案】D
【解析】有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错误,栈是“先进后出"的线性表B项错误,队列是“先进先出"的线性表;C项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。
答案选择D选项。
6. 某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为( )。
A. 5
B. 40
C.3
D. 2
【答案】B
【解析】二叉树的后序序列为DCBGFEA,则A为根结点。中序序列为DCBAEFG,则DCB为左子树结点,EFG为右子树结点。同理B为C父结点,C为D父结点。根据分析,可画出左子树,同理E为F父结点,F为G父结点。根据分析,可画出右子树,故二叉树深度为4层。答案选择B选项。
7. 设有定义:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是( )。
A. s[0]=m[1];
B. s=m;
C.s.n=m.n;
D. s[2].x=m[2].x;
【答案】A
【解析】定义了结构体类型数组s,长度为2,结构体类型数组m,长度为2,并对数组m进行了初始化。同类型的结构体可以直接用变量名实现赋值,A项正确;数组名为数组首地址,地址常量之间不可以相互赋值,B项错误;数组名为地址常量不是结构体变量,不能引用成员,C项错误;s[2]与m[2]数组越界,D项错误。答案选择A选项。
8. 关于C语言标识符,以下叙述错误的是( )。
A. 标识符可全部由数字组成
B. 标识符可全部由下划线组成
C. 标识符可全部由小写字母组成
D. 标识符可全部由大写字母组成
【答案】A
【解析】C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头,故答案选择A选项。
9. 以下程序段中的变量已定义为int类型,则
sum=pAd=5;
pAd=sum++,++pAd,pAd++;
printf("%d ",pAd);
程序段的输出结果是( )。
A. 6
B. 4
C. 5
D. 7
【答案】D
【解析】自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。执行pAd=sum++,sum++是后置自增,执行完后,pAd=5,sum=6。++pAd和pAd++语句中没有其他运算,即效果相同,pAd分别加1,两句执行完后,pAd7。答案选择D选项。
;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。