Upload
maggy-howe
View
126
Download
1
Embed Size (px)
DESCRIPTION
C 语言程序设计 复习 (1). 一、C语言概述. C 程序特点: 所有的C程序都是由一个或多个函数组成的程序模块构成。 程序中,只有一个名为 main( ) 的主函数。 不论 main( ) 函数放在程序的任何位置,程序总是从 main( ) 开始执行。. C程序开发和运行:. 编辑:使用一个文本编辑器编辑C语言源程序,其文件扩展名为“ .c” 。 编译:使用一个C语言编译系统对源程序进行语法检查和翻译,生成同名的“ .obj” 目标文件。 链接:将目标文件和库函数等链接在一起形成一个“ .exe” 可执行文件。 - PowerPoint PPT Presentation
Citation preview
1
C 语言程序设计
复习 (1)
2
一、C语言概述
C 程序特点:所有的C程序都是由一个或多个函数组成的程序模块构成。程序中,只有一个名为 main( ) 的主函数。不论 main( ) 函数放在程序的任何位置,程序总是从 main( ) 开始执行。
3
C程序开发和运行:编辑:使用一个文本编辑器编辑C语言源程序,其文件扩展名为“ .c” 。编译:使用一个C语言编译系统对源程序进行语法检查和翻译,生成同名的“ .obj” 目标文件。链接:将目标文件和库函数等链接在一起形成一个“ .exe” 可执行文件。执行:脱离C语言编译系统,可在操作系统下键入文件名直接运行。
4
二、C程序基础
1、标识符 由字母、数字和下划线组成; 由字母或下划线开头; 不能与关键字同名,大小写敏感。
5
2、基本数据类型 整型: 长度(字节) 长度(字节)int 2 unsigned int 2short 2 unsigned short 2 long 4 unsigned long 4
6
例: int a,b,c; unsigned long d; a=123; /* 十进制 */ b=045; /* 八进制 */ c=0x3D8; /* 十六进制 */ d=0773L; /* 八进制长整型 */
7
实型: 长度(字节) float 4 double 8字符型: char 1 个字节常用转义字符: ‘\n’ 换行 ‘ \t’ 跳到下一个制表
位 ‘\\’ 字符 \ ‘\’’ 字符 ‘
8
\“ 字符 \ddd 1到3位八进制数所代表的字符\xhh 1到2位十六进制数所代表的字符字符常量与字符串常量的区别: 例:‘ a’ 与 ” a”
9
3 、基本运算符和表达式
优先级: 逻辑“非” !
按位取反 ~算术运算符:*/ % +-
关系运算符: < <= > >= == !=
逻辑运算符: && ,||
赋值运算符 =
逗号运算符 ,
位运算符: << >>
位运算符: & ^ |
条件运算符: ? :
高
低
10
自增1,自减1运算符“++”,“--”
运算对象只能是整型、字符型和指针型。例: int x=5, y ;
y=x++; y 为 5 , x 为 6
y=++x; y 为 6 , x 为 6
11
三、输入输出与顺序结构程序设计 1、输入输出语句 printf( ); scanf();putchar();getchar(); 需使用: #include “stdio.h” 或 #include <stdio.h> 2 、格式控制字符 printf(“ 格式控制字符” , 变量 );
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);
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);
14
3 、 scanf 函数注意事项数据输入规则:
scanf(“%d%d%d”,&a,&b,&c); 输入数据以空格、回车键或 tab 键分隔。
附加格式 %ld,%lo,%lx 用于输入长整型数据; %lf 用于输入 double 型数据。
输入数据不能指定精度。 scanf(“%7.2f ”.&a); 不正确。
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 ;
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;
17
switch 语句 switch( 表达式 ) { case 常量表达式 1 :语句 1 ; case 常量表达式 2 :语句 2 ; …… case 常量表达式 n :语句 n ; default: 语句 n+1 ; } 注意 break 的用法。
18
例题:1 、以下正确的 C 语言标识符是()。 A.%x B. a+b C.a123 D.test!
答案: C
2 、 C 语言源文件的后缀是 ______ ,经过编译后生成文件的后缀是 ______ ,经过链接后生成的文件后缀是 ______ 。
答案: .C .obj .exe
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
20
5 、设 int m=1, n=2 ,则 ++m==n 的结果是()。
A . 0 B. 1 C. 2 D.3答案: B
6 、 int a=13; 求 ~a 的值。答案: -14
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
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);
23
9 、 main() { int a; char b; a=123;b='b'; printf("%d\n",b>a); }答: 0 假 98>123
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
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”);}
答: #&
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
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
28
14 、设 int a=1,b=2,c=3; 写出执行 a++||--b||++c 后表达式的值和 a,b,c 的值。
答:表达式的值为 1 , a=2,b=2,c=3