*任何表达式语句都是表达式加分号组成的。
*C语言程序是从源文件的第一条语句开始执行的。(x) 从main函数开始执行
*C 语言中的变量名区分大小写。
*运算符优先级以及结合方式
1.初等运算符:()[ ] .(取结构体变量成员) ->(指针引用结构体变量成员)
2.单目运算符 + - ++ -- ~ *(取指针内容)&(取地址)sizeof(长度运算符)!
3.算术运算 * / %
4.算术运算 + -
5.移位运算 << >>
6.关系运算 < > <= >=
7.== !=
8.位逻辑运算 &
9. ^ 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
10. |
11. &&
12. ||
13.条件运算 ?:
14.赋值运算 = += *= /=
15.逗号运算符 ,
*关于逗号运算符:求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14
* 'a'的ASCII码是97 ,’A‘的是65,'0'是48
* if(a),表示a为真时执行后续语句(即a为非零的时候)
if(!a),表示a为假时执行后续语句(即a为零的时候)
* 表达式 (j=3, j++) 的值是 3
* 整数的表示:八进制(开头是0) 十六进制(0-9,a-f,A-F,首位数字前有ox) 十进制
* If x is a float variable, the value of expression x=10/4
is 2.0
* 位运算(未看懂)
&
按位与
如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
|
按位或
两个相应的二进制位中只要有一个为1,该位的结果值为1
^
按位异或
若参加运算的两个二进制位值相同则为0,否则为1
~
取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1
<<
左移
用来将一个数的各二进制位全部左移N位,右补0
>>
右移
将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0
* int a=10, b=20;
the value of expression!a is 1。
*
According to the declaration:int a;
the value of expression (a&3)==(a%4)
is 1.(疑问)
表达式(a&3)==(a%4)的值是1
因为无论a的值为多少a&3的结果只保留a的最后2位
如a的值为17,它变为二进制为10001,而3为00011,它们相与的结果只有a的1和2位数字保留下来也就是01,因为与1相与就保留原数据,与0相与就变0 如 a&1=a a&0=0
而a%4也是保留a的最后2位,因为只有最后2位的值为3,小于4,其它都>4
所以上面表达式是成立的,所以为1
*若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
B正确
正确答案是 B;
首先 是显而易见的错误选项C跟D:
C 求余运算(%)只对整数有效,浮点型数据(12.3)是没有 求余运算的。
D 赋值运算(=)的左边只能是 变量(a),不能为 表达式(a+7)。
下面看看选项B 为什么也符合C语言:
B 项为逗号运算符(表达式1,表达式2,...表达式n),其中最后一个表达式(表达式n)最为整个逗号运算的结果(即 B项的最后结果为 a++);而在此之前,逗号运算符会先对前面的所有表达进行编译操作(即先执行a=7+b+c),最后才将表达式n 作为结果返回。
下面再看看 为什么 A 不符合要求:
A 毋庸置疑,A 的写法完全符合C语言要求,编译绝不会出错。但是 题目要求 却是 “表达式”;
C语言中,语句是由 表达式 加 语句结束符(分号;)组成的。A选项中结尾含有分号,也就是说,A选项 实际上是 C语言语句,而不是表达式;B 选项没有语句结束符,所以 B选项是 表达式,符合题目要求。
* Among the following expressions in C, (4) is correct. (2分)(疑问)
* 关于字符常量
字符常量有两种:
一种是普通字符,即用单撇号括起来的一个字符,如'b' ,'y',‘?’。字符常量在储存在计算机的储存单元中时,是以其代码(一般采用ASCII代码)储存的。另一种是转义字符,即特殊字符常量。转移字符是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符转换成另外的意义。
使用字符常量需要注意以下几点:
(1)字符常量只能用单撇号括起来,不能使用单引号或其他括号。
(2)字符常量中只能包括一个字符,不能是字符串。
(3)字符常量是区分大小写的。
(4)单撇号只是界限符,不属于字符常量中旳一部分,字符常量只能是一个字符,不包括单撇号。
(5)单撇号里面可以是数字、字母等C语言字符集中除’和\以外所有可现实的单个字符,但是数字被定义为字符之后则不能参与数值运算。
合法的:'b' ,'y',‘?’,'\n','\b','\a','\t',’\x43‘ ,
不合法:”\0”(字符串不需要写结束符。)
According to the declaration: char ch; the assignment expression ______is correct.
A.ch=’\412’ B.ch=255 C.ch=’\08’ D.ch=’\’
选B(需确认)
A中'\412'表示八进制的412,转化为十进制是266,超出了ascII的范围(0~255)
C,八进制不可能有8
D '\' 表示错误,应该是'\\'表示斜杠‘\’
* 2,900
不是正确的整形常量
* 若变量已正确定义并赋值,表达式( 2)不符合C语言语法。 (2分)
5&&3
int(5.5) (int)5.5为强制类型转换
+a
4.a=b=c=5
* -k++
等价于-(k++).
* 合法
标识符由字母、下划线、数字这三个方面组成,但开头必须是字母或下划线。另外,关键字不能是标识符,如main等。
* 已知int i, a;
执行语句i=(a=2*3,a*5),a+6;
后,变量i
的值是 30
* Which one is completely correct among the following program fragments? (c) (疑问)
* 设x
、y
、t
均为int
型变量,则执行语句:x=y=3; t= ++x || ++y;
后,y
的值为 3.
* 逻辑运算符两侧运算对象的数据类型(可以是任何类型的数据)
int *p; scanf("%d", &p);
int *p; scanf("%d", p);
int k, *p=&k; scanf("%d", p);
int k, *p; *p= &k; scanf("%d", p);
int m=20; while (m=0) m=m++;
则下面描述中正确的是(3 )。 (2分)
while
循环执行 10 次* C语言中函数返回值的类型是由(定义函数时所指定的函数类型 )决定的
* 函数的定义不能嵌套,但函数调用可以嵌套
* 关于return语句
*
According to the declaration: int p[5], *a[5];
the expression ( 3 )is correct. (2分)
*
对于以下结构定义,++p->str
中的++
加在___1_。 (2分)
struct {
int len;
char *str;
} *p;
*
According to the declaration: int (*p)[10];
, p is a pointer;
*
In the following declarations, the correct assignment expression is _3_. (2分)
int *p[3], a[3];
p = a
p = &a[0]
*p = a
p[0] = *a
*
有说明语句int a[4][5];
,则a[2]+3
表示__。 (2分)
a
数组行下标为2
、列下标为3
的元素的地址*
According to the declaration: int a[10], *p=a;
the expression (4)is wrong. (2分)
* 设变量定义为 int a[2]={1,3}, *p=&a[0]+1;
,则*p
的值是 3。
* printf("%f%%",1.0/3);输出为 0.333333%
最后二个连续的%%就是实际输出一个%符号
* 若有定义和语句: int a; char c; float f; scanf("%d,%c,%f",&a,&c,&f);
若通过键盘输入: 10,A,12.5 则a=10,c='A',f=12.5。(注意字符)
* 预处理命令的前面必须加一个“#”号。
* 在对数组全部元素赋值,行可省,列不可省。
* 文件指针和位置指针都是随着文件的读写操作在不断改变。 (x)
位置指针指向文件内部的字节位置,随着文件的读取会移动
文件指针如果不重新赋值将不会改变指向别的文件。
* 任何表达式语句都是表达式加分号组成的
* 在switch语句中,每一个的case常量表达式的值不可以相同。
* C语言函数返回类型的默认定义类型是int
* 可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数.
* 函数形参的存储单元是动态分配的
* 结构体变量可以作数组元素
* 二进制文件可以随机存取,文本文件顺序存取
* 函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同 时,则返回0。
* C语言的书写格式会影响程序的可读性
* if(a=5) 是允许的
* 函数返回值的类型是由在定义函数时所指定的函数类型决定的
* 逻辑表达式的值只能为1或0
* 变量被定义后 , 它不仅有一个确定的地址值 , 而且还会有一个确定的本身值(x)
* 结构体数组中可以包含不同结构体类型的结构体变量 (x)
* 以“r”方式打开一个文件时,文件指针指向文件首
* 使用static k定义的变量属于静态变量
* 文件指针用于指向文件,文件只有被打开后才有对应的文件指针
* 在switch语句中,多个case可以共用一组执行语句。
* 表达式语句和表达式没有什么区别
在程序设计语言中,语句指的是执行单元,通常以行为单位,表达式指的是可用于计算的式子
,即可能产生一个值的式子。语句可以包含有表达式,表达式也可以单独形成一个语句。
* fseek函数一般用于文本文件 (x)
* 枚举类型中的元素都具有一个整型值
* 在多层循环中, 一个break语句只向外跳一层。
* 局部变量如果没有指定初值,则其初值不确定。
* 文件的读函数是从输入文件中读取信息,并存放在内存中。
* 结构体类型本身不占用内存空间,结构体变量占用内存空间
* char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s
*
*任何表达式语句都是表达式加分号组成的。
*C语言程序是从源文件的第一条语句开始执行的。(x) 从main函数开始执行
*C 语言中的变量名区分大小写。
*运算符优先级以及结合方式
1.初等运算符:()[ ] .(取结构体变量成员) ->(指针引用结构体变量成员)
2.单目运算符 + - ++ -- ~ *(取指针内容)&(取地址)sizeof(长度运算符)!
3.算术运算 * / %
4.算术运算 + -
5.移位运算 << >>
6.关系运算 < > <= >=
7.== !=
8.位逻辑运算 &
9. ^ 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
10. |
11. &&
12. ||
13.条件运算 ?:
14.赋值运算 = += *= /=
15.逗号运算符 ,
*关于逗号运算符:求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14
* 'a'的ASCII码是97 ,’A‘的是65,'0'是48
* if(a),表示a为真时执行后续语句(即a为非零的时候)
if(!a),表示a为假时执行后续语句(即a为零的时候)
* 表达式 (j=3, j++) 的值是 3
* 整数的表示:八进制(开头是0) 十六进制(0-9,a-f,A-F,首位数字前有ox) 十进制
* If x is a float variable, the value of expression x=10/4
is 2.0
* 位运算(未看懂)
&
按位与
如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
|
按位或
两个相应的二进制位中只要有一个为1,该位的结果值为1
^
按位异或
若参加运算的两个二进制位值相同则为0,否则为1
~
取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1
<<
左移
用来将一个数的各二进制位全部左移N位,右补0
>>
右移
将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0
* int a=10, b=20;
the value of expression!a is 1。
*
According to the declaration:int a;
the value of expression (a&3)==(a%4)
is 1.(疑问)
表达式(a&3)==(a%4)的值是1
因为无论a的值为多少a&3的结果只保留a的最后2位
如a的值为17,它变为二进制为10001,而3为00011,它们相与的结果只有a的1和2位数字保留下来也就是01,因为与1相与就保留原数据,与0相与就变0 如 a&1=a a&0=0
而a%4也是保留a的最后2位,因为只有最后2位的值为3,小于4,其它都>4
所以上面表达式是成立的,所以为1
*若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
B正确
正确答案是 B;
首先 是显而易见的错误选项C跟D:
C 求余运算(%)只对整数有效,浮点型数据(12.3)是没有 求余运算的。
D 赋值运算(=)的左边只能是 变量(a),不能为 表达式(a+7)。
下面看看选项B 为什么也符合C语言:
B 项为逗号运算符(表达式1,表达式2,...表达式n),其中最后一个表达式(表达式n)最为整个逗号运算的结果(即 B项的最后结果为 a++);而在此之前,逗号运算符会先对前面的所有表达进行编译操作(即先执行a=7+b+c),最后才将表达式n 作为结果返回。
下面再看看 为什么 A 不符合要求:
A 毋庸置疑,A 的写法完全符合C语言要求,编译绝不会出错。但是 题目要求 却是 “表达式”;
C语言中,语句是由 表达式 加 语句结束符(分号;)组成的。A选项中结尾含有分号,也就是说,A选项 实际上是 C语言语句,而不是表达式;B 选项没有语句结束符,所以 B选项是 表达式,符合题目要求。
* Among the following expressions in C, (4) is correct. (2分)(疑问)
* 关于字符常量
字符常量有两种:
一种是普通字符,即用单撇号括起来的一个字符,如'b' ,'y',‘?’。字符常量在储存在计算机的储存单元中时,是以其代码(一般采用ASCII代码)储存的。另一种是转义字符,即特殊字符常量。转移字符是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符转换成另外的意义。
使用字符常量需要注意以下几点:
(1)字符常量只能用单撇号括起来,不能使用单引号或其他括号。
(2)字符常量中只能包括一个字符,不能是字符串。
(3)字符常量是区分大小写的。
(4)单撇号只是界限符,不属于字符常量中旳一部分,字符常量只能是一个字符,不包括单撇号。
(5)单撇号里面可以是数字、字母等C语言字符集中除’和\以外所有可现实的单个字符,但是数字被定义为字符之后则不能参与数值运算。
合法的:'b' ,'y',‘?’,'\n','\b','\a','\t',’\x43‘ ,
不合法:”\0”(字符串不需要写结束符。)
According to the declaration: char ch; the assignment expression ______is correct.
A.ch=’\412’ B.ch=255 C.ch=’\08’ D.ch=’\’
选B(需确认)
A中'\412'表示八进制的412,转化为十进制是266,超出了ascII的范围(0~255)
C,八进制不可能有8
D '\' 表示错误,应该是'\\'表示斜杠‘\’
* 2,900
不是正确的整形常量
* 若变量已正确定义并赋值,表达式( 2)不符合C语言语法。 (2分)
5&&3
int(5.5) (int)5.5为强制类型转换
+a
4.a=b=c=5
* -k++
等价于-(k++).
* 合法
标识符由字母、下划线、数字这三个方面组成,但开头必须是字母或下划线。另外,关键字不能是标识符,如main等。
* 已知int i, a;
执行语句i=(a=2*3,a*5),a+6;
后,变量i
的值是 30
* Which one is completely correct among the following program fragments? (c) (疑问)
* 设x
、y
、t
均为int
型变量,则执行语句:x=y=3; t= ++x || ++y;
后,y
的值为 3.
* 逻辑运算符两侧运算对象的数据类型(可以是任何类型的数据)
int *p; scanf("%d", &p);
int *p; scanf("%d", p);
int k, *p=&k; scanf("%d", p);
int k, *p; *p= &k; scanf("%d", p);
int m=20; while (m=0) m=m++;
则下面描述中正确的是(3 )。 (2分)
while
循环执行 10 次* C语言中函数返回值的类型是由(定义函数时所指定的函数类型 )决定的
* 函数的定义不能嵌套,但函数调用可以嵌套
* 关于return语句
*
According to the declaration: int p[5], *a[5];
the expression ( 3 )is correct. (2分)
*
对于以下结构定义,++p->str
中的++
加在___1_。 (2分)
struct {
int len;
char *str;
} *p;
*
According to the declaration: int (*p)[10];
, p is a pointer;
*
In the following declarations, the correct assignment expression is _3_. (2分)
int *p[3], a[3];
p = a
p = &a[0]
*p = a
p[0] = *a
*
有说明语句int a[4][5];
,则a[2]+3
表示__。 (2分)
a
数组行下标为2
、列下标为3
的元素的地址*
According to the declaration: int a[10], *p=a;
the expression (4)is wrong. (2分)
* 设变量定义为 int a[2]={1,3}, *p=&a[0]+1;
,则*p
的值是 3。
* printf("%f%%",1.0/3);输出为 0.333333%
最后二个连续的%%就是实际输出一个%符号
* 若有定义和语句: int a; char c; float f; scanf("%d,%c,%f",&a,&c,&f);
若通过键盘输入: 10,A,12.5 则a=10,c='A',f=12.5。(注意字符)
* 预处理命令的前面必须加一个“#”号。
* 在对数组全部元素赋值,行可省,列不可省。
* 文件指针和位置指针都是随着文件的读写操作在不断改变。 (x)
位置指针指向文件内部的字节位置,随着文件的读取会移动
文件指针如果不重新赋值将不会改变指向别的文件。
* 任何表达式语句都是表达式加分号组成的
* 在switch语句中,每一个的case常量表达式的值不可以相同。
* C语言函数返回类型的默认定义类型是int
* 可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数.
* 函数形参的存储单元是动态分配的
* 结构体变量可以作数组元素
* 二进制文件可以随机存取,文本文件顺序存取
* 函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同 时,则返回0。
* C语言的书写格式会影响程序的可读性
* if(a=5) 是允许的
* 函数返回值的类型是由在定义函数时所指定的函数类型决定的
* 逻辑表达式的值只能为1或0
* 变量被定义后 , 它不仅有一个确定的地址值 , 而且还会有一个确定的本身值(x)
* 结构体数组中可以包含不同结构体类型的结构体变量 (x)
* 以“r”方式打开一个文件时,文件指针指向文件首
* 使用static k定义的变量属于静态变量
* 文件指针用于指向文件,文件只有被打开后才有对应的文件指针
* 在switch语句中,多个case可以共用一组执行语句。
* 表达式语句和表达式没有什么区别
在程序设计语言中,语句指的是执行单元,通常以行为单位,表达式指的是可用于计算的式子
,即可能产生一个值的式子。语句可以包含有表达式,表达式也可以单独形成一个语句。
* fseek函数一般用于文本文件 (x)
* 枚举类型中的元素都具有一个整型值
* 在多层循环中, 一个break语句只向外跳一层。
* 局部变量如果没有指定初值,则其初值不确定。
* 文件的读函数是从输入文件中读取信息,并存放在内存中。
* 结构体类型本身不占用内存空间,结构体变量占用内存空间
* char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s
*
*任何表达式语句都是表达式加分号组成的。
*C语言程序是从源文件的第一条语句开始执行的。(x) 从main函数开始执行
*C 语言中的变量名区分大小写。
*运算符优先级以及结合方式
1.初等运算符:()[ ] .(取结构体变量成员) ->(指针引用结构体变量成员)
2.单目运算符 + - ++ -- ~ *(取指针内容)&(取地址)sizeof(长度运算符)!
3.算术运算 * / %
4.算术运算 + -
5.移位运算 << >>
6.关系运算 < > <= >=
7.== !=
8.位逻辑运算 &
9. ^ 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
10. |
11. &&
12. ||
13.条件运算 ?:
14.赋值运算 = += *= /=
15.逗号运算符 ,
*关于逗号运算符:求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14
* 'a'的ASCII码是97 ,’A‘的是65,'0'是48
* if(a),表示a为真时执行后续语句(即a为非零的时候)
if(!a),表示a为假时执行后续语句(即a为零的时候)
* 表达式 (j=3, j++) 的值是 3
* 整数的表示:八进制(开头是0) 十六进制(0-9,a-f,A-F,首位数字前有ox) 十进制
* If x is a float variable, the value of expression x=10/4
is 2.0
* 位运算(未看懂)
&
按位与
如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
|
按位或
两个相应的二进制位中只要有一个为1,该位的结果值为1
^
按位异或
若参加运算的两个二进制位值相同则为0,否则为1
~
取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1
<<
左移
用来将一个数的各二进制位全部左移N位,右补0
>>
右移
将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0
* int a=10, b=20;
the value of expression!a is 1。
*
According to the declaration:int a;
the value of expression (a&3)==(a%4)
is 1.(疑问)
表达式(a&3)==(a%4)的值是1
因为无论a的值为多少a&3的结果只保留a的最后2位
如a的值为17,它变为二进制为10001,而3为00011,它们相与的结果只有a的1和2位数字保留下来也就是01,因为与1相与就保留原数据,与0相与就变0 如 a&1=a a&0=0
而a%4也是保留a的最后2位,因为只有最后2位的值为3,小于4,其它都>4
所以上面表达式是成立的,所以为1
*若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
B正确
正确答案是 B;
首先 是显而易见的错误选项C跟D:
C 求余运算(%)只对整数有效,浮点型数据(12.3)是没有 求余运算的。
D 赋值运算(=)的左边只能是 变量(a),不能为 表达式(a+7)。
下面看看选项B 为什么也符合C语言:
B 项为逗号运算符(表达式1,表达式2,...表达式n),其中最后一个表达式(表达式n)最为整个逗号运算的结果(即 B项的最后结果为 a++);而在此之前,逗号运算符会先对前面的所有表达进行编译操作(即先执行a=7+b+c),最后才将表达式n 作为结果返回。
下面再看看 为什么 A 不符合要求:
A 毋庸置疑,A 的写法完全符合C语言要求,编译绝不会出错。但是 题目要求 却是 “表达式”;
C语言中,语句是由 表达式 加 语句结束符(分号;)组成的。A选项中结尾含有分号,也就是说,A选项 实际上是 C语言语句,而不是表达式;B 选项没有语句结束符,所以 B选项是 表达式,符合题目要求。
* Among the following expressions in C, (4) is correct. (2分)(疑问)
* 关于字符常量
字符常量有两种:
一种是普通字符,即用单撇号括起来的一个字符,如'b' ,'y',‘?’。字符常量在储存在计算机的储存单元中时,是以其代码(一般采用ASCII代码)储存的。另一种是转义字符,即特殊字符常量。转移字符是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符转换成另外的意义。
使用字符常量需要注意以下几点:
(1)字符常量只能用单撇号括起来,不能使用单引号或其他括号。
(2)字符常量中只能包括一个字符,不能是字符串。
(3)字符常量是区分大小写的。
(4)单撇号只是界限符,不属于字符常量中旳一部分,字符常量只能是一个字符,不包括单撇号。
(5)单撇号里面可以是数字、字母等C语言字符集中除’和\以外所有可现实的单个字符,但是数字被定义为字符之后则不能参与数值运算。
合法的:'b' ,'y',‘?’,'\n','\b','\a','\t',’\x43‘ ,
不合法:”\0”(字符串不需要写结束符。)
According to the declaration: char ch; the assignment expression ______is correct.
A.ch=’\412’ B.ch=255 C.ch=’\08’ D.ch=’\’
选B(需确认)
A中'\412'表示八进制的412,转化为十进制是266,超出了ascII的范围(0~255)
C,八进制不可能有8
D '\' 表示错误,应该是'\\'表示斜杠‘\’
* 2,900
不是正确的整形常量
* 若变量已正确定义并赋值,表达式( 2)不符合C语言语法。 (2分)
5&&3
int(5.5) (int)5.5为强制类型转换
+a
4.a=b=c=5
* -k++
等价于-(k++).
* 合法
标识符由字母、下划线、数字这三个方面组成,但开头必须是字母或下划线。另外,关键字不能是标识符,如main等。
* 已知int i, a;
执行语句i=(a=2*3,a*5),a+6;
后,变量i
的值是 30
* Which one is completely correct among the following program fragments? (c) (疑问)
* 设x
、y
、t
均为int
型变量,则执行语句:x=y=3; t= ++x || ++y;
后,y
的值为 3.
* 逻辑运算符两侧运算对象的数据类型(可以是任何类型的数据)
int *p; scanf("%d", &p);
int *p; scanf("%d", p);
int k, *p=&k; scanf("%d", p);
int k, *p; *p= &k; scanf("%d", p);
int m=20; while (m=0) m=m++;
则下面描述中正确的是(3 )。 (2分)
while
循环执行 10 次* C语言中函数返回值的类型是由(定义函数时所指定的函数类型 )决定的
* 函数的定义不能嵌套,但函数调用可以嵌套
* 关于return语句
*
According to the declaration: int p[5], *a[5];
the expression ( 3 )is correct. (2分)
*
对于以下结构定义,++p->str
中的++
加在___1_。 (2分)
struct {
int len;
char *str;
} *p;
*
According to the declaration: int (*p)[10];
, p is a pointer;
*
In the following declarations, the correct assignment expression is _3_. (2分)
int *p[3], a[3];
p = a
p = &a[0]
*p = a
p[0] = *a
*
有说明语句int a[4][5];
,则a[2]+3
表示__。 (2分)
a
数组行下标为2
、列下标为3
的元素的地址*
According to the declaration: int a[10], *p=a;
the expression (4)is wrong. (2分)
* 设变量定义为 int a[2]={1,3}, *p=&a[0]+1;
,则*p
的值是 3。
* printf("%f%%",1.0/3);输出为 0.333333%
最后二个连续的%%就是实际输出一个%符号
* 若有定义和语句: int a; char c; float f; scanf("%d,%c,%f",&a,&c,&f);
若通过键盘输入: 10,A,12.5 则a=10,c='A',f=12.5。(注意字符)
* 预处理命令的前面必须加一个“#”号。
* 在对数组全部元素赋值,行可省,列不可省。
* 文件指针和位置指针都是随着文件的读写操作在不断改变。 (x)
位置指针指向文件内部的字节位置,随着文件的读取会移动
文件指针如果不重新赋值将不会改变指向别的文件。
* 任何表达式语句都是表达式加分号组成的
* 在switch语句中,每一个的case常量表达式的值不可以相同。
* C语言函数返回类型的默认定义类型是int
* 可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数.
* 函数形参的存储单元是动态分配的
* 结构体变量可以作数组元素
* 二进制文件可以随机存取,文本文件顺序存取
* 函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同 时,则返回0。
* C语言的书写格式会影响程序的可读性
* if(a=5) 是允许的
* 函数返回值的类型是由在定义函数时所指定的函数类型决定的
* 逻辑表达式的值只能为1或0
* 变量被定义后 , 它不仅有一个确定的地址值 , 而且还会有一个确定的本身值(x)
* 结构体数组中可以包含不同结构体类型的结构体变量 (x)
* 以“r”方式打开一个文件时,文件指针指向文件首
* 使用static k定义的变量属于静态变量
* 文件指针用于指向文件,文件只有被打开后才有对应的文件指针
* 在switch语句中,多个case可以共用一组执行语句。
* 表达式语句和表达式没有什么区别
在程序设计语言中,语句指的是执行单元,通常以行为单位,表达式指的是可用于计算的式子
,即可能产生一个值的式子。语句可以包含有表达式,表达式也可以单独形成一个语句。
* fseek函数一般用于文本文件 (x)
* 枚举类型中的元素都具有一个整型值
* 在多层循环中, 一个break语句只向外跳一层。
* 局部变量如果没有指定初值,则其初值不确定。
* 文件的读函数是从输入文件中读取信息,并存放在内存中。
* 结构体类型本身不占用内存空间,结构体变量占用内存空间
* char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s
*