多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
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 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 逗号表达式的一般形式: 表达式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个字符 10、已知数据表A中每个元素距其最终位置不远,为节省时间,应该采用的算法是() A、直接选择排序 B、堆排序 C、快速排序 D、直接插入排序 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 12、在C语言中,下列()是合法的标示符。 A、4x                   B、1P234 C、COUNT            D、short 13、C语言中的标识符只能有字母、数字和下划线三种字符组成,且第一个字符() 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 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 解析:主函数的第一个参数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++ 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 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 19、下列运算符函数中,肯定不属于类Value的成员函数是() A、Value operator/(Value); B、Value operator-(Value,Value); C、Value operator+(Value); D、Value operator*(int); 20、以下关于函数模板和模板函数的描述中,错误的是() A、函数模板是定义重载函数的一种工具 B、模板函数在编译时不生成可执行代码 C、函数模板是一组函数的样板 D、模板函数是函数模板的一个实例 21、以下关于文件操作的描述中,不正确的是() A、关闭文件的目的之一是释放内存中的文件对象 B、关闭文件的目的之一是保证将输出的数据写入硬盘文件 C、文件读写过程中,程序将直接与磁盘文件进行数据交换 D、打开文件的目的是使文件对象与磁盘文件建立联系 22、在重载一运算符时,若运算符函数的形参表中没有参数,则不可能的情况是() A、该运算符函数是类的友元函数 B、该运算符函数有一个隐含的参数this C、该运算符函数是类的成员函数 D、该运算符是一个单目运算符 23、下列哪一个是析构函数的特征() A、析构函数定义只能在类体内 B、一个类中只能定义一个析构函数 C、析构函数名与类名不同 D、析构函数可以有一个或多个参数 24、数据流程图(DFD图)是() A、软件概要设计的工具 B、软件详细设计的工具 C、结构化方法的需求分析工具 D、面向对象方法的需求分析工具 25、执行 int a = ( 1 , 3 , 11); int b = a; 后,b的值是多少? A、11 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 27、如果A类型是B类型的子类型,则A类型必然适应于B类型 A、错                B、对 28、条件语句不能作为多路分支语句。 A、对                B、错 29、下列while循环的次数是() ~~~ void main() { while(int i = 0) i--; } ~~~ A、无限 B、0 C、1 D、5 30、关于纯虚函数,下列表述正确的是() A、派生类必须实现基类的纯虚函数 B、纯虚函数的声明总是以”=0“结束 C、纯虚函数是给出实现版本(即无函数体定义)的虚函数 D、含有纯虚函数的类一定是派生类 31、下列静态数据成员的特性中,()是错误的 A、引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符 B、说明静态数据成员时前边要加关键字static来修饰 C、静态数据成员在类体外进行初始化 D、静态数据成员不是所有对象所共有的 32、关键词explicit的作用是什么? A、它使一个默认构造函数的声明变为强制性的 B、它可以使一个变量存在主内存中而不是处理器的缓存中 C、它可以防止单参数的构造函数被用于隐式转换 33、下列输出字符‘A’的方法中,()是错误的 A、char A = 'A';   cout<<A; B、cout<<'A'; C、cout<<put('A'); D、cout.put('A'); 34、对于int *pa[5]; 的描述,()是正确的。 A、pa是一个具有5个元素的指针数组,每个元素是一个int类型的指针; B、pa[5]表示某个数组的第5个元素的值; C、pa是一个指向数组的指针,所指向的数组是5个int类型的元素; D、pa是一个指向某个数组中第5个元素的指针,该元素是int类型的变量; 35、C++中关于函数不正确的是() A、函数调用语句必须写在函数定义的前面 B、函数可以没有返回值 C、函数声明就是原型声明 D、不允许嵌套定义 A应该修改为:函数调用语句必须写在函数声明的前面 36、若二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为() A、n-1 B、n+1 C、2n D、n/2 37、在多文件结构的程序中,通常把含有main()函数的文件称为() A、主文件 B、头文件 C、实现文件 D、程序文件 38、在以下一组运算符中,优先级最高的运算符是() A、 && B、 = C、 <= **D、 %** 39、关于read()函数的下列描述中,()是对的。 A、该函数只能从键盘输入中获取字符串 B、该函数只能按规定读取所指定的字符数 C、该函数只能用于文本文件的操作中 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; } ~~~ 运行时的输出结果是() 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、下面的程序段的输出结果是() ~~~ 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、有如下程序 ~~~ 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 51、假定AA是一个类,AA* abc() const是该类的一个成员函数的原型,若该函数返回this值,当用x.abc()调用该成员函数后,x的值() A、可能被改变 B、已经被改变 C、收到函数调用的影响 D、不变 52、设散列表的存储空间大小为19,所用散列函数为h(key)=key mod 19,用开地址线性探查法解决碰撞。散列表的当前状态如下:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190 194 768 559 582 393 208.现要将关键码值75插入到该散列表中,其地址应该为() A、1 B、5 C、11 D、15 53、以下定义语句中,错误的是() A、char s[10] = "www"; B、int x[] = { 0 }; C、int k = 5 , n[k]; D、char a[2][2]={"x","y"}; 54、关于构造函数的说法,不正确的是() A、没有返回值 B、其名与类名完全相同 C、没有定义构造函数时,系统将不会调用它 D、它在对象被创建时由系统自动调用 55、下面程序段的运行结果是() ~~~ class point { public: static int number; public: point() { number++; } ~point() { number--; } }; int point::number = 0; void main() { point *ptr; point A , B; { point *ptr_point = new point[3]; ptr = ptr_point; } point c; delete []ptr; cout<<point::number<<endl; } ~~~ A、7 B、4 C、6 D、3 56、int *p[4]与选择项()中的说明等价。 A、int p[4] B、int *p C、int (*p)[4] D、int *(p[4]) 57、设a=2,b=3,c=2;计算 a+=b*=(++b-c++)中的a、b、c的值() A、10、8、3 B、8、6、2 C、5、3、3 D、2、4、2 58、有如下程序 ~~~ class BASE { char c; public: BASE(char n) : c(n) { } virtual ~BASE() { cout<<c; } }; class DERIVED : public BASE { char c; public: DERIVED(char n) : BASE(n+1) , c(n) { } ~DERIVED() { cout<<c; } }; int main(void) { DERIVED('X'); return 0; } ~~~ 执行上面的程序将输出 A、Y B、XY C、X D、YX 59、下面关于面向对象语言的基本要素的描述中,正确的是() A、继承性和聚合性 B、多态性和继承性 C、封装性和继承性 D、封装性和重载性 60、操作子本身是一个对象,它可以直接被提取符或插入符操作() A、对                                 B、错 61、下面关于对象数组的描述中,错误的是() A、对象数组的下标是从0开始的 B、对象数组的数组名是一个常量指针 C、对象数组的每个元素是同一个类的对象 D、对象数组只能赋初值,而不能赋值 62、假定p是具有int **类型的指针变量,则给p赋值的正确语句为() A、p = new int[10]; B、p = new int; C、p = new int *; D、p = new int ** 63、下面程序的运行结果是() ~~~ union { int i; char x[2]; }a; int main(void) { a.x[0] = 10; a.x[1] = 1; cout<<a.i<<endl; return 0; } ~~~ A、266 B、0 C、1 D、256 64、下面程序的输出结果是() ~~~ class Sample { friend long fun(Sample s) { if(s.x < 2) return 1; else return s.x * fun(Sample(s.x-1)); } public: Sample(long a) { x = a; } private: long x; }; int main(void) { int sum = 0; for(int i = 0 ; i < 4 ; i++) sum += fun(Sample(i)); cout<<sum<<endl; return 0; } ~~~ A、34 B、10 C、16 D、12 65、在横线处填上适当的语句,使下面的程序的执行结果是19 24 30 37 45() ~~~ int fun(int a) { static int x = 10; int y = 1; x += a; a++; y++; return (x+y+a); } int main(void) { int i = 3; while(i < 8) __________; cout<<endl; return 0; } ~~~ A、cout<<fun(i++)<<" "; B、cout<<fun(i)<<" , "; C、cout<<fun(i)<<" "; 66、下面不能把字符串:Hello!赋给数组b的语句是() A、char b[10] ; b = "Hello!"; B、char b[10] ; strcpy(b , "Hello!"); C、char b[10]  = "Hello!"; D、char b[10] = {'H','e','l','l','o','!'}; 只能在定义的时候使用=来初始化, 不能单独赋值。 选A,b为数组名,它是地址,是一个常量,不能被赋值。 67、若函数fun的函数头为: int fun(int i , int j) 且函数指针变量p指向函数fun的赋值语句是() A、p = fun(i , j); B、p = fun; C、p = * fun; D、p = &fun; 68、以下说法中正确的是() A、#define 是C语句,而 printf不是 B、#define 和 printf 都是C语句 C、printf 是C语句,但 #define 不是 D、#define 和 printf 都不是C语句 69、若有以下定义: int x = 2 , y = 3; float i; 则以下符合C语言语法的表达式是() A、x = (y == 1) B、i%(-3) C、x = x*3 = 2 D、i = float(x) 70、有以下程序 ~~~ void main() { int b[3][3] = {0,1,2,0,1,2,0,1,2}; int i , j , t = 1; for(i = 0 ; i < 3 ; ++i) { for(j = i ; j <= 1 ; ++j) t += b[i][b[j][i]]; } printf("%d\n",t); } ~~~ 程序运行后的输出结果是() A、1 B、9 C、3 D、10 E、2 71、在下面的循环语句中内存循环体s语句的执行总次数为() for(int i = 0; i < n ; i++ ) for(int j = i ; j < n; j++) s; A、n^2 B、n(n+1)/2 C、(n+1)/2 D、n(n-1)/2 72、类example的析构函数为() A、~example(); B、example(); C、example() D、~example() 73、关于保护成员的说法正确的是() A、在派生类中是私有的 B、在派生类中仍然是保护的 C、在派生类中是公有的 D、具有私有成员和公有成员的双重角色 74、计算函数参数顺序引起的二义性完全是由不同的编译系统决定的。 A、对 B、错 75、若有语句int a[10] = {0,1,2,3,4,5,6,7,8,9}, *p = a; 则()不是对a数组元素的正确引用。 A、*(*(a+i)) B、p[i] C、a[p-a] D、*(&a[i]) 76、下列表达式中, ()是合法的。已知: double m = 3.2 ; int n = 3; A、!m *= n B、(m+n)|n C、m = 5 , n = 3.1 , m+n D、m<<2 77、若有以下说明: int a[12] = {1,2,3,4,5,6,7,8,9,10,11,12};char c = 'a' , d , g; 则数值为4的表达式是() A、a['d'-'c'] B、a[g-c] C、a['d'-c] D、a[4] 78、read() 和 write()函数可以读写文本文件,也可以读写二进制文件。 A、错 B、对 79、在保护继承中,对于派生类的访问同于公有继承,而对于派生类的对象的访问同于私有继承。 A、错 B、对 80、设有以下结构体定义及其初始化,表达式p->score的结果是() ~~~ struct node { int num; float score; }stu[2]={101,91.5,102,92.5} , *p = stu; ~~~ A、102 B、91.5 C、92.5 D、101 81、以下程序的输出结果是() ~~~ #define f(X) X*X void main() { int a = 6 , b = 2 , c; c = f(a)/f(b); printf("%d\n",c); } ~~~ A、18 B、9 C、36 D、6 82、如果a = 1 , b = 2 c = 3 , d = 4,则条件表达式a<b?a:c<d?c:d的值为() A、1 B、3 C、2 D、4 83、以下四个选项中,均是正确的数值常量或字符串常量的选项是() A、+001,0Xabcd,2e2,50 B、3,011,0XFF00,0a C、0.0,0f,8.9e,& D、“a”,3.9E-2.5,1e1,‘\’ 84、以下四个选项中,均是合法转义字符的选项是() A、\018,\f,xab B、\\0,101,x1f C、\,\\,\n D、\,\017,\ 85、已知各变量的类型说明如下: ~~~ int i = 8 , k , a , b; unsigned long w = 5; double x = 1.42 , y = 5.2; ~~~ 则以下符合C语言语法的表达式是() A、 a = a*3 = 2 B、x%(-3) C、y = float(i) D、a += a -= (b=4)*(a=3) 86、已知二进制数a是00101101,如果想通过整型变量b与a做异或运算,使变量a的高4位取反,低4位不变,则二进制数b的值应该是() A、11111111 B、0 C、1111 D、11110000 87、下列四组字符串中都可以用作C语言程序标识符的一组是() A、str_l,Cpp,pow,while B、i\am,one_half,start$it,3pai C、Pxq,My->book,line#,His.age D、print,_3d,oodb,aBc 88、若执行fopen()发生错误,函数的返回值是() A、地址值 B、NULL C、EOF D、1 89、若调用一个函数,且此函数中无return语句,则正确的说法是() A、能返回一个用户所希望的函数值 B、返回一个不确定的值 C、返回若干个系统默认值 D、没有返回值 90、长度相同但格式不同的2种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其它的规定均相同,则它们可表示的数的范围和精度为() A、前者可表示的数的范围大且精度高 B、两者可表示的数的范围和精度相同 C、前者可表示的数的范围大但精度低 D、后者可表示的数的范围大且精度高 91、单继承情况下,派生类中对基类成员的访问也会出现二义性 A、错                        B、对 92、关系数据库模型是以下哪种方式组织数据结构 A、二维表 B、网状 C、文本 D、树状 93、()命令可以查看视图的创建语句 A、SHOW VIEW B、SHOW CREATE VIEW C、SELECT VIEW D、DISPLAY VIEW 94、正则表达式中的*代表的是() A、0个或多个匹配 B、1个或多个匹配 C、0 95、预处理过程是编译过程之后、连接过程之前进行的 A、对                           B、错 96、下面程序的输出结果是() ~~~ int main(void) { char x = 0xFF; printf("%d\n",x--); return 0; } ~~~ A、-1              B、0             C、255             D、256 printf("%d \n",x--)函数参数首先传递的是x--这个,但是它是先返回值才减小,因此x传递过去时候仍然是0xff。 0xff当作为无符号数的时候,数字为255,作为带符号数时候,是-1。char类型是带符号的,因此是-1。 97、下面程序的输出结果是() ~~~ int main(void) { printf("%d\n",12&012); return 0; } ~~~ A、12              B、0             C、8                D、-1 012=1010;(C语言中数字前缀0表示八进制) 012是8进制数,它的值为10,二进制是0000 1010 12是十进制,它的二进制是0000 1100 两个数相与(&),得到0000 1000,即8