1. 给定两个×××变量的值,将两个值的内容进行变换。

(1)        #include<stdio.h>

int main()

{

   int a=0;

   int b=0;

   int tmp=0;

   scanf("%d %d",&a,&b);

   tmp=a;

   a=b;

   b=tmp;

   printf("a=%d\nb=%d\n",a,b);

return 0;

}

(2)   #include<stdio.h>

void swap(int *a,int *b)

{

int tmp=*a;

*a=*b;

*b=tmp;

}

int main()

{

int a=0;

int b=0;

int tmp=0;

scanf("%d %d",&a,&b);

swap(&a,&b);

printf("a=%d\nb=%d\n",a,b);

return 0;

2.不允许创建临时变量,交换两个数的内容。

#include<stdio.h>

int main()

{

int a;

int b;

scanf("%d %d",&a,&b);

a=a^b;

b=a^b;

a=a^b;

printf("a=%d\nb=%d\n",a,b);

return 0;

}

3.求10个整数中的最大值。

#include<stdio.h>

int main()

{

int arr[10]={1,2,3,4,5,6,7,8,9,10};

int max=0;

int i=0;

max=arr[0];

for(i=1;i<sizeof(arr)/sizeof(arr[i]);i++)

{

if(arr[i]>max);

{

           max=arr[i];

}

}

printf("max=%d\n",max);

return 0;

}

 

4.写一个函数返回参数二进制中1的个数。

比如:15     0000 1111     41

程序原型:

int count_one_bits(unsigned int value)

{

//返回1的位数

}

#include<stdio.h>

int count_one_bits(unsigned int value)

{

int count=0;

while(value)

{

if(value%2==1)

{

count++;

}

value/2;

}

return count;

}

int main

{

unsigned int num=0;

int ret=0;

scanf("%d",&num);

ret=count_one_bits(num);

printf("count=%d\n",ret);

return 0;

}