C/C++笔试题目大全
生活随笔
收集整理的這篇文章主要介紹了
C/C++笔试题目大全
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、以下程序的運行結(jié)果是()
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內(nèi)容的字節(jié)數(shù)
B、計算文件wj.txt的終止地址
C、計算文件wj.txt的起始地址
D、將文件指針定位到文件末尾
3、若輸入B,則以下程序運行后的輸出結(jié)果是()
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、以下程序的輸出結(jié)果是()
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、 以下程序段的輸出結(jié)果是()
int p = 1234;printf("%2d\n",p); A、12 ????????????????????? B、34 ???????????????????????????C、1234 ??????????????????????????????? D、提示出錯、無結(jié)果
6、 以下程序運行后的輸出結(jié)果是()
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、以下程序的運行結(jié)果是() (主要考察運算符的優(yōu)先級)
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、以下語句的輸出結(jié)果是() (主要考察逗號表達(dá)式)
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
逗號表達(dá)式的一般形式:
表達(dá)式1,表達(dá)式2,表達(dá)式3......表達(dá)式n
它的值為表達(dá)式n的值。
括號表達(dá)式要求按順序逐一計算各個子表達(dá)式,并以最后一個子表達(dá)式的值作為括號表達(dá)式的結(jié)果,最后將該結(jié)果賦給變量。
printf("%d %d %d",(a,b,c),b,c);
則(a,b,c)是一個逗號表達(dá)式,它的值等于c的值。括號內(nèi)的逗號不是參數(shù)間的分隔符而是逗號運算符。括號中的內(nèi)容是一個整體,作為printf函數(shù)的第一個參數(shù)。
9、設(shè)有語句? char a = '\72'; 則變量a()
A、包含2個字符????????????????????????????????????????? B、說明不合法
C、包含1個字符 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? D、包含3個字符
10、已知數(shù)據(jù)表A中每個元素距其最終位置不遠(yuǎn),為節(jié)省時間,應(yīng)該采用的算法是()
A、直接選擇排序
B、堆排序
C、快速排序
D、直接插入排序
11、以下程序段的運行結(jié)果是()
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語言中,下列()是合法的標(biāo)示符。
A、4x?????????????????? B、1P234
C、COUNT??????????? D、short
13、C語言中的標(biāo)識符只能有字母、數(shù)字和下劃線三種字符組成,且第一個字符()
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; } 經(jīng)編譯鏈接生成可執(zhí)行文件tt.exe,若運行時輸入以下命令行?? tt?? 12?? 345?? 678,則程序運行的輸出結(jié)果是()
A、136????????????? B、12345????????????? C、12345678?????????????? D、12
解析:主函數(shù)的第一個參數(shù)argc為整型參數(shù),記下從命令行輸入?yún)?shù)的個數(shù);第二個參數(shù)argv是一個字符型的指針數(shù)組,它的每一個元素分別指向命令行輸入的各字符串。在本例中argc的值為4,argv[0]指向字符串“tt”,argv[1]指向字符串“12”,argv[2]指向字符串“345”, argv[3]指向字符串“678”。程序中,通過一個for循環(huán),遍歷了后面的三個參數(shù)字符串,每次將n自乘10,然后累加argv[i]-‘0’,即第i個參數(shù)字符串的首字符減去‘0’。? 一個數(shù)字字符減去‘0’字符,即可得到這個數(shù)字字符的實際數(shù)值,因此三次循環(huán)的結(jié)果是讓n的值變?yōu)?36,故本題應(yīng)該選擇A。
16、若已定義:int a[9],*p = a; 并在以后的語句中未改變p的值,不能表示a[1]地址的表達(dá)式是()
A、++p??????????? B、a+1??????????? C、p+1??????????? D、a++
17、若執(zhí)行下面的程序時,從鍵盤上輸入5,則輸出是()
int main(int argc, char** argv) {int x;scanf("%d",&x);if(x++ > 5)printf("%d\n",x);elseprintf("%d\n",x--);return 0; } A、7????????????? ?? B、4?????????????????? C、6????????????????? D、5
18、 已知有如下的變量定義,那么第二行的表達(dá)式的值是多少() (主要考察運算符的優(yōu)先級)
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、 下列運算符函數(shù)中,肯定不屬于類Value的成員函數(shù)是()
A、Value operator/(Value);
B、Value operator-(Value,Value);
C、Value operator+(Value);
D、Value operator*(int);
20、以下關(guān)于函數(shù)模板和模板函數(shù)的描述中,錯誤的是()
A、函數(shù)模板是定義重載函數(shù)的一種工具
B、模板函數(shù)在編譯時不生成可執(zhí)行代碼
C、函數(shù)模板是一組函數(shù)的樣板
D、模板函數(shù)是函數(shù)模板的一個實例
21、以下關(guān)于文件操作的描述中,不正確的是()
A、關(guān)閉文件的目的之一是釋放內(nèi)存中的文件對象
B、關(guān)閉文件的目的之一是保證將輸出的數(shù)據(jù)寫入硬盤文件
C、文件讀寫過程中,程序?qū)⒅苯优c磁盤文件進(jìn)行數(shù)據(jù)交換
D、打開文件的目的是使文件對象與磁盤文件建立聯(lián)系
22、在重載一運算符時,若運算符函數(shù)的形參表中沒有參數(shù),則不可能的情況是()
A、該運算符函數(shù)是類的友元函數(shù)
B、該運算符函數(shù)有一個隱含的參數(shù)this
C、該運算符函數(shù)是類的成員函數(shù)
D、該運算符是一個單目運算符
23、下列哪一個是析構(gòu)函數(shù)的特征()
A、析構(gòu)函數(shù)定義只能在類體內(nèi)
B、一個類中只能定義一個析構(gòu)函數(shù)
C、析構(gòu)函數(shù)名與類名不同
D、析構(gòu)函數(shù)可以有一個或多個參數(shù)
24、數(shù)據(jù)流程圖(DFD圖)是()
A、軟件概要設(shè)計的工具
B、軟件詳細(xì)設(shè)計的工具
C、結(jié)構(gòu)化方法的需求分析工具
D、面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?/span>
25、執(zhí)行 int a = ( 1 , 3 , 11); int b = a; 后,b的值是多少?
A、11
B、1
C、3
D、15
E、{ 1 , 3 , 11}
26、設(shè)a=1,b=2,則(a++)+b 和 a+++b 這兩個表達(dá)式的值分別是()
A、4 , 4
B、3 , 4
C、4 , 3
D、3 , 3
27、如果A類型是B類型的子類型,則A類型必然適應(yīng)于B類型
A、錯??????????????? B、對
28、條件語句不能作為多路分支語句。
A、對??????????????? B、錯
29、下列while循環(huán)的次數(shù)是()
void main() {while(int i = 0)i--; } A、無限
B、0
C、1
D、5
30、關(guān)于純虛函數(shù),下列表述正確的是()
A、派生類必須實現(xiàn)基類的純虛函數(shù)
B、純虛函數(shù)的聲明總是以”=0“結(jié)束
C、純虛函數(shù)是給出實現(xiàn)版本(即無函數(shù)體定義)的虛函數(shù)
D、含有純虛函數(shù)的類一定是派生類
31、下列靜態(tài)數(shù)據(jù)成員的特性中,()是錯誤的
A、引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運算符
B、說明靜態(tài)數(shù)據(jù)成員時前邊要加關(guān)鍵字static來修飾
C、靜態(tài)數(shù)據(jù)成員在類體外進(jìn)行初始化
D、靜態(tài)數(shù)據(jù)成員不是所有對象所共有的
32、關(guān)鍵詞explicit的作用是什么?
A、它使一個默認(rèn)構(gòu)造函數(shù)的聲明變?yōu)閺娭菩缘?br /> B、它可以使一個變量存在主內(nèi)存中而不是處理器的緩存中
C、它可以防止單參數(shù)的構(gòu)造函數(shù)被用于隱式轉(zhuǎn)換
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個元素的指針數(shù)組,每個元素是一個int類型的指針;
B、pa[5]表示某個數(shù)組的第5個元素的值;
C、pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int類型的元素;
D、pa是一個指向某個數(shù)組中第5個元素的指針,該元素是int類型的變量;
35、C++中關(guān)于函數(shù)不正確的是()
A、函數(shù)調(diào)用語句必須寫在函數(shù)定義的前面
B、函數(shù)可以沒有返回值
C、函數(shù)聲明就是原型聲明
D、不允許嵌套定義
A應(yīng)該修改為:函數(shù)調(diào)用語句必須寫在函數(shù)聲明的前面
36、若二叉樹中有n個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)為()
A、n-1
B、n+1
C、2n
D、n/2
37、在多文件結(jié)構(gòu)的程序中,通常把含有main()函數(shù)的文件稱為()
A、主文件
B、頭文件
C、實現(xiàn)文件
D、程序文件
38、在以下一組運算符中,優(yōu)先級最高的運算符是()
A、 &&
B、 =
C、 <=
D、 %
39、關(guān)于read()函數(shù)的下列描述中,()是對的。
A、該函數(shù)只能從鍵盤輸入中獲取字符串
B、該函數(shù)只能按規(guī)定讀取所指定的字符數(shù)
C、該函數(shù)只能用于文本文件的操作中
D、該函數(shù)所獲取的字符多少是不受限制的
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; } 運行時的輸出結(jié)果是()
A、11214444
B、11114444
C、122444
D、11214445
E、121444
41、以下程序段的輸出結(jié)果是()
#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、關(guān)于運算符重載,下列說法正確的是()
A、重載時,運算符的結(jié)合性可以改變
B、重載時,運算符的優(yōu)先級可以改變
C、重載時,運算符的功能可以改變
D、重載時,運算符的操作數(shù)個數(shù)可以改變
43、下面哪一個不是由標(biāo)準(zhǔn)模板庫提供的合法的哈希表?
A、hash_multiset
B、hash_table
C、hash_set
D、hash_multimap
E、hash_map
44、int x = 2 , y = 3 , z = 4; 則表達(dá)式!x+y>z的值為()
A、1
B、FALSE
C、TRUE
D、0
45、下面的程序段的輸出結(jié)果是()
void main() {char *x = "abcd";x += 2;cout<<x; } A、指針變量x的地址
B、字符c的地址
C、c
D、cd
46、下面對于友元函數(shù)的描述正確的是()
A、友元函數(shù)不能訪問類的私有成員
B、友元函數(shù)是類的成員
C、友元函數(shù)的實現(xiàn)必須在類的內(nèi)部定義
D、友元函數(shù)破壞了類的封裝性和隱藏性
47、內(nèi)存釋放的原則是誰申請誰釋放()
A、錯??????????????????????? B、對
48、已知int a , *pa=&a; 輸出指針pa十進(jìn)制的地址值的方法是()
A、cout<<*pa;
B、cout<<long(&pa);
C、cout<<pa;
D、cout<<&pa;
49、被非靜態(tài)成員函數(shù)訪問的類的數(shù)據(jù)成員()
A、不可能是類的靜態(tài)數(shù)據(jù)成員
B、只能是類的非靜態(tài)數(shù)據(jù)成員
C、只能是類的靜態(tài)數(shù)據(jù)成員
D、可以是非靜態(tài)數(shù)據(jù)成員或靜態(tài)數(shù)據(jù)成員
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("李四") }; } 運行此程序輸出符號?的個數(shù)是()
A、1
B、2
C、0
D、3
51、假定AA是一個類,AA* abc() const是該類的一個成員函數(shù)的原型,若該函數(shù)返回this值,當(dāng)用x.abc()調(diào)用該成員函數(shù)后,x的值()
A、可能被改變
B、已經(jīng)被改變
C、收到函數(shù)調(diào)用的影響
D、不變
52、設(shè)散列表的存儲空間大小為19,所用散列函數(shù)為h(key)=key mod 19,用開地址線性探查法解決碰撞。散列表的當(dāng)前狀態(tài)如下: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.現(xiàn)要將關(guān)鍵碼值75插入到該散列表中,其地址應(yīng)該為()
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、關(guān)于構(gòu)造函數(shù)的說法,不正確的是()
A、沒有返回值
B、其名與類名完全相同
C、沒有定義構(gòu)造函數(shù)時,系統(tǒng)將不會調(diào)用它
D、它在對象被創(chuàng)建時由系統(tǒng)自動調(diào)用
55、下面程序段的運行結(jié)果是()
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、設(shè)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; } 執(zhí)行上面的程序?qū)⑤敵?
A、Y
B、XY
C、X
D、YX
59、下面關(guān)于面向?qū)ο笳Z言的基本要素的描述中,正確的是()
A、繼承性和聚合性
B、多態(tài)性和繼承性
C、封裝性和繼承性
D、封裝性和重載性
60、操作子本身是一個對象,它可以直接被提取符或插入符操作()
A、對???????????????????????????????? B、錯
61、下面關(guān)于對象數(shù)組的描述中,錯誤的是()
A、對象數(shù)組的下標(biāo)是從0開始的
B、對象數(shù)組的數(shù)組名是一個常量指針
C、對象數(shù)組的每個元素是同一個類的對象
D、對象數(shù)組只能賦初值,而不能賦值
62、假定p是具有int **類型的指針變量,則給p賦值的正確語句為()
A、p = new int[10];
B、p = new int;
C、p = new int *;
D、p = new int **
63、 下面程序的運行結(jié)果是()
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、 下面程序的輸出結(jié)果是()
class Sample {friend long fun(Sample s){if(s.x < 2)return 1;elsereturn 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、在橫線處填上適當(dāng)?shù)恼Z句,使下面的程序的執(zhí)行結(jié)果是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!賦給數(shù)組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為數(shù)組名,它是地址,是一個常量,不能被賦值。
67、若函數(shù)fun的函數(shù)頭為:
?int fun(int i , int j)
且函數(shù)指針變量p指向函數(shù)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語言語法的表達(dá)式是()
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); } 程序運行后的輸出結(jié)果是()
A、1
B、9
C、3
D、10
E、2
71、在下面的循環(huán)語句中內(nèi)存循環(huán)體s語句的執(zhí)行總次數(shù)為()
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的析構(gòu)函數(shù)為()
A、~example();
B、example();
C、example()
D、~example()
73、關(guān)于保護(hù)成員的說法正確的是()
A、在派生類中是私有的
B、在派生類中仍然是保護(hù)的
C、在派生類中是公有的
D、具有私有成員和公有成員的雙重角色
74、計算函數(shù)參數(shù)順序引起的二義性完全是由不同的編譯系統(tǒng)決定的。
A、對
B、錯
75、若有語句int a[10] = {0,1,2,3,4,5,6,7,8,9}, *p = a; 則()不是對a數(shù)組元素的正確引用。
A、*(*(a+i))
B、p[i]
C、a[p-a]
D、*(&a[i])
76、下列表達(dá)式中, ()是合法的。已知: 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;
則數(shù)值為4的表達(dá)式是()
A、a['d'-'c']
B、a[g-c]
C、a['d'-c]
D、a[4]
78、read() 和 write()函數(shù)可以讀寫文本文件,也可以讀寫二進(jìn)制文件。
A、錯
B、對
79、在保護(hù)繼承中,對于派生類的訪問同于公有繼承,而對于派生類的對象的訪問同于私有繼承。
A、錯
B、對
80、設(shè)有以下結(jié)構(gòu)體定義及其初始化,表達(dá)式p->score的結(jié)果是()
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、以下程序的輸出結(jié)果是()
#define f(X) X*Xvoid 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,則條件表達(dá)式a<b?a:c<d?c:d的值為()
A、1
B、3
C、2
D、4
83、以下四個選項中,均是正確的數(shù)值常量或字符串常量的選項是()
A、+001,0Xabcd,2e2,50
B、3,011,0XFF00,0a
C、0.0,0f,8.9e,&
D、“a”,3.9E-2.5,1e1,‘\’
84、以下四個選項中,均是合法轉(zhuǎn)義字符的選項是()
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語言語法的表達(dá)式是()
A、 a = a*3 = 2
B、x%(-3)
C、y = float(i)
D、a += a -= (b=4)*(a=3)
86、已知二進(jìn)制數(shù)a是00101101,如果想通過整型變量b與a做異或運算,使變量a的高4位取反,低4位不變,則二進(jìn)制數(shù)b的值應(yīng)該是()
A、11111111
B、0
C、1111
D、11110000
87、下列四組字符串中都可以用作C語言程序標(biāo)識符的一組是()
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、若執(zhí)行fopen()發(fā)生錯誤,函數(shù)的返回值是()
A、地址值
B、NULL
C、EOF
D、1
89、若調(diào)用一個函數(shù),且此函數(shù)中無return語句,則正確的說法是()
A、能返回一個用戶所希望的函數(shù)值
B、返回一個不確定的值
C、返回若干個系統(tǒng)默認(rèn)值
D、沒有返回值
90、長度相同但格式不同的2種浮點數(shù),假設(shè)前者階碼長、尾數(shù)短,后者階碼短、尾數(shù)長,其它的規(guī)定均相同,則它們可表示的數(shù)的范圍和精度為()
A、前者可表示的數(shù)的范圍大且精度高
B、兩者可表示的數(shù)的范圍和精度相同
C、前者可表示的數(shù)的范圍大但精度低
D、后者可表示的數(shù)的范圍大且精度高
91、單繼承情況下,派生類中對基類成員的訪問也會出現(xiàn)二義性
A、錯??????????????????????? B、對
92、關(guān)系數(shù)據(jù)庫模型是以下哪種方式組織數(shù)據(jù)結(jié)構(gòu)
A、二維表
B、網(wǎng)狀
C、文本
D、樹狀
93、()命令可以查看視圖的創(chuàng)建語句
A、SHOW VIEW
B、SHOW CREATE VIEW
C、SELECT VIEW
D、DISPLAY VIEW
94、正則表達(dá)式中的*代表的是()
A、0個或多個匹配
B、1個或多個匹配
C、0
95、預(yù)處理過程是編譯過程之后、連接過程之前進(jìn)行的
A、對?????????????????????????? B、錯
96、下面程序的輸出結(jié)果是()
int main(void) {char x = 0xFF;printf("%d\n",x--);return 0; } A、-1 ? ? ? ? ? ? ?B、0 ? ? ? ? ? ? C、255 ? ? ? ? ? ? D、256
printf("%d \n",x--)函數(shù)參數(shù)首先傳遞的是x--這個,但是它是先返回值才減小,因此x傳遞過去時候仍然是0xff。
0xff當(dāng)作為無符號數(shù)的時候,數(shù)字為255,作為帶符號數(shù)時候,是-1。char類型是帶符號的,因此是-1。
97、 下面程序的輸出結(jié)果是()
int main(void) {printf("%d\n",12&012);return 0; } A、12 ? ? ? ? ? ? ?B、0 ? ? ? ? ? ? C、8 ? ? ? ? ? ? ? ?D、-1
012=1010;(C語言中數(shù)字前綴0表示八進(jìn)制)
012是8進(jìn)制數(shù),它的值為10,二進(jìn)制是0000 1010
12是十進(jìn)制,它的二進(jìn)制是0000 1100
兩個數(shù)相與(&),得到0000 1000,即8
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內(nèi)容的字節(jié)數(shù)
B、計算文件wj.txt的終止地址
C、計算文件wj.txt的起始地址
D、將文件指針定位到文件末尾
3、若輸入B,則以下程序運行后的輸出結(jié)果是()
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、以下程序的輸出結(jié)果是()
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、 以下程序段的輸出結(jié)果是()
int p = 1234;printf("%2d\n",p); A、12 ????????????????????? B、34 ???????????????????????????C、1234 ??????????????????????????????? D、提示出錯、無結(jié)果
6、 以下程序運行后的輸出結(jié)果是()
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、以下程序的運行結(jié)果是() (主要考察運算符的優(yōu)先級)
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、以下語句的輸出結(jié)果是() (主要考察逗號表達(dá)式)
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
逗號表達(dá)式的一般形式:
表達(dá)式1,表達(dá)式2,表達(dá)式3......表達(dá)式n
它的值為表達(dá)式n的值。
括號表達(dá)式要求按順序逐一計算各個子表達(dá)式,并以最后一個子表達(dá)式的值作為括號表達(dá)式的結(jié)果,最后將該結(jié)果賦給變量。
printf("%d %d %d",(a,b,c),b,c);
則(a,b,c)是一個逗號表達(dá)式,它的值等于c的值。括號內(nèi)的逗號不是參數(shù)間的分隔符而是逗號運算符。括號中的內(nèi)容是一個整體,作為printf函數(shù)的第一個參數(shù)。
9、設(shè)有語句? char a = '\72'; 則變量a()
A、包含2個字符????????????????????????????????????????? B、說明不合法
C、包含1個字符 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? D、包含3個字符
10、已知數(shù)據(jù)表A中每個元素距其最終位置不遠(yuǎn),為節(jié)省時間,應(yīng)該采用的算法是()
A、直接選擇排序
B、堆排序
C、快速排序
D、直接插入排序
11、以下程序段的運行結(jié)果是()
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語言中,下列()是合法的標(biāo)示符。
A、4x?????????????????? B、1P234
C、COUNT??????????? D、short
13、C語言中的標(biāo)識符只能有字母、數(shù)字和下劃線三種字符組成,且第一個字符()
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; } 經(jīng)編譯鏈接生成可執(zhí)行文件tt.exe,若運行時輸入以下命令行?? tt?? 12?? 345?? 678,則程序運行的輸出結(jié)果是()
A、136????????????? B、12345????????????? C、12345678?????????????? D、12
解析:主函數(shù)的第一個參數(shù)argc為整型參數(shù),記下從命令行輸入?yún)?shù)的個數(shù);第二個參數(shù)argv是一個字符型的指針數(shù)組,它的每一個元素分別指向命令行輸入的各字符串。在本例中argc的值為4,argv[0]指向字符串“tt”,argv[1]指向字符串“12”,argv[2]指向字符串“345”, argv[3]指向字符串“678”。程序中,通過一個for循環(huán),遍歷了后面的三個參數(shù)字符串,每次將n自乘10,然后累加argv[i]-‘0’,即第i個參數(shù)字符串的首字符減去‘0’。? 一個數(shù)字字符減去‘0’字符,即可得到這個數(shù)字字符的實際數(shù)值,因此三次循環(huán)的結(jié)果是讓n的值變?yōu)?36,故本題應(yīng)該選擇A。
16、若已定義:int a[9],*p = a; 并在以后的語句中未改變p的值,不能表示a[1]地址的表達(dá)式是()
A、++p??????????? B、a+1??????????? C、p+1??????????? D、a++
17、若執(zhí)行下面的程序時,從鍵盤上輸入5,則輸出是()
int main(int argc, char** argv) {int x;scanf("%d",&x);if(x++ > 5)printf("%d\n",x);elseprintf("%d\n",x--);return 0; } A、7????????????? ?? B、4?????????????????? C、6????????????????? D、5
18、 已知有如下的變量定義,那么第二行的表達(dá)式的值是多少() (主要考察運算符的優(yōu)先級)
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、 下列運算符函數(shù)中,肯定不屬于類Value的成員函數(shù)是()
A、Value operator/(Value);
B、Value operator-(Value,Value);
C、Value operator+(Value);
D、Value operator*(int);
20、以下關(guān)于函數(shù)模板和模板函數(shù)的描述中,錯誤的是()
A、函數(shù)模板是定義重載函數(shù)的一種工具
B、模板函數(shù)在編譯時不生成可執(zhí)行代碼
C、函數(shù)模板是一組函數(shù)的樣板
D、模板函數(shù)是函數(shù)模板的一個實例
21、以下關(guān)于文件操作的描述中,不正確的是()
A、關(guān)閉文件的目的之一是釋放內(nèi)存中的文件對象
B、關(guān)閉文件的目的之一是保證將輸出的數(shù)據(jù)寫入硬盤文件
C、文件讀寫過程中,程序?qū)⒅苯优c磁盤文件進(jìn)行數(shù)據(jù)交換
D、打開文件的目的是使文件對象與磁盤文件建立聯(lián)系
22、在重載一運算符時,若運算符函數(shù)的形參表中沒有參數(shù),則不可能的情況是()
A、該運算符函數(shù)是類的友元函數(shù)
B、該運算符函數(shù)有一個隱含的參數(shù)this
C、該運算符函數(shù)是類的成員函數(shù)
D、該運算符是一個單目運算符
23、下列哪一個是析構(gòu)函數(shù)的特征()
A、析構(gòu)函數(shù)定義只能在類體內(nèi)
B、一個類中只能定義一個析構(gòu)函數(shù)
C、析構(gòu)函數(shù)名與類名不同
D、析構(gòu)函數(shù)可以有一個或多個參數(shù)
24、數(shù)據(jù)流程圖(DFD圖)是()
A、軟件概要設(shè)計的工具
B、軟件詳細(xì)設(shè)計的工具
C、結(jié)構(gòu)化方法的需求分析工具
D、面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?/span>
25、執(zhí)行 int a = ( 1 , 3 , 11); int b = a; 后,b的值是多少?
A、11
B、1
C、3
D、15
E、{ 1 , 3 , 11}
26、設(shè)a=1,b=2,則(a++)+b 和 a+++b 這兩個表達(dá)式的值分別是()
A、4 , 4
B、3 , 4
C、4 , 3
D、3 , 3
27、如果A類型是B類型的子類型,則A類型必然適應(yīng)于B類型
A、錯??????????????? B、對
28、條件語句不能作為多路分支語句。
A、對??????????????? B、錯
29、下列while循環(huán)的次數(shù)是()
void main() {while(int i = 0)i--; } A、無限
B、0
C、1
D、5
30、關(guān)于純虛函數(shù),下列表述正確的是()
A、派生類必須實現(xiàn)基類的純虛函數(shù)
B、純虛函數(shù)的聲明總是以”=0“結(jié)束
C、純虛函數(shù)是給出實現(xiàn)版本(即無函數(shù)體定義)的虛函數(shù)
D、含有純虛函數(shù)的類一定是派生類
31、下列靜態(tài)數(shù)據(jù)成員的特性中,()是錯誤的
A、引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運算符
B、說明靜態(tài)數(shù)據(jù)成員時前邊要加關(guān)鍵字static來修飾
C、靜態(tài)數(shù)據(jù)成員在類體外進(jìn)行初始化
D、靜態(tài)數(shù)據(jù)成員不是所有對象所共有的
32、關(guān)鍵詞explicit的作用是什么?
A、它使一個默認(rèn)構(gòu)造函數(shù)的聲明變?yōu)閺娭菩缘?br /> B、它可以使一個變量存在主內(nèi)存中而不是處理器的緩存中
C、它可以防止單參數(shù)的構(gòu)造函數(shù)被用于隱式轉(zhuǎn)換
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個元素的指針數(shù)組,每個元素是一個int類型的指針;
B、pa[5]表示某個數(shù)組的第5個元素的值;
C、pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int類型的元素;
D、pa是一個指向某個數(shù)組中第5個元素的指針,該元素是int類型的變量;
35、C++中關(guān)于函數(shù)不正確的是()
A、函數(shù)調(diào)用語句必須寫在函數(shù)定義的前面
B、函數(shù)可以沒有返回值
C、函數(shù)聲明就是原型聲明
D、不允許嵌套定義
A應(yīng)該修改為:函數(shù)調(diào)用語句必須寫在函數(shù)聲明的前面
36、若二叉樹中有n個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)為()
A、n-1
B、n+1
C、2n
D、n/2
37、在多文件結(jié)構(gòu)的程序中,通常把含有main()函數(shù)的文件稱為()
A、主文件
B、頭文件
C、實現(xiàn)文件
D、程序文件
38、在以下一組運算符中,優(yōu)先級最高的運算符是()
A、 &&
B、 =
C、 <=
D、 %
39、關(guān)于read()函數(shù)的下列描述中,()是對的。
A、該函數(shù)只能從鍵盤輸入中獲取字符串
B、該函數(shù)只能按規(guī)定讀取所指定的字符數(shù)
C、該函數(shù)只能用于文本文件的操作中
D、該函數(shù)所獲取的字符多少是不受限制的
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; } 運行時的輸出結(jié)果是()
A、11214444
B、11114444
C、122444
D、11214445
E、121444
41、以下程序段的輸出結(jié)果是()
#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、關(guān)于運算符重載,下列說法正確的是()
A、重載時,運算符的結(jié)合性可以改變
B、重載時,運算符的優(yōu)先級可以改變
C、重載時,運算符的功能可以改變
D、重載時,運算符的操作數(shù)個數(shù)可以改變
43、下面哪一個不是由標(biāo)準(zhǔn)模板庫提供的合法的哈希表?
A、hash_multiset
B、hash_table
C、hash_set
D、hash_multimap
E、hash_map
44、int x = 2 , y = 3 , z = 4; 則表達(dá)式!x+y>z的值為()
A、1
B、FALSE
C、TRUE
D、0
45、下面的程序段的輸出結(jié)果是()
void main() {char *x = "abcd";x += 2;cout<<x; } A、指針變量x的地址
B、字符c的地址
C、c
D、cd
46、下面對于友元函數(shù)的描述正確的是()
A、友元函數(shù)不能訪問類的私有成員
B、友元函數(shù)是類的成員
C、友元函數(shù)的實現(xiàn)必須在類的內(nèi)部定義
D、友元函數(shù)破壞了類的封裝性和隱藏性
47、內(nèi)存釋放的原則是誰申請誰釋放()
A、錯??????????????????????? B、對
48、已知int a , *pa=&a; 輸出指針pa十進(jìn)制的地址值的方法是()
A、cout<<*pa;
B、cout<<long(&pa);
C、cout<<pa;
D、cout<<&pa;
49、被非靜態(tài)成員函數(shù)訪問的類的數(shù)據(jù)成員()
A、不可能是類的靜態(tài)數(shù)據(jù)成員
B、只能是類的非靜態(tài)數(shù)據(jù)成員
C、只能是類的靜態(tài)數(shù)據(jù)成員
D、可以是非靜態(tài)數(shù)據(jù)成員或靜態(tài)數(shù)據(jù)成員
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("李四") }; } 運行此程序輸出符號?的個數(shù)是()
A、1
B、2
C、0
D、3
51、假定AA是一個類,AA* abc() const是該類的一個成員函數(shù)的原型,若該函數(shù)返回this值,當(dāng)用x.abc()調(diào)用該成員函數(shù)后,x的值()
A、可能被改變
B、已經(jīng)被改變
C、收到函數(shù)調(diào)用的影響
D、不變
52、設(shè)散列表的存儲空間大小為19,所用散列函數(shù)為h(key)=key mod 19,用開地址線性探查法解決碰撞。散列表的當(dāng)前狀態(tài)如下: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.現(xiàn)要將關(guān)鍵碼值75插入到該散列表中,其地址應(yīng)該為()
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、關(guān)于構(gòu)造函數(shù)的說法,不正確的是()
A、沒有返回值
B、其名與類名完全相同
C、沒有定義構(gòu)造函數(shù)時,系統(tǒng)將不會調(diào)用它
D、它在對象被創(chuàng)建時由系統(tǒng)自動調(diào)用
55、下面程序段的運行結(jié)果是()
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、設(shè)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; } 執(zhí)行上面的程序?qū)⑤敵?
A、Y
B、XY
C、X
D、YX
59、下面關(guān)于面向?qū)ο笳Z言的基本要素的描述中,正確的是()
A、繼承性和聚合性
B、多態(tài)性和繼承性
C、封裝性和繼承性
D、封裝性和重載性
60、操作子本身是一個對象,它可以直接被提取符或插入符操作()
A、對???????????????????????????????? B、錯
61、下面關(guān)于對象數(shù)組的描述中,錯誤的是()
A、對象數(shù)組的下標(biāo)是從0開始的
B、對象數(shù)組的數(shù)組名是一個常量指針
C、對象數(shù)組的每個元素是同一個類的對象
D、對象數(shù)組只能賦初值,而不能賦值
62、假定p是具有int **類型的指針變量,則給p賦值的正確語句為()
A、p = new int[10];
B、p = new int;
C、p = new int *;
D、p = new int **
63、 下面程序的運行結(jié)果是()
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、 下面程序的輸出結(jié)果是()
class Sample {friend long fun(Sample s){if(s.x < 2)return 1;elsereturn 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、在橫線處填上適當(dāng)?shù)恼Z句,使下面的程序的執(zhí)行結(jié)果是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!賦給數(shù)組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為數(shù)組名,它是地址,是一個常量,不能被賦值。
67、若函數(shù)fun的函數(shù)頭為:
?int fun(int i , int j)
且函數(shù)指針變量p指向函數(shù)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語言語法的表達(dá)式是()
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); } 程序運行后的輸出結(jié)果是()
A、1
B、9
C、3
D、10
E、2
71、在下面的循環(huán)語句中內(nèi)存循環(huán)體s語句的執(zhí)行總次數(shù)為()
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的析構(gòu)函數(shù)為()
A、~example();
B、example();
C、example()
D、~example()
73、關(guān)于保護(hù)成員的說法正確的是()
A、在派生類中是私有的
B、在派生類中仍然是保護(hù)的
C、在派生類中是公有的
D、具有私有成員和公有成員的雙重角色
74、計算函數(shù)參數(shù)順序引起的二義性完全是由不同的編譯系統(tǒng)決定的。
A、對
B、錯
75、若有語句int a[10] = {0,1,2,3,4,5,6,7,8,9}, *p = a; 則()不是對a數(shù)組元素的正確引用。
A、*(*(a+i))
B、p[i]
C、a[p-a]
D、*(&a[i])
76、下列表達(dá)式中, ()是合法的。已知: 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;
則數(shù)值為4的表達(dá)式是()
A、a['d'-'c']
B、a[g-c]
C、a['d'-c]
D、a[4]
78、read() 和 write()函數(shù)可以讀寫文本文件,也可以讀寫二進(jìn)制文件。
A、錯
B、對
79、在保護(hù)繼承中,對于派生類的訪問同于公有繼承,而對于派生類的對象的訪問同于私有繼承。
A、錯
B、對
80、設(shè)有以下結(jié)構(gòu)體定義及其初始化,表達(dá)式p->score的結(jié)果是()
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、以下程序的輸出結(jié)果是()
#define f(X) X*Xvoid 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,則條件表達(dá)式a<b?a:c<d?c:d的值為()
A、1
B、3
C、2
D、4
83、以下四個選項中,均是正確的數(shù)值常量或字符串常量的選項是()
A、+001,0Xabcd,2e2,50
B、3,011,0XFF00,0a
C、0.0,0f,8.9e,&
D、“a”,3.9E-2.5,1e1,‘\’
84、以下四個選項中,均是合法轉(zhuǎn)義字符的選項是()
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語言語法的表達(dá)式是()
A、 a = a*3 = 2
B、x%(-3)
C、y = float(i)
D、a += a -= (b=4)*(a=3)
86、已知二進(jìn)制數(shù)a是00101101,如果想通過整型變量b與a做異或運算,使變量a的高4位取反,低4位不變,則二進(jìn)制數(shù)b的值應(yīng)該是()
A、11111111
B、0
C、1111
D、11110000
87、下列四組字符串中都可以用作C語言程序標(biāo)識符的一組是()
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、若執(zhí)行fopen()發(fā)生錯誤,函數(shù)的返回值是()
A、地址值
B、NULL
C、EOF
D、1
89、若調(diào)用一個函數(shù),且此函數(shù)中無return語句,則正確的說法是()
A、能返回一個用戶所希望的函數(shù)值
B、返回一個不確定的值
C、返回若干個系統(tǒng)默認(rèn)值
D、沒有返回值
90、長度相同但格式不同的2種浮點數(shù),假設(shè)前者階碼長、尾數(shù)短,后者階碼短、尾數(shù)長,其它的規(guī)定均相同,則它們可表示的數(shù)的范圍和精度為()
A、前者可表示的數(shù)的范圍大且精度高
B、兩者可表示的數(shù)的范圍和精度相同
C、前者可表示的數(shù)的范圍大但精度低
D、后者可表示的數(shù)的范圍大且精度高
91、單繼承情況下,派生類中對基類成員的訪問也會出現(xiàn)二義性
A、錯??????????????????????? B、對
92、關(guān)系數(shù)據(jù)庫模型是以下哪種方式組織數(shù)據(jù)結(jié)構(gòu)
A、二維表
B、網(wǎng)狀
C、文本
D、樹狀
93、()命令可以查看視圖的創(chuàng)建語句
A、SHOW VIEW
B、SHOW CREATE VIEW
C、SELECT VIEW
D、DISPLAY VIEW
94、正則表達(dá)式中的*代表的是()
A、0個或多個匹配
B、1個或多個匹配
C、0
95、預(yù)處理過程是編譯過程之后、連接過程之前進(jìn)行的
A、對?????????????????????????? B、錯
96、下面程序的輸出結(jié)果是()
int main(void) {char x = 0xFF;printf("%d\n",x--);return 0; } A、-1 ? ? ? ? ? ? ?B、0 ? ? ? ? ? ? C、255 ? ? ? ? ? ? D、256
printf("%d \n",x--)函數(shù)參數(shù)首先傳遞的是x--這個,但是它是先返回值才減小,因此x傳遞過去時候仍然是0xff。
0xff當(dāng)作為無符號數(shù)的時候,數(shù)字為255,作為帶符號數(shù)時候,是-1。char類型是帶符號的,因此是-1。
97、 下面程序的輸出結(jié)果是()
int main(void) {printf("%d\n",12&012);return 0; } A、12 ? ? ? ? ? ? ?B、0 ? ? ? ? ? ? C、8 ? ? ? ? ? ? ? ?D、-1
012=1010;(C語言中數(shù)字前綴0表示八進(jìn)制)
012是8進(jìn)制數(shù),它的值為10,二進(jìn)制是0000 1010
12是十進(jìn)制,它的二進(jìn)制是0000 1100
兩個數(shù)相與(&),得到0000 1000,即8
總結(jié)
以上是生活随笔為你收集整理的C/C++笔试题目大全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++中虚函数工作原理和(虚)继承类的内
- 下一篇: java jmi的基本思想_jmi: J