计算机程序设计基础编程习题.docx

上传人:b****6 文档编号:7915251 上传时间:2023-05-12 格式:DOCX 页数:25 大小:33.35KB
下载 相关 举报
计算机程序设计基础编程习题.docx_第1页
第1页 / 共25页
计算机程序设计基础编程习题.docx_第2页
第2页 / 共25页
计算机程序设计基础编程习题.docx_第3页
第3页 / 共25页
计算机程序设计基础编程习题.docx_第4页
第4页 / 共25页
计算机程序设计基础编程习题.docx_第5页
第5页 / 共25页
计算机程序设计基础编程习题.docx_第6页
第6页 / 共25页
计算机程序设计基础编程习题.docx_第7页
第7页 / 共25页
计算机程序设计基础编程习题.docx_第8页
第8页 / 共25页
计算机程序设计基础编程习题.docx_第9页
第9页 / 共25页
计算机程序设计基础编程习题.docx_第10页
第10页 / 共25页
计算机程序设计基础编程习题.docx_第11页
第11页 / 共25页
计算机程序设计基础编程习题.docx_第12页
第12页 / 共25页
计算机程序设计基础编程习题.docx_第13页
第13页 / 共25页
计算机程序设计基础编程习题.docx_第14页
第14页 / 共25页
计算机程序设计基础编程习题.docx_第15页
第15页 / 共25页
计算机程序设计基础编程习题.docx_第16页
第16页 / 共25页
计算机程序设计基础编程习题.docx_第17页
第17页 / 共25页
计算机程序设计基础编程习题.docx_第18页
第18页 / 共25页
计算机程序设计基础编程习题.docx_第19页
第19页 / 共25页
计算机程序设计基础编程习题.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机程序设计基础编程习题.docx

《计算机程序设计基础编程习题.docx》由会员分享,可在线阅读,更多相关《计算机程序设计基础编程习题.docx(25页珍藏版)》请在冰点文库上搜索。

计算机程序设计基础编程习题.docx

计算机程序设计基础编程习题

计算机程序设计基础(C语言)

编程练习题及参考答案

1.输入2个整数,求两数的平方和并输出。

#include

main()

