【练习1】输出 "Hello, World!"

0. 题目:

输出 "Hello, World!"

1. 分析:

使用 printf() 输出 "Hello, World!"。

2. 程序:

#include <stdio.h>
int main()
{
printf("Hello, World!"); // printf() 中字符串的前后需要使用双引号
return 0;
}

3. 输入输出:

Hello, World!

4. 扩展知识:

printf() 是头文件 stdio.h 中定义的函数,调用格式为:

printf("<格式化字符串>", <参量表>);


【练习2】输出整数

0. 题目:

输出整数

1. 分析:

使用 printf() 与 %d 格式化输出整数。

2. 程序:

#include <stdio.h>
int main()
{
int intNum; // 声明 int 变量
printf("输入一个整数: "); // printf() 输出字符串
scanf("%d", &intNum); // scanf() 格式化输入,"%d"表示整数格式
printf("输入的整数是: %d", intNum); // printf() 显示格式化输入
return 0;
}

3. 输入输出:

输入一个整数: 255

输入的整数是: 255

4. 扩展知识:

scanf() 是头文件 stdio.h 中定义的函数,从标准输入 stdin 读取格式化输入。


【练习3】输出单个字符

0. 题目:

输出单个字符

1. 分析:

使用 printf() 与 %c 格式化输出一个字符。

2. 程序:

#include <stdio.h>
int main()
{
char oneChar; // 声明 char 变量
oneChar = 'C'; // 向变量赋值
printf("oneChar 的值为 %c", oneChar); // printf() 格式化输出
return 0;
}

3. 输入输出:

oneChar 的值为 C

4. 扩展知识:

基本数据类型

int:整型

short:短整型

long:长整型

float:浮点型(单精度)

double:浮点型(双精度)

char:字符型

void:无类型


【练习4】输出浮点数

0. 题目:

输出浮点数

1. 分析:

使用 printf() 与 %f 输出浮点数。

2. 程序:

#include <stdio.h>
int main()
{
float fVar1,fVar2; // 声明浮点数变量
fVar1 = 12.00123; // 向变量赋值
printf("fVar1 的值为 %f\n", fVar1); // printf() 格式化输出
fVar2 = 123.001234; // 向变量赋值
printf("fVar2 的值为 %f\n", fVar2); // printf() 格式化输出
return 0;
}

3. 输入输出:

fVar1 的值为 12.00123

fVar2 的值为 123.001236

【注意!】 fVar1 的值与赋值完全相同,但 fVar2 的的值与赋值不完全相同。这是因为 float 为单精度浮点数,内存中占 4个字节,有效数位是 7位。如果有效数字位数超过 7位,超出的部分会自动四舍五入。


【练习5】输出双精度数

0. 题目:

输出双精度数

1. 分析:

使用 printf() 与 %e 输出双精度数。

2. 程序:

#include <stdio.h>
{
double dVar1,dVar2; // 声明浮点数变量
dVar1 = 12.00123; // 向变量赋值
printf("dVar1 的值为 %Lf\n", dVar1); // 格式化输出:长实数
printf("dVar1 的值为 %Le\n", dVar1); // 格式化输出:科学计数法
dVar2 = 123.001234; // 向变量赋值
printf("dVar2 的值为 %Lf\n", dVar2); // 格式化输出:长实数
printf("dVar2 的值为 %Le\n", dVar2); // 格式化输出:科学计数法
return 0;
}

3. 输入输出:

dVar1 的值为 12.001230

dVar1 的值为 1.200123e+001

dVar2 的值为 123.001234

dVar2 的值为 1.230012e+002

【注意!】 double 为双精度浮点数,内存中占 8个字节,有效数位是 16位。dVar2 按科学计数法格式(Le)输出时虽然与赋值不完全相同,这只是格式化输出时的有效数字位数限制所致,但在实际存储和计算时都是与赋值完全相同的,因此在按长实数格式(Lf)输出时与赋值完全相同


【练习6】两个数字相加

0. 题目:

题目两个数字相加

1. 分析:

分析使用 scanf() 来接收输入, printf() 与 %d 格式化输出整数。

2. 程序:

#include <stdio.h>
int main()
{
int firstNum, secondNum, sumNum;
printf("输入两个整数(以空格分隔): ");
// scanf() 格式化输入,接收用户输入的两个整数
scanf("%d %d", &firstNum, &secondNum);
// 两个整数相加
sumNum = firstNum + secondNum;
// 输出结果
printf("%d + %d = %d", firstNum, secondNum, sumNum);
return 0;
}

