C语言经典习题100例(十)46-50
时间:2022-07-22
本文章向大家介绍C语言经典习题100例(十)46-50,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
习题46
宏#define命令练习。
实现思路:
宏通过#define
命令定义,分为无参宏和带参宏,可以分别进行测试。这只是一种简单的字符串代换。
代码如下:
#include <stdio.h>
#define TRUE 1
#define FALSE 0
#define SQR(x) (x)*(x)
int main(){
int num, next = TRUE;
while(next){
printf("Please input a number:n");
scanf("%d", &num);
printf("Square = %dn", SQR(num));
if(num > 10){
next = FALSE;
}
}
return 0;
}
打印:
Please input a number:
1
Square = 1
Please input a number:
5
Square = 25
Please input a number:
9
Square = 81
Please input a number:
13
Square = 169
习题47
宏#define命令练习,替换一个代码块。
实现思路: 实现在代码中使用宏就像调用函数一样(当然,实际上并不是调用函数)。
代码如下:
#include<stdio.h>
#define EXCHANGE(a,b) { int t;t=a;a=b;b=t;}
int main()
{
int x = 12;
int y = 20;
printf("Before Exchange:x=%d; y=%dn",x,y);
EXCHANGE(x,y);
printf("After Exchange:x=%d; y=%dn",x,y);
return 0;
}
打印:
Before Exchange:x=12; y=20
After Exchange:x=20; y=12
习题48
宏#define命令练习,替换运算符号。
实现思路: 在进行比较运算的时候用定义的宏替换掉原来的符号。
代码如下:
#include <stdio.h>
#define GT >
#define LT <
#define EQ ==
int main()
{
int i, j;
printf("Please input two numbers:n");
scanf("%d %d", &i, &j);
if(i GT j)
printf("%d is greater than %d n", i, j);
else if(i EQ j)
printf("%d is equal to %d n", i, j);
else if(i LT j)
printf("%d is smaller than %d n", i, j);
else
printf("Errorn");
return 0;
}
打印:
Please input two numbers:
13 45
13 is smaller than 45
习题49
#if、#ifdef和#ifndef的综合应用。
实现思路: 预处理程序提供了条件编译的功能,可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。
代码如下:
#include<stdio.h>
#define MAX
#define MAXIMUM(x,y) (x>y)?x:y
#define MINIMUM(x,y) (x>y)?y:x
int main(){
int a=12, b=20;
#ifdef MAX
printf("%d is biggern", MAXIMUM(a,b));
#else
printf("%d is smallern", MINIMUM(a,b));
#endif
#ifndef MIN
printf("%d is smallern", MINIMUM(a,b));
#else
printf("%d is biggern", MAXIMUM(a,b));
#endif
#undef MAX
#ifdef MAX
printf("%d is biggern", MAXIMUM(a,b));
#else
printf("%d is smallern", MINIMUM(a,b));
#endif
#define MIN 1
#ifndef MIN
printf("%d is smallern", MINIMUM(a,b));
#else
printf("%d is biggern", MAXIMUM(a,b));
#endif
#if(MIN)
printf("%d is smallern", MINIMUM(a,b));
#else
printf("%d is biggern", MAXIMUM(a,b));
#endif
return 0;
}
打印:
20 is bigger
12 is smaller
12 is smaller
20 is bigger
20 is bigger
习题50
#include的应用练习。
实现思路: 文件包含使用尖括号表示在包含文件目录中去查找(包含目录是由用户在配置环境时设置的),而不在源文件目录去查找; 使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。
创建cp.h如下:
#define GT >
#define LT <
#define EQ ==
代码如下:
#include <stdio.h>
#include "cp.h"
int main()
{
int i, j;
printf("Please input two numbers:n");
scanf("%d %d", &i, &j);
if(i GT j)
printf("%d is greater than %d n", i, j);
else if(i EQ j)
printf("%d is equal to %d n", i, j);
else if(i LT j)
printf("%d is smaller than %d n", i, j);
else
printf("Errorn");
return 0;
}
打印:
Please input two numbers:
12 20
12 is smaller than 20
- Linux DNS之nslookup命令
- 【LEETCODE】模拟面试-108-Convert Sorted Array to Binary Search Tree
- javascript单线程环境实现真正的setTimeout
- 利用pipework与OVS构建跨主机容器网络
- Docker系列教程07-Dockerfile指令详解
- Docker系列教程06-实战:修改Nginx首页
- prompt() 方法,弹框带输入框
- Docker系列教程05-容器常用命令
- 数据分析利器-NumPy
- 【LEETCODE】模拟面试-134-Gas Station
- Docker系列教程17-默认bridge网络中配置DNS
- Docker系列教程16-network命令
- 【LEETCODE】模拟面试-206. Reverse Linked List
- Eslint检测出的问题如何自动修复
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 手把手教学-MySQL主从复制架构转换MGR架构(mysq_shell版)
- 手把手教学-MySQL主从复制架构转换MGR架构(手动版)
- 云数据库VS自建数据库,到底该如何抉择?
- 组复制常规操作-事务一致性保证 | 全方位认识 MySQL 8.0 Group Replication
- 面试题-算法:二叉树的前序遍历
- 黑客帝国中的代码雨
- 模型效果评价—混淆矩阵
- 用Python中的py2neo库调用neo4j,搭建简单关联图谱
- 520表白代码合集
- neo4j的安装配置及用途
- Python安装py2neo库
- Kubernetes 1.19.0环境搭建
- 高能!美团出品2020最新 “Android 面试必备宝典”,从基础到原理,一应俱全
- leetcode多线程之交替打印FooBar
- 3D星空图V2版——添加背景图片和音乐