Part1:格式化输出函数printf()和格式化输入函数scanf()

 1 /*
 2 《C语言程序设计教程学习指导》p118 实验内容(1)
 3 这是一个常用格式控制符使用示例
 4 运行程序,结合运行结果,对照每一行printf()中的格式控制符,理解和巩固其功能和用法
 5 */
 6 #include <stdio.h>
 7 int main() {
 8 int x=1234;
 9 float f=123.456;
10 double m=123.456;
11 char ch='a';
12 char a[]="Hello, world!"; // 定义一个数组a,数组中连续存放了字符串常量hello,world!
13 int y=3, z=4;
14 printf("%d %d\n", y, z);
15 printf("y=%d, z=%d\n", y,z);
16 printf("%8d,%2d\n", x,x);
17 printf("%f, %8f, %8.1f, %0.2f, %.2e\n",f,f,f,f,f);
18 printf("%lf\n",m);
19 printf("%3c\n", ch);
20 printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);
21 return 0;
22 }

注意修饰符的使用。对于整数、实数和字符串,[.precision]的功能并不相同。plus:对于无符号数和实数,[#]的作用也大相径庭;有符号的整数、无符号的整数、实数、字符和字符串的输出一般形式不同。

更改前:

 1 /*
 2 《C语言程序设计教程学习指导》p119 实验内容(2)
 3 这是一个格式化输入输出函数及格式符使用练习
 4 找出两处错误,修改并运行程序
 5 为a1,a2,a3,c1,c2,c3,x,y输入数据,使得:
 6 a1=1,a2=2,a3=3,c1='a',c2='b',c3='c', x=1.5, y=2.5
 7 */
 8 #include <stdio.h>
 9 int main() {
10 double x,y;
11 char c1,c2,c3;
12 int a1,a2,a3;
13 scanf("%d%d%d",a1,a2,a3);
14 printf("%d,%d,%d\n",a1,a2,a3);
15 scanf("%c%c%c",&c1,&c2,&c3);
16 printf("%c%c%c\n",c1,c2,c3);
17 scanf("%f,%lf",&x,&y);
18 printf("%f,%lf\n",x,y);
19 return 0;
20 }

更改后:

 1 /*
 2 《C语言程序设计教程学习指导》p119 实验内容(2)
 3 这是一个格式化输入输出函数及格式符使用练习
 4 找出两处错误,修改并运行程序
 5 为a1,a2,a3,c1,c2,c3,x,y输入数据,使得:
 6 a1=1,a2=2,a3=3,c1='a',c2='b',c3='c', x=1.5, y=2.5
 7 */
 8 #include <stdio.h>
 9 int main() {
10 double x,y;
11 char c1,c2,c3;
12 int a1,a2,a3;
13 scanf("%d%d%d",&a1,&a2,&a3);
14 printf("%d,%d,%d\n",a1,a2,a3);
15 scanf("%c%c%c",&c1,&c2,&c3);
16 printf("%c%c%c\n",c1,c2,c3);
17 scanf("%lf,%lf",&x,&y);
18 printf("%lf,%lf\n",x,y);
19 return 0;
20 }

即第13行缺少了取地址运算符"&";双精度变量x对应双精度格式%lf

plus:

务必原样输入的情况:格式控制符中出现常规字符(包括转义字符)

使用格式控制符%c输入单个字符空格和转义字符均作为有效字符被输入

系统认为数据输入结束的情况:1、空格、回车、tab;2、[width];3、非法输入

在输入多个数据时若前面数据的输入遇到非法字符且输入的非法字符不是格式控制字符串中的常规字符则将影响后面数据输入

Part2:

①putchar()

 1 /*
 2 putchar()可以用于在屏幕上输出单个字符
 3 括号中要给出想要输出的字符参数,参数可以是字符型常量/变量/表达式
 4 如果使用这个函数,需要在程序前面加上#include <stdio.h>
 5 */
 6 #include <stdio.h>
 7 int main() {
 8 char ch;
 9 ch = 'A';
10 putchar(ch); // 参数ch是字符型变量
11 putchar(ch+32); // 参数ch+32是字符型表达式
12 putchar('\x41'); // 参数是字符型常量,是用十六进制表示的转义字符,是'A'的ASCⅡ码值
13 putchar('\n'); // 参数\n是字符型常量,是转义字符,表示换行
14 return 0;
15 }

ch为一个字符变量/常量/表达式,=printf("%c",ch)

②getchar()

 1 /*
 2 getchar()可以用于从键盘上输入单个字符
 3 括号中不需要参数
 4 如果输入成功,函数会返回用户从键盘输入的字符
 5 如果使用这个函数,需要在程序前面加上#include <stdio.h>
 6 */
 7 #include <stdio.h>
 8 int main() {
 9 char ch;
10 ch = getchar(); // 用户从键盘输入字符,如果输入成功,输入的字符被赋值给ch
11 putchar(ch); // 使用putchar()输出字符变量ch中存放的字符
12 printf("%c",ch); // 使用printf()和格式符%c输出单个字符
13 return 0;
14 }

功能为输入一个字符,若输入不止一个字符,则后续的getchar调用不会再等待用户按键而直接读取缓冲区中的字符直到读完

Part3:if语句

 1 /*
 2 单分支if语句使用示例
 3 从键盘上输入两个整数分别给a和b
 4 如果a>b,就交换,使得a里面存放小的数,b里面存放大的数
 5 */
 6 #include <stdio.h>
 7 int main() {
 8 int a,b;
 9 int t; // 用于交换a和b时,作为中间变量
10 printf("输入两个整数给a和b:\n");
11 scanf("%d%d",&a,&b);
12 if(a>b) {
13 t = a;
14 a = b;
15 b = t;
16 }
17 printf("a=%d, b=%d\n",a,b);
18 return 0;
19 }

仅当if后只有一条语句时,{}才能省略

if...else

 1 /*
 2 二分支if语句使用示例
 3 从键盘上输入一个整数给n,判断n是奇数还是偶数
 4 */
 5 #include <stdio.h>
 6 int main() {
 7 printf("输入一个整数给n:\n");
 8 scanf("%d",&n);
 9 if(n%2)
10 printf("n是奇数.\n");
11 else
12 printf("n是偶数.\n");
13 return 0;
14 }

If...else if

 1 /*
 2 多分支if语句示例
 3 输入1,2,3...的不同整数,显示不同提示信息
 4 */
 5 #include <stdio.h>
 6 int main() {
 7 int level;
 8 printf("输入现在状态等级(1-5): ");
 9 scanf("%d",&level);
10 if(level == 1)
11 printf("high翻了:)\n");
12 else if(level == 2)
13 printf("low爆了:(\n");
14 else
15 printf("一言难尽,无法概括。。。\n");
16 return 0;
17 }

以上三种条件语句简洁明了,没有过多解读。

Part 4 switch

 1 /*
 2 switch语句使用示例
 3 输入1,2,3...的不同整数,显示不同提示信息
 4 */
 5 #include <stdio.h>
 6 int main() {
 7 int level;
 8 printf("输入现在状态等级(1-5): ");
 9 scanf("%d",&level);
10 switch(level) {
11 case 1: printf("high翻了:)\n"); break;
12 case 2: printf("low爆了:(\n"); break;
13 default: printf("一言难尽,无法概括。。。\n");
14 }
15 return 0;
16 }

switch语句中括号里表达式的值必须是整型或字符型;语句序列中是否有break语句会影响程序执行流程

去掉case 1和case 2最后的break, 保存并重新编译后,再次运行,分别输入1和2:

输入1:

输入现在状态等级(1-5): 1
high翻了:)
low爆了:(
一言难尽,无法概括。。。--------------------------------
Process exited after 0.5854 seconds with return value 0
请按任意键继续. . .

输入2:

输入现在状态等级(1-5): 2
low爆了:(
一言难尽,无法概括。。。--------------------------------
Process exited after 0.4865 seconds with return value 0
请按任意键继续. . .

遇到break则跳出,否则一直执行

Part 5

 1   /*编程模拟用户做选择题的情况:要求用户从键盘输入一个答案选项(A,B,C,D之一),如果用户答案是'A',则输出提示信息"Binggo, you are right~",否则,输出提示信息"try again~"。*/
 2  #include<stdio.h>
 3  int main()
 4  {
 5     char ch;
 6     printf("输入一个答案(A,B,C,D之一):") ;
 7     ch=getchar(); 8     switch(ch)
 9     {
10       case 'A':printf("Binggo, you are right~");break;
11       default:printf("try again~");break;
12      }
13      return 0;
14  }

 1  #include<stdio.h>
 2  int main()
 3  {
 4     char ch;
 5     printf("输入一个答案(A,B,C,D之一):") ;
 6     scanf("%c",&ch);
 7     switch(ch)
 8     {
 9       case 'A':printf("Binggo, you are right~");break;
10       default:printf("try again~");break;
11      }
12      return 0;
13  }

 1 #include <stdio.h>
 2 int main()
 3 {
 4     char ch;
 5     printf("请输入你的答案(A,B,C or D):");
 6     scanf("%c",&ch);
 7     if(ch=='A')
 8      printf("bingo,you are right~");
 9     else
10      printf("try again~");
11     return 0;
12 }

Plus:

第一次试验的十转二,我在第一篇中展示为死循环的错误结果,今终于做出如下改动:

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int x,y,z=0,k=1;
 5     printf("输入一个正整数\n");
 6     scanf("%d",&x);
 7     while(x!=0||y!=1)
 8     {
 9         y=x%2;
10         x/=2;
11         z+=y*k;
12         k*=10;
13     }
14     printf("%d\n",z);
15     return 0;
16  }

即:改变了while括号中的条件,但仅能计算十进制为1~1023的数。之后将继续不断改进。

评论地址:

https://www.cnblogs.com/jiuyuan/p/10645894.html

https://www.cnblogs.com/nuist-tyl/p/10643576.html

https://www.cnblogs.com/NyaNyaGoose/p/10640071.html

转载于:https://www.cnblogs.com/lizhangrui/p/10588786.html

实验二实验结论实验总结与体会相关推荐

  1. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  2. 计算机图形学——实验二 几何图形变换实验

    实验二 几何图形变换实验 一.实验目的和要求 进一步掌握二维.三维变换的数学知识.变换原理.变换种类.变换方法: 利用OpenGL实现二维.三维图形变换,在屏幕上显示变换过程或变换结果: 掌握Open ...

  3. 20172310《程序设计与数据结构》(下)实验二:二叉树实验报告

    20172310<程序设计与数据结构>(下)实验二:二叉树实验报告 报告封面 课程:<软件结构与数据结构> 班级: 1723 姓名: 仇夏 学号:20172310 实验教师:王 ...

  4. matlab建立二阶开环系统仿真图,实验二 Simulink仿真实验

    实验二 Simulink仿真实验 一. 实验目的: 1.学会使用Matlab软件中的Simulink仿真工具. 2.了解二阶系统瞬态响应指标的意义其计算. 二. 实验内容及原理 1. 用Matlab仿 ...

  5. CSAPP实验二——bomb lab实验

    CSAPP实验二-- bomb lab实验 实验前准备 第一部分(phase_1) 第二部分(phase_2) 第三部分(phase_3) 第四部分(phase_4) 第五部分(phase_5) 第六 ...

  6. 【通信原理】实验二 角度调制实验

    目录 实验二 角度调制实验 一.实验目的 二.实验原理: 1.角度调制 (1)角度调制 (1)频率调制(FM): (2)相位调制(PM) (3)单音调制FM与PM (4)非相干解调 2.MATLAB中 ...

  7. 嵌入式系统 实验二 串口通信实验

    实验二 串口通信实验 一.实验目的 1.)了解 USART 的基本特性: 2.)掌握用库函数操作 USART 的方法: 3.)掌握如何使用 STM32 的串口发送和接收数据. 二.实验环境 1.)硬件 ...

  8. java 二叉树实验报告_20172310《程序设计与数据结构》(下)实验二:二叉树实验报告...

    20172310<程序设计与数据结构>(下)实验二:二叉树实验报告 报告封面 课程:<软件结构与数据结构> 班级: 1723 姓名: 仇夏 学号:20172310 实验教师:王 ...

  9. 实验二-洗衣机模糊推理实验-matlab/python

    实验二 洗衣机模糊推理系统实验 一. 实验目的 理解模糊逻辑推理的原理及特点,熟练应用模糊推理. 二. 实验内容 采用Matlad 7.0 的Fuzzy Logic Tool 设计洗衣机洗涤时间的模糊 ...

  10. 华软java综合实验二_2018-2019-2 20175311 实验二 《Java开发环境的熟悉》实验报告

    2018-2019-2 20175303 实验二 <Java开发环境的熟悉>实验报告 一.实验准备 1.了解掌握实验所要用到的三种代码 伪代码 产品代码 测试代码 2.IDEA中配置单元测 ...

