无忧考网为大家收集整理了《2014计算机二级考试C语言考前预测选择题》供大家参考,希望对大家有所帮助!!!
1.结构化分析方法是面向( )的自顶向下、逐步求精进行需求分析的方法
A.对象
B.数据结构
C.数据流
D.目标
2.对线性表进行二分法检索,其前提条件是( )。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
3.结构化程序设计的3种结构是( )。
A.顺序结构、选择结构、转移结构
B.分支结构、等价结构、循环结构
C.多分支结构、赋值结构、等价结构
D.顺序结构、选择结构、循环结构
4.已知数据表A中每个元素距其最终位置不远,为了节省时间,应采用的算法是( )。
A.堆排序
B.直接插入排序
C.快速排序
D.直接选择排序
5.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性的阶段是( )。
A.数据库系统
B.文件系统
C.人工管理
D.数据项管理
6.设有如图所示二叉树,对此二叉树后序遍历的结果为( )。
A.ZBTYCPXA
B.ATBZXCYP
C.TZBACYXP
D.ATBZXCPY
7.链表不具有的特点是( )。
A.不必事先估计存储空间
B.可随机访问任意元素
C.插入、删除不需要移动元素
D.所需空间与线性表长度成正比
8.在数据库设计中,将E—R图转换为关系模式的过程属于( )。
A.需求分析阶段
B.逻辑设计阶段
C.概念设计阶段
D.物理设计阶段
9.C语言可执行程序的开始执行点是( )。
A.包含文件中的第一个函数
B.程序中第一个函数
C.程序中的main()函数
D.程序中第一条语句
10.在C语言程序中可用做用户标识符的是( )。
A.void
123
BBN
B.aa
_abc
cas
C.as+b3
-123
If
D.6f
Do
SIG
11.以下所列的C语言常量中,错误的是( )。
A.0xFF
B.1.2e0.5
C.2L
D.‘72’
12.若变量a、i已正确定义,且i已正确赋值,合法的语句是( )。
A.a==l
B.++i
C.a=a++=5
D.a=int(i)
13.若a为int类型,且其值为3,则执行完表达式a+= a-=a*a后,a的值是( )。
A.一3
B.9
C.一12
D.6
14.若有定义“int a=5,b=7;”,则表达式a%一(b%2) 运算后,a的值为( )。
A.0
B.1
C.11
D.3
15.若执行以下程序时从键盘上输入9,则输出结果是( )。
main()
{ int n;
scanf(”%d”,&n);
if(n++<10)printf(”/%d\n”,n);
else printf(”%d\n”,n--);
}
A.11
B.10
C.9
D.8
16.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c= 7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n—c> d)运算后,n的值是( )n
A.0
B.1
C.2
D.3
17.有如下程序:
main()
{ int x=23;
do
{printf(”%d”,x--);}
while(!x);
}
该程序的执行结果是( )。
A.321
B.23
C.不输出任何内容
D.陷入死循环
18.下列程序的输出结果是( )。
#include
main()
{ int a=2,b=3,P;
p=f(a,b);
printf(”%d”,p);
}
int f(a,b)
{ int c;
if(a>b)c=1;
else if(a==b)c=0;
else c=-l;
return(c);
}
A.-l
B.0
C.1
D.2
19.有下列程序:
fun(int x,int y)
{ static int m=0,i=2;
i+=m+1;m=i+x+y;return m;
}
main()
{ int j=1,m=1,k;
k=fun(j,m);print S(”%d,”,k);
k=fun(j,m);printf(”%d\n”,k);
)
执行后的输出结果是( )。
A.5,5
B.5,11
C.11,11
D.11,5
20.下列字符数组初始化语句中,不正确的是( )。
A.char c[]=’900dmornin9’;
B.char c[20]="900dmorning";
C.char c[]={’a’,’b ’,’c ’,’d’);
D.char c[]={"ffgoodmorning"};
21.下列程序的输出结果是( )。
#include
void p(int*x)
{ printf("%d¨,++*x);
}
void main()
{ int y=3;
p(&y);
}
A.3
B.4
C.2
D.5
22.若变量e为char类型,能正确判断出C为小写字母的表达式是( )。
A.’a’<=c<=’2’
B.(c>=’a’)||(c<=’2’)
C.(’a’<=c)and(’z’>c)
D.(c>=’a’)&&(c<=’2’)
23.以下程序的输出结果是( )。
main()
{ int Rum=0;
while(num<=2)
{ num++;
printf(”%d\n”,num);
}
}
A.1
B.1
C.1
2
3
4
D.1
2 2
3
24.以下函数返回a所指数组中最小的值所在的下标值:
fun(int*a,int n)
{ int i,j=0,P;
p=j;
for(i=j;i if(a[i] }
在下划线处应填入的是( )。
A.i=P
B.a[p]=a[i]
C.p=j
D.p=i
25.有如下程序段:
int a=14,b=15,x;
char c=’A’;
x=(a&&b)&&(c
执行该程序后,x的值为( )。
A.true
B.false
C.0
D.1
26.以下程序的输出结果是( )。
main()
{ int i,a[4] [4]一{{1,3,5),{2,4,6},{3,5,7}};
printf("%(1%d%d%d\n".a[O][3],a[1][2],a[2]
[1],a[3][0];
}
A.0650
B.1470
C.5430
D.输出值不定
27.下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。
#include
void sort(int a[],int ll)
{ int i,j,t;
for(i=0;i for(j=j+1+1;j if(a[i] {t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{ int a[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是( )。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
28.下列判断正确的是( )。
A.char a="ABCD":等价于char*a;*a="ABCD":
B.char str[10]={"ABCD"}:等价于char str[10];str []={"ABCD"};
C.char*s="ABCD":等价于char s;*s="ABCD";
D.char c[5]="ABCD",d[5]="ABCD":等价于char c [5]-d[5]="ABCD";
29.有如下程序:
main()
{ int n[5]={0,0,0},i,k=2;
for(i=0;i&printf("%d\n",n[k]););
}
该程序的输出结果是( )。
A.不确定的值
B.2
C.1
D.0
30.当执行下面的程序时,如果输入ABC,则输出结罘是( )。
#include
#include
main()
{ char ss[10]="1,2,3,4,5":
gets(ss);strcat(ss,"6789");printf("%s\n",ss);
}
A.ABC6789
B.ABC67
C.12345ABC6
D.ABC456789
31.以下程序的输出结果是( )。
#define M(x,y,z)x*y+z
main()
{ int a=l,b=2,c=3;
printf("%d\n",m(a+b.b+c,c+a));
}
A.19
B.1 7
C.15
D.12
32.有以下程序:
main()
{ int k=5,n=0;
do
{ switch(k)
{ case 1:
case 3:n+=l;k--;break;
defalut:n=0;k--;
case 2:
case 4:n+=2;k--;break:
}
printf("%d",n);
}while(k>0&&n<5);
}
程序运行后的输出结果是( )。
A.235
B.0235
C.02356
D.2356
33.下面for语句的循环次数为( )。
for(x=1,y=0;(y!=19)&&(x<6);x++);
A.是无限循环
B.循环次数小定
C.最多执行6次
D.最多执行5次
34.对下述程序的判断中,正确的是( )。
#include
main()
{ char*p,s[256];
p=s ;
while(strcmp(s,"the end"))
{ printf("Input the strin9:");
gets(s);
while(*p)
putchar(*p++);
}}
A.此程序循环接收字符串并输出,直到接收到字符串“the end”为止
B.此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止
C.此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作
D.此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连接在一起的字符串
35.下列程序的输出结果是( )。
#include
main()
{ int i,S=0;
for(i=1;i<10;i++)
if(!(i%2)&&!(i%3))s+=i;
printf("%d\n",s);
}
A.4
B.39
C.45
D.6
36.有以下程序:
void fun2(char a,char b) {printf(”%c%c”,a,b); }
char a=’A’,b=’B’;
void funl(){a=’C’;b=’D’;}
main()
{ funl();
printf("%c%c",a,b);
fun2(’E’,’F’);
}
程序的运行结果是( )。
A.CDEF
B.ABEF
C.ABCD
D.CDAB
37.有以下程序:
#include
main()
{ char cl=’1’,c2=’2’;
cl=getchar();c2=getchar();putchar(c1);putcha:
(c2);
}
当程序运行时输入a后,下列叙述中正确的是( )。
A.变量c1被赋予字符a,c2被赋予回车符
B.程序将等待用户输入第2个字符
c.变量c1被赋予字符a,c2中仍是原有字符2
D.变量c1被赋予字符a,c2中将无确定值
38.下述程序的输出结果是( )。
#define N 20
void fun(int a[],int n,int m)
{ int i,j;
for(i=m;i>n;i--)a[i+1]=a[i];
}
main()
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)printf("%d",a[i]);
}
A.10234
B.12344
C.12334
D.12234
39.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以( )方式打开文件。
A."wb"
B."wb+"
C."rb+"
D."rb"
40.下列叙述中错误的是( )。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
1.C。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据、流图和数据字典为主要工具,建立系统的逻辑模型。
2.A。【解析】对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序。
3.D。【解析】结构化程序设计的主要观点是采用自顶向下、逐步求精的程序设计方法;任何程序都可由顺序、选择和循环3种基本控制结构构造。
4.B。【解析】当数据表A中每个元素距其最终位置不远,说明数据A按关键字值基本有序。在待排序数据基本有序的情况下,采用插入排序所用的时间最少。
5.A。【解析】数据库系统的一个重要目标就是使程序和数据真正分离,数据蚀立性包括数据的物理独立性和数据的逻辑独立性。相对文件系统人工管理和数据项管理,数据库系统的数据独立性大大增加。
6.A。【解析】后序遍历首先访问左子树,然后右子树,最后根结点,即左右根。故该二叉树的前序遍历结果为“ATBZXCYP”。后序遍历和中序遍历的结果分别为“ZB—TYCPXA”和“TZBACYXP”。
7.B。【解析】链表采用的是链式存储结构,它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,插入、删除不需要移动数据元素。但是链式存储结构也有不足之处:每个结点中的指针域需额外占用存储空间,它是一种非随机存储结构。
8.B。【解析】数据唪设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。逻辑设计的主要工作是将E—R图转换为关系模式。
9.C。【解析】每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,并在main()函数中结束。
10.B。【解析】c语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线,不能使用关键字和数字,A中void,C中if,D中D0,都属于关键字。
11.B。【解析】在C语言中,用e来表示科学计数法时,规定在e后面的数字必须为整数。
12.B。【解析】选项A为表达式,因此不正确,选项C中a++本身就是表达式,无需再赋值,选项D中,在强制类型转换时,类型名应用括号括起来,故选择8选项。
13.C。【解析】在表达式中,其+=,-=的优先级相同,按从右到左的结合方向运算,而*的优先级,表达式写成a=a+(a-(a*a)),代入3可得-12。
14.A。【解析】本题考查“%”运算符的使用。运算符“%”是整数除法的余数。本题中表达式a%=(b%2)等价于a=a%(b%2)=5%(7%2)=5%1=0。
15.B。【解析】当n为9时,此时if语句成立,执行n+ +后,n为10,因此输出n的值为10,故选择B选项。
16.C。【解析】因为a>b不成立,故表达式a>b的值为0,即为0赋给m,因此&&左边表达式的值为0,0与任何值&&运算都为0,于是不再计算&&右边表达式的值,所以此时的n仍然为2。
17.B。【解析】本题考查do—while语句,当X一23时,执行do后的语句,x--的表达式值为x=x-1,此时X的值为22,而!X为0,因此while循环不成立,退出,故选择B 选项。
18.A。【解析】本题考查if-else语句。if为真则执行C =1,if为假则执行else中的条件,不符合继续执行else。
19.B。【解析】子函数fun(int x,int y),将变量m和i声明为局部静态变量,因此第l次调用主函数后,局部静态变量m和i的值为5和3,第l次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i 的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。
20.A。【解析】本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②℃语言中没有字符串变量,只能用字符数组来存储字符串。
21.B。【解析】本题考查函数调用时的参数传递。在函数调用时,形参是指向实参的指针变量,则printf的执行结果为++x;x=3,则3+1=4。
22.D。【解析】在判断小写字母时,必须判断在某一范围内成立,因此用与,即&&,即C在a与z之间。
23.B。【解析】当num=0时,循环成立,执行num++ 后;num的值为1,因此输出1,接着返回while中的表达式;当num=1时,循环成立,执行nHm++后,num的值为2,输出2,再返回while中的表达式;当num=2时,循环成立,执行num++后.nHm的值为3,输出3,最后返回while中的表达式,当num=3,循环不成立,退出。
24.D。【解析】p是存放最小下标的变量,而if后的表达就是实现这个}j的的,当if成立时,就把小的下标放到p 中,故选择D选项。
25.D。【解析】在C语言中,当表达式成立时用l表示,不成立时用0表示,即x=(a&&b)&&(c
26.A。【解析】当所赋的值不够其列的宽度时,系统在其后自动补0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故选择A选项。
27.C。【解析】本程序中的函数sort(int a[],int n)实现的功能是将数组a中的前n个数进行从大到小排序。sort (&a[1],7)是将数组中从a[1]~a[7]这7个数进行从大到小排序,其他数不变。
28.D。【解析】a=“ABCD”书写错误,因为“=”左边不能出现常量;数组名S是代表S数组首地址常量,而不是变量;字符串只有在定义时维数可以省略。
29.D。【解析】本题for循环中,当i=0时,判断条件i&printf("%d\n",n[k]),此时i的值是0,输出n[k]的值也为0,0 &0结果还是0,条件不成立,退出循环。所以最后输出结果为0。
30.A。【解析l当执行gets(ss)后,ss数组中的元素为ABC,再执行strcat(ss,"6789"),strcat的作用,是把6789连接到了ss数组后面,执行完后SS数组为ABC6789,故选择A选项。
31.D。【解析IM(a+b,b+C,c+a)=a+b*b+c+c+ a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。
32.B。【解析】本题考查分支语句用法加个句号因为变量的初始值分别为 k一5、n一0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0、k=4,程序进行第2次循环,执行case 4:这个分支,结果是n=2、k=3,打印出2;这时n =2、k=3,break跳出,程序进行第3次循环,执行case 3:这个分支,结果是n=3、k=2,打印出3;这时n一3、k 2,b¨ak跳出,程序然后进行第4次循环,执行case 2:case 4:这个分支,结果是n=5、k=1,打印出5,break 跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。
33.D。【解析】本题考查for循环的使用。根据条件考虑x的取值变化,x从1取到5,可以循环5次,但并不知道y是如何变化的,有可能出现y=19提前跳出循环的情况,所以是最多执行5次。
34.C。【解析】外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
35.D。【解析】if语句的条件是当i既是3的倍数又是2的倍数时成立,所以此程序实现的功能是将10以内既是3 的倍数又是2的倍数的数相加。
36.A。【解析】在函数funl()之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处开始到整个程序末结束。在函数funl()之内定义了两个变量a和b,并且分别初始化为字符’C ’和’D ’。
37.A。【解析】本题考查getchar()函数,从终端读入一个字符作为函数值。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入回车键时,读入才开始执行。所以当输入a后,变量c1被赋予字符a,而变量c2被赋予回车符。
38.B。【解析】函数fun()的功能是从数组a中依次将当前值赋给一个元素,所以当函数fun(a,2,9)执行后,数组a[]={1,2,3,4,4,5,6,7,8,9,10)。
39.B。【解析】本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件;方式“rb”为输入打开一个二进制文件。
40.A。【解析】如果是static修饰的静态变量,不是每次调用赋初值。
2014计算机二级考试C语言考前预测选择题.doc
下载Word文档到电脑,方便收藏和打印[全文共8573字]
编辑推荐:
下载Word文档