C考试题库答案

余年寄山水
926次浏览
2021年01月11日 15:57
最佳经验
本文由作者推荐

八字五行-你好毒张学友

2021年1月11日发(作者:曲波)


1、编写一计算阶乘的函数fac,在主函数中从键盘输入一个正整数,
调用阶乘函数fac计算阶乘并输出计算结果。
#include
long fac( int n)
{long f;
if (n==0)
f=1;
else
f=n* fac(n-1);
return f;
}
main( )
{long y;
int n;
printf(
scanf(
y=fac(n);
printf(
}
2、编写一个求x的y次幂的函数pw,在main函数中从键盘输入a、b的值,
然后调用pw函数求a的b次幂,并输出结果。
#include
long pw(int x,int y)
{
long s=1;
int i;
for(i=1;i<=y;i++)
s=s*x;
return s;
}

main()
{
long sum;
int a,b;
printf(
scanf(
sum=pw(a,b);
printf(
}
3、写一函数max,计算三个数中最大数 。在主函数中输入三个数,
调用该函数求出其中最大数并输出。(要求:三个数为实数)
#include
int max(int a,int b,int c){


int max;
if(a>b)
max=a;
else
max=b;
if(max max=c;
return max;
}
main(){
int x,y,z;
int m;
printf(
scanf(
m=max(x,y,z);
printf(
}_
4、写一个函数计算两个正整数的最大公约数,在主函数中用scanf输入m,
n两个正整数,调用函数后,打印函数返回值(即这两个正整数的最大公约数)。
#include
int gcd(int m,int n){
if(m%n==0)
return n;
else
return gcd(n,m%n);
}

main(){
int a,b,c,temp;
scanf(
if(a temp=a;
b=temp;
a=b;}
c=gcd(a,b);
printf(
5、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数中
调用该函数,输出200以内所有的素数。(待定)
#include
void f(int n){ (原题:输出1-1000以内所有的素数,并按每行5个输出 。)
int i;
for(i=2;i if(n%i==0)
break;


if(i==n)
printf(
}
main()
{
int j;
for(j=2;j<200;j++)
f(j);
}
6.请编一个自定义函数,功能:将给定的字符串中的所有字母改为小写字母。
字符串在主函数中从键盘任意输入(容许包含空格)
7、编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数
中输入一个整数,调用该函数,判断该数是不是素数,若是则输出“yes”,
否则输出“no”
#include
void f(int n){
int i;
for(i=2;i if(n%i==0)
break;
if(i==n)
printf(
else
printf(
}
main(){
int m;
printf(
scanf(
f(m);}
8、将1--1000中所有21的倍数存到一个一维数组中,再按每行5个数据输出到
屏幕上。
#include
main(){
int i,j=0,a[50];
for (i=1;i<=1000;i++) {
if (i%21==0){
a[j]=i;
printf(
if (j%5==4)
printf(
j++;
}}}
8、在屏幕上打印以下图案:(要求打印N行,N用符号常量定义为7)


*
**
***
****
*****
******
*******
#include
#define N 7
main(){
int i,j,m;
for(i=1;i<=N;i++){
for(j=1;j<=N-i;j++)
printf(
for(m=1;m<=i;m++)
printf(
printf(
}
}
9、输出所有在正整数200和300之间能被6整除、但不能被4整除的数,并统计
这样的数有多少个。
#include
main()
{int i,j=0;
for (i=200;i<=300;i++)
{if (i%6==0&&i%4!=0)
{ j++;
printf(
}
}
printf(
}
10、求 S=11+12+13+„„+1100(精确到小数点后三位)。
#include
main()
{
int i;
float sum=0;
for(i=1;i<=100;i++)
{sum=sum+1.0i;}
printf(
}

11. 编程计算1到20的平方和,并输出结果。(要求用for循环)


#include
main()
{
int i;
long s=0;
for(i=1;i<=20;i++)
s=s+i*i;
printf(
}
12. 编写一个程序从键盘任意个整数,求均值及低于均值的个数,
输出到屏幕。
#include
main(){
int n;
int a[1000],i,j=0;
long s=0;
float ave;
printf(
scanf(
printf(
for(i=0;i scanf(
s=s+a[i];
}
ave=s*1.0n;
printf(
for(i=0;i if(a[i] j++;
printf(
}
13. 编写一个程序从键盘输入10个学生的成绩到数组score中,将最高分、
最低分输出。
main(){
int score[10];
int i;
int max, min;
for(i=0;i<10;i++)
scanf(
max=min= score [0];
for(i=0;i<10;i++){
if(max < score [i]) max=score[i];
if(min > score [i]) min=score[i];
}


printf(
}
14. 在main()函数中输入一个人的年龄 和性别,女士55岁退休,男士60岁退休。编写一个
函数根据年龄和性别判断一个人士工作还是退休, 若工作,则输出“Working!”,退休则输
出“Retired!”
#include
main(){
int s,a;
scanf(
if(s=0)
if(a<=55) printf(!
else printf(!
else
if(a>60) printf(!
else printf(!
}
12、编写一个函数求一个实数的绝对值。然后在main函数中用scanf输入
任意个实数,调用该函数求它的绝对值并输出。
#include
float fab(float x)
{
if(x>0)
return x;
else
return -x;
}
main()
{
float n;
float s;
printf(
scanf(
s=fab(n);
printf(
}}
13、编写一个求1——n内的偶数和的函数,在main()函数中输入n,然后
调用该函数求1——n的偶数和并输出。
#include
long sum(int n){
int i;
long sum=0;
for(i=1;i<=n;i++){
if(i%2==0)
sum=sum+i;


}
return sum;
}
main(){
int n;
long s;
printf(
scanf(
s=sum(n);
printf(
}
14、编写一个求1——n内的奇数和的函数,在main()函数中输入n,然后
调用该函数求1——n的奇数和并输出。
#include
long sum(int n){
long s=0;
int i;
for(i=1;i<=n;i++){
if(i%2!=0)
s=s+i;
}
return s;
}
main(){
int n;
long s;
printf(
scanf(
s=sum(n);
printf(
}
15、编写函数打印以下图形,将图形中的行数作为函数的形参。在main()
函数中输入行数n,调用该函数打印行数为n的图形。(如:输入5,则打
印出5行的三角形)
*****
****
***
**
*
#include
void print(int n){
int i,j;
for(i=0;i for(j=n-i;j>=1;j--)


printf(
printf(
}
}
main(){
int n;
printf(
scanf(
print(n);
}
16、编写一个函数,将摄氏温度转换成华氏温度,转换公式为:f=1.8*c+32.0。
在main函数中调用该函数,计算并在屏幕上显示从摄氏0度到100度,每隔10度
转换一次的华氏温度。
#include
float f(int c){
float f;
f=1.8*c+32.0;
return f;
}
main(){
int i;
float s;
for(i=0;i<=100;i=i+10){
s=f(i);
printf(
}
}
15(1)编写一个函数,将三个数按由小到大的顺序排列并输出。在main函数中
输入三个数,调用该函数完成这三个数的排序。
#include
void sort(int a,int b,int c){
int temp;
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(
}
main(){
int x,y,z;
printf(
scanf(
sort(x,y,z);
}
15(2)编写一个函数,将三个数按由大到小的顺序排列并输出。在main函数
中输入三个数,调用该函数完成这三个数的排序。
#include
void sort(int a,int b,int c){
int temp;
if(a temp=a;
a=b;
b=temp;
}
if(a temp=a;
a=c;
c=temp;
}
printf(
}
main(){
int x,y,z;
printf(
scanf(
sort(x,y,z);
}
16、编写一个函数,该函数的功能是打印1——n中所有7的倍数,在
main()中输入n,调用该函数输出结果。
#include
void print(int n){
int i;
for(i=1;i<=n;i++)
if(i%7==0)
printf(
}
main(){


int n;
printf(
scanf(
print(n);
}
17、写一个函数判断一个正整数是否为奇数,在主函数中用scanf输入
正整数m,调用函数后,根据函数返回值判断这个正整数是否为奇数,
若是则输出“yes”,否则输出“no”
#include
int odd(int n){
if(n%2!=0&&n>0)
return 1;
else
return 0;
}
main(){
int m;
int s;
printf(
scanf(
s=odd(m);
if(s==0)
printf(
else
printf(
}
18、写一个函数判断一个正整数是否为偶数,在主函数中用scanf输入
正整数m,调用函数后,根据函数返回值判断这个正整数是否为偶数,
若是则输出“yes”,否则输出“no”
#include
int even(int n){
if(n>0&&n%2==0)
return 1;
else
return 0;
}
main(){
int m;
int s;
scanf(
s=even(m);
if(s==1)
printf(
else


printf(
}
写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即
该四位数各位数字的四次方和恰好等于该数本身,如:1634=14+64+34+44)。
在主函数中调用该函数,输出所有玫瑰花数。
void rose(int n){
int a,b,c,d;
a=n1000;
b=n100%10;
c=n10%10;
d=n%10;
if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)
printf(
}
main(){
int i;
for(i=1000;i<10000;i++)
rose(i);
}
19、写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即
该四位数各位数字的四次方和恰好等于该数本身,如:1634=14+64+34+44)
。在主函数中从键盘任意输入一个四位数,调用该函数,判断该数是否
为玫瑰花数,若是则输出“yes”,否则输出“no”。
int rose(int n){
int a,b,c,d;
a=n1000;
b=n100%10;
c=n10%10;
d=n%10;
if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)
return 1;
else
return 0;
}
main(){
int m;
int s;
printf(
scanf(
s=rose(m);
if(s==1)
printf(
else
printf(


}
20、编写一个函数,判断某一个三位数是不是水仙花数(所谓水仙花数
即该三位数各位数字的立方和恰好等于该数本身,如:153=13+53+33)
。在主函数中调用该函数,输出所有水仙花数。
void daffodil(int n)
{
int a,b,c;
a=n100;
b=n10%10;
c=n%10;
if(a*a*a+b*b*b+c*c*c==n)
printf(
}
main()
{
int i;
for(i=100;i<1000;i++)
daffodil(i);
}
21、编写一个函数,函数的功能是求出所有在正整数M和N之间能被5整除
但不能被3整除的数并输出,其中M<N。在主函数中调用该函数求出100
至200之间,能被5整除、但不能被3整除的数。
main()
{int n=200,m=100;
void fn(int x,int y);
fn(m,n);}
void fn(int x,int y)
{int j;
for(j=x;j<=y;j++)
if(j%5==0&&j%3!=0) printf(
int dhj(int x,int y)
{int n;
for(n=x;n<=y;n++)
if(n%5==0&&n%3!=0)
printf(
22、编写一个函数,其功能是;检验一个输入的四位数字是否是闰年,
如果是闰年则返回1,否则返回0。在主函数中从键盘输入一个四位数XXXX
,调用该函数进行判断,如果是则输出” yes”,否则输出”no”(提示
:如果该四位数能被4整除但不能被100整除,则是闰年;如果该四位数能
被400整除,则是闰年)
int leap(int y)
{ int r=0;
if(y%4==0&&y%100!=0||y%400==0) r=1;
else r=0;


return r;}
main()
{int y;
printf(
scanf(
if(leap(y)==1)
printf(
else printf(
}
23、编写一个函数求两数中的较大数,在main()函数输入三个数,调用该
函数求这三个数的较大数并在屏幕上输出。
float max(float a,float b)
{float t=a;
if(b>t) t=b;
return t;}
main()
{float a,b,c;
printf(
scanf(
printf(
24写一函数min,返回三个数中最小数 。在主函数中用键盘输入三个数,
调用该函数求出其中最小数并输出。(要求:三个数为实数)
float min(int a,int b,int c){
float temp;
if(a>b) {
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
return a;
}

main(){
float x,y,z,s;
scanf(
s=min(x,y,z);
printf(
}
25、编写一个函数计算n!。在主函数中调用该函数计算1!+2!+3!+„+10!


并输出结果。
long fac(int n){
long s=1;
int i;
for(i=1;i<=n;i++)
s=s*i;
return s;
}
main(){
int j;
int sum=0;
for(j=1;j<=10;j++)
sum=sum+fac(j);
printf(
}
26、编写一个求直角三角形的面积的函数。在main函数中从键盘输入
直角三角形的两个直角边,然后调用该函数求该直角三角形的面积
(精确到小数点后2位)。
float s(int a,int b){
float s;
s=a*b2.0;
return s;
}
main(){
int a,b;
float area;
float s(int a,int b);
scanf(
area=s(a,b )
printf(
}
27、编写一个求圆的面积的函数。在main函数中从键盘输入半径,然后
调用该函数求该圆的面积(精确到小数点后2位)。
#define PI 3.14
float area(int r){
float s;
s=PI*r*r;
return s;
}
main(){
int r;
float s;
printf(
scanf(


s=area(r);
printf(
}
28某商场根据客户购物的数量打折,根据商品的单价p,数量n,编写函数
fun计算应付款。在main()函数中输入单价和数量,调用函数后,输出应
付款(打折方法:购物数量10件及以上打9折,20件及以上打8折,10件以
下不打折,结果保留2位小数)。
float fun(float p,int n){
float s;
if(n<10)
s=p*n;
else
if(n>=10&&n<20)
s=p*n*0.9;
else
if(n>=20)
s=p*n*0.8;
return s;
}
main(){
int n;
float p;
float sum;
printf(
scanf(
sum=fun(p,n);
printf(
}
36、写一个函数,判断给定的三边长能否构成直角三角形,能构成直角三角形,
则返回整数1,否则返回整数0。在main()函数中输入三边长,调用该函数,若是
直角三角形,则输出“yes”, 否则,输出“no”。
int right_triangle(int a,int b,int c){
int temp;
if(c temp=c;
c=a;
a=temp;
}
if(c temp=c;
c=b;
b=temp;
}
if(a*a+b*b==c*c)


return 1;
else
return 0;
}
main(){
int x,y,z;
int s;
printf(
scanf(
s=right_triangle(x,y,z);
if(s==1)
printf(
else
printf(
}
30、写一个函数计算两个正整数的最小公倍数,在主函数中用scanf输入
m,n两个正整数,调用函数后,打印这两个正整数的最小公倍数。
int f(int a,int b){
int i,temp;
if(a temp=a;
a=b;
b=temp;}
for(i=a;i<=a*b;i++)
if(i%a==0&&i%b==0){
return i;
break;
}
}
main(){
int m,n,s;
printf(
scanf(
s=f(m,n);
printf(
}
31、编写一个函数,判断某一个三位数是不是水仙花数(所谓水仙花
数即该三位数各位数字的立方和恰好等于该数本身,如:
153=1*1*1+5*5*5+3*3*3)。在主函数中从键盘任意输入一个三位数
调用该函数,判断该数是否为水仙花数,若是则输出否则输出。
int fn(int n)
{
int a,b,c,t=0;
a=n%10;


c=n100;
b=(n-c*100)10;
if(n==a*a*a+b*b*b+c*c*c) t=1;
return t;
}
#include
main()
{
int i,leap;
clrscr();
for(i=100;i<1000;i++)
{
leap=fn(i);
if(leap==1)
printf(
else
printf(
}
}
32、编写一个程序从键盘输入三个整型数据,按从大到小的顺序输出。
#include
main()
{int a,b,c;
int t;
clrscr();
scanf(
if(aif(aif(bprintf(
编写一个程序从键盘输入三个整型数据,求它们的和及平均值并在
屏幕上显示(平均值精确到小数点后两位)。
main()
{int a,b,c;flaot ave,sum=0;
scanf(
sum=a+b+c;
ave=sum3;
printf(
33、设a,b是这个直角三角形的两个直角边 ,用scanf输入a,b的值,计算
并输出直角三角形的周长。(结果保留2位小数)。
#include
#include
float perimeter(int m,int n)
{ double x,y,z;


x=m*m+n*n;
y=sqrt((double)x);
z=m+n+y;
return z;}
main()
{int a,b;
float l;
float perimeter(int a,int b);
scanf(
l=perimeter(a,b )
printf(
}
34、用scanf输入半径r的值,求以此为半径的园的面积。将结果输出
到屏幕上(要求将л=3.14159定义为符号常量,结果保留2位小数)。
#include
#define PI 3.14159
main ()
{float r,s;
scanf(
s=PI*r*r;
printf(
}
35、编写程序,从键盘输入圆柱体的底面半径r和高h,求圆柱体的体积
并输出(л=3.14159,结果保留2位小数)。
#include
#define PI 3.14159
main ()
{float r,h,v;
scanf(
v=PI*r*r*h;
printf(
}
36用scanf输入一个梯形的上底(a)下底(b)和高(h),求这个梯形的
面积(s)。(结果保留2位小数)。
#include
main ()
{float a,b,h,s;
scanf(
s=(a+b)*h2.0;
printf(
}
编程计算1到20的平方和,并输出结果。(要求用for循环)
main()
{


float s;
int i;
for(i=1;i<=20;i++)
s+=i*i;
printf(
}
求 S=11+12+13+„„+1100(精确到小数点后三位)。
main()
{int i;
float sum=0;
for(i=1;i<=100;i++)
{sum=sum+1.0i;}
printf(
38同11题
39、编写一个程序从键盘输入10个整数,求均值及低于均值的个数
,并结果用空格隔开输出到屏幕。(采用预定义N为10)。
#include
#define N 10
main(){
int i,j,a[N],sum=0,count;
float v;
for (i=0;i scanf(
sum=sum+a[i];
}
v=sum*1.0N;
for (j=0;jif (a[j] count++;
printf(
40、将1--1000中所有21的倍数存到一个一维数组中,再按每行5个
数据输出到屏幕上。
#include
main(){
int i,j=0,a[50];
for (i=1;i<=1000;i++)
{if (i%21==0)
{a[j]=i;
printf(
if (j%5==4)
printf(
j++;
}
}


}
41、编写一个程序,输出下面数列的前20项
0 , 1,1,2,3,5,8,13,21,24
#include
main(){
int a[20]={0},i;
a[0]=0;a[1]=1;
for (i=2;i<20;i++)
a[i]=a[i-1]+a[i-2];
for (i=0;i<20;i++)
printf(
}
42、求解一个一元二次方程(分别考虑幂为零次,一次,二次情况)?
详见:教科书P60例3-1
43、假设某人有钱百枚,希望买一百只鸡,公鸡6圆一只,母 鸡4圆一只,小鸡0.5圆一只。
试问可以包含几只公鸡,几只母鸡,几只小鸡?
详见:教科书P65例3-3
44、任意输入等比数列的初值和一个公比,求等比数列的前20项的和
#include
main(){
long a,q;
double sum;
int i;
printf(
scanf(
sum=a;
for(i=1;i<=20;i++){
printf(
a=a*q;
sum=sum+a }
printf(
}
编写一个程序,从键盘读入两个实数a和n,计算并输出a+aa+aaa+„„+aaaa„.a (n个a)
的值。
#include
main(){
int a,n,t=a,s=0;
int i;
printf(
scanf(
for(i=1;i<=n;i++){
t=t*10+a;
s=s+t;
printf(


printf(
}
请编写一个程序,计算1-12+13-„„„+199-1100。
main(){
int i,p=1;
float sum=0;
for(i=1;i<=100;i++){
sum=sum+p*1.0i;
p=-p;
}
printf(
}

房子风水怎么看-冬眠动物


羽毛球比赛场地规则-爱因斯坦的名言


属鼠2019年运势-明天不封阳台


分组伤感-懈怠的意思


婚宴酒水-天真歌词


英雄联盟提莫-读书报告格式


快速祛斑小窍门-夏天的词语


deserves-有关爱国的古诗