C语言复习范围答案1.docx

上传人:b****5 文档编号:6744134 上传时间:2023-01-09 格式:DOCX 页数:18 大小:33.52KB
下载 相关 举报
C语言复习范围答案1.docx_第1页
第1页 / 共18页
C语言复习范围答案1.docx_第2页
第2页 / 共18页
C语言复习范围答案1.docx_第3页
第3页 / 共18页
C语言复习范围答案1.docx_第4页
第4页 / 共18页
C语言复习范围答案1.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言复习范围答案1.docx

《C语言复习范围答案1.docx》由会员分享,可在线阅读,更多相关《C语言复习范围答案1.docx(18页珍藏版)》请在冰豆网上搜索。

C语言复习范围答案1.docx

C语言复习范围答案1

              C语言复习范围

一、选择题(每小题1分,共30分)

二、程序填空题(每空1分,共10分)

三、程序运行结果题(每小题2分,共10分)

四、编程题(每小题5分,共20分)

1.判断100~200之间的所有素数并输出。

#include

#include

voidmain()

{intm,k,i,n=0;

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

{k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>=k+1){printf("%d″,m);n=n+1;}

if(n%10==0)printf(″\n″);

}

printf("\n");

}

2.将一个3×3矩阵转置并输出。

#include

voidmain()

{

inta[3][3],i,j,x;

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

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

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

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

for(j=0;j

{x=a[j][i];

a[j][i]=a[i][j];

a[i][j]=x;

}

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

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

printf("%d",a[i][j]);

printf("\n");

}

}

3.编写一个求两个数最大值的函数,在主函数输3个整数,调用该函数输出其中最大值。

#include

intmax(inta,intb)

{

return(a>b?

a:

b);

}

voidmain()

{

inta,b,c,z;

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

z=max(max(a,b),c);

printf("最大的数是%d\n",z);

}

4.编程程序,判断某一年是否是闰年。

#include"stdio.h"

voidmain()

{

intyear;

scanf("%d",&year);

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

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

printf("%d是闰年。

",year);

else

printf("%d不是闰年。

",year);

}

5.编程求

#include"stdio.h"

voidmain()

{

inti,s=0;

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

s=s+i;

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

s=s+i*i;

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

}

6.将一个二维数组行和列的元素互换,存到另一个二维数组中。

例如:

#include

voidmain()

{

inta[2][3]={1,2,3,4,5,6},i,j,b[3][2];

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

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

b[j][i]=a[i][j];

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

{

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

printf("%d",b[i][j]);

printf("\n");

}

}

7.把100~200之间的不能被3整除的数输出。

#include

voidmain()

{

inti;

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

if(i%3!

=0)

printf("%d",i);

}

8.求一个3×3的整数矩阵主对角线元素之和。

#include

voidmain()

{

inta[3][3],i,j,s=0;

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

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

scanf(“%d”,&a[i][j])

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

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

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

}

9.编写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。

#include

intprime(intn)

{

intflag=1,i;

for(i=2;i<=n/2&&flag==1;i++)

if(n%i==0)flag=0;

return(flag);

}

voidmain()

{

intn;

scanf("%d",&n);

if(prime(n))

printf("%disaprime.\n",n);

else

printf("%disnotaprime\n",n);

}

10.编程实现顺序输出26个大写英文字母。

(A的ASCII为65)

#include

voidmain()

{

charch;

for(ch=65;ch<=;ch++)

printf("%c",ch);

}

11.求1~100之间的奇数和并输出。

#include

voidmain()

{

inti,s=0;

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

if(i%2!

=0)

s=s+i;

printf("%d",s);

}

12.编程求出3×3矩阵副对角线元素之和。

#include

voidmain()

{

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

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

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

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

}

13.编写一个求2个数中最大值Max的函数,然后用这个函数求4个数的最大值。

#include

intmax(intx,inty)

{

return((x>y)?

x:

y);

}

voidmain()

{

inta,b,c,d,m,n;

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

m=max(a,b);

n=max(c,d);

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

}

14.编程求n!

#include

voidmain()

{

inti=2,fact=1,n;

scanf("%d",&n);

while(i<=n)

{fact=fact*i;

i++;

}

printf("%d",fact);

}

15.编写程序输出100-200间的所有素数。

#include

#include

voidmain()

{intm,k,i,n=0;

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

{k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>=k+1){printf("%d″,m);n=n+1;}

if(n%10==0)printf(″\n″);

}

printf("\n");

}

16.用数组实现菲波那契数列(即第1项和第二项均为1,从第三项开始每项等于前两项之和)。

#include

voidmain()

{

inti;

intf[10]={1,1};

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

f[i]=f[i-2]+f[i-1];

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

{

printf(″%12d″,f[i])

if((i+1)%5==0)printf(″\n″);

}

}

17.输入一个华氏温度,要求输出摄氏温度。

公式为

输出要有文字说明,取2位小数。

#include

voidmain()

{

floatc,f;

printf("inputf:

\n");

scanf("%f",&f);

c=(5.0/9.0)*(f-32); 

printf("c=%5.2f\n",c);

}

18.编程程序,输入一个整数,打印出它是奇数还是偶数。

#include

voidmain()

{

inti;

scanf("%d",&i);

if(i%2!

=0)

printf("%d是奇数。

",i);

else

printf("%d是偶数。

",i);

}

19.试求出1000以内的“完全数”。

(提示:

如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。

如:

6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。

#include

voidmain()

{inti,a,m;

for(i=1;i<1000;i++)   /*判断i是否完数*/

{

for(m=0,a=1;a<=i/2;a++)

if(i%a==0)m=m+a;  /*如a是i的因子,则累加到m*/

if(m==i)

printf("%4d",i);/*如因子和m与自身相等,则是完数,输出*/

}

}

20.写一函数,计算x的n次方。

#include

intf(inta,intn)

{

inti,f=1;

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

f=f*a;

return(f);

}

voidmain()

{

intx,i;

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

printf("%d",f(x,i));

}

21.有一分数序列 

...求出这个数列的前20项之和。

#include

voidmain()

{

inti,t,n=20;

floata=2,b=1,s=0;

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

{

s=s+a/b;

t=a;

a=a+b;   /*将前一项分子与分母之和作为下一项的分子*/

b=t;   /*将前一项的分子作为下一项的分母*/

}

printf("sum=%9.6f\n",s);

}

22.求一个4×3数组所有元素中最大的值并输出。

#include

voidmain()

{

inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},i,j,max;

max=a[0][0];

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

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

if(max

max=a[i][j];

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

}

23.编写一个求阶乘的函数,在主函数输入一个整数,调用该函数输出该数的阶乘。

#include

intfac(intn)

{

inti,f=1;

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

f=f*i;

return(f);

}

voidmain()

{

inti,a;

scanf("%d",&a);

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

}

24.编写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

#include

#include

voidmain()

{

voidinverse(charstr[]);

charstr[100];

printf("Inputstring:

");

scanf("%s",str);/*输入一字符串str*/

inverse(str);/*对数组str中的元素逆序存放*/

printf("Inversestring:

%s\n",str);/*输出转换后的字符串*/

}

voidinverse(charstr[])/*函数定义*/

{

chart;

inti,j;

for(i=0,j=strlen(str);i

{t=str[i];

str[i]=str[j-1];

str[j-1]=t;

}

}

25.编写程序,要求输入正整数a和b,若

大于100,则输出

百位以上的数字,否则输出两数之和。

#include

voidmain()

{

inta,b,x,y;

printf("inputa、b:

");

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

x=a*a+b*b;

if(x>100)     /*若a2+b2>100*/

{

y=x/100;    /*y为a2+b2百位以上的数字*/

printf("%d",y);

}

elseprintf("%d",a+b);

}

26.编程求100~999之间的所有水仙花数,即各位数字的立方和恰好等于该数本身的数。

#include

voidmain()

{inti,a,b,c,cnt;

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

{a=i/100;

b=i/10-i*10;

c=i%10;

if(i==a*a*a+b*b*b+c*c*c)

printf(“%d,”,i);

}

27.输出下三角的“九九乘法表”。

#include

voidmain()

{

inti,j;

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

{

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

printf("%d*%d=%2d",j,i,i*j);

printf("\n");}

}

28.编写一个求阶乘的函数,在主函数中输入一个整数n调用该函数求出n!

#include

intf(intm)

{

intf=1,i;

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

f=f*i;

return(f);

}

voidmain()

{

intn;

scanf("%d",&n);

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

}

29.输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母,如果不是,不转换。

然后输出最后得到的字符。

#include

voidmain()

{

charch;

scanf("%c",&ch);

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

ch=ch+32;

printf("%c",ch);

}

30.把100~200之间的不能被3整除的数输出。

#include

voidmain()

{

inti;

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

if(i%3!

=0)

printf("%d",i);

}

31.用起泡法对10个数进行排序(升序)。

#include

#defineNUM10

voidmain()

{

inti,j,t,a[NUM];

printf("\ninput10numbers:

\n");

for(i=0;i

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

for(j=1;j

for(i=0;i

if(a[i]>a[i+1])

{t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

printf("Thesortednumbers:

\n");

for(i=0;i

printf("%d",a[i]);

printf("\n");

}

32.编写一个求两个自然数最大公约数的函数,在主函数中输入两个自然数m,n,调用该函数求最大公约数。

#include

voidmain()

{inthcf(intu,intv);

intu,v;

scanf("%d%d",&u,&v);

printf("gongyueshushi:

%d\n",hcf(u,v););

}

inthcf(intu,intv)

{intt,r;

if(u

{t=u;u=v;v=t;}

while((r=u%v)!

=0)

{u=v;v=r;}

return(v);

}

33.编程求

#include

voidmain()

{

inti;

floats=0.0f;

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

s=s+1.0/i;

printf("%f",s);

}

34.编程将数组a[6]={3,6,9,5,4,8}逆序输出。

v#include

vvoidmain()

v{

vinti,a[6]={3,6,9,5,4,8};

vfor(i=5;i>=0;i--)

vprintf("%d",a[i]);

vprintf("\n");

v}

35.编程求5!

▪#include

▪voidmain()

▪{

▪inti=2,fact=1;while(i<=5)

▪{

▪fact=fact*i;

▪i++;

▪}

▪printf("%d\n",fact);

▪}

36.编写一个求2个数中最小值Min的函数,然后用这个函数求4个数的最小值。

#include

min(intx,inty)

{

return(x>y?

y:

x);

}

voidmain()

{

inta,b,c,d,i,j;

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

i=min(a,b);

j=min(c,d);

printf("%d",min(i,j));

}

37.有3个整数a、b、c,由键盘输入,输出其中最大的数。

#include

voidmain()

{

inta,b,c,max;

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

max=a;

if(max

max=b;

if(max

max=c;

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

}

38.写一函数,计算

的值,在主函数中输入一x的值调用该函数求出相应的函数值并在主函数中输出。

#include

floatf(floatx)

{

return(x*x+5*x+6);

}

voidmain()

{

floatx;

scanf("%f",&x);

printf("%f\n",f(x));

}

39.以下三角形式输出“九九乘法表”。

#include

voidmain()

{

inti,j;

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

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

printf("%d*%d=%2d",j,i,i*j);

printf("\n");

}

}

40.求1~100之间的能被3整除的数的和并输出。

#include

voidmain()

{

inti,s=0;

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

if(i%3==0)

s=s+i;

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

}

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

当前位置:首页 > 医药卫生 > 基础医学

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

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