3. 输入输出:

输入两个数(以空格分割): -1 99

-1 + 99 = 98

【注意!】 由于scanf()函数中定义的输入格式为"%d %d"(两个%d之间有一个空格),在输入时就必须严格按照定义的格式,在输入的两个整数之间加一个空格,否则可能出错。类似地,如果定义输入格式为"%d,%d",就必须在在输入的两个整数之间加一个逗号。


【练习7】两个浮点数相乘

0. 题目:

两个浮点数相乘

1. 分析:

输入两个浮点数,计算乘积。

2. 程序:

#include <stdio.h>
int main()
{
double firstNum, secondNum, productNum;
printf("输入两个浮点数(以空格分隔): ");
scanf("%lf %lf", &firstNum, &secondNum);
productNum = firstNum * secondNum; // 两个浮点数相乘
printf("%.2lf * %.2lf = %.2lf\n", firstNum,secondNum,productNum);
printf("%lf * %lf = %lf\n", firstNum,secondNum,productNum);
return 0;
}

3. 输入输出:

输入两个浮点数(以空格分割): 1.2345 66

1.23 * 66.00 = 81.48

1.234500 * 66.000000 = 81.477000

【注意!】(1)变量 secondNum 定义为浮点数,虽然输入为整数也是按浮点数存储的。(2)%.2lf 表示输出格式为保留2位有效数字,但并不影响存储的数据的精度。


【练习8】字符转 ASCII 码

0. 题目:

字符转 ASCII 码

1. 分析:

ASCII 定义了 128 个字符:

(1)0-31、127(删除键)是控制字符

(2)空白字符:空格(32)、 制表符、 垂直制表符、 换行、 回车。

(3)可显示字符:a-z、A-Z、0-9、~、!、@、、%、^、&、#、$、*、(、)、-、+、{、}、[、]、'、"、<、>、,、?、/、|、\、_、:、;、.,还有顿号、。

2. 程序:

#include <stdio.h>
int main()
{
char oneChar; // 声明 char 变量 printf("输入一个字符: ");
scanf("%c", &oneChar); // 读取用户输入
printf("%c 的 ASCII 为 %d", oneChar, oneChar); // %c 字符格式
return 0;
}

3. 输入输出:

输入一个字符: A

A 的 ASCII 为 65


【练习9】两数相除

0. 题目:

两数相除

1. 分析:

两数相除,如果有余数,输出余数

2. 程序:

#include <stdio.h>
int main()
{
int dividend, divisor, quotient, remainder; printf("输入被除数、除数(以空格分隔): ");
// scanf() 格式化输入,接收用户输入的两个整数
scanf("%d %d", &dividend, &divisor); // 输入被除数、除数 quotient = dividend / divisor; // 除法,分子除分母的整数部分
remainder = dividend % divisor; // % 为模运算,整除后的余数
printf("商 = %d, 余数 = %d", quotient,remainder);
return 0;
}

3. 输入输出:

输入被除数、除数(以空格分隔): 50 10 输出:商 = 5, 余数 = 0

输入被除数、除数(以空格分隔): 51 10 输出:商 = 5, 余数 = 1

输入被除数、除数(以空格分隔): 55 10 输出:商 = 5, 余数 = 5

输入被除数、除数(以空格分隔): 58 10 输出:商 = 5, 余数 = 8

【注意!】除法“/”得出的商是被除数与除数相除的整数部分,不做四舍五入处理。


【练习10】数值比较

0. 题目:

数值比较

1. 分析:

定义了两个整数变量,使用 if 来比较两个数值

2. 程序:

#include <stdio.h>
int main()
{
int firstNum, secondNum; printf("输入两个整数(以空格分隔): ");
scanf("%d %d", &firstNum, &secondNum); if(firstNum > secondNum)
printf("%d 大于 %d", firstNum,secondNum);
else if(firstNum < secondNum)
printf("%d 小于 %d", firstNum,secondNum);
else
printf("%d 等于 %d", firstNum,secondNum);
return 0;
}

3. 输入输出:

输入两个整数(以空格分割): -1 99

-1 小于 99


版权说明:本文的题目和例程 源于 菜鸟教程,作者重新编写了程序、注释和算例,并增加了难点分析。

