C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx

上传人:b****2 文档编号:11761241 上传时间:2023-06-02 格式:DOCX 页数:55 大小:110.42KB
下载 相关 举报
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第1页
第1页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第2页
第2页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第3页
第3页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第4页
第4页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第5页
第5页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第6页
第6页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第7页
第7页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第8页
第8页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第9页
第9页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第10页
第10页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第11页
第11页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第12页
第12页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第13页
第13页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第14页
第14页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第15页
第15页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第16页
第16页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第17页
第17页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第18页
第18页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第19页
第19页 / 共55页
C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx_第20页
第20页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx

《C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx(55页珍藏版)》请在冰点文库上搜索。

C语言程序设计项目教程 教学课件C语言程序设计项目教程习题答案.docx

C语言程序设计项目教程教学课件C语言程序设计项目教程习题答案

习题答案

模块1C语言基础知识

1.选择题

(1)C语言中运算对象必须是整型的运算符是(B)。

A.%=B./C.=D.<=

(2)以下所列的C语言常数中,错误的是(B)。

A.0xFFB.1.2E0.5C.2LD.-.67

(3)以下选项中能作为用户标识符的是(C)。

A.voidB.7_9C._3_D.Dr.Tom

(4)以下所列的C语言字符常量中,合法的是(B)。

A.”B”B.’\n’C.’中国’D.d

(5)以下选项中正确的定义语句是(D)。

A.inta:

b;B.int,a,b;C.inta+b=6;D.inta=6,b;

(6)以下关于long、int、short型数据占用内存大小的叙述中正确的是(D)。

A.均占4个字节B.根据数据的大小来决定所占内存的字节数

C.由用户自己定义D.由C语言编译系统决定

(7)若有定义语句:

intx=10;,则表达式x-=x+x的值为(B)。

A.-20B.-10C.0D.10

(8)表达式((a=3*5,a+4),a+5)的值是(A)。

A.20B.29C.60D.90

(9)若有定义语句:

inta=3,b=4,c=5;,则以下表达式中值为0的是(D)。

A.a&&bB.a<=bC.a||b+c&&b-cD.!

