C程序设计课后习题13答案.docx
- 文档编号:10614852
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:13
- 大小:21.11KB
C程序设计课后习题13答案.docx
《C程序设计课后习题13答案.docx》由会员分享,可在线阅读,更多相关《C程序设计课后习题13答案.docx(13页珍藏版)》请在冰豆网上搜索。
C程序设计课后习题13答案
C程序设计课后习题
第一章习题
1.选择题
(1)C语言程序的执行总是从(A)开始。
A.main函数的入口B.编译预处理命令
C.源程序的第一个函数D.源程序的第一行语句
(2)在C语言的源程序中,主函数的位置(C)。
A.必须在编译预处理命令的后面B.必须在源程序的最后
C.任意D.必须在源程序的开头
(3)下列变量名中合法的是(C)。
A.B.C.TomB.3a6b
C._6a7bD.$ABC
(4)下面两对用户定义标识符哪个可读性更强:
(C)
A.checkqualityB.salarytotal
C.check_qualityC.sal_ary_tot_al
(5)C程序是由(D)组成。
A.若干个过程B.若干子程序
C.一个主程序和若干子程序D.若干函数
2.填空题
(1)一个函数一般由两部分组成,它们分别是_函数首部______和__函数体____。
(2)编译预处理命令___是_____(填“是”或“不是”)C语言文本的一部分。
(3)一个C语言程序至少应包含一个__主函数或main()__。
(4)C语言的标准输入函数是_scanf()__,标准输出函数是___printf()____。
(5)函数体用___{______符号开始,用_____}______符号结束。
(6)注释的开始和结束标志分别为__/*____和____*/____。
为增强程序的__可读性___,应该为程序写上清晰的注释。
3.编程题:
参考本章例题,编写一个C程序,输出以下信息。
**********************
*Thedatais*
*2005-03-23*
**********************
程序如下:
#include
Voidmain()
{printf(“**********************\n”);
printf(“*Thedatais*\n”);
printf(“*2005-03-23*\n”);
printf(“**********************\n”);
}
第二章习题
1.选择题
(1)设intm=10,则下列表达式的值不等于零的有(AF)。
A.1%2B.m=10/11.0
C.m==8D.2/3
E.~m&mF.~(m|m)
G.!
mH.m^m
(2)设有intm=11,则表达式(B)使整型变量n的值为1。
A.n=m%3B.n=m-1<11?
1.0:
3.0
C.n=m/12D.n=11-m
(3)设有intx=10,y=3;则下列表达式值为1的是(D)。
A.!
(y==x/3)B.y!
=x%7
C.x>0&&y<0D.x!
=y||x>=y
(4)有如下定义
longm;charc;floatx;doubley;
则表达式2L+3*y+m*2+c+x*m*3的值的类型为(D)。
A.longB.charC.floatD.double
(5)’a’在内存中占(A)个字节,“a”在内存中占(B)个字节。
A.1B.2C.3D.4
(6)设intx=25;则表达式(x&20>>1)|(x>10|7&x^33)的值为(F)。
A.35B.43C.11D.3F.41
2.填空题
(1)若int类型占2个字节,则long型数据占_4_字节,short类型占_2_字节,unsignedint占__2__字节,float类型占__4__字节。
(2)若有floatx,执行表达式语句x=8.7+123.7*6-‘a’%7;后,x的值为__744.900024___。
(3)欲将一个16位二进制的整型变量的高8位清零,而只保留低8位,可用的方法__与八进制数377按位与即可______。
(4)下面程序段的输出结果为___0___。
Inta=1,b=2,c=3;
printf(“%d\n”,a=b==c);
(5)有如下语句,则输出输出结果为__k1=-1,k2=65535____。
intk=-1;
printf(“k1=%d,k2=%u”,k,k);
3.阅读程序,写出输出结果
(1)
#include
main()
{charc1=‘H’,c2=c1+32;
printf(“%o,%x,%d\n”,c1,c1,c1);
printf(“%c,%2d\n”,c2,c2);
}
输出结果为:
110,48,72
H,104
(2)
#include
main()
{
intx=432;
floatf=69.20;
charc;
c=f-2;
printf(“%c,”,c);
x+=f;
printf(“%d,”,x);
f=c+x;
printf(“%4.3f\n”,f);
}
输出结果为:
C,501,568.000
第三章习题
1.选择题
(1)结构化程序设计的三种基本结构是(A)。
A.顺序结构、选择结构、循环结构
B.顺序结构、转移结构、递归结构
C.嵌套结构、选择结构、递归结构
D.嵌套结构、循环结构、顺序结构
(2)C语言中,逻辑“真”等价于(C)。
A.大于零的数B.大于零的整数
C.非零的数D.非零的整数
(3)有程序段;
inta;
scanf(“%d”,&a);
if(!
a)
printf(“continue”);
则if语句中的!
a等价于(B)。
A.a!
=0B.a==0C.a>0D.a>=0
(4)若有intx,y;且x=20,则以下关于for循环语句的正确判断为(A)
for(y=20;x!
=y;++x,y++)printf(“--\n”);
A.循环体一次也不执行B.循环体只执行一次
C.死循环D.输出---—
(5)有程序段;
intx=20;
do{
x/=2
}while(x--);
请问此循环执行(A)次
A.4B.3C.5D.不确定
(6)下列说法中不正确的是(A)。
A.switch语句中必须使用break语句。
B.switch后的括号中可以为任何表达式。
C.case后只能是常量或常量表达式。
D.以上结论不都正确。
(7)下面选项中与if(a)等价的是(B)
A.if(a==0)B.if(a!
=0)C.if(a=0)D.if(a==1)
(8)有如下程序段:
intk,m;
k=5,m=1;
switch(k){
case1:
m++;
case5:
m*=3;
case9:
m+=4;break;
case11:
m+=1;
default:
m+=3;
}
printf(“%d\n”,m);
则输出结果是(B)。
A.10B.7C.3D.11
2.程序填空题
(1)求各位数为7且能被3整除的6位数的个数。
#include“stdio.h”
main()
{longinti;
intcount;
count=_____0______;
for(i=_100007___;i<99999;__i++_____)
if(__(i%10==7)&&(i%3==0)_______)count++;
printf(“count=%d\n”,count);
}
(2)本程序判断某年(year)是否是闰年。
#include”stdio.h”
main()
{
intyear;
printf(“pleaseinputyear:
”);
scanf(“%d”,&year);
if((year%4==0__&&__year%100!
=0)__||__year%400==0)
printf(“aleapyear.\n”);
}
(3)编程用公式:
4(1-1/3+1/5-1/7+...)计算圆周率,精度要求为10-5(注:
其中sign代表当前项符号(1表示+或-1表示-))。
#include
#include
voidmain()
{
intsign=1;
floatPi=0,item=1,k=3;
while(fabs(item)___)=1E-5________;)
{
pi+=item;
sign*=-1;
item=__sign/k______;
k_+=2_________;
}
pi=__pi*4_______;
printf(“pi=%f\n”,pi);
}
3.编程题
(1)请使用if...elesif...eles语句改写下面的程序。
#include
voidmain()
{intmark;
printf(“inputthemarkofastudent(0 ”); scanf(“%d”,&mark); mark=mark/10; switch(mark) { case9: printf(“A\n”);break; case8: printf(“B\n”);break; case7: printf(“C\n”);break; case6: printf(“D\n”);break; default: printf(“E\n”);break; } } 结果为: #include voidmain() {intmark; printf(“inputthemarkofastudent(0 ”); scanf(“%d”,&mark); if(mark/10==9) printf(“A\n”); elseif(mark/10==8) printf(“B\n”); elseif(mark/10==7) printf(“C\n”); elseif(mark/10==6) printf(“D\n”); else printf(“E\n”); } (2)从键盘上输入四个整数,输出其中最小的一个。 结果为: #include voidmain() { inta,b,c,d,min; scanf(“%d,%d,%d,%d”,&a,&b,&c,&d); min=a; if(min>b)min=b; if(min>c)min=c; if(min>d)min=d; printf(“min=%d\n”,min); } (3)求12/(1+1)+22/(2+1)+32/(3+1)+...+n2/(n+1)的值,其中n的值由用户输入确定(注: 请使用两种以上的不同循环分别编写本题)。 结果为: 方法一: #include main() {intn,i=1; floatsum=0; scanf(“%d”,&n); while(i<=n) {sum=sum+i*i/(i+1.0) i++; } Printf(“sum=%f\n”,sum); } 方法二: #include main() {intn,i=1; floatsum=0; scanf(“%d”,&n); do {sum=sum+i*i/(i+1.0) i++; }while(i<=n); Printf(“sum=%f\n”,sum); } 方法三: #include main() {intn,i; floatsum=0; scanf(“%d”,&n); for(i=1;i<=n;i++) {sum=sum+i*i/(i+1.0) } Printf(“sum=%f\n”,sum); } (4)输入一串字符,将其中的空格和数字删除后输出。 结果为: #include main() {charc; while(c=getchar()! =’\n’) if(! ((c==’‘)||(c>=48&&c<=57))) Putchar(c); } } (5)本程序为某批发店计算应收货款总额。 贷款总额等于单价乘以发货数量,而单价随发货数量的增加而降低。 具体规定如下: 基本单价为10元。 购买数量(n) 当1~5件时,优惠x%,x=n-1; 当6~20件时,优惠x%,x=4+(n-5)*0.4; 当21~50件时,优惠x%,x=10+(n-20)*0.15; 当51~300件时,优惠x%,x=14.5+(n-50)*0.03; 当300件以上时,优惠x%,x=22. 当用户输入购买的数量时,程序计算并输出单价和货款总额。 结果为: #include voidmain() { intn; floatprice=10,r_price,p_sum; printf(“Pleaseinputnumber: \n”); scanf(“%d”,&n); if(n<=5) {r_price=price*(100-(n-1))/100;} elseif(n<=20) {r_price=price*(100-(4+(n-5)*0.4))/100;} elseif(n<=50) {r_price=price*(100-(10(n-20)*0.15))/100;} elseif(n<=300) {r_price=price*(100-(14.5+(n-50)*0.03))/100;} else {r_price=price*(100-22)/100;} printf(“Price=%f,Sum=%f”,r_price,n*r_price); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 课后 习题 13 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)