{intta,b,s;

printf("pleaseinputa,b:

\n");

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

s=a*a+b*b;

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

}

2.输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。

#include

#definePI3.14

main()

{floatr,s,l;

printf("pleaseinputr:

\n");

scanf("%f”,&r);

if(r>=0)

{s=pi*r*r;

l=2*i*r;

printf("theareais%f\n",s);

printf("thecircumferenceis%f\n",l);}

else

printf("inputerror!

\n");

}

3、函数y=f(x)可表示为:

2x+1(x<0)

y=0(x=0)

2x-1(x>0)

编程实现输入一个x值,输出y值。

main()

{intx,y;

scanf(“%d”,&x);

If(x<0)y=2*x+1;

If(x>0)y=2*x-1;

If(x==0)y=0;

printf(“%d”,y);}

4、编写一个程序,从4个整数中找出最小的数,并显示此数。

main()

{inta,b,c,d,t;

scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);

if(a>b)

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

if(a>c)

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

if(a>d)

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

printf(“min=%d\n”,a);

}

5.有一函数当x<0时y=1,当x>0时,y=3,当x=0时y=5,编程,从键盘输入一个x值,输出y值。

main()

{intx,y;

scanf("%d",&x);

if(x<0)y=1;

elseif(x==0)y=5;

elsey=3;

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

6.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)

main()

{floatmax(floatx,floaty);

floata,b,m;

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

m=max(a,b);

printf("Maxis%f\n",m);

}

floatmax(floatx,floaty)

{

floattemp;

if(x

{temp=x;

x=y;

y=temp;

}

return(x);

}

7、从键盘输入你和你朋友的年龄,编成判断谁的年龄最大,并打印最大者的年龄。

#include

main()

{intyourAge,hisAge;

printf("Pleaseenteryourage:

");

scanf("%d",&yourAge);/*输入你的年龄yourAge*/

printf("Pleaseenteryourfriend'sage:

");

scanf("%d",&hisAge);/*输入你朋友的年龄hisAge*/

if(yourAge>=hisAge)

 {

printf("Youareolder!

Yourageis=%d\n",yourAge);

 }

if(hisAge>yourAge)

 {

printf("Yourfriendisolder!

HisAgeageis=%d\n",hisAge);

 }}

8、键盘输入2个加数,再输入答案,如果正确,显示“right”,否则显示“error”

#include“stdio.h”

main()

{inta,b,c;

printf(“pleaseinputaandb\n”);

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

printf(“pleaseinputtheanswerfora+b\n”);

scanf(%d”,&c);

if(c==a+b)

printf(“right\n”);

else

printf(“error\n”);

}

9.编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:

要求当输入每月上网小时数,显示该月总的上网费用(6分)

main()

{inthour;

floatfee;

printf(“pleaseinputhour:

\n”);

scanf(“%d”,&hour);

if(hour<=10)

fee=30;

elseif(hour>=10&&hour<=50)

fee=3*hour;

elsefee=hour*2.5;

printf(“Thetotalfeeis%f”,fee);

}

10.神州行用户无月租费,话费每分钟0.6元,全球通用户月租费50元,话费每分钟0.4元。

输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。

main()

{floata,x,y;

printf(“\n请输入您的话费:

”);

scanf(“%f,”,&a);

x=0.6*a;

y=50+0.4*a;

printf(“神州行话费为:

%f\n”,x);

printf(“全球通话费为:

%f\n”,y);

if(x>=y)

printf(“建议使用全球通”);

elseprintf(“建议使用神州行);

}

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

收入

税率

收入<=1000元部分

0%

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

5%

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

10%

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

15%

收入>6000元的部分

20%

输入某人的收入,计算出应纳税额及实际得到的报酬。

(7分)

(如需连续计算多个人的纳税情况,直到输入负数为止,程序应如何改进?

试写出程序)

#include“stdio.h”

main()

{

intgrade;

floatincome,tax,money;

printf(“pleaseinputyourincome\n”);

scanf(“%f”,&income);

if(income<0)

printf(“theinputiserror”);

else

{grade=(int)income/1000;

switch(grade)

{case0:

tax=0;break;

case1:

tax=(income-1000)*0.05;break;

case2:

tax=50+(income-2000)*0.1;break;

case3:

case4:

case5:

tax=150+(income-3000)*0.15;break;

default:

tax=600+(income-6000)*0.2;

}

money=income-tax;

printf(“\ntax=%f,money=%f”,tax,money);

}

}

12.从键盘上输入一个百分制成绩score,按下列原则输出其等级:

score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。

#include

main()

{

intdata;

chargrade;

printf("Pleaseenterthescore:

");

scanf("%d”,&data);

switch(data/10)

{case10:

case9:

grade=’A’;break;

case8:

grade=’B’;break;

case7:

grade=’C’;break;

case6:

grade=’D’;break;

default:

grade=’E’;

}

printf("thegradeis%c”,grade);

}

*13.编程设计一个简单的计算器程序。

从键盘输入2个操作数,1个运算符,当运算符为加(+)、减(-)、乘(*)、除(/)时,输出计算结果

#include

main()

{intdata1,data2;/*定义两个操作符*/

charop;/*定义运算符*/

printf("Pleaseentertheexpression:

");

scanf("%d%c%d",&data1,&op,&data2);/*输入运算表达式*/

switch(op)/*根据输入的运算符确定要执行的运算*/

{case'+':

/*处理加法*/

printf("%d+%d=%d\n",data1,data2,data1+data2);

break;

case'-':

/*处理减法*/

printf("%d-%d=%d\n",data1,data2,data1-data2);

break;

case'*':

/*处理乘法*/

printf("%d*%d=%d\n",data1,data2,data1*data2);

break;

case'/':

/*处理除法*/

if(0==data2)/*为避免出现溢出错误,检验除数是否为0*/

printf("Divisionbyzero!

\n");

else

printf("%d/%d=%d\n",data1,data2,data1/data2);

break;

default:

printf("Unknownoperator!

\n");

}

}

14.从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。

main()

{inta[10],i,p=0,n=0,z=0;

printf(“pleaseinputnumber”);

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

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

if(a[i]>0)

p++;

elseif(a[i]<0)

n++;

elsez++}

printf(“正数:

%5d,负数:

%5d,零:

%5d\n”,p,n,z);

}

}

15、编程序实现求1-200之间的所有数的乘积并输出。

#include

main()

{inti,sum=1

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

sum=sum*i;

printf(“thesumofoddis:

%d”,sum);

}

16.从键盘上输入10个数,求其平均值。

main()

{

inta[10],i,s=0;

floatave;;

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

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

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

sum+=a[i];

ave=(float)sum/10;

printf("ave=%f\n",ave);

}

17、编程序实现求1-1000之间的所有奇数的和并输出。

#include

main()

{inti,sum=0;

for(i=1;i<1000;i=i+2)

sum=sum+i;

printf(“thesumofoddis:

%d”,sum);

}

18.有一个分数序列:

2/1,3/2,5/3,8/5,13/8,21/13……

编程求这个序列的前20项之和。

main()

{

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",s);

}

19.用数组实现以下功能:

输入5个学生成绩,而后求出这些成绩的平均值并显示出来。

main()

{floata[5],i;

floats=0;

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

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

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

s=s+a[i];

printf(“result=%f”,s/5);

}

*20、用循环的方法构造一个5行5列的二维数组,使主对角线上的变量为1,其它为0,并将数组中所有项按行按列显示出来。

main()

{inta[5][5],i,j,s=0;

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

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

if(i==j)a[i][j]=1;

elsea[i][j]=0;

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

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

{if(j==0)printf(“\n”);

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

}

}

21.求一个3×3矩阵对角线元素之和。

从键盘输入矩阵元素的值并输出和的值.

main()

{inta[3][3],sum=0;

inti,j;

printf("Enterdata:

\n");

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

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

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

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

sum=sum+a[i][i];

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

}

22.输入n的值,n代表行数,输出如图所示的图形。

(6分)

*

***

*****

*******(此图为n=4时的输出结果)

#include

main()

{inti,j,k;

for(i=1;i<=4;i++)/*控制行数*/

{for(k=1;k<=(2*i-1);k++)/*控制每行输出的*号个数*/

{printf("*");}

printf("\n");}}/*输出一行后换行*/

23、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。

(提示:

用数组存放成绩数据)

#include

#defineM30

main()

{floatscore[M],max,min,aver;

inti;

printf(“pleaseinputscore:

\n”);

for(i=0;i

scanf(“%f”,&score[i]);

max=score[0];

min=score[0];

aver=score[0];

for(i=1;i

{if(max

if(min>score[i])min=score[i];

aver+=score[i];

}

printf(“max=%f,min=%f,aver=%f”,max,min,aver/M);

}

24.从键盘输入某班学生某门课的成绩及其学号(班级人数最多40人,具体人数由键盘输入),输出该班最高分和最低分及其学生学号;并输出该班该课程的总分和平均分。

请编写程序。

#include

#defineARR_SIZE40

main()

{floatscore[ARR_SIZE],maxScore,minScore,sum;

intn,i;

longmaxNum,minNum,num[ARR_SIZE];

printf("Pleaseentertotalnumber:

");

scanf("%d",&n);

printf("Pleaseenterthenumberandscore:

\n");

for(i=0;i

scanf("%ld%f",&num[i],&score[i]);

maxScore=score[0];minScore=score[0];

maxNum=num[0];minNum=num[0];

sum=score[0];

for(i=1;i

{if(score[i]>maxScore)

{maxScore=score[i];

maxNum=num[i];

}

elseif(score[i]

{minScore=score[i];

minNum=num[i];

}

sum=sum+score[i];

}

printf("maxScore=%.0f,maxNum=%ld\n",maxScore,maxNum);

printf("minScore=%.0f,minNum=%ld\n",minScore,minNum);

printf("sum=%.1f,average=%.1f\n",sum,sum/n);

}

*25.将一个有5个元素的数组中的值(整数)按逆序重新存放。

例:

原来顺序为:

8、6、5、4、1,要求改为1、4、5、6、8

defineN5

main()

{inta[N],I,temp;

printf(“enterarraya:

\n”);

for(I=0;I

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

for(I=0;I

{temp=a[i];

a[i]=a[N-I-1];

a[N-I-1]=temp;

}

printf(“\nNow,arraya:

\n”);

for(I=0;I

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

printf(“\n”);

}

*26.从键盘上输入一个2*3的矩阵,将其转置后形成3*2的矩阵输出。

main()

{inta[2][3],b[3][2],i,j;

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

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

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

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

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

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

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

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

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

printf("\n”);

}

}

*27.编写两个函数分别求两个整数的最小公倍数和最大公约数,用主函数调用这两个函数并输出结果。

两个整数由键盘输入。

#include"stdio.h"

mingb(x,y)

intx,y;

{intz,i,t;

z=1;

i=1;

if(x>y)

{t=x;x=y;y=t;}

while(z<=x*y)

{

z=i*y;

if((z%x==0)&&(z%y==0))break;

i++;

}

return(z);

}

maxgy(x,y)

intx,y;

{intz,t;

if(x>y)

{t=x;x=y;y=t;}

z=x;

while(z>1)

{if((x%z==0)&&(y%z==0))break;

z--;

}

return(z);

}

main()

{

inta,b,c;

charch;

printf("\nmingb

(1)/maxgy

(2)?

");

ch=getchar();

printf("\ninput:

");

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

if(ch=='1')c=mingb(a,b);

elseif(ch='2')c=maxgy(a,b);

printf("theresultis%d",c);

getch();

}

*28.输入一个3*3矩阵,求出其转置矩阵,并求出两个矩阵的和.

main()

{

inta[3][3];

intb[3][3];

intc[3][3]

inti,j;

printf(“pleaseinput6numbers!

”)

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

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

{

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

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

}

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

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

{

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

}

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

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

{

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

}

}

29、从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。

(提示:

用数组存放成绩数据)

main()

{inta[10];

inti,j,temp;

printf("inputscore:

\n");

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

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

printf("\n");

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

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

if(a[j]

{temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

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

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

}

30.定义一个5行3列的数组,从键盘输入各数组元素的值,计算各数组元素之和。

#include

main()

{inti,j,a[5][3];

printf(“Enterdata:

\n”);

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

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

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2