青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 319, comments - 22, trackbacks - 0, articles - 11
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

C++查缺補(bǔ)漏4,趕緊的

Posted on 2012-04-05 14:54 RTY 閱讀(846) 評論(0)  編輯 收藏 引用 所屬分類: 編程常識 、C/C++轉(zhuǎn)載隨筆

請說出const與#define 相比,有何優(yōu)點?
答案:
1) const 常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對前者進(jìn)行類型安全檢查。而對后者只進(jìn)行字符替換,沒有類型安全檢查,并且在字符替換可能會產(chǎn)生意料不到的錯誤。
      2) 有些集成化的調(diào)試工具可以對const 常量進(jìn)行調(diào)試,但是不能對宏常量進(jìn)行調(diào)試。

在8086 匯編下,邏輯地址和物理地址是怎樣轉(zhuǎn)換的?(Intel)
答案:通用寄存器給出的地址,是段內(nèi)偏移地址,相應(yīng)段寄存器地址*10H+通用寄存器內(nèi)地址,就得到了真正要訪問的地址。

當(dāng)一個類A 中沒有生命任何成員變量與成員函數(shù),這時sizeof(A)的值是多少,如果不是零,請解釋一下編譯器為什么沒有讓它為零。(Autodesk)
答案:肯定不是零。舉個反例,如果是零的話,聲明一個class A[10]對象數(shù)組,而每一個對象占用的空間是零,這時就沒辦法區(qū)分A[0],A[1]…了。

 描述內(nèi)存分配方式以及它們的區(qū)別?
1) 從靜態(tài)存儲區(qū)域分配。內(nèi)存在程序編譯的時候就已經(jīng)分配好,這塊內(nèi)存在程序的整個運行期間都存在。例如全局變量,static 變量。
2) 在棧上創(chuàng)建。在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變量的存儲單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時這些存儲單元自動被釋放。棧內(nèi)存分配運算內(nèi)置于處理器的指令集。
3) 從堆上分配亦稱動態(tài)內(nèi)存分配。程序在運行的時候用malloc 或new 申請任意多少的內(nèi)存,程序員自己負(fù)責(zé)在何時用free 或delete 釋放內(nèi)存。動態(tài)內(nèi)存的生存期由程序員決定,使用非常靈活,但問題也最多。

 main 函數(shù)執(zhí)行以前,還會執(zhí)行什么代碼?
答案:全局對象的構(gòu)造函數(shù)會在main 函數(shù)之前執(zhí)行。

 C++是不是類型安全的?
答案:不是。兩個不同類型的指針之間可以強(qiáng)制轉(zhuǎn)換(用reinterpret cast)。C#是類型安全的。

 

有哪幾種情況只能用intialization list 而不能用assignment?

 

答案:當(dāng)類中含有const、reference 成員變量;基類的構(gòu)造函數(shù)都需要初始化表。

define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?
答案:i 為30

New delete 與malloc free 的聯(lián)系與區(qū)別?
答案:都是在堆(heap)上進(jìn)行動態(tài)的內(nèi)存操作。用malloc函數(shù)需要指定內(nèi)存分配的字節(jié)數(shù)并且不能初始化對象,new 會自動調(diào)用對象的構(gòu)造函數(shù)。delete 會調(diào)用對象的destructor,而free 不會調(diào)用對象的destructor.

 

1、寫一個“標(biāo)準(zhǔn)”宏,這個宏輸入兩個參數(shù)并返回較小的一個。
.#define Min(X, Y) ((X)>(Y)?(Y):(X))//結(jié)尾沒有;
2、嵌入式系統(tǒng)中經(jīng)常要用到無限循環(huán),你怎么用C編寫死循環(huán)。
while(1){}或者for(;;)
3、關(guān)鍵字static的作用是什么?
定義靜態(tài)變量
4、關(guān)鍵字const有什么含意?
表示常量不可以修改的變量。
5、關(guān)鍵字volatile有什么含意?并舉出三個不同的例子?
提示編譯器對象的值可能在編譯器未監(jiān)測到的情況下改變。

 


int (*s[10])(int) 表示的是什么啊
int (*s[10])(int) 函數(shù)指針數(shù)組,每個指針指向一個int func(int param)的函數(shù)。

 


