C语言程序设计答案-(陈明晰)中国铁道出版社

习 题 一

一、选择题

1.C程序的基本单位是( A)。 A.函数 B.文件 C.语句 D.字符 2.C程序中的变量(B )。 A.不用说明 C.先引用后说明 A.执行语句之后 C.执行语句当中 A.机器语言 C.高级语言

二、填空题

1.一个C程序总是从 主函数 开始执行。 2.结构化程序由 顺序 、 选择 、 循环 三种基本结构构成。 3.一个C程序只有一个名为 main 的主函数。 4.C程序中的每个语句以 分号 结束。 5.C程序中,函数由 函数首部 和 函数体 组成。 6.每个基本结构有 一个 入口和 一个 出口,没有 死循环 和 死语句 。 7.算法是 计算机解决问题所依据的步骤。 B.先说明后引用 D.引用和说明顺序无关 B.执行语句之前 D.位置无关 B.符号语言 D.面向对象的语言 3.变量的说明在(B )。 4.C语言是一种( C)。 习 题 二

一、选择题

1.下列数据中属于字符串常量的是( B)。 A.ABC A.4 A.6 B.\ C.'abc' D.'A' 2.在计算机内存中,'\\n'占用的字节数是( C)。 B.3 C.1 D.2 D.4 D.2.654e11 3.字符串\在内存中占用的字节数是( D)。 B.8 C.3 4.在C语言中,合法的长整型常数是 ( B)。 A.568701400 B.0L A.ASCII代码值 C.0.03546287 B.BCD代码值 D.内码值 C. b.β C.\\\ D.b_4 D.0x4 5.char型常量在内存中存放的是( A)。 C.十进制代码值 A.?bb A.\\\\ 6.下列各项中正确的标识符是( D)。 B.a=8 B.\\ 0 7.下列不正确的转义字符是( D)。 8.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。 A.0 B.1 C.2 D.3 D.b=(float)a/2 9.设a的值为5,执行下列语句后,b的值不为2的是( C)。 A.b=a/2 B.b=6-(--a) B.3,2,2 B.0 B.% C.b=a%2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。 A.3,3,2 A.3 A.&& A.1 A.6 A.1 C.3,2,3 C.9 D.2,3,2 D.-12 11.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D)。 12.在下列运算符中,优先级最高的是( B)。 C.= C.2 C.2 C.2 D.>= D.表达式出错 D.表达式出错 D.2.0 13.设整型变量a的值为3,则计算表达式a---a后,表达式的值为(B)。 B.0 14.设整型变量a、b、c的值均为2,表达式a---b+++c++的结果是( C)。 B.9 B.2.5 15.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( D)。 16.下列表达式中符合C语言语法的赋值表达式是( C)。 A.a=4+b++c=a+8 B.a=4+b++=a+8 D.a=4+b,c=a+8 C.char D.double C.a=(4+b,b++,a+8) A.int 二、填空题

1.在内存中存储\要占 2 个字节,存储'A'要占 1 个字节。 2.符号常量的定义方法是 #define 常量名 常量 。 3.无符号基本整型的数据类型符为 unsigned int双精度实型数据类型符为 double ,字符型数据类型符为 char 。 4.十进制数673的二进制、八进制和十六进值数分别为 1010100001 、 2412 和 2A1 。 5.在C语言中,书写八进制数时必须加前缀 0 ;书写十六进制数时必须加前缀 0x 。 6.在微机上,int型、short型、long型、float型和double型数据一般在内存中分别占 2 字节、 2 字节、 4 字节、 4 字节和 8 字节。 7.设有下列运算符:<<、+、++、&&、>=,其中优先级最高的是 ++ ,优先级最低的是 && 。 8.设x、y为int型变量,且x=1,y=2,则表达式1.0+x/y的值为 1.0 。 9.设整型变量x、y、z均为5,则: ① 执行x-=y-z后,x的值为 5 。 ② 执行x%=y+z后,x的值为 5 。 10.数学式a 的C语言表达式为 a/(b*c) 。 b×c 17.若有以下定义:char a;int b;float c;double d;,则表达式a*b+d-c的值的类型为( D)。 B.float 三、简答题

1.字符常量与字符串常量有什么区别? 2.对于Turbo C系统来说,char型变量与int型变量在内存中存储数据的区别是什么? 3.整型变量可细分为哪六类? 4.什么是一个实型数据的规范化指数形式? 5.设x=3.5,a=5,y=6.7,求算术表达式x+a%3*(int)(x+y)%2/4的值。 6.设a=2,b=3,x=4.5,y=1.6,求表达式(float)(a+b)/2+(int)x%inty的值。 7.设整型变量a=12,写出下列表达式运算后a的值。 ① a*=2+5 ② a/=a+a ③ a+=a-=a*=a 8.写出下列程序的运行结果。 main()

