admin 管理员组

文章数量: 887053


2024年1月4日发(作者:类似element的ui框架)

(word完整版)c语言程序设计编程题库

难度1循环结构

计算 s=1-2!+3!-4!+…-10!的值并输出。 -3301819

#include

void main()

{int n,t=1,f=-1;

int sum=0;

4

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

{t=t*n;

f=-f;

sum=sum+t*f;

}

printf("%d",sum);

}

计算 s=1-1/3 + 1/5- 1/7+…1/101 的值并输出 0.790300

#include

void main()

{int n,f=-1;

float t,sum=0;

9

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

{t=1.0/(2*n-1);

f=-f;

sum=sum+t*f;

}

printf("%f",sum);

}

编写程序求出 555555的约数中最大的三位数是多少。 要求必须使用 do-while语句实现。

#include

#define Y 555555

void main()

{int n=100;

10

int max=0;

Do

{ if(Y%n==0)

{max=n;n++;}while(n<999);

printf("%d",max);

}

输入一个正整数, 要求以相反的顺序输出该数。 例如输入12345, 输出位54321。注:1 不得使用数组;2 必须使用 while 语句实现。

#include

11

Void main()

{ int x;

Scanf(“%d”,&x) ;

While()

}

1 / 18

(word完整版)c语言程序设计编程题库

编写程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和。要求必须使用for语句实现。 0.980393

#include

void main( )

{

int i;

110

float sum=0;

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

}

编写程序,求S=1/(1+2)+1/(2+3)+1/(3+4)+……前50项之和。要求必须使用while 语句实现。

#include

void main( )

{

int i=1;

111

float sum=0;

while(i<=50)

{ sum=sum+1.0/(i+(i+1));

i++;}

printf("ns=%fn",sum);

} 1.947676

输入 10个整数,统计同时能被 3和 7 整除的个数,结果存放在变量 nCount中。将 nCoun 输出。要求必须使用

do-while 语句实现。

#include "stdio.h"

void main()

{

sum=sum+1.0/(i*(i+1));

printf("ns=%fn",sum);

int a[10] ;

do

int i=0 ,nCount=0;

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

179

i++;

}while(i<10);

i = 0 ;

do

{ if(a[i]%3 == 0 && a[i] % 7 == 0)

}

编写一个sum函数求和:输入一个正整数n,统计不大于n值的所有正偶数的和,在主函数中完成输入输出。要求用

do-while 语句实现。

#include "stdio.h"

181

void main()

{

int n,sum=0,i ;

printf("%d", nCount);

nCount++;i++;}while(i<10);

2 / 18

(word完整版)c语言程序设计编程题库

}

编程求1+(1+2)+…+(1+2+…+n),n的值由键盘输入。要求使用 for语句实现

#include

void main( )

{

int i,j=0,n;

int sum=0;

187

printf("请输入n的值:");

scanf("%d",&n);

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

{ j=j+i;

sum=sum+j;}

printf("ns=%dn",sum);

}

从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。要求使用 while 语句。

#include"stdio.h"

void main()

{

int a[10],i,p=0,n=0,z=0;

printf("输入10个整数:");

i=0;

printf("请输入一个正整数:");

do

scanf("%d",&n) ;

i = 2;

{sum=sum+i;i+=2;}while(i

printf("%dn",sum) ;

while(i<10)

265

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

if(a[i]>0)

}

printf("正数:%d,负数:%d,零:%dn",p,n,z);

}

函数 难度1

编写自定义函数 volume_cy,功能是求圆柱体的体积(v=3.14*r2*h),要求

圆柱体的高 h 和底半径 r 在主函数中输入,圆柱体的体积在主函数中做输出。h,r 均为 float型变量。

#include

float volume_cy(float r,float h)

173

{

return (3.14*r*r*h);

}

void main()

else z++;

p++;

else if (a[i]<0) n++;

i++;

3 / 18

(word完整版)c语言程序设计编程题库