1.有以下表達(dá)式:
int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int const *f const =&a;
請問下列表達(dá)式哪些會被編譯器禁止?為什么?
*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;
*c 這是個什么東東,禁止
*d 說了是const, 禁止
e = &a 說了是const 禁止
const *f const =&a; 禁止
2.交換兩個變量的值,不使用第三個變量。即a=3,b=5,交換之后a=5,b=3;
有兩種解法, 一種用算術(shù)算法, 一種用^(異或)
a = a + b;
b = a - b;
a = a - b; 
or
a = a^b;// 只能對int,char..
b = a^b;
a = a^b;
or
a ^= b ^= a;
3.c和c++中的struct有什么不同?
c和c++中struct的主要區(qū)別是c中的struct不可以含有成員函數(shù),而c++中的struct可以。c++中struct和class的主要區(qū)別在于默認(rèn)的存取權(quán)限不同,struct默認(rèn)為public,而class默認(rèn)為private
4.#i nclude <stdio.h>
#i nclude <stdlib.h>
void getmemory(char *p)
{
    p=(char *) malloc(100);
    strcpy(p,"hello world");
}
int main( )
{
    char *str=NULL;
    getmemory(str);
    printf("%s/n",str);
    free(str);
    return 0;
   }
程序崩潰,getmemory中的malloc 不能返回動態(tài)內(nèi)存, free()對str操作很危險
5.char szstr[10];
strcpy(szstr,"0123456789");
產(chǎn)生什么結(jié)果?為什么?
長度不一樣,會造成非法的OS
6.列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點。
   原子操作 
信號量機(jī)制
   自旋鎖
   管程,會合,分布式系統(tǒng)

 

7.進(jìn)程之間通信的途徑
共享存儲系統(tǒng)
消息傳遞系統(tǒng)
管道:以文件系統(tǒng)為基礎(chǔ)
11.進(jìn)程死鎖的原因
資源競爭及進(jìn)程推進(jìn)順序非法
12.死鎖的4個必要條件
互斥、請求保持、不可剝奪、環(huán)路
13.死鎖的處理
鴕鳥策略、預(yù)防策略、避免策略、檢測與解除死鎖
15.   操作系統(tǒng)中進(jìn)程調(diào)度策略有哪幾種?
FCFS(先來先服務(wù)),優(yōu)先級,時間片輪轉(zhuǎn),多級反饋
8.類的靜態(tài)成員和非靜態(tài)成員有何區(qū)別?
類的靜態(tài)成員每個類只有一個,非靜態(tài)成員每個對象一個
9.純虛函數(shù)如何定義?使用時應(yīng)注意什么?
virtual void f()=0;
是接口,子類必須要實現(xiàn)
10.數(shù)組和鏈表的區(qū)別
數(shù)組:數(shù)據(jù)順序存儲,固定大小
連表:數(shù)據(jù)可以隨機(jī)存儲,大小可動態(tài)改變

 

12.ISO的七層模型是什么?tcp/udp是屬于哪一層?tcp/udp有何優(yōu)缺點?
應(yīng)用層
表示層
會話層
運輸層
網(wǎng)絡(luò)層
物理鏈路層
物理層
tcp /udp屬于運輸層
TCP 服務(wù)提供了數(shù)據(jù)流傳輸、可靠性、有效流控制、全雙工操作和多路復(fù)用技術(shù)等。
與 TCP 不同, UDP 并不提供對 IP 協(xié)議的可靠機(jī)制、流控制以及錯誤恢復(fù)功能等。由于 UDP 比較簡單, UDP 頭包含很少的字節(jié),比 TCP 負(fù)載消耗少。
tcp: 提供穩(wěn)定的傳輸服務(wù),有流量控制,缺點是包頭大,冗余性不好
udp: 不提供穩(wěn)定的服務(wù),包頭小,開銷小  

 


1:(void *)ptr 和 (*(void**))ptr的結(jié)果是否相同?其中ptr為同一個指針
.(void *)ptr 和 (*(void**))ptr值是相同的
2:int main()
   {
    int x=3;
    printf("%d",x);
    return 1;
   
   }
