第一章C语言概述之基本规则
一、选择题
1、C语言程序的基本单位是( )
(A)函数        (B)过程        (C)子程序    (D)子例程
2、下列各选项中,合法的C语言关键字是( )
(A)integer    (B)sin        (C)string        (D)void
3、下列选项中,是C语言提供的合法关键字是( )
(A)swicth    (B)cher        (C)default    (D)Case
4、C语言的程序一行写不下时,应该( )
(A)用回车符换行        (B)在任意一个空格处换行
(C)用分号换行        (D)用逗号换行
5、下列叙述不正确的是( )
(A)在C程序中,%是只能用于整数运算的运算符
(B)在C程序中,无论是整数还是实数,都能正确无误地表示
(C)若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值。
(D)在C程序中,语句之间必须用分号“;”分隔
6、在C程序中,可以作为用户标识符的一组标识符是( )
(A)void  define  WORD        (B)as_b3  _224  Else       
(C)Switch  wer  case            (D)4b  DO  SIG
7、C语言中,下列合法的字符常量是( )
(A)’\039’        (B)’\x76’        (C)’ab’    (D)’\o
注:参见P14,3.字符常量。
8、以下说法正确的是( )
(A)C语言程序是从第一个定义的函数开始执行
(B)在C语言程序中,要调用的函数必须在main()函数中定义
(C)C语言程序是从main()函数开始执行
(D)C语言程序中的main()函数必须放在程序的开始部分
9、以下叙述中不正确的是( )
(A)在C程序中所有的变量必须先定义后使用
(B)在程序中,aph和APH是两个不同的变量
(C)若a和b类型相同,在执行了赋值语句a=b后,b中的值放入a中,b中的值不变
(D)当输入数值时,对于整型变量只能输入整型值,对于实型值只能输入实型值
10、以下选项中合法的用户标识符是( )
(A)int        (B)a#        (C)5mem        (D)_243
11、C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符( )
(A)必须为字母            (B)必须为下划线
(C)必须为字母或下划线    (D)可以是字母、数字、下划线中任意一种
二、填空题
1、C语言中的标识符可分为_____、printf输出格式两个逗号_____和预定义标识符3类。
2、在C语言程序中,用关键字_____定义基本整型变量,用关键字_____定义单精度实型变量,用关键字_____定义字符型变量。
3、计算机中内存储器的最小存储单位是_____,其中能容纳的数是_____。(注:可不做)
4、通常一个字节包含_____个二进制位。在一个字节中能存放的最大(十进制)整数是_____,最小(十进制)整数是_____,它的二进制数的形式是_____。(注:可不做)
5、一个C语言程序的开发过程包括:编辑、_____、连接和运行4个步骤。
6、在C源程序中,可使用__________两种方式进行注释。
注:参见教材P10。
7、在C语言中,输入操作时由库函数_____完成,输出操作由库函数_____完成。
8、若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为_____
9、若a、b和c均为int型变量,则计算表达式a=(b=4)+(c=2)后,a值为_____,b值为_____,c值为_____。
注:C/C++中的标识符分为关键字、用户标识符和预定义标识符。
关键字又称为保留字,是被系统保留作为专门用途的名字,如int、float、switch、default、if、else、do、for、while等。所有关键字都有固定的意义,不能用作其它; 所有关键字都必须小写。
预定义标识符包括C语言提供的库函数的名字(如printf)和预编译处理命令(如define)等。C语言语法允许用户把这类标识符另作它用,但这将使这些标识符失去系统规定的原意。鉴于目前各种计算机系统的C语言都一致把这类标识符作为固定的库函数名或预编译处理中的专门命令使用,因此为了避免误解,建议用户不要把这些预定义标识符另作它用。
用户标识符是由用户根据需要定义的标识符,如变量、数组、文件、自定义函数的名字。程序中使用的用户标识符除要遵循起名规则外,还应注意做到“见名知义”, 即选具有相关含义的英文单词或汉语拼音,如number1、sum等作为名字,以增加程序的可读性。

第二章C语言概述之运算符与表达式
一、选择题
1、若已定义x和y为double类型,则表达式“x=1,y=x+3/2”值为( )
(A)1            (B)2        (C)2.0        (D)2.5
(注:double类型是双精度实型,在VC环境中用8个字节表示这种类型的数据,见教材P6。这种类型数据的运算规则和float相同。)
2、若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为( )
(x+y)%2+(int)a/(int)b
(A)1.0        (B)1            (C)2.0        (D)2
3、若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( )
x%=(n%=2)
(A)0            (B)1            (C)2            (D)3
4、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为( )
(A)7            (B)8            (C)9            (D)10
注:++运算参见教材P17 。
5、下列程序的输出结果是( )
#include<stdio.h>
void main( )
{double d=3.2;int x,y;
x=1.2;y=(x+3.8)/5.0;
printf(%d\n,d*y);}
(A)3            (B)3.2        (C)0        (D)3.07
6、执行以下程序段后,c3的值为( )
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
(A)0            (B)0.5        (C)1        (D)2
7、已知int i;float f;,正确的语句是( )
    (A)(int f)%i;        (B) int (f)%i;        (C) (int f%i);        (D) (int) f%i;
二、填空题
1、对以下数学式,写出3个与a/c*b等价的C语言表达式_____、__________
2、若a是int型变量,则执行表达式a=25/3%3后a的值为_____
3、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_____
4、若有定义int m=5,y=2;则执行表达式y+=y-=m*=y后y的值为_____
5、已知int y;float x=-3;,执行语句y=x%2;后,变量y的值为_____