省二C复习资料 下载本文

《C程序设计》复习资料

系: 班级: 学号: 姓名:

信息工程学院 2014.9.5

1/48

一、基础知识

计算机工作原理 软硬件系统 进制转换

Windows操作 网络 多媒体 病毒

二、类型及表达式 一)合法的标志符:

命名规则

(1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。 (3)C语言的关键字不能用作变量名。 例题:

1. 是合法的用户自定义标识符的( )

A)ah-spks B)double C) D)_myapple 2. 以下正确的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=z) D)(x>y)&(y>=z)

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