计算机等级考试二级C语言考前密卷(7)
(1)最简单的交换排序法是
A)快速排序
B)选择性排序
C)堆排序
D)冒泡排序
(2)栈中常用的两种存储结构是
A)线性存储结构。C)链表存储结构和数组
D)线性存储结构和非线性存储结构
(3)线性表的顺序存储结构和链式存储结构是
A)顺序存取存储结构、顺序存取存储结构
B)随机存取存储结构和顺序存取存储结构[/] C)随机存取存储结构、随机存取存储结构
D)随机存取存储结构、随机存取存储结构
(4)完全忽略程序的内部结构和内部特征, 但仅根据程序功能派生测试用例的测试方法有
A)黑盒测试方法b)白盒测试方法
C)错误推断方法d)安装测试方法
(5)在结构设计方法中,在生成的结构图(SC)中,带箭头的线表示
A)模块间的调用关系b)程序的组成部分
C)控制程序的执行顺序d)数据流
(6)在下列选项中 不属于模块间耦合的是
A)数据耦合b)同构耦合
C)异构耦合d)公共耦合
(7)当一个关系中的属性个数为1时, 这种关系称为
A)对应关系B)单一关系
C)一元关系D)二元关系
(8)为用户和数据库系统提供接口的语言是
A)高级语言
B)数据描述语言(DDL) [/br D)汇编语言
(9)相对于数据库系统,系统的主要缺陷是数据关联差,数据不一致,
A)可重用性差,B)安全性差,
d)冗余性
(10)需求分析阶段的任务是确定
A)软件开发方法,b)软件开发工具
c. (11)下列关于C语言的说法不正确的是
A)C语言既有高级语言的全部功能,也有低级语言的部分功能
b)C语言中的每条执行语句都必须以分号结尾,分号不是C语言的一部分, 是语句之间的分隔符
C)注释可以出现在程序的任何地方
D)命令行后面不能加多余的符号,这不是C语言中的语句
(12)下列关于标识符的语句是错误的
A)合法的标识符由字母、数字和下划线组成
。 大写字母和小写字母被认为是两种不同的字符
C)C语言的标识符可以分为三类,分别是关键字、预定义标识符和用户标识符
D)当用户标识符与关键字不同时,程序执行时会给出错误信息
(13)下列合法整数常量的表达式是
a)098
b)oxde
C)32767
D)0x DG
双b;浮动c;char k;以下表达式a/b+c-k值的类型为:
A)int
B)double
C)float
d)char
(15)假设整型变量A、B、C的值都为5,则表达式a+++b+++c++的值为
A)17
B)16
C)15
d)14
B)以“}”结尾的复合语句被视为语法中的语句
C)在复合语句内部,可以有执行语句,可以没有已定义的语句部分
d)C程序中的所有语句都必须以分号
(17)关于printf()函数返回值的语句是正确的
A)通常是这个调用的输出字符数
B)通常是第一个值输出
。d)通常返回非零值
(18)现有格式化输入语句,scanf ("x =% d ц,总和ц y =% d,行ц z =% dl ",&x,&y,& z);现在已知x、y、z、y和z的值分别为12、34和45。那么下面的数据就是正确的输入格式
a) 12,34,45
b) x = 12,y = 34,z = 45
。line]z = 45
[注]:“ц”表示空格,表示回车
(19)设x,y,z,t都是整数变量。存在以下语句:x = y = z = 1;t = ++ x | | ++ y & & ++ z;那么这个语句执行后t的值是
a)2
b)1
c)0
d)它不是固定的
(20)有下面这个程序段,它的编译有错误,所以程序段的错误在于
。
d=a>30?b:c;
switch(d){ case a:printf(" % d,",a);
案例b:printf("%d,",b);
case c:printf("%d,",c);
默认值:printf(" # ");}}
A)默认值:printf(" # ");这种说法
B)d=a>30?b:c;这个语句
C)case a:printf("%d ",a);情况b:printf("%d ",b);案例c:printf("%d ",c);这三个语句
D)switch(d)这个语句
(21)下列语句中,错误的是(x,y,A,b假设已定义)
A)while(x = y)5;
B)do x ++ while(x = = 10);
C)while(0);
D)do 2;while(a = = b);
(22)如果I和J已经被定义为整数,在下面的程序段中,内循环体的执行次数为
for(I = 6;我;I-)
for(j = 0;A)40
B)35
c)30
d)25
(23)下列说法是错误的
A)只能在循环内部使用break语句
B)可以在循环内部使用break语句。从而提前结束这个级别的循环
C)在while和do…while循环中,continue语句并不结束整个循环
d)continue的作用是结束这个循环,即跳过这个循环中剩余的未执行语句,然后再次进行循环判断
(24)读取下面的程序段
# include " stdio . h "
main()
{ int x,a,b;
scanf("%d ",& x);
a = b = x;
for(;x!=0;)
{ if(x if(x > a)a = x;
scanf("%d ",& x);}
printf("a=%d,b=%d\n ",a,b);}
现在输入如下内容。[注]:' ц'的意思空格
34ц56ц23ц45ц5ц56ц7ц12ц365ц49цb = 365
c)a = 7,b=789
D)a=7569, B=5
(25)下列关于字符常量的说法是错误的
A)一个字符常量代表ASCII字符集中的一个字符
B)单引号中的大写字母和小写字母代表不同的字符常量
C)一个字符常量只能包含一个字符
D)字符常量可以用单引号或双引号括起来(26)现有程序
# include " stdio . h "
int fun(intx)[/br }
main()
{ fun(12+5);}
那么程序的输出结果是
a)12
b)13
c)17
d)18
(27)有以下程序段
# include”。
main()
{int a=24,b=16,c;
c=aa(a,b);
printf("%d\n ",c);}
int aa(int x,int y)
{ int w;
while(y)
{ w = x % y;
x = y;
y = w;}
return x;}
则程序段的输出结果为
A)8
b)7
c)6
d)5
(28)下列说法错误的是:
A)调用函数时,函数名必须与被调用函数名完全相同
B)实参个数必须与形参个数相同
C)实参可以是表达式, 并且它们的类型必须与形参一一匹配
D)C语言规定函数在被调用前必须被定义(函数返回值类型为int或char时除外)
。
B)返回(表达式);
C)一个return语句可以返回多个函数值
D)一个return语句只能返回一个函数值
(30)现有的定义如下:int a,b,*p,* q;,下列赋值语句错误的是
A)p = & A;
B)q = & B;
C)p = q;
D)p = a;
(31)现有程序段
#包含" stdio.h"
int * fun (int * a,int * b)
{ int c;
c = * a % * b;
return & c;}
main()
{int a=5,b=19,* c;
c=fun(&a,& b);
printf(" % d \ n " ,++ * c);}
程序段执行后的结果是
a)8
b)7
c)6
d)5
(32)现有int a,* b;,b = & a;,下列操作错误为
a)* & a
b)& * a
c)* & b
d)& * b
(33)下列程序段
# include存在。
int count=0,I = 0;
while(k[I])
{ if(k[I]% 2 = = 0‖k[I]% 5 = = 0)count++;
i++;}
printf("%d,%d\n ",count,I);}
那么程序段的输出结果是
a) 7,8
b) 8,8
c) 7,10
d) 8,10
(34)有以下定义[
p = s;
数组元素s [i]的表达式不正确
a)*(s+I)
b)*(p+I)
c)*(s = s+I)
d)*。以下关于此警告的说法正确的是
# include " stdio . h "
# define n10
int * fun(int a[n],int n)
{int i,b[n];
for(I = 0;I b[I]= a[I];
return(b);}
main()
{ int a[N]= { 12,34,45,5,6,34,4,655,2 };
int * k;
k=fun(a[N],5);
printf("%d\n ",* k);}
A)指针K没有指向任何对象,变成了“无向指针”,所以这里会出现警告
b)return语句不应该有括号,所以这里会出现警告
c)return语句的返回值类型与指针K的基类型不一致, 而且这里会有一个警告
D)数组没有用赋值所以这里会有一个警告
(36)用下面的定义语句:int aa [] (2)在编程阶段,应采用[2]逐步细化的方法,将一个模块的功能逐步分解并细化为一系列具体步骤,然后用某种编程语言编写程序。
【命题目的】让考生对程序设计有更深入的了解。
[考点链接]系统设计其他阶段的内容。 = {12,23,34,4,5,6,78,89,45 }; 则数组aa中45的行列坐标为
a) 3,2
b) 3,1
c) 2,2
d) 2,1
(37)现有程序段
# include " stdio . h "/br/]main()
{ int a(4)数据库系统阶段的数据具有较高的独立性,数据独立性包括物理独立性和[4]。
【命题目的】考察考生对数据库基础知识的掌握程度(数据独立性)。
【解决问题的要点】数据独立是数据与程序之间的相互依赖,即数据库中的数据独立于、独立于应用程序。数据独立一般分为物理独立和逻辑独立。
[考点链接]手工管理、文件系统、数据库管理中数据独立性的特点。(5)数据库保护包括:安全控制、[5]、并发控制和数据恢复。
【命题目的】考察考生对数据库基础知识的理解。
【解决问题要点】安全控制:防止未经授权的用户有意或无意地访问数据库中的数据,从而防止数据被泄露、更改或破坏;完整性控制:确保数据库中数据和语义的正确性和有效性,防止任何导致数据出错的操作;并发控制:正确处理多用户多任务环境下的并发操作,防止出错;恢复:当数据库损坏或数据不正确时,可以将数据库恢复到正确的状态。
[考点链接]数据库的其他用途,如数据定义、数据操作、数据管理等。= { 23,3,65,21,6,78,...。
int i=0,j = 5;
printf("%d\n ",*(& a[0][0]+2 * I+j-2));}
那么程序的输出结果是
a)21
b)78
c)23
d)28
(38)以下程序的输出结果是
# include define M 3
void fun(int a[M][N])
{ printf(" % d \ N ",*(a[1]+2));}
main()
{ int a[M][N];
int i,j;
for(I = 0;I for(j = 0;j a[I][j]= I+j-(I-j);
乐趣(一);}
A)3
b)4
C)5
d)6
(39)下列关于字符串的说法是错误的
A)在C语言中,字符串是通过字符的一维数组来存储的。并规定字符' \ 0 '作为字符串的结束符号
b)' \ 0 '作为符号占用存储空并计入字符串的实际长度
C)在表示一个字符串常量时,不需要人为添加' \ 0'
d)在C语言中,一个常量被隐式处理为以' \ 0'
(40)结尾,用下面的程序段
# include
char k[100]={0},* p = k;
int I;
for(I = 0;IB[j])c[k++]= b[j++];
else { c[k++]= b[j++];
i++;} }
while(a[I]= = ' \ 0 ' & & b[j]!= ' \ 0 ')
c[k++]= b[j++];
while(a[i]!= ' \ 0 ' & & b[j]= = ' \ 0 ')
c[k++]= a[i++];
c[k]= ' \ 0 ';
看跌期权(c);}
则输出结果为
a)acfijkbefijklqswz
b)abcefijjkklqswz
c)befijklqswz acfijk
d)abcefijklqswz
(42
int I,j;
获取;
for(I = j = 0;s[i]!=′[1]′;i++)
if(s[i]!=′H′_ _ _ _ _ _)
s[j]=′\ 0′;
卖出期权;}
这个程序段的作用是删除输入字符串中的字符‘H’,然后在/[k0/]行上要加上
a)s[j++]= s[I];j++;
B)s[j]= s[i++];j++;
C)s[j++]= s[I];
D)s[j]= s[I];
(43)下列说法错误的是
A)静态局部变量的初始值是在编译时给定的,在程序执行过程中不再给定
B)如果全局变量与函数中的局部变量同名,在那个函数中, 这个全局变量被阻塞
C)静态全局变量可以被其他编辑器引用
D)所有自动局部变量的存储单元在进入这些局部变量所在的函数体(或复合句
时生成,在退出函数体(或复合句)时消失
(44)那么程序的输出结果是
# include " stdio . h "
# define m(x,y) * (y)
# define
k=N(M(a,b),c);
printf("%d\n ",k);}
a)3
b)5
c)6
d)8
(45)如果有以下定义和语句
struct a
{int n,m;};
struct a st[3]={{1,20},{2,19},{3,21 } };
struct a* p = ST;
那么下面这个错误的引用就是
a)(p++)-> n;
B)st[0]。n;
C)(*p)。n;
D)p=&st.m
(46)假设以下定义:struct a { int n;浮动k;}数据,* p;要将p指向data中的成员n,正确的赋值语句是
a)p = & data . n;
B)* p = data . n;
C)p =(struct a*)& data . n;
D)p =(struct a*)data . n;
(47)下面这个函数的作用是将指针t2指向的线性链表链接到t1指向的链表的末尾。假设t1指向的链表不是空
结构节点{ float x;结构节点* next};
connect(struct node *t1,struct node * T2)
{ if(t1-> next = = NULL)t1-> next = T2;
else connect(_ _ _ _ _ _ _,T2);}
要实现这个函数,应该添加的选项有
A)t1 . next
b)+t1 . next
c)t1-> next
d)++ t1-> next
(A)TC环境只在内存中打开一个单元来存储结构变量的地址
B)所有成员始终驻留在内存中
C)只有第一个成员驻留在内存中
D)部分成员驻留在内存中,
b) ~,,&,|,
C) ~,,,|
d) ~,,&,,|
(50)最简单的交换排序方法是
(1)堆栈和队列常用的存储结构是[1]。
【命题目的】考察考生对数据结构基础知识的理解。
【解决问题的要点】栈和队列是线性表。它们一般采用顺序存储结构,也可以采用链式存储结构。
[考点链接]栈、数组、表采用的存储结构,以及各种存储结构的定义和区别。
[3]
(3)软件结构是基于[3]的控制层次。
【命题目的】考察考生对软件结构的认识。
【解决问题的要点】运用模块化的原理,可以使软件结构清晰,不仅易于设计,而且易于阅读和理解。模块化使软件易于测试和调试,从而有助于提高软件的可靠性,以及软件的组织和管理。对于大型程序,不同的程序员可以编写不同的模块,熟练的程序员可以进一步分配编写困难的部分。
软件结构的定义和模块操作的所有其他特性。
[5]
[6]
(6)语句printf ("%f \ n ",13.0 *(1/5));的输出结果是[6]。
【命题目的】考察基本运算符的掌握程度。
[解决问题的要点]/的意思是整除,1/5是0,当0乘以任意一个数时得到0,但乘以浮点时需要换算成浮点,所以结果是0.00000。
[考点链接]如果一个运算符的两边一个是字符型,一个是整数型,那么在运算之前,字符型会被转换成整数型。
(7)阅读下面的语句,程序的执行结果为[7]。
# include " stdio . h "
main()
{ int a =-1,b=1,k;
if((++aprintf("%d,%d\n ",a,b);
else printf("%d,%d\n ",b,a);}
【命题目的】考察if语句的掌握程度。
只有[解题要点]两边的语句和运算同时为真,且执行if((++ a[考点链接]++),-运算符时,结果才为真。
(8)阅读下面的语句,执行后的输出结果为[8]
# include " stdio . h "
main()
{ char a,b;
for(a =′0′,b =′9′;a printf("%c%c ",a,b);
printf(" \ n ");}
【命题目的】考察for循环的掌握程度。
【解题要点】for是C语言的关键词,后面是一对括号,通常包含三个表达式,每个表达式之间用分号隔开。这三个表达式可以是任意表达式,通常主要用于for循环控制。
字符类型的运算实际上是其ASCII码值的运算。
(9)阅读下面程序,则执行后程序的结果为 【9】
#include "stdio.h"
main()
{ int a=0,b=0;
while(a
0条评论