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
- 前言
- 程序員有趣的面試智力題
- 淘寶網 校園招聘 技術人員筆試題
- 網新恒天2011.9.21招聘會筆試題
- 淘寶2011.9.21校園招聘會筆試題
- 騰訊2011.10.15校園招聘會筆試題
- 網易游戲2011.10.15校園招聘會筆試題
- 百度2011.10.16校園招聘會筆試題
- 微策略2011校園招聘筆試題(找出數組中兩個只出現一次的數字)
- 百度最新面試題集錦
- C/C++筆試題目大全
- 各大IT公司校園招聘程序猿筆試、面試題集錦
- Trie樹詳解及其應用
- 后綴數組求最長重復子串
- 海量數據隨機抽樣問題(蓄水池問題)
- 搜狐2012.9.15校園招聘會筆試題
- 搜狗2012.9.23校園招聘會筆試題
- Google2012.9.24校園招聘會筆試題
- 優酷土豆2012.9.12校園招聘會筆試題