一起答

2017年二级c语言选择题及答案试卷(1)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 已有定义:char a[]="xyzt",b[]={'x','y','z'};,下列叙述中正确的是(  )。

    • A.数组a和b的长度相同
    • B.a数组长度小于b数组长度
    • C.a数组长度大于b数组长度
    • D.上述说法都不对
  2. 下列运算符中,不属于关系运算符的是(  )

    • A.<
    • B.>=
    • C.==
    • D.!
  3. 下面结构体的定义语句中,错误的是(  )。

    • 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;
  4. 已知字母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
  5. 若有以下说明和语句:  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
  6. 下述关于数据库系统的叙述中正确的是 ______。

    • A.数据库系统减少了数据冗余
    • B.数据库系统避免了一切冗余
    • C.数据库系统中数据的一致性是指数据类型一致
    • D.数据库系统比文件系统能管理更多的数据
  7. 下列程序的运行结果是______。

    • 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); }
  8. 以下选项中,值为1的表达式是______。

    • A.    
    • B.    
    • C.    
    • D.    
  9. 若变量均已正确定义并赋值,以下合法的c语言赋值语句是( )。

    • A.x---y=--5;
    • B.x--n%2.5;
    • C.x+n=i;
    • D.x=5--4+1;
  10. 设有下列二叉树:

    对此二叉树先序遍历的结果为

    • A.ABCDEF
    • B.BDAECF
    • C.ABDCEF
    • D.DBEFCA
  11. 以下对C语言函数的有关描述中,正确的是______。

    • A.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
    • B.函数既可以嵌套定义,又可以递归调用
    • C.函数必须有返回值,否则不能使用函数
    • D.有调用关系的所有函数必须放在同一个源程序文件中
  12. 以下四组用户自定义标识符中,全部合法的一组是(  )。

    • A._main enclude sin
    • B.If - max turbo
    • C.txt REAL 3COM
    • D.int k_2 _001
  13. 下列选项中不属于结构化程序设计方法的是

    • A.自顶向下
    • B.逐步求精
    • C.模块化
    • D.可复用
  14. 下列叙述中正确的是______。

    • A.线性表是线性结构
    • B.栈与队列是非线性结构
    • C.线性链表是非线性结构
    • D.二叉树是线性结构
  15. 下列关于标识符的说法中错误的是

    • A.合法的标识符是由字母、数字和下划线组成
    • B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符
    • C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符
    • D.用户标识符与关键字不同时,程序在执行时将给出出错信息
  16. 若有如下程序:  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
  17. 下列叙述中错误的是(  )。

    • A.线性表是由n个元素组成的一个有限序列
    • B.线性表是一种线性结构
    • C.线性表的所有结点有且仅有一个前件和后件
    • D.线性表可以是空表
  18. 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是

    • A.acbed
    • B.decab
    • C.deabc
    • D.cedba
  19. 以下程序运行后,输出结果是  #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
  20. 下列正确的实型常量是(  )。

    • A.E3.4
    • B.-12345
    • C.2.2e0.8
    • D.4
  21. 若有一些定义和语句:  #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;
  22. 以下选项中叙述错误的是

    • A.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
    • B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
    • C.C程序函数中定义的自动变量,系统不自动赋确定的初值
    • D.C程序函数的形参不可以说明为static型变量
  23. 有以下程序

    #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
  24. 设有以下语句:  char a=3,b=6,C;  c=a|b<<2;  printf("%d\n",C);  则c的二进制值是( )。

    • A.11011
    • B.10100
    • C.11100
    • D.11000
  25. 下列4条叙述中,正确的一条是______。

    • A.计算机语言中,只有机器语言属于低级语言
    • B.高级语言源程序可以被计算机直接执行
    • C.C语言属于高级语言
    • D.机器语言是与所用机器无关的
  26. 若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);
  27. 有下列程序:  main()  {  int y=20;    do{y--;}while(--y);    printf("%d\n",y--);  }  当执行程序时,输出的结果是(  )。

    • A.-1
    • B.1
    • C.4
    • D.0
  28. 以下选项中非法的表达式是

    • A.0<=x<100
    • B.i=i==0
    • C.(char)(65+3)
    • D.x+1=x+1
  29. 下列程序段中,不能正确赋值的是(  )。

    • 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();
  30. 在以下语句中存在语法错误的是______。

    • A.char ss[6][20]; ss[1]="right?";
    • B.char ss[][20]={"fight?"};
    • C.char *ss[6]; ss[1]="right?";
    • D.char *ss[]={"right?"};
  31. 已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是

    • A.一个整型变量,代表要读入的数据项总数
    • B.一个文件指针,指向要读的文件
    • C.一个指针,指向要读入数据的存放地址
    • D.一个存储区,存放要读的数据项
  32. 假定所有变量已正确说明,下列程序段运行后,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
  33. 以下程序的输出结果是______。

    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
  34. 以下叙述正确的是(  )。

    • A.只能在循环体内和switch语句体内使用break语句
    • B.contiune语句的作用是结束整个循环的执行
    • C.在循环体内使用break语句或continue语句的作用相同
    • D.从多层循环嵌套中退出时,只能使用goto语句
  35. 在面向对象方法中, (  )描述的是具有相似属性与操作的一组对象。

    • A.属性
    • B.事件
    • C.方法
    • D.类
  36. 静态测试是一种重要的测试方式,可以发现30%到70%的逻辑设计和编码错误。下面( )不属于静态测试?

    • A.白盒测试
    • B.代码检查
    • C.代码质量度量
    • D.静态分析
  37. 有以下函数定义:  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);
  38. 已知函数ffead的调用形式为fread(buffer,size,count,fp);,其中buffer代表的是(  )。

    • A.存放读入数据项的存储区
    • B.一个指向所读文件的文件指针
    • C.一个指针,是指向输入数据存放在内存中的起始地址
    • D.一个整型变量,代表要读入的数据项总数
  39. 已定义以下函数:  fun(char*p2,char*p1)  { while((*p2=*p1)!='\0'){p1++;p2++}}  函数的功能是 ______。

    • A.将p1所指字符串复制到p2所指内存空间
    • B.将p1所指字符串的地址赋给指针p2
    • C.对p1和p2两个指针所指字符串进行比较
    • D.检查p1和p2两个指针所指字符串中是否有'\0'