1 / 30

第三章 键盘输入与屏幕输出

第三章 键盘输入与屏幕输出. #include<stdio.h> func1(....) { ....... } func2(....) { ....... } int main(....) { ....... }. C 语言程序的结构. 预编译命令 函数 main 函数 1 …… 函数 n. 函数首部 函数体. 源程序文件 1 源程序文件 2 ……… 源程序文件 n. C 语言程序. int x,y; float s=3.5;. 3.1 C 语句分类.  说明语句  控制语句  表达式语句  空语句

Download Presentation

第三章 键盘输入与屏幕输出

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 键盘输入与屏幕输出 #include<stdio.h> func1(....) { ....... } func2(....) { ....... } int main(....) { ....... }

  2. C语言程序的结构 预编译命令 函数main 函数1 …… 函数n 函数首部 函数体 源程序文件1 源程序文件2 ……… 源程序文件n C语言程序

  3. int x,y; float s=3.5; 3.1 C语句分类 说明语句 控制语句 表达式语句 空语句 复合语句 a=3; x=y+z;i++; max(a,b); printf("%d",x); if(a>b)max=a; while(i>0) i--; {t=x; x=y; y=t; } ;

  4. 控制语句 #include <stdio.h> int main( ) { int i, num=0, word=0; char string[81]; gets(string); for(i=0; string[i]!='\0'; i++) if (string[i]== ' ') word=0; else if(word==0) {word=1; num++; } printf("%d \n",num); return 0; } if(表达式) 语句 else 语句; for(表达式) 语句; while(表达式) 语句; do 语句 while (表达式); continue ; break ; switch goto return

  5. 3.2 数据的输出  C本身不提供输入/出语句,输入/出操作由函数实现 C的标准库函数中提供了一些输入/出函数 stdio.h  输入/出操作过程 输 入 缓冲区 输 出 缓冲区 输入设备 (键盘) 输出设备 (显示器)

  6. % %本身 ᴥprintf 格式:printf(格式控制串[,输出表列]) 功能:按格式控制串指定的格式输出输出表列中的内容 要求:#include "stdio.h" • 格式控制 由%、格式字符、普通字符组成, 普通字符原样输出。 字符格式 f e g 实数格式 整数格式 d o x u c 无符号整数格 式 字符串 格式 s

  7. d格式 输出十进制整数 %d 按数据的实际长度输出int %md 按最小长度m输出int %ld 按数据的实际长度输出long %mld 按最小长度m输出long int a=3, b=4, c=12345; printf("a=%d  b=%d\n",a,b); printf("a=%4d  c=%4d\n",a,c); a=3b=4 a= 3c=12345

  8. o格式 输出八进制无符号整数(不含前导0) %o %mo %lo %mlo unsigned int a; a=100; printf("%o,%8o", a, a); 144,144

  9. x(X)格式 输出十六进制无符号整数 %x %mx %lx %mlx unsigned int a; a=100; printf("%x,%8x", a, a); 64,64

  10. u格式 输出十进制无符号整数 %u %mu %lu %mlu unsigned int a=65535; printf("a=%o, %x, %u\n", a, a, a); a=177777,ffff,65535

  11. c格式 输出一个字符 %c %mc int a=65; char c= 'a'; printf("%d  %c  %4c\n",c,a,c); 97Aa

  12. s格式 输出一个字符串 %s %ms %-ms %m.ns %-m.ns printf("%s\n%3s\n%7.2s\n%.4s\n%-5.3s\n", "china", "china", "china", "china", "china"); china china ch chin chi

  13. f格式 以小数形式输出实数,单、双精度均可 %f %m.nf n为小数位数,实施四舍五入 %-m.nf 左对齐 float f=123.456; printf("%8.1f%8.1f%8.1f\n",3.0,12.5,523.36); printf("%f  %10f  %10.2f  %-10.2f \n", f,f,f,f); float s=123.456; double x=3333333333333.333333333; printf("%f\n%f\n",s,x); printf("%.2f %6.1f\n",s,s); 123.456001 3333333333333.333500 123.46 123.5 3.0 12.5 523.4 123.46 123.456001 123.456001 123.46

  14. e(E)格式 以指数形式输出实数 %e X.XXXXXXe+XXX %m.ne n为小数位数 %-m.ne float s=123.456; printf("%e\n%10e\n%10.2e\n%-10.2e\n%.2e\n", s,s,s,s,s); 1.234560e+002 1.234560e+002 1.23e+002 1.23e+002 1.23e+002

  15. 格式字符: int a=567;printf ( "%d",a); 567 d 十进制整数 int a=255;printf("%x",a); ff 十六进制无符号整数 x int a=65;printf("%o",a); 101 o 八进制无符号整数 int a=567;printf("%u",a); 567 不带符号十进制整数 u char a=65;printf("%c",a); A c 单个字符 ABC printf("%s","ABC"); s 字符串 float a=567.789;printf("%e",a); 5.677890e+002 e 指数形式浮点小数 567.789000 float a=567.789;printf("%f",a); f 小数形式浮点小数 printf("%%"); 百分号本身 %% %

  16. 3.3 数据的输入 int a,b,c; scanf("%d %d %d",&a,&b,&c); printf("%d,%d,%d",a,b,c); 1 2 3 <CR> 1 <CR> 2 <CR> 3 <CR>

  17. scanf("%3d%3d",&a,&b); 输入:123456〈CR〉 scanf("%3c",&ch); 输入:abc<CR> scanf("%2d %*3d %2d",&a,&b); 输入:1234567<CR>

  18. ᴥscanf 格式:scanf(格式控制,地址表列) 功能:根据格式控制指出的格式从键盘上输入 数据,并依次放入地址表列指定的存储 单元中 • 格式字符 d o x c s e f 附加的格式说明符 l %ld %lf %lo %lx %le h %hd %ho %hx m 输入长度 * 本输入项读入后不赋给任何变量 忽略输入

  19. 讨论 scanf("%d",a); scanf("a=%d",&a); 输入5 scanf("%c%c%c",&a,&b,&c); 输入a  b  c scanf("%5.2f",&a); scanf("%d%d",&x,&k); scanf("%d%c",&x,&y); scanf("%3d%c",&x,&y); scanf("%d%d ",&x,&k); scanf("%d%d\n",&x,&k);

  20. 数据的输入结束情况有: 空格、回车、Tab 长度结束 非法输入 输入实型数据时不能规定精度, 输入double类型变量必须必须用格式符%lf 输入float类型变量必须必须用格式符%f 非控制字符原样输入 不要以空格或回车作为格式控制串的结束符

  21. 输入字符/字符串时多余的空格如何去除? char a,b,c; scanf("%c",&a); scanf("%c",&b); scanf("%c",&c); printf("a=%c,b=%c,c=%c\n",a,b,c); 输入: t↙ r↙ y↙ 方法1:使用getchar() 方法2:在%c前加空格 方法3:用%*c读掉字符

  22. 该如何为如下输入数据书写输入语句: • 2 3 4 • 2,3,4 • 2 • 3 • 4 • a□b□c • a=5,b=6 • 123456(两个变量)

  23. 3.4 字符的输入输出 #include "stdio.h" int main( ) {char a,b; a= 'B'; b= 'O'; putchar(a); putchar(b); putchar('Y'); return 0; } ᴥputchar 格式:putchar(字符) 功能:向输出设备输出一个字符 要求:在程序开头加预编译命令: #include "stdio.h" 或 #include <stdio.h>

  24. #include "stdio.h" int main( ) {char c; c=getchar( ); putchar(c); putchar(getchar( )); return 0; } ᴥgetchar 格式:getchar() 功能:从键盘上输入一个字符 要求:#include "stdio.h"

  25. 编程示例 输入f的值 计算c的值 输出c的值 华氏温度转换为摄氏温度 int main() { float f,c; scanf("%f",&f); c=5/9.0*(f-32); printf("c=%f",c); return 0; } scanf("%f",&f); c=5/9.0*(f-32); printf("c=%f",c);

  26. 编程示例 计算存款本息。设银行一年定期存款的利息是2.25%,到期后转存。n年后本息是多少? #include<math.h> int main() { double rate=0.0225; //rate表示年利率 double capital; //capital表示本金 double profit; // profit表示本及息 int n; //n表示存款年数 printf("请输入存款年数及本金"); scanf("%d,%lf",&n,&capital); profit=capital*pow(1+rate,n); printf(“profit=%7.2f", profit ); return 0; }

  27. [函数类型] 函数名([参数名])----函数首部 {[变量说明] ----声明部分 [语句组] ----执行部分 } 输入 函数体 计算 输出 int main() { 说明程序中所使用变量及类型 输入数据 计算 输出结果 return 0; }

  28. int main() { double rate=0.0225; //rate表示年利率 double capital; //capital表示本金 double profit; // profit表示本及息 int n; //n表示存款年数 printf("请输入存款年数及本金"); scanf("%d,%lf",&n,&capital); profit =capital*pow(1+rate,n); printf(" profit =%7.2f", profit ); return 0; } int main() { 说明程序中所使用变量及类型 输入数据 计算 输出结果 }

  29. 编程示例 大写改小写 #include "stdio.h" int main( ) {char c1,c2; c1=getchar( ); printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2); return 0; }

  30. 阅读以下程序 #include <math.h> int main( ) {float a,b,c,disc,x1,x2,p,q; scanf("a=%f,b=%f,c=%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf("\n\nx1=%5.2f\nx2=5.2f\n",x1,x2); return 0; }

More Related