C语言习题册1-3章题解
- 格式:doc
- 大小:129.50 KB
- 文档页数:10
C语言程序设计教程课后习题答案第一章C语言程序设计概述-习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2C语言程序的基本结构是怎样的?举一个例子说明。
答1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。
3C语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。
4★指出合法与不合法的标识符命名。
答AB12--√ leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--×XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×5说明下列Turbo C热键的功能。
答F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序)Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。
6说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。
①main(){printf("********************\n");printf(" welcome you \n");printf(" very good \n);printf("********************\n");}②main(){ int a,b,c,t;printf("please input three numbers;");scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/t=max(max(a,b),c);printf("max number is:%d\n",t);}int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);}答运行结果:********************welcome youvery good********************运行结果:please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/max number is:47一个C程序是由若干个函数构成的,其中有且只能有一个___函数。
第1章C语言概述1.1 一个C程序的执行是从A)本程序main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到main函数结束1.3 以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面1.4 C语言规定:在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后1.5 一个C语言程序是由A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成1.6 C源程序的基本单位是1.7 一个C源程序中至少应包括一个1.8 在一个C源程序中,注释部分两侧的分界符分别为和。
第3章数据类型、运算符与表达式2.2 若x,i,j和k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32)A) 4 B) 16 C) 32 D) 522.4 下列四组选项中,均是C语言关键字的选项是A)define B) switch C) signed D) ifIF typedef union structInclude continue scanf type2.6 下列四组选项中,均是不合法的用户标识符的选项是A)AB)float C) b-a D) _123P_0 la0 goto tempdo _A int INT2.8 下面四个选项中,均是合法整型常量的选项是A)160 B) -0xcdf C)―01 D) -0x48a -0xffff 01a 986.012 2e5011 0xe 0668 0x2.14 下面正确的字符常量是A)“c” B) …\\‟‟ C) …w‟ D) “”2.15 下面四个选项中,均是不正确的八进制数或十六进制的选取项是A)016 B) oabc C) 010 D) 0a120x8f 017 -0x11 7ff018 0xa 0x16 -1232.18 下面不正确的字符串常量是A)‟abc‟ B) “12‟12” C) “0” D) “ “2.21 已知各变量的类型说明如下:int k,a,b;unsingned long w=5;diuble x=1.2;则以下不符合C语言语法的表达式是A)x%(-3) B) w+=-2C) k=(a=2,b=3,a+b) D) a+=a-=(b=4)*(a=3)2.23 以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH的aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值2.25 以下符合C语言语法的赋值表达式是A)d=9+e+f=d+9 B) d=9+e,f=d+9C) d=9+e,e++=d+9 D) d=9+e++=d+72.26 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‟A‟+‟6‟-…3‟;后,c2中的值为A)DB)68C)不正确的值D)C2.27 在C语言中,要求运算数必须是整型的运算符是A)/B)++C)!=D)%2.28 若以下变量均是整型,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为A)7 B)8 C)9 D)102.30 若有说明语句:char c=‟\72‟;则变量c______A) 包含1 个字符B)包含2 个字符C)包含3个字符D)说明不合法,C的值不确定2.31 若有定义:int a=7;float x=2.5;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是______。
《新编C语言程序设计教程》习题答案第1章程序设计概述一、填空题1.高级语言2.顺序结构选择结构循环结构3.算法4.有穷性5.完全符合结构化程序设计的要求二、问答题1.什么是程序设计?结构化程序设计的基本思想是什么?所谓程序,就是用计算机语言对所要解决问题中的数据以及处理步骤做出的完整而准确的描述,而得到这个描述的过程就称为程序设计。
结构化程序设计是实现程序清晰易懂的关键技术。
其基本思想是规定几种基本结构,然后由这些基本结构按一定规律组成程序,如同用一些基本构件搭建房屋一样。
整个程序的结构是由各个基本结构自上而下顺序排列组成的。
2.算法的描述工具主要有哪些?各有什么优缺点?算法的描述工具主要有自然语言、程序流程图、N-S图和伪代码等。
自然语言就是人们日常使用的语言。
用自然语言描述算法具有通俗易懂的优点,但往往文字冗长,表示的含义不太严格,容易产生歧义性。
程序流程图采用一组特定的图形、流程线以及文字说明来表示算法中的基本操作和控制流程,具有形象直观、简单易懂等特点。
但程序流程图所使用的符号不够规范,常常使用一些习惯性画法,特别是对流程线的使用没有严格的限制,可以不受约束,随意转移控制。
用程序流程图设计出来的算法不一定满足结构化程序设计的要求。
N-S图的基本单元是矩形框,程序的三种基本结构分别用不同的矩形框表示。
在矩形框内还可以包含其他从属于它的矩形框,即N-S图是由矩形框组合嵌套而成。
用N-S图描述的算法杜绝了流程的无条件转移,结构清晰,容易理解,完全符合结构化程序设计的要求。
伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法,既通俗易懂又避免了歧义性。
语言的正文用基本控制结构进行分割,具体操作用自然语言来表示。
与图形化描述工具相比,更容易修改。
第2章C语言概述一、填空题1.函数,main2.主/main3.主/main ,主/main4.函数首部,函数体, {}5.分号(;)6./* ,*/7.字母,下划线8.scanf,printf9..obj ,.exe10.库函数二、单项选择题1~5 B B C D B6~8 B B D第三章数据类型、运算符和表达式一、选择题1~5 A A A B D6~10 D B A A C11~15 A C B C C16~20 C B C A D21~25 C A B A D26~30 C C C B B二、填空题1.#define PRICE 30.52.63 209 41 1713.01111101 10000000000000014.077270 7EB85.97 65 69 486.17.beginabDghi jlm\865 899 2 4 8 110整数 31127.00000012 213sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))148.015m/10%10*100+m/100*10+m%1016 4 10 6 417 6 3 918019-162011 19 10 192110 62225 5 4231040120302410225 3.526 1 027ch>=’a’&&ch<=’z’ || ch>=’A’&&ch<=’Z’28 329 2308 8 10。
一二三章1. 算法具有5 个特性,以下选项中不属于算法特性的是()。
A .有穷性B. 简洁性C. 可行性D. 确定性2. 以下选项中可作为C 语言合法常量的是()。
A .-80 . B. -080 C. -8e1.0 D. -80.0e3. 以下叙述中正确的是()A .用C 语言实现的算法必须要有输入和输出操作B. 用C语言实现的算法可以没有输出但必须要有输入C. 用C语言实现的算法可以没有输入但必须要有输出D •用C语言实现的算法可以既没有输入也没有输出4.以下不能定义为用户标识符是()A .Main B. _0 C. _int D. sizeof5. 以下选项中,不能作为合法常量的是()A.1.234e04 B. 1.234e0.4 C. 1.234e+4 D. 1.234e06. 数字字符0 的ASCII 值为48,以下程序运行后的输出结果是()main(){char a= ' 1' ,b= '2';printf(“ %c,” ,b++);printf(“n%”d,-ba);}A. 3,2B. 50,2C. 2,2D. 2,507. 以下程序运行后的输出结果是()main(){int m=12,n=34;printf(“ %d%”d ,m++,++n);printf(“ %dn%”d,n++,++m);}A. 12353514B. 12353513C. 12343514D. 123435138. 用C 语言编写的代码程序()A •可立即执行 B.是一个源程序C •经过编译即可执行 D.经过编译解释才能执行9.结构化程序由3 种基本结构组成,3种基本结构组成的算法()A •可以完成任何复杂的任务B•只能完成部分复杂的任务C.只能完成符合结构化的任务D•只能完成一些简单的人物10. 下列选项中,不能用作标识符的是()A._1234_ B. _1_2 C. int_2_ D. 2_int_11. 有以下定义语句double a,b;int w;long c;若各变量已正确赋值,则下列选项中正确的表达式是( ) A. A=a+b=b++ B. w%(int)a+B C. (c+w)%(int)a D. w=a==b; 12. 以下程序运行后输出结果是( ) main (){int m=3,n=4,x; x=-m++; x=x+8/++n;printf( “n%”d,x);}A. 3B. 5C. -113. 以下程序运行后输出结果是()main()char a= ' a ' ,b;printf( “ %c ” ,++a); printf( “n%”c,b=a++);}A. b,bB. b,cC. a,b14. 一个算法应该具有 “确定性”等 5个特性,下面对另外 4个特性的描述中错误 的是()A .有零个或多个输入 B. 有零个或多个输出 C .有穷性 D.可行性 15.以下叙述中正确的是( )A .C 语言的源程序不必通过编译就可以直接运行B .C 语言中的每条可执行语句最终都被转换成二进制的机器指令 C . C 源程序经编译形成的二进制代码可以直接运行D .C 语言中的函数不可以单独进行编译 16.以下符合 C 语言语法的实型常量是( )A .1.2E0.5 B. 3.14.159E C. .5E-3 D. E15 17. 以下 4 组用户定义标识符中,全部合法的一组是() A ._main B. If C. txt D. intenclude -max REAL k_2 sin turbo 3COM _00118. 若以下选项中的变量已正确定义,则正确的赋值语句是( ) A .x1=26.8%3 B. 1+2=x2 C. x3=0x12 D. x4=1+2=3 19. 设有以下定义int a=0;double b=1.25; char c= ' A '; #define d 2则下面语句中错误的是() A .a++; B. b++;C. c++;D. d++20. 设有定义:float a=2,b=4,h=3;,其中a 为梯形的上底,b 为梯形的下底,h 为D. -2D. a,c梯形的高,以下 C 语言表达式不能计算出梯形面积的( ) A .(a+b)*h/2 B. (1/2)*(a+b)*h C. (a+b)*h*1/2 D. h/2*(a+b) 21. 以下叙述中正确的是( )A .C 程序中注释部分可以出现在程序中任意合适的地方 B. 花括号“{和“}只能作为函数体的定界符C •构成C 程序的基本单位是函数,所有函数名都可以由用户命名D •分号是C 语句之间的分隔符,不是语句的一部分 22. 以下不能定义为用户标识符的是()A .scanf B. Void C. _3com_ D.int 23. 以下程序运行后的输出结果是( ) main(){int a;char c=10; float f=100.0;double x; a=f/=c*=(x=6.5);printf( ” %d %d %3.1f %3.1nf ” ,a,c,f,x);}A. 1 65 1 6.5B. 1 65 1.5 6.5C. 1 65 1.0 6.5D. 2 65 1.5 6.5 24. 以下选项中非法的表达式是( )A .0<=x<100 B. i=j==0 C. (char)(65+3) D. x+1=x+1 25. 设变量x 为float 型且已赋值,则以下语句中能将x 中的数值保留到小数点后 两位,并将第 3 位四舍五入的是( )A. x=x*100+0.5/100.0;C. x=(int)(x*100+0.5)/100.0; 26.以下叙述中正确的是( )A .C 语言比其他语言高级B .C 语言可以不用编译就能被计算机识别执行C .C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式D .C 语言出现的最晚,具有其他语言的一切优点 27.C 语言中用于结构化程序设计的 3种基本结构是( )A •顺序结构、选择结构、循环结构B .if 、switch 、breakC . for 、while 、do …whileD .if 、 for 、 continue 28. 在一个 C 程序中( )A. main 函数必须出现在所有函数之前B. main 函数可以在任何地方出现C. main 函数必须出现在所有函数之后D. main 函数必须出现在固定位置29. 下列关于 C 语言用户标识符的叙述中正确的是( )A .用户标识符中可以出现下划线和中划线(减号)B. 用户标识符中不可以出现中划线,但可以出现下划线B. x=(x*100+0.5)/100.0; D. x=(x/100+0.5)*100.0;c •用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D •用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开 头 30.下列关于单目运算符 ++、 --的叙述中正确的是( )A •它们的运算对象可以是任何变量和常量B. 它们的运算对象可以是char 型变量和int 型变量,但不能是float 型变 量C. 它们的运算对象可以是int 型变量,但不能是double 型变量和float 型 变量 D .它们的运算对象可以是char 型变量、int 型变量和float 型变量31 设 int a ,b ,c ;执行表达式 a=b=1,a++,b+1,c=a+b--后,a, b 和 c 的值分 别是 ( )。
习题(第1-4章)答案一、选择1-5 BBCAC 6-10 CBCAC 11-15 DCBCC 16-20 ABACD21-25 DABAD 26-30 CBCBD 31-35 CCCCC 36-40 CCCAC41-45 DABDC 46-50 CBBBC 51-55 ABDAB 56-60 CBCBD 61-65 CBDBD 66-70 ADCBD 71-75 DCACD 76-80 BC CDCD二、填空1,函数2,函数首部函数体3,字母数字下划线字母或下划线4,/* */5,scanf printf6,#inlucde<stdio.h>7,ASCⅡ码8,‘’“”9,单精度型双精度型10, 控制语句,函数调用语句,表达式语句,空语句,复合语句11,512,加一个分号13,{}14,格式15,空格或按“回车”或“跳格”Tab键,按指定的宽度结束,遇非法输入16,scanf(“%d,%d,%f”,&i,&j,&x); 17,库函数18,3219,2.520,3.521,double型或双精度型22, double型或双精度型23, 2624,925,t=a;a=b;b=t;26, x=3,y=2.500000 27,x>=3&&x<=4||x<-10 28,1.5 7.729,2 -230,331 ,232 ,433,double型或双精度型34,035,10 6三、程序分析一)阅读程序题1,a+b=802,7,10,7,93,65,A4,2,25,2,16,a=3 b=7 ↙71.82↙A a↙7,a=12345,b=-1.98e+002,c= 6.50 8,-2345,-12.309,a=252 a=37410,12,1212##,12 ## 11,x=1 y=2 *sum*=3Squared is:100 12,(1)10(2)10(3)56.100000(4) 3.141600二)程序填空题1,cc=a a=b b=c2,10 9 113,(1)5.2(2)2.54,6.65,c16,s1=%c,ASC II is %d\nx=%6.2f,y=6.2f四、编程题1,#include <stdio.h>int main( ){ int n,a,b,c,m;scanf("%d",n);a=n%10;b=(n/10)%10;c=(n/100)%10;m=100*a+10*b+c;printf("%d=>%d\n ",n,m);return 0;}2,#include<stdio.h>int main(){int a,b,c,t;scanf(“%f,%f,%f”,&a,&b,&c); if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf(“%d,%d,%d\n”,a,b,c); return 0;}3,#include<stdio.h>int main(){int a,b,s,y;scanf(“%d,%d”,&a,&b);s=a/b;y=a%b;printf(“%d,%d\n”,s,y); return 0;}4, #include<stdio.h> int main(){float a,b,h,s;scanf(“%f,%f”,&a,&b);s=(a+b)*h/2.0;printf(“s=%.3f\n”,s);return 0;}5,#include<stdio.h>int main(){int a,b;a=560/60;b=560%60;printf(“560分钟是%d小时%d分钟\n”,a,b);return 0;}。
C语言1 3章练习题作业答案c语言1-3章练习题-作业-答案一、选择题(可不抄题目)1.继续执行\后,k的值就是____a.0b.3c.4d.122.以下常量中恰当的就是______a.'abc'b.'\\x123'c.3.145e-1.2d.\3.能够将高级语言撰写的源程序转换成目标程序的就是______。
a.编辑程序b.编译程序c.解释程序d.链接程序4.设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值就是______。
a.6.500000b.6c.5.500000d.6.0000005.正确的c语言用户自定义标识符是______。
a.ok?b.floatc.a3bd.random26.以下程序的输入结果就是voidmain(){inta=12,b=12;printf(\,--a,++b);}a.1010b.1212c.1110d.1113二、填空题(可不抄题目)1.若存有\,则a的值就是___2.表达式a=3*5,a*4,a+5的值就是___________3.c程序已经开始往往所含以“#”结尾的命令,它们就是命令。
在程序中以“/*”已经开始,以“*/”完结的内容,它们就是程序中的部分,用来协助阅读程序。
程序代码的打印,分解成程序*.c,语法分析查错,译者分解成程序*.obj,与其它目标程序或库链接加装,分解成程序*.exe。
4.设inta;floatf;doublei;则表达式10+'a'+i*f值的数据类型是___________。
三、程序题:1、撰写一个程序,能够表明出来以下两行文字(用顺序结构顺利完成)。
2、从键盘上输入三个小数,求出平均值,并输出这三个数和平均值,要求平均值保留2位小数位数。
参考答案:一、选择题1.a2.d3.b4.d5.c6.d二、填空题1.602.203.编译预处理、注释、源、目标、可执行4.double三、程序题:1、撰写一个程序,能够表明出来以下两行文字(用顺序结构顺利完成)。
C语言课后习题参考答案第一章:基础知识问题1:C语言的发展历史及特点C语言是由贝尔实验室的肯·汤普逊和丹尼斯·里奇在20世纪70年代初开发的一种高级程序设计语言。
它以其简洁、高效和可移植性而闻名。
C语言被广泛应用于系统级编程、嵌入式系统和科学计算等领域,并成为其他编程语言的基础。
问题2:C语言的基本数据类型及其存储范围C语言的基本数据类型包括字符型(char)、整型(int)、浮点型(float)、双精度浮点型(double)和空类型(void)。
它们的存储范围如下:- char:-128 到 127 或 0 到 255- int:-32,768 到 32,767 或 0 到 65,535- float:3.4E-38 到 3.4E38- double:1.7E-308 到 1.7E308- void:无特定存储范围问题3:如何在C语言中输出语句?在C语言中,可以使用printf函数来输出语句。
它的基本语法为:```cprintf("要输出的内容");```问题4:定义变量的语法规则在C语言中,定义变量的语法规则如下:```c数据类型变量名;```例如,定义一个整型变量x:```cint x;```问题5:如何进行变量的赋值?变量的赋值可以使用赋值运算符(=)。
例如,将一个整型常量10赋值给变量x:```cx = 10;```第二章:控制结构问题1:if语句的语法结构if语句用于根据条件执行不同的代码块。
它的基本语法结构如下:```cif (条件) {// 条件为真时执行的代码}```问题2:switch语句的用法及语法结构switch语句用于根据不同的表达式值执行相应的代码块。
它的基本用法及语法结构如下:```cswitch (表达式) {case 值1:// 当表达式的值等于值1时执行的代码break;case 值2:// 当表达式的值等于值2时执行的代码break;default:// 当表达式的值与所有case都不匹配时执行的代码break;}```问题3:循环语句的分类及语法结构C语言中的循环语句包括for循环、while循环和do-while循环。
程序设计技术基础(C语言)习题集题解分析第一、二、三章一、选择题(四个选项中只有一个是正确的----下同)1.与十进制数97不等值的字符常量是A) ’a’ B) ’\101’ C) ’\x61’ D) ’\141’题解分析:小写字母a的ASCII码是97;十六进制61转换为十进制为97;八进制141转换为十进制为97;八进制101转换为十进制为65,不等于97。
参考教材:p21 (3)字符常量;p22 转义字符表2-12,及其讲解。
2.在编写了一个C语言源程序C001.C并正确执行之后,当前目录下哪个文件不存在A) C001.C B) C001.OBJ C) C001.DAT D) C001.EXE题解分析:源程序C001.C经编译后生成目标文件C001.OBJ,再经过链接后生成可执行文件C001.EXE。
参考教材:p7 1.5.2 链接目标程序3.以下选项中正确的整型常量是A) 5.B)-10 C)1.000 D)4/5题解分析:整型常量及整数也,实型常量及实数也。
参考教材:p19(1)整型常量,p20(2)实型常量4.以下选项中正确的实型常量是A) 0 B)3. 1415 C)0.03x102D).32题解分析:0——属于整型常量;3. 1415——小数点和1415间不能分开(计算机不认);0.03x102——在C语言中要用0.03e2或0.03E2来表示。
参考教材:p20(2)实型常量5.以下选项中不正确的实型常量是A)2.670E-1 B)0.05e+1.5 C)-77.77 D)456e-2题解分析: C语言在科学计数法表示实型常量时,指数部分必须是整数,不可用小数。
答案B)中的0.05e+1.5表示的是0.05×101.5,指数1.5不符合要求。
6.以下选项中不合法的用户标识符是A)wb-1 B)file C)Main D)PRINTF题解分析:在C语言中标识符只能由字母、数字和下划线组成,A)中的“-”错了。
参考教材:p17 2.3.1 标识符7.以下选项中不合法的用户标识符是A)_123 B)printf C)A$ D)Dim题解分析:参考上一题,$错了,printf是库函数名,如果不调用该函数,就可用。
注:教材有误。
8.C语言中运算对象必须是整型的运算符是A)% B)/ C)* D)+参考教材:p25 第一段第二行。
9.可在C程序中用作标识符的一组标识符是A)void B)as_b3 C)For D)2cDefine _123 -abc DOWORD If case SiG题解分析:A)中的void和C)中的case是关键字,D)中的2c不符合数字不能打头的要求。
另外,For和If因为有大写字母,所以不是关键字,C语言的关键字必须全部小写。
参考教材:p17 2.3.1 标识符。
10.若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 题解分析:a=a+7;因为有分号,所以是一个表达式语句,不是单纯的表达式;int(12.3%4)是强制类型转换,按照规定,int要写成(int),正确的形式是(int)(12.3%4);a=a+7=c+b:按照C规定赋值号左边必须是变量,“7”在赋值号“=”左边但不是变量;而a=7+b+c,a++是一个逗号表达式。
参考教材:p24 2.4.1 算数运算符及算数表达式;p32 2.4.6 逗号表达式;p33 2.4.7 数据类型的转换11.以下非法的赋值语句是A) n=(i=2,++i); B)j++; C) ++(i+1); D) x=j>0;题解分析:按照C规则,++(i+1)相当于i+1=(i+1)+1, 1不可出现在”=”号左边。
参考教材:p26-27 例2-9后至例2-11前的讲解。
12.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A) 6.500000 B) 6 C) 5.500000 D) 6.000000题解分析:(int)a+b/b: 现将a转换为整型5,在加b/b=1.000000, 按照C的规则,整型数+浮点数,结果为浮点数。
参考教材:p33 2.4.7 数据类型的转换13.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是A) 6 B) 0 C) 2 D) 1题解分析:C语言中非零为真,只有零为假。
(p30表2-17下面的注②)!(x+y)= !7=0 ; !(x+y)+z-1=0+5-1=4为真;y+z/2=4+5/2为真,所以:真&&真还是真,真的结果用“1”表示。
参考教材:p29 2.4.2 关系运算符及关系表达式;p30 2.4.3 逻辑运算符及逻辑表达式14.以下叙述中正确的是A)a是实型变量,C允许以下赋值a=10,因此可以这样说实型变量中允许存放整型值。
B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0D)已有a=3, b=5。
当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3 题解分析:A)C语言为不同类型的变量分配不同数量的内存单元,当把一个整型常量赋给一个实型变量时,系统自动将该整型常量转换为实型常量赋给实型变量。
C)和D):在C 语言中当将一个变量赋给另一个变量时,赋给另一个变量的变量值不变。
但被赋值的变量值改变为给其赋值的变量的值,所以C)中执行表达式a=b后,内存中a存储单元中的原有值被改变,等于b存储单元中的值,而b存储单元中的原有值不变。
D)中执行了表达式a=b之后a=5,再执行b=a后还是b=5,所以a和b如要相互交换需引进第三变量。
参考教材:p24 2.4 基本运算符、表达式及运算的优先级;2.4.8 复杂表达式的计算顺序。
15.以下叙述中正确的是A)在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。
B)C程序由主函数组成。
C)C程序由函数组成。
D)C程序由函数和过程组成。
题解分析:A)当将一个十进制小数用二进制小数表示时,有除不尽(其实是乘不尽)的情况,也就是无法准确表示。
B)主函数是必须的,但不能代表全部。
D)C程序中的函数和其它高级语言的过程是一回事,但不叫过程。
参考教材:p16.Turbo C中int类型变量所占字节数是A)1 B)2 C)3 D)4题解分析:Turbo C中int类型变量占2字节。
参考教材:p15 表2-317.不合法的八进制数是A)0 B)028 C)07700 D)01题解分析:代表8进制的符号是0-7,没有8这个数码。
18.不合法的十六进制数是A)oxff B)0Xabc C)0x11 D)0x19 题解分析:C语言中十六进制数以0x开头,oxff的第一个是字母“O”,而不是数字“0”。
参考教材:p19 (1)整型常量19.若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是A)a=b=c=100; B)d++; C)c+b; D)d=(c=22)-(b++);题解分析:赋值语句应有赋值号“=”,B)与C)没有,但d++是d=d+1的简化形式。
20.以下选项中不是C语句的是A){int i; i++; printf(“%d\n”, i); } B);C)a=5,c=10 D){ ; }题解分析:C语句要以分号“;”结尾,C)无,如果只有一个分号,称其为“空语句”。
21.以下合法的C语言赋值语句是A)a=b=58 B)k=int(a+b); C)a=58,b=58 D)--i;题解分析:A)和D)结尾无分号,B)的正确形式是k=(int)(a+b);参考教材:p33 2.4.7 数据类型的转换22.以下程序的输出结果是main(){ int x = 10, y = 3;printf(“%d\n” , y = x / y);}A)0 B)1 C)3 D)不确定的值题解分析:按常识x / y=3.333,但由于它们是整型变量,整型变量无小数点。
23.C语言中的简单数据类型有A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型题解分析:C语言中无逻辑型变量。
24.C语言中,字符(char)型数据在微机内存中的存储形式是A)反码B)补码C)EBCDIC码D)ASCII码题解分析:参考教材p16表2-625.设有语句char a= …\172‟;,则变量aA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法题解分析:参考教材p22表2-1226.C语言中不合法的字符常量是A)‟\xff‟ B)‟\65‟ C)‟&‟ D)‟\028‟题解分析:‟\028‟表示的是8进制数,但8进制中不应有数字“8”。
另外,‘\ddd‟可以是1-3位8进制数,所以B)也正确。
另外‟\xhh‟可以是1-2位十六进制数。
(教材可以修正一下)27.C语言中不合法的字符串常量是A)”\121” B)‟y=‟ C)”\n\n” D)”ABCD\x6d”题解分析:字符串常量用双引号,所以B)不对。
参考p21 (4)字符串常量28.若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是A)read(a,b,c) B)scanf(“%d%d%d”,a,b,c);C)scnaf(“%D%D%D”,&a,&b,&C); D)scanf(“%d%d%d”, &a,&b,&c);题解分析:B)中输入变量前没加&;C)中两处错。
一处是3个%D,D必须小写,另一处是&C,大写C与小写c表示的是不同的变量。
参考教材:p41 2.5.2格式化输入函数scanf()29.若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是scanf(“%f %f %f”, &a, &b, &c);A)10 B)10.0,22.0,33.0 C)10.0 D)10 2222 22.0 33.0 3333题解分析:当%f之间用空格分开时,输入数据时可用空格、回车区分。
30.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是A)scanf("%2d%2d%2d",&i,&j,&k); 010203 或 1 2 3B)scanf("%d %d %d",&i,&j,&k); 1 2 3C)scanf("%d,%d,%d",&i,&j,&k); 1,2,3D)scanf("i=%d,j=%d,k=%d",&i,&j,&k); i=1,j=2,k=3题解分析:每句后面的红色是对应的输入格式31.若有以下程序:main(){ int k=2, i=2, m;m=(k+=i*=k); printf("%d,%d\n",m,i);}执行后的输出结果是A) 8,6 B) 8,3 C) 6,4 D) 7,4题解分析:m=(k+=i*=k)从右向左运算:1.i*=k 即 i=i*k=2*2=4 2.k+=i即k=k+i=2+4=6 3.m=k=6。