1. 程式人生 > >c語言作業(一)

c語言作業(一)

老師要求所做的作業如下:

練習1:
        *
       ***
      *****
       ***
        *
程式碼如下所示:
#include<stdio.h>
int main()
{
    int a,b,c;
    for(a=0;a<=3;a++)
    {
        for(b=0;b<=2-a;b++)
            printf(" ");
        for(c=0;c<=2*a;c++)
            printf("*");
        printf("\n");
    }
    for
(a=0;a<=2;a++) { for(b=0;b<=a;b++) printf(" "); for(c=0;c<=4-2*a;c++) printf("*"); printf("\n"); } return 0; }
練習2:
----------------------------

     ***www.baidu.com***

++++++++++++++++++++++++++++

相應程式碼如下:
#include<stdio.h>
int main() { printf("----------------------------\n"); printf(" ***www.baidu.com***\n"); printf("++++++++++++++++++++++++++++\n"); } 我覺得這道題的思路不是這樣的,感覺這道題我寫的很麻瓜,應該錯了;
練習:
1.給定一個整型數a,設定a的bit3(為1),保證其他位不變。
相應程式碼如下:
#include<stdio.h>
int main()
{
    unsigned int a = 0x12345678;
    a = a | (1
<<3); printf("aΪ:0x%x.\n",a); return 0; } 2.給定一個整形數a,設定a的bit3~bit7,保持其他位不變。 相應程式碼如下: #include<stdio.h> int main() { unsigned int a = 0x12345678; a = a & (~(0x3f << 3));//我將3-7位置為0 printf("a的值為:0x%x.\n", a); return 0; } 3.給定一個整型數a,清除a的bit15,保證其他位不變。 相應程式碼如下: #include<stdio.h> int main() { unsigned int a = 0x12345678; a = a & (~(1<<15)); printf("a的值為:0x%x.\n", a); return 0; } 4.給定一個整形數a,清除a的bit15~bit23,保持其他位不變。 相應程式碼如下: #include<stdio.h> int main() { unsigned int a = 0x12345678; a =(a & (~(0x1FF << 15)));//將15-23位置0在跟a進行位與運算 printf("a的值為:0x%x.\n", a); return 0; } 5.給定一個整形數a,取出a的bit3~bit8。 相應程式碼如下: #include<stdio.h> int main() { unsigned int a = 0x12345678; a = (a & (0x3F << 3)) >> 3;//利用0x3f左移兩位,跟a位與運算,然後在右移2位,取到第3位跟第8位的數 printf("a的值為:0x%x.\n", a); return 0; } 6.用C語言給一個整形數的bit7~bit17賦值937(其餘位不受影響)。 相應程式碼如下: #include<stdio.h> int main() { unsigned int a = 0x12345678; a = a & (~(0x7FF<<7));//將7~ 17位置0 a = a | (937<<7); printf("a的值為:0x%x.\n", a); return 0; } 7.用C語言將一個整形數的bit7~bit17中的值加17(其餘位不受影響)。 相應程式碼如下: #include<stdio.h> int main() { unsigned int a = 0x12345678; a = a + ((17&0x1F)<<7);//將17左移7位到7~17位,然後與a相加 printf("a的值為:0x%x.\n", a); return 0; } 8.用C語言給一個整形數的bit7~bit17賦值937,同時給bit21~bit25賦值17. 相應程式碼如下: #include<stdio.h> int main() { unsigned int a = 0x12345678; unsigned int b = (a & (~(0x7FF<<7))) + (937 <<7); a =b & (~(0x1f<<21)) +(17<<21); printf("aµÄֵΪ£º0x%x.\n", a); return 0; }