C
C语言教材习题及答案 PAGE # / 25p
第一章
什么是程序?什么是程序设计语言?
C语言有什么特点?
什么是算法?算法的描述有哪些基本方法?
第一章主要关注两个概念:一是程序的三种结构(顺序、分支或叫选择、循环) ; 二是函数,主函数main()
第二章
指出下列哪些是C语言合法的用户识别符。
void a3_b3 For 2a defi ne_123 _abc DO
指出下列哪些是C语言合法的常量。
"3'4 " " 0x1g33" a" E20 '\18' \0xa'1.E-53.F
'\0'.12'\a'
"3'4 ""双引号内表示字符串,但要在一个串内含有单引号、双引号要用转义字 符正确的是: ’4\""
0x是十六进制的表示形式之一,但十六进制里没有g这个数值
\0xa'带一个单引号、0开头,无意义.这里要注意\ddd,1-3 位八进制数, \xhh,1-2位十进制数,他们都表示对应的ASCII值
E20, E表示指数形式,但两边必须都有数字。
将此题全部弄懂,所有关于常量的分基本跑不掉了。
指出下列定义变量语句中的错误。
int a;b=5;//同类型的两个变量,中间不能用分号。
doubel h; //double
int x,float y;//中间要用分号
float f(x);//非法符号
定义变量要注意,数据类型的关键字,还有就是变量名称必须是合法标识符
写出能表示数学式子1/(2a + 1/2a)的C语言表达式
1.0/(2*a+1/(2*a))
⑴#include int main()
{
double x=1,y;
y=x+3/2;
prin tf("y=%f\n",y);
return 0;
}结果是:2.000000,注意 3/2=1
⑵
#i nclude
int main()
{
float x=2.9,y=3.2, z;
int a=8;
z=x+a%3*(i nt)(x+y)/2;
prin tf("z=%f\n",z);
return 0;
}
结果是:8.900000,注意(int)(x+y)=6。
⑶
#i nclude
int main()
{
int a=65,b=-20;
char ch='A';
float x=12.345678f;
prin tf("abc\n\101\t\x41\\101\n");
prin tf("a=%d,%c,%o,%x\n",a,a,a,a);
prin tf("b=%d,%o,%x,%u\n",b,b,b,b);
prin tf("ch=%d,%c\n",ch,ch);
prin tf("x=%f,%.2f,%10.2f,%-10.f\n",x,x,x,x); return 0;
abc
AA\161
a-65,A jei 31
b=-20,37777777754,ffffffec,4294967276 ch = 65, A
x=12.345678 J2.35,12.35 J 2
此题包含的内容较多,都是细节,希望对照教材仔细分析结果 6程序设计。
(1)输出如下的图形。
*****
此题答案参考实验指导书。这题在这章出现,主要是练习printf(),
(2)已知铁的比重是7.86,计算并输出直径为100毫米的铁球重量
#i nclude
#defi ne PI 3.1415926
void mai n()
{ double w,r=100.0/20,p=7.86;
w=p*4.0*PI*r*r*r/3.0;
prin tf("%.2f\n",w);
}
第三章
1.写出表示变量x的值在[0,100]范围内的逻辑表达式。x>=0 && x<=100
2?写出表示整型变量x的值能被5或7整除的逻辑表达式。x%5==0||x%7==0
3?已知变量a、b、c的值分别是3、2、1,逻辑表达式a>b>c的值是多少? 0
4?已知变量x,y的值分别为5,9,逻辑表达式x&&y-9)*6-!x的值是多少? 0
5.已知变量m,n的值都为1,逻辑表达式 m--&&n++执行后,m,n的值是多少? m=0,n=2, 逻辑表达式的值是真。
6(1): #i nclude
int main()
{
int x=2,y;
if(x) y=x;
else y=3*x-1;
prin tf("y=%d\n",y); return 0;
}
运行结果是:y=2
⑵
#i nclude
int main()
{
int a=2,b=2,c=3;
if (a==b)
if(b==c)prin tf("a==b==c\