一起答

2017年全国c语言二级考试题库试卷(1)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 下列程序的输出结果是(  )。  #include<stdio.h>  main()  { int a=0,i;   for(i=1;i<5;i++)   { switch(i)     { case 0:       case 3:a+=1;       case 1:       case 2:a+=2;       default:a+=3;    }    printf("%d",A) ;  }

    • A.19
    • B.18
    • C.6
    • D.8
  2. 为了使模块尽可能独立,要求

    • A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
    • B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
    • C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
    • D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
  3. 有以下程序  float fun(int x,int y)  {return(x+y);}  main()  { int a=2,b=5,c=8;  printf(“%3.Of\n”,fun((int)fun(a+c,b),a-c));  }  程序运行后的输出结果是

    • A.编译出错
    • B.9
    • C.21
    • D.9
  4. 在数据库系统中,用户所见数据模式为______。

    • A.概念模式
    • B.外模式
    • C.内横式
    • D.物理模式
  5. 定义int*swap()指的是______。

    • A.—个返回整型值的函数swap()
    • B.一个返回指向整型值指针的函swap()
    • C.一个指向函数swap()的指针,函数返回一个整型值
    • D.以上说法均错
  6. 设x=011050,则x=x&01252的值是( )。

    • A.0000001000101000
    • B.1111110100011001
    • C.0000001011100010
    • D.1100000000101000
  7. 有以下程序段 int m=0,n=0;  char c='a'; scanf ("%d%c%d", &m, &c, &n); printf ("%d, %c, %d\n", m, c, n);  若从键盘上输入:10A10<回车>,则输出结果是

    • A.10,A,10
    • B.10,a,10
    • C.1O,a,0
    • D.10,A,0
  8. 下列说法中错误的是

    • A.只能在循环体内使用break语句 
    • B.在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环 
    • C.在while和do…while循环中,continue语句并没有使整个循环终止 
    • D.continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断
  9. 以下程序的功能是( )。  # include <stdio.h>  main()  {FILE*fPl; *fp2;  fp1:fopen("file1","r");  fp2:fopen("file2","w");  while(! Feof(fP1))  fputc(fgetc(fP1),fp2);  fclose(fP1);fclose(fp2);}

    • A.将磁盘文件的内容显示在屏幕上
    • B.将两个磁盘文件合为一个
    • C.将一个磁盘文件复制到另一个磁盘文件中
    • D.将两个磁盘文件合并后送屏幕
  10. 有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)

    int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a; 

    • A.a[p-a] 
    • B.*(&a[i]) 
    • C.p[i] 
    • D.*(*(a+i))
  11. 有以下程序:#include<stdio.h>#include<stdio.h>main() {  char c[6];  int i=0;  for(;j<6;c[i]=getchar(),i++);  for(i=0;i<6;i++)putchar(c[i]);  printf("\n");}如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为 ______。

    • A.a b c d e f
    • B.a b c d
    • C.ab c d
    • D.abcdef
  12. fscanf函数的正确调用形式是

    • A.fscanf(fp,格式字符串,输出表列); 
    • B.fscanf(格式字符串,输出表列,fp); 
    • C.fscanf(格式字符串,文件指针,输出表列); 
    • D.fscanf(文件指针,格式字符串,输入表列);
  13. 以下程序的输出结果是( )。

    void prt(int*m.int n)

    {int i;

    for(i=0;i

    main

    { int a[]={1,2,3,4,5),i;

    prt(a,5);

    for(i=0;i<5;i++)

    printf("%d,",a[i]);)

    • A.1,2,3,4,5 
    • B.2,3,4,5,6
    • C.3,4,5,6,7 
    • D.2,3,4,5,1
  14. 下面软件中,属中应用软件的是 ( )

    • A.Unix
    • B.人事管理系统
    • C.数据库管理理系统
    • D.DOS
  15. 以下程序运行后,输出结果是(  ) #include<stdio.h> ss(char *s) { char*p=s;  while(*p) p++  return(p-s); } main() { char  *a="abded"  int i;  i=ss(a) ;  printf("%d\n",i); }

    • A.8
    • B.7
    • C.6
    • D.5
  16. 给出发下定义:   char x[]="abcdefg";   char y[]={'a', 'b', 'c', 'd', 'e', 'f', 'g' };则正确的叙述为______。

    • A.数组x和数组y等价
    • B.数组x和数组y的长度相同
    • C.数组x的长度大于数组y的长度
    • D.数组x的长度小于数组y的长度
  17. 若在定义语句:int a,b,c*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是(   )。

    • A.scanf("%d",a,b,C);
    • B.scanf("%d%d%d",a,b,C);
    • C.scanf("%d",p);
    • D.scanf("%d",&p);
  18. 以下程序的输出结果是______。  main()  { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};   printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);  }

    • A.650
    • B.1470
    • C.5430
    • D.输出值不定
  19. 已定义以下函数  fun(char *p2,char *p1)  { while((*p2=*p1)!='0'){P1++;p2++;}}  函数的功能是

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

    • A.C程序中的#include和#define行均不是C语句
    • B.除逗号运算符外,赋值运算符的优先级最低
    • C.C程序中,j++;是赋值语句
    • D.C程序中,+、-、*、/、%号是算术运算符,司用于整型和实型数的运算
  21. 下面程序的输出结果是

    #include

    main()

    { int a[]={1,2,3,4,5,6,7,8,9,0},*p;

     p=a;

     printf("%d\n",*p+9);}

    • A.0
    • B.1
    • C.10
    • D.9
  22. 有以下程序

    #include

    main

    { int a=1,b=2,c=3,x;

    x=(a^b)&C;printf("%d",x);

    }

    程序的运行结果是( )。

    • A.0 
    • B.1
    • C.2 
    • D.3
  23. 以下有关宏替换的叙述不正确的是(  )。

    • A.双引号中出现的宏名不替换
    • B.使用宏定义可以嵌套
    • C.宏定义仪仪是符号替换
    • D.宏名必须用大写字母表示
  24. 在16位IBM-PC机上使用C语言,若有如下定义

    struct data

      { int i;

       char ch;

       double f;

      } b;

    则结构变量b占用内存的字节数是

    • A.1
    • B.2
    • C.7
    • D.11
  25. 信息隐蔽的概念与下述哪一种概念直接相关?

    • A.软件结构定义
    • B.模块独立性
    • C.模块类型的划分
    • D.模块耦合度
  26. 下列程序的执行结果是______。  #include<stdio.h>  union un  { int i;   char c[2};  };  void main()  { union un x;   x.c[0]=10;   x.c[1]=1;   printf("\n%d",x.i);  }

    • A.266
    • B.11
    • C.265
    • D.138
  27. 有以下函数:  fun(char *p)  { return p;}  该函数的返回值是(  )。

    • A.无确切值
    • B.形参p中存放的地址值
    • C.一个临时存储单元的地址
    • D.形参p自身的地址值
  28. 下面程序的输出结果是  main()  {  char str[10],c='a';  int i=0;  for(;i<5;i++)  str[i]=c++;  printf("%s",str);  }

    • A.abcde
    • B.a
    • C.不确定
    • D.bcdef
  29. 执行下列程序后的输出结果是______。main(){ int y=10; do {y--;}while(--y); printf("%d\n",y--);}

    • A.-1
    • B.1
    • C.8
    • D.0
  30. 下列对于软件测试的描述中正确的是(  )。

    • A.软件测试的目的是证明程序是否正确
    • B.软件测试的目的是使程序运行结果正确
    • C.软件测试的目的是尽可能多地发现程序中的错误
    • D.软件测试的目的是使程序符合结构化原则
  31. 若有定义和语句  int * *pp, *p,a=10,b=20;  pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);  则输出结果是(  )

    • A.10,10
    • B.10,20
    • C.20,10
    • D.20,20
  32. 下列描述中正确的是(  )。

    • A.程序就是软件
    • B.软件开发不受计算机系统的限制
    • C.软件既是逻辑实体,又是物理实体
    • D.软件是程序、数据与相关文档的集合
  33. 软件生命周期是指(  )。

    • A.软件产品从提出、实现、使用维护到停止使用退役的过程
    • B.软件从需求分析、设计、实现到测试完成的过程
    • C.软件的开发过程
    • D.软件的运行维护过程
  34. fgetc函数的作用是从指定文件读入—个字符,该文件的打开方式必须是______。

    • A.只读
    • B.追加
    • C.读或读写
    • D.以上均正确
  35. 若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为  int s[2][3]={0},( *p)[3];  p=s;

    • A.*(*(p+i)+j)
    • B.*(p[i]+j)
    • C.(p+i)+j
    • D.(*(p+i))[j]
  36. 有以下程序  void sum (int a[])  { a[0]-a[-1]+a[1]; }  main ( )  { int a[10]={1,2,3,4,5,6,7,8,9,10};    sum(&a[2]);   printf ("%d\n" ,a[2] );  }   程序运行后的输出结果是

    • A.6
    • B.7
    • C.5
    • D.8
  37. 下列叙述中错误的是(   )。

    • A.在数据库系统中,数据的物理结构必须与逻辑结构一致
    • B.数据库技术的根本目标是要解决数据的共享问题
    • C.数据库设计是指在已有数据库管理系统的基础上建立数据库
    • D.数据库系统需要操作系统的支持
  38. 阅读下面程序段,则执行后的结果为  #include"stdio.h"  main()  { int m=4,n=2,k;   k=fun(m,n);   printf("%d\n",k);}  fun(int m,int n)  { return(m*m*m-n*n*n);}

    • A.64
    • B.8
    • C.56
    • D.0