C语言编程 菜鸟练习100题(01-10)的更多相关文章

  1. C语言编程 菜鸟练习100题(21-30)

    [练习21]计算自然数的和 0. 题目: 计算自然数的和 1. 分析: 练习使用 for 循环结构.for 循环允许一个执行指定次数的循环控制结构. 2. 程序: #include <stdio ...

  2. C语言编程 菜鸟练习100题(51-60)

    [练习51]矩阵转置 0. 题目: 矩阵的转置 1. 分析: 练习使用 for 循环嵌套,多维数组的表达. 2. 程序: #include <stdio.h> int main() { i ...

  3. C语言编程 菜鸟练习100题(41-50)

    [练习41]字符串翻转 0. 题目: 字符串翻转 1. 分析: 学习递归思想和方法. 2. 程序: 方法一: #include <stdio.h> void reverseSentence ...

  4. C语言编程 菜鸟练习100题(31-40)

    [练习31]判断质数 0. 题目: 判断质数 1. 分析: 质数(prime number),指大于 1的.且除 1 和本身以外没有其他因数的自然数. 2. 程序: #include <stdi ...

  5. C语言编程 菜鸟练习100题(11-20)

    [练习11]计算 int, float, double 和 char 字节大小 0. 题目: 计算 int, float, double 和 char 字节大小 1. 分析: 使用 sizeof 操作 ...

  6. Python 3.X 练习集100题 01

    有以下几个数字:1.2.3.4.5,能组成多少个互不相同且无重复数字的三位数?都是多少? 方法1: import itertools from functools import reduce lyst ...

  7. python经典例题100题01

    [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? ans = [i*100+j*10+k for i in range(1, 5) for j in ra ...

  8. C语言编程学习打造——做题游戏

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  9. python面试的100题(10)

    18.反转一个整数,例如-123 --> -321 class Solution(object): def reverse(self,x): if -10<x<10: return ...

随机推荐

  1. JAVAEE_02_BS/CS架构

    BS/CS架构 系统构架分为? C/S: Client/Server B/S: Browser/Server B/S的优缺点? 优点: 1. 不需要安装特定的客户端软件,只需要浏览器. 2. 升级只需 ...

  2. Erda MSP 系列 - 以服务观测为中心的 APM 系统设计:开篇词

    本文首发于 Erda 技术团队知乎账号,更多技术文章可点击 Erda 技术团队 作者:刘浩杨,端点科技 PaaS 技术专家,微服务治理和监控平台负责人,Apache SkyWalking PMC成员 ...

  3. 【Spring】SpringIoC大致流程

    目录 SpringIoC 是什么? 类图 大致过程 源码分析 SpringIoC 是什么? ​ 官方文档的解释是:IoC也称为依赖注入(DI).在此过程中,对象仅通过构造函数参数,工厂方法的参数或在构 ...

  4. Python基础之容易忘记的地方

    (1)编译型与解释型语言区别: 编译型:一次性,把所有代码编译成机器能识别的二进制码,再运行 代表语言:c,c++ 优点: 执行速度块 缺点: 开发速度慢,调试周期长 解释型:代码从上到下一行一行解释 ...

  5. 锁定项目的 node 版本

    一些老项目对 node 版本是有要求的,往往使用默认的新版本包安装不上,scripts 也跑不起来. 之前就遇到过运行一个小程序项目时,根据文档来,第一步安装就出错.本着办法总比问题多的理念,来一个解 ...

  6. Selenium3自动化测试【15】元素定位之Class、Name

    @ 目录 1.name定位 2.class定位 1.name定位 通过name定位是另外一种常用的定位元素的方式. 当一个元素存在name属性时,可以使用name定位,依旧以Bing搜索框为例(nam ...

  7. 06- 移动端APP兼容性测试以及APP兼容性测试手机选择与云测试技术

    在开始测试APP之前,应该考虑什么问题?或者如何选择设备?多少部手机测试兼容性最佳? 兼容性测试手机数量:主测手机 1 ,2(根据人员),辅助测试手机:用于兼容性测试.(50-60台最佳,至少5-20 ...

  8. 发现个利器--FastAPI(Py3.6+版本)

    from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"H ...

  9. hdu4829 带权并查集(题目不错)

    题意: Information Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

  10. 从苏宁电器到卡巴斯基第12篇:我在苏宁电器当营业员 IV

    卖iPhone首先是需要接受培训的 像iPhone这样的重点产品,并不是只要选好了人(营业员),说卖就能卖的,在正式销售之前需要接受厂家的培训.如果说人事关系或者产品源隶属于苹果,那么是由苹果中国公司 ...