background image

A.032              B.016         C.023        D.022

17.

    

下面对函数的叙述,不正确的是(

A.函数的返回值是通过函数中的 return 语句获得的
B.函数不能嵌套定义
C.一个函数中有且只有一个 return 语句
D.函数中没有 return 语句,并不是不带回值

18.

    

下面的叙述,不正确的是(

A.

           

宏名无类型,其参数也无类型

B.宏定义不是 C 语句,不必在行末加分号
C.宏替换只是字符替换
D.宏替换定义命令必须写在文件开头

19.有定义 int a[3][4],输入其 3 行 2

    

列元素的正确语句为(

A.scanf(“%d”,a[3,2]);    B.scanf(“%d”,*(*(a+2)+1))
C.scanf(“%d”,*(a+2)+1);  D.scanf(“%d”,*(a[2]+1));    

20.

    

下面对指针变量的叙述,正确的是(

A.指针变量可以加上一个指针变量
B.可以把一个整形数赋给指针变量
C.指针变量的值可以赋给指针变量
D.指针变量不可以有空值,即该指针变量必须指向某一变量

    

二、程序改错题

(每小题 4 分,共 20 分)

(下列每小题只有一个错误,请改正。)

 1.

str_space(char *str)/*统计字符串中空格数*/

   {  int num=0;
      char  ch;
      while((ch=*str++)!=’\0’)

     if(ch=’’)  num++;
  return (num);

    }
2.

main()
{    int a,b;

     float x,y,z;
     scanf(“%f%f%f”,&x,&y,&z);
     a=b=x+y+z;
     c=a+b;
     printf(“%d%d%d”,a,b,c);

  }

3.

#include “stdio.h”

main()
{ static int a[]={0*5};

    int i=0,sum=0;
    for(;i<5;i++)  sum=sum+*(a+i)+i;
    printf(“sum=%d”,sum);