期末C语言复习【判断题之正确篇】

判断题


  1. 字符常量的长度肯定为1.
  2. 在调用函数时,实参把值传送给对应位置上的形参,形参的值不能传给实参.
  3. 在程序中凡是以#号开始的语句行都是预处理命令行
  4. 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量.
  5. 在程序中,APH和aph是两个不同的变量.
  1. 在Turbo C中,int型数据在内存中占2个字节.
  1. 在C语言中8.9e1.2是不正确的实型常量.
  2. 在C语言中,变量必需先定义后使用.
  1. 在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char
在C语言中(以16位PC机为例),
char(字符型)的存储空间大小为1个字节,
int(整数型)的存储空间大小为2个字节,
long int(长整数型)的存储空间大小为4个字节,
float(单精度型)的存储空间大小为4个字节,
double(双精度型)的存储空间大小为8个字节。
  1. 在C语言的函数中,可以有也可以没有形参
  2. 在C语言程序中,函数的定义不可以嵌套,但函数的调用可以嵌套
  3. 在C语言程序设计中,"/ * “和” * /"之间的内容是C语言的注释
  1. 在C程序中,逗号运算符的优先级最低.
  1. 在C程序中,j++;是一条赋值语句.
  1. 在C 语言中,此定义和语句是合法的:enum aa { a=5,b,c}bb;bb=(enum aa)5;
enum aa { a=5, b, c }; 这行定义了一个名为aa的枚举类型,其中a的值为5,b的值为0(默认从0开始),c的值为1(因为b是0,所以c是1)。

enum aa bb; 这行定义了一个名为bb的枚举变量,其类型为aa。

bb = (enum aa)5; 这行将整数值5强制转换为enum aa类型,并赋值给变量bb。由于enum aa中的b的值为0,而c的值为1,所以整数值5会被赋给bb,此时bb的值相当于enum aa中的c。
//由于`5`大于枚举中所有成员的默认值,所以它相当于枚举中的最后一个成员`c`。因此,此时`bb`的值相当于`enum aa`中的`c`。
所以,这段代码是合法的,并且不会产生编译错误。
  1. 用fopen(“file”,“r+”);打开的文件"file"可以进行修改.
  1. 一个字符变量只能存储一个字符.
  1. 一个指针变量只能指向同一类型变量.
  2. 一个C程序必须由一个或一个以上的函数组成.
  1. 也可用其它编辑软件创建ASCII数据文件用在C程序中.
  2. 位段定义中允许长度为零的无名字段.
  1. 同一数组的元素在内存中存储是连续存放的,占有连续的存储单元.
  1. 数组说明 int a[3][3]={1,2,3,4,5}; 是正确的.
  1. 数 -32100可以赋值给int型和long int型变量.
  1. 设x、t均为int型变量,则执行语句"x=10;t=x&&x<=10;"后,t的值为1.
  1. 三种循环(while语句for语句do-while语句)都可以用来处理同一个问题,一般它们可以相互代替.

  2. 若有定义和语句:int a;char c;float f;scanf(“%d,%c,%f”,&a,&c,&f);若通过键盘输入:10,A,12.5则a=10,c=‘A’,f=12.5.

  3. 若有int a[3][4];*(a+1)+2表示a[1][2]元素的地址.

  4. 若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变.

  1. 如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};
在C和C++中,初始化数组时,如果你想让数组中的所有元素都为0,你可以使用以下几种方法:
指定一个初始值,然后让编译器自动计算其他元素的初始值:
int a[10] = {0};
在这种情况下,数组中的其他元素将被初始化为02. 使用一个值乘以数组的大小来初始化所有元素:
int a[10] = {0 * 10};
这种方法在某些情况下可能看起来更简洁,但它实际上并不比其他方法更快或更有效。编译器会将其解释为上面的第一种方法。
3. 使用memset函数:
int a[10];
memset(a, 0, sizeof(a));

如果只写int a[10] = {0};,那么数组中的所有元素都会被初始化为0。这是因为C和C++规定,如果初始化列表中的元素数量少于数组的大小,那么剩余的元素将被初始化为0。
所以,int a[10] = {0};int a[10] = {0 * 10};是等效的。
  1. 枚举类型的数据不能从键盘上直接输入、输出.
  2. 结构体类型的定义允许嵌套.
  1. 将整数以二进制形式存盘比以ASCII形式存盘省空间、运算快.
  1. 将一维双精度实数数组x的下标为i的变量的地址赋给指针变量p的语句为:double *p,x[10];int i=5;p=&x[i];
  2. 将数组a的首地址赋给指针变量p的语句是p=a;
  3. 共用体类型变量不能被初始化.
  1. 共同体变量所占的内存长度等于最长的成员的长度.
  1. 对指针变量的初始化int a,*pa=&a,*pc=0;是正确的.
  1. 对文件进行读写操作,必须先打开,可调用函数fopen().
  1. 对枚举类型名的定义enum a {sum=9,mon=-1,tue};是正确的.
  2. 对结构体类型的变量的成员可以象普通变量一样参与各种运算.
  1. 动态存储分配,可调用函数malloc(),如int *p;p=(int *)malloc(sizeof ( p ) );
  1. 当定义一个结构体变量时,系统分配给它的内存是各成员所需内存量的总和.
  1. 当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址.
  2. 不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以文件的形式存在磁盘上.
  1. x*=y+8 等价于 x=x*(y+8).
  2. while 和for循环都是先判断表达式的值,后执行循环体语句.
  3. typedef long int BIGGY;的作用是给长整型起了一个别名BIGGY.
  4. static char a[]=“This is a program.”;printf(“%s”,a);是正确的.
  1. rewind(fp);可使fp所指文件的位置返回到文件的开头.
  1. r_1_2是C语言合法的用户定义标识符.
  1. int n; scanf(“%d”,&n); int a[n]; 是不合法的.
  1. int i=3,j=5; if(i>j);是正确的.
  2. int i,*p=&i;是正确的C说明.
  1. int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.
  1. int *p[6];定义了6个下标变量的整型指针.
  1. fseek()函数一般用于二进制文件.
  1. for(i=4;i>1;i–)for(j=1;j
  2. do-while循环是先执行循环体语句,后判断表达式的值.
  1. C语言中,文件由字符(字节)序列组成.
  1. C语言规定,函数返回值的类型是由在定义该函数时所指定的函数类型所决定的.
  2. C语言程序中,当调用函数时实参和形参各占一个独立的存储单元
  3. char c;c=getchar();该程序段的功能是将用户从键盘输入的字符赋给变量c.
  1. char *s1=“hello”,*s2;s2=s1;是正确的.
在C语言中,字符串常量(如"hello")实际上是存储在只读内存区域的。
当使用`char *s1="hello"`时,实际上是创建了一个指向该只读内存区域的指针`s1`。
接下来,`char *s2;`声明了一个新的指针`s2`,但没有初始化。
然后,`s2 = s1;`将`s1`的地址(即字符串"hello"在内存中的位置)赋值给`s2`。这样,`s2`现在也指向了只读的内存区域,并且与`s1`指向同一个地址。
所以,这段代码是正确的,并且没有导致任何错误。但是,需要注意的是,你不能通过`s2`来修改这个字符串的内容,因为它是只读的。如果你尝试这样做,会导致未定义的行为。
  1. char (*p)[6]; 若p值为1000,则p++;后p值为1006.
  1. a=(b=4)+(c=6) 是一个合法的赋值表达式.
  1. 0x173是"正确"的十六进制常数.
  1. #define 和printf 都不是C语句.

你可能感兴趣的:(c语言)