0. 题目:
输出 "Hello, World!"
1. 分析:
使用 printf() 输出 "Hello, World!"。
2. 程序:ide
#include <stdio.h> int main() { printf("Hello, World!"); // printf() 中字符串的先后须要使用双引号 return 0; }
3. 输入输出:函数
Hello, World!code
4. 扩展知识:
printf() 是头文件 stdio.h 中定义的函数,调用格式为:教程
printf("<格式化字符串>", <参量表>);内存
0. 题目:
输出整数
1. 分析:
使用 printf() 与 %d 格式化输出整数。
2. 程序:ci
#include <stdio.h> int main() { int intNum; // 声明 int 变量 printf("输入一个整数: "); // printf() 输出字符串 scanf("%d", &intNum); // scanf() 格式化输入,"%d"表示整数格式 printf("输入的整数是: %d", intNum); // printf() 显示格式化输入 return 0; }
3. 输入输出:rem
输入一个整数: 255
输入的整数是: 255字符串
4. 扩展知识:
scanf() 是头文件 stdio.h 中定义的函数,从标准输入 stdin 读取格式化输入。io
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:无类型
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位,超出的部分会自动四舍五入。
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)输出时与赋值彻底相同。
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",就必须在在输入的两个整数之间加一个逗号。
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位有效数字,但并不影响存储的数据的精度。
0. 题目:
字符转 ASCII 码
1. 分析:
ASCII 定义了 128 个字符:
(1)0-3一、127(删除键)是控制字符
(2)空白字符:空格(32)、 制表符、 垂直制表符、 换行、 回车。
(3)可显示字符:a-z、A-Z、0-九、~、!、@、、%、^、&、#、$、*、(、)、-、+、{、}、[、]、'、"、<、>、,、?、/、|、\、_、:、;、.,还有顿号、。
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
0. 题目:
两数相除
1. 分析:
两数相除,若是有余数,输出余数
2. 程序:
#include <stdio.h> int main() { int dividend, divisor, quotient, remainder; printf("输入被除数、除数(以空格分隔): "); // scanf() 格式化输入,接收用户输入的两个整数 scanf("%d %d", ÷nd, &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
【注意!】除法“/”得出的商是被除数与除数相除的整数部分,不作四舍五入处理。
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
版权说明:本文的题目和例程 源于 菜鸟教程,做者从新编写了程序、注释和算例,并增长了难点分析。