c语言习题及答案爱课程mooc.docx

上传人:b****5 文档编号:7699650 上传时间:2023-01-25 格式:DOCX 页数:48 大小:99.69KB
下载 相关 举报
c语言习题及答案爱课程mooc.docx_第1页
第1页 / 共48页
c语言习题及答案爱课程mooc.docx_第2页
第2页 / 共48页
c语言习题及答案爱课程mooc.docx_第3页
第3页 / 共48页
c语言习题及答案爱课程mooc.docx_第4页
第4页 / 共48页
c语言习题及答案爱课程mooc.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

c语言习题及答案爱课程mooc.docx

《c语言习题及答案爱课程mooc.docx》由会员分享,可在线阅读,更多相关《c语言习题及答案爱课程mooc.docx(48页珍藏版)》请在冰豆网上搜索。

c语言习题及答案爱课程mooc.docx

c语言习题及答案爱课程mooc

第一章

题目内容:

利用printf()在屏幕上输出helloworld!

提示:

#include <>

intmain()

{

printf("helloworld!

\n");

return0;

}

输入格式:

输出格式:

输出提示信息:

"helloworld!

\n"

输入样例:

 

输出样例:

helloworld!

#include<>

intmain()

{

printf("helloworld!

\n");

return0;

}

在屏幕上输出多行信息(3分)

题目内容:

利用printf()函数在屏幕上输出以下多行信息:

helloworld!

hellohit!

helloeveryone!

提示:

在printf()函数中转义字符‘\n’表示换行。

输入格式:

 

输出格式:

输出提示信息:

"helloworld!

\n"

"hellohit!

\n"

"helloeveryone!

\n"

输入样例:

 

输出样例:

helloworld!

hellohit!

helloeveryone!

#include<>

intmain()

{

printf("helloworld!

\n");

printf("hellohit!

\n");

printf("helloeveryone!

\n");

return0;

}

计算半圆弧的周长及半圆面积(3分)

题目内容:

编程并输出半径r=的半圆弧的周长及该半圆的面积,

的取值为。

要求半径r和

必需利用宏常量表示。

输入格式:

输出格式:

半圆的面积输出格式:

 "Area=%f\n"

半圆弧的周长输出格式:

 "circumference=%f\n"

输入样例:

 

输出样例:

Area=

circumference=

#include<>

#definePI

#defineR

intmain()

{

printf("Area=%f\n",R*R*PI/2);

printf("circumference=%f\n",2*R*PI/2);

return0;

}

计算长方体体积(3分)

题目内容:

编程并输出长、宽、高的长方体的体积。

要求长方体的长、宽、高必需利用const常量表示。

输入格式:

输出格式:

长方体的体积输出格式:

"volume=%.3f\n"

输入样例:

输出样例:

#include<>

intmain()

{

constfloatl=;

constfloatx=;

constfloaty=;

printf("volume=%.3f\n",l*x*y);

return0;

}

第三章

计算两个数的平方和(3分)

题目内容:

从键盘读入两个实数,编程计算并输出它们的平方和,要求利用数学函数pow(x,y)计算平方值,输出结果保留2位小数。

提示:

利用数学函数需要在程序中加入编译预处置命令#include<>

以下为程序的输出例如:

pleaseinputxandy:

result=

输入格式:

"%f,%f"

输出格式:

输入提示信息:

"pleaseinputxandy:

\n"

输出格式:

"result=%.2f\n"

输入样例:

 

输出样例:

#include<>

#include<>

intmain()

{

printf("pleaseinputxandy:

\n");

floatx,y;

scanf("%f,%f",&x,&y);

printf("result=%.2f\n",pow(x,2)+pow(y,2));

return0;

}

逆序数的拆分计算(3分)

题目内容:

从键盘输入一个4位数的整数,编程计算并输出它的逆序数(忽略整数前的正负号)。

例如,输入-1234,忽略负号,由1234分离出其千位1、百位2、十位3、个位4,然后计算4*1000+3*100+2*10+1=4321,并输出4321。

再将取得的逆序数4321拆分为两个2位数的正整数43和21,计算并输出拆分后的两个数的平方和的结果。

以下是程序的输出例如:

Inputx:

-1234↙

y=4321

a=43,b=21

result=2290

输入格式:

"%d"

输出格式:

输入提示信息:

"Inputx:

\n"

逆序数输出格式:

"y=%d\n"

逆序数拆分后的输出格式:

"a=%d,b=%d\n"

平方和的输出格式:

"result=%d\n"

输入样例:

 

输出样例:

#include<>

intmain()

{

printf("Inputx:

\n");

intx;

scanf("%d",&x);

if(x<=0)

{

x=-x;

}

inta,b,c,d;

a=x/1000;

b=x/100%10;

c=x/10%10;

d=x%10;

printf("y=%d\n",d*1000+c*100+b*10+a);

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

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

return0;

}

拆分英文名(3分)

题目内容:

从键盘输入某同窗的英文名(小写输入,假设学生的英文名只包括3个字母。

如:

tom),编写程序在屏幕上输出该同窗的英文名,且首字母大写(如:

Tom)。

同时输出组成该英文名的所有英文字符在26个英文字母中的序号。

以下为程序的输出例如:

inputyourEnglishname:

tom↙

Tom

t:

20

o:

15

m:

13

输入格式:

"%c%c%c"

输出格式:

输入提示信息:

"inputyourEnglishname:

\n"

首字母大写的英文姓名的输出格式:

"%c%c%c\n"

姓名中每一个字母在26个英文字母中的序号的输出格式:

"%c:

%d\n"

输入样例:

 

输出样例:

#include<>

intmain()

{

printf("inputyourEnglishname:

\n");

chara,b,c;

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

printf("%c%c%c\n",a+'A'-'a',b,c);

printf("%c:

%d\n",a,a-'a'+1);

printf("%c:

%d\n",b,b-'a'+1);

printf("%c:

%d\n",c,c-'a'+1);

return0;

}

计算体指数(3分)

题目内容:

从键盘输入某人的身高(以厘米为单位,如174cm)和体重(以千克为单位,如70千克),将身高(以米为单位,如)和体重(以斤为单位,如140斤)输出在屏幕上,并依照以下公式计算并输出体指数,要求结果保留到小数点后2位。

假设体重为w千克,身高为h米,那么体指数的计算公式为:

        

以下是程序的输出例如:

inputweight,height:

70,174↙

weight=140

height=

t=

 

输入格式:

"%d,%d"

输出格式:

输入提示信息:

"inputweight,height:

\n"  (注意:

在height和逗号之间有一个空格)

体重输出格式:

"weight=%d\n"

身高输出格式:

"height=%.2f\n"

体指数输出格式:

"t=%.2f\n"

输入样例:

 

输出样例:

#include<>

intmain()

{

intx,y;

printf("inputweight,height:

\n");

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

printf("weight=%d\n",x*2);

printf("height=%.2f\n",y/;

printf("t=%.2f\n",x/((y/*(y/));

return0;

}

第四章

数位拆分(4分)

题目内容:

从键盘上输入一个4位数的整数n,编写程序将其拆分为两个2位数的整数a和b,计算并输出拆分后的两个数的加、减、乘、除和求余运算的结果。

例如n=-4321,设拆分后的两个整数为a,b,那么a=-43,b=-21。

除法运算结果要求精准到小数点后2位。

求余和除法运算需要考虑除数为0的情形,即若是拆分后b=0,那么输出提示信息"thesecondoperateriszero!

"

程序的运行结果例如1:

pleaseinputn:

1200↙

12,0

sum=12,sub=12,multi=0

thesecondoperateriszero!

程序的运行结果例如2:

pleaseinputn:

-2304↙

-23,-4

sum=-27,sub=-19,multi=92

dev=,mod=-3

输入格式:

"%d"

输出格式:

输入提示信息:

"pleaseinputn:

\n"

拆分后的两个整数的输出格式:

"%d,%d\n"

加法、减法、乘法的输出格式:

"sum=%d,sub=%d,multi=%d\n"

除法和求余的输出格式:

"dev=%.2f,mod=%d\n"

除数为0的提示信息:

"thesecondoperateriszero!

\n"

输入样例:

 

输出样例:

#include<>

main()

{

intm,x,y;

printf("pleaseinputn:

\n");

scanf("%d",&m);

x=m/100;

y=m%100;

printf("%d,%d\n",x,y);

printf("sum=%d,sub=%d,multi=%d\n",x+y,x-y,x*y);

if(y!

=0){

printf("dev=%.2f,mod=%d\n",(float)x/y,x%y);

}

else{

printf("thesecondoperateriszero!

\n");

}

}

快递费用计算(4分)

题目内容:

上海市的某快递公司依照投送目的地距离公司的远近,将全国划分成5个区域:

 

0区

1区

2区

3区

4区

同城

临近两省

1500公里(含)以内

1500——2500公里

2500公里以上

上海

江苏,浙江

北京,天津,河北,辽宁,河南,安微,陕西,湖北,江西,湖南,福建,广东,山西。

吉林,辽宁,甘肃,四川,重庆,青海,广西,云南,海南,内蒙古,黑龙江,贵州。

新疆,西藏。

 

快递费按邮件重量计算,由起重费用、续重费用两部份组成:

(1)起重(首重)1千克按起重资费计算(不足1千克,按1千克计算),超过首重的重量,按千克(不足1千克,按1千克计算)收取续重费;

(2)同城起重资费10元,续重3元/千克;

(3)寄往1区(江浙两省)的邮件,起重资费10元,续重4元;

(4)寄往其他地域的邮件,起重资费统一为15元。

而续重部份,不同区域价钱不同:

2区的续重5元/千克,3区的续重元/千克,4区的续重10元/千克。

编写程序,从键盘输入邮件的目的区域编码和重量,计算并输出运费,计算结果保留2位小数。

提示:

续重部份不足一千克,按1千克计算。

因此,如包裹重量千克:

1千克算起重,剩余的千克算续重,不足1千克按1千克计算,千克折合续重为2千克。

若是重量应大于0、区域编号不能超出0-4的范围。

程序运行结果例如1:

4,↙

Price:

 

程序运行结果例如2:

5,↙

ErrorinArea

Price:

 

输入格式:

用逗号分隔的两个数字,第一个表示区域、第二个是重量:

"%d,%f"

输出格式:

价钱的输出格式:

"Price:

%\n"

区域错误的提示信息:

"ErrorinArea\n"

输入样例:

 

输出样例:

#include<>

#include<>

intmain()

{

intarea;

floatweight,price,x1,x2;

scanf("%d,%f",&area,&weight);

if(weight<=1){

x1=;

}

else{

x1=;

x2=ceil(weight-1);

}

if(area>0&&area<=4){

switch(area){

case(0):

price=x1*10+x2*3;break;

case

(1):

price=x1*10+x2*4;break;

case

(2):

price=x1*15+x2*5;break;

case(3):

price=x1*15+x2*;break;

case(4):

price=x1*15+x2*10;break;

}

printf("Price:

%\n",price);

}

else{

printf("ErrorinArea\n");

printf("Price:

\n");

}

return0;

}

数据区间判定(5分)

题目内容:

从键盘输入一个int型的正整数n(已知:

0

若是用户输入的数据不在指定的范围里,程序输出"error!

"。

例如,输入265,那么该数属于区间100-999。

程序运行结果例如1:

Pleaseenterthenumber:

2563↙

2563:

1000-9999

程序运行结果例如2:

Pleaseenterthenumber:

156↙

156:

100-999

程序运行结果例如3:

Pleaseenterthenumber:

36↙

36:

10-99

程序运行结果例如4:

Pleaseenterthenumber:

3↙

3:

0-9

程序运行结果例如5:

Pleaseenterthenumber:

10923↙

error!

输入格式:

"%d"

输出格式:

输入提示信息:

"Pleaseenterthenumber:

\n"

输出的区间判定:

"%d:

1000-9999\n"

"%d:

100-999\n"

"%d:

10-99\n"

"%d:

0-9\n"

输入错误提示信息:

"error!

\n"

输入样例:

 

输出样例:

#include<>

#include<>

intmain()

{

intx;

printf("Pleaseenterthenumber:

\n");

scanf("%d",&x);

if(x>=1000&&x<=9999)printf("%d:

1000-9999\n",x);

elseif(x>=0&&x<=9)printf("%d:

0-9\n",x);

elseif(x>=10&&x<=99)printf("%d:

10-99\n",x);

elseif(x>=100&&x<=999)printf("%d:

100-999\n",x);

elseprintf("error!

\n");

return0;

}

计算一元二次方程的根(3分)

题目内容:

依照下面给出的求根公式,计算并输出一元二次方程

的两个实根,要求精准到小数点后4位。

其中a,b,c的值由用户从键盘输入。

若是用户输入的系数不知足求实根的要求,输犯错误提示 "error!

"。

程序运行结果例如1:

Pleaseenterthecoefficientsa,b,c:

1,2,1↙

x1=,x2=

程序运行结果例如2:

Pleaseenterthecoefficientsa,b,c:

2,6,1↙

x1=,x2=

程序运行结果例如3:

Pleaseenterthecoefficientsa,b,c:

2,1,6↙

error!

输入格式:

"%f,%f,%f"

输出格式:

输入提示信息:

"Pleaseenterthecoefficientsa,b,c:

\n"

输出格式:

"x1=%,x2=%\n"

输入错误提示信息:

"error!

\n"

输入样例:

 

输出样例:

#include<>

#include<>

intmain()

{

floata,b,c,x1,x2,m;

printf("Pleaseenterthecoefficientsa,b,c:

\n");

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

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

if(m<0){

printf("error!

\n");

}

else{

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

x2=(-b-sqrt(m))/(2*a);

printf("x1=%,x2=%\n",x1,x2);

}

return0;

}

第五章

6位密码输入检测(3分)

题目内容:

从键盘输入6位仅由数字0~9组成的密码。

用户每输入一个密码并按回车键后,程序给出判定:

若是是数字,那么原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一名密码;不然,程序提示"error",并让用户继续输入下一名密码。

直到用户输入的密码全数是数字为止。

以下为程序的运行结果例如:

Inputyourpassword:

1↙

1,youhaveenter1-bitsnumber

6↙

6,youhaveenter2-bitsnumber

a↙

error

d↙

error

4↙

4,youhaveenter3-bitsnumber

6↙

6,youhaveenter4-bitsnumber

8↙

8,youhaveenter5-bitsnumber

2↙

2,youhaveenter6-bitsnumber

输入格式:

数字字符输入格式:

"%c"

输出格式:

输入提示信息:

"Inputyourpassword:

\n"

若是输入的是数字,输出格式为:

"%c,youhaveenter%d-bitsnumber\n"

若是输入的不是数字,输出提示信息:

"error\n"

输入样例:

 

输出样例:

#include<>

intmain()

{

chara;

inti=0;

printf("Inputyourpassword:

\n");

while(i<6)

{

scanf("%c",&a);

if(a>=48&&a<=57)

{

printf("%c,youhaveenter%d-bitsnumber\n",a,++i);

}

else

printf("error\n");

getchar();

}

return0;

}

判定一个整型数据有几位(4分)

题目内容:

从键盘输入一个整型数据(int型),编写程序判定该整数共有几位。

例如,从键盘输入整数16644,该整数共有5位。

程序运行结果例如1:

Pleaseenterthenumber:

21125↙

21125:

5bits

 

程序运行结果例如2:

Pleaseenterthenumber:

-12234↙

-12234:

5bits

输入格式:

"%d"

输出格式:

输入提示信息:

"Pleaseenterthenumber:

\n"

判定该整数共有几位:

 "%d:

%dbits\n"

输入样例:

 

输出样例:

#include<>

intmain(){

intx,y,n;

printf("Pleaseenterthenumber:

\n");

scanf("%d",&x);

n=x;

for(y=1;x/=10;y++);

printf("%d:

%dbits\n",n,y);

return0;

}

检测输入数据中奇数和偶数的个数(4分)

题目内容:

从键盘输入一系列正整数,输入-1表示输入终止(-1本身不是输入的数据)。

编写程序判定输入数据中奇数和偶数的个数。

若是用户输入的第一个数据确实是-1,那么程序输出"over!

"。

不然。

用户每输入一个数据,输出该数据是奇数仍是偶数,直到用户输入-1为止,别离统计用户输入数据中奇数和偶数的个数。

程序运行结果例如1:

Pleaseenterthenumber:

1↙

1:

odd

5↙

5:

odd

8↙

8:

even

9↙

9:

odd

12↙

12:

even

17↙

17:

odd

-1↙

Thetotalnumberofoddis4

Thetotalnumberofevenis2

 

程序运行结果例如2:

Pleaseenterthenumber:

-1↙

over!

Thetotalnumberofoddis0

Thetotalnumberofevenis0

输入格式:

"%d"

输出格式:

输入提示信息:

"Pleaseenterthenumber:

\n"

用户输入的第一个数据确实是-1,输出格式:

"over!

\n"

奇数的输出格式:

"%d:

odd\n"

偶数的输出格式:

"%d:

even\n"

输入数据中奇数的个数统计:

"Thetotalnumberofoddis%d\n"

输入数据中偶数的个数统计:

"Thetotalnumberofevenis%d\n"

输入样例:

 

输出样例:

#include<>

intmain(){

ints,odd=0,even=0;

printf("Pleaseenterthenumber:

\n");

do{

scanf("%d",&s);

if(s==-1&&odd==0&&even==0)printf("over!

\n");

elseif(s%2!

=0&&s!

=-1){printf("%d:

odd\n",s);odd++;}

elseif(s%2==0){printf("%d:

even\n",s);even++;}

elseeven+=0;

}while(s!

=-1);

printf("Thetotalnumberofoddis%d\n",odd);

printf("Thetotalnumberofevenis%d\

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

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1