61. 若int a[][4] = {1,1,1,1,1,1,1,1,1,1,1,1,1};,则a数组第一维的大小的是( )
(提示:数组未初始化部分自动初始化为0)
A) 3
B) 4
C) 无法确定
D) 6
正确答案:B
62. C语言规定,调用一个指针参数时,实参变量和形参变量之间的数据传递是( )
A) 地址传递
B) 值传递
C) 由实参传给形参,并由形参传给实参
D) 由用户指定传递对象
正确答案:A
63. 若用数组名作为函数调用的实参,传递给形参的是( )
A) 数组的首地址
B) 数组第一个元素的值
C) 数组中全部元素的值
D) 数组元素的个数
正确答案:A
64. 以下程序的正确运行结果是( )
void showvalue(int, int);
void main(void)
{
int x = 100, y = 200;
showvalue(y, x);
printf("x = %d, y = %dn", x, y);
}
void showvalue(int x, int y)
{
printf("x = %d, y = %dn", x , y);
x = 400;
y = 800;
}
(1) x = 100, y = 200 (2) x = 100, y = 200
x = 100, y = 200 x = 400,y = 800;
(3) x = 200,y = 100 (4) x = 200, y = 100
x = 400,y = 800 x = 100,y = 200
A) (1)
B) (2)
C) (3)
D) (4)
正确答案:D
65. 以下程序运行的正确结果是( )
#include <stdio.h>
int func( int a, int b );
void main(void)
{
int k = 4, m = 1, p;
p = func( k , m); printf("%d ,", p);
p = func( k , m); printf("%dn" , p);
}
int func(int a, int b)
{
static int m = 0, i = 2;
A) 8, 17
B) 8, 16
C) 8, 20
D) 8, 8
正确答案:B
66. 以下有关变量使用范围不正确的说法是( )
A) 在不同函数中可以使用同名的变量
B) 形式参数是局部变量
C) 在函数内定义的变量只在本函数内有效
D) 在函数外的全局变量默认初始化值为1
正确答案:D
67. 以下程序运行的正确结果是( )
void main(void)
{
int a = 2, i;
for (int i = 0; i < 3; i++)
printf(" %4d", f(a));
}
int f(int a)
{
int b = 0;
static int c = 3;
b ++;
c ++;
rerurn (a+b+c);
}
A) 7 7 7
B) 7 10 13
C) 7 9 11
D) 7 8 9
正确答案:D
68. 下面程序段,正确的判断( )
#define A 3
#define B(a) ((A + 1) * a)
……….
X = 3 * (A + B(7));
A) 程序错误,不许嵌套定义
B) X = 93
C) 程序错误,宏定义不许有参数
D) X = 21
正确答案:B
69. 若有宏定义如下:
#define m 5
#define n m + 1
#define 1 n * m / 2
则执行以下语句后,输出结果是( )
printf("%d,%d",l,m);
A) 7, 6
B) 12, 6
C) 12, 5
D) 7, 5
正确答案:D
70. 已知:int *p,a; 则语句p = &a中的运算符"&"的含义是( )
A) 位于运算
B) 逻辑与运算
C) 取指针内容
D) 取变量地址
正确答案:D
71. 已知:int a, x; 则正确的语句是( )
A) a = (a[1] + a[2]) / 2;
B) a *= *a + 1;
C) a = (x = 1,x++,x + 2);
D) a = "good";
正确答案:C
72. 在高级语言中,对文件操作的一般步骤是( )
A) 打开文件-----' 操作文件------' 关闭文件
B) 操作文件-----' 修改文件------' 关闭文件
C) 读写文件----' 打开文件-----' 关闭文件
D) 读文件------' 写文件--------'关闭文件
正确答案:A
73. 要打开一个已存在的非空文件"file"用于读取,正确的语句是( )
A) fp = fopen ("file" , "r");
B) fp = fopen ("file" , "a");
C) fp = fopen ("file" , "w");
D) fp = fopen ("file" , "t");
正确答案:A
74. 当顺利执行了文件关闭操作时,fclose函数的返回值是( )
A) -1
B) TRUE
C) 0
D) 1
正确答案:C
75. 按照"先进后出"原则组织数据的数据结构是( )
A) 队列
B) 栈
C) 双向链表
D) 二叉树
正确答案:B
76. 下列虚函数说明不正确的是( )
A) 从虚基类继承的函数都是虚函数
B) 虚函数不能是静态成员函数
C) 只能通过指针或引用调用虚函数
D) 抽象类中的成员函数都是虚函数
正确答案:D
77. 下列语句中错误的是( )
A) const int buffer = 256;
B) const int temp;
C) const double* point = NULL;
D) int na = 19;
const int * rt = &na;
正确答案:B
78. 有如下类定义:
class Foo
{
public:
Foo(int v):value(v){} ①
~Foo(){} ②
private:
Foo(){} ③
int value = 0; ④
};
其中存在语法错误的行是( )
A) ①
B) ②
C) ③
D) ④
正确答案:D
79. 有如下类定义:
class Point
{
int pos_x,pos_y;
public:
Point():pos_x(0),pos_y(0){}
Point(int x, int y):pos_x(x),pos_y(y){}
};
若执行语句
Point a, b[3];
则Point类的构造函数被调用的次数是( )
A) 2次
B) 3次
C) 5次
D) 4次
正确答案:D
80. 有如下类定义:
class Test
{
public:
Test(){a = 0, c = 0;} //①
int f(int a) const
{this->a = a; } //②
static int g(){return a;} //③
void h(int b){ Test :: b = b;} //④
private:
int a;
static int b;
const int c;
};
int Test :: b = 0;
在标注号码的行中,能被正确编译的是( )
A) ①
B) ②
C) ③
D) ④
正确答案:D
81. 下列关于栈的叙述正确的是 ( )
A) 栈是非线性结构
B) 栈是一种树状结构
C) 栈具有先进先出的特征
D) 栈具有后进先出的特征
正确答案:D
82. C++语言的跳转语句中,对于break和continue说法正确的是( )
A) break语句只应用与循环体中
B) continue语句只应用与循环体中
C) break与continue作用一样
D) break和continue的跳转方式不同
正确答案:D
83. for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是( )
A) 0
B) 5
C) 6
D) 无次数
正确答案:C
84. 考虑函数原型void test(int a,int b=7,char='*'),
下面的函数调用中,属于不合法调用的是( )
A) test(5);
B) test(5,8);
C) test(6,2,'#')
D) test(0,,'a');
正确答案:D
85. 下面有关重载函数的说法中正确的是( )
A) 重载函数必须具有不同的返回值类型;
B) 重载函数形参个数必须不同;
C) 重载函数必须有不同的形参列表
D) 重载函数名可以不同;
正确答案:C
86. 下列关于构造函数的描述中,错误的是( )
A) 构造函数可以设置默认参数;
B) 构造函数在定义类对象时自动执行
C) 构造函数可以是公共成员函数;
D) 构造函数不可以重载
正确答案:D
87. 若有说明:char s2[]="1";则s2中( )
A) 包含3个字符
B) 包含2个字符
C) 包含1个字符
D) 无定值,说明不合
正确答案:B
88. 若有以下类型说明语句char w; int x; float y; double z;则表达式w*x+z-y的结果是( )类型。
A) float
B) char
C) int
D) double
正确答案:D
89. 以下( )是不正确的转义字符。
A) ''
B) '''
C) '081'
D) '0'
正确答案:C
90. 在C语言中,字符型数据在内存中是以( )形式存放的。
A) 原码
B) BCD码
C) 反码
D) ASCII码
正确答案:D
91. 若有以下调用语句,则不正确的fun函数的首部是( )
void main(void)
{ …
int a[50],n;
…
fun(n, &a[9]);
…
}
A) void fun(int m, int x[])
B) void fun(int s, int h[41])
C) void fun(int p, int *s)
D) void fun(int n, int a)
正确答案:D
92. 设有数组定义: char array []="China"; 则数组 array所占的空间为( )
A) 4个字节
B) 5个字节
C) 6个字节
D) 7个字节
正确答案:C
93. int nA=1,nB = false,nC;
nC = nA = nB;问nA、nB、nC的值分别是多少?
A) nA=1,nB=false,nC=1;
B) nA=1,nB=false,nC=0;
C) nA=0,nB=0,nC=0;
D) nA=1,nB=false,nC=false;
正确答案:C
94. 设已有定义: char *st="how are you"; 下列程序段中正确的是( )
A) char a[11], *p;
strcpy( p = a + 1, &st[4]);
B) char a[11];
strcpy( ++ a, st);
C) char a[11];
strcpy( a, st);
D) char a[], *p;
strcpy( p = &a[1], st + 2);
正确答案:C
95. 在C++中一个完整的语句必须以()终止。
A) ,
B) .
C) ;
D) 无
正确答案:C
96. 下列四组选项中,均不是C语言关键字的选项是
A) define IF type
B) getc char printf
C) include scanf case
D) while go pow
正确答案:A
97. 下列程序执行后的输出结果是( )
#define MA(x) x * ( x - 1 )
void main(void)
{
int a = 1 , b = 2;
printf("%d n", MA( 1 + a + b ));
}
A) 6
B) 8
C) 10
D) 12
正确答案:B
98. 已知int nX=123,double dbY=1.23456789,那么printf("%8d,%lf,%-8d,%13.8lf")的输出结果是()。(下划线代表空格)
A) _____123,1.234567,123_____,___1.23456789
B) 123,1.23456789,123,1.23456789
C) _____123,1.234567,_____123,__1.23456789
D) _____123,1.234567,_____123,_______1.23456
正确答案:A
99. 下列四个选项中,均是C语言关键字的选项是
A) auto enum include
B) switch typedef continue
C) signed union scanf
D) Dif struct type
正确答案:B
100. 下列运算符中,不属于关系运算符的是( )
A) <
B) >=
C) ==
D) !
正确答案:D
101. 使用scanf("x=%d,y=%lf", &nX,&dbY)输入,则下列哪个输入能获得正确结果。
A) 5 5.3
B) 5,5.3
C) x=5 y=5.3
D) x=5,y=5.3
正确答案:D
102. 在printf函数中用来输出十六进制无符号整数的格式字符是( )
A) d格式符
B) x格式符
C) u格式符
D) o格式符
正确答案:B
103. 若在fopen函数中使用文件的方式是″wb+″,该方式的含义是( )
A) 为读打开一个文本文件
B) 为写打开一个文本文件
C) 为读/写建立一个新的文本文件
D) 为读/写建立一个新的二进制文件
正确答案:D
104. 已知各变量的类型说明如下:
int nA, nB;
double dbA, dbB=1.42;
则以下不符合C语言语法的表达式是:
A) nA= nB%dbA
B) nA = dbA + dbB
C) nA = dbA/ nB
D) nA = dbA/dbB
正确答案:A
105. 下面四个选项中,均不合法的用户标识符的选项是
A) A) P_0 do
B) float la0 _A
C) b-a goto int
D) _123 temp INT
正确答案:C
106. 设a=12、b=12345,执行语句printf(″%4d,%4d″,a,b);的输出结果为( )
A) 12,123
B) 12,12345
C) 12,1234
D) 12,123456
正确答案:B
107. 逻辑运算符两侧运算对象的数据类型_______
A) 只能是0或1
B) 只能是0或非0正数
C) 只能是整型或字符型数据
D) 可以是任何类型的数据
正确答案:D
108. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
A) 必须为字母
B) 必须为下划线
C) 必须为字母或下划线
D) 可以是字母、数字和下划线中任一种字符
正确答案:C
109. 已知int x =43; char ch='A'; int y=0则表达式(x > = y && ch<'B') 的值是
A) 0
B) 语法错
C) 1
D) 假
正确答案:C
110. 为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与( )配对。
A) 缩排位置相同的if
B) 其之前最近的if
C) 之后最近的if
D) 同一行上的if
正确答案:B
111. 在下列叙述中,正确的一条是( )
A) 语句"int *pt;"中的*pt是指针变量名
B) 语句"int *p=a;"等价于"int *p;p=&a[0];"(a是整型数组)
C) 运算符*和&都是取变量地址的运算符
D) 已知指针变量p指向变量a,则a和*p值相同,都是变量a的值
正确答案:D
112. 下面四个选项中,均是合法整型常量的选项是
A) 160
-0xffff
011
B) -0xcdf
01a
0xe
C) -01
986,012
066
D) -0x48a
2e5
0x
正确答案:A
113. 若已定义x为int型变量,说明指针变量p的正确语句是( )
A) int p = &x;
B) int *p = x;
C) int *p = &x;
D) *p = *x;
正确答案:C
114. 判断char型变量ch是否为大写字母的正确表达式是
A) 'A' <=ch<='Z'
B) (ch> = 'A')&(ch<=' Z' )
C) (ch>=' A' )&&(ch<='Z')
D) ('A' < = ch)AND('Z'> = ch)
正确答案:C
115. 合法的数组定义是( )
A) int a[] = ″string″
B) int a[5] = {0,1,2,3,4,5};
C) char a = ″string″;
D) int a[] = {0,1,2,3,4,5};
正确答案:D
116. 下面四个选项中,均是不合法的整型常量的选项是
A) --0f1 -0xffff 0011
B) -0Xcdf 017 12,456
C) -018 999 5e2
D) -0x48eg -068 03f
正确答案:D
117. 若希望当A的值为奇数时,表达式的值为"真",A的值为偶数 表达式的值为"假"。则以下
A) A%2==1
B) !(A%2 = =0)
C) !(A%2)
D) A%2
正确答案:C
118. 设a=5,b=6,c=7,d=8,m=2,n=2,执行(m = a > b)后m的值为().
A) 0
B) 1
C) 2
D) 3
正确答案:A
119. 以下不正确的if语句形式是:
A) if(x>y && x!=y);
B) if(x==y) x+=y;
C) if(x != y)
scanf("%d",&x )
else
scanf("%d",&y);
D) if(X<Y) {X++;Y++;}
正确答案:C
120. 下面四个选项中,均是不合法的浮点数的选项是
A) 160. 0.12 e3
B) 123 2e4.2 .e5
C) -.18 123e4 0.0
D) -e3 .234 1e3
正确答案:B