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

 /*
《C语言程序设计教程学习指导》p118 实验内容(1)
这是一个常用格式控制符使用示例
运行程序,结合运行结果,对照每一行printf()中的格式控制符,理解和巩固其功能和用法
*/
#include <stdio.h>
int main() {
int x=;
float f=123.456;
double m=123.456;
char ch='a';
char a[]="Hello, world!"; // 定义一个数组a,数组中连续存放了字符串常量hello,world!
int y=, z=;
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 ;
}

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

更改前:

 /*
《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("%d%d%d",a1,a2,a3);
printf("%d,%d,%d\n",a1,a2,a3);
scanf("%c%c%c",&c1,&c2,&c3);
printf("%c%c%c\n",c1,c2,c3);
scanf("%f,%lf",&x,&y);
printf("%f,%lf\n",x,y);
return ;
}

更改后:

 /*
《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("%d%d%d",&a1,&a2,&a3);
printf("%d,%d,%d\n",a1,a2,a3);
scanf("%c%c%c",&c1,&c2,&c3);
printf("%c%c%c\n",c1,c2,c3);
scanf("%lf,%lf",&x,&y);
printf("%lf,%lf\n",x,y);
return ;
}

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

plus:

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

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

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

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

Part2:

①putchar()

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

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

②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 ;
}

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

Part3: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("%d%d",&a,&b);
if(a>b) {
t = a;
a = b;
b = t;
}
printf("a=%d, b=%d\n",a,b);
return ;
}

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

if...else

 /*
二分支if语句使用示例
从键盘上输入一个整数给n,判断n是奇数还是偶数
*/
#include <stdio.h>
int main() {
printf("输入一个整数给n:\n");
scanf("%d",&n);
if(n%)
printf("n是奇数.\n");
else
printf("n是偶数.\n");
return ;
}

If...else if

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

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

Part 4 switch

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

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

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

输入1:

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

输入2:

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

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

Part 5

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

  #include<stdio.h>
int main()
{
char ch;
printf("输入一个答案(A,B,C,D之一):") ;
scanf("%c",&ch);
switch(ch)
{
case 'A':printf("Binggo, you are right~");break;
default:printf("try again~");break;
}
return ;
}

 #include <stdio.h>
int main()
{
char ch;
printf("请输入你的答案(A,B,C or D):");
scanf("%c",&ch);
if(ch=='A')
printf("bingo,you are right~");
else
printf("try again~");
return ;
}

Plus:

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

 #include<stdio.h>
int main()
{
int x,y,z=,k=;
printf("输入一个正整数\n");
scanf("%d",&x);
while(x!=||y!=)
{
y=x%;
x/=;
z+=y*k;
k*=;
}
printf("%d\n",z);
return ;
}

即:改变了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

实验二实验结论&实验总结与体会的更多相关文章

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

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

  2. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验二 面向对象程序设计 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在tes ...

  3. 20172302 《Java软件结构与数据结构》实验二:树实验报告

    课程:<Java软件结构与数据结构> 班级: 1723 姓名: 侯泽洋 学号:20172302 实验教师:王志强老师 实验日期:2018年11月5日 必修/选修: 必修 实验内容 (1)参 ...

  4. 20155220java实验二 面向对象程序设计 实验报告

    一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 (一)单元测试 (1) 三种代码 伪代码 产 ...

  5. Linux内核分析实验二:mykernel实验指导(操作系统是如何工作的)

    计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要 ...

  6. 20145215&20145307《信息安全系统设计基础》实验二 固件设计

    20145215&20145307<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 linux ...

  7. 20145221高其&20145326蔡馨熠《信息安全系统设计基础》实验二 固件设计

    20145221高其&20145326蔡馨熠<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 l ...

  8. ORACLE 实验二

    实验二:数据操纵 实验学时:4学时 实验类型:综合型 实验要求:必修 一.实验目的 1.掌握SQL数据查询语句: 2.掌握SQL聚集函数的使用. 3.掌握SQL插入.改动.删除语句的使用. 二.实验内 ...

  9. 2018-2019-2 学号20175223 实验二《Java面向对象程序设计》实验报告

    目录 北京电子科技学院(BESTI)实验报告 实验名称:实验二 面向对象程序设计 实验内容.步骤与体会: 一.实验二 面向对象程序设计-1 二.实验二 面向对象程序设计-2 三.实验二 面向对象程序设 ...

  10. 实验二 用C语言表示进程的调度

    实验二 一. 实验目的 通过模拟进程的调度,进一步了解进程的调度的具体过程. 二. 实验内容和要求 1.进程PCB的结构体定义 2.定义队列 3.输入进程序列 4.排序(按到位时间) 5.输出进程运行 ...

随机推荐

  1. Unity2D 小游戏之 RocketMouse

    这个小游戏源自这里.这几天闲时捡了点 Unity(很久没有摸它了),顺手将这个小游戏移植到了 Unity5.5.0,除了 Parallax Scrolling 还有点小问题外,其它功能全部完整.部分代 ...

  2. WePy--使用zanUI组件

    因为Wepy 中不能直接引入zanUI组件, 好在还有百度, 参考链接 https://github.com/brucx/wepy-zanui-demo (感谢); 我的做法是将 源码下了下来, 源码 ...

  3. HDU 5763 Another Meaning (KMP/哈希+DP)

    题目大意:给你两个串,一长一短,如果长串中某个子串和短串完全相同,则这个子串可以被替换成"#",求长串所有的表达形式....... 比如"hehehehe"和& ...

  4. freeswitch 编码协商

    编辑 /usr/local/freeswitch/conf/sip_profiles/internal.xml 添加注释     <param name="inbound-zrtp-p ...

  5. CORS与JSONP的区别

    CORS与JSONP: a. JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求. b. 使用CORS,开发者可以使用普通的XMLHttpRequest发起请求和获得数据,比起JSON ...

  6. Java 多线程均匀处理同一个List中的数据

    需求:使用多线程来处理同一个List中的数据,希望每个线程处理的数量是均匀的 事例代码如下: public class Test { static class HandleThread extends ...

  7. 【【henuacm2016级暑期训练】动态规划专题 F】Physics Practical

    [链接] 我是链接,点我呀:) [题意] 给你n个数字 让你删掉最小的数字 使得: 剩余的数字中 "最大的数字"小于等于"最小的数字*2" [题解] 把数据从小 ...

  8. 在Action中获取servlet API

    Struts2的Action组件是不依赖servlet API 的.那么当你在action中的业务需要处理HttpServletRequest和HttpServletResponse的时候(比如要对响 ...

  9. 2015 Multi-University Training Contest 8 hdu 5389 Zero Escape

    Zero Escape Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tot ...

  10. php学习之道:php empty()和isset()的差别

    在使用 php 编写页面程序时,我常常使用变量处理函数推断 php 页面尾部參数的某个变量值是否为空,開始的时候我习惯了使用 empty() 函数,却发现了一些问题,因此改用 isset() 函数,问 ...