問函數(shù)既然不會被其它函數(shù)調(diào)用,為什么要返回1?
mian中,c標(biāo)準(zhǔn)認(rèn)為0表示成功,非0表示錯誤。具體的值是某中具體出錯信息

 


1,要對絕對地址0x100000賦值,我們可以用
(unsigned int*)0x100000 = 1234;
那么要是想讓程序跳轉(zhuǎn)到絕對地址是0x100000去執(zhí)行,應(yīng)該怎么做?
*((void (*)( ))0x100000 ) ( );
首先要將0x100000強(qiáng)制轉(zhuǎn)換成函數(shù)指針,即:
(void (*)())0x100000
然后再調(diào)用它:
*((void (*)())0x100000)();
用typedef可以看得更直觀些:
typedef void(*)() voidFuncPtr;
*((voidFuncPtr)0x100000)();
2,已知一個數(shù)組table,用一個宏定義,求出數(shù)據(jù)的元素個數(shù)
#define NTBL
#define NTBL (sizeof(table)/sizeof(table[0]))

 

面試題: 線程與進(jìn)程的區(qū)別和聯(lián)系? 線程是否具有相同的堆棧? dll是否有獨立的堆棧?
進(jìn)程是死的,只是一些資源的集合,真正的程序執(zhí)行都是線程來完成的,程序啟動的時候操作系統(tǒng)就幫你創(chuàng)建了一個主線程。

 

每個線程有自己的堆棧。
DLL中有沒有獨立的堆棧,這個問題不好回答,或者說這個問題本身是否有問題。因為DLL中的代碼是被某些線程所執(zhí)行,只有線程擁有堆棧,如果DLL中的代碼是EXE中的線程所調(diào)用,那么這個時候是不是說這個DLL沒有自己獨立的堆棧?如果DLL中的代碼是由DLL自己創(chuàng)建的線程所執(zhí)行,那么是不是說DLL有獨立的堆棧?

 

以上講的是堆棧,如果對于堆來說,每個DLL有自己的堆,所以如果是從DLL中動態(tài)分配的內(nèi)存,最好是從DLL中刪除,如果你從DLL中分配內(nèi)存,然后在EXE中,或者另外一個DLL中刪除,很有可能導(dǎo)致程序崩潰

 


unsigned short A = 10;
printf("~A = %u\n", ~A);

 

char c=128; 
printf("c=%d\n",c);

 

輸出多少?并分析過程
第一題,~A =0xfffffff5,int值 為-11,但輸出的是uint。所以輸出4294967285
第二題,c=0x10,輸出的是int,最高位為1,是負(fù)數(shù),所以它的值就是0x00的補(bǔ)碼就是128,所以輸出-128。
這兩道題都是在考察二進(jìn)制向int或uint轉(zhuǎn)換時的最高位處理。

 

分析下面的程序:
void GetMemory(char **p,int num)
{
    *p=(char *)malloc(num);
    
}        
int main()
{
    char *str=NULL;
    
    GetMemory(&str,100);
    
    strcpy(str,"hello");
    
    free(str);
    
    if(str!=NULL)
    {
        strcpy(str,"world");
    }    
        
    printf("\n str is %s",str);
    getchar();
}    
問輸出結(jié)果是什么?希望大家能說說原因,先謝謝了
輸出str is world。
free 只是釋放的str指向的內(nèi)存空間,它本身的值還是存在的.
所以free之后,有一個好的習(xí)慣就是將str=NULL.
此時str指向空間的內(nèi)存已被回收,如果輸出語句之前還存在分配空間的操作的話,這段存儲空間是可能被重新分配給其他變量的,
盡管這段程序確實是存在大大的問題(上面各位已經(jīng)說得很清楚了),但是通常會打印出world來。
這是因為,進(jìn)程中的內(nèi)存管理一般不是由操作系統(tǒng)完成的,而是由庫函數(shù)自己完成的。
當(dāng)你malloc一塊內(nèi)存的時候,管理庫向操作系統(tǒng)申請一塊空間(可能會比你申請的大一些),然后在這塊空間中記錄一些管理信息(一般是在你申請的內(nèi)存前面一點),并將可用內(nèi)存的地址返回。但是釋放內(nèi)存的時候,管理庫通常都不會將內(nèi)存還給操作系統(tǒng),因此你是可以繼續(xù)訪問這塊地址的,只不過。。。。。。。。樓上都說過了,最好別這么干。

 

