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. 《Exception》第八次团队作业:Alpha冲刺(第四天)

    一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.掌握软件测试基础技术.2.学习迭代式增量软 ...

  2. CF739E Gosha is hunting(费用流,期望)

    根据期望的线性性答案就是捕捉每一只精灵的概率之和. 捕捉一只精灵的方案如下: 1.使用一个\(A\)精灵球,贡献为\(A[i]\) 2.使用一个\(B\)精灵球,贡献为\(B[i]\) 3.使用一个\ ...

  3. hdu 1693 插头dp入门

    hdu1693 Eat the Trees 题意 在\(n*m\)的矩阵中,有些格子有树,没有树的格子不能到达,找一条或多条回路,吃完所有的树,求有多少种方法. 解法 这是一道插头dp的入门题,只需要 ...

  4. 利用GitHub搭建Hexo博客并开启HTTPS

    Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. GitHub 是一个面向开源及私有软件项目的托管平台 ...

  5. SpringBoot+Maven聚合多项目打包成jar

    已我最近自己在玩的一个DEMO为例 taosir为pom.xml,其他子项目均为其modules,且为jar项目 eureka为注册中心.workflow为提供者.entrance为调用方 entra ...

  6. Bate版总结会议2

    本次会议主要是针对我们在冲刺阶段出现的问题进行的讨论.再有就是以后在开发中应该改进的地方. 问题一: 工作任务不能拖:因为任务一拖就很可能无法再规定的时间内完成,如果我们可以分配好任务就去做的话,我们 ...

  7. MyBatis学习总结(6)——调用存储过程

    一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_incr ...

  8. Linux 上安装 Zookeepr

    一.下载Zookeeper 百度网盘:https://pan.baidu.com/s/1BHV6vHcHIuj7lalvvR7w_g 密码:csvk 二.解压缩包 tar -zxvf zookeepe ...

  9. python微框架Bottle(http)

    环境: win7系统 Python2.7 一 背景和概述 眼下项目中须要加入一个激活码功能,打算单独弄一个httpserver来写. 由于之前的游戏中已经有了一套完整的激活码生成工具和验证httpse ...

  10. [JZOJ NOIP2018模拟10.21]

    考试之前我刚刚领略到了特判的重要性,没想到T2的两个子任务还是写挂了,丢了20分 考试的感觉不行,一路打的都是暴力,正解的思路想到一半就断了推不下去 T1:逛公园 题目链接: https://jzoj ...