初学编程——编程练习
来源:互联网 发布:健身书籍知乎 编辑:程序博客网 时间:2024/06/06 11:04
在学习了编程之后,将自己写的代码和老师的相比,感觉自己太菜了。我将编程题做了一些总结,将自己的代码做了改进。
1. 给定两个整形变量的值,将两个值的内容进行交换。
方法一、
#include<stdio.h>
int main()
{
int num1,num2,tmp=0;
num1=10;
num2=20;
tmp=num1;num1=num2;num2=tmp;
printf("num1=%d\n",num1);
printf("num2=%d\n",num2);
return 0;
}
方法二:
#include<stdio.h>
int main()
{
int num1=10;
int num2=20;
num1=num1^num2;
num2=num1^num2;
num1=num1^num2;
printf("num1=%d\nnum2=%d\n",num1,num2);
return 0;
}
方法三:
#include<stdio.h>
int main()
{
int a=10,b=20;
void swap(int *x,int *y);
swap(&a,&b);
printf("a=%d\n",a);
printf("b=%d\n",b);
return 0;
}
void swap(int *x,int *y)
{
int temp=0;
temp=*x;*x=*y;*y=temp;
}
2. 求10 个整数中最大值。
#include<stdio.h>
int main()
{
int i,arr[10]={0},m=0;
printf("请输入十个数字:\n");
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
m=arr[0];
for(i=1;i<10;i++)
{
if(arr[i]>m)
m=arr[i];
}
printf("最大数是%d\n",m);
return 0;
}
3. 写一个函数返回参数二进制中 1 的个数
比如: 15 0000 1111 4 个 1
程序原型:
int count_one_bits(unsigned int value)
{
// 返回 1的位数
}
#include<stdio.h>
int count_one_bits(int value)
{
int i=0;
while(value!=0)
{
i++;
value=value&(value-1);
}
return i;
}
int main()
{
int num,ret=0;
int count_one_bits(int value);
printf("请输入数字:\n");
scanf("%d",&num);
ret=count_one_bits(num);
printf("%d的二进制中1的个数是%d\n",num,ret);
return 0;
}
4.将数组A中的内容和数组B中的内容进行交换。(数组一样大)
#include<stdio.h>
int main()
{
int a[4]={1,2,3,4},b[5]={5,6,7,8,9};
int temp=0,i=0;
for(i=0;i<4;i++)
{
temp=a[i];a[i]=b[i];b[i]=temp;
}
for(i=0;i<4;i++)
{
printf("a[%d]=%d ",i,a[i]);
}
printf("\n");
for(i=0;i<4;i++)
{
printf("b[%d]=%d ",i,b[i]);
}
printf("\n");
return 0;
}
5.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
#include<stdio.h>
int main()
{
int num,i;
printf("请输入数字:\n");
scanf("%d",&num);
for(i=30;i>=0;i-=2)
{
printf("%d ",(num>>i)&1);
}
printf("\n");
for(i=31;i>=1;i-=2)
{
printf("%d ",(num>>i)&1);
}
printf("\n");
return 0;
}
6.将三个数按从大到小输出。
#include<stdio.h>
int main()
{
int a,b,c;
void swap(int *x,int *y);
printf("请输入三个数字:\n");
scanf("%d%d%d",&a,&b,&c);
if(a<b)swap(&a,&b);
if(a<c)swap(&a,&c);
if(b<c)swap(&b,&c);
printf("将三个数按从大到小排列 :\n");
printf("%d %d %d\n",a,b,c);
return 0;
}
void swap(int *x,int *y)
{
int temp=0;
temp=*x;*x=*y;*y=temp;
}
7.求两个数的最大公约数和最大公倍数。
#include<stdio.h>
int main()
{
int a,b,c,n=0,i;
printf("请输入两个数字:\n");
scanf("%d%d",&a,&b);
n=a;
if(n>b)n=b;
for(i=1;i<=n;i++)
{
if((a%i==0)&&(b%i==0))c=i;
}
printf("%d与%d的最大公约数是:%d\n",a,b,c);
printf("%d与%d的最小公倍数是:%d\n",a,b,(a*b)/c);
return 0;
}
- 初学编程——编程练习
- 初学编程
- 初学编程
- 初学编程
- 初学编程
- 初学编程
- 初学编程
- 初学编程
- 初学编程---高效编程
- 5个适合初学python的编程练习
- 文件编程——系统文件编程练习
- 编程练习——红黑树(RedBlackTree)
- 编程练习——伸展树(SplayTree)
- 编程练习——堆heap
- 编程练习——huffman编码
- web编程——Servlet基础练习
- 编程练习4——类
- 编程练习5——数独
- HashMap和Hashtable的区别
- Java 基础【05】你的多继承纳?
- Eclipse_JD-Eclipse plugin
- unity3D序列化参数可以设置枚举的方法
- MariaDB_About the MariaDB Java Client
- 初学编程——编程练习
- MariaDB_Setting Character Sets and Collations
- DUBBO分布式服务框架与SpringMVC+Zookeeper实现服务提供和消费
- Linux 安装openmpi
- Retrofit+Rxjava问题
- 欢迎使用CSDN-markdown编辑器
- Struts2_基于注解的Action配置
- Caffe+Anconda3+VS2015+Win10(64位)环境搭建
- Struts2_动态方法调用