.
第3章 课后练习及作业习题指导(参考答案) 作业01 C语言基础知识
一、选择题
1.C语言程序的基本单位是( )。
A)函数 B)过程 C)子程序 D)子例程 2.下列个选项中,合法的C语言关键字是( )。
A)integer B)sin C)string D)void 3.下列选项中,不是C语言提供的合法关键字的是( )。 A)switch B)cher C)default D)case 4.以下选项中合法的用户标识符是( )。
A)int B)a# C)5mem D)_243 5.C语言程序一行写不下时,应该( )。
A)用回车换行 B)在任意空格处换行 C)用分号换行 D)用逗号换行
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’ 8.以下说法正确的是( )。
A)C语言程序是从第一个定义的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序是从main()函数开始执行的
D)C语言程序中的main()函数必须放在程序的开始部分 9.( )是构成C语言程序的基本单位
A)函数 B)变量 C)子程序 D)语句 10.一个C语言程序总是从( )开始执行的
A)主过程 B)主函数 C)子程序 D)主程序 11.以下叙述不正确的是( )
A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main()函数 C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
12.C语言规定:在一个源程序中,main()函数的位置( ) A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后
.
.
13.以下叙述正确的是( )
A)在C程序中,main()函数必须位于程序的最前面 B)C程序中的每行中只能写一条语句 C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
14.C语言中标识符只能由字母、数字和下划线3种字符组成,且第一个字符( ) A)必须为字母 B)必须为下划线
C)必须为字母或下划线 D)可以是字母、数字和下划线中任意一种字符 二、填空题
1.一个C语言编写的程序是从 main函数 开始执行的。
2.结构化程序所规定的3种基本控制结构是 顺序结构 、 选择结构 和 循环结构 。 3.C语言的标识符可分为 保留字 、 用户定义标识符 和预定义标识符3类。 4.在C语言中,整数可用 十 进制、 八 进制和 十六 进制三种。 5.一个C语言程序的开发过程包括:编辑、 编译 、连接和运行4步。 6.一个C源程序中至少应包括一个 main函数 。
7.在一个C源程序中,注释部分两侧分界符分别为 /* 和 */ 。
8.C语言中的标识符只能由3种字符组成,它们是 字母 、 数字 和 下划线 。 9.C程序执行过程生成的3种文件及扩展名为 .c 、 .obj 和 .exe 。
作业02 数据类型及运算
一、选择题
1. C语言中简单数据类型有( )。
A)整型、实型、逻辑型 B)整型、字符型、逻辑型
C)整型、实型、字符型 D)整型、实型、字符型、逻辑型 2. 以下选项中正确的整型常量是( )。
A)-37 B)32,758 C)3 2 6 D)6. 3. 以下选项中合法的C语言字符常量是( )。
A)‘\\t’ B) ”A” C) 67 D)A 4.以下选项中不正确的实型常量是( )。
A)123 B)1e4 C)3.640E-1 D)0.35 5.不合法的十六进制数是( )。
A)0xff B) 0X11 C) 0x1g D)0Xabc 6.以下选项中合法的C语言赋值语句是( )。
A)a=b=34 B)a=34,b=34 C) --i D)m=(int)(x+y); 7.在C语言中,char 型数据在内存中是以( )形式储存的。 A)原码 B) 补码 C) ASCII码 D)反码 8. 以下( )是不正确的转义字符
A)‘\\\\’ B) ‘\\” C) ‘020’ D)’\\0’
.
.
9. 若有代数式3ae/bc,则不正确的C语言表达式是( )。 A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3 10. 在C语言中,要求参加运算的数必须是整数的运算符是( )。 A)% B)/ C)! D)**
11. 若已定义x和y为double类型,则表达式“x=1,y=x+3/2“的值是( )。 A)1 B)2 C)2.0 D)2.5
12.若变量已正确定义并赋值,符合C语言语法的表达式是( )。 A)a=a+1 B)a=7+b+c,a++ C)int(12.3/4) D)a=a+7=c+b 13.若a为整型变量,则下列语句( )。 a=-2L;
printf(“%d\\n”,a);
A)赋值不合法 B)输出值为-2 C)输出值不为确定值 D)输出值为2 14.对于条件表达式(M)?(a++):(a--),其中表达式M等价于( )。 A)M= =0 B)M= =-1 C)M!=0 D)M!=1
15.若有定义: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
16.若x和n均是int型变量,且x初值为12,n初值为5,则执行下面表达式后x值为( )。 x%=(n%=2)
A)0 B)1 C)2 D)3
17.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为( )。 A)7 B)8 C)9 D)10
18.设int x=1,y=1;表达式(!x||y--)的值是( )。 A)0 B)1 C)2 D)-1
19.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( )。 A)1 B)2 C)2.0 D)2.5
20.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( )。 A)i=int(a) B)++i; C)a=a++=5 D)a=int(i) 21.若执行以下程序段后,c3的值是( )。 int c1=1,c2=2,c3; c3=1.0/c2*c1;
A)0 B)0.5 C)1 D)2
22.能正确表示逻辑关系”a≥10或a≤0”的C语言表达式是( )。
A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10&&a<=0 D)a>=10||a<=0
23.若变量x、y、z均为double类型且已经正确赋值,不能正确表示x/(y×z)的C语言表达式是( )。
A)x/y*z B)x*(1/(y*z)) C)x/y*1/z D)x/y/z
.
.
24.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( )。 A)不定值 B)4 C)3 D)1
25.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为( )。 A)0 B)1 C)2 D)3
26.假定w、x、y、z、m均为int型变量,有如下程序段: w=1;x=2;y=3;z=4;
m=(w A)4 B)3 C)2 D)1 27.已知int i;float f;正确的语句是( )。 A)(int f)%i; B)int(f)%i; C)int(f%i); D)(int)f%i; 28.已知int j,i=1;,执行语句j=-i++;后,j的值是( )。 A)1 B)2 C)-1 D)-2 29.已知int a=4,b=5;,则执行表达式a=a>b后,变量a的值为( )。 A)0 B)1 C)4 D)5 30.判断char类型数据c1是否为大写字母的最简单且正确的表达式为( )。 A)’A’<=c1<=’Z’ B)(c1>=’A’)&(c1<=’Z’) C)(‘A’<=c1)AND(‘Z’>=c1) D)(c1>=’A’)&&(c1<=’Z’) 二、填空题 1.若a是int型变量,则执行表达式a=25/3%3后a的值是 2 。 2.若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为 10 ,n的值为 6 。 3.若x和y都是double型变量,且x初值为3.0,y初值为2.0,则表达式pow(y,fabs(x))的值为 8.0 。 4.表达式pow(2.8,sqrt(double(x))值的数据类型为 double 。 5.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为 26 。 6.若有定义int m=5,y=2;则执行表达式y+=y-=m*=y后y的值为 -16 。 7.已知int a=15,b=240;则表达式(a&b)&b||b的结果为 1 。 8.表达式8.0*(1/2)的值为 0.0 。 9.字符串“ab\\034\\\\\\x79”的长度为 5 。 10.若s是int型变量,且s=6,则s%2+(s+1)%2表达式的值为 1 。 11.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为 6 ,b值为 4 ,c值为 2 。 12.若有定义:char c=’\\010’;则变量c中包含的字符个数为 1 。 13.若i 为int整形变量且赋值为6,则运算i++后表达式的值为 6 变量i的值是 7 。 14.若二进制a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变, .