单选2
1.C/C++过程化程序设计的三种基本程序控制结构是( ) 。A
A.顺序结构、选择结构、循环结构
B.输入、处理、输出
C.for、while、do…while
D.复合语句、基本语句、空语句
2.定义 char a; 则以下赋值语句不恰当的是: B
A. a = 65
B. a = "A"
C. a = '\65'
D. a = 6 + 'A'
解析:在C语言中,使用单引号表示字符类型变量,而使用双引号表示字符串。
3.下列运算符中优先级最低的是__.A
A.II
B.>=
C.!=
D.~
解析:关系运算符(>=)>关系运算符(!=)>操作运算符(~取反)> 逻辑或运算符(||)
4.逻辑运算符两侧运算对象的数据类型( )。D
A.只能是 0 或 1
B.只能是 0 或非 0 正数
C.只能是整型或字符型的数据
D.可以是任何类型的数据
5.在基类型相同的两个指针变量之间,不能进行的运算是( )。C
A.<
B.=
C.+
D.–
解析:两个同类型的指针间允许比较大小(按实际内存的高低位)和赋值;同类型指针变量相减可得相隔的同类型元素个数(应用于数组);因两个指针相加无意义,规定不允许相加。
6.下述对C语言字符数组的描述中错误的是()。C
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
解析:“=”对字符数组初始化;char a[]="abc" or char a[]={"abc"}存放;gets(ch)整体输入puts(ch)整体输出;数组名退化为指针,关系运算符比较指针所指向的内存地址的大小,与比较字符串的大小无关。
7.若x
为浮点型,则表达式x=10/4
为( )。B
A.2.5
B.2.0
C.2
D.3
解析:float((int)10/(int)4)=float(2)=2.0
8.以下正确的说法是()。B
A.实参与其对应的形参共同占用一个存储单元
B.实参与其对应的形参各占用独立的存储单元
C.只有当实参与其对应的形参同名时才占用一个共同的存储单元
D.形参是虚拟的,不占用内存单元
9.以下说法正确的是:D
A.一个C语言源文件(.c文件)必须包含main函数
B.一个C语言源文件(.c文件)可以包含两个以上main函数
C.C语言头文件(.h文件)和源文件(.c文件)都可以进行编译
D.在一个可以正确执行的C语言程序中,一个C语言函数的声明(原型)可以出现任意多次
解析:一个函数的声明可以出现很多次;一个c的项目可以包含很多.c文件,其中有且只能有一个有main函数 ;.c文件无main函数时无法编译。
10.若a
为int
类型,且其值为3,则执行完表达式a+= a-= a*a
后,a
的值是__。C
A.-3
B.9
C.-12
D.6
解析:a-=a*a=-6,a+=a=(-6)+(-6)=-12
11.有以下定义:char x[ ]="abcdefg"; char y[ ]={'a', 'b', 'c', 'd', 'e', 'f', 'g'}; 则正确的叙述为()。C
A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
解析:在C语言中,字符串以'\0'作为结束符,len(x[])=7+1=8,len(y[])=7。
e.g.设有数组定义:char array [ ]="China"; 则数组 array所占的空间为()。6个字节
12.以下能对一维数组a进行正确初始化的语句是( )。C
A.int a[10]=(0,0,0,0,0)
B.int a[2]={0,1,2}
C.int a[]={0}
D.int a[]={{}}
解析:A{0,0,0,0,0};B未初始化;D初始化错误
ps:int a[10]={10*a}; 错误,数组a未定义无法参与运算。在Java中,数组初始化与C/C++类似,nt a[10]={ }和int a[]={0}同样可行。主要区别是Java不需要预先定义数组长度,都是根据初始化元素推断长度。
13.以下正确的函数定义形式是()。A
A.double fun(int x, int y)
B.double fun(int x ; int y)
C.double fun(int x, int y);
D.double fun(int x, y)
14.如果有定义:int m, n = 5, *p = &m; 与m = n 等价的语句是 () 。B
A.m = *p;
B.*p = *&n;
C.m = &n;
D.m = **p;
解析:int *p=&m定义指针变量p的值是m的地址,*p的值为m,*&n表示值为n。
若有int *p, a=4; 和 p=&a; 下面( )均代表地址。D
A.&*a, &a, *p
B.*&p, *p, &a
C.a, p, *&a
D.&a, &*p, p
解析:&*p=&a(*&p=*(p的地址))->a的地址;*&a->a所在地址的值;&地址,*值。