{float r,h,v;

printf("请输入圆柱体的半径和高度");

scanf("%f %f",&r,&h);

v=volume_cy(r,h);

printf("n圆柱体的体积为%fn",v);

}

编写自定义函数 volume_c,功能是求正方体的体积(要求:正方体的的边长 a 在主函数中做输入,在主函数中调用函数 volume_c,在主函数中输出正方体体积,a 为int 型变量) 。

#include

float volume_c(int a)

{

return (a*a*a);

}

176

void main()

{int a;

float v;

printf("请输入正方形的边长:");

scanf("%d",&a);

v=volume_c(a);

printf("n正方形的的体积为%fn",v);

}

编写函数max, 功能是找出两个数的较大值。 在主函数中输入两个整数num1,num2,调用函数 max,在主函数中输出

num1 和 num2 较大值。

#include

void main()

{int max(int x, int y);

int num1,num2,max1;

printf("请输入两个数:n");

scanf("%d%d",&num1,&num2);

178

max1=max(num1,num2);

printf("max=%dn",max1);

}

int max(int x,int y)

{int m;

m=x>y?x:y;

return m;

}

定义函数 areaT,功能是求圆锥体积。在主函数中输入半径 r和高 h,调用函数 areaT 求体积,并在主函数中输出圆锥的体积。其中变量 r,h 均为 double 型数据。 (公式v=h*3.14*r2/3)

#include

float areaT(double r,double h)

182

{

}

void main()

return 3.14*r*r*h/3.0;

4 / 18

(word完整版)c语言程序设计编程题库

{float r,h,v;

printf("请输入圆锥体的半径和高度");

scanf("%f %f",&r,&h);

v=areaT(r,h);

printf("n圆锥体的体积为%fn",v);

}

定义函数 Fra,功能是求华氏温度,要求在主函数中输入摄氏温度 c,调用函数 Fra,在主函数中输出华氏温度 f。要求变量 c,f均为 float型数据(公式 f=5/9*c+32)

#include

float Fra(float c)

{

return 5.0/9*c+32.0;

}

183

void main()

{float f,c;

printf("请输入摄氏温度:");

scanf("%f",&c);

f=Fra(c);

printf("n对应的华氏温度为%fn",f);

}

定义函数 areaT,功能是求梯形面积。要求在主函数中输入上底(用变量 a存储)、下底(用变量 b 存储)、和高(用变量 h 存储),在主函数中调用函数 areaT,输出梯形面积(用变量 s 存储)的值。其中,变量 a,b,h,s 数据类型均为

double。公式:s=(a+b)*h/2

#include

double areaT(double a,double b,double h)

{

184

}

void main()

{double a,b,h,s;

printf("请输入梯形的上底、下底和高度");

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

s=areaT(a,b,h);

printf("n梯形的面积为%fn",s);

}

)编写自定义函数 min,函数功能是找出两个数的较小值。在主函数中输入

两个数,分别保存在变量 a 和变量b,并且在主函数中调用函数 min,输出 a 和b 的较小值。

#include

void main ()

{ int min(int x, int y);

194

int a,b,min1;

printf("请输入两个数:n");

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

min1=min(a,b);

printf("min=%dn",min1);

return (a+b)*h/2;

5 / 18

(word完整版)c语言程序设计编程题库

}

int min(int x,int y)

{

int m;

m=x

return m;

}

编写一个函数fun,函数的功能是:判断一个整数是否既是5又是7的整倍数。若是,输出yes,否则输出no。在主函数中输入任意一个正整数,调用fun函数,输出该数对应的结果。

#include

void main()

{void fun(int);

int a;

scanf("%d",&a); 对应的结果

197

fun(a) ; 35

} Yes

void fun(int x) 49

{ if(x%5==0&&x%7==0) printf("yesn"); No

else printf("non");

return ;

}

编写一个函数div,定义该函数的返回值类型为int,功能是判断一个整数n是否能同时被5 和7 整除,如果能,那么函数返回值为1;如果不能,那么函数返回值为0。在main 函数中完成数据输入,函数调用和数据输出。

