Part 1html
1、格式化输出函数printf()算法
/*《C语言程序设计教程学习指导》p118 实验内容(1) 这是一个经常使用格式控制符使用示例 运行程序,结合运行结果,对照每一行printf()中的格式控制符,理解其功能和用法*/ #include <stdio.h> int main() { int x = 1234; float f = 123.456; double m = 123.456; char ch = 'a'; char a[] = "Hello, world!";// 定义一个数组a,数组中连续存放了字符串常量hello,world! int y = 3, z = 4; printf("%d %d\n", y, z); printf("y=%d, z=%d\n", y, z); printf("%8d,%2d\n", x, x); printf("%f, %8f, %8.1f, %0.2f, %.2e\n", f, f, f, f, f); printf("%lf\n", m); printf("%3c\n", ch); printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n", a, a, a, a, a); return 0; }
简单分析:编程
①转换说明及其打印的输出效果数组
②修饰符函数
2、格式化输入函数scanf() 学习
/*C语言程序设计教程学习指导》p119 实验内容(2) 这是一个格式化输入输出函数及格式符使用练习 找出两处错误,修改并运行程序 为a1,a2,a3,c1,c2,c3,x,y输入数据,使得: a1=1,a2=2,a3=3,c1='a',c2='b',c3='c', x=1.5, y=2.5*/ #include <stdio.h> int main() { double x, y; char c1, c2, c3; int a1, a2, a3; scanf_s("%d%d%d", &a1, &a2, &a3); printf("%d,%d,%d\n", a1, a2, a3); scanf_s("%c%c%c", &c1, &c2, &c3); printf("%c%c%c\n", c1, c2, c3); scanf_s("%lf,%lf", &x, &y); printf("%f,%lf\n", x, y); return 0; }
简单分析:本程序中加了下划线并加粗的即是修改的的地方,涉及到了scanf()中的利用&读取地址 和 精度问题。测试
其中&有点牵扯到了之后要学的 指针 问题,但就目前所学来讲,记住如下两点便可:spa
2. 若是用scanf()把字符串读入字符数组中,不要使用&设计
! ! ! ! ! ! ! !3d
对于printf(),%f通杀单精度和双精度
对于scanf(),%f和%lf才有区别:
scanf,它接受指针,经过指针向float存储和向double存储大不同
double对应%lf
float对应%f
Part 2
3、单个字符输出函数putchar()
/*putchar()能够用于在屏幕上输出单个字符 括号中要给出想要输出的字符参数,参数能够是字符型常量/变量/表达式 若是使用这个函数,须要在程序前面加上#include <stdio.h> */ #include <stdio.h> int main() { char ch; ch = 'A'; putchar(ch); // 参数ch是字符型变量 putchar(ch+32); // 参数ch+32是字符型表达式 putchar('\x41'); // 参数是字符型常量,是用十六进制表示的转义字符 putchar('\n'); // 参数\n是字符型常量,是转义字符,表示换行 return 0; }
简单分析:前三个putchar()便是经过运行程序来输出三个字符,而且咱们能够看到输出A,a的不一样表示形式。
4、单个字符输入函数getchar()
/*getchar()能够用于从键盘上输入单个字符 括号中不须要参数 若是输入成功,函数会返回用户从键盘输入的字符 若是使用这个函数,须要在程序前面加上#include <stdio.h> */ #include <stdio.h> int main() { char ch; ch = getchar(); // 用户从键盘输入字符,若是输入成功,输入的字符被赋值给ch putchar(ch); // 使用putchar()输出字符变量ch中存放的字符 printf("%c", ch); // 使用printf()和格式符%c输出单个字符 return 0; }
简单分析:本程序利用两种方式来输出字符,这是一种比较,咱们能够从中体会到一种算法优越性。
即——因为getchar()和putchar()只处理字符,因此他们比更通用的scanf()和printf()函数更快,更简洁!
注意getchar()和putchar()不须要转化说明,由于他们只处理字符。且这两个函数一般定义在stdio.h头文件中。
Part 3
5、if语句
①单分支if语句
/* 单分支if语句使用示例 从键盘上输入两个整数分别给a和b 若是a>b,就交换,使得a里面存放小的数,b里面存放大的数 */ #include <stdio.h> int main() { int a, b; int t; // 用于交换a和b时,做为中间变量 printf("输入两个整数给a和b:\n"); scanf_s("%d%d", &a, &b); if (a > b) { t = a; a = b; b = t; } printf("a=%d, b=%d\n", a, b); return 0; }
②双分支if语句
/*二分支if语句使用示例 从键盘上输入一个整数给n,判断n是奇数仍是偶数*/ #include <stdio.h> int main() { int n; printf("输入一个整数给n:\n"); scanf_s("%d", &n); if (n % 2) printf("n是奇数.\n"); else printf("n是偶数.\n"); return 0; }
③多分支if语句
/*多分支if语句示例 输入1,2,3...的不一样整数,显示不一样提示信息*/ #include <stdio.h> int main() { int level; printf("输入如今状态等级(1-5): "); scanf_s("%d", &level); if (level == 1) printf("high翻了:)\n"); else if (level == 2) printf("low爆了:(\n"); else printf("一言难尽,没法归纳。。。\n"); return 0; }
Part 4
6、switch语句
/*switch语句使用示例 输入1,2,3...的不一样整数,显示不一样提示信息*/ #include <stdio.h> int main() { int level; printf("输入如今状态等级(1-5): "); scanf_s("%d", &level); switch (level) { case 1: printf("high翻了:)\n"); break; case 2: printf("low爆了:(\n"); break; default: printf("一言难尽,没法归纳。。。\n"); } return 0; }
PS:以上是正常程序,下面分别是对break语句做用进行摸索:
①只去掉第一个break语句
②只去掉第二个break语句
③同时去掉两个break语句
Part 5
7、简单编程小练习
要求:用户从键盘输入一个答案选项(A,B,C,D之一),若是用户答案是'A',则输出提示信息"Binggo, you are right~",不然输出提示信息"try again~"。
①利用if语句
#include <stdio.h> int main() { char ch; printf("请输入你的答案(A,B,C or D):"); scanf_s("%c", &ch); if (ch == 'A') printf("binggo,you are right~"); else printf("try again~"); return 0; }
②利用switch语句
#include <stdio.h> int main() { char ch; printf("请输入你的答案(A,B,C or D):"); scanf_s("%c", &ch); switch (ch) { case 'A': printf("binggo,you are right~"); break; default: printf("try again~"); break; } return 0; }
Part 6
8、实验总结与体会
①对于printf()和scanf(),最重要的是要记清楚他们的转换说明和修饰符!!!具体的详见Part 1
②对于if语句:
使用测试条件控制程序是否执行条件后面的一条简单语句或复合句。若是测试表达式的值是非零值,则执行语句;若值是零,则不执行语句。
③对于switch语句:
能够在一系列以整数做为标签的语句中进行选择。若是紧跟在switch关键字后的测试条件的整数值与某标签匹配,程序就转至执行匹配的标签语句,而后在遇到break以前,继续执行标签语句后的语句。
④一处疑惑:
这里是直接利用老师给的源代码运行的,机房能够正常运行,可是在VS2017发现有错误,通过网上查阅,大多数建议定义入口点为WinMainCRTStartup,但实际操做无效果
以后发现新建文件时,没有给出扩展文件名.cpp。以后重命名,居然成功运行??!!
望各位大佬帮忙分析分析_|~|○
orz→小膜拜 OTZ→大膜拜 囧rz→ 囧膜拜 STO→反膜拜
以上即是个人本次做业,感谢阅读~
PS:给别人的评论
https://www.cnblogs.com/weiyuyang/p/10623037.html
https://www.cnblogs.com/super123-/p/10622606.html
https://www.cnblogs.com/zxy-345/p/10639762.html