2017年国家计算机二级c语言题库试卷(1)
-
数据库(DB) 、数据库系统(DBS)、数据库管理系统(DBMS)之间的关系是( )。
- A.DB包含DBS和DBMS
- B.DBMS包含DB和DBS
- C.DBS包含DB和DBMS
- D.没有任何关系
-
以下叙述中错误的是
- A.gets函数用于从终端读入字符串
- B.getchar函数用于从磁盘文件读入字符
- C.fputs函数用于把字符串输出到文件
- D.fwrite函数用于以二进制形式输出数据到文件
-
下列程序的运行结果是( )。
#include<stdio.h>
main()
{ int a=2,b=3,c=4;
ifa<B)
if(b<0)c=0;
else c+=1;
printf("%d\n",C) ;
}
- A.2
- B.3
- C.5
- D.4
-
下列能正确进行字符串赋值的是( )。
- A.char s[5]={"ABCDE"};
- B.char s[5]={'A','B','C','D','E'};
- C.char*s;s="ABCDE";
- D.char*s;printf("%s",s);
-
下列叙述中错误的是( )。
- A.在程序中凡是以“#”开始的语句行都是预处理命令行
- B.预处理命令行的最后不能以分号表示结束
- C.#define MAX是合法的宏定义命令行
- D.C程序对预处理命令行的处理是在程序执行的过程中进行的
-
设有下列二叉树:
对此二叉树先序遍历的结果是
- A.ABCDEF
- B.DBEAFC
- C.ABDECF
- D.DEBFCA
-
公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是______。
- A.多对多
- B.一对一
- C.多对一
- D.一对多
-
下列函数的类型是( )。
fun(double x)
{ float y;
y=3*x-4:
return y;
}
- A. int
- B.不确定
- C.void
- D.float
-
以下叙述中正确的是
- A.构成C程序的基本单位是函数
- B.可以在一个函数中定义另一个函数
- C.main()函数必须放在其他函数之前
- D.C函数定义的格式是K&R格式
-
结构化程序所要求的基本结构不包括
- A.顺序结构
- B.GOTO跳转
- C.选择(分支)结构
- D.重复(循环)结构
-
有如下程序:
long fib(int n)
{ if(n>2)return(fib(n-1)+fib(n-2));
else return(2);
}
main()
{ printf("%d\n",fib(3));}
该程序的输出结果是
- A.2
- B.4
- C.6
- D.8
-
若有以下定义和语句
char s1[10]= " abcd! " ,*s2= " \n123\\ ";
printf ( " %d %d\n ", strlen ( s1 ) ,strlen ( s2 ) ) ;
则输出结果是
- A. 5 5
- B. 10 5
- C. 10 7
- D. 5 8
-
设char型变量x中的值为10100111,则表达式(2+x)(-3)的值为 ______。
- A.10101001
- B.10101000
- C.11111101
- D.1010101
-
下面程序的输出结果是 ______。#include<stdio.h>main(){ char*p[]={"BOOL","OPK","H","SP"}; int i: for(i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n");}
- A.SO
- B.SP
- C.SPOPK
- D.SHOB
-
有如下程序:
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
-
下列程序执行后的输出结果是( )。
void func(int*a,int b[])
{ b[0]=*a+b;}
main
{ int a,b[5];
- a=0.b[0]=3;
- func(&a,b);printf("%d\n",b[0]); }
- A.6
- B.7
- C.8
- D.9
-
若有下列定义,则对a数组元素地址的正确引用是( )。
int a[5],*p=a;
- A.p+5
- B.*a+1
- C.&a+1
- D.&a[0]
-
某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是
- A.10
- B.8
- C.6
- D.4
-
在结构化方法中,软件功能分解属于下列软件开发中的阶段是
- A.详细设计
- B.需求分析
- C.总体设计
- D.编程调试
-
计算机硬件组成中,CPU包含______。
- A.控制器和存储器
- B.控制器和运算器
- C.控制器、运算器和存储器
- D.内存储器和外存储器
-
若变量已正确定义,要求程序段完成5!的计算,不能完成此操作的程序段是 ______。
- A.for (i=1,p=1; i<=5; i+ +)p* = i;
- B.for (i=1;i<=5; i+ +) {p=1;p*=i;}
- C.i=1;p= 1;while( i<=5) { p* =i;i+ +; }
- D.i=1;p=1;do{ p*=i;i+ +; } while (i<=5);
-
C语言中最简单的数据类型包括( )。
- A.整型、实型、逻辑型
- B.整型、实型、字符型
- C.整型、字符型、逻辑型
- D.字符型、实型、逻辑型
-
有以下程序 main() { int x=102,y=012; printf("%2d,%2d\n",x,y); } 执行后输出结果是
- A.10,01
- B.02,12
- C.102,10
- D.02,10
-
若有"double a;",则正确的输入语句是( )。
- A.scanf("%1f",a);
- B.scanf("%f",&a);
- C.scanf("%1f",&a)
- D.scanf("%1e",&a);
-
设有定义int a=2,b=3,c=4;,则以下选项中值为0的表达式是 ______。
- A.(!a==1&&(!b==0)
- B. (a<b) &&!c||1
- C.a&&b
- D.a||(b+b) &&(c-a)
-
有以下程序: int f(int n) { if (n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=i;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )。
- A.4
- B.3
- C.2
- D.1
-
有以下程序
执行程序时,给变量X输入l0,程序的输出结果是( )。
- A.55
- B.54
- C.65
- D.45
-
有以下程序
#include <stdio.h>
struct st {
int x,y;
} data[2]={1,10,2,20};
main()
{
struct st *p=data;
printf("%d,",p->y);
printf("%d\n",(++p)->x);
}
程序的运行结果是______。
- A.10,1
- B.20,1
- C.10,2
- D.20,2
-
以下不正确的定义语句是
- A.double x[5]={2.0,4.0,6.0,8.0,10.0};
- B.int y[5.3]={0,1,3,5,7,9};
- C.char c1[]={′1′, ′2′, ′3′, ′4′, ′5′};
- D.char c2[]={′\x10′, ′\xa′, ′\x8′};
-
下列选项中不是字符常量的是( )。
- A.'\v'
- B.'\x2a'
- C.'a'
- D."\0"
-
已知 #int t=0; while(t=1) {…} 则以下叙述正确的是
- A.循环控制表达式的值为0
- B.循环控制表达式的值为1
- C.循环控制表达式不合法
- D.以上说法都不对
-
有以下程序: void fun1(char*p) { char *q; q=p; while(*q!='\0') { (*q)++; q++; } } main() { char a[]={"Program"),*p; p=&a[3]; fun1(p) printf("%s\n",A) ; } 程序执行后的输出结果是( )。
- A.Prohsbn
- B.Prphsbn
- C.Progsbn
- D.Program
-
设x,y,t均为int型变量,执行语句:
x=y=3;
t=++x||++y;
完成后,y的值为
- A.不确定
- B.4
- C.3
- D.1
-
以下程序中函数sort的功能是对数组a中的数据进行由大到小的排序: #include<stdio.h> voidsort(int a[],int n) { int i,j,t; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;} } main() { int aa[]={1,2,3,4,5,6,7,8,9,10},i; son(&aa[3],5); for(i=0;i<10;i++) printf("%d,",aa[i]); printf("\n"); } 程序运行后的输出结果是( )。
- A.1,2,3,4,5,6,7,8,9,10,
- B.10,9,8,7,6,5,4,3,2,1,
- C.1,2,3;8,7,6,5,4,9,10,
- D.1,2,10,9,8,7,6,5,4,3,
-
有以下程序:
#include
, main( )
{int S;
scanf("%d",&s);
while(s>O)
{switch(s)
{case l:printf("%d",s+5);
case 2:printf("%d",s+4);break;
case 3:printf("%d",s+3);
default:("%d",s+1);break;
}
scanf("%d",&s);
}
}
运行时,若输入1 2 3 4 5 0<回车>,由输出结果是( )。
- A.6566456
- B.66656
- C.66666
- D.6666656
-
已定义c为字符型变量,则下列语句中正确的是
- A.c='97';
- B.c="97";
- C.c=97;
- D.c="a";
-
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
- A.DB包括DBS和DBMS
- B.DBMS包括DB和DBS
- C.DBS包括DB和DBMS
- D.没有任何关系
-
有以下程序 main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i];i++;} printf("%d\n",k); } 执行后输出结果是
- A.58
- B.56
- C.45
- D.24
-
有以下程序
#include
void fun(int P)
{int d=2;
P=d++;printf(“%d”,P);}
main( )
{int a=1;
fun(A);prinff(“%.d\n”,A);}
程序运行后的输出结果是
- A.32
- B.12
- C.21
- D.22
-
在Internet中,域名服务器的主要功能是实现( ) 的转换。
- A.IP地址到域名(主机名字)
- B.域名到IP地址
- C.主机IP地址和路由器IP地址之间
- D.路由器IP地址之问
-
在深度为5的满二叉树叶中,叶子结点的个数为( )。
- A.32
- B.31
- C.16
- D.15
-
以下程序的主函数中调用了在其面前定义的fun函数
#include
.
.
.
main( )
{double a[15],k;
k=fun(a);
.
.
.
}
则以下选项中错误的fun函数首部是( )。 、
- A.double fun(double a[l5])
- B.double fun(double *a)
- C.double fun(double a[])
- D.double fun(double a)