精品文档
C语言程序设计 第三版 部分习题 (谭浩强 著) 清华大学出版社 课后答案.txtcopy(复制)别人的个性签名,不叫抄袭,不叫没主见,只不过是感觉对了。遇到过的事一样罢了。【习题1】
一、简答题(在课本中寻找答案,略) 1.1 C程序的基本结构包括哪些内容? 1.2 如何定义标识符?
1.3 输入格式、输出格式的组成包括哪些内容? 1.4 C语言函数分为哪两类?
1.5 计算表达式的值应该考虑哪些方面? 1.6 上机调试程序的步骤如何? 二、判断并改错
1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 错误:main函数可以放在程序的任何位置。并不限定在程序的开头。
1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 1.9 编辑与编译不是一回事。
错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。
1.10 scanf(\的正确输入格式:3,4<回车>。 正确
1.11 注释内容太多会影响程序的执行效率。
错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。
1.12 所有的数学公式可以直接出现在源程序中。
错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。 三、编程题
1.13 在屏幕上输出自己名字的拼音。 提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。 1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。
提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f 1.15 输入两个整数,输出其中最大者。 提示:模仿例1.3
1.16 输入三个整数,输出其中最小者。 提示: min(min(a,b),c);
【习题2】
一、简答题(在课本中寻找答案,略) 2.1 常量与变量的区别?
2.2 C语言中的标识符的定义规则?
2.3 变量为什么要“先定义,后使用”? 2.4 字符常量'a'与字符串常量\有何区别? 2.5 大小写字母转换的规则是什么? 2.6 变量的具有哪三种属性? 精品文档
精品文档
二、单项选择题
2.7 C语言中,int型数据在内存中的存储形式是(D)。 A)ASCII码 B)原码 C)反码 D)补码
2.8 下面四个选项中,均是不合法的用户标识符的选项是(C)。 A)BA 、x_0、do B)float、1a0、_Y C)x-y、goto、123 D)_123、tmp、CHAR
2.9 下列选项中不正确的常数的选项是(D)。
A)0x12F B)-1.23E-2 C)12.0 D)0388 2.10 下面正确的字符常量是(B)。
A)\B)'\\\\' C)\D)\2.11 下面正确的字符串常量是(C)。
A)'a' B)'376' C)\D)376 2.12 表达式'A'+4*25.0-'b'的正确结果是(B)。 A)67 B)67.0 C)不确定 D)67L 2.13 执行printf(\后的输出结果是(C)。 A)100 B)0x100 C)0X64 D)64 2.14 int型的-1在内存中的存储形式是(A)。 A)1111 1111 1111 1111 B)0000 0000 0000 0001 C)1111 1111 1111 1110 D)1000 0000 0000 0001
2.15 存储字符串\需要的字节数是(D)。 A)11 B)13 C)6 D)7
【习题3】 一、计算题
3.1 2.8+7%3*11%2/4 (答案:2.8) 3.2 5/2+5.0/2+7%6 (答案:5.5) 3.3 a=12,a*=2+3 (答案:a=60)
3.4 a=3,b=4,c=5,a+b>c&&b= =c (答案:0) 3.5 3>5?3:5<8?25:40 (答案:25)
3.6 设a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),计算表达式后m,n的值? (答案:m=0,n=1)
3.7 设int b=7;float a=2.5,c=4.7;求下面表达式的值。 a+(int)(b/2*(int)(a+c)/2)%4 (答案:4.5) 二、单项选择题
3.8 若有代数式 ,则不正确的C语言表达式是(C)。 A)x/b/c*y*8 B)8*x*y/b/c C)8*x*y/b*c D)x*y/c/b*8 3.9 有如下类型说明: int k,a,b;
unsigned long w=8; 精品文档
精品文档
double x=2.9
则以下不符合C语言语法的表达式是(A)。 A)x%(-3) B)w*=-2
C)k=(a=6,b=4,a-b) D)a*=a+=a-=(b=4)*(a=3) 3.10 有如下类型说明: float n; int m;
则以下能实现将n中的数值保留小数点后两位,第三位四舍五入的表达式是(B)。 A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0 C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0 3.11 设k=7,x=12;则下列表达式值为3的是(D)。 A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)
3.12 已知m=48,ch='a',n=0;则表达式(m>=n&&ch<'b'&&!n)的值是(B)。 A)0 B)1 C)真 D)非0
3.13 下面哪个式子在b为奇数时结果为假(C)。 A)a%2==1 B)!(a%2==0) C)!(a%2) D)a%2
3.13 执行printf(\后的输出结果是(D)。 A)语法错误 B)1 C)1.5 D)1.500000 3.14 能表示条件0≤x≤100的表达式是(D)。 A)0<=x<=100 B)x>=0,x<=100 C)0≤x≤100 D)x>=0&&x<=100
3.15 判断char型变量ch为数字的正确表达式是(B)。 A)ch>=\B)ch>='0'&&ch<='9' C)'0'≤ch≤'9' D)ch>='0'||ch<='9' 三、编程题(应用条件运算)
3.16 输入一个整型成绩x,如果大于等于60分,输出“pass”,否则输出“fail”。 提示:printf(\3.17 输入一个年份y,如果是闰年,输出“y is a leap year”,否则输出“y is not a leap year.”
提示:printf(\is %s\leap year.\a leap year.\
3.18 输入三条边a,b,c,如果它们能构成一个三角形,输出“Yes”,否则输出“No”。 提示:printf(\3.19 输入三个数x,y,z,按从小到大的输出结果。
提示:分别用max0,min0代表最大、最小值,mid0表示中间值。 max0=(x>y?x:y)>z?(x>y?x:y):z;max0=(x 3.20 输入一个平面上的点坐标,判断它是否落在圆心(0,0),半径为1的圆内,如果在圆内,输出“Yes”,否则输出“No”。 提示:分别用x,y代表平面上一个点。 printf(\ 精品文档