一起答

2017年计算机二级c语言题库及答案(1)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 有以下程序:  main()  {int x,y,z;  x=y=1;  z=x++,y++,++y;  printf("%d,%d,%d,%d\n",x,y,z);  程序运行后的输出结果是(   )。

    • A.2,3,3
    • B.2,3,2
    • C.2,3,1
    • D.2,2,1
  2. 有以下程序:  main( )  {  char * p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};  printf("%d\n",strlen(p[4]));  } 执行后的输出结果是 ______。

    • A.2
    • B.3
    • C.4
    • D.5
  3. 以下选项中,当x为大于1的奇数时,值为0的表达式是

    • A.x%2==1
    • B.x/2
    • C.x%2!=0
    • D.x%2==0
  4. 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是(   )。

    • A.switch(x)
    • B.switch((int)x); {case 1.0:printf("*\n"); {case 1:printf("*\n"); case 2.0:printf("**\n");} case 2:printf("**\n");}
    • C.switch(a+B)
    • D.switch(a+B){case 1;printf("*\n"); {case 1:printf("*\n"); case 2+1:printf("**\n");} case c:printf("**\n");)
  5. 以下程序的输出结果是______。    #include<stdio.h>    main()    { int a=200;     #define a 100     printf("%d",a);     #undef a     printf("%d",a);  }

    • A.200 100
    • B.100 100
    • C.100 200
    • D.200 200
  6. 对于下述说明,不能使变量p->b的值增1的表达式是______。  struct exm  {  int  a;    int  b;    float c  }*p;

    • A.++p->b
    • B.++(p++)->b
    • C.p->b++
    • D.(++p)->b++
  7. 若有以下定义;char a;int b; float c;double d;则表达式“a*b+d-c”值的类型为(  )

    • A.float
    • B.int
    • C.char
    • D.double
  8. 设有以下说明语句 struct num { int a; float b; }numl;则下面的叙述不正确的是______。

    • A.struct是结构体类型的关键字
    • B.struct num是用户定义的结构体类型
    • C.numl是用户定义的结构体类型名
    • D.a和b都是结构体成员名
  9. 下列不属于软件调试技术的是______。

    • A.强行排错法
    • B.集成测试法
    • C.回溯法
    • D.原因排除法
  10. 有三个关系R、S和T如下:

    由关系R和S通过运算得到关系T,则所使用的运算为

    • A.并
    • B.自然连接
    • C.笛卡尔积
    • D.交
  11. 若执行下述程序时,若从键盘输入6和8,结果为(  )。  main()  {int a,b,s;  scanf("%d%dt",&a,&B);  s=a:  if(s=B)s*=s;  printf("%d",s);  }

    • A.36
    • B.64
    • C.48
    • D.以上都不对
  12. 若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a 数组的第 10 个元素是

    • A. a[0][4]
    • B.a[1][3]
    • C.a[0][3]
    • D.a[1][4]
  13. 以下说法不正确的是

    • A.C程序中必须有一个main()函数,C程序是从main()函数的第1条语句开始执行的。
    • B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的。
    • C.C程序中的main()函数必须放在程序的开始位置。
    • D.C程序中的main()函数位置可以任意指定。
  14. 请阅读以下程序:  #include<stdio.h>  void fun(int s[])  { static int j=0;   do     s[j]+=s[j+1];   while(++j<2);}  main()  { int k,a[10]={1,2,3,4,5};   for(k=1;k<3;k++)fun(a);   for(k=0;k<5;k++)printf("%d",a[k]);}  上面程序的输出是

    • A.34756
    • B.23445
    • C.35745
    • D.12345
  15. 有以下程序段  char ch;int k;  ch='a';k=12;  printf("%c,%d,",ch,ch,k);  printf("k=%d\n",k);  已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是(  )。

    • A.因变量类型与格式描述符的类型不匹配输出无定值
    • B.输出项与格式描述符个数不符,输出为零值或不定值
    • C.a,97,12k=12
    • D.a,97,k=12
  16. 若已定义:“int a[9],*p=a;”,并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是______。

    • A.p+1
    • B.a+1
    • C.a++
    • D.++p
  17. 有以下程序:  void sort(int a[],int n)  { int i,j,t;   for(i=0;i<n-1;i+=2)    for(j=i+2;j<n;j+=2)      if(a[i]<a[j]){ t=a[i];a[i]=a[j];a[j]=t;}  }  main()  { int aa[10]={1,2,3,4,5,6,7,8,9,10},i;   sort(aa,10);   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.9,2,7,4,5,6,3,8,1,10,
    • D.1,10,3,8,5,6,7,4,9,2,
  18. 当调用函数时,实参是一个数组名,则向函数传送的是______。

    • A.数组的长度
    • B.数组的首地址
    • C.数组每一个元素的地址
    • D.数组每个元素中的值
  19. 以下叙述中正确的是

    • A.语句int a[8]={0};是合法的
    • B.语句inta[]={0};是不合法的,遗漏了数组的大小
    • C.语句char a[2]={ "A","BII};是合法的,定义了一个包含两个字符的数组
    • D.语句char a[3];a="AB";是合法的,因为数组有三个字符空间的容量,可以保存两个字符
  20. 关系R和关系S的并运算是______。

    • A.由关系R和关系S的所有元组合并组成的集合,再删去重复的元组
    • B.由属于R而不属于S的所有元组组成的集合
    • C.由既属于R又属于S的元组组成的集合
    • D.由R和S的元组连接组成的集合
  21. 若有说明语句:double*p,a;则通过scanf语句正确给输入项读人数据的程序段是(   )。

    • A.*p=&a;scanf("%1f”,p);
    • B.*p=&a;scanf("%f",p);
    • C.p=&a;scanf("%",*p);
    • D.p=&a;scanf("%1f",p);
  22. 有以下程序

    main(int argc,char *argv[])

    {

    int n=0,i;

    for(i=1;i<argc;i++)

    n=n*10+*argv[i] '0';

    printf("%d\n",n);

    }

    编译连接后生成可执行文件tt.exe。若运行时输入以下命令行 tt 12 345 678

    程序运行后的输出结果是

    • A.12
    • B.12345
    • C.12345678
    • D.136
  23. 若有以下定义:float x;int a,b,c=2;,则正确的switch语句是(  )

    • A.switch(x) { case 1.0:printf("*\n"); case 2.0:printf("**\n"); }
    • B.switch(int(x)) { case 1:printf("*\n"); case 2:printf("**\n"); }
    • C.switch(a+b) { case 1:printf("*\n"); case 1+2:printf("**\n"); }
    • D.switch(a+B){ case 1:printf("*\n"); case c:printf("**\n"); }
  24. 下列程序段的输出结果是( )。  char a=9,b=020;  prihtf("%o\n",~a&b<<1);

    • A.100000
    • B.8
    • C.40
    • D.77
  25. 有以下程序:  int *f(int *x,int*y)  {if(*x<*y)return x;  else return y;  }  main()  {  int a=7,b=8,*p,*q,*r;  p=&a;q=&b;  r=f(p,q);  printf("%d,%d,%d\n",*p,*q,*r);  }  程序运行后输出结果是_____。

    • A.7,8,8
    • B.7,8,7
    • C.8,7,7
    • D.8,7,8
  26. 在深度为5的满二叉树中,叶子结点的个数为( )。

    • A.31
    • B.32
    • C.16
    • D.15
  27. 在以下一组运算中,优先级最高的运算符是  ( )

    • A.<=
    • B.=
    • C.%
    • D.& &
  28. 以下程序的输出结果是______。

    • A.54321
    • B.12345
    • C.1 2 3 4 5
    • D.5 4 3 2 1 0 main() { int w=5;fun(w);printf("\n");} fun (int k) { if(k>0) fun(k-1); printf("%d"",k);}
  29. 下列叙述中正确的是( )。

    • A.一个逻辑数据结构只能有一种存储结构
    • B.逻辑结构属于线性结构,存储结构属于非线性结构
    • C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率
    • D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率
  30. 相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和

    • A.可重用性差
    • B.安全性差
    • C.非持久性
    • D.冗余性
  31. 有以下程序   

     #include<stdio.h>    

    main()    

    {

     int a=5,b=l;     

    t=(a<<2)|b;

    printf("%d\n",t);    

    }    

    程序运行后的输出结果是______。

    • A.21
    • B.11
    • C.6
    • D.1
  32. 有以下函数  char *fun(char*p)  { return p; }  该函数的返回值是_____。

    • A.无确切的值
    • B.形参p中存放的地址值
    • C.一个临时存储单元的地址
    • D.形参p自身的地址值
  33. 用树形结构来表示实体之间联系的模型称为

    • A.关系模型
    • B.层次模型
    • C.网状模型
    • D.数据模型
  34. 在浏览WWW时,如果连接到一个安全的站点,应当以( )开头来书写统一资源定位器。

    • A.shttp://
    • B.http:s//
    • C.http://
    • D.https//
  35. 有以下程序:  Void f(int a[],iht i,int j)  { int t;   if(i<j)   { t=a[i]; a[i]=a[j]; a[j]=t;   f(a,i+1,i-1);   }  }  main()  { int i,aa[5]={1,2,3,4,5};   f(aa,0,4);   for(i=0;i<5;i++) printf("%d" ,aa[i]);printf("\n");  }  执行后输出结果是

    • A.5,4,3,2,1,
    • B.5,2,3,4,1,
    • C.1,2,3,4,5,
    • D.1,5,4,3,2,
  36. 下列选项中非法的字符常量是(  )。

    • A.'\t'
    • B.'\039'
    • C.','
    • D.'\n'
  37. 现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为

    • A.int
    • B.double
    • C.float
    • D.char
  38. 在一个 C 语言源程序文件中所定义的全局变量,其作用域为:

    • A. 所在文件的全部范围
    • B. 所在程序的全部范围
    • C. 所在函数的全部范围
    • D. 由具体定义位置和 extern 说明来决定范围
  39. 下列叙述中错误的是(  )。

    • A.线性表是由n个元素组成的一个有限序列
    • B.线性表是一种线性结构
    • C.线性表的所有结点有且仅有一个前件和后件
    • D.线性表可以是空表
  40. 有以下程序#include<stdio. h>main(){  char c1='1',c2='2';  c1=getchar();  c2=getchar();  putchar(c1);  putchar(c2);}  当运行时输入:a<回车> 后,以下叙述正确的是

    • A.变量c1被赋予字符a,c2被赋予回车符
    • B.程序将等待用户输入第2个字符
    • C.变量c1被赋予字符a,c2中仍是原有字符2
    • D.变量c1被赋予字符a,c2中将无确定值
  41. 栈通常采用的两种存储结构是()

    • A.顺序存储结构和链式存储结构  
    • B.散列方式和索引方式
    • C.链表存储结构和数组
    • D.线性存储结构和非线性存储结构