《C程序设计》复习资料
系: 班级: 学号: 姓名:
信息工程学院 2014.9.5
1/48
一、基础知识
计算机工作原理 软硬件系统 进制转换
Windows操作 网络 多媒体 病毒
二、类型及表达式 一)合法的标志符:
命名规则
(1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。 (3)C语言的关键字不能用作变量名。 例题:
1. 是合法的用户自定义标识符的( )
A)ah-spks B)double C)
A)%x B)a+b C)a123 D)test! 3. 以下不能定义为用户标识符的是( )
A) Void B) b_2 C) int D) name
二)合法的整型常量
(1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。(注意0后的数字不能>=8) (3)十六进制(以数字0+小写字母x开头)。例如0x36。 例题:
1. 以下选项中可作为C语言合法整数的是( )
A) 11010 B B) 0583 C) x2b2 D) 0xafb
三)合法的实型常量
(1)十进制小数形式。例如3.14、9.8。 (小数点后数字可省略) (2)指数形式:
<尾数>E(e)<整型指数>。
字母e或E前后必须有数字,且后面指数必须为整数
例题:
1. 以下选项中可作为C语言合法常量的是( )
A)-80. B)-080 C)-8e1.0 D)-80.0e
四)合法的字符型常量
(1)用一对单引号括起来的单个字符,称为字符常量。 (2)以“\\ ”开头的转义字符 例题:
1. 设有说明语句:char a=?\\123?;则变量a( )
A)包含1个字符 B)包含2个字符 C)3个字符 D)说明不合法 2. C 语言中,“\\x5d”在内存中占用的字节数是( )
2/48
A) 2 B) 5 C) 4 D) 1 3. 字符串“\\t\\x42\\\\bcd\\n”的长度是( )。
A)7 B)10 C)12 D)13
五)各种基本类型变量所占的字节数
int 2 long 4 unsigned 2 float 4 double 8 char 1 例题:
1. 下列式中,值不为4的表达式是( )
A)sizeof(unsigned long) B)sizeof(long) C)sizeof(unsigned int) D)sizeof(float)
六)合法的表达式
(1)%两边操作数必须是整型 (2)赋值的左边一定是变量 例题:
1. 设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是(A)a=5++ B)a=b=c++ C)a%=2 D)b=a+1=2
七)表达式的值
每个表达式都有值
(1)算术表达式的值就是计算结果 (2)赋值表达式的值被赋值变量的值
(3)逗号表达式的值是最后一个表达式的值
(4)注意两个表达式的意义:令a是数字字符,则a-?0?就是对应的数字
令a是字母字符,则a-32就是小写变为大写,a+32就是大写变为小写例题:
1. 设整型变量a的值为2,下列表达式值为1的是( )
A)a%3 B)a/3 C)--a D)a++ 2. 下列表达式的值为0的是( )
A) 7/8 B) 7%8 C) 7/8.0 D) 7<8
3. 设float m=4.0, n=4.0; 使m为10.0的表达式是( )
A) m-=n*2.5 B) m/=n+9 C) m*=n-6 D) m+=n+2 4. 逗号表达式(a=4*5,a*2),a+15 的值是( )
A) 35 B) 40 C) 55 D) 20
八)++、--运算
1)先将表达式中++、--去掉
2)再将前置型的写在表达式上方 3)最后将后置型的写在表达式下方
例题:
当i=4,j=5时,表达式3-(i++)*4+(--j)的值如何,i,j的值多少? 九)表达式的类型
自动转换:表达式中有整型和字符型,结果一定为整型 表达式中有实型,结果一定为double类型 强制转换:可以强制转换为指定的类型 例题:
1. 下列式中,最终运算结果的数据类型不是双精度的表达式的是( )
3/48
)
A)(int)(3+3.0) B)1e-3 C)(double)(3) D)(int)3.0+3.0
二、顺序结构
一)putchar和getchar:一次只能输入输出一个字符 例题:
1. putchar函数可以向终端输出一个( )
A)整数 B)实数 C)字符串 D)字符
二)printf和scanf语句的使用方法: scanf注意数据输入时的分隔符(“”中有的要原样输入,没有的数值数据以空格、回车、Tab键为默认分隔符,字符数据没有分隔符) 例题:
1. 设有语句scanf(%d,%d”,&m,&n);要使m、n的值依次是2、3,正确是输入是( )
A)2 3 B)2,3 C)2;3 D)2
2. 设变量定义为int a,b;执行下列语句时,输入( ),则a和b的值都是10
scanf(“%d,%d”,&a,&b);
A)10 10 B) 10,10 C)a=10 b=10 D)a=10,b=10 3. 有以下程序
main()
{ int m,n,p;
scanf(\ printf(\
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( )
A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789
printf注意输出形式%m.n形式,m代表输出的数据占的列宽,不够的在前面补上空格,n代表小数的显示位数 例题:
1. 有如下程序段:
int a=3,b=15; float f=7.5;
printf(“%.1f”,(float)a+b/2+(int)f%3); 执行该程序段后,运算结果为:( ) A)11.5 B)11.0 C)11 D)12.0
三、选择结构
一)关系表达式、逻辑表达式和条件表达式
(1)C中结果为真时值用1表示,结果为假时值用0表示; (2)C中的操作数是以非0认为是真,以0认为是假;
(3)数学中表示10 1. 在C程序中,用( )表示逻辑”真”。 A)1 B)非0的数 C)非1的数 D)大于0的数 4/48 2. 若有定义:intx=2,y=3,z=4;则表达式!(x+y)+z-1&&y+z%2的值为( ) A)4 B)0 C)1 D)2 3. 设int a=0,b=0,c=0;c=++a||b++;则a、b、c值分别为( ) A)0 1 0 B)1 1 1 C)1 1 0 D)1 0 1 4. 执行语句:int a=1,b=0,c;c=a>0||++b;后,b的值为( ) A)0 B)1 C)2 D)不确定 5. 设intx,y,z=4;x=y=++z;x=(y>z)?x+2:x++;则x的值是( ) A)4 B)5 C)6 D)7 6. 为表示关系x>y>=z,则正确的c语言表达方式为( )。 A)(x>y>=z) B)(x>y)and(y>=z) C)(y 7. 若变量ch为char类型,能正确判断出ch为大写字母的表达式是( A)?A?<=CH<=‘Z’ B)(ch>=?A?)||(ch<=?Z?) C)(?A?<=ch) and (?Z?>=ch) D)(ch>=?A?)&&(ch<=?Z?) 运算符的优先级和结合性记忆方法 优先级 单目>双目>三目>特殊双目(赋值>逗号) 结合性 单目、三目 自右向左 双目 自左向右 特殊双目(赋值) 自右向左 二)if语句 (1)条件 if(a)等价if(a!=0) if(!a) 等价if(a= =0) (2)else的匹配原则:与上方最近的且没被匹配的if匹配 例题: 1.有以下程序 main( ) { int a=0,b=0,c=0,d=0; if(a=1)b=1;c=2; else d=3; printf(%d,%d,%d,%d\\n,a,b,c,d); } 程序输出( ) A)0,1,2,0 B)0,0,0,3 C)1,1,2,0 D)编译有错 2.以下程序运行后的输出结果是 main() { int a=3,b=4,c=5,t=99; if(b } 5/48 )