char a[10],strlen(a)為什么等于15?運行的結(jié)果

 

#i nclude "stdio.h"
#i nclude "string.h"

 

void main()
{

 

char aa[10];
printf("%d",strlen(aa));
}

 

sizeof()和初不初始化,沒有關(guān)系;
strlen()和初始化有關(guān)。

 


char (*str)[20];/*str是一個數(shù)組指針,即指向數(shù)組的指針.*/
char *str[20];/*str是一個指針數(shù)組,其元素為指針型數(shù)據(jù).*/

 

long a=0x801010;
a+5=?
0x801010用二進(jìn)制表示為:“1000 0000 0001 0000 0001 0000”,十進(jìn)制的值為8392720,再加上5就是8392725羅

 

1)給定結(jié)構(gòu)struct A 
{
       char t:4;
       char k:4;
       unsigned short i:8;
       unsigned long m;
};問sizeof(A) = ?
給定結(jié)構(gòu)struct A 
{
       char t:4; 4位
       char k:4; 4位
       unsigned short i:8; 8位      
       unsigned long m; // 偏移2字節(jié)保證4字節(jié)對齊
}; // 共8字節(jié)
2)下面的函數(shù)實現(xiàn)在一個數(shù)上加一個數(shù),有什么錯誤?請改正。
int add_n ( int n )
{
    static int i = 100;
    i += n;
    return i;
}
當(dāng)你第二次調(diào)用時得不到正確的結(jié)果,難道你寫個函數(shù)就是為了調(diào)用一次?問題就出在 static上?

 


// 幫忙分析一下
#i nclude<iostream.h>
#i nclude <string.h>
#i nclude <malloc.h>
#i nclude <stdio.h>
#i nclude <stdlib.h>
#i nclude <memory.h>
typedef struct AA
{
        int b1:5;
        int b2:2;
}AA;
void main()
{
        AA aa;
        char cc[100];
         strcpy(cc,"0123456789abcdefghijklmnopqrstuvwxyz");
       memcpy(&aa,cc,sizeof(AA));
        cout << aa.b1 <<endl;
        cout << aa.b2 <<endl;
}
答案是 -16和1
首先sizeof(AA)的大小為4,b1和b2分別占5bit和2bit.
經(jīng)過strcpy和memcpy后,aa的4個字節(jié)所存放的值是:
0,1,2,3的ASC碼,即00110000,00110001,00110010,00110011
所以,最后一步:顯示的是這4個字節(jié)的前5位,和之后的2位
分別為:10000,和01
因為int是有正負(fù)之分  所以:答案是-16和1

 

求函數(shù)返回值,輸入x=9999; 
int func ( x )

    int countx = 0; 
    while ( x ) 
    { 
        countx ++; 
        x = x&(x-1); 
    } 
    return countx; 

結(jié)果呢?
知道了這是統(tǒng)計9999的二進(jìn)制數(shù)值中有多少個1的函數(shù),且有
9999=9×1024+512+256+15

 

9×1024中含有1的個數(shù)為2;
512中含有1的個數(shù)為1;
256中含有1的個數(shù)為1;
15中含有1的個數(shù)為4;
故共有1的個數(shù)為8,結(jié)果為8。
1000 - 1 = 0111,正好是原數(shù)取反。這就是原理。
用這種方法來求1的個數(shù)是很效率很高的。
不必去一個一個地移位。循環(huán)次數(shù)最少。

 

int a,b,c 請寫函數(shù)實現(xiàn)C=a+b ,不可以改變數(shù)據(jù)類型,如將c改為long int,關(guān)鍵是如何處理溢出問題
bool add (int a, int b,int *c)
{
*c=a+b;
return (a>0 && b>0 &&(*c<a || *c<b) || (a<0 && b<0 &&(*c>a || *c>b)));
}

 


分析:
struct bit 
{   int a:3; 
    int b:2; 
    int c:3; 
}; 
int main() 

