c语言的课本答案,C语言课本习题答案.doc

【习题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("%d,%d",&x,&y);的正确输入格式: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'与字符串常量"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)"a" B)'\\' C)"\n" D)"\376"

2.11 下面正确的字符串常量是(C)。

A)'a' B)'376' C)"\\n" D)376

2.12 表达式'A'+4*25.0-'b'的正确结果是(B)。

A)67 B)67.0 C)不确定 D)67L

2.13 执行printf("%x",100);后的输出结果是(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 存储字符串"\\\'abc\376"需要的字节数是(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&&chy?1:1.5));后的输出结果是(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>="0"&&ch<="9" B)ch>='0'&&ch<='9'

C)'0'≤ch≤'9' D)ch>='0'||ch<='9'

三、编程题(应用条件运算)

3.16 输入一个整型成绩x,如果大于等于60分,输出“pass”,否则输出“fail”。

提示:printf("%s",x>60?"pass":"fail");

3.17 输入一个年份y,如果是闰年,输出“y is a leap year”,否则输出“y is not a leap year.”

提示:printf("%d is %s",y%4==0&&y%100!=0||y%400==0?"a leap year.":"not a leap year.");

3.18 输入三条边a,b,c,如果它们能构成一个三角形,输出“Yes”,否则输出“No”。

提示:printf("%s",a+b>c&&a+c>b&&b+c>a?"Yes":"No");

3.19 输入三个数x,y,z,按从小到大的输出结果。

提示:分别用max0,min0代表最大、最小值,mid0表示中间值。

max0=(x>y?x:y)>z?(x>y?x:y):z;max0=(xmain()

{

int a=-1,b=1,c=5;

switch(a>0){

case 1:switch(b-2<0){

case 1:printf("&");break;

case 2:printf("*");break;

}

case 0:switch(c= =5){

case 0:printf("!");break;

case 1:printf("#");break;

default:printf("%%");

}

default:printf("@");

}

}

运行结果:@

4.5 将以下语句改写成switch语句。

if((t>0)&&(t<=10))

if((t>=3)&&(t<=6)) x=2;

else if((t>1)||(t>8)) x=3;

else x=1;

else x=0;

提示:int t;

if(t<=0||t>10) c=0;

else c=t;

switch(t)

{ case 0: x=0;break;

case 1: case 2: x=3;

case 3:case 4:case 5: case 6: x=2;

case 7:case 8: case 9: x=3;

case 10: x=2;

}

4.7 编程实现一个具有简单四则运算功能的计算器。

提示:参照例4.18,随机产生3个数,其中一个数用来判断是哪种运算。

4.8 编程实现,输入一行字符,将其中的数字字符对应的整数值加起来并输出结果。如:

a45b8&*3 则是4+5+8+3,结果为20。

提示:char c; int sum=0;

while((c=getchar())!='\n') if(c>='0'&&c<='9') sum=sum+c-'0';

4.9 编程实现,求 的值。

提示:先计算n!,再在计算阶乘的外面套上一层循环。注意:20!是一个很大的值,float s=1;int i;例如:计算6!:

for(i=1;i<=6;i++) s=s*i;

4.10 编程实现,找出1000之内的所有完数,并按下面格式输出其因子:

6 its factors are 1,2,3,

所谓“完数”是指一个数如果恰好等于它的因子之和,因子是指能够整除该数的数。

提示:先判断数是否为完数,如果是再考虑输出因子。以6为例输出因子:

for(i=1;i<6;i++) if(6%i==0) printf("%d,",i);

4.11 编程实现,计算序列的前20项之和,

, , , , , ,...

提示:这是一个累加式,每项是一个分式,用a、b分别表示分子、分母。注意:如果a、b都是整数,则是整除。float sum=0,a=2,b=1; int i;

for(i-1;i<=20;i++){sum=sum+a/b;a=a+b;b=a-b;}

4.12 编程实现,求Sn=a+aa+aaa+...+ aa...a之值,其中a是一个数字。如:2+22+222+2222+22222(此时n=5),n,a由键盘输入。

提示:这是一个累加式,后1项可以由前一项表示,譬如:第2项可以由第1项表示:

第1项 t=a; 第2项:t=t*10+a;

4.13 编程实现,把从键盘输入的金额数(以圆为单位)按人民币面额划分,然后显示支付该金额的各种面额人民币的数量。

提示:譬如:123.58元可以表示100元:1张;20元:1张;2元:1张;1元:1张;5角:1张;5分:1枚;2分:1枚;1分:1枚。

为了简单可以只完成整数部分转换,即输入的金额数为整数。

4.14 编程实现,使用循环结构打印以下图案。

*

* * *

* * * * *

* * * * * * *

* * * * *

* * *

*

提示:输出时,本图案要按向上三角形和向下三角形进行输出。每行输出中包括空格输出,‘*’号输出。输出空格和‘*’号个数要与行循环控制变量关联起来。

4.15 编程实现,以菜单方式实现猜数游戏系统。(功能自己设定)

提示:模仿例4.14和例4.18完成。功能可以包括猜数范围,人数等设置。

4.16 编程实现,以菜单方式实现四则运算辅助教学系统。

提示:随机产生两个操作数和运算符+、-、*、/,由使用者输入一个数,判断计算结果与输入的数是否相等,如果相等,表示正确,否则是错误的。

展开阅读全文

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值