您的位置:首页 > 编程语言 > C语言/C++

c语言作业(一)

2017-11-16 17:54 134 查看
老师要求所做的作业如下:

练习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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 printf