bit s; 
char *c=(char*)&s; 
   cout<<sizeof(bit)<<endl;
*c=0x99;
   cout << s.a <<endl <<s.b<<endl<<s.c<<endl; 
     int a=-1;
   printf("%x",a);
return 0; 

輸出為什么是
4
1
-1
-4
ffffffff
因為0x99在內(nèi)存中表示為 100 11 001 , a = 001, b = 11, c = 100
當(dāng)c為有符合數(shù)時, c = 100, 最高1為表示c為負(fù)數(shù),負(fù)數(shù)在計算機(jī)用補(bǔ)碼表示,所以c = -4;同理 
b = -1;
當(dāng)c為有符合數(shù)時, c = 100,即 c = 4,同理 b = 3

 


位域 :   
有些信息在存儲時,并不需要占用一個完整的字節(jié), 而只需占幾個或一個二進(jìn)制位。例如在存放一個開關(guān)量時,只有0和1 兩種狀態(tài), 用一位二進(jìn)位即可。為了節(jié)省存儲空間,并使處理簡便,C語言又提供了一種數(shù)據(jù)結(jié)構(gòu),稱為“位域”或“位段”。所謂“位域”是把一個字節(jié)中的二進(jìn)位劃分為幾個不同的區(qū)域, 并說明每個區(qū)域的位數(shù)。每個域有一個域名,允許在程序中按域名進(jìn)行操作。 這樣就可以把幾個不同的對象用一個字節(jié)的二進(jìn)制位域來表示。一、位域的定義和位域變量的說明位域定義與結(jié)構(gòu)定義相仿,其形式為:     
struct 位域結(jié)構(gòu)名     
{ 位域列表 };    
其中位域列表的形式為: 類型說明符 位域名:位域長度     
例如:     
struct bs    
{    
int a:8;    
int b:2;    
int c:6;    
};    
位域變量的說明與結(jié)構(gòu)變量說明的方式相同。 可采用先定義后說明,同時定義說明或者直接說明這三種方式。例如:     
struct bs    
{    
int a:8;    
int b:2;    
int c:6;    
}data;    
說明data為bs變量,共占兩個字節(jié)。其中位域a占8位,位域b占2位,位域c占6位。對于位域的定義尚有以下幾點說明:   

 

1. 一個位域必須存儲在同一個字節(jié)中,不能跨兩個字節(jié)。如一個字節(jié)所??臻g不夠存放另一位域時,應(yīng)從下一單元起存放該位域。也可以有意使某位域從下一單元開始。例如:     
struct bs    
{    
unsigned a:4    
unsigned :0 /*空域*/    
unsigned b:4 /*從下一單元開始存放*/    
unsigned c:4    
}    
在這個位域定義中,a占第一字節(jié)的4位,后4位填0表示不使用,b從第二字節(jié)開始,占用4位,c占用4位。   

 

2. 由于位域不允許跨兩個字節(jié),因此位域的長度不能大于一個字節(jié)的長度,也就是說不能超過8位二進(jìn)位。   

 

3. 位域可以無位域名,這時它只用來作填充或調(diào)整位置。無名的位域是不能使用的。例如:     
struct k    
{    
int a:1    
int :2 /*該2位不能使用*/    
int b:3    
int c:2    
};    
從以上分析可以看出,位域在本質(zhì)上就是一種結(jié)構(gòu)類型, 不過其成員是按二進(jìn)位分配的。   

 

