全国计算机等级考试二级C语言真题库之选择题11Word文档下载推荐.docx
- 文档编号:22486427
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:27
- 大小:36.83KB
全国计算机等级考试二级C语言真题库之选择题11Word文档下载推荐.docx
《全国计算机等级考试二级C语言真题库之选择题11Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言真题库之选择题11Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
C)数据流程图(图)
D)判定表
【解析】结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。
8.在关系模型中,每一个二维表称为一个
A)关系
B)属性
C)元组
D)主码(键)
【解析】关系模型采用二维表来表示,即每个二维表称为一个关系。
9.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是
A)一对一
B)一对多
C)多对一
D)多对多
【解析】A和B为一对多的联系,则对于A中的每一个实体,B中有多个实体与之联系,而B与C为一对一联系,则对于B中的每一个实体,C中之多有一个实体与之联系,则可推出对于A中的每一个实体,C中有多个实体与联系,所以为一对多联系。
10.
A)选择
B)投影
C)交
D)并
【解析】关系T中的元素与关系R和关系S中不同元素的总和,因此为并操作。
11.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。
关于转换以下说法错误的是
A)一条C语句可能会被转换成零条机器指令
B)一条C语句可能会被转换成多条机器指令
C)一条C语句对应转换成一条机器指令
D)某种类型和格式的C语句被转换成机器指令的条数是固定的
【解析】一个C语句经过编译后产生若干条机器指令。声明部分不是语句,不产生机器指令,只是对有关数据的声明。而且固定类型和格式的C语句被转换成机器指令的条数固定。所以选择C选项。
12.关于"
(条件表达式)循环体"
,以下叙述正确的是
A)循环体的执行次数总是比条件表达式的执行次数多一次
B)条件表达式的执行次数总是比循环体的执行次数多一次
C)条件表达式的执行次数与循环体的执行次数一样
D)条件表达式的执行次数与循环体的执行次数无关
【解析】循环是先判断条件,满足条件后执行循环体,执行完后接着判断条件,执行,直到最后一次判断条件后不成立,跳出循环,所以最后一次执行了条件表达式,但是没有执行循环体,所以选择B选项。
13.关于C语言的符号常量,以下叙述中正确的是
A)符号常量的符号名是标识符,但必须大写
B)符号常量是指在程序中通过宏定义用一个符号名来代表一个常量
C)符号常量在整个程序中其值都不能再被重新定义
D)符号常量的符号名必须是常量
【解析】在C语言中,可以用一个标识符来代表一个常量,称为符号常量。这个标识符必须在程序中进行特别的"
指定"
并符合标识符的命名规则。用作符号常量的标识符通常采用大写字母表示,在主函数中其值不能再被定义。所以选择B选项。
14.若有以下程序
<
>
()
{10,11;
ab4;
("
\n"
a,b);
}
则程序的输出结果是
A)12
B)-12
C)-1-2
D)1-2
【解析】先计算4,即4,结果为2,然后计算2,结果为-1,最后a的值为-1的值为2,所以选择B选项。
15.若有以下程序
{000;
(a),(,4);
\n"
);
A)0,4,0
B)0,4,4
C)1,4,1
D)1,4,4
【解析】逗号运算符的结合性从左到右,因此逗号表达式将从左到右进行计算。
且逗号运算符的优先级最低,所以先计算()这部分。
其中,赋值运算符从右往左计算,先执行自增1后再赋值,所以a的值为1,执行1,即1-1的值为0,并将0赋给变量c。第二部分(4),先执行0+0,即a的值为0,然后执行40+4,即b的值为4。所以打印结果为0,4,0,选择A选项。
16.若有以下程序
(,,);
/*第4行*/
;
;
/*第5行*/
/*第6行*/
/*第7行*/
编译时出现错误,你认为出错的是
A)第4行
B)第5行
C)第6行
D)第7行
【解析】第4行逗号表达式中间的第二个表达式为空,是不合法的,可以去掉写成,也可以在里面补一个表达式,如。所以选择A选项。
17.若有以下程序
{1234;
(
(2)
(1))2;
((3)
(1))5;
);
A)1,2,3,4
B)2,1,21
C)5,1,21
D)2,2,2,4
【解析】第一个语句的判断条件中是逻辑或表达式,所以只要有一个运算对象为真结果就为真,且如果前面的已经为真,后面的表达式不再进行执行判断。执行第一个判断条件时a的值为2,整个表达式的值为真的值不变的值为2。判断第二个条件为逻辑与表达式,只有两个运算对象均非零,才为真,第一个表达式3,不成立,不再判断第二个运算对象,所以不执行1操作和5操作。所以结果为选项D。
18.若有以下程序
{1234,0;
(1);
1;
(2)2;
(3)3;
(4)4;
r);
A)10
B)7
C)6
D)3
【解析】总是和与之最近的上面的配对,执行第一个,判断条件不成立,执行1;
语句。再执行第二个语句中的判断条件,成立,左移执行2的值为3,再执行第三个的判断条件,不成立执行第7行后面的空语句"
"
。再执行第四个的判断条件4成立,执行4的值为7。然后打印输出。
19.若有以下程序
{0,n;
(0;
n<
4;
)
{(n)
{:
4;
1:
2:
2;
3:
3;
s);
A)6
B)18
C)10
D)24
【解析】第一次循环的值为0,所以从后面的语句开始执行4123的值为10。在进入第二次循环的值为1,所以执行123的值为16。在进入第三次循环的值为2,所以执行23的值为21。在进入第四次循环的值为3,所以执行3的值为24。
20.若有以下程序
{2,0;
();
A)1,2
B)0,2
C)1,3
D)2,3
【解析】第一次判断条件中,先用后加,为-2不为0条件为真,执行a的自加与操作的值变为-1的值变为1。第二次判断后的值变为0的值变为2。第三次判断条件为假,但是仍要执行自加操作,即值为1,跳出循环。打印1和2。
21.若有以下程序
{6,0,0;
(;
){ba;
a;
A)1,14,3
B)0,14,3
C)0,18,3
D)0,14,6
【解析】本循环的条件判断时只要a为0就退出循环体,初始值a的值为6,满足条件执行完循环体的值为6即(),所以a的值为5的值为1。第二次循环后b的值为11的值为3的值为2。第三次也是最后循环后的值为0的值14的值为3。
22.以下选项中非法的C语言字符常量是
A)'
\007'
B)'
\b'
C)'
'
D)'
\'
【解析】C选项中是字符串常量,应该用双引号表示即"
。所以选择C选项。
23.若有以下程序
f(x)
{x*'
a'
{a,0;
(0;
a<
1)
{b=f(a);
(b);
A)
B)
C)
D)
【解析】该题目首先初始化变量a和b,通过循环语句使a取值为0、1、2、3,f函数的功能是将a*'
的值返回给b,即b为a、b、e、j。
最后通过字符输出函数()将b输出。
因此C选项正确。
24.若有以下程序
(*a)
{2;
*a=*a*2;
"
*a);
{3,*;
(p);
k,*p);
A)4,3,3
B)4,3,4
C)6,3,6
D)6,6,6
【解析】首先在主函数中给整型变量k赋值为3,将变量k的地址赋给指针变量p;
调用函数,将实参p的值传给形参a,在函数中,指针变量a又获得变量b的地址,通过运算后,输出a的值为4;
返回主函数,输出k的值和p的值为3和3。
因此A选项正确。
25.若有以下程序
7;
f(**s)
{*;
*;
k,*t,**s);
{3,*,**r=;
f(r);
i,*p,**r);
A)3,3,3,7,7,7
B)3,7,7,7,7,7
C)7,7,7,3,3,3
D)7,7,7,3,7,7
【解析】在主函数中分别给整型变量i,指针型变量p和指向指针的指针变量r赋初值;
调用f函数,并将实参变量r的值传递给形参变量s,在f函数中,通过("
语句输出7,7,7;
返回主函数,通过("
输出3,7,7。因此D选项正确。
26.若有以下程序
*f(**t)
{*k;
(*s<
*t){k=s;
s;
{3,5,*,*,*r;
();
i,j,*p,*q,*r);
A)3,5,5,3,5
B)3,5,3,5,5
C)5,3,5,3,5
D)5,3,3,5,5
【解析】在主函数中分别给整型变量i、j和指针型变量p、q赋初值,并声明指针变量r;
调用f函数,并将实参变量p和q的值传递给形参变量s和t,并且f函数是指针型函数,即函数的返回值将是一个地址。
在f函数中,如果条件成立,则将指针变量s和t互换,并且将指针s的地址返回主函数。
最后输出i,j,*p,*q,*r的值,即3,5,3,5,5。
因此B选项正确。
27.若有以下程序
N4
(a[][N],b[],)
{;
i<
N;
{b[i]=a[i][0];
(1;
j<
)
(?
(b[i]>
a[i][j]):
(b[i]<
a[i][j]))
b[i]=a[i][j];
()
{x[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},y[N];
(x,y,1);
)("
y[i]);
(x,y,0);
(0<
A)1,5,9,13,4,8,12,16,
B)4,8,12,16,1,5,9,13,
C)1,2,3,4,13,14,15,16,
D)13,14,15,16,1,2,3,4,
【解析】该题首先初始化二维数组(?
a[i][j]))条件语句的条件表达式使用了条件运算符构成的选择结构,即为真时,以(b[i]>
a[i][j])作为条件表达式的值,否则以(b[i]<
a[i][j])作为条件表达式的值函数功能是给一维数组赋值。(x,y,1);
该函数调用后,即当为真时,使一维数组获得二维数组第1列的数值(x,y,0);
该函数调用后,即当为假时,使一维数组获得二维数组第4列的数值;
因此A选项正确。
28.若有以下程序
(a[],n)
n;
2)
(2;
(a[i]>
a[j]){[i];
a[i][j][j];
}
{c[10]={10,9,8,7,6,5,4,3,2,1};
(c,10);
10;
c[i]);
A)1,10,3,8,5,6,7,4,9,2,
B)10,9,8,7,6,5,4,3,2,1,
C)2,9,4,7,6,5,8,3,10,1,
D)10,1,8,3,6,5,4,7,2,9,
【解析】该题首先对一维数组进行初始化,c[0]到c[9]依次赋值为10到1;
(c,10);
语句调用函数,函数的功能是将一维数组偶数位元素的数值由小到大排序;
最后将排好序的新的一维数组进行输出。
因此D选项正确。
29.若有以下程序
{0;
a[]="
!
a[i];
(a[i]'
'
)a[][i];
a[j]='
\0'
A)!
C)!
D)!
【解析】主函数中首先定义字符数组a[]="
执行循环语句,语句(a[i]'
其功能是将字符数组中的空格去掉。
30.若有以下程序
*"
b[]="
{i,0;
*p;
b[i]'
{(*ab[i])
(;
*'
{(*pb[j]);
(*'
);
[i]);
B)!
【解析】该程序首先定义*a和b[],并进行初始化。
主函数中通过外层循环语句,遍历字符数组b[],并且将符合条件语句的字符赋给数组p;
内层循环语句,遍历字符数组a[]。
再将符合条件语句的结果输出。
31.若有以下程序
{a[20],b[]="
."
i;
7;
(a);
执行时若输入:
(其中<
表示回车符)
.<
则输出结果是
A).
C).
D).
【解析】程序首先初始化字符数组b[],执行循环语句,循环变量i的取值范围从0到6。在循环语句中通过函数将从键盘上输入的数据输入到b[]中,即b的值为.。退出循环语句,执行语句(a);
()函数的调用形式为(),其中是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止,即a的值为.。因此A选项正确。
32.若有以下程序
{w[20],a[5][10]={"
"
};
p[6][2]={{0,1},{1,5},{0,0},{0,2},{1,4},{4,4}},i;
6;
)w[i][p[i][0]][p[i][1]];
(w);
【解析】程序首先初始化字符数组a[5][10]和二维数组p[6][2]。
执行循环语句,循环变量i从0取值到5,得到字符数组w[]的值,并通过字符串输出函数进行输出操作。
w[0][0][1]、w[1][1][5]、w[2][0][0]、w[3][0][2]、w[4][1][4]、w[5][4][4];
因此最后字符数组w的结果为。
33.若有以下程序
{(x>
=10)
{("
10);
f(10);
x);
{z=123456;
f(z);
A)6-5-4-3-2-1-
B)6-5-4-3-2-1
C)1-2-3-4-5-6
D)1-2-3-4-5-6-
【解析】本题重点考察函数的递归调用,程序首先初始化整型变量z为123456,调用函数f。
f函数中首先通过条件语句判断x是否大于等于10,如果条件成立,求x除以10的余数并输出,同时将变量x进行10运算,同时调用函数f。
如果条件不成立,直接输出变量x。
因此第1次调用函数,变量x为123456,条件成立,输出余数6;
第2次调用函数,变量x为12345,条件成立,输出余数5;
第3次调用函数,变量x为1234,条件成立,输出余数4;
第4次调用函数,变量x为123,条件成立,输出余数3;
第5次调用函数,变量x为12,条件成立,输出余数2;
第6次调用函数,变量x为12345,条件不成立,输出1。
34.若有以下程序
f(m)
{n;
0;
{k;
k<
f(k));
A)4,5,6,7,
B)4,7,10,13,
C)4,6,8,10,
D)3,5,7,9,
【解析】主函数中变量k作为语句的循环变量,取值0、1、2、3,同时也作为实参通过调用函数f传递给形参变量m。
由于变量a是全局变量,变量n是静态变量,因此0时,f函数中,语句;
即1+0+3=4;
1时,f函数中,语句;
即2+1+3=6;
2时,f函数中,语句;
即3+2+3=8;
3时,f函数中,语句;
即4+3+3=10。
35.若有以下程序
S(x)x*x
T(x)S(x)*S(x)
{5,2;
S()());
A)17,289
B)49,2401
C)17,37
D)49,289
【解析】本题考查宏定义,宏定义只是做个简单的替换,执行S()*17()()*S()***37,选项C正确。
36.若有以下程序
{
*,;
()
{
{,'
m'
290},b;
(*)(10);
(,"
b=a;
='
f'
=350;
("
,,);
A),290,350
B),290,350
C),350,350
D),290,350
【解析】本题中考查结构体中变量的引用,a结构体中被修改为,所以本题答案为D。
37.若有以下程序
};
f(*p)
(p,"
(,"
);
f();
【解析】本题考查结构体变量中的引用,其中a的为,b执行函数f()后b的并没有改变,还是,所以答案为B选项。
38.若有定义
*T;
Ta[10];
则a的定义与下面哪个语句等价
A)(*a)[10];
B)*a[10];
C)*a;
D)a[10];
【解析】本题考查的使用方法,对已存在的类型使用一个新的名字,其中本题中*用T来代替,所以定义Ta[10];
就相当于是*a[10];
选项B正确。
39.若有以下程序
{c;
10^5;
c);
A)5
B)15
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 语言 题库 选择题 11