最新文章

  1. java整形超过,Java整形溢出处理机制。
  2. 10G DB_LINK的问题
  3. libevent安装总结 - jinfg2008的专栏 - 博客频道 - CSDN.NET
  4. 生成 linq to sharepoint 对象模型sharepoint 母板页
  5. 安装nodejs插件并在sublime text 3上使用
  6. fit对数正态分布matlab,拟合对数正态分布使用Scipy与Matlab
  7. 跳马问题:马走日,请问马从0,0位置出发,走到x,y目标点,还必须走k步,有多少种走法
  8. 显示器偏色测试软件,显示器显示偏色
  9. 科学计算机反导按键,backspace是哪个键?最实用按键的大 揭秘
  10. 《Mysql必知必会》
  11. 【STM32】 中断详解
  12. 服务器开机只显示logo,Ubuntu 20.04 开机画面显示 OEM 厂商 Logo
  13. 「Java」- 八大排序
  14. android 判断手机系统语言是否是简体中文的最新方法
  15. 小程序毕设作品之微信体育馆预约小程序毕业设计成品(7)中期检查报告
  16. squirrel语言探索
  17. PostgreSQL函数——时间函数
  18. ESP-12S学习(2)--点亮LED
  19. 解决公式编辑软件(mathtype)相关问题
  20. Ubuntu 16.04 安装札记

热门文章

  1. proteus 0.96OLED IIC仿真 SSD1306 UG-2864HSWEG01
  2. 北京东方国信??有谁去过啊。。公司怎么样?
  3. js字符串根据某个特殊字符截取字符串
  4. SSO: Basic-Auth OAuth2 SAML OpeanID
  5. 双软企业的税收优惠政策怎么样?
  6. 宽带常见的有20 30 50 100兆指的是什么意思???
  7. 笔记本添加固态硬盘记
  8. 数据挖掘#特征工程(二)特征重要性及可解释性总结
  9. 解决面具magisk刷入模块卡开机问题
  10. Maven之pom.xml配置文件详解