0429练习

1、使用for循环打印99乘法表

#include 

int main(int argc, const char *argv[])
{
	int i,j;
	for(i=1;i<=9;i++)   //行数
	{
		for(j=i;j<=9;j++)    //列数
			printf("%d*%d=%d\t",i,j,i*j);
		printf("\n");
	}
	return 0;
}

0429练习_第1张图片
2、位运算
将data第[4]位清0,保持其他位不变 // & ~(1<<4)
将data第[7]位置1,保持其他位不变// | 1<<7
将data第[31:28]位清0,保持其他位不变 // & ~(0x1111<<28)
将data第[7:4]位置1,保持其他位不变 // | 0x1111<<4
将data第[15:11]位修改位10101,保持其他位不变// | 0x10101<<11 & ~(0x101<<12)

#include 

int main(int argc, const char *argv[])
{
	int data;
	data = 0xabcdefff;                        //abcdef f f //1111
	printf("data为:%#x\t",data);
	data = data & ~(1<<4);                    //abcdef e f //1110
	printf("第4位清0后为:%#x\n\n",data);

	data = 0xabcdef5f;                        //abcdef 5 f//0101
	printf("data为:%#x\t",data);
	data = data | 1<<7;                       //abcdef d f//1101
	printf("第7位置1后为:%#x\n\n",data);

	data = 0xfabcdeff;                        //f abcdeff //1111
	printf("data为:%#x\t",data);
	data = data & ~(15<<28);                  //0 abcdeff //0000
	printf("第[31;28]位清0后为:%#x\n\n",data);

	data = 0xabcdefaf;                        //abcdef a f//1010
	printf("data为:%#x\t",data);
	data = data | 15<<4;                      //abcdef f f//1111  
	printf("第[7:4]位置1后为:%#x\n\n",data);

	data = 0xabcdf7ef;                        //abcd f7 ef//1111 0111
	printf("data为:%#x\t",data);
	data = data | 21<<11;
	data = data & ~(5<<12);                   //abcd af ef//1010 1111
	printf("第[15:11]位置10101后为:%#x\n\n",data);

	return 0;
}

0429练习_第2张图片

3、终端输入行数,打印金字塔

#include 

int main(int argc, const char *argv[])
{
	int i,j,k,num;
	printf("请输入行数:");
	scanf("%d",&num);
	for(i=0;i<num;i++)//hang
	{
		for(j=0;j<num-i;j++)
			printf(" ");
		for(k=0;k<2*i+1;k++)
			printf("*");
		printf("\n");
	}
	return 0;
}    

0429练习_第3张图片

你可能感兴趣的:(c语言,开发语言)