#include

void main()

{int div(int);

int a,y;

scanf("%d",&a);

y=div(a) ;

242

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

}

int div(int x)

{ int y;

if(x%5==0&&x%7==0) y=1;

else y=0;

return(y) ;

}

)编写函数sign,功能是计算下列分段函数sign(x)的值。在主函数中输入一个数,保存在变量x 中,调用函数sign,在主函数中输出结果。要求x 为double 型变量。sign(x)={1 x>0

0 x=0

317

7#include

double sign(double x)

{

-1 x<0 }

6 / 18

(word完整版)c语言程序设计编程题库

}

void main()

{

double x,b;

}

scanf("%f",&x);

b=sign(x);

printf("%le",b);

double b;

if(x==0)

else

b=1;

return b;

b=0;

b=-1;

else if(x<0)

逻辑运算和判断选取控制

编程判断输入的正整数是否既是5又是7的整倍数。若是,输出yes,否则输出no。

#include

void main()

{

6

}

编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。要求必须使用switch-case 结构实现。

int n;

scanf("%d",&n);

if(n%5==0&&n%7==0)

printf("yesa");

else printf("noa");

#include "stdio.h"

int main()

{int score,g;

printf("请输入百分制成绩:");

scanf("%d",&score);

8

g=score/10;

switch(g)

{case 1:

case 2:

case 3:

case 4:

case 5:printf("En");break;

case 6:printf("Dn");break;

case 7:printf("Cn");break;

7 / 18

(word完整版)c语言程序设计编程题库

case 8:printf("Bn");break;

case9: printf("An");break;

default: printf("Input Error!");

}

}

编写一个简单计算器程序,输入格式为:data1 op data2。其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。。要求必须使用switch-case语句实现。

#include

void main ( )

{ float data1, data2;

char op;

printf("Enter your expression:");

scanf("%f%c%f", &data1,&op,&data2);

switch(op)

{ case '+':

printf("%.2f+%.2f=%.2fn", data1, data2, data1+data2); break;

93

case '-' :

printf("%.2f-%.2f=%.2fn", data1, data2, data1-data2); break;

case '*' :

printf("%.2f*%.2f=%.2fn", data1, data2, data1*data2); break;

case '/' :

if( data2==0 )

printf("Division by zero.n");

else

printf("%.2f/%.2f=%.2fn", data1, data2, data1/data2); break;

default:

printf("Unknown operater.n");

}

}

已知银行整存整取存款不同期限的月息利率分别为:

0.315% 期限一年

0.330% 期限二年

月息利率 = 0.345% 期限三年

0.375% 期限五年

0.420% 期限八年

要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

94

#include "stdio.h"

int main()

{float money,y;

printf("请输入存钱的本金和期限:");

scanf("%f%f",&money,&y);

if (y==1)

{money=money+0.00315*12*y;

printf("到期时利息和本金合计为%f元。n",money);}

8 / 18

(word完整版)c语言程序设计编程题库

else if (y==2)

{money=money+0.00330*12*y;

printf("到期时利息和本金合计为%f元。n",money);}

else if (y==3)

{money=money+0.00345*12*y;

printf("到期时利息和本金合计为%f元。n",money);}

else if (y==5)

{money=money+0.00375*12*y;

printf("到期时利息和本金合计为%f元。n",money);}

else if (y==8)

{money=money+0.00420*12*y;

printf("到期时利息和本金合计为%f元。n",money);}

else

printf("没有这种存款方式!");

return 0;

}

从键盘输入一个学生的分数, 要求实现这样的判断功能: 如果分数大于100,输出”Input error!” 如果分数介于100到90之间, 输出”Very Good!” 如果分数介于80到90只,输出”Good!” 如果分数介于70到80之间,输出”Middle” 如果分数介于60到70之间, 输出”Pass” 如果分数小于60,输出”No Pass!” 。要求必须使用if-elseif 结构实现。

#include

void main()

