自考资讯

导航

自学考试《C语言程序设计》习题及答案

来源 :中华考试网 2017-01-31

  【1.81】已知:

  struct

  { int i;

  char c;

  float a;

  }test;

  则sizeof(test)的值是 。

  A) 4 B) 5 C) 6 D) 7

  【1.82】已知:

  union

  { int i;

  char c;

  float a;

  }test;

  则sizeof(test)的值是 。

  A) 4 B) 5 C) 6 D) 7

  【1.83】已知:

  union u_type

  { int i;

  char ch;

  float a;

  }temp;

  现在执行"temp.i=266;printf("%d",temp.ch)"的结果是 。

  A) 266 B) 256 C) 10 D) 1

  【1.84】若有以下程序段:

  struct dent

  { int n;

  int *m;

  };

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

  struct dent s[3] = { {101,&a},{102,&b},{103,&c} };

  struct dent *p=s;

  则以下表达式中值为2的是 。

  A) (p++)->m B) *(p++)->m C) (*p).m D) *(++p)->m

  【1.85】若有以下说明语句,则对结构变量pup中sex域的正确引用是 。

  struct pupil

  { char name[20];

  int sex;

  }pup,*p;

  p=&pup;

  A) p.pup.sex B) p->pup.sex C) (*p).pup.sex D) (*p).sex

  【1.86】以下对结构变量stul中成员age的非法引用是 。

  struct student

  { int age;

  int num;

  }stu1,*p;

  p=&stu1;

  A) stu1.age B) student.age C) p->age D) (*p).age

  【1.87】若有以下定义和语句:

  union data

  { int i;

  char c;

  float f;

  }a;

  int n;

  则以下语句正确的是 。A) a=5; B) a={2,'a',1.2}; C) printf("%d\n",a); D) n=a;

  【1.88】已知:

  struct sk

  { int a;

  int age;

  }date,*p;

  如果要使指针p指向data中的成员a,正确的赋值语句是____。

  A) p = (struct sk *)&data.a; B) p = (struct sk *)data.a;

  C) p = &data.a; D) *p = data.a;

  【1.89】已知 enum week {sun,mon,tue,wed,thu,fri,sat}day;则正确的赋值语句是____。

  A) sun=0; C) san=day; D) sun=mon; D) day=sun;

  【1.90】已知 enum color {red,yellow=2,blue,white,black}ren;执行下述语句的输出结果是____。

  printf("%d",ren=white);

  A) 0 B) 1 C) 3 D) 4

  【1.91】已知 enum name{zhao=1,qian,sun,li}man;执行下述程序段后的输出是____。

  man=0;

  switch(man)

  { case 0: printf("People\n");

  case 1: printf("Man\n");

  case 2: printf("Woman\n");

  default: printf("Error\n");

  }

  A) People B) Man C) Woman D)Error

  【1.92】下述关于枚举类型名的定义中,正确的是____。

  A) enem a={ one,two,three }; B) enem a { one=9,two=-1,three };

  C) enem a={"one","two","three"}; D) enem a {"one","two","three"};

  【1.93】C语言中标准输入文件stdin是指 。

  A) 键盘 B) 显示器 C) 鼠标 D) 硬盘

  【1.94】要打开一个已存在的非空文件"file"用于修改,选择正确的语句____。

  A) fp=fopen("file", "r"); B) fp=fopen("file", "a+");

  C) fp=fopen("file", "w"); D) fp=fopen('file", "r+");

  【1.95】当顺利执行了文件关闭操作时,fclose函数的返回值是 。

  A) -1 B) TRUE C) 0 D) 1

  【1.96】fscanf函数的正确调用形式是 。

  A) fscanf (文件指针, 格式字符串, 输出列表);

  B) fscanf (格式字符串, 输出列表, 文件指针);

  C) fscanf (格式字符串, 文件指针, 输出列表);

  D) fscanf (文件指针, 格式字符串, 输入列表);

  【1.97】使用fgetc函数,则打开文件的方式必须是 。

  A) 只写 B) 追加 C) 读或读/写 D) 参考答案B和C都正确

  【1.98】已知宏定义

  #define N 3

  #define Y(n) ((N+1)*n)

  执行语句z=2*(N+Y(5+1));后,变量z的值是____。

  A) 42 B) 48 C) 52 D) 出错

  【1.99】已知宏定义 #define SQ(x) x*x,执行语句printf("%d",10/SQ(3));后的输出结果是____。

  A) 1 B) 3 C) 9 D) 10

  【1.100】已知宏定义如下:

  #define PR printf

  #define NL "\n"

  #define D "%d"

  #define D1 DNL

  若程序中的语句是 PR(D1,a);经预处理后展开为____。

  A) printf(%d\n,a); B) printf("%d\n",a);

  C) printf("%d""\n",a); D) 原语句错误

  【单项选择题参考答案】

  【1.1】答案: A

  注释:int是C语言的关键字

  【1.2】答案: B

  【1.3】答案:A

  【1.4】答案:B

  注释:include是预处理命令;scanf是函数名;type不是C语言的关键字。

  【1.5】答案:D

  【1.6】答案:D

  【1.7】答案:A

  【1.8】答案:A

  注释:int型表示整数的范围是-32768~32767。

  【1.9】答案:D

  注释:整型常量-1在计算机中表示为补码1111 1111 1111 1111,用十六进制显示这个数时,最左边的1不会被解释为符号位,而是与右边其它位共同转换为十六进制数。

  【1.10】答案:B

  注释:长整型数32768在计算机内的表示是1000 0000 0000 0000,以一般整型进行输出时,此数恰是-32768的补码。

  【1.11】答案:C

  注释:长整型数65539在计算机内的表示是0001 0000 0000 0000 0011,以一般整型进行输出时,仅将右侧16位二进制数转换为十进制数。

  【1.12】答案:A

  注释:C语言中,int型的负数是采用补码表示的。

  【1.13】答案:D

  【1.14】答案:C

  注释:变量c是字符型,可用字符常量为它赋值。字符常量必须用单引号括起来,所以B是错误的;在单引号或双引号内的反斜线'\'用于表示转义字符,A选项在无引号时使用反斜线是错误的;C选项单引号内出现反斜线表示它与后面的数字组成一个转义字符;单引号只允许括起一个字符,D选项在单引号内出现4个字符,是错误的。

  【1.15】答案:C

分享到

您可能感兴趣的文章