C语言试题集.docx

上传人:b****7 文档编号:25555961 上传时间:2023-06-09 格式:DOCX 页数:52 大小:26.52KB
下载 相关 举报
C语言试题集.docx_第1页
第1页 / 共52页
C语言试题集.docx_第2页
第2页 / 共52页
C语言试题集.docx_第3页
第3页 / 共52页
C语言试题集.docx_第4页
第4页 / 共52页
C语言试题集.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

C语言试题集.docx

《C语言试题集.docx》由会员分享,可在线阅读,更多相关《C语言试题集.docx(52页珍藏版)》请在冰豆网上搜索。

C语言试题集.docx

C语言试题集

1输入x求y

2abc从大到小排序

3输出四个数中的最大最小值

4输出成绩等级

5输入x输出xy

6输出300-400间的全部素数

7求Fibonacci数列的前二十个数

8求和n!

+3

9求分数数列前20项的和

10水仙花数

11小于六位,逆序输出

12求5+...+55555的和

 

1.有一个函数,写一段程序,输入x的值,输出y的值。

#include

voidmain()

{intx,y;

printf("输入x:

");

scanf("%d",&x);

if(x<0||x>100)

{y=-1;

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

}

elseif(x=0)

{y=0;

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

}

else

{y=1;

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

}

}

 

2.输入3个数a,b,c,按大由到小的顺序输出。

#include

voidmain()

{

floata,b,c,t;

printf("pleaseentera,b,c:

");

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

if(a

{t=a;a=b;b=t;}

if(a

{t=a;a=c;c=t;}

if(b

{t=b;b=c;c=t;}

printf("%7.2f%7.2f%7.2f\n",a,b,c);

}

 

3.输入4个数,输出4个数中的最大值、最小值。

#include

voidmain()

{

floatt,a,b,c,d,max,min;

printf("请输入四个数:

");

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

if(a

{t=a;a=b;b=t;}

if(a

{t=a;a=c;c=t;}

if(a

{t=a;a=d;d=t;}

if(b

{t=b;b=c;c=t;}

if(b

{t=b;b=d;d=t;}

if(c

{t=c;c=d;d=t;}

printf("最大值和最小值分别为:

\n");

printf("max=%5.2fmin=%5.2f",a,d);

}

 

4.输入成绩,要求输出成绩等级A、B、C、D、E或error。

90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,0~60分为‘E’。

若输入成绩低于0分和高于100分则输出error。

#include

voidmain()

{floatscore;

chargrade;

printf("请输入学生成绩:

");

scanf("%f",&score);

if(score>100||score<0)

printf("error\n");

else

{

switch((int)(score/10))

{

case10:

case9:

grade='A';break;

case8:

grade='B';break;

case7:

grade='C';break;

case6:

grade='D';break;

case5:

case4:

case3:

case2:

case1:

case0:

grade='E';

}

printf("成绩是%5.1f,成绩等级是%c.\n",score,grade);

}

}

 

5.有一个函数:

写一段程序,输入x的值,输出x,y的值。

 

#include

voidmain()

{intx,y;

printf("输入x:

");

scanf("%d",&x);

if(x<1)

{y=x;

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

}

elseif(x<10||x>10)

{y=2*x-1;

printf("x=%d,y=2*x-1=%d\n",x,y);

}

else

{y=3*x-11;

printf("x=%d,y=3*x-11=%d\n",x,y);

}

}

 

6.输出300~400之间的全部素数,并按每行5个数输出。

 

#include

#include

voidmain()

{intprime(int);

inti,k,m;

printf("300-400之间的素数为:

\n");

for(i=300;i<=400;i++)

{m=prime(i);

if(m==1)

{k++;

printf("%5d",i);

if(k%5==0)

printf("\n");

}

}

}

intprime(inti)

{intj,flag=1;

for(j=2;j<=sqrt(i);j++)

if(i%j==0)

flag=0;

return(flag);

}

 

7.求Fibonacci数列的前20个数,并将其分5行输出

#include

#include

voidmain()

{intm,k,i,n=0;

for(m=300;m<=400;m=m+1)

{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%5==0)printf("\n");

}

printf("\n");

}

 

8.求和1-10(n!

+3)。

#include

voidmain()

{doubles=0,t=1,sum=0;

intn;

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

{

t=t*n;

s=s+t;

sum=s+3;

}

printf("1!

+3+2!

+3...+10!

+3=%f\n",s);

}

 

9.有一分数序列,求其前20项的和。

#include

voidmain()

{

inti,n=20;

doublea=2,b=1,s=0,t;

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

{

s=s+b/a;

t=a,

a=a+b,

b=t;

}

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

}

 

10.输出小于500的所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

例如,153是一个水仙花数,因为。

#include

voidmain()

{

inti,j,k,n;

printf("水仙花数是:

");

for(n=100;n<500;n++)

{

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%d",n);

}

printf("\n");

}

 

11.给一个不多于6位的正整数,要求:

①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为158,应输出851

#include

voidmain()

{

intn,m;

printf("输入一个不多于六位的数字:

");

scanf("%d",&n);

if(n<1000000&&n>99999)

printf("它是六位数\n");

if(n<100000&&n>9999)

printf("它是五位数\n");

if(n<10000&&n>999)

printf("它是四位数\n");

if(n<1000&&n>99)

printf("它是三位数\n");

if(n<100&&n>9)

printf("它是二位数\n");

if(n<10&&n>=0)

printf("它是一位数\n");

printf("各位数字按逆序输出为:

\n");

while(n!

=0)

{m=n%10;

n=n/10;

printf("%3d",m);

}

}

 

12.求5+55+555+5555+55555的值。

#include

voidmain()

{

inta=5,n=5,i=1,sn=0,tn=0;

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

{

tn=tn+a;

sn=sn+tn;

a=a*10;

}

printf("5+55+..+55555=%d\n",sn);

}

13对10个数用起泡法排序

14二维数组a,b行列互换

153列4行的数组求最大元素及其行列数

16求一行字符的单词数

17求3个字符串的最大者

18输入两个数,求最大者

19求两整数的最大公约数和最小公倍数

20求4个数最大者,嵌套调用

21用递归法求5!

22求数组一5个元素和数组二10个元素各元素的平均值

23数组逆序重新存放

24递归法将整数n转换成字符串

 

13.输入10个整型整数,用起泡法对这10个数排序,并该由小到大顺序在屏幕上输出。

 

#include"stdio.h"

voidmain()

{

inta[10];

inti,j,t;

printf("input10number:

\n");

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

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

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

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

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

{t=a[i];a[i]=a[j+1];a[j+1]=t;};

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

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

printf("\n");

}

 

14.将一个二维数组a的行和列的元素互换(即行列互换),存到另一个二维数组b中。

 

#include"stdio.h"

voidmain()

{

inta[4][5],b[5][4];

inti,j;

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

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

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

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

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

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

printf("该数组的新序列为:

\n");

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

{

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

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

printf("\n");

}

}

 

15.在一个3*4的二维数组a中,要求编程求出其中值最大的那个元素的值,并输出其所在的行号和列号。

 

#include"stdio.h"

voidmain()

{

inta[3][4],i,j,max;

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

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

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

max=a[0][0];

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

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

if(max

max=a[i][j];

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

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

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

if(a[i][j]==max)

printf("行=%2d,列=%2d\n",i+1,j+1);

}

16.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

 

#include

voidmain()

{

inti,j=0;

charstr[80];

gets(str);

for(i=0;str[i]!

='\0';i++)

if(str[i+1]==''||str[i+1]=='\0')

j++;

printf("单词个数为%d\n",j);

}

 

17.有3个字符串,要求找出其中最大者。

 

#include

#include

voidmain()

{

charstr1[80],str2[80],str3[80],longest[80];

gets(str1);

printf("\n");

gets(str2);

printf("\n");

gets(str3);

strcpy(longest,str1);

if(strcmp(str1,str2)<0)

strcpy(longest,str1);

if(strcmp(str2,str3)<0)

strcpy(longest,str1);

printf("thelongestis%s",longest);

}

18.输入两个整数,要求用一个函数求出其中的大者,并在主函数中输出此值。

 

#include

voidmain()

{

intf(inta,intb);

intm,n,max;

printf("请输入两个数:

");

scanf("%d,%d",&m,&n);

max=f(m,n);

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

}

intf(inta,intb)

{

intc;

c=a>b?

a:

b;

return(c);

}

19.输入两个整数,要求用一个函数求出其最大公约数和最小公倍数,并在主函数中调用该子函数。

 

#include

voidmain()

{inthcf(int,int);

intlcd(int,int,int);

intu,v,h,l;

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

h=hcf(u,v);

printf("最大公约数=%d\n",h);

l=lcd(u,v,h);

printf("最小公倍数=%d\n",l);

}

inthcf(intu,intv)

{intt,r;

if(v>u)

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

while((r=u%v)!

=0)

{u=v;

v=r;}

return(v);

}

intlcd(intu,intv,inth)

{

return(u*v/h);

}

 

20.输入4个整数,找出其中最大的数。

用函数的嵌套调用来处理。

#include

voidmain()

{intmax_4(inta,intb,intc,intd);

inta,b,c,d,max;

printf("Pleaseenter4intergernumbers:

");

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

max=max_4(a,b,c,d);

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

}

intmax_4(inta,intb,intc,intd)

{intmax_2(inta,intb);

intm;

m=max_2(a,b);

m=max_2(m,c);

m=max_2(m,d);

return(m);

}

intmax_2(inta,intb)

{return(a>b?

a:

b);

}

 

21.用递归方法求5!

#include

voidmain()

{longfac(intn);

longy;

y=fac(5);

printf("5!

=%ld\n",y);

}

longfac(intn)

{

longf;

if(n<0)

printf("n<0,dataerror!

");

elseif(n==0,n==1)

f=1;

elsef=fac(n-1)*n;

return(f);

}

 

22、编写一个函数,用来分别求数组score_1(有5个元素)和数组score_2(有10个元素)各元素的平均值。

 

#include

voidmain()

{

floatf(floatscore[],intn);

floatscore_1[5],score_2[10],aver_1,aver_2;

inti;

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

scanf("%f",&score_1[i]);

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

scanf("%f",&score_2[i]);

aver_1=f(score_1,5);

aver_2=f(score_2,10);

printf("aver_1=%f,aver_2=%f\n",aver_1,aver_2);

}

floatf(floatscore[],intn)

{

inti;

floataver,sum=0;

for(i=0;i

sum=sum+score[i];

aver=sum/n;

return(aver);

}

 

!

!

!

!

!

!

!

!

23将一个数组中的值按逆序重新存放。

例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。

 

#include

voidmain()

{

inta[6],b[6],i;

printf("请输入一个数组:

");

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

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

printf("逆序排列后的数组是:

");

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

{

b[i]=a[5-i];

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

}

}

 

24用递归法将一个整数n转换成字符串。

例如,输入483,应输出字符串“483”,n的位数不确定,可以是任意位数的整数。

#include

voidmain()

{voidconvert(intn);

intnumber;

printf("inputaninteger:

");

scanf("%d",&number);

printf("output:

");

if(number<0)

{putchar('-');putchar('');

number=-number;

}

convert(number);

printf("\n");

}

voidconvert(intn)

{inti;

if((i=n/10)!

=0)

convert(i);

putchar(n%10+'0');

putchar(32);

}

25指针输出3个整数从小到大排列

26指针输出3个整数从大到小排列

27指针实现数组b10个元素逆序存放

28冒泡法将10整数从大到小排序

29选择法将10整数从小到大排序

30定义结构体变量计算当天是本年的第几天

31设计候选人得票统计程序

32输出学生信息

33输出教师信息

34输出职员信息

35建立动态数组输入5个成绩并检查输出不合格的成绩

36求一个字符串的长度

 

25.用指针实现输入3个整数并按从小到大的顺序输出。

 

#include

voidmain()

{

voidexchange(int*p1,int*p2,int*p3);

intn1,n2,n3;

int*p1,*p2,*p3;

printf("inputthreeintegern1,n2,n3:

");

scanf("%d,%d,%d",&n1,&n2,&n3);

p1=&n1;p2=&n2;p3=&n3;

exchange(p1,p2,p3);

printf("Now,theorderis:

%d,%d,%d",n1,n2,n3);

}

voidexchange(int*p1,int*p2,int*p3)

{

voidswap(int*p1,int*p2);

if(*p1>*p2)

swap(p1,p2);

if(*p1>*p3)

swap(p1,p3);

if(*p2>*p3)

swap(p2,p3);

}

voidswap(int*p1,int*p2)

{

intp;

p=*p1;*p1=*p2;*p2=p;

}

 

26、用指针实现输入3个整数并按从大到小的顺序输出。

 

#include

voidmain()

{

voidpaixu(int*p1,int*p2);

inta,b,c,*p1,*p2,*p3;

printf("pleaseentera,b,c:

");

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

p1=&a;p2=&b;p3=&c;

if(a

paixu(p1,p2);

if(a

paixu(p1,p3);

if(b

paixu(p2,p3);

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

}

voidpaixu(int*p1,int*p2)

{

intt;

t=*p1;*p1=*p2;*p2=t;

}

 

!

!

!

!

!

!

!

!

!

27、用指针实现将数组b[10]中的元素按逆序存放。

#include

voidmain()

{voidsort(char*p,intm);

inti;

char*p,b[10];

printf("pleaseinputthesenumbers:

\n");

for(i=0;i

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

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

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

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