{

199

int score;

printf("your score:");

scanf("%d",&score);

if(score<0||score>100) printf("Input error!n");

else if (score>90) printf("Very Good!n");

else if (score>80) printf("Good!n");

else if (score>70) printf("Middlen");

else if(score>60) printf("Passn");

else printf("No Pass!n");

}

判断一个学生成绩的“优、良、中、差”: 假如从键盘输入的字母是‘A’,输出评语“You are Excellent!”; 如果输入‘B’,输出评语“You are well!”; 如果输入‘C’,输出评语“You are passing!”; 如果输入‘D’,输出评语“You are not passing!”。 如果输入的不是这四个字母,则出现提示“Input error!” 请编写一个程序,实现该判断功能。要求必须使用switch-case 结构实现。

200

#include

void main()

{

char grade;

printf("Please input a grade:");

scanf("%c",&grade);

9 / 18

(word完整版)c语言程序设计编程题库

}

输入一个整数,判断该数是奇数还是偶数。要求必须使用if-else 结构实现。

switch(grade)

{

case 'A':printf("You are Excellent!n");break;

case 'B':printf("You are well!n");break;

case 'C':printf("You are passing!n");break;

case 'D':printf("You are not passing!n");break;

default:printf("Input error!n");

}

#include

void main()

{

211

}

从键盘接收三个整数,分别存放在变量a,b,c 中,编程求出最小数。XXXXXX

#include

void main()

{

247

}

从键盘接收三个整数,分别存在变量x,y,z 中。编程输出最大数。

#include

void main()

int a,b,c,min;

printf("Please input 3 numbers:");

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

