2012春电大C语言程序设计模拟试题及解答
一、选择题
    1. C语言源程序文件编译而成的目标文件的缺省扩展名为( C )
        A. cpp      B. exe      C. obj      D. C
    2.  C语言程序的基本模块为( D )。
        A. 表达式      B. 标识符      C. 语句      D. 函数
    3. xy均为逻辑值,x||y为假的条件是( C )
        A.它们均为真  B.其中一个为真  C.它们均为假  D.其中一个为假
    4. x>0 || y==5的相反表达式为( B )。
A. x<=0 || y!=5        B. x<=0 && y!=5
C. x>0 || y!=5        D. x>0 && y==5
    5. 枚举类型中的每个枚举常量的值都是一个( A )。
        A. 整数        B. 浮点数        C. 字符      D. 逻辑值
6. 循环体至少被执行一次的语句为( C )循环语句。
    Afor    B.while    C.do-while    D.任一种
    7. 循环语句“for(int i=0; i<n; i++) S;”中循环体S被执行的次数为( C )
        A. 1      B. n-1      C. n    D. n+1
    8. 在下面的while循环语句中,其循环体被执行的次数为( C )。
        int i=0,s=0; while(s<20) {i++; s+=i;}
        A. 4      B. 5      C. 6      D. 7
9.在下面的字符数组定义中,( D )语句有语法错误。
    Achar a[20]=abcdefg”;      Bchar a[]=x+y=55.”;
    C. char a[15]={‘1’, ‘2’}      D. char a[10]=’5
10. 若定义了函数 double *function(), 则返回值类型为( B )。
        A. 实数型    B. 实数指针型    C. 函数指针型    D. 数组型
    11. 若用数组名作为函数调用的实参,传递给形参的是( A )。
        A. 数组的首地址          B. 数组中第一个元素的值
        C. 数组中全部元素的值    D. 数组元素的个数
12.预处理命令在程序中都是以( B )符号开头的。
  A.*      B.#      C.&      D.@
13. 假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大( C )个字节。
        A. 4      B. 8      C. 16      D. 32
    14. 下列给字符数组赋初值时,正确的是( A )。
        A. char s1[]="abcdef";            B. char s2[4]="abcd";
        C. char s3[2][3]={"abc","xyz"};  D. char s4[4][]={'a','x','s','t'};
    15. 变量s已定义为"char *s=Heoll world!";",要使变量p指向s所指向的同一个字符串,则应定义为( A )。
        A. char *p=s;    B. char *p=&s;    C. char *p;p=*s;  D. char *p; p=&s;
    16. 要使p指向二维整型数组a[10][20]p应定义为( D 令数组全部的值为0)。
        A. int *p=a;  B. int **p=a;    C. int *p[20]=a;    D. int(*p)[20]=a;
    17. 标准输入设备的文件流标识符是( A )。
        A. stdin      B. stdout      C. stderr      D. stdio
    18. 若要以/写操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为( C )。
        A. "r+"      B. "ab+"      C. "rb+"      D. "wb+"
二、填空题
    1. 单行或多行注释的开始标记符为  /* 
2. C语言程序中所有预处理命令均以  #  字符开头。
3. 使用#include命令可以包含一个头文件,也可以包含一个  程序 文件。
    4. 用于从键盘上变为变量输入值得标准输入函数是  sanf()
    5. 执行“printf("%s%s%d","wei","rong",18);”语句后得到的输出结果为weirong18
6. 十进制数25表示成符合C语言规则的八进制数为  031 
7.执行“printf("%c",'A'+2);”语句后得到的输出结果为  C 
    8. 假定一个枚举类型的定义为“enum RA{ab,ac,ad,ae};”,ac值为  1 
    9short类型的大小为  2  个字节。
  10. double类型的大小为  8  个字节。
  11. 十进制数3.26f的类型为  float 
  12. 执行“int=45,y=13printf(“%d”,x/y);”语句序列后得到的输出结果为  3 
  13. 假定y=10,则表达式++y*3的值为  33 
  14. 表达式x=x+y表示成复合赋值表达式为  x+y=y 
  15. 关系表达式(x==0)的等价表达式为  (!x) 
  16. 假定不允许使用逻辑非操作符,则逻辑表达式x>3 && x<10的相反表达式为    x<=3 || x>=10 
  17.若x=5y=10,则x!=y的逻辑值为  1 
  18. 假定x=5,则执行“int a=(! X? 10:20);”语句后a的值为  20 
19. if语句中,每个else关键字与它前面同层次并且最接近的  if  关键字相配套。
  20. while循环的“头”为“whilei++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行  11  次后正常结束。
  21. 当在程序中执行到  contioue  语句时,将结束所在循环语句中循环体的一次执行。
  22. 假定二维数组的定义为“char a[3][5];”,则该数组所含元素的个数为  15 
  23假定二维数组的定义为“char a[M][N];,则该数组所占存储空间的字节数为  M*N
  24. 执行“typedef int ABC[10];”语句把ABC定义为具有10个整形元素的 数组 类型。
  25. 存储字符串“a”需要占用存储器的  2  个字节空间。
  26. 字符串“\’a\’xy=4\n”的长度为  8 
  27. strlen函数用于计算一个字符串的  长度 
  28. strcat函数用于把一个字符串  连接  到另一个字符串之后的存储空间中。
  29.函数中的形参变量的初值由调用该函数时对应的  实参  值决定。
  30. 对于无返回值函数,定义函数时要用保留字  void  修饰函数类型。
  31. 程序的编译是以  程序文件  为单位进行的。
  32. 假定p所指向对象的值为25p+1所指对象的值为46,则执行“(*p++;”语句后,p所指向对象的值为  26 
  33. 假定a是一个一维数组,则a[i]的指针访问方式为 *(a+i)
  34. 假定p是一个指向整数对象的指针,则用  *p  表示该整数对象。
  35. 执行int *p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为  *p 
  36. 假定一个结构类型的定义为“struct C{double* a[4]int n};”,则该类型的大小为  20  个字节。
  37. 假定要动态分配一个类型为struct Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句表达式为  struct Worker* r =malloc(n*sizeof(struct Worker))
  38. 与结构成员访问表达式p->name等价的表达式是  (*p).name
三、写出下列每个程序运行后的输出结果
    1. #include<stdio.h>
      void main() {
          int i, s=0;
          for(i=1;;i++) {
              if(s>50) break;
              if(i%2==0) s+=i;
          }
          printf("i,s=%d, %d\n",i,s); 
      }
      结果:is=1556
    2. #include<stdio.h>
      void main() {
结果
*****
****
***
**
*
          char ch='*';
          int i, n=5;
          while(1) {
              for(i=0;i<n;i++) printf("%c",ch);
              printf("\n");
              if(--n==0) break;
          }
      }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。