{ char c1='A',c2='B',c3='C',c4='\\101',c5='\\h42'; printf(\%c\\tbc\\n\printf(\}

结果:AAbB C abc AB

9.写出下面程序的运行结果。 main()

{ int i,j,m,n; i=5; j=6; m=++i; n=--j;

printf(\}

结果:6,5,6,5

习 题 三

一、选择题

1.printf()函数输出实数时,使用的格式字符是(C)。 A.%d B.%c C.%f D.%o 2.下面变量说明中(C)是正确的。 A.char:a ,b ,c; B.char a;b;c; D.char a,b ,c C.char a , b , c; A.整型变量表达式值 C.字符串 3.putchar()函数可以向终端输出一个(D )。 B.实型变量值 D.字符或字符型变量值 4.阅读以下程序,当输入数据的形式为:25,13,10〈CR〉,正确的输出结果为( D )。 main()

{ int x,y,z;

scanf(\printf(\}

A.x+y+z=48 B.x+y+z=35 C.x+z=35 D.不确定值 5.以下说法正确的是( D )。 A. 输入项可以是一个实型常量 B. 只有格式控制,没有输入项,也能进行正确输入,如scanf(\ C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\4.2f\D. 当输入数据时,必须指明变量的地址,如scanf(\%f\6.以下能正确地定义整型变量a、b和c并为其赋初值5的语句是(C )。 A.int a=b=c=5; B.int a,b,c=5; C.int a=5,b=5,c=5; A.ch='a+b'; A.++x; A.f A.123.456000 二、填空题

D.a=b=c=5; C.ch='\\08'; D.ch=\7.已知ch是字符型变量,下面正确的赋值语句是(B )。 B.ch='\\xff'; 8.设x、y均为float型变量,则以下不合法的赋值语句是( B )。 B.y=(x%2)/10; C.x*=y+8; D.x=y=0; B.e(E) C.g(G) D.x B. 123.4560 C.123.4560 D.+123.4560 9.以下格式符中,不能用来输入实型数的是( B ) 10. 若float num=123.456,以%+10.4d的格式输出,结果正确的是( B ) 1.以下程序的输出结果是 x=1 y=2 *sum*=3 10 squaredis :100 。 main()

{ int x=1,y=2;

printf(\printf(\}

2.以下程序的输出结果是 a=325 x= 3.14 。 main()

{ int a=325;double x=3.1415926; printf(\}

3.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空:a+=b ; b=a-b ;a-=b ; 4.若x为int型变量,则执行以下语句后x的值是 -14 。 x=7;

x+=x-=x+x;

5.C语句可以分为五类,含 7 种控制语句、 声明 语句、 表达式 语句、空语句和复合语句。 6.赋值语句是由 赋值表达式 加上一个分号构成。 7.a=12,n=5,表达式a%=(n%=2)值是 0 。 8.有一个输入函数scanf(\则不能使float类型变量k得到正确数值的原因是 k前无& 和 %d与k的类型不一致 。 9.putchar()函数可以向终端输出一个 字符 。 10.已有定义int i,j;float x;为将-10赋给 i,12赋给 j,410.34赋给x,则对应以下scanf()函数调用语句的数据输入形式是 -12 C 410.34 。 scanf(\\&i,&j,&x); 11.pirntf()函数中用到格式符%5s,其中数字5表示输出的字符串占5列,如果字符串长度大于5,则 按实际宽度输出 。 12.使用getchar()和putchar()函数必须在源程序中加 #include\。

三、简答及程序设计题

1.解释输入输出的概念。 2.已知圆柱高h=5,要求输入圆的半径,求出圆周长、圆面积和圆柱体积。找出错误,改正使其可以得出正确结果。 main()

{ int h=5;

float r,d,s,v; d=2*3.14*r; s=3.14*r*r; v=s*h;

printf(\}

3.下面程序用来求解总电流I,要求保留两位小数,已知输入值为220,30,60,45,正解为15.89,请分析得到15.00的原因。找出错误后改正。 main( )

{ int U,R1,R2,R3; float I;

scanf(\I=U/R1+U/R2+U/R3;

printf(\}

4.编写一个程序,从键盘上输入一个球的半径(实数),求此球的表面积和体积(保留两位小数) 5.下面程序是用来输入三角形的三边长,求三角形面积的。请在【】处填入适当内容。 #include 【1】 main()

{ float a,b,c,s,area;

scanf(\【2】); s=1.0/2*(a+b+c); area=【3】;

printf(\}

6.编写程序,输入两个整数,求出它们的商数和余数并输出。 7.编写程序,读入三个双精度数,求它们的平均值,并保留此平均值小数点后的一位,对小数点后第二位进行四舍五入,输出结果。 8.编写程序,读入三个整数a、b、c,然后交换它们中的数:把a中的值给b,把b中的值给c,把c中的值给a。 习 题 四

一、选择题

1.执行下面的程序段后,b的值为( B )。 int x=35;

char z='A'; int b;

b=((x&&15)&&(z<'a'));

A.0 A.1 B.1 C.2 D.3 2.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n-c>d)后n的值为( B )。 B.2 C.3 D.4 3.若k是int型变量,且有下面的程序段,输出结果是( A )。 K=-3;

if(k<=0) printf(\else printf(\

A.#### C.####&&&& A.A&&B C.A‖B+C&&B 5.阅读程序: #include\main() { float x,y;

scanf(\%f\

B.&&&& D.有语法错误,无输出结果 B.A<=B D.!((A

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4