自考“高級語言程序設(shè)計(jì)”習(xí)題答案詳解(49)

字號:

9.2 填充題
    1.設(shè)有定義“# define F(N) 2*N”,則表達(dá)式 F(2+)的值是_____.
    「解」F(N)被定義成2*N,表達(dá)式F(2+3)被替換成2*2+3,其值是7.
    2.設(shè)有下列程序:
    # include
    main(int argc,int *argv[])
    { while( ——argc> 0) printf(“%s”,argv[argc]);
    printf(“\n”);
    }
    假定上述程序編譯連接成目標(biāo)程序名為p.exe,如果輸入如下的命令:
    P 123 AAA BBB ↓(其中的↓表示回車)
    則輸出結(jié)果是_____.
    「解」程序啟動時,參數(shù)argc的值是4,由于循環(huán)條件是一即組>0,是先減1后判大于0,循環(huán)共進(jìn)行三次,順序輸出argv[3],argv[2]和argv[1],即輸出BBBAAAl23.
    9.3 程序分析題
    1.閱讀下面程序,寫出程序運(yùn)行結(jié)果。
    # define PR(ar) printf(“%d,”, ar)
    main()
    { int j,a[] ={1,3,5,7, 9,11,15}, * p= a+5;
    for(j=3; j; j——)
    switch(j) { case 1:
    case 2: PR( * p++); break;
    case 3: PR(*(——p));
    }
    printf(“\n”);
    }
    「解」程序的宏定義PR以d格式輸出參數(shù)的值和遠(yuǎn)號字符。程序給數(shù)組a 賦初值,并由指針p指向元素a[5].程序讓j從3減至1,共循環(huán)三次。當(dāng)j是3時,讓p減1,并輸出p所指元素的值9;當(dāng) j是2和1時,輸出p所指的數(shù)組元素的值,并讓p增1,順序輸出9和11.所以
    程序輸出:
    9,9,11
    2.設(shè)下面的程序經(jīng)編譯連接后生成的目標(biāo)程序名為: ABC.EXE,寫出輸入以下命令行后的輸出:
    ABC FILE1 FILE2 ↓(其中的↓表示回車)
    # include
    main( int argc, char *argv[])
    { int i;
    printf(“%d \n”,argc);
    for(i=O;i
    printf(“\n”);
    }
    「解」程序首先輸出參數(shù)argv的值3,然后循環(huán)三次,順序輸出ABC、FILE1和FILE2,并回車