日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

则执行C语言语句unsigned,部分C语言题目

發布時間:2023/12/18 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 则执行C语言语句unsigned,部分C语言题目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、下列描述不正確的是_______D________

A.int **a[2][2]定義的是指向指針的指針數組

B.定義int **a[2][2],在32位系統下,a所用的內存空間為16

C. int **a[2][2]={0}

D.int **a[2][3]={{0,0},{0,0},{0,0}}

ps:我居然認為B不對,D對,2行3列我都不知道是啥。

2、有以下程序A

main()

{

int m=12,n=34;

printf(“%d%d”,m++,++n);printf(“%d%d\n”,n++,++m);

}

輸出結果為____B_____

A、12343513? B、12353514? C、12353513????? D、12343514

3、若a為int類型,且其值為3,則執行完表達式a+=++a后,a的值是____C____

A、6????? B、7?????? C、8?????? D、9

4、下列描述不正確的是_______D________

A.int **a[2][2]定義的是指向指針的指針數組

B.定義int **a[2][2],在32位系統下,a所用的內存空間為16

C. int **a[2][2]={0}

D.int **a[2][3]={{0,0},{0,0},{0,0}}

5、以下程序的運行結果是____B___A:0??B:1??C:5??D:2

union

{

struct

{

unsigned char c1:3;

unsigned char c2:3;

unsigned char c3:2;

}s;

unsigned char c;

}u;

int main()

{

u.c=100;

printf("%d\n",u.s.c3);

return 0;

}

6、int a=5;則表達式++(a++);的結果為____D_____

A 、5??? B、6???? C、7??? D、表達式不正確

7、在C語言中, char型數據在內存中的存儲形式是:____d____

A補碼B、反碼C、原碼D、ASCII碼

8、逗號表達式(a=5*5,a+20),a+15的值是__B__。

A、35????? B、40?????? C、55??????? D、20

*********************************************************

1、? 常用的互聯網協議是TCP/IP協議,應用層協議有那些:http,https,ftp,tftp,dns,sip ,telnet,rtp

2、? 指針函數和函數指針的含義、區別

函數指針是指向一個函數的指針,可以通過指針調用該函數。如:

int f( int );?????int (*pf)( int ) = &f;?//&是可選的,因為函數名被使用時總是由編譯器把它轉換為函數指針。

函數指針有兩個用途:調用函數和做函數的參數

--------------------------------------------------------------------------------------------

指針函數:程序中的每個函數都位于內存中的某個位置,所以存在指向那個位置的指針是完全可能的。

指針函數是指函數的返回值類型是一個指針類型,即本質是一個函數。

int *f( int );?????????????????????????? //函數返回值是指針類型

3、#ifndef #define#endif的典型作用是什么?

防止重復編譯

一般用來防止重復包含頭文件

4、指針常量和常量指針

a)????????常量指針:常量是形容詞,指針是名詞,首先是個指針,即指向常量的指針。指針所指向的值不能修改。如:

在C/C++中,常量指針是這樣聲明的:

1)const int*p;

2)int const *p;

b)????????指針常量:指針是形容詞,常量是名詞。即本質是一個常量,而用指針修飾它,那么說明這個常量的值應該是一個指針。指針常量的值是指針,這個值因為是常量,所以不能被賦值。

1.????????int a;

int *const b = &a;????? //const放在指針聲明操作符的右側

c)????????指向常量的指針常量

指向常量的指針常量就是一個常量,且它指向的對象也是一個常量。因為是一個指針常量,那么它指向的對象當然是一個指針對象,而它又指向常量,說明它指向的對象不能變化。

const int a = 25;

const int * const b = &a;

5、把一個unsigned short a的變量的高8位和低8位的值互換,用#define

#include

#defineswap(a) ( ( a << 8 )|( a >>8) )

voidmain()

{

unsigned short a = 0x1234;

a=swap(a);

printf("%x",a);

}

6、void main()

{

inta=1;

printf("%d,%d,%d\n",a++,a++,a++);

printf("%d\n",a);

}

輸出:

3,2,1

4

printf把要打印的變量入棧,最后的變量在棧頂,先計算,即先處理后面的那個a++,依次往左。

7、//a[10],用指針實現,找出數組中最大的值,并輸出該最大值

#include

void main()

{

inta[10] = { 10,3,2,5,1,7,44,54,2};

int*p ;

int*s;??????????????????????????????????//記錄最大值

for(p = a, s = a; p

{

if(*p> *s)

*s= *p;

}

printf("%d\n",*s);

}

8、要對絕對地址0x100000賦值,我們可以用(unsigned int*)0x100000 = 1234;那么要是想讓程序跳轉到絕對地址是0x100000去執行,應該怎么做?

答案:( ( void (*)( ) )0x100000 ) ( )或者( *( void (*)( ) )0x100000 ) ( )首先要將0x100000強制轉換成函數指針,即: (void(*)())0x100000然后再調用它: ( *( void (*)( ) )0x100000 ) ( );用typedef可以看得更直觀些:typedef void(*)() voidFuncPtr; (* (voidFuncPtr)0x100000)();

9、關鍵字volatile有什么含義?并給出三個不同的例子。

對于volatile類型的變量,該變量可能會被意想不到地改變,這樣編譯器就不會去假設這個變量的值。編譯器在用到這個變量的時候,必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器里的備份。如下三種例子:

1)、并行設備的硬件寄存器(如:狀態寄存器)

2)、一個中斷服務子程序中會訪問到的非自動變量

3)、多線程應用中被幾個任務共享的變量

10、sizeof和strlen

sizeof()計算括號里的內容所占的內存,如果是字符串,計算‘\0’

strlen()只能接受字符串,不計算’\0’;

11、一語句實現x是否為2的若干次冪的判斷

#define is2*n(x)? ((x & (x- 1))? 0 : 1)

12、用#define實現一個unsigned short a,高8位和低8位互換

#define swap(a) (? a >> 8) || ( a << 8 )

13、用宏定義實現swap(a,b),交換兩個數值

#define swap(x,y) do{x=x+y; y = x-y; x= x-y;}while(0)

或者

#define swap(x,y) \

x=x+y;\

y=x-y;\

x=x-y;

12、?優先級反轉

總結

以上是生活随笔為你收集整理的则执行C语言语句unsigned,部分C语言题目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。