if(a

min=a;

else min=b;

if(min

printf("min=%dn",min);

else printf("min=%dn",c);

int x;

printf("Please input a number:");

scanf("%d",&x);

if(x%2==0)

printf("ou shun");

else printf("ji shun");

{

249

int x,y,z,max;

printf("Please input 3 numbers:");

scanf("%d,%d,%d",&x,&y,&z);

if(x>y) max=x;

else max=y;

10 / 18

(word完整版)c语言程序设计编程题库

}

从键盘接收一个字符,如果是字母,输出其对应的ASCII码,如果是数字,按原样输入,否则给出提示信息“输入错误!”。

#include

void main()

{

253

}

个人所得税计算,应纳税款的计算公式如下:

收入

收入<=1000元部分

税率

0%

char c;

printf("Please input a char:");

c=getchar();

if(c>='a'&&c<='z')

printf("%dn",c);

printf("%dn",c);

printf("%cn",c);

else if(c>='A'&&c<='Z')

else if(c>='0'&&c<='9')

else printf("输入错误!n");

if(max>z) printf("max=%dn",max);

else printf("max=%dn",z);

2000元>=收入>1000元的部分

5%

3000元>=收入>2000元的部分

10%

6000元>=收入>3000元的部分

15%

收入>6000元的部分

20%

输入某人的收入,计算出应纳税额及实际得到的报酬。,要求必须使用if-else 结构完成。

#include

void main()

279

{

float i,n,tax; /*定义收入,实际收入,个人所得税*/

printf("Please input your income:");

scanf("%f",&i);

if(i<=1000)

{

}

else if(i>1000&&i<=2000)

{

tax=i*0.05;

n=i-tax;

tax=i*0;

n=i-tax;

printf("个人所得税=%.1f 实际报酬=%.2fn",tax,n);

11 / 18

(word完整版)c语言程序设计编程题库

}

输入一个字符,判断它是否是小写字母,是小写字母,则将它转换成大写字母,如果不是,则不转换,然后输出所得到的字符。

#include”stdio.h”

Void main()

{

Char c;

320

Printf(“输入一个字符:”);

Scanf(“%c”,&c);

If (c>=’a’&&c<=’z’)

Printf(“%cn”,c-32);

Else printf(“%cn”,c);

}

}

else if(i>2000&&i<=3000)

{

}

else if(i>3000&&i<=6000)

{

}

else if(i>6000)

{

}

else printf("error!n");

tax=i*0.2;

n=i-tax;

printf("个人所得税=%.1f 实际报酬=%.2fn",tax,n);

tax=i*0.15;

n=i-tax;

printf("个人所得税=%.1f 实际报酬=%.2fn",tax,n);

tax=i*0.1;

n=i-tax;

printf("个人所得税=%.1f 实际报酬=%.2fn",tax,n);

printf("个人所得税=%.1f 实际报酬=%.2fn",tax,n);

难度2

编一通用函数avernum,计算含有n个数据的一维数组的平均值,并统计此数组中大于平均值的数据的个数; 主函数中定义含有100个元素的数组x,x[I]=200*cos(I*0.875)(I=0,1,2……99),调用上述函数,输出此数组的平均值及大于平均值的数据的个数。 -0.851949 49

(注:此程序不允许使用全局变量,不允许在avernum函数中输出)

154

#include "stdio.h"

#include "math.h"

#define N 100

double avernum(double *x, double n, double ave)

{ double aver=0.000000, a=0;

12 / 18

(word完整版)c语言程序设计编程题库

int i;

if(ave==0)

{ for(i=0; i

aver=aver+*(x+i);

aver=aver/n;

return aver;

}

else

{ for(i=0; i

}

}

void main()

{ double x[N], m, aver;

int i;

for(i=0; i

x[i]=200*cos(i*0.875);

aver=avernum(x, N, 0);

m=avernum(x, N, aver);

printf("aver=%fnm=%fn",aver, m);

}

编一通用函数avermax,计算含有n个数据的一维数组的平均值,并求出此数组中大于平均值的数据之和;主函数中定义含有300个元素的数组x,x[I]=10* cos ((3.0+I*I) / 5) (I=0,1,2……299),调用上述函数,输出此数组的平均值及大于平均值的数据之和。 -0.220814 912.784553(注:此程序必须使用while 语句,不允许使用全局变量,不允许在avermax 函数中输出)

#include "stdio.h"

#include "math.h"

#define N 300

double avernum(double *x, double n, double ave)

{ double aver=0.000000, a=0;

int i;

if(ave==0)

155

{ i=0;

while(i

{aver=aver+*(x+i); i++;}

aver=aver/n;

return aver;

}

else

{ i=0;

while(i

}

{ if(ave<*(x+i))a+=*(x+i); i++;}

return a;

if(ave<*(x+i))a++;

return a;

13 / 18

(word完整版)c语言程序设计编程题库

}

void main()

{ double x[N], m, aver;

int i=0;

while(i

{x[i]=10* cos((3.0+i*i)/5); i++;}

aver=avernum(x, N, 0);

m=avernum(x, N, aver);

printf("aver=%fnm=%fn",aver, m);

}

编一通用函数maxsub,求出含有n 个数据的一维数组的最大值及其所在位置(即下标);主函数中定义含有300 个元素的数组y,y[I]=10* cos ((3.0+I*I) / 5)(I=0,1,2R-R-299),调用上述函数,输出此数组的最大值及其所在位置。(注:此程序必须使用for 语句,不允许使用全局变量,不允许在maxsub 函数中输出)9.99927,0.00000

#include "stdio.h"

#include "math.h"

#define N 300

double maxsub(double *x, double n, double ave)

{ double max;

int i,j=0;

if(ave==0)

{ max=*x;

for(i=1; i

if(max<*(x+i))

{max=*(x+i); j++;}

156

return max;

}

else

}

void main()

{ double y[N], m, aver;

int i;

for(i=0; i

y[i]=10*cos((3.0+i*i)/5);

aver=maxsub(y, N, 0);

m=maxsub(y, N, aver);

printf("aver=%fnm=%fn",aver, m);

}

return j;

编一函数,统计一维整数组小于数组元素平均值的元素的个数;主函数定义x[50],x[i]=600*cos(i*0.35), 调用函数,158

输出小于数组元素平均值的元素的个数。。必须使用while 语句。 27.000000

#include "stdio.h"

14 / 18

(word完整版)c语言程序设计编程题库

#include "math.h"

#define N 50

float avernum(float y[],int n)

{float v,s=0;

int count=0,i=0;

while(i

{s+=y[i];i++;}

v=s/n;

i=0;

while(i

{if(y[i]

count++;

i++;

}

return(count);

}

void main()

{float x[N];

int i=0;

while(i

{ x[i]=600*cos(i*0.35);i++;}

printf("%fn",avernum(x,50));

}

编一函数,求有50个元素的一维整数组中最大值的位置;主函数中定义y[50],y[j]=600*sin(j*0.16),调用函数,输出最大值及其位置。要求必须使用for 语句。 599.941355 0.000000

#include "stdio.h"

#include "math.h"

double maxsub(double x[],int num,double max)

{

int i,j;

double m=0.00000;

m=x[0];

j=0;

if(max==0)

159

{for(i=1;i

if(x[i]>m)

{

m=x[i];j=i;

}

return (m);

}

else

return(j);

}

void main()

{ double a[50],max,m;

15 / 18

(word完整版)c语言程序设计编程题库

int i;

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

a[i]=600*sin(i*0.16);

max=maxsub(a,50,0);

m=maxsub(a,50,max);

printf("m=%f,J=%fn",max,m);

}

求一维实型数组中最大元素。要求:主函数中定义含有300个元素的数组x, x[i]=10* cos ((3.0+i*i ) /5)

(i=0,1,2……299),调用自定义函数qmax求出最大元素,然后在主函数中输出结果。要求必须使用 while 语句实现。

#include"math.h"

#include"stdio.h"

#define N 300

float qmax(float a[],int n)

{

Int i =1;

float max=a[0];

While(i

{ if(max

162

{ max=a[i];i++;}

return (max);

}

void main()

{

int i=0;

float x[N],max;

While(i

{ x[i]=10*cos(3.0+i*i)/5;

i++;}

max=qmax(x,N);

printf("%10.4fn",max);

}

求一维整型数组中的最小元素。要求:主函数定义数组y[50],y[j]=600*sin(j*0.16) (j=0,1,2……49),调用自定义函数qmin求出最小元素,最后在主函数中输出结果。要求必须使用 for语句实现。 -598

#include "stdio.h"

#include "math.h"

main()

{ int y[50],min, j;

int qmin(int x[50]);

163

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

y[j]=600*sin(j*0.16);

min=qmin(y);

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

}

int qmin(int x[50])

{ int i,min;

min=x[0];

16 / 18

(word完整版)c语言程序设计编程题库

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

if(x[i]

min=x[i];

return(min);

}

求一维整型数组中正数的和。要求:主函数定义数组a[10],从键盘输入十个数,调用自定义函数求出正数的和,然后

在主函数中输出结果. 要求必须使用 for语句。

#include”stdio.h”

void fun1(int n[10])

{

int i,sum=0;

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

{if(n[i]>0)

sum+=n[i]];

164

}

printf(“sum(+)=%d”,sum);

}

void main()

{

int a[10],i;

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

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

fun1(a);

}

求一维整型数组中负数的和。

要求:主函数定义数组a[10],从键盘输入十个数,调用自定义函数qsum求出负数

的和,然后在主函数中输出结果。要求必须使用 while 语句。

#include”stdio.h”

void qsum (int n[10])

{

int i=0,sum=0;

While(i<10)

{if(n[i]<0) qsum+=n[i];i++;}

return(qsum);

}

165

void main()

{

int a[10],i=0;ssum

while(i<10)

{scanf(“%d”,a[i]);i++;}

ssum=qsum (a);

printf(“ssum(-)=%d”,ssum);

}

191

定义函数qmin,函数功能是求包含10 个元素的一维整型数组b[10]中的最小元素。 在主函数定义数组并且输入10 个元

17 / 18

(word完整版)c语言程序设计编程题库

素的值,调用函数qmin 求出最小元素,最后在主函数中输出结果。要求使用do-while 语句实现。

18 / 18


本文标签: 函数 输入 输出