二、位域的使用位域的使用和結(jié)構(gòu)成員的使用相同,其一般形式為: 位域變量名•位域名 位域允許用各種格式輸出。    
main(){    
struct bs    
{    
unsigned a:1;    
unsigned b:3;    
unsigned c:4;    
} bit,*pbit;    
bit.a=1;    
bit.b=7;    
bit.c=15;    
pri

 

改錯:
#i nclude <stdio.h>

 

int main(void) {

 

    int **p;
    int arr[100];

 

    p = &arr;

 

    return 0;
}
解答:
搞錯了,是指針類型不同,
int **p; //二級指針
&arr; //得到的是指向第一維為100的數(shù)組的指針
#i nclude <stdio.h>
int main(void) {
int **p, *q;
int arr[100];
q = arr;
p = &q;
return 0;
}

 


下面這個程序執(zhí)行后會有什么錯誤或者效果:
#define MAX 255
int main()
{
   unsigned char A[MAX],i;//i被定義為unsigned char
   for (i=0;i<=MAX;i++)
      A[i]=i;
}
解答:死循環(huán)加數(shù)組越界訪問(C/C++不進(jìn)行數(shù)組越界檢查)
MAX=255 
數(shù)組A的下標(biāo)范圍為:0..MAX-1,這是其一..
其二.當(dāng)i循環(huán)到255時,循環(huán)內(nèi)執(zhí)行:
A[255]=255;
這句本身沒有問題..但是返回for (i=0;i<=MAX;i++)語句時,
由于unsigned char的取值范圍在(0..255),i++以后i又為0了..無限循環(huán)下去.

 

struct name1{
   char str;
   short x;
   int   num;
}

 

struct name2{
   char str;
   int num;
   short x;
}

 

sizeof(struct name1)=8,sizeof(struct name2)=12
在第二個結(jié)構(gòu)中,為保證num按四個字節(jié)對齊,char后必須留出3字節(jié)的空間;同時為保證整個結(jié)構(gòu)的自然對齊(這里是4字節(jié)對齊),在x后還要補(bǔ)齊2個字節(jié),這樣就是12字節(jié)。

 

intel:
A.c 和B.c兩個c文件中使用了兩個相同名字的static變量,編譯的時候會不會有問題?這兩個static變量會保存到哪里(棧還是堆或者其他的)?
static的全局變量,表明這個變量僅在本模塊中有意義,不會影響其他模塊。
他們都放在數(shù)據(jù)區(qū),但是編譯器對他們的命名是不同的。
如果要使變量在其他模塊也有意義的話,需要使用extern關(guān)鍵字。

 

struct s1
{
int i: 8;
int j: 4;
int a: 3;
double b;
};

 

struct s2
{
int i: 8;
int j: 4;
double b;
int a:3;
};

 

printf("sizeof(s1)= %d\n", sizeof(s1));
printf("sizeof(s2)= %d\n", sizeof(s2));
result: 16, 24
第一個struct s1
{
int i: 8;
int j: 4;
int a: 3;
double b;
};
理論上是這樣的,首先是i在相對0的位置,占8位一個字節(jié),然后,j就在相對一個字節(jié)的位置,由于一個位置的字節(jié)數(shù)是4位的倍數(shù),因此不用對齊,就放在那里了,然后是a,要在3位的倍數(shù)關(guān)系的位置上,因此要移一位,在15位的位置上放下,目前總共是18位,折算過來是2字節(jié)2位的樣子,由于double是8字節(jié)的,因此要在相對0要是8個字節(jié)的位置上放下,因此從18位開始到8個字節(jié)之間的位置被忽略,直接放在8字節(jié)的位置了,因此,總共是16字節(jié)。

 

第二個最后會對照是不是結(jié)構(gòu)體內(nèi)最大數(shù)據(jù)的倍數(shù),不是的話,會補(bǔ)成是最大數(shù)據(jù)的倍數(shù)

 

上面是基本問題,接下來是編程問題:

 


本人很弱,這幾個題也搞不定,特來求救:
1)讀文件file1.txt的內(nèi)容(例如):
12
34
56
輸出到file2.txt:
56
34
12
(逆序)
2)輸出和為一個給定整數(shù)的所有組合
例如n=5
5=1+4;5=2+3(相加的數(shù)不能重復(fù))
則輸出
1,4;2,3。
望高手賜教??!

 

第一題,注意可增長數(shù)組的應(yīng)用.
#i nclude <stdio.h>
#i nclude <stdlib.h>

 

int main(void)
{
         int MAX = 10;
int *a = (int *)malloc(MAX * sizeof(int));
int *b;
    
FILE *fp1;
FILE *fp2;

 

fp1 = fopen("a.txt","r");
if(fp1 == NULL)
{printf("error1");
    exit(-1);
}

 

    fp2 = fopen("b.txt","w");
if(fp2 == NULL)
{printf("error2");
    exit(-1);
}

 

int i = 0;
    int j = 0;

 

while(fscanf(fp1,"%d",&a[i]) != EOF)
{
i++;
j++;
if(i >= MAX)
{
MAX = 2 * MAX;
b = (int*)realloc(a,MAX * sizeof(int));
if(b == NULL)
{
printf("error3");
exit(-1);
}
a = b;
}
}

 

for(;--j >= 0;)
   fprintf(fp2,"%d\n",a[j]);

 

fclose(fp1);
fclose(fp2);

 

return 0;
}

 

