实验二

实验目的

1.掌握格式字符的使用方法,特别是%d,%f,%c,%s的基础用法。

2.掌握格式化输出函数printf()和格式化输入函数scanf()的用法。

3.掌握单个字符输出函数putchar()和单个字符输入函数getchar()的用法。

4.体验if语句和if...else语句的用法。

5.体验switch语句的用法。

实验内容

part 1.格式化输出函数printf()和格式化输入函数scanf()

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

 

注:1.输出项的类型与个数必须与控制字符串中格式字符的类型,个数一致。当有多个输出项时,各项之间用逗号分隔。

       2.控制字符由格式说明和普通字符组成。

实验结论:%d按十进制整数输出     %5d:数据长度<5,左补空格;否则按实际输出。

                  %f按浮点数输出             %lf:指定输出精度为double型;%.3f对实数指定小数点后位数(四舍五入),对字符串,指定实际输出位数。

                  %c按字符输出

                  %e按指数形式输出

                  %s按字符串输出

                  指定输出精度为双精度double型时,用格式符%lf.

/* 《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("%f,%lf\n",x,y);    
       return 0;
 } 

 

修改第一处为第一个scanf(),缺少地址运算符“&”。&a1表示变量a1的地址,该地址时编译系统在内存中给a1变量分配的地址。

修改第二处为第三个scanf(),格式说明有问题。变量x定义为double类型。%f改为%lf.

part 3.单个字符输出函数putchar()和单个字符输入函数getchar()

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

 

 

ch为一个字符变量或常量。

/* 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可赋值给字符变量。

part 3.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 0;
     } 

 

 执行过程:先计算if后面表达式的值,如果其值非0,则执行紧跟在if后面的语句序列,否则跳过该结构,执行后面的语句。

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

 

 if...else.

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

 

if...else if语句。

 part 4.

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

 switch语句。

switch后面表达式的值必须是整型或字符型。

有break情形:

无break情形:

 

part 5.

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

  

实验总结与体会

1.格式化输入输出函数的格式符使用,还有修饰符的理解,用程序运行出来更直观易于体会。

2.if语句中的表达式要注意。

3.switch,像是时钟上的指针。注意break的使用。

 

posted @ 2019-03-27 22:40  rosalie's_cat  阅读(191)  评论(2)    收藏  举报