问两道C语言作业题

一、定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参,输出交换后的两个值二、通过函数调用方式将一个十进制数转换成相应的二进制数... 一、定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参,输出交换后的两个值
二、通过函数调用方式将一个十进制数转换成相应的二进制数
展开
 我来答
百度网友83cdc1c
2013-06-27 · TA获得超过5790个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:831万
展开全部
1.
#define F(a,b)    \
do    \
{    \
    (a)=(a)^(b);    \
    (b)=(b)^(a);    \
    (a)=(a)^(b);    \
}while(0)
int main()
{
    int a=3,b=5;
    F(a,b);
    printf("a=%d,b=%d",a,b);
}

2.
#include <stdio.h>
char *fun(int n)
{
    static char s[100];
    int i=98;
    s[99]='\0';
    while(n)
    {
        s[i--]=n%2+'0';
        n/=2;
    }
    return s+i+1;
}
int main()
{
    int n;
    scanf("%d",&n);
    printf("%s",fun(n));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逐梦兮乐
2013-06-27 · TA获得超过6431个赞
知道大有可为答主
回答量:5151
采纳率:72%
帮助的人:1841万
展开全部
第二题如下
#include<stdio.h>
#include<conio.h>
int fun(int n)
{
if (n / 2 == 0)
return 1;
else
{
printf("%d", fun(n / 2));
return n % 2;
}
}

main()
{
int i;
clrscr();
printf("输入十进制数:");
scanf("%d", &i);
printf("转换成二进制数后为%d", fun(i));
}
第一题一会儿给你!
第一题如下
#include "stdio.h"

#define SWAP(a,b) {a=a+b;b=a-b;a=a-b;}

void main()
{
int x,y;
printf("输入两个数:");
scanf("%d%d",&x,&y);
SWAP(x,y);
printf("交换后为x=%d y=%d\n",x,y);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
等晨光的孩子
2013-06-27 · 超过37用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:69.4万
展开全部
#include<stdio.h>
#define f(a,b) a=a+b,b=a-b,a=a-b
void g(int k);
main()
{
int a,b,k,i,j;
printf("a=");
scanf("%d",&a);
printf("b=");
scanf("%d",&b);
f(a,b);
printf("交换后如下:\na=%d,b=%d\n",a,b);
printf("输入要转化的数字:");
scanf("%d",&k);
g(k);
}

void g(int k)
{
while(k)
{
printf("%d",k%2);
k/=2;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
009螃蟹
2013-06-27 · TA获得超过177个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:117万
展开全部
# include <stdio.h>
# define SWAP(a, b) ((a)=((a)+(b)-(b=a)))//宏
void print(int n)//输出二进制的函数
{
int i = 0;
for(i=0; i<=32; i++)
{
printf("%d", n<0);
n<<=1;
}
}
int main()
{
int a = 1;
int b = 2;
SWAP(a, b);
printf("a = %d\n", a);
printf("b = %d\n", b);
print(a);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘浪1988
2013-06-27
知道答主
回答量:55
采纳率:0%
帮助的人:17.3万
展开全部
// 无聊.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;
#define swap(a,b) (a)=(a)+(b);(b)=(a)-(b);(a)=(a)-(b);
void dtob(int n)
{
//递归出口条件是n为1
if( n == 1)
{
cout << n ;
return ;
}
dtob(n/2);
cout <<n % 2 ;
return ;
}

int _tmain(int argc, _TCHAR* argv[])
{
int a =10, b = 20;
swap(a,b);
cout << "a= " << a << " b = " << b <<endl;
dtob(128);
cout << endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式