c语言作业(一)

这篇博客详细记录了作者在完成C语言作业时,针对printf函数的使用和理解。作业内容涵盖基本的输入输出操作,通过实例解析了如何运用printf实现变量的打印展示,进一步巩固了C语言的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

练习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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值