一单项选择题
1.(A)是构成C语言程序的基本单位。
A、函数
B、过程
C、子程序
D、子例程
2.C语言程序从 C开始执行。
A) 程序中第一条可执行语句 B) 程序中第一个函数
C) 程序中的main函数 D) 包含文件中的第一个函数
3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行
B、在C语言程序中,要调用的函数必须在main( )函数中定义
C、C语言程序总是从main( )函数开始执行
D、C语言程序中的main( )函数必须放在程序的开始部分
4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行
B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环
D) C程序从main函数开始执行
5.下列正确的标识符是(C)。
A.-a1
B.a[i]
C.a2_i
D.int t
5~8题为相同类型题
考点:标识符的命名规则
(1)只能由字母、数字、下划线构成
(2)数字不能作为标识符的开头
(3)关键字不能作为标识符
选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)
6.下列C语言用户标识符中合法的是( B)。
A)3ax B)x C)case D)-e2 E)union
选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);
7.下列四组选项中,正确的C语言标识符是(C)。
A) %x B) a+b C) a123 D) 123
选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)
8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBc
B、I\am one_half start$it 3pai
C、str_1 Cpp pow while
D、Pxq My->book line# His.age
选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while 为关键字,不满足(3)
9.C语言中的简单数据类型包括(D)。
A、整型、实型、逻辑型
B、整型、实型、逻辑型、字符型
C、整型、字符型、逻辑型
D、整型、实型、字符型
10.在C语言程序中,表达式5%2的结果是C。
A)2.5 B)2 C)1 D)3
详见教材P52~53.
%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;
/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2
11.如果int a=3,b=4;则条件表达式"a<b? a:b"的值是__A__。
A) 3 B) 4 C) 0 D) 1
详见教材P97.
表达式1?表达式2:表达式3
先计算表达式1,
若表达式1成立,则选择计算表达式2,并表达式2的值作为整个大表达式的值;
若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值
此题中的a<b相当于表达式1,a相当于表达式2,b相当于表达式3.
a为3,b为4。a<b表达式1成立,因此计算表达式2,并将表达式2的值即a中的值,并作为整个表达式的值,因此整个表达式的值为3
12.若int x=2,y=3,z=4 则表达式x<z?y:z的结果是( B ).
A)4 B)3 C)2 D)0 E)1
13.C语言中,关系表达式和逻辑表达式的值是(B)。
A) 0 B) 0或1 C) 1 D) ‘T’或’F’
14. 下面( D )表达式的值为4.
A) 11/3 B) 11.0/3
C) (float)11/3 D) (int)(11.0/3+0.5)
14~16题为同一类型
详见教材P54~56.
(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。
(2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。
选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.
选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0 /3=3.666666
选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同
选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到 3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4
15.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B)
A.b=1.0/a
B.b=(float)(1/a)
C.b=1/(float)a
D.b=1/(a*1.0)
16. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)
A.1
B.4
C.4.333333
D.4.6
“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为1
17. 以下对一维数组a的正确说明是:D
A)char a(10);B) int a[];
C)int k=5,a[k];D)char a[3]={‘a’,’b’,’c’};
详见教材P143~144,一维数组的定义、初始化
类型符数组名 [常量表达式]
类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。
选项A,常量表达式只能放在中括号 [ ]中
选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。选项C,常量表达式不能为变量。
18.以下能对一维数组a进行初始化的语句是: ( C )
A. int a[5]=(0,1,2,3,4,)
B. int a(5)={}
C. int a[3]={0,1,2}
D. int a{5}={10*1}
详见教材P145,一维数组的定义、初始化
选项B,D,常量表达式只能放在中括号 [ ]中
选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了().
19.在C语言中对一维整型数组的正确定义为D。
A)int a(10); B)int n=10,a[n];
C)int n;a[n]; D)#define N 10
int a[N];
20、已知:int a[10]; 则对a数组元素的正确引用是( D )。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
详见教材P144,数组元素的引用
数组名[下标]
引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数
int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.
选项A,超过了数组a的逻辑地址下标范围;
选项B,逻辑地址下标只能为整数
选项C,逻辑地址下标只能放在[ ]中
21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C)。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A.10
B.9
C.6
D.5
先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].
a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]
a[9]对应下面数组中的元素为6. 因此a[9]即为6
22.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )
A. 2
B. 3
C. 4
D.无确定值
5 7 D) 3
6 9
二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行
23.对二维数组的正确定义是(C)
详见教材P149~152,二维数组的定义、初始化
类型符数组名 [常量表达式][常量表达式]
二维数组可以看做是矩阵
c语言库函数类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。
一维数组初始化时可以省略数组长度
二维数组初始化时可以省略行数,但不能省略列数
选项A,B,都省略了列数
选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中
A.int a[ ] [ ]={1,2,3,4,5,6};
B.int a[2] [ ]={1,2,3,4,5,6};
C.int a[ ] [3]={1,2,3,4,5,6};
D.int a[2,3]={1,2,3,4,5,6};
24.已知int a[3][4];则对数组元素引用正确的是__C___
A)a[2][4] B)a[1,3] C)a[2][0] D)a(2)(1)
详见教材P150,数组元素的引用
数组名[下标] [下标]
引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数
第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。
本题图示详见P149图6.7
因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;
选项A,列逻辑地址下标超过范围
选项B,D,的引用形式不正确。
25.C语言中函数返回值的类型是由A决定的.
A)函数定义时指定的类型 B) return语句中的表达式类型
C) 调用该函数时的实参的数据类型 D) 形参的数据类型
26. 在C语言中,函数的数据类型是指( A )
A 函数返回值的数据类型 B. 函数形参的数据类型
C 调用该函数时的实参的数据类型 D.任意指定的数据类型
27. 在函数调用时,以下说法正确的是(B)
A.函数调用后必须带回返回值
B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量
D.主调函数和被调函数总是在同一个文件里
28. 在C语言中,表示静态存储类别的关键字是: ( C)
A) auto B) register C) static D) extern
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论