C语言练习1

练习1:
          *
   ***
  *****
   ***
    *

#include<stdio.h>

#include<conio.h>

void main(void)

{

printf("      *\n");

printf(" ***   \n");

printf("*****  \n");

printf(" ***   \n");

printf("  *    \n");

getch();

}


练习2:
---------------------------------------------
 
                      ***www.baidu.com***
 
++++++++++++++++++++++++++++

  

#include<stdio.h>

#include<conio.h>

void main(void)

{

char a[]="----------------------------";

char b[]="***www.baidu.com***";

    char a[]="++++++++++++++++++++++++++++";

 

printf("%s\n",a);

printf("         %s\n",b);

printf("%s\n",a);

getch();

}

 


练习:
1.给定一个整型数a,设置a的bit3(为1),保证其他位不变。  

#include<stdio.h>

#include<conio.h>

void main(void)

{

int a=0x205;

a=a|(1<<3);

}


2.给定一个整形数a,设置a的bit3~bit7,保持其他位不变。

#include<stdio.h>

#include<conio.h>

void main(void)

{

int a=0x205;

a=a|(0x1f<<3);

}


3.给定一个整型数a,清除a的bit15,保证其他位不变。

#include<stdio.h>

#include<conio.h>

void main(void)

{

int a=0x205;

a=a&(~(0x1<<15));

printf("%x",a);

getch();

}

 

4.给定一个整形数a,清除a的bit15~bit23,保持其他位不变。

#include<stdio.h>

#include<conio.h>

void main(void)

{

int a=0x205;

a=a&(~(0x1ff<<15));

printf("%x",a);

}


5.给定一个整形数a,取出a的bit3~bit8。

#include<stdio.h>

int main(void)

{

int a=0xff;

int b=a&(0x3f<<3);

b=b>>3;

printf("0x%x",b);

return 0;

}


6.用C语言给一个整形数的bit7~bit17赋值937(其余位不受影响)。

#include<stdio.h>

#include<conio.h>

 

void main(void)

{

int a=0x205;

a=a&(~(0x7ff<<7));

a=(937<<7)|a;

printf("0x%x",a);

getch();

}


7.用C语言将一个整形数的bit7~bit17中的值加17(其余位不受影响)。

(1)

#include<stdio.h>
#include<conio.h>
 
void main(void)
{
int a=0x205;

a=(17<<7)+a;
printf("0x%x",a);
getch();
}

 (2)

#include<stdio.h>

#include<conio.h>

 

void main(void)

{

int a=0x205;

int b=a&(0x7ff<<7);

    a=a&(~(0x7ff<<7));

    b=17+(b>>7);

a=a+(b<<7);

printf("0x%x",a);

getch();

}


8.用C语言给一个整形数的bit7~bit17赋值937,同时给bit21~bit25赋值17.
 

#include<stdio.h>

#include<conio.h>

 

void main(void)

{

int a=0x205;

a=a&(~(0x7ff<<7));

a=a&(~(0x1f<<21));

a=(937<<7)|a;

a=(17<<21)|a;

 

printf("0x%x",a);

getch();

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值