最新c语言复习题+答案.docx

上传人:b****1 文档编号:2070694 上传时间:2022-10-26 格式:DOCX 页数:15 大小:20.37KB
下载 相关 举报
最新c语言复习题+答案.docx_第1页
第1页 / 共15页
最新c语言复习题+答案.docx_第2页
第2页 / 共15页
最新c语言复习题+答案.docx_第3页
第3页 / 共15页
最新c语言复习题+答案.docx_第4页
第4页 / 共15页
最新c语言复习题+答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

最新c语言复习题+答案.docx

《最新c语言复习题+答案.docx》由会员分享,可在线阅读,更多相关《最新c语言复习题+答案.docx(15页珍藏版)》请在冰豆网上搜索。

最新c语言复习题+答案.docx

最新c语言复习题+答案

c语言复习题-2010

1~5ABCDB6~10BADAD11~15DABAB16~20ADDDC

1.编程计算1!

+2!

+3!

+……+n!

的值,其中n的值由用户输入。

#include

main()

{

longterm=1,sum=0;

inti,n;

scanf(“%d”,&n);

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

{

term=term*i;

sum=sum+term;

}

printf("1!

+2!

+...n!

=%ld\n",sum);

}

2.从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格学生的人数。

要求按如下函数原型进行编程,分别计算最高分和统计不及格学生的人数:

intFindMax(intscore[],intn);

intCountFail(intscore[],intn);

#include

intFindMax(intscore[],intn);

intCountFail(intscore[],intn);

main()

{

inti,score[20],max,count;

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

{

scanf("%d",&score[i]);

}

max=FindMax(score,20);

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

count=CountFail(score,20);

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

}

intFindMax(intscore[],intn)

{

intmax,i;

max=score[0];

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

{

if(score[i]>max)max=score[i];

}

returnmax;

}

intCountFail(intscore[],intn)

{

intcount,i;

count=0;

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

{

if(score[i]<60)count++;

}

returncount;

}

3.一个班有6位同学,每位同学包括学号、姓名、数学、物理、计算机成绩和总分,要求输入学号、姓名、数学、物理、计算机成绩,计算出每位同学的总分,并按总分降序输出。

要求每位同学的信息定义成一个结构体。

#include

structstudent

{

longnum;

charname[10];

intmt;

intph;

intcm;

intsum;

}stu[6],temp;

voidmain()

{

inti,j;

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

{scanf("%ld%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].mt,&stu[i].ph,&stu[i].cm);

stu[i].sum=0;

stu[i].sum=stu[i].mt+stu[i].ph+stu[i].cm;}

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

for(j=i+1;j<6;j++)

{

if(stu[j].sum

{

temp=stu[i];

stu[i]=stu[j];

stu[j]=temp;

}

}

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

{

printf("%ld\t%s%5d%5d%5d%5d",stu[i].num,stu[i].name,stu[i].mt,stu[i].ph,stu[i].cm,stu[i].sum);

printf("\n");

}

}

4.判断101-200之间有多少个素数,并输出所有素数。

#include

#include

voidmain()

{

intm,i,h=0,leap=1;

printf("\n");

for(m=101;m<=200;m++)

{

for(i=2;i<=sqrt(m+1);i++)

{

if(m%i==0)

{leap=0;break;}

}

if(leap){printf("%-4d",m);h++;}

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

leap=1;

}

printf("\nThetotalis%d",h);

}

5.编写程序,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

#include

voidmain()

{charc;

intletters=0,space=0,digit=0,others=0;

printf("pleaseinputsomecharacters\n");

while((c=getchar())!

='\n')

{

if(c>='a'&&c<='z'||c>='A'&&c<='Z')

letters++;

elseif(c=='')

space++;

elseif(c>='0'&&c<='9')

digit++;

else

others++;

}

printf("allinall:

char=%dspace=%ddigit=%dothers=%d\n",letters,

space,digit,others);

}6.编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串,请用指针完成。

#include

voidmain()

{staticcharx[]="computer";

char*p;

for(p=x;p

putchar(*p);

printf("\n");

}

7.编一程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。

要求在主函数中输入字符串及m的值并输出复制结果,在被调函数中完成复制。

#include

#include

voidcopystr(char*p1,char*p2,intm)

{intn=0;

while(n

{p2++,n++;}

while(*p2!

='\0')

{*p1=*p2;p1++;p2++;}

*p1='\0';

}

voidmain()

{intm;

charstr1[80],str2[80];

printf("Inputastring:

\n");

gets(str2);

printf("Inputm:

\n");

scanf("%d",&m);

if(strlen(str2)

printf("Errinput!

\n");

else{copystr(str1,str2,m);

printf("Resultis:

%s\n",str1);

}

}

8.一个求从100米高度自由落下,每次落地后又反弹回原来高度的一半,再落下,求它在第10次落地时共经过多少米?

第10次反弹多高?

编写程序求解该问题。

 #include

voidmain()

{

floatsn=100.0,hn=sn/2;

intn;

for(n=2;n<=10;n++)

{

sn=sn+2*hn;/*第n次落地时共经过的米数*/

hn=hn/2;/*第n次反跳高度*/

}

printf("thetotalofroadis%f\n",sn);

printf("thetenthis%fmeter\n",hn);

}

9.编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。

#include

main()

{intyear=0,number=0;

for(year=2000;year<3000;year++)

{if((year%4==0&&year%100!

=0)||year%400==0)

{printf("%6d",year);

number++;

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

}

}

printf("\ntotalnumberofleapyearis%d",number);

}

10试编一程序完成以下功能:

定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每5个数求出一个平均值,放在另一数组中并输出。

#include

main()

{inta[30],b[6],sum=0,k,j=0;

for(k=0;k<30;k++)

a[k]=(k+1)*2;

for(k=0;k<30;k++)

if(k%5==0){b[j]=sum/5;j++;sum=0;}

elsesum=sum+a[k];

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

printf(“%4d”,b[j]);

}

11.编一程序,从键盘输入10个整数并保存到数组,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置。

main()

{inti,array[10];

intmin,k=0;

printf(“\nPleaseinputarray10elements\n”);

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

scanf(“%d”,&array[i]);

printf(“Beforeexchange:

\n”);

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

printf(“%5d”,array[i]);

min=array[0];

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

if(min>array[i])

{min=array[i];k=i;}

array[k]=array[0];

array[0]=min;

printf(“\nAfterexchange:

\n”);

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

printf(“%5d”,array[i]);

printf(“\nk=%d\nmin=%d\n”,k,min);

}

12.试编程完成如下功能:

输入一个不多于4位的整数,求出它是几位数,并逆序输出各位数字。

#include

main()

{

intx,n,t;

scanf("%d",&x);

n=0;

while(x>0)

{

t=x%10,

printf("%d",t);

x=x/10;

n++;

}

printf("\n");

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

}

13.请编写一个函数fun(),它的功能是:

比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。

若两个字符串长度相等,则

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

当前位置:首页 > 自然科学 > 数学

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

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