28
1 C 语语语语语语 语语 (1)

C 语言程序设计 复习 (1)

Embed Size (px)

DESCRIPTION

C 语言程序设计 复习 (1). 一、C语言概述. C 程序特点: 所有的C程序都是由一个或多个函数组成的程序模块构成。 程序中,只有一个名为 main( ) 的主函数。 不论 main( ) 函数放在程序的任何位置,程序总是从 main( ) 开始执行。. C程序开发和运行:. 编辑:使用一个文本编辑器编辑C语言源程序,其文件扩展名为“ .c” 。 编译:使用一个C语言编译系统对源程序进行语法检查和翻译,生成同名的“ .obj” 目标文件。 链接:将目标文件和库函数等链接在一起形成一个“ .exe” 可执行文件。 - PowerPoint PPT Presentation

Citation preview

Page 1: C 语言程序设计 复习   (1)

1

C 语言程序设计

复习 (1)

Page 2: C 语言程序设计 复习   (1)

2

一、C语言概述

C 程序特点:所有的C程序都是由一个或多个函数组成的程序模块构成。程序中,只有一个名为 main( ) 的主函数。不论 main( ) 函数放在程序的任何位置,程序总是从 main( ) 开始执行。

Page 3: C 语言程序设计 复习   (1)

3

C程序开发和运行:编辑:使用一个文本编辑器编辑C语言源程序,其文件扩展名为“ .c” 。编译:使用一个C语言编译系统对源程序进行语法检查和翻译,生成同名的“ .obj” 目标文件。链接:将目标文件和库函数等链接在一起形成一个“ .exe” 可执行文件。执行:脱离C语言编译系统,可在操作系统下键入文件名直接运行。

Page 4: C 语言程序设计 复习   (1)

4

二、C程序基础

1、标识符  由字母、数字和下划线组成;  由字母或下划线开头;  不能与关键字同名,大小写敏感。

Page 5: C 语言程序设计 复习   (1)

5

2、基本数据类型 整型:     长度(字节)    长度(字节)int 2 unsigned int 2short 2 unsigned short 2 long 4 unsigned long 4

Page 6: C 语言程序设计 复习   (1)

6

例:  int a,b,c; unsigned long d; a=123; /* 十进制 */ b=045; /* 八进制 */ c=0x3D8; /* 十六进制 */ d=0773L; /* 八进制长整型 */

Page 7: C 语言程序设计 复习   (1)

7

实型:      长度(字节)   float 4 double 8字符型:   char 1 个字节常用转义字符: ‘\n’ 换行 ‘ \t’  跳到下一个制表

位 ‘\\’ 字符 \ ‘\’’ 字符 ‘

Page 8: C 语言程序设计 复习   (1)

8

\“ 字符 \ddd  1到3位八进制数所代表的字符\xhh  1到2位十六进制数所代表的字符字符常量与字符串常量的区别:  例:‘ a’ 与 ” a”

Page 9: C 语言程序设计 复习   (1)

9

3 、基本运算符和表达式

 优先级: 逻辑“非” !

按位取反  ~算术运算符:*/ % +-

关系运算符: < <= > >= == !=

逻辑运算符: && ,||

赋值运算符   =

逗号运算符   ,

位运算符: << >>

位运算符: & ^ |

条件运算符: ? :

Page 10: C 语言程序设计 复习   (1)

10

自增1,自减1运算符“++”,“--”

 运算对象只能是整型、字符型和指针型。例: int x=5, y ;

y=x++; y 为 5 , x 为 6

y=++x; y 为 6 , x 为 6

Page 11: C 语言程序设计 复习   (1)

11

三、输入输出与顺序结构程序设计 1、输入输出语句   printf( ); scanf();putchar();getchar(); 需使用: #include “stdio.h” 或 #include <stdio.h> 2 、格式控制字符 printf(“ 格式控制字符” , 变量 );

Page 12: C 语言程序设计 复习   (1)

12

%m () ; m 表示宽度 , m>0, 右对齐 m<0, 左对齐 m < 实际长度,原样输出; m >= 实际长度,左或右填充空格 ; %mc 输出一个字符; a=‘x’; printf(‘%3c”,a);%md 十进制整型; b=15, printf(“%3d”,b);%mo 八进制整型; printf(“%o”,10);%mx(%mX) 十六进制整型; printf(“%4x,15”,);%mf 小数形式的单双精度数; printf(“%4f”,3.2);%mu 无符号十进制整型; printf(“%u”,-12);%ms 字符串 ; printf(“%4s”,”asdfgs”);%me 以指数形式表示实数。 printf(“%.2e”,12.45);

Page 13: C 语言程序设计 复习   (1)

13

%m.n( ) m 表示同前, n 表示精度

%m.nf : 取 n 位小数表示。 printf(“%8.3f\n”,123.45); printf(“%8.1f\n”,123.45);%m.ns : 取字符串的前 n 位。 printf(“%5.4s”, “abcdefg”);%m.ne: 小数部分取 n 位。 printf(“%.2e”,123.45);

Page 14: C 语言程序设计 复习   (1)

14

3 、 scanf 函数注意事项数据输入规则:

