C语言程序设计课程期末复习练习
    一、单选题
  1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( A  )
        A. main      B. MAIN      C. name      D. function
    2.每个C语言程序文件的编译错误分为(  B  )类。
        A. 1          B. 2          C. 3        D. 4
  3. 字符串"a+b=12\n"的长度为(  B  )。
        A. 6      B. 7      C. 8      D. 9
    4. switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为( B  )语句。
        A. for      B. if      C. do      D. while
    5. 在下面的do-while循环语句中,其循环体语句被执行的次数为( D  )。
        int i=0; do i++; while(i<10);
        A. 4      B. 3      C. 5      D. 10
    6. 将两个字符串连接起来组成一个字符串时,选用的函数为(  C  )。
        A. strlen()    B. strcap()    C. strcat()    D. strcmp()
  7. 若用数组名作为函数调用的实参,传递给形参的是(  A  )。
        A. 数组的首地址        B. 数组中第一个元素的值
        C. 数组中全部元素的值    D. 数组元素的个数
    8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大C  )个字节。
        A. 4      B. 8      C. 16      D. 32
    9. 假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为( A )。
        A. char *p=s;        B. char *p=&s;
      C. char *p;p=*s;      D. char *p; p=&s;
    10. 从一个数据文件中读入以换行符结束的一行字符串的函数为( B  )。
        A. gets()      B. fgets()      C. getc()      D. fgetc()
  11. C语言目标文件连接而成的可执行文件的缺省扩展名为( B  )
        A. cpp    B. exe      C. obj      D. c
    12. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为(  C  )。
        A. 12      B. 144      C. 156      D. 288
    13. 带有随机函数调用的表达式rand()%20的值在C  )区间内。
        A. 1~19        B. 1~20        C. 0~19          D. 0~20
    14. for循环语句“for(i=0; i<n; i+=2) S;”中循环体S语句被执行的次数为( A  )。
        A. (n+1)/2    B. n/2+1        C. n/2-1        D. n-1
    15. 在下列的字符数组定义中,存在语法错误的是(  D  )。
      A. char a[20]="abcdefg";        B. char a[]="x+y=55.";
      C. char a[15]={'1','2'};        D. char a[10]='5';
    16. 若有一个函数原型为“double *function()”,则它的返回值类型为(  B  )。
        A. 实数型    B. 实数指针型    C. 函数指针型    D. 数组型
  17. 在C语言中,所有预处理命令都是以( B  )符号开头的。
        A. *      B. #      C. &      D. @
    18. 假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行*p++后,p所指数据单元的值为(  A  )。
        A. 40      B. 30      C. 70      D. 10
  19. 若要使p指向二维整型数组a[10][20],则p的类型为(  D )。
        A. int *  B. int **      C. int *[20]      D. int(*)[20]
    20. 表示文件结束符的符号常量为( C  )
        A. eof      B. Eof      C. EOF      D. feof
  21. 程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用( D  )符号作为分隔符。
        A. 空格或逗号    B. 逗号或回车    C. 逗号或分号    D. 空格或回车
    22. 逻辑表达式(x>0 && x<=10)的相反表达式为( A  )。
A. x<=0 || x>10            B. x<=0 && x>10
C. x<=0 || x<=10          D. x>0 && x>10
    23. 当处理特定问题时的循环次数已知时,通常采用( A  )循环来解决。
        A. for      B. while      C. do-while      D. switch
    24. 假定i的初值为0,则在循环语句“while(i<n) {s+=i*i; i++;}”中循环体被执行的总次数为( B  )。
        A. n-1      B. n      C. n+1      D. n/2
    25. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(  C  )。
        A. 2      B. 4      C. 6      D. 8
    26. 在下列选项中,不正确的函数原型格式为(  C  )。
        A. int Function(int a);    B.void Function (char);
        C. int Function(a);        D.void int(double* a);
    27. 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大( C  )个字节。
        A. 1          B. 2          C. 4          D. 8
    28. 假定有定义为“int m=7, *p;”,则给p赋值的正确表达式为(  B )。
        A. p=m      B. p=&m      C. *p=&m    D. p=*m
    29. 假定指针变量p定义为“int *p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为(  A  )。
        A. free(p)    B. delete(p)    C. free(*p)    D. free(&p)
    30. C语言中的系统函数fopen()是( D  )一个数据文件的函数。
        A. 读取      B. 写入      C. 关闭      D. 打开
    二、填空题
    1.C语言中的每条简单语句以_;(或分号)作为结束符。
    2. C程序中的所有预处理命令均以___#___字符开头。
    3. 当不需要函数返回任何值时,则应使用void  标识符来定义函数类型。
    4.十进制数25表示成符合C语言规则的十六进制数为0x19
    5. 假定不允许使用逻辑非操作符,则逻辑表达式a>b || b==5的相反表达式为a<=b && b!=5
    6. 执行“typedef int DataType;”语句后,在使用int定义整型变量的地方也可以使用______ DataType ____来定义整型变量。
    7. 假定一维数组的定义为“char* a[8];”,则该数组所占存储空间的字节数为_____32 ___
    8. 假定二维数组的定义为“double a[M][N];”,则该数组的列下标的取值范围在_____0~N-1____之间。
    9. 存储一个空字符串需要占用____1 ____个字节。
    10. strcpy函数用于把一个字符串_____拷贝(复制)___到另一个字符数组空间中。
  11. 程序的编译单位是一个_____程序文件 _____
    12. 令数组全部的值为0假定a是一个一维数组,则a[i]的指针访问方式为___*(a+i)_____
    13. 执行int *p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为___*p _____
    14.执行“printf("%c",'A'+2);”语句后得到的输出结果为___ C _____
  15.short int类型的长度为____2 ____

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