编程实现任意输入两个判断字符型变量c1是否和c2,交换c1和c2的值。

理论上c2会等于\n,可是实际输出却直接变换行了,什么情况


getchar()每次只接收1个字符,而你打入了两个字符:一个是A,另一个是\n.当c1=getchar()执行后就把A从缓冲区中删除了并赋给了c1,但\n还留在缓冲区里;接着是c2=getchar();,它就把\n从缓冲区里删除并将其赋给c2.\n是“动作”字符,不是显示字符,所以你的代码输出很正确:c1=A,c2=后跟着个不可显示的动作字符产生了動作“回车”,所以“请……”就显示在了下一行……不信你可以把c2=getchar()改成;c2=‘B’;看看“请……”是不是紧接在c1=A,c2=B后面了?

100%的覆盖率听起来不错,但是究竟是c0,c1,c2,c3還是路径覆盖率呢?如果你无法区分他们,下面就是答案:

  • C0=覆盖到每条指令.
  • C1=覆盖到每一个分支.如:

即使没有针对i != 1的实际处理,在测试时依然需要测试i != 1嘚情况.

  • C2+C3 :则是每个if判断中的条件的真/假都要覆盖.(本人并不关心这个...)
  • C4即路径覆盖:覆盖到每种可能的路径.

以上的代码需要覆盖四种可能:

我个人观點是尝试把目标定在C0覆盖达到95%,C1,C2,C3覆盖达到70%.而C4通常是没有价值的(除了可能需要尽可能覆盖多的路径外)而且也很难覆盖,因为一个循环中可以包含無限的路径.

2、设圆的半径为r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体

积用scanf输入数据,输出计算结果。

3、输入一个华氏温度,要求输出摄氏温度,公式为:

4、编写程序,用getchar函數读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符并思考以下问题:(1)变量c1、c2应定义为字符型还是整型?还是都可以?(2)要求输出c1和c2值的ASCII碼,应如何处理?用putchar函数还是printf函数?

(3)整型变量与字符变量是否在任何情况下都可以互相代替?

5、写出以下程序的输出结果:

6、已知变量定义如下:

要求輸入a1、a2、c1、c2的值,正确的输入函数语句为:。

7、输入一个3位数,将其各数字反序输出(如输入456,输出654)

8、求前驱字符和后继字符输入一个字符,找出它嘚前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这3各字符及其对应的ASCII码值。

9、分析下列程序的租用:

若从键盘上输入小写字母a,则输出昰什么?程序第一行#include命令的作用是什么? 10、将从键盘输入的实型十进制数分离位整数部分和小数部分后输出如输入123.45,输出位:123.45=123+0.45

我要回帖

更多关于 判断字符型变量c1是否 的文章

 

随机推荐