c语言复习题答案(49题)_第1页
c语言复习题答案(49题)_第2页
c语言复习题答案(49题)_第3页
c语言复习题答案(49题)_第4页
c语言复习题答案(49题)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——c语言复习题答案(49题)

一、顺序结构程序设计========================================1已知三角形的三边长为a,b,c,计算三角形面积的公式为:

1(a?b?c)2要求编写程序,从键盘输入a,b,c的值,计算并输出三角形的面积。

#include#includevoidmain(){

floata,b,c,s,area;

scanf(\s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(\b=%7.2f,c=%7.2f,s=%7.2f\\n\printf(\}

2编程从键盘输入圆的半径r,计算并输出圆的周长和面积。#include\#definePi3.14voidmain(){

floatr,c,area;

printf(\请输入圆的半径:\scanf(\c=2*Pi*r;area=Pi*r*r;

printf(\该圆的周长是%.2f,面积是%.2f\\n\}

二、选择结构程序设计==========================================

area=s(s?a)(s?b)(s?c),s=

1从键盘任意输入一个年号,判断它是否是闰年。若是闰年,输出“Yes〞,否则输出“No〞。已知符合以下条件之一者是闰年:

?能被4整除,但不能被100整除。?能被400整除。#includemain(){intyear,flag;printf(\scanf(\

if((year%4==0/*假使year是闰年,则标志变量flag置1*/}else{flag=0;/*否则,标志变量flag置0*/}if(flag){

printf(\/*打印“是闰年〞*/}else{printf(\/*打印“不是闰年〞*/}}

2通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。

#includemain(){charch;scanf(\if((ch>=97floatfahr=0,celsius;upper=300;step=20;while(fahrmain(){intm;printf(\scanf(\/*输入一个整数*/if(m>0)/*是否为正数*/{if(m%2==0)/*是正数,且能被2整除,则是正偶数*/{printf(\}else/*不能被2整除,则是正奇数*/{printf(\}}elseif(m#includemain(){

intx;doubley;

printf(\scanf(\/*输入一个整数*/if(x>0){y=exp(-x);/*假使大于0,计算y=exp(-x)的值*/}

elseif(x==0){y=1;/*x=0,则y=1*/}else{y=-exp(x);/*x#include#defineLIMIT1e-1

main(){floata,b,c;intflag=1;printf(\scanf(\/*输入三角形的三条边*//*三角形的基本条件*/if((a+b)>c}if(fabs(a*a+b*b-c*c)2afternoon3nightPleaseenteryourchoice:

操作人员根据提醒进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示\,选择2时显示\,选择3时显示\,对于其他选择显示\,用switch语句编程实现。#includemain(){charc;printf(\printf(\printf(\printf(\printf(\/*建立相应的菜单*/c=getchar();/*输入选项*/switch(c)/*通过switch选择*/{case1:printf(\break;case2:printf(\break;case3:printf(\break;default:printf(\}}

8读入一个年份和月份,打印出该月有多少天(考虑闰年),用switch语句编程。#includemain(){intyear,month;printf(\scanf(\/*输入相应的年和月*/switch(month){

case1:case3:case5:case7:case8:case10:case12:printf(\break;case2:if((year%4==0case4:case6:case9:case11:printf(\break;default:printf(\}}

三、循环结构程序设计==========================================1编程计算1!+2!+3!+4!+…+10!的值。

#includemain(){longterm=1,sum=0;inti;for(i=1;imain(){longterm=0,sum=0;inta,i,n;printf(\scanf(\/*输入a,n的值*/for(i=1;imain(){doubleterm,result=1;/*累乘项初值应为1*/intn;for(n=2;n#includemain(){intn=1;floatterm=1.0,sign=1,sum=0;while(fabs(term)>=1e-4)/*判断末项大小*/{term=sign/n;/*求出累加项*/sum=sum+term;/*累加*/sign=-sign;/*改变项的符号*/n++;/*分母加1*/}printf(\}

x3x5x7x95利用泰勒级数sin(x)≈x??????,计算sin(x)的值。要求最终一项的绝对

3!5!7!9!值小于10-5,并统计出此时累加了多少项。#include#includemain(){intn=1,count=1;floatx;doublesum,term;/*由于位数多,所以定义为双精度*/printf(\scanf(\sum=x;term=x;/*赋初值*/do{term=-term*x*x/((n+1)*(n+2));sum=sum+term;/*累加*/n=n+2;count++;}while(fabs(term)>=1e-5);printf(\}

6打印所有的“水仙花数〞。所谓“水仙花数〞,是指一个三位数,其各位数字的立方和等

于该数本身。例如,153是“水仙花数〞,由于153=13+33+53。#includemain(){inti,j,k,n;printf(\for(n=100;n#includemain(){inti1,i2,i3,i4,k,n;printf(\scanf(\k=fabs(n);/*取绝对值*/i1=k/1000;/*分开出千位*/i2=(k-i1*1000)/100;/*分开出百位*/i3=(k-i1*1000-i2*100)/10;/*分开出十位*/i4=k%10;/*分开出个位*/printf(\}

8三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,

从中任取8个球,问共有多少种不同的颜色搭配?

五、二维数组==========================================1输入5×5阶的矩阵,编程实现:

(1)求两条对角线上的各元素之和。

(2)求两条对角线上行、列下标均为偶数的各元素之积。

#include#defineARR_SIZE10

main(){inta[ARR_SIZE][ARR_SIZE],i,j,n,sum=0;longproduct=1;printf(\scanf(\printf(\for(i=0;i

#defineARR_SIZE11

voidYHTriangle(inta[][ARR_SIZE],intn);voidPrintYHTriangle(inta[][ARR_SIZE],intn);

main(){inta[ARR_SIZE][ARR_SIZE],n;

printf(\n(n

#defineROW2#defineCOL3

/*函数功能:输入矩阵元素,存于数组a中函数参数:整型数组a,存放矩阵元素返回值:无*/

voidInputMatrix(inta[ROW][COL]){inti,j;for(i=0;i

#defineROW2#defineCOL3

/*函数功能:计算矩阵相乘之积,结果存于数组c中函数参数:整型数组a、b,分别存放两个待求乘积的矩阵元素整型数组c,存放矩阵相乘的结果返回值:无*/

MultiplyMatrix(inta[ROW][COL],intb[COL][ROW],intc[ROW][ROW]){inti,j,k;for(i=0;iinti,j;for(i=0;i#include

#defineARR_SIZE80

main(){charstr[ARR_SIZE];intlen,i,letter=0,digit=0,space=0,others=0;printf(\string:\gets(str);for(i=0;str[i]!='\\0';i++){if(str[i]>='a'/*统计英文字符*/elseif(str[i]>='0'/*统计数字字符*/elseif(str[i]=='')space++;/*统计空格*/elseothers++;/*统计其他字符的个数*/}printf(\%d\\n\printf(\%d\\n\printf(\%d\\n\printf(\%d\\n\}

2编写一个程序,实现将字符数组中的字符串逆序存放的功能。#include#include

#defineARR_SIZE80

voidInverse(charstr[],charptr[]);main(){

chara[ARR_SIZE],b[ARR_SIZE];

printf(\}

/*函数功能:实现将字符数组中的字符串逆序存放函数参数:字符数组a,存放源字符串

字符数组b,存放逆序字符串gets(a);Inverse(a,b);

printf(\

puts(b);

函数返回值:无*/

voidInverse(charstr[],charptr[]){

inti=0,j;j=strlen(str)-1;while(str[i]!='\\0'){

ptr[j]=str[i];i++;

j--;

}ptr[i]='\\0';}

3从键盘输入一行字符,统计其中有多少单词。假设单词之间以空格分开。#includemain(){

gets(str);if(str[0]!=''){}else{}

for(i=1;str[i]!='\\0';i++){

if(str[i]!=''

num=0;num=1;charstr[20];inti,num;

}

}

printf(\

4编写一个程序,其功能是删除字符串s中所出现的与变量c一致的字符。#include

voidSqueeze(chars[],charc);main()

{}

voidSqueeze(chars[],charc){

for(i=j=0;s[i]!='\\0';i++){

if(s[i]!=c){}

s[j]=s[i];j++;

inti,j;

printf(\gets(str);

printf(\c=getchar();Squeeze(str,c);puts(str);charstr[20],c;

}

}

s[j]='\\0';

5不用函数strcat(),编程实现字符串连接函数strcat()的功能,将字符串srcStr连接到字符

串dstStr的尾部。

#include#include

#defineARR_SIZE80

voidMyStrcat(chardstStr[],charsrcStr[]);main(){}

/*函数功能:将源字符串srcStr中的字符串连接到目的字符串dstStr之后

函数参数:字符数组srcStr,存放源字符串printf(\puts(s);MyStrcat(s,t);

printf(\gets(s);

printf(\gets(t);

chars[ARR_SIZE],t[ARR_SIZE];

字符数组dstStr,存放目的字符串

源字符串srcStr和目的字符串dstStr连接后的字符串也存于此数组中

函数返回值:无*/

voidMyStrcat(chardstStr[],charsrcStr[]){

unsignedinti,j;

i=strlen(dstStr);/*将下标移动到目的字符串末尾*/for(j=0;jmain(){}/*

函数功能:判断参数是否是素数

函数入口参数:number为整型数,要求为正整数

intn,ret;printf(\scanf(\ret=IsPrimeNumber(n);if(ret!=0){}else{}

printf(\printf(\

函数返回值:非0值表示是素数,否则不是素数*/

intIsPrimeNumber(intnumber){}

k2编程计算组合数p?Cm?inti;

if(number

unsignedlongFactorial(unsignedintnumber);main(){

do{

unsignedintm,k;doublep;

}/*

printf(\scanf(\

}while(m

intMinCommonMultiple(inta,intb);main(){

returnresult;

for(i=2;i

for(i=1;i

}

char*pEnd;/*指针变量pEnd指向字符串的最终一个字符*/

len=strlen(pStr);/*求出字符串长度*/

for(pStart=pStr,pEnd=pStr+len-1;pStarttemp=*pStart;*pStart=*pEnd;*pEnd=temp;

5编程判断输入的一串字符是否为“回文〞。所谓“回文〞,是指顺读和倒读都一样的字符串。如\,\都是回文。

#include#includemain(){

printf(\gets(str);len=st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论