第二題.
#i nclude <stdio.h>

 

int main(void)
{
unsigned long int i,j,k;

 

printf("please input the number\n");
scanf("%d",&i);
    if( i % 2 == 0)
        j = i / 2;
else
j = i / 2 + 1;

 

printf("The result is \n");
    for(k = 0; k < j; k++)
     printf("%d = %d + %d\n",i,k,i - k);
return 0;
}

 

#i nclude <stdio.h>
void main()
{
unsigned long int a,i=1;
scanf("%d",&a);
if(a%2==0)
{
     for(i=1;i<a/2;i++)
     printf("%d",a,a-i);
}
else
for(i=1;i<=a/2;i++)
        printf(" %d, %d",i,a-i);
}

 

兄弟,這樣的題目若是做不出來實在是有些不應(yīng)該, 給你一個遞規(guī)反向輸出字符串的例子,可謂是反序的經(jīng)典例程.

 

void inverse(char *p)
{
    if( *p = = '\0' ) 
return;
    inverse( p+1 );
    printf( "%c", *p );
}

 

int main(int argc, char *argv[])
{
    inverse("abc\0");

 

    return 0;
}

 

借簽了樓上的“遞規(guī)反向輸出”
#i nclude <stdio.h>
void test(FILE *fread, FILE *fwrite)
{
        char buf[1024] = {0};
        if (!fgets(buf, sizeof(buf), fread))
}