scanf(“%d%d%d”,&a,&b,&c); 输入数据以空格、回车键或 tab 键分隔。

附加格式 %ld,%lo,%lx 用于输入长整型数据; %lf 用于输入 double 型数据。

输入数据不能指定精度。 scanf(“%7.2f ”.&a); 不正确。

Page 15: C 语言程序设计 复习   (1)

15

四、选择结构程序设计单分支 if 语句

if( 表达式 ) 语句; 双分支 if 语句

if( 表达式 ) 语句 1 ; else 语句 2 ;多分支 if 语句

if( 表达式 1) 语句 1 ; else if( 表达式 2) 语句2 ; else if( 表达式 3) 语句3 ; …… else if( 表达式 n) 语句n ;

else 语句 n+1 ;

Page 16: C 语言程序设计 复习   (1)

16

if 语句的嵌套 if ( 表达式 1) if ( 表达式 2) 语句 1 ; else 语句 2 ; else if( 表达式 3) 语句 3 ;

条件表达式 c=(a>b) ? a:b; c=a>b?a:b>2?b:4;

Page 17: C 语言程序设计 复习   (1)

17

switch 语句 switch( 表达式 ) { case 常量表达式 1 :语句 1 ; case 常量表达式 2 :语句 2 ; …… case 常量表达式 n :语句 n ; default: 语句 n+1 ; } 注意 break 的用法。

Page 18: C 语言程序设计 复习   (1)

18

例题:1 、以下正确的 C 语言标识符是()。 A.%x B. a+b C.a123 D.test!

答案: C

2 、 C 语言源文件的后缀是 ______ ,经过编译后生成文件的后缀是 ______ ,经过链接后生成的文件后缀是 ______ 。

答案: .C .obj .exe

Page 19: C 语言程序设计 复习   (1)

19

3 、设 char ch ,以下正确的赋值语句是 () 。 A. ch=‘123’ B. ch=‘\xff’ C. ch=‘\08’ D. ch=“\”

答案: B

4 、若 a=1, b=2, c=3, d=4 ,则条件表达式 a<b?a:c<d?c:d 的值为()。

A. 1 B. 2 C. 3 D. 4答案:A

Page 20: C 语言程序设计 复习   (1)

20

5 、设 int m=1, n=2 ,则 ++m==n 的结果是()。

A . 0 B. 1 C. 2 D.3答案: B

6 、 int a=13; 求 ~a 的值。答案: -14

Page 21: C 语言程序设计 复习   (1)

21

7 、 int a1, a2; char c1, c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c

2); 若要求 a1,a2,c1,c2 的值分别为 10 、 20 、

A 、 B ,正确的数据输入是()。 A . 10A 20B<CR> B . 10 A 20 B<CR> C . 10 A20B<CR> D . 10A20 B<CR> 答案: A

Page 22: C 语言程序设计 复习   (1)

22

8 、改错main() { int a; long b; scanf(“%d”, a); b=a*a*a*a; printf(“%d^4=%d\n”, a, b);}答: scanf(“%d”,&a);

printf(“%d^4=%ld\n”,a,b);

Page 23: C 语言程序设计 复习   (1)

23

9 、 main() { int a; char b; a=123;b='b'; printf("%d\n",b>a); }答: 0 假 98>123

Page 24: C 语言程序设计 复习   (1)

24

10 、能够完成如下函数计算的程序段是()。

y=

-1 x<0

0 x=0

1 x>0

A. y=-1;

if(x!=0)

if(x>0) y=1;

else y=0;B. if(x>=0)

if(x>0)

y=1;

else y=0;

else y=-1;

C. y=0;

if(x>=0)

if(x>0)

y=1;

else y=-1;

D. y=-1;

if(x>0)

y=1;

else y=0;

答: B

Page 25: C 语言程序设计 复习   (1)

25

11 、以下程序的执行结果是 _______ 。#include <stdio.h>

main()

{ int a=2,b=7,c=5;

switch(a>0)

{ case 1: switch(b<0)

{ case 1:

printf(“@”);break;

case 2:

printf(“!”);break;}

case 0: switch(c==5)

{case 0:

printf(“*”);break;

case 1:

printf(“#”);break;

default:

printf(“$”);break;

}

default:printf(“&”);}

printf(“\n”);}

答: #&

Page 26: C 语言程序设计 复习   (1)

26

12 、 #include “stdio.h”

main()

{ int a,b,c,d,x;

a=c=x=0;

b=1;

d=20;

if(a) d=d-10;

else if(!b)

if(!c) x=15; else x=25;

printf(“d=%d,x=%d”,d,x);

}

答: d=20,x=0

Page 27: C 语言程序设计 复习   (1)

27

13 、设 a=2,b=3,c,d,e; 执行 c=(a++>=--b); d=(a==++b); e=(a*=2+(b-=4); 后, a,b,c,d,e 的值分别为多少?

答: a=3,b=-1,c=1,d=1,e=3

Page 28: C 语言程序设计 复习   (1)

28

14 、设 int a=1,b=2,c=3; 写出执行 a++||--b||++c 后表达式的值和 a,b,c 的值。

答:表达式的值为 1 , a=2,b=2,c=3