2017年二级c语言选择题及答案试卷(1)
-
已有定义:char a[]="xyzt",b[]={'x','y','z'};,下列叙述中正确的是( )。
- A.数组a和b的长度相同
- B.a数组长度小于b数组长度
- C.a数组长度大于b数组长度
- D.上述说法都不对
-
下列运算符中,不属于关系运算符的是( )
- A.<
- B.>=
- C.==
- D.!
-
下面结构体的定义语句中,错误的是( )。
- A.struct ord{int x;int Y;int Z;};struet ord a;
- B.struct ord{int x;int y;int Z;}struct ord a;
- C.struct ord{int X;int Y;int Z;}a;
- D.struct{int X;int y;int Z;}a;
-
已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序______。 main() { char a='A'; int b=20; printf("%d,%0",(a=a+a,a+b,b) ,a+'a'-'A',b); }
- A.表达式非法,输出零或不确定值
- B.因输出项过多,无输出或输出不确定值
- C.输出结果为20,141
- D.输出结果为20,141,20
-
若有以下说明和语句: struct st{int n;char *ch;}; struct st a[3]{5,"abc",7,"def",9,"ghk"},*p=a 则值为6的表达式是______。
- A.p++->n
- B.p->n++
- C.(*p).n++
- D.++p->n
-
下述关于数据库系统的叙述中正确的是 ______。
- A.数据库系统减少了数据冗余
- B.数据库系统避免了一切冗余
- C.数据库系统中数据的一致性是指数据类型一致
- D.数据库系统比文件系统能管理更多的数据
-
下列程序的运行结果是______。
- A.a=%2,b=%5
- B.a=2,b=5
- C.a=d,b=d
- D.a=%d,b=%d main() { int a=2,c=5; pfintf("a=%d,b=%d\n”,a,c); }
-
以下选项中,值为1的表达式是______。
- A.
- B.
- C.
- D.
-
若变量均已正确定义并赋值,以下合法的c语言赋值语句是( )。
- A.x---y=--5;
- B.x--n%2.5;
- C.x+n=i;
- D.x=5--4+1;
-
设有下列二叉树:
对此二叉树先序遍历的结果为
- A.ABCDEF
- B.BDAECF
- C.ABDCEF
- D.DBEFCA
-
以下对C语言函数的有关描述中,正确的是______。
- A.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
- B.函数既可以嵌套定义,又可以递归调用
- C.函数必须有返回值,否则不能使用函数
- D.有调用关系的所有函数必须放在同一个源程序文件中
-
以下四组用户自定义标识符中,全部合法的一组是( )。
- A._main enclude sin
- B.If - max turbo
- C.txt REAL 3COM
- D.int k_2 _001
-
下列选项中不属于结构化程序设计方法的是
- A.自顶向下
- B.逐步求精
- C.模块化
- D.可复用
-
下列叙述中正确的是______。
- A.线性表是线性结构
- B.栈与队列是非线性结构
- C.线性链表是非线性结构
- D.二叉树是线性结构
-
下列关于标识符的说法中错误的是
- A.合法的标识符是由字母、数字和下划线组成
- B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符
- C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符
- D.用户标识符与关键字不同时,程序在执行时将给出出错信息
-
若有如下程序: main() {int x=1,n; for(n=0;n<5;n++) {switch(n) { case 3:x+=3; case 2:x+=2; case 1: case 0: default:x+=4; } } printf("%d\n",x); } 则程序执行后的输出结果是( )
- A.10
- B.18
- C.28
- D.30
-
下列叙述中错误的是( )。
- A.线性表是由n个元素组成的一个有限序列
- B.线性表是一种线性结构
- C.线性表的所有结点有且仅有一个前件和后件
- D.线性表可以是空表
-
已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是
- A.acbed
- B.decab
- C.deabc
- D.cedba
-
以下程序运行后,输出结果是 #define PT 5.5 #define S(x) PT*x*x #include<stdio.h> main() { int a=1,b=2; printf("%4.1f\n",s(a+b));}
- A.49.5
- B.9.5
- C.22
- D.45.0
-
下列正确的实型常量是( )。
- A.E3.4
- B.-12345
- C.2.2e0.8
- D.4
-
若有一些定义和语句: #include <stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是( )。
- A.*q=0;
- B.w=p;
- C.*p=a;
- D.*p=*w;
-
以下选项中叙述错误的是
- A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
- B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
- C.C程序函数中定义的自动变量,系统不自动赋确定的初值
- D.C程序函数的形参不可以说明为static型变量
-
有以下程序
#include
#include
main( )
{char str[][20]={“Qne*World”,“one*Dream!”},*P=str[1 ].
prinff(“%d,”,strlen(p));printf(“%s\n”,P); ’
}
程序运行后的输出结果是
- A.9,One*World S)
- B.9,One*Dream!
- C.10,One*Dream!
- D.10,One*World
-
设有以下语句: char a=3,b=6,C; c=a|b<<2; printf("%d\n",C); 则c的二进制值是( )。
- A.11011
- B.10100
- C.11100
- D.11000
-
下列4条叙述中,正确的一条是______。
- A.计算机语言中,只有机器语言属于低级语言
- B.高级语言源程序可以被计算机直接执行
- C.C语言属于高级语言
- D.机器语言是与所用机器无关的
-
若a是float型变量,b是unsigned型变量,以下输入语句合法的是 ( )
- A.scanf("%6.2f%d", &a,&b);
- B.scanf("%f%n",&a,&b);
- C.scanf("%f%30",&a,&b);
- D.scanf ("%f%d",&a,&b);
-
有下列程序: main() { int y=20; do{y--;}while(--y); printf("%d\n",y--); } 当执行程序时,输出的结果是( )。
- A.-1
- B.1
- C.4
- D.0
-
以下选项中非法的表达式是
- A.0<=x<100
- B.i=i==0
- C.(char)(65+3)
- D.x+1=x+1
-
下列程序段中,不能正确赋值的是( )。
- A.char*p,ch; p=&ch; scanf ("%c",&p);
- B.char*p; p=(char*)malloc(1); scabf("%c",p);
- C.char*p; *p=getchar();
- D.char*p,ch; p=&ch; *p=getchar();
-
在以下语句中存在语法错误的是______。
- A.char ss[6][20]; ss[1]="right?";
- B.char ss[][20]={"fight?"};
- C.char *ss[6]; ss[1]="right?";
- D.char *ss[]={"right?"};
-
已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是
- A.一个整型变量,代表要读入的数据项总数
- B.一个文件指针,指向要读的文件
- C.一个指针,指向要读入数据的存放地址
- D.一个存储区,存放要读的数据项
-
假定所有变量已正确说明,下列程序段运行后,x的值是 ( ) a=b=c=0;x=35; if (! a) x- -; else if (b); if (c) x=3; else x=4;
- A.34
- B.4
- C.35
- D.3
-
以下程序的输出结果是______。
main() { int k=17; printf("%d,%o,%x\n",k,k,k): }
- A.17,021,0x11
- B.17, 17, 17
- C.17,0x11,021
- D.17,21, 11
-
以下叙述正确的是( )。
- A.只能在循环体内和switch语句体内使用break语句
- B.contiune语句的作用是结束整个循环的执行
- C.在循环体内使用break语句或continue语句的作用相同
- D.从多层循环嵌套中退出时,只能使用goto语句
-
在面向对象方法中, ( )描述的是具有相似属性与操作的一组对象。
- A.属性
- B.事件
- C.方法
- D.类
-
静态测试是一种重要的测试方式,可以发现30%到70%的逻辑设计和编码错误。下面( )不属于静态测试?
- A.白盒测试
- B.代码检查
- C.代码质量度量
- D.静态分析
-
有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用语句是______。
- A.fun(int y,double m);
- B.k=fun(10,12.5);
- C.fun(x,n);
- D.void fun(n,x);
-
已知函数ffead的调用形式为fread(buffer,size,count,fp);,其中buffer代表的是( )。
- A.存放读入数据项的存储区
- B.一个指向所读文件的文件指针
- C.一个指针,是指向输入数据存放在内存中的起始地址
- D.一个整型变量,代表要读入的数据项总数
-
已定义以下函数: fun(char*p2,char*p1) { while((*p2=*p1)!='\0'){p1++;p2++}} 函数的功能是 ______。
- A.将p1所指字符串复制到p2所指内存空间
- B.将p1所指字符串的地址赋给指针p2
- C.对p1和p2两个指针所指字符串进行比较
- D.检查p1和p2两个指针所指字符串中是否有'\0'