青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久嫩草精品久久久精品| 久久精品亚洲热| 亚洲午夜久久久| 美女视频黄免费的久久| 亚洲第一天堂av| 美日韩精品免费| 美女尤物久久精品| 91久久国产综合久久蜜月精品 | 日韩午夜视频在线观看| 欧美亚洲日本网站| 亚洲欧美激情视频| 亚洲一区二区三区四区中文| 欧美揉bbbbb揉bbbbb| 欧美一区二区在线观看| 亚洲午夜精品福利| 亚洲免费伊人电影在线观看av| 美女精品在线观看| 亚洲黑丝在线| 一区二区三区鲁丝不卡| 在线视频日韩| 在线观看日韩www视频免费 | 美女成人午夜| 欧美激情一区二区在线| 久久精品国产精品亚洲综合| 欧美 日韩 国产一区二区在线视频| 亚洲无线视频| 欧美黄色片免费观看| 欧美中文日韩| 欧美午夜大胆人体| 亚洲国产精品va| 国产一区二区三区免费在线观看| 亚洲国内自拍| 亚洲精品久久久久久一区二区| 国产精品夜夜夜一区二区三区尤| 国产亚洲一区二区在线观看| 亚洲第一综合天堂另类专| 国产欧美日韩精品专区| a91a精品视频在线观看| 99国产精品| 欧美巨乳波霸| 一区二区三区波多野结衣在线观看| 91久久久一线二线三线品牌| 久久久久久久性| 蜜臀99久久精品久久久久久软件| 黄色精品一区| 欧美va亚洲va香蕉在线| 亚洲国产精品免费| 亚洲九九九在线观看| 欧美日韩精品伦理作品在线免费观看| 亚洲高清在线精品| 夜夜爽夜夜爽精品视频| 午夜精品久久久久久久久久久| 亚洲美女中出| 欧美日韩国产成人高清视频| 91久久精品久久国产性色也91| 91久久国产精品91久久性色| 欧美日韩激情网| 香蕉av福利精品导航| 欧美福利在线| 亚洲综合色网站| 亚洲第一区色| 国产精品入口麻豆原神| 蜜臀av性久久久久蜜臀aⅴ四虎| av不卡免费看| 亚洲第一在线视频| 久久国产精品99精品国产| 亚洲第一区在线| 国产美女诱惑一区二区| 欧美精品一区三区在线观看| 欧美伊久线香蕉线新在线| 亚洲免费福利视频| 久久嫩草精品久久久精品一| 99国内精品久久| 亚洲精品乱码视频| 欧美日韩一区二区国产| 免费成人av在线| 老妇喷水一区二区三区| 久久九九国产精品| 亚洲欧美综合国产精品一区| 亚洲国产老妈| 亚洲精品在线视频| 亚洲精品在线免费| 亚洲精品综合久久中文字幕| 久久亚洲精选| 亚洲国产激情| 亚洲伦理久久| 亚洲网在线观看| 亚洲综合第一页| 久久经典综合| 欧美xart系列高清| 欧美日韩一区二区三区四区五区| 欧美激情在线有限公司| 国产精品高清在线| 亚洲美女毛片| 亚洲一区二区三区视频播放| 女同一区二区| 在线成人黄色| 亚洲高清视频在线观看| 国产精品视频大全| 亚洲一区二区欧美| 免费视频亚洲| 国产精品成人久久久久| 国产模特精品视频久久久久| 国产一区深夜福利| 亚洲乱码国产乱码精品精可以看| 99热免费精品| 免费视频最近日韩| 亚洲午夜小视频| 欧美日韩三级视频| 在线观看国产成人av片| 亚洲一区二区黄色| 欧美激情亚洲综合一区| 亚洲欧美中文在线视频| 欧美大片在线影院| 久久久精品欧美丰满| 欧美日韩第一页| 狠狠干成人综合网| 久久精品国产第一区二区三区最新章节 | 激情综合激情| 日韩一区二区久久| 老司机免费视频一区二区三区| 国产精品久久久久aaaa九色| 日韩一二三在线视频播| 欧美激情影音先锋| 久久夜色精品国产| 在线欧美日韩国产| 另类图片综合电影| 免费成人黄色| 久久亚洲不卡| 亚洲国内高清视频| 亚洲大片免费看| 嫩草国产精品入口| 亚洲欧洲日本一区二区三区| 亚洲欧美精品中文字幕在线| 一区二区日韩免费看| 欧美天堂亚洲电影院在线播放| 亚洲视频在线一区观看| 这里只有精品视频| 国产综合在线看| 亚洲精品1区2区| 欧美日韩专区在线| 久久只有精品| 国产精品www| 免费久久99精品国产| 欧美日韩视频在线| 久久国产直播| 欧美日韩国产色站一区二区三区| 欧美在线网址| 欧美三级视频在线播放| 男女视频一区二区| 国产精品一卡| 亚洲免费观看| 国产在线视频欧美| 亚洲毛片在线看| 亚洲片在线资源| 久久精品中文| 性18欧美另类| 国产精品视频福利| 99视频在线精品国自产拍免费观看 | 亚洲免费一在线| 欧美一区2区三区4区公司二百| 宅男噜噜噜66一区二区| 欧美成在线观看| 亚洲高清在线观看| 国产女人精品视频| 99re6这里只有精品视频在线观看| 在线观看亚洲| 牛牛影视久久网| 欧美激情a∨在线视频播放| 国产在线国偷精品产拍免费yy| 亚洲夜晚福利在线观看| 国产精品大全| 亚洲欧美美女| 久久深夜福利免费观看| 影音先锋久久久| 久久阴道视频| 亚洲黄色性网站| 亚洲欧美日韩爽爽影院| 国产精品av一区二区| 亚洲一区二区三区在线观看视频| 亚洲麻豆国产自偷在线| 欧美日韩在线三级| 欧美一激情一区二区三区| 免费在线观看精品| 亚洲视频在线视频| 1024精品一区二区三区| 国产精品高潮呻吟久久av黑人| 一二三区精品福利视频| 久热国产精品| 午夜精彩国产免费不卡不顿大片| 国内一区二区三区在线视频| 美腿丝袜亚洲色图| 久久亚洲春色中文字幕久久久| 欧美三日本三级少妇三2023| 久久精品国产免费观看| 亚洲毛片av| 1000部国产精品成人观看| 国产精品剧情在线亚洲| 欧美国产一区二区在线观看| 欧美亚洲日本一区|