http://blog.csdn.net/hackbuteer1/article/details/7926592
1、以下程序的运行结果是()
int main(void)
{
printf("%s , %5.3s\n","computer","computer");
return 0;
}
A、computer , puter B、computer , com
C、computer , computer D、computer , compu.ter
2、以下程序的功能是()
#include<stdio.h>
int main(void)
{
FILE *fp;
long int n;
fp = fopen("wj.txt","rb");
fseek(fp , 0 , SEEK_END);
n = ftell(fp);
fclose(fp);
printf("%ld",n);
}
A、计算文件wj.txt内容的字节数
B、计算文件wj.txt的终止地址
C、计算文件wj.txt的起始地址
D、将文件指针定位到文件末尾
3、若输入B,则以下程序运行后的输出结果是()
int main(void)
{
char grade;
scanf("%c",&grade);
switch(grade)
{
case 'A':
printf(">=85");
case 'B':
case 'C':
printf(">=60");
case 'D':
printf("<60");
default:
printf("error.");
}
}
A、error.
B、>=60
C、>=85
D、>=60<60error.
4、以下程序的输出结果是()
int power(int x , int y);
int main(void)
{
float a = 2.6 , b = 3.4;
int p;
p = power((int)a , (int)b);
printf("%d\n",p);
return 0;
}
int power(int x , int y)
{
int i , p = 1;
for(i = y ; i > 0 ; i--)
p *= x;
return p;
}
A、27 B、9 C、8 D、81
5、以下程序段的输出结果是()
int p = 1234;
printf("%2d\n",p);
A、12 B、34 C、1234 D、提示出错、无结果
6、以下程序运行后的输出结果是()
int main(void)
{
int a;
char c = 10;
float f = 100.0;
double x;
a = f /= c *= (x=6.5);
printf("%d %d %3.1f %3.1f\n",a,c,f,x);
return 0;
}
A、1 65 1 6.5
B、1 65 1.5 6.5
C、1 65 1.0 6.5
D、2 65 1.5 6.5
7、以下程序的运行结果是()(主要考察运算符的优先级)
int main(void)
{
int x , y , z;
x = 0 , y = 1 , z = 3;
x = ++y <= x || x+y != z;
printf("%d,%d\n",x , y);
return 0;
}
A、1 ,2 B、1 , 1 C、0,2 D、0,1 答案A
8、以下语句的输出结果是()(主要考察逗号表达式)
int main(void)
{
int x = 10 , y = 3 , z;
printf("%d\n",z = (x%y , x/y));
return 0;
}
A、4 B、0 C、3 D、1 答案 C
逗号表达式的一般形式:
表达式1,表达式2,表达式3......表达式n
它的值为表达式n的值。
括号表达式要求按顺序逐一计算各个子表达式,并以最后一个子表达式的值作为括号表达式的结果,最后将该结果赋给变量。
printf("%d %d %d",(a,b,c),b,c);
则(a,b,c)是一个逗号表达式,它的值等于c的值。括号内的逗号不是参数间的分隔符而是逗号运算符。括号中的内容是一个整体,作为printf函数的第一个参数。
9、设有语句 char a = '\72'; 则变量a()
A、包含2个字符 B、说明不合法
C、包含1个字符 D、包含3个字符 答案 C
10、已知数据表A中每个元素距其最终位置不远,为节省时间,应该采用的算法是()
A、直接选择排序
B、堆排序
C、快速排序
D、直接插入排序 答案C
11、以下程序段的运行结果是()
int main(void)
{
char aa[][3] = {'a','b','c','d','e','f'};
char (*p)[3] = aa;
p++;
printf("%c\n",**p);
return 0;
}
A、b B、a C、c D、d 答案 D
12、在C语言中,下列()是合法的标示符。 答案C
A、4x B、1P234
C、COUNT D、short
13、C语言中的标识符只能有字母、数字和下划线三种字符组成,且第一个字符()B
A、必须为字母
B、必须为字母或下划线
C、必须不是字母或下划线
D、必须为下划线
14、下面程序的输出是()
int main(void)
{
enum team { my , your = 9 , his , her = his + 3};
printf("%d %d %d %d\n",my , your , his , her);
return 0;
}
A、0 9 10 13 B、0 8 11 12
C、0 8 10 12 D、0 8 12 9 答案A
15、以下程序
int main(int argc, char** argv)
{
int n = 0 , i;
for(i = 1 ; i < argc ; i++)
n = n * 10 + *argv[i]-'0';
printf("%d\n",n);
return 0;
}
经编译链接生成可执行文件tt.exe,若运行时输入以下命令行 tt 12 345 678,则程序运行的输出结果是()
A、136 B、12345 C、12345678 D、12 答案A
解析:主函数的第一个参数argc为整型参数,记下从命令行输入参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素分别指向命令行输入的各字符串。在本例中argc的值为4,argv[0]指向字符串“tt”,argv[1]指向字符串“12”,argv[2]指向字符串“345”, argv[3]指向字符串“678”。程序中,通过一个for循环,遍历了后面的三个参数字符串,每次将n自乘10,然后累加argv[i]-‘0’,即第i个参数字符串的首字符减去‘0’。 一个数字字符减去‘0’字符,即可得到这个数字字符的实际数值,因此三次循环的结果是让n的值变为136,故本题应该选择A。
16、若已定义:int a[9],*p = a; 并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()
A、++p B、a+1 C、p+1 D、a++ 答案D
17、若执行下面的程序时,从键盘上输入5,则输出是()
int main(int argc, char** argv)
{
int x;
scanf("%d",&x);
if(x++ > 5)
printf("%d\n",x);
else
printf("%d\n",x--);
return 0;
}
A、7 B、4 C、6 D、5 答案为C
18、已知有如下的变量定义,那么第二行的表达式的值是多少()(主要考察运算符的优先级)
int main(void)
{
int x = 3 , y = 4 , z = 5;
!(x + y) + z-1 && y + z/2;
return 0;
}
A、6 B、2 C、0 D、1 答案 D
19、下列运算符函数中,肯定不属于类Value的成员函数是()
A、Value operator/(Value);
B、Value operator-(Value,Value);B
C、Value operator+(Value);
D、Value operator*(int);
20、以下关于函数模板和模板函数的描述中,错误的是()
A、函数模板是定义重载函数的一种工具
B、模板函数在编译时不生成可执行代码 B
C、函数模板是一组函数的样板
D、模板函数是函数模板的一个实例
21、以下关于文件操作的描述中,不正确的是()
A、关闭文件的目的之一是释放内存中的文件对象
B、关闭文件的目的之一是保证将输出的数据写入硬盘文件
C、文件读写过程中,程序将直接与磁盘文件进行数据交换 C
D、打开文件的目的是使文件对象与磁盘文件建立联系
22、在重载一运算符时,若运算符函数的形参表中没有参数,则不可能的情况是()
A、该运算符函数是类的友元函数 A
B、该运算符函数有一个隐含的参数this
C、该运算符函数是类的成员函数
D、该运算符是一个单目运算符
23、下列哪一个是析构函数的特征()
A、析构函数定义只能在类体内
B、一个类中只能定义一个析构函数 B
C、析构函数名与类名不同
D、析构函数可以有一个或多个参数
24、数据流程图(DFD图)是()
A、软件概要设计的工具
B、软件详细设计的工具
C、结构化方法的需求分析工具 C
D、面向对象方法的需求分析工具
25、执行 int a = ( 1 , 3 , 11); int b = a; 后,b的值是多少?
A、11 A
B、1
C、3
D、15
E、{ 1 , 3 , 11}
26、设a=1,b=2,则(a++)+b 和 a+++b 这两个表达式的值分别是()
A、4 , 4
B、3 , 4
C、4 , 3
D、3 , 3 D
27、如果A类型是B类型的子类型,则A类型必然适应于B类型 B
A、错 B、对
28、条件语句不能作为多路分支语句。 B
A、对 B、错
29、下列while循环的次数是()
[cpp] view plaincopy
void main()
{
while(int i = 0)
i--;
}
A、无限 B
B、0
C、1
D、5
30、关于纯虚函数,下列表述正确的是()
A、派生类必须实现基类的纯虚函数
B、纯虚函数的声明总是以”=0“结束 B
C、纯虚函数是给出实现版本(即无函数体定义)的虚函数
D、含有纯虚函数的类一定是派生类
31、下列静态数据成员的特性中,()是错误的
A、引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符
B、说明静态数据成员时前边要加关键字static来修饰
C、静态数据成员在类体外进行初始化
D、静态数据成员不是所有对象所共有的 D
32、关键词explicit的作用是什么?
A、它使一个默认构造函数的声明变为强制性的
B、它可以使一个变量存在主内存中而不是处理器的缓存中
C、它可以防止单参数的构造函数被用于隐式转换 C
33、下列输出字符‘A’的方法中,()是错误的
A、char A = 'A'; cout<<A;
B、cout<<'A';
C、cout<<put('A');
D、cout.put('A'); C
34、对于int *pa[5]; 的描述,()是正确的。A
A、pa是一个具有5个元素的指针数组,每个元素是一个int类型的指针;
B、pa[5]表示某个数组的第5个元素的值;
C、pa是一个指向数组的指针,所指向的数组是5个int类型的元素;
D、pa是一个指向某个数组中第5个元素的指针,该元素是int类型的变量;
35、C++中关于函数不正确的是()
A、函数调用语句必须写在函数定义的前面 A
B、函数可以没有返回值
C、函数声明就是原型声明
D、不允许嵌套定义
A应该修改为:函数调用语句必须写在函数声明的前面
36、若二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为()
A、n-1
B、n+1 B
C、2n
D、n/2
37、在多文件结构的程序中,通常把含有main()函数的文件称为()
A、主文件 A
B、头文件
C、实现文件
D、程序文件
38、在以下一组运算符中,优先级最高的运算符是()
A、 && A
B、 =
C、 <=
D、 %
39、关于read()函数的下列描述中,()是对的。
A、该函数只能从键盘输入中获取字符串
B、该函数只能按规定读取所指定的字符数
C、该函数只能用于文本文件的操作中
D、该函数所获取的字符多少是不受限制的 D
40、有如下程序:
#include<iostream>
using namespace std;
class MyClass
{
public:
MyClass(int i = 0)
{
cout<<i;
}
MyClass(const MyClass &x)
{
cout<<2;
}
MyClass& operator=(const MyClass &x)
{
cout<<3;
return *this;
}
~MyClass()
{
cout<<4;
}
};
int main()
{
MyClass obj1(1) , obj2(2) , obj3(obj1);
return 0;
}
运行时的输出结果是() C
A、11214444
B、11114444
C、122444
D、11214445
E、121444
41、以下程序段的输出结果是()
#include<iostream>
using namespace std;
class A
{
public:
A(int i )
{
cout<<"A ";
}
~A() { }
};
class B
{
public:
B(int j )
{
cout<<"B ";
}
~B() { }
};
class C
{
public:
C(int k )
{
cout<<"C ";
}
~C() { cout<<"~C "; }
};
class D : public C
{
public:
D(int i , int j , int k ) : a(i) , b(j) , C(k)
{
cout<<"D ";
}
~D() { cout<<"~D "; }
private:
B b;
A a;
};
int main()
{
C *pc = new D(1 , 2 , 3);
delete pc;
return 0;
}
A、A B C D ~D
B、A B C D ~C
C、C B A D ~D
D、C B A D ~C
42、关于运算符重载,下列说法正确的是()
A、重载时,运算符的结合性可以改变
B、重载时,运算符的优先级可以改变
C、重载时,运算符的功能可以改变
D、重载时,运算符的操作数个数可以改变
43、下面哪一个不是由标准模板库提供的合法的哈希表?
A、hash_multiset
B、hash_table
C、hash_set
D、hash_multimap
E、hash_map
44、int x = 2 , y = 3 , z = 4; 则表达式!x+y>z的值为()
A、1
B、FALSE
C、TRUE
D、0
45、下面的程序段的输出结果是()
[cpp] view plaincopy
void main()
{
char *x = "abcd";
x += 2;
cout<<x;
}
A、指针变量x的地址
B、字符c的地址
C、c
D、cd
46、下面对于友元函数的描述正确的是()
A、友元函数不能访问类的私有成员
B、友元函数是类的成员
C、友元函数的实现必须在类的内部定义
D、友元函数破坏了类的封装性和隐藏性
47、内存释放的原则是谁申请谁释放()
A、错 B、对
48、已知int a , *pa=&a; 输出指针pa十进制的地址值的方法是()
A、cout<<*pa;
B、cout<<long(&pa);
C、cout<<pa;
D、cout<<&pa;
49、被非静态成员函数访问的类的数据成员()
A、不可能是类的静态数据成员
B、只能是类的非静态数据成员
C、只能是类的静态数据成员
D、可以是非静态数据成员或静态数据成员
50、有如下程序
[cpp] view plaincopy
class Name
{
char name[20];
public:
Name()
{
strcpy(name , "");
cout<<'?';
}
Name(char *fname)
{
strcpy(name , fname);
cout<<'?';
}
};
void main()
{
Name names[3] = {Name("张三") , Name("李四") };
}
运行此程序输出符号?的个数是()
A、1
B、2
C、0
D、3