((a

(10)设有以下定义:

inti;charc;floatf;,以下结果为整型的表达式是(B)。

A.i+fB.i*cC.c+fD.i+c+f

2.填空题

(1)设有intn=12;,则表达式(n++*1/3)的值是4。

(2)定义以下变量:

charc;intx;floaty;doublez;,则表达式c*x+y-z,所求得的数据类型为double。

(3)设变量a和b已正确赋初值,请写出a/=a+b等价的赋值表达式a=a/(a+b)。

(4)若有语句doublex=15.5;inty;,当执行y=(int)(x/5)%2;之后y的值是1。

(5)若有语句doubley=3.6;,则执行完++y;语句后,(++y)表达式的值是4.6,变量y的值是4.6。

(6)代数式-2ab+40-4ac改写成C语言的表达式是-2*a*b+40-4*a*c。

(7)在计算机中,字符的比较是对它们的ASCII码值进行比较。

(8)已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=′a′+′8′-′3′的值为f。

3.分析下列程序的运行结果

(1)#include

voidmain()

{

inta=21,b=11;

printf("%d\n",--a+b,--b+a);

}

程序的运行结果:

(2)#include

voidmain()

{

printf("\nABC\tDE\nFGH\n");

printf("\nwhyis31+31equalto%d?

\n\n,21+31");

}

程序的运行结果:

(3)#include

voidmain()

{

charch=65;

printf("%c\n",ch);

}

程序的运行结果:

(4)#include

voidmain()

{

intx=10,y=20,z=30;

z=x!

=y;

printf("%d\n",z);

}

程序的运行结果:

(5)#include

voidmain()

{

intx=10;

printf("%d\n",(x%3==0));

}

程序的运行结果:

(6)#include

voidmain()

{

intk=4,a=3,b=2,c=1;

printf("%d\n",(k

k:

(c

c:

a)));

}

程序的运行结果:

模块2顺序结构

1.程序填空题

(1)要得到下列输出结果:

请按要求填空,补充以下程序:

#include

voidmain()

{

charc1,c2;

c1='a';

c2='b';

printf("%c,%c\n",c1,c2);

printf("%c,%c\n",c1-32,c2-32);

printf("%d,%d,%d,%d\n",c1,c2,c1-32,c2-32);

}

(2)要得到下列输出结果:

#include

voidmain()

{

inta=2,b=5;

printf("a=%%%d,b=%%%d\n",a,b);

}

2.分析下列程序的运行结果

(1)#include

voidmain()

{

intn=5,m=5;

printf("%d,%d\n",++m,n--);

}

程序的运行结果:

(2)执行下列程序时输入:

2468101

#include

voidmain()

{

intx,y;

scanf("%2d%*2d%2d",&x,&y);

printf("%ld\n",x+y);

}

程序的运行结果:

(3)执行下列程序时输入:

ABCD

#include

voidmain()

{

charx,y;

x=getchar();

y=getchar();

putchar(x);putchar('\n');putchar(y);

}

程序的运行结果:

(4)#include

#include

voidmain()

{

inta=1,b=2,c=2;

floatx=10.5,y=4.0,z;

z=(a+b)/c+sqrt((int)y)*1.2/c+x;

printf("z=%f\n",z);

}

程序的运行结果:

3.编程实现以下功能

(1)从键盘输入一个整数x,若x大于0,则显示“红”;若x等于0,则显示“黄”;若x小于0,则显示“绿”。

#include

voidmain()

{

intx;

printf("请输入一个整数:

");

scanf("%d",&x);

printf("%s\n",(x>0?

"红":

(x==0?

"黄":

"绿")));

}

(2)假设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后可得到本利之和deposit(假设不计算复利)。

提示:

2.25%编写程序时应写为0.0225,本金和年数未知,从键盘输入。

#include

#include

voidmain()

{

intn;

floatcapital,rate=0.0225,deposit;

printf("请输入存款期和本金:

");

scanf("%d%f",&n,&capital);

deposit=capital*pow(1+rate,n);

printf("deposit=%f\n",deposit);

}

(3)编写程序,把700分钟换算成用小时和分钟表示。

#include

#include

voidmain()

{

intn=700,x,f;

x=n/60;

f=n%60;

printf("700分钟是%d小时,%d分钟。

\n",x,f);

}

模块3选择结构

1.分析下列程序的运行结果

(1)#include

voidmain()

{

intx=1,y=5,z=3;

if(z=x)printf("%d\n",z);

elseprintf("%d\n",y);

}

程序的运行结果:

(2)#include

voidmain()

{

intx=1,a=0,b=0;

switch(x)

{

case0:

b++;

case1:

a++;

case2:

b++,a++;

}

printf("a=%d,b=%d\n",a,b);

}

程序的运行结果:

(3)#include

voidmain()

{

intn=6;

if(n++>6)printf("%d\n",n);

elseprintf("%d\n",n--);

}

程序的运行结果:

(4)#include

voidmain()

{

inta=1,b=-1,c;

if(a*b>0)c=1;

elseif(a*b<0)

c=2;

else

c=3;

printf("c=%d\n",c);

}

程序的运行结果:

2.编程实现以下功能

(1)从键盘输入一个整数,如果是偶数,输出“IsEven”;如果是奇数,输出“IsOdd”。

#include

voidmain()

{

inti;

printf("请输入一个整数:

");

scanf("%d",&i);

if(i%2==0)printf("%d%s\n",i,"IsEven");

elseprintf("%d%s\n",i,"IsOdd");

}

(2)求解一元二次方程ax2+bx+c=0。

如果有实根,则输出;否则输出“无实根”(a、b、c由键盘输入)。

#include

#include

voidmain()

{

floata,b,c,d;

doublef,x1,x2;

printf("请输入三个系数:

");

scanf("%f%f%f",&a,&b,&c);

d=b*b-4*a*c;

if(d<0)printf("无实根!

\n");

else

{

f=sqrt(d);

x1=(-b+f)/(2*a);

x2=(-b-f)/(2*a);

if(f==0)printf("x1=x2=%lf\n",x1);

elseprintf("x1=%lf,x2=%lf\n",x1,x2);

}

}

(3)编写可以完成加、减、乘、除、求余运算的简易计算器程序。

#include

#include

#include

voidmain()

{

charch;

inta,b,c;

floatdiv;

printf("\t\t简易计算器\n\n");

printf("\t1.加法运算2.减法运算\n\n");

printf("\t3.乘法运算4.除法运算\n\n");

printf("\t5.求余运算0.减法运算\n\n");

printf("\t请选择(0-5):

");

ch=getche();

switch(ch)

{

case'0':

exit(0);

case'1':

printf("\n\n请输入两个整数:

");

scanf("%d%d",&a,&b);

c=a+b;

printf("%d+%d=%d\n",a,b,c);

break;

case'2':

printf("\n\n请输入两个整数:

");

scanf("%d%d",&a,&b);

c=a-b;

printf("%d-%d=%d\n",a,b,c);

break;

case'3':

printf("\n\n请输入两个整数:

");

scanf("%d%d",&a,&b);

c=a*b;

printf("%d*%d=%d\n",a,b,c);

break;

case'4':

printf("\n\n请输入两个整数:

");

scanf("%d%d",&a,&b);

div=(float)a/b;

printf("%d/%d=%f\n",a,b,div);

break;

case'5':

printf("\n\n请输入两个整数:

");

scanf("%d%d",&a,&b);

c=a%b;

printf("%d%%%d=%d\n",a,b,c);

break;

default:

printf("\n\n\t选择错误!

\n");

}

}

(4)某商场给顾客购物的折扣率如下:

购物金额<200元不打折

200元<=购物金额<500元9折

500元<=购物金额<1000元8折

购物金额>=1000元7.5折

输入一个购物金额,输出打折率、购物实际付款金额。

要求:

分别用if语句和switch语句两种方法完成编程。

方法一:

用if语句

#include

voidmain()

{

floatgwje;

printf("请输入购物金额:

");

scanf("%f",&gwje);

if(gwje<200)printf("折扣率为0,实际应付金额为:

%f\n",gwje);

elseif(gwje>=200&&gwje<500)

printf("折扣率为9折,实际应付金额为:

%f\n",gwje*0.9);

elseif(gwje>=500&&gwje<1000)

printf("折扣率为8折,实际应付金额为:

%f\n",gwje*0.8);

elseprintf("折扣率为7.5折,实际应付金额为:

%f\n",gwje*0.75);

}

方法二:

用进制switch语句

#include

voidmain()

{

floatgwje,zk,fkje;

intn;

printf("请输入购物金额:

");

scanf("%f",&gwje);

n=(int)gwje/100;

switch(n)

{

case0:

case1:

zk=1;

break;

case2:

case3:

case4:

zk=0.9;

break;

case5:

case6:

case7:

case8:

case9:

zk=0.8;

break;

default:

zk=0.75;

}

fkje=gwje*zk;

printf("折扣率为:

%f,应付购物金额为:

%f\n",zk,fkje);

}

(5)某市出租车计费,起步价8元,前3km不计费;超过3km但不足20km,按单程1.4元/km计费;从20km开始,一律按单程1.0元/km计费;实际行驶里程不足1km的按1km计费。

请为出租车写一个程序,当输入实际里程时,立即输出乘客应付的出租车费。

#include

voidmain()

{

intjl;

printf("请输入实际里程(公里):

");

scanf("%d",&jl);

if(jl<=3)printf("应付车费为:

%f元\n",8);

elseif(jl>3&&jl<20)

printf("应付车费为:

%f元\n",8+(jl-3)*1.4);

elseprintf("应付车费为:

%f元\n",8+17*1.4+(jl-20)*1);

}

模块4循环结构程序设计

1.分析下列程序的运行结果

(1)#include

voidmain()

{

intx,n=0;

floatsum=0,ave;

printf("inputscores:

");

scanf("%d",&x);

while(x!

=-1)

{

sum+=x;

n++;

scanf("%d",&x);

}

ave=sum/n;

printf("averagescore=%.2f\n",ave);

}

程序的运行结果:

(2)#include

voidmain()

{

intn=0,s=0;

do

{

n=n+1;

s=s+n;

}while(s<200);

printf("n=%d,sum=%d\n",n-1,s-n);

}

程序的运行结果:

(3)#include

voidmain()

{

floatx,min;

inti;

scanf("%f",&x);

min=x;

for(i=1;i<5;i++)

{

scanf("%f",&x);

if(x

}

printf("min=%f\n",min);

}

程序的运行结果:

(4)#include

voidmain()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=1;j<=20-i;j++)

printf("");

for(j=1;j<=2*i-1;j++)

printf("*");

printf("\n");

}

}

程序的运行结果:

2.编程实现以下功能

(1)编写程序,将1~100之间个位数是6的数据输出。

#include

voidmain()

{

inti,k=0;

for(i=1;i<=100;i++)

if(i%10==6)

{

printf("%3d",i);

k++;

if(k%10==0)printf("\n");

}

printf("\n");

}

(2)从键盘上连续输入字符,统计其中大写字母的个数,直到输入换行符结束。

#include

voidmain()

{

intn=0;

charc;

printf("请输入一串字符,以回车结束:

");

while((c=getchar())!

='\n')

{

if((c>='A')&&(c<='Z'))

n++;

}

printf("大写字母有%d个。

\n",n);

}

(3)输入5位同学3门课程成绩,分别计算并输出每位同学3门课程成绩的平均分。

#include

voidmain()

{

intn;

floatcj1,cj2,cj3,pjf=0;

for(n=1;n<=5;n++)

{

printf("请输入第%d位学生的三门课成绩:

",n);

scanf("%f%f%f",&cj1,&cj2,&cj3);

pjf=(cj1+cj2+cj3)/3;

printf("第%d位学生的平均成绩是%f分。

\n\n",n,pjf);

}

}

(4)100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担,试编程计算大、中、小马的数目。

#include

voidmain()

{

inti,j;

for(i=0;i<34;i++)/*大马*/

for(j=0;j<(100-i*3)/2+1;j++)/*中马*/

if((100-i-j)%2==0&&3*i+2*j+(100-i-j)/2==100)

printf("大马%d匹,中马%d匹,小马%d匹\n\n",i,j,100-i-j);

}

(5)编写程序,判断从键盘输入的自然数是否为素数(质数)。

说明:

1)所谓素数就是只能被1和它自身整除的大于1的整数。

2)要判断n是否为素数,就要用2、3、…、n-1分别去除n,如果都不能被整除,则n就是素数,正常退出循环;如果其中某个数被n整除,则n不是素数,需要退出循环。

#include

voidmain()

{

inti,num;

printf("请输入一个自然数:

");

scanf("%d",&num);

if(num<=1)printf("%d为非素数",num);

else

{

for(i=2;i

{

if(num%i==0)break;

}

if(i==num)

printf("%d为素数\n",num);

elseprintf("%d为非素数\n",num);

}

}

模块5数组

1.分析下列程序的运行结果

(1)#include

voidmain()

{

inta[]={1,2,3,4},i,s=0,j=1;

for(i=3;i>=0;i--)

{

s=s+a[i]*j;

j=j*10;

}

printf(“s=%d\n”,s);

}

程序的运行结果:

(2)#include

voidmain()

{

inti,j,s=0;

inta[3][3]={1,2,3,4,5,6,7,8,9};

s=0;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

s=s+a[i][i];

printf("s=%d\n",s);

}

程序的运行结果:

(3)#include

voidmain()

{

charch[7]={"65ab21"};

inti,s=0;

for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)

s=10*s+ch[i]-'0';

printf("%d\n",s);

}

程序的运行结果:

(4)运行时输入“Hello!

#include

voidmain()

{

charss[10]="1,2,3,4,5";

gets(ss);

strcat(ss,"6789");

printf("%s\n",ss);

}

程序的运行结

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2