2017年计算机二级考试C语言模拟试题1
-
执行以下程序后的输出结果是【 】。
main()
{int a=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
-
设有如下宏定义
#define MYSWAP(z,x,y){z=x;x=Y;Y=z;}
以下程序段通过宏调用实现变量a、b内容的交换,请填空。
float a=5,b=16,c;
MYSWAP( 【 】,a,b) ;
-
下列程序段的运行结果是______。
int x=0,y=0;
while(x<15) y++,x+=++y;
printf("%d,%d",y,x);
-
已知8个数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树后,最后2层上的结点总数为______。
- A.1
- B.2
- C.3
- D.4
-
下列可用于C语言用户标识符的一组是______。
- A.void define WORD
- B.a3_b3 _123 Car
- C.For -abc IFCase
- D.2a DO sizeof
-
若变量x、y已定义为int类型且X的值为33,y的值为3,请将输出语句printf(( ),x/y);补充完整,使其输出的计算结果形式为:x/y=11。
-
程序流程图(PFD)中的箭头代表的是( )。
- A.数据流
- B.控制流
- C.调用关系
- D.组成关系
-
以下叙述中正确的是______。
- A.局部变量说明为static存储类,其生存期将得到延长
- B.全局变量说明为static存储类,其作用域将被扩大
- C.任何存储类的变量在未赋初值时,其值都是不确定的
- D.形参可以使用的存储类说明符与局部变量完全相同
-
计算机能够直接识别和执行的语言是
- A.汇编语言
- B.自然语言
- C.机器语言
- D.高级语言
-
有下列程序段: int k=0,a=1,b=2,c=3; k=a<b?b:a;k=k>c?c=k; 执行该程序段后,k的值是( )。
- A.3
- B.2
- C.1
- D.0
-
以下程序中函数reverse 的功能是将a所指数组中的内容进行逆置。 void reverse(int a [ ], int n){ int i, t; for(i=0;i<n/2;i++) {t=a[i]; a[i] =a[n-1-i];a[n-1-i]=t; }}main(){ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i, s=0; reverse(b,8); for(i=6;i<10;i++) s+=b[i]; printf("%d\n", s);} 程序运行后的输出结果是
- A.22
- B.10
- C.34
- D.30
-
在C语言中,变量的隐含存储类别是
- A.auto
- B.static
- C.extern
- D.无存储类别
-
下列对于线性链表的描述中正确的是 ______。
- A.存储空间不一定是连续,且各元素的存储顺序是任意的
- B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面
- C.存储空间必须连续,且前件元素一定存储在后件元素的前面
- D.存储空间必须连续,且各元素的存储顺序是任意的
-
下列程序的输出结果是______。 #include<stdio.h> main() { double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf("%d\n",d*y); }
- A.3
- B.3.2
- C.0
- D.3.07
-
下列变量声明合法的是( )。
- A.short a=1.4e-1;
- B.double b=1+3e2.8;
- C.long do=OxfdaL;
- D.float 2
-
若二维数组a有m列,则在a[i][j]刚前的元素个数为( )。
- A.i*m+j-1
- B.i*m+j
- C.j*m+I
- D.i*m+j+1
-
栈和队列的共同点是( )。
- A.都是先进先出
- B.都是先进后出
- C.只允许在端点处插入和删除元素
- D.没有共同特点
-
有定义语句int b;char c[10];,则正确的输入语句是 ______。
- A.scallf("%d%s",&b,&c);
- B.scallf("%d %s",&b,c);
- C.scanf("%d %s",b,c)
- D.scanf("%d%s",b,&c);
-
下列程序的输出结果是( )。 main() { int a=1,b=2; printf("%d,%d\n",--a,++b); }
- A.1,2
- B.1,3
- C.0,2
- D.0,3
-
以下程序运行后的输出结果是______。 int d=1; fun(int p) {static int d=d; d+=p; printf("%d",d) ;return d; } main() {int a=3; printf("%d\n",fun(a+fun(d)));}
- A.699
- B.669
- C.61515
- D.6615
-
以下有4组用户标识符,其中合法的一组是______。
- A.FOR -sub Case
- B.4d DO Size
- C.f2_G3 IF abc
- D.WORD void define
-
排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为______。
- A.希尔排序
- B.冒泡排序
- C.插入排序
- D.选择排序
-
以下不能对二维数组a进行正确初始化的语句是
- A.int a[2][3]={0};
- B.int a[][3]={{1,2},{0}};
- C.int a[2][3]={{1,2},{3,4},{5,6}};
- D.int a[][3]={1,2,3,4,5,6};
-
算法的时间复杂度是指
- A.执行算法程序所需要的时间
- B.算法程序的长度
- C.算法执行过程中所需要的基本运算次数
- D.算法程序中的指令条数
-
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
- A.#define N 10 int a [N];
- B.#define n 5 int a [2*n];
- C.int a [5+5];
- D.int n=10,a [n];
-
下列有关格式输入函数scanf的叙述中正确的是 ( )
- A.输入项可以是C语言中规定的任何变量,并且在任何变量前必须加地址符号“&”
- B.可以只有格式控制项,没有地址列表项
- C.在输入数据时,必须规定精度。如:scanf("%4.2f",&d) ;
- D.当输入数据时,必须指明变量地址
-
以下叙述中正确的是
- A.局部变量说明为static存储数,其生存期将得到延长
- B.全局变量说明为static存储类,其作用域将被扩大
- C.任何存储类的变量在未赋初值时,其值都是不确定的
- D.形参可以使用的存储类说明符与局部变量完全相同
-
设有定义:intk=1,m=2;noat f=7;则下列选项中错误的表达式是( )。
- A.k=k>=k
- B.-k++
- C.k%int(f)
- D.k>=f>=m
-
有如下定义 #define D2 int x=5;float y=3.83; char C='D'; 则下面选项中错误的是
- A.x++;
- B.y++;
- C.c++;
- D.D++;
-
有如下说明:int a [10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是______。
- A.*p+9
- B.*(p+8)
- C.*p+=9
- D.p+8
-
有以下程序: #include<string.h> main(int argc,char*argv[]) {int i=1,n=0; while(i<argC){n=n+strlen(argv[i]);i++} printf("%d\n",n); } 该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行: proc 123 45 67 则该程序的输出结果是( )。
- A.3
- B.5
- C.7
- D.11