全国计算机等级考试二级《C语言》真题及详解Word格式文档下载.docx
- 文档编号:17118212
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:20
- 大小:24.05KB
全国计算机等级考试二级《C语言》真题及详解Word格式文档下载.docx
《全国计算机等级考试二级《C语言》真题及详解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级《C语言》真题及详解Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
,则以下叙述正确的是______。
A编译后系统为w分配5个字节
B编译后系统为w分配6个字节
C编译后系统为w分配8个字节
D编译后系统不为w分配存储空间
[解析]w是一个自定义类型,不是变量,故编译后系统不为w分配存储空间。
当w定义为结构体变量时才会为其分配存储空间。
5.以下叙述中错误的是______。
A同一个数组中所有元素的类型相同
B不可以跳过前面的数组元素,给后面的元素赋初值0
C定义语句:
inta[10]={0},给a数组中所有元素赋初值0
D若有定义语句:
inta[4]={1,2,3,4,5};
,编译时将忽略多余的初值
[解析]数组初始化时,若赋初值的个数多于所定义数组的元素个数时,编译器会报错。
6.若有以下定义:
structtt{charname[10];
charsex;
}aa={"
aaaa"
"
F"
},*p=&
aa;
则错误的语句是______。
Ascanf("
%c"
aa.sex);
Baa.sex=getchar();
Cprintf("
%c\n"
(*p).sex);
Dprintf("
p->sex);
A
[解析]sex是一个char类型变量,不是地址,A项应为scanf("
&
aa.sex);
。
7.C语言编译程序的功能是______。
A执行一个C语言编写的源程序
B把C源程序翻译成ASCII码
C把C源程序翻译成机器代码
D把C源程序与系统提供的库函数组合成一个二进制执行文件
C
[解析]编译程序的功能是将"
高级语言"
翻译为"
机器语言"
,将C语言语句转换成二进制的机器指令。
8.有以下程序:
intfun(intn)
{if(n)returnfun(n-1)+n;
elsereturn0;
{printf("
%d\n"
fun(3));
A4
B5
C6
D7
[解析]fun函数是一个递归函数,调用f(3),参数n=3,返回f(3-1)+3=f
(2)+3=f
(1)+2+3=f(0)+1+2+3=0+6=6。
9.有以下程序:
{intsum=0,x=5;
do{sum+=x;
}while(!
--x);
sum);
A0
C14
D15
[解析]do-while循环,先执行循环体sum+=x,则sum=sum+x=0+5=5,再执行while中的表达式,结果为0,退出循环,所以运行结果是5。
10.下面不属于软件设计阶段任务的是______。
A软件的功能确定
B软件的总体结构设计
C软件的数据设计
D软件的过程设计
[解析]软件设计阶段的任务包括:
①结构设计;
②数据设计;
③接口设计;
④过程设计。
软件的功能确定是在需求分析阶段完成的。
11.有以下程序:
typedefstruct{charname[9];
floatscore[2];
}STU;
voidf(STU*a)
{strcpy(a->name,"
Zhao"
);
a->sex="
In"
;
a->score[1]=90.0;
{STUc={"
Qian"
f"
95.0,92.0},*d=&
c;
f(d);
%s,%c,%2.Of,%2.0f\n"
d->name,c.sex,c.score[0],c.score[1]);
AQian,f,95,92
BZhao,f,95,90
CZhao,m,95,90
DZhao,f,95,92
[解析]f函数调用时,结构体数组名作为实参传给形参指针,结构体指针a指向数组c的首地址。
因此,f可以对数组c中的元素赋值,故返回主函数之后,数组c中的成员值已被更新。
main函数中有赋值语句"
*d=&
"
,指针d指向结构体数组c的首地址,故d->name=c.name,输出结果为Zhao,m,95,90。
12.在C语言程序中,下列说法正确的是______。
A函数的定义可以嵌套,但函数的调用不可以嵌套
B函数的定义不可以嵌套,但函数的调用可以嵌套
C函数的定义和调用均不可以嵌套
D函数的定义和调用均可以嵌套
[解析]函数定义都是在函数外部进行的,函数调用是在函数内部进行的,所以函数的定义不可以嵌套,但函数的调用可以嵌套。
13.执行以下程序段后,s的值为______。
inta[]={1,2,3,4,5,6,7,8,9},s=0,k;
for(k=0;
k<8;
k+=2)S+=*(a+k);
A13
B16
C17
D45
[解析]数组a中的元素为:
a[0]=1,a[1]=2,…,a[8]=9。
k=0时,s=s+*(a+0)=0+1=1;
k=2时,s=1+*(a+2)=1+3=4;
k=4时,s=4+5=9;
k=6时,s=9+7=16。
14.有以下程序:
#defineM5
#definef(x,y)x*y+M
{
intk;
k=f(2,3)*f(2,3);
k);
A22
B41
C100
D121
[解析]宏定义中的函数在调用时只做简单的替换,不能进行任何修改。
所以k=2*3+5*2*3+5=41。
15.有以下程序:
{charch="
Z"
ch=(ch-"
A"
+1)%26+"
putchar(ch);
A.Z
B.Y
C.B
D.A
[解析]Z的ASCII码是90,A的ASCII码是65,所以ch=(ch-"
=26%26+65=65,输出65对应的字符A。
16.下面属于黑盒测试方法的是______。
A基本路径测试
B等价类划分
C判定覆盖测试
D语句覆盖测试
[解析]等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类进行测试。
基本路径测试、判定覆盖测试和语句覆盖测试都属于白盒测试。
17.有以下程序:
{inti,j,k,a=5,b=6;
i=(a==b)?
++a:
--b;
j=a++;
k=b;
%d,%d,%d\n"
i,j,k);
A7,6,5
B5,5,5
C7,5,5
D5,6,5
[解析]条件表达式i=(a==b)?
--b;
中先执行a==b,值为假,根据三元运算符语法规则,执行--b,此时b为5,赋给i,i=5;
j=a++,将a=5先赋给j,再进行a++,j=5,a=6,k=b=5,故最后输出的是5,5,5。
18.C语言程序中,若函数无返回值,则应该对函数说明的类型是______。
Aint
Bdouble
Cchar
Dvoid
[解析]int表示返回值是整型,double表示返回值是双精度型,char表示返回值是字符型,void表示无返回值。
19.有以下程序:
{intk,n=0;
charc,str[]="
teach"
str[k];
k++)
{c=str[k];
switch(k)
{case1:
case3:
case5:
putchar(c);
%d"
++n);
break;
default:
putehar("
N"
序的运行结果是______。
ANe1NN
Be1a2e3
CNe1Nc2N
DNa1NNNN
[解析]程序执行过程:
k=0时,c=str[0]="
t"
,执行default分支,输出N;
k=1时,c="
e"
,执行case1分支,没有break语句,继续执行case3分支,没有break语句,继续执行case5分支,输出e1;
k=2时,c="
a"
,输出N;
k=3,c="
c"
,输出c2;
k=4,c="
h"
,输出N。
故程序的输出结果为Ne1Nc2N。
20.有以下程序:
voidfun(char(*P)[6])
for(i=0;
i<4;
i++)printf("
P[i][i]);
\n"
{chars[6][6]={IfABCDE"
abcde"
12345"
FGHIJ"
fghij"
54321"
fun(s);
AAa1F
BAb3I
CABCD
Dfghij
[解析]函数:
fun的功能是输出s[i][i],二维数组的对角线元素,所以程序会输出s[0][0]、s[1][1]、s[2][2]、s[3][3],即Ah3I。
21.设变量x为longint型并已正确赋值,以下表达式中能将x的百位上的数字提取出的是______。
Ax/10%100
Bx%10/100
Cx%100/10
Dx/100%10
[解析]x/100的个位数是x的百位数上的数字,所以再进行除10取余运算即可得到该数字。
22.在E-R图中,表示实体的图形是______。
A矩形
B椭圆
C菱形
D.圆
[解析]在E-R图中,矩形表示实体集,矩形内写该实体集的名字。
23.下面对软件特点描述不正确的是______。
A软件是一种逻辑实体,具有抽象性
B软件开发、运行对计算机系统具有依赖性
C软件开发涉及软件知识产权、法律及心理等社会因素
D软件运行存在磨损和老化问题
[解析]与硬件不同,软件在运行、使用期间不存在磨损、老化问题。
24.设x,y,z均为实型变量,代数式在C语言中的正确写法是______。
Ax/y*z
Bx%y%z
Cx/y/z
Dx*z/y
[解析]运算符×
、/的结合顺序是从左到右,所以x先除以y,再除以z。
25.有以下程序:
#defineN4
voidfun(inta[][N],intb[])
i<N;
i++)b[i]=a[i][N-1-i];
{intx[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},y[N],i;
fun(x,y);
%d,"
y[i]);
A1,2,3,4,
B3,6,9,12,
C4,7,10,13,
D1,5,9,13,
[解析]调用fun函数,y[i]=x[i][N-1-i],N=4,x是4行4列的二维数组。
i=0时,y[0]=x[0][4-1]=x[0][3]=4;
i=1时,y[1]=x[1][4-1-1]=x[1][2]=7;
i=2时,y[2]=x[2][4-1-2]=x[2][1]=10;
i=3时,y[3]=x[3][0]=13。
26.在下列链表中,能够从任意一个结点出发直接访问到所有结点的是______。
A单链表
B循环链表
C双向链表
D二叉链表
[解析]线性单链表,必须从头指针开始,才能访问到所有的结点;
循环链表的最后一个结点的指针域指向表头结点,所有结点的指针构成了一个环状链,只要指出表中任何一个结点的位置就可以从它出发访问到表中其他所有的结点;
双向链表头结点和尾结点之间没有链接,所以如果从中间结点开始访问无法直接访问到所有结点;
二叉链表从除根结点之外的任意一个结点出发无法直接访问到所有结点。
27.有以下程序:
#include<stdio,h>
{inti,j,x=0;
i<2;
i++)
{x++;
for(j=0;
j<=3;
j++)
{if(j%2==0)continue;
x++;
x=%d\n"
x);
Ax=4
Bx=6
Cx=8
Dx=12
[解析]第一次循环:
i=0,执行x++后x=1,执行内层循环j=0,由于j%2!
=0时才执行x++,即只有j取1和3时,执行x++,此时x=1+1+1=3,跳出内层循环,执行下一条x++,x=4,第二次循环:
x=1时,重复上述循环,共执行两次循环,故x最终结果是4*2=8。
28.对图书进行编目时,图书有如下属性:
ISBN书号,书名,作者,出版社,出版日期。
能作为关键字的是______。
AISBN书号
B书名
C作者,出版社
D出版社,出版日期
[解析]关键字是指能惟一标识元组的属性或属性集合。
书号可以惟一标识一本图书,本题中,书名、作者、出版社、出版日期等字段都不能惟一标识一本图书。
29.若主函数中有定义语句:
inta[10],b[10],c;
,在主函数前定义的fun函数首部为:
voidfun(intx[]),则以下选项中错误的调用语句是______。
Afun(b);
Bfun(&
c);
Cfun(&
a[3]);
D:
fun(b[11]);
[解析]fun函数的形式参数为一个数组,需要实参为一个地址,而b[11]是一个整型元素,参数类型不一致,且b[11]已经溢出,所以D项错误。
30.构成C语言程序的三种基本结构是______。
A顺序结构、转移结构、递归结构
B顺序结构、嵌套结构、递归结构
C顺序结构、选择结构、循环结构
D选择结构、循环结构、嵌套结构
[解析]C语言程序是结构化程序,由三种基本结构组成:
①顺序结构;
②选择结构;
③循环结构。
31.下列形式中不合法的常量是______。
A2.E8
B-.28
C-028
D2e-8
[解析]0开头表示的是八进制整型常量,八进制数只能用0~7的数字表示。
32.下列与栈结构有关联的是______。
A数组的定义域使用
B操作系统的进程调度
C函数的递归调用
D选择结构的执行
[解析]函数的递归调用是指函数调用函数本身,直到满足特定条件时终止,然后从最后被递归调用处返回。
递归函数是通过栈来实现的,所以调用原则和栈的实现相一致。
33.以下不是C语言字符型或字符串常量的是______。
A"
It"
s"
B"
0"
C"
a=0"
D"
\010"
[解析]C项是一个赋值表达式。
AB两项是字符串常量,D项是字符常量。
34.下列数据结构中,属于非线性结构的是______。
A双向链表
C二叉链表
D循环队列
[解析]线性结构的特点:
除了首结点和尾结点外,每一个结点只有一个前驱结点和一个后继结点。
线性表、栈、队列都是线性结构,循环链表和双向链表是线性表的链式存储结构;
带链的栈是栈的链式存储结构。
二叉链表是二叉树的链式存储结构,二叉树是非线性结构,所以二叉链表是非线性结构。
35.有以下程序:
intk=10;
%4d,%0,%x\n"
k,k,k);
(□代表一个空格)
A10,12,a
B□□10,012,a
C010,12,a
D□□10,12,a
[解析]%4d表示输出占4个字符的十进制,故先输出2个空格,然后输出10;
%o表示输出八进制,所以输出10的八进制为12;
%x表示输出十六进制,即a。
36.数据库管理系统是______。
A操作系统的一部分
B系统软件
C一种编译系统
D一种通信软件系统
[解析]系统软件主要包括:
①操作系统软件;
②各种语言的解释程序和编译程序;
③各种服务性程序;
④各种数据库管理系统。
37.若有定义:
inta=1,b=2,c=3;
,则执行表达式(a=b+c)||(++b)后,a,b,c的值依次为______。
A1,2,3
B5,3,2
C5,2,3
D5,3,3
[解析]||表示或运算,当第一个表达式为真时,第二个表达式不执行。
根据运算符的优先级规则,先计算(a=b+c),将b+c的值赋值给a,则a=5,而||右边的括号不会被执行,所以b=2,c=3。
38.有两个关系R和T如下:
R
ABC
a12
b44
c23
d32
T
AC
a2
b4
c3
d2
则由关系R得到关系T的操作是______。
A选择
B.交
C投影
D.并
[解析]关系T是由关系R的第1、3列的元组组成,这是对关系R进行投影运算的结果。
可以简单理解为:
选择运算是对行的操作,投影运算是对列的操作。
39.设有:
chars[5],c;
,则调用函数scanf能正确给s和c读入数据的是______。
%s%c"
s,c);
Bscanf("
%d%c"
s,&
Cscanf("
s,&
Dscanf("
[解析]s[5]中放的是字符串,故输入的类型应该是%s;
变量c中放的是字符,故输入的类型是%c。
要正确读入数据必须要使用s和c的地址,而s代表就是字符数组的首地址。
40.若变量已正确定义并赋值,则错误的赋值语句是______。
Aa+=a+1;
Ba=sizeof(double);
Ca=d||c;
Da+1=a;
[解析]赋值号"
="
的左边必须是一个变量名,不可以是表达式。
二、程序填空题
1.下列给定的程序中,函数fun()的功能是:
求出以下分数序列的前n项和。
2/1,3/2,5/3,8/5,13/8,21/13,……和值通过函数值返回main()函数。
例如,若输入n=5,则应输出8.391667。
注意:
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
[试题源程序]
#incú
de<stdio.h>
#include<conio.h>
doublefun(intn)
inta=2,b=1,c,k;
double______;
for(k=1;
k<:
n;
s=s+1.0*a/b;
c=a;
a+=______;
b=c;
return(s);
intn=5;
\nThevalueoffunctionis:
%lf\n"
______);
8
s=0.0bfun(n)[解析]第一空:
此处要对变量s进行声明,因为后面有对s的累加操作,所以s一定要进行初始化,即s=0.0。
第2空:
此处是循环求和,由数列可以看出后一项分数的分子是前一项分母与分子之和,即a=a+b或者a+=b。
第3空:
此处进行子函数调用。
三、程序修改题
1.给定程序中函数fun的功能是:
根据整型形参m,计算如下公式的值。
例如,若m中的值为:
5,则应输出:
1.463611。
请改正程序中的错误,使它能得到正确结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构。
doublefun(intm)
doubley=1.0;
inti;
/**********found**********/
for(i=2;
i<m;
y+=1/(i*i);
return(y);
main()
intn=5:
\nTheresultis%lf\n"
fun(n));
(1)错误:
正确:
i<=m;
(2)错误:
y+=1/(i*i)
y+=1.0/(i*i)[解析]错误
(1):
使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 全国 计算机等级考试 二级 语言 详解
![提示](https://static.bdocx.com/images/bang_tan.gif)