2016計(jì)算機(jī)軟件水平考試程序員筆試精選試題

字號(hào):


    1.假定a和b為int型變量,則執(zhí)行下述語(yǔ)句組后,b的值為( )。
    a=1;
    b=10;
    do
    {
    b-=a;
    a++;
    } while (b--<0);
    (1)9 (2)-2 (3)-1 (4)8
    2設(shè)有變量說(shuō)明語(yǔ)句
    int a=1,b=0;
    則執(zhí)行以下程序段的輸出結(jié)果為( )。
    switch (a)
    {
    case 1:
    switch (b)
    {
    case 0:printf("**0**");break;
    case 1:printf("**1**");break;
    }
    case 2:printf("**2**");break;
    }
    printf("\n");
    (1)**0** (2)**0****2** (3)**0****1****2** (4)有語(yǔ)法錯(cuò)誤
    3.以下合法的數(shù)組說(shuō)明是( )。
    (1)char a[6]="string";
    (2)int a[5]={0,1,2,3,4,5};
    (3)char a="string";
    (4)INT a[]={0,12,3,4,5};
    4.下述程序代碼中有語(yǔ)法錯(cuò)誤的行是( )。
    int i,ia[10],ib[10]; /*第一行*/
    for (i=0;i<=9;i++) /*第2行*/
    ia=0; /*第3行*/
    ib=ia; /第4行*/
    (1)第1行 (2)第2行 (3)第3行 (4)第4行
    5.若已定義
    int a[9],*p=a;
    并在以后的語(yǔ)句中未改變p的值,則不能表示a[1]地址的表達(dá)式是( )。
    (1)p+1 (2)a+1 (3)a++ (4)++p
    答案:
    1.(4) 2.(2) 3.(4) 4.(4) 5.(3)
    所謂水仙花數(shù)是指一個(gè)三位正整數(shù),其各位數(shù)字的立方之和等于該正整數(shù)。例如編寫(xiě)程序,求得并輸出全部水仙花數(shù)的個(gè)數(shù)。請(qǐng)?zhí)羁胀晟瞥绦颉?BR>    #include
    main()
    {
    int hun,ten,one; /*百位數(shù)、十位數(shù)、個(gè)位數(shù)*/
    int num,count=0;
    for (num=100;_____(1)_____;num++)
    {
    hum=________(2)_________;
    ten=________(3)_________;
    one=________(4)_________;
    if (____________________)
    {
    printf("]",num);
    count++;
    }
    }
    printf("\n");
    printf("No.=%d\n",count);
    }
    (1) num<1000(或num<=999)
    (2) num/100
    (3) (num-hun*100)/10
    (4) num
    (5) num==hun*hun*hun+ten*ten*ten+one*one*one
    (或hun*100+ten*10+one== hun*hun*hun+ten*ten*ten+one*one*one)
    請(qǐng)寫(xiě)出執(zhí)行下述程序的輸出結(jié)果。
    #include
    main()
    {
    int i=100,j=34,k=-63,m=4;
    int u=-15,v=71,w=27;
    i+=j;
    j-=k;
    k*=-m;
    m/=3*j-1;
    u%=v-2*w;
    printf("i=%d,j=%d,k=%d,m=%d,u=%d",i,j,k,m,u);
    答案:i=134,j=97,k=252,m=0,u=-15
    閱讀下述程序,寫(xiě)出運(yùn)行結(jié)果。
    #include
    main()
    {
    int a,y;
    a=10;
    y=0;
    do
    {
    a+=2;
    y+=a;
    printf("a=%d,y=%d\n",a,y);
    if (y>20)
    break;
    } while (a=14);
    printf("a=%d\n",a);
    }
    答案:
    a=12 y=12
    a=16 y=28
    a=16
    提示:首先第一次的結(jié)果不用說(shuō)了?需要的話,請(qǐng)先把C的書(shū)再讀一遍先!
    a=12 y=12
    接著大家要看仔細(xì),if(y>20) break;難點(diǎn)在此,意思是當(dāng)上面的Y>20時(shí)結(jié)束這一段,再去判斷While的條件,所以這里會(huì)接著加,a=12+2=14 y=14+12=26 ok!26>20,我們?nèi)ヅ袛鄔hile的條件吧,a=14,此時(shí)a就正好=14,再次循環(huán)·a=14+2=16 y=12+16=28,然后28>20跳出,a不等于14再次跳出,執(zhí)行最后一句輸出,a=16.
    #include
    main()
    {
    static int a[5][5]={
    {1,2,3,4,0},
    {2,3,4,0,6},
    {3,0,1,7,5},
    {0,0,2,4,1},
    {8,4,3,2,7}
    };
    int i,j;
    for (i=0;i<5;i++)
    {
    for (j=0;j<5;j++)
    {
    if (a[j]==0)
    break;
    printf("M",a[j]);
    }
    printf("\n");
    }
    答案:
    1 2 3 4
    2 3 4
    3
    8 4 3 2 7