c语言简单题型复习资料.docx
《c语言简单题型复习资料.docx》由会员分享,可在线阅读,更多相关《c语言简单题型复习资料.docx(34页珍藏版)》请在冰豆网上搜索。
c语言简单题型复习资料
//*************************************************************
考试说明:
10个单选题+一个简单题型+一个复杂题型===《本科》
***************************************************
10个单选题+二个简单题型================《专科》
以下题型全为简单题型,复杂题型主要考数组的应用(字符串)和指针
//*************************************************************
1、编写一计算阶乘的函数fac,在主函数中从键盘输入一个正整数,
调用阶乘函数fac计算阶乘并输出计算结果。
#include
longfac(intn)
{longf;
if(n==0)
f=1;
else
f=n*fac(n-1);
returnf;
}
main()
{longy;
intn;
printf("pleaceintuponenumber:
");
scanf("%d",&n);
y=fac(n);
printf("%d!
=%ld",n,y);
}
2、编写一个求x的y次幂的函数pw,在main函数中从键盘输入a、b的值,
然后调用pw函数求a的b次幂,并输出结果。
#include
longpw(intx,inty)
{
longs=1;
inti;
for(i=1;i<=y;i++)
s=s*x;
returns;
}
main()
{
longsum;
inta,b;
printf("\nEntera,b:
");
scanf("%d%d",&a,&b);
sum=pw(a,b);
printf("Thesumis%ld",sum);
}_
3、写一函数max,计算三个数中最大数。
在主函数中输入三个数,
调用该函数求出其中最大数并输出。
(要求:
三个数为实数)
#include
intmax(inta,intb,intc)
{
intmax;
if(a>b)
max=a;
else
max=b;
if(maxmax=c;
returnmax;
}
main()
{
intx,y,z;
intm;
printf("\nEnterx,y,z:
");
scanf("%d%d%d",&x,&y,&z);
m=max(x,y,z);
printf("themaxis%d.",m);
}_
4、写一个函数计算两个正整数的最大公约数,在主函数中用scanf输入m,
n两个正整数,调用函数后,打印函数返回值(即这两个正整数的最大公约数)。
#include
intgcd(intm,intn)
{
if(m%n==0)
returnn;
else
returngcd(n,m%n);
}
main()
{
inta,b,c,temp;
scanf("%d%d",&a,&b);
if(a
{
temp=a;
b=temp;
a=b;
}
c=gcd(a,b);
printf("%d",c);
}
5、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数中
调用该函数,输出200以内所有的素数。
(待定)
#include
voidf(intn)
{(原题:
输出1-1000以内所有的素数,并按每行5个输出。
)
inti;
for(i=2;iif(n%i==0)
break;
if(i==n)
printf("%d\t",n);
}
main()
{
intj;
for(j=2;j<200;j++)
f(j);
}_
请编一个自定义函数,功能:
将给定的字符串中的所有字母改为小写字母。
字符串在主函数中从键盘任意输入(容许包含空格)
7、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数
中输入一个整数,调用该函数,判断该数是不是素数,若是则输出“yes”,
否则输出“no”
#include
voidf(intn)
{
inti;
for(i=2;iif(n%i==0)
break;
if(i==n)
printf("yes");
else
printf("no");
}
main()
{
intm;
printf("\nEnterthem:
");
scanf("%d",&m);
f(m);
}_
8、将1--1000中所有21的倍数存到一个一维数组中,再按每行5个数据输出到
屏幕上。
#include
main()
{inti,j=0,a[50];
for(i=1;i<=1000;i++)
{if(i%21==0)
{a[j]=i;
printf("%5d",a[j]);
if(j%5==4)
printf("\n");
j++;
}
}
}
或:
#include
main()
{
inti,j=0,m=0;
inta[100];
for(i=1;i<=1000;i++)
if(i%21==0)
{
a[j]=i;
j++;
}
for(i=0;i{
printf("%d\t",a[i]);
m++;
if(m%5==0)
printf("\n");
}
}_
8、在屏幕上打印以下图案:
(要求打印N行,N用符号常量定义为7)
*
**
***
****
*****
******
*******
#include
#defineN7
main()
{
inti,j,m;
for(i=1;i<=N;i++)
{
for(j=1;j<=N-i;j++)
printf("");
for(m=1;m<=i;m++)
printf("*");
printf("\n");
}
}
9、输出所有在正整数200和300之间能被6整除、但不能被4整除的数,并统计
这样的数有多少个。
#include
main()
{inti,j=0;
for(i=200;i<=300;i++)
{if(i%6==0&&i%4!
=0)
{j++;
printf("%d\n",i);
}
}
printf("%d\n",j);
}
10、求S=1/1+1/2+1/3+……+1/100(精确到小数点后三位)。
#include
main()
{
inti;
floatsum=0;
for(i=1;i<=100;i++)
{sum=sum+1.0/i;}
printf("1/1+1/2+...+1/100=%7.3f\n",sum);
}
(不要)编程计算1到20的平方和,并输出结果。
(要求用for循环)
#include
main()
{
inti;
longs=0;
for(i=1;i<=20;i++)
s=s+i*i;
printf("%ld",s);
}
(不要)编写一个程序从键盘任意个整数,求均值及低于均值的个数,
输出到屏幕。
#include
main()
{
intn;
inta[1000],i,j=0;
longs=0;
floatave;
printf("\nEnterthenums:
");
scanf("%d",&n);
printf("\nEnterthexs:
");
for(i=0;i{
scanf("%d",&a[i]);
s=s+a[i];
}
ave=s*1.0/n;
printf("Theaveis%f.",ave);
for(i=0;iif(a[i]j++;
printf("%d",j);
}
(不要)编写一个程序从键盘输入10个学生的成绩到数组score中,将最高分、
最低分输出,要求将该程序以文件名test1.c保存到K盘根目录。
main()
{
intscore[10];
inti;
intmax,min;
for(i=0;i<10;i++)
scanf("%d",&score[i]);
max=min=score[0];
for(i=0;i<10;i++)
{
if(maxif(min>score[i])min=score[i];
}
printf("Themaxis%d.Theminis%d.",max,min);
}
()在main()函数中输入一个人的年龄和性别,女士55岁退休,男士60岁退休。
编写一个函数根据年龄和性别判断一个人士工作还是退休,若工作,则输出“Working!
”,退休则输出“Retired!
”
#include
main()
{
ints,a;
scanf("%d%d",&s,&a);
if(s=0)
if(a<=55)printf("sheiswork!
");
elseprintf("shehasRetired!
");
else
if(a>60)printf("heiswork!
");
elseprintf("hehasRetired!
");
}
11、编写一个程序从键盘输入10个学生的成绩到数组score中,将最高分、
最低分输出。
main()
{intscore[10],i,max,min;
for(i=0;i<10;i++)
scanf("%d",&score[i]);
max=score[0];
min=score[0];
for(i=0;i<10;i++)
{if(maxif(min>score[i])min=score[i];}
printf("%d%d",max,min);}
12、编写一个函数求一个实数的绝对值。
然后在main函数中用scanf输入
任意个实数,调用该函数求它的绝对值并输出。
#include
floatfab(floatx)
{
if(x>0)
returnx;
else
return-x;
}
main()
{
floatn;
floats;
printf("\nEntern:
");
scanf("%f",&n);
s=fab(n);
printf("Thefabis%f\t",s);
}_}
13、编写一个求1——n内的偶数和的函数,在main()函数中输入n,然后
调用该函数求1——n的偶数和并输出。
#include
longsum(intn)
{
inti;
longsum=0;
for(i=1;i<=n;i++)
{
if(i%2==0)
sum=sum+i;
}
returnsum;
}
main()
{
intn;
longs;
printf("\nEntern:
");
scanf("%d",&n);
s=sum(n);
printf("Thesis%ld",s);
}
14、编写一个求1——n内的奇数和的函数,在main()函数中输入n,然后
调用该函数求1——n的奇数和并输出。
#include
longsum(intn)
{
longs=0;
inti;
for(i=1;i<=n;i++)
{
if(i%2!
=0)
s=s+i;
}
returns;
}
main()
{
intn;
longs;
printf("\nEntern:
");
scanf("%d",&n);
s=sum(n);
printf("Thesis%ld",s);
}
15、编写函数打印以下图形,将图形中的行数作为函数的形参。
在main()
函数中输入行数n,调用该函数打印行数为n的图形。
(如:
输入5,则打
印出5行的三角形)
*****
****
***
**
*
#include
voidprint(intn)
{
inti,j;
for(i=0;i{
for(j=n-i;j>=1;j--)
printf("*");
printf("\n");
}
}
main()
{
intn;
printf("\nEntern:
");
scanf("%d",&n);
print(n);
}
16、编写一个函数,将摄氏温度转换成华氏温度,转换公式为:
f=1.8*c+32.0。
在main函数中调用该函数,计算并在屏幕上显示从摄氏0度到100度,每隔10度
转换一次的华氏温度。
#include
floatf(intc)
{
floatf;
f=1.8*c+32.0;
returnf;
}
main()
{
inti;
floats;
for(i=0;i<=100;i=i+10)
{
s=f(i);
printf("%f\n",s);
}
}
15
(1)编写一个函数,将三个数按由小到大的顺序排列并输出。
在main函数中
输入三个数,调用该函数完成这三个数的排序。
++***(如果是20个数,请用自定义函数来实现它的排序,要求用指针作为函数的形式参数)*******
#include
voidsort(inta,intb,intc)
{
inttemp;
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
printf("Thesortis%d,%d,%d",a,b,c);
}
main()
{
intx,y,z;
printf("\nEnterx,y,z:
");
scanf("%d%d%d",&x,&y,&z);
sort(x,y,z);
}
15
(2)编写一个函数,将三个数按由大到小的顺序排列并输出。
在main函数
中输入三个数,调用该函数完成这三个数的排序。
#include
voidsort(inta,intb,intc)
{
inttemp;
if(a
{
temp=a;
a=b;
b=temp;
}
if(a{
temp=a;
a=c;
c=temp;
}
printf("Thesortis%d,%d,%d",a,b,c);
}
main()
{
intx,y,z;
printf("\nEnterx,y,z:
");
scanf("%d%d%d",&x,&y,&z);
sort(x,y,z);
}
16、编写一个函数,该函数的功能是打印1——n中所有7的倍数,在
main()中输入n,调用该函数输出结果。
#include
voidprint(intn)
{
inti;
for(i=1;i<=n;i++)
if(i%7==0)
printf("%d\t",i);
}
main()
{
intn;
printf("\nEntern:
");
scanf("%d",&n);
print(n);
}
17、写一个函数判断一个正整数是否为奇数,在主函数中用scanf输入
正整数m,调用函数后,根据函数返回值判断这个正整数是否为奇数,
若是则输出“yes”,否则输出“no”
#include
intodd(intn)
{
if(n%2!
=0&&n>0)
return1;
else
return0;
}
main()
{
intm;
ints;
printf("\nEnterm:
");
scanf("%d",&m);
s=odd(m);
if(s==0)
printf("no");
else
printf("yes");
}
18、写一个函数判断一个正整数是否为偶数,在主函数中用scanf输入
正整数m,调用函数后,根据函数返回值判断这个正整数是否为偶数,
若是则输出“yes”,否则输出“no”
#include
inteven(intn)
{
if(n>0&&n%2==0)
return1;
else
return0;
}
main()
{
intm;
ints;
scanf("%d",&m);
s=even(m);
if(s==1)
printf("yes");
else
printf("no");
}
(不要)写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即
该四位数各位数字的四次方和恰好等于该数本身,如:
1634=14+64+34+44)。
在主函数中调用该函数,输出所有玫瑰花数。
voidrose(intn)
{
inta,b,c,d;
a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)
printf("%d\t",n);
}
main()
{
inti;
for(i=1000;i<10000;i++)
rose(i);
}
19、写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即
该四位数各位数字的四次方和恰好等于该数本身,如:
1634=14+64+34+44)
。
在主函数中从键盘任意输入一个四位数,调用该函数,判断该数是否
为玫瑰花数,若是则输出“yes”,否则输出“no”。
introse(intn)
{
inta,b,c,d;
a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)
return1;
else
return0;
}
main()
{
intm;
ints;
printf("\nEnterm<4nums>:
");
scanf("%d",&m);
s=rose(m);
if(s==1)
printf("yes");
else
printf("no");
}
20、编写一个函数,判断某一个三位数是不是水仙花数(所谓水仙花数
即该三位数各位数字的立方和恰好等于该数本身,如:
153=13+53+33)
。
在主函数中调用该函数,输出所有水仙花数。
voiddaffodil(intn)
{
inta,b,c;
a=n/100;
b=n/10%10;
c=n%10;
if(a*a*a+b*b*b+c*c*c==n)
printf("%d\t",n);
}
main()
{
inti;
for(i=100;i<1000;i++)
daffodil(i);
}
21、编写一个函数,函数的功能是求出所有在正整数M和N之间能被5整除
但不能被3整除的数并输出,其中M<N。
在主函数中调用该函数求出100
至200之间,能被5整除、但不能被3整除的数。
要求将该程序以文件名
test2.c保存到K盘根目录。
main()
{intn=200,m=100;
voidfn(intx,inty);
fn(m,n);}
voidfn(intx,inty)
{intj;
for(j=x;j<=y;j++)
if(j%5==0&&j%3!
=0)printf("%5d",j);}
intdhj(intx,inty)
{intn;
for(n=x;n<=y;n++)
if(n%5==0&&n%3!
=0)
printf("%d\t",n);}
22、编写一个函数,其功能是;检验一个输入的四位数字是否是闰年,
如果是闰年则返回1,否则返回0。
在主函数中从键盘输入一个四位数XXXX
,调用该函数进行判断,如果是则输出”yes”,否则输出”no”(提示
:
如果该四位数能被4整除但不能被100整除,则是闰年;如果该四位数能
被400整除,则是闰年)要求将该程序以文件名test2.c保存到K盘根目录。
intleap(inty)
{intr=0;
if(y%4==0&&y%100!
=0||y%400==0)r=1;
elser=0;
returnr;}
main()
{inty;
printf("lnputyear:
");
scanf("%d",&y);
if(leap(y)==1)
printf("yes");
elseprintf("no");
}
23、编写一个函数求两数中的较大数,在main()函数输入三个数,调用该
函数求这三个数的较大数并在屏幕上输出。
floatmax(floata,floatb)
{floatt=a;
if(b>t)t=b;
returnt;}
main()
{floata,b,c;
printf("lnputa,b,c:
");
scanf("%f%f%f",&a,&b,&c);
printf("%f",max(max(a,b),c));}
24写一函数min,返回三个数中最小数。
在主函数中用键盘输入三个数,
调用该函数求出其中最小数并输出。
(要求:
三个数为实数)
floatmin(inta,intb,intc)
{
floattemp