c语言作业(一)

来源:互联网 发布:什么是js面向对象编程 编辑:程序博客网 时间:2024/06/10 15:09

老师要求所做的作业如下:

练习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;}