2022年2022年计算机程序设计基础编程习题 .pdf

上传人:C****o 文档编号:39732981 上传时间:2022-09-07 格式:PDF 页数:18 大小:120.26KB
返回 下载 相关 举报
2022年2022年计算机程序设计基础编程习题 .pdf_第1页
第1页 / 共18页
2022年2022年计算机程序设计基础编程习题 .pdf_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《2022年2022年计算机程序设计基础编程习题 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机程序设计基础编程习题 .pdf(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、语言)计算机程序设计基础(C 编程练习题及参考答案个整数,求两数的平方和并输出。输入 21.#include main()a,b,s;intt printf(please input a,b:n);scanf(%d%d”,&a,&b);s=a*a+b*b;is%dn,s);printf(he result 0 时,计算并输出圆的面积和周长,否则,输出提示信息。)当 r 2.输入一个圆半径(r#include#define PI 3.14 main()float r,s,l;printf(please input r:n);scanf(%f”,&r);if(r=0)s=pi*r*r;l=2*i*

2、r;printf(he area is%fn,s);printf(he circumference is%fn,l);else printf(input error!n);y=f(x)、函数 可表示为:3 2x+1 (x0)编程实现输入一个x 值,输出y 值。main()int x,y;scanf(“%d”,&x);If(x0)y=2*x-1;If(x=0)y=0;printf(“%d”,y);并显示此数。,个整数中找出最小的数4 从,、编写一个程序4main()int a,b,c,d,t;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 18 页 -scanf(“%d,%d,%d

3、,%d”,&a,&b,&c,&d);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(ad)t=a;a=d;d=t;printf(“min=%d n”,a);5有一函数当x0 时,y=3,当 x=0 时 y=5,编程,从键盘输入一个x 值,输出 y 值。main()int x,y;scanf(%d,&x);if(x0)y=1;else if(x=0)y=5;else y=3;牰湩晴尨?搥礬層湜?紻6 从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)main()float max(float x,float y);float a,b,

4、m;scanf(%f,%f,&a,&b);m=max(a,b);printf(Max is%fn,m);float max(float x,float y)float temp;if(xy)temp=x;x=y;y=temp;return(x);7、从键盘输入你和你朋友的年龄,编成判断谁的年龄最大,并打印最大者的年龄。#include main()int yourAge,hisAge;printf(Please enter your age:);scanf(%d,&yourAge);/*输入你的年龄yourAge*/名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 18 页 -pr

5、intf(Please enter your friends age:);scanf(%d,&hisAge);/*输入你朋友的年龄hisAge*/if(yourAge=hisAge)printf(You are older!Your age is=%dn,yourAge);if(hisAge yourAge)printf(Your friend is older!HisAge age is=%dn,hisAge);8、键盘输入2 个加数,再输入答案,如果正确,显示“right”,否则显示“error”#include“stdio.h”main()int a,b,c;printf(“please

6、 input a and bn”);scanf(%d,%d”,&a,&b);printf(“please input the answer for a+bn”);scanf(%d”,&c);if(c=a+b)printf(“rightn”);else printf(“errorn”);9.编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:30 元?10 小时?小时 50 每小时费用?3 元?10?50 元每小时 2.5 小时?)分(6 显示该月总的上网费用,要求当输入每月上网小时数main()int hour;float fee;pri ntf(“please n”);input h

7、our:scanf(“%d”,&hour);if(hour=10&hour=y)printf(“建议使用全球通”);else printf(“建议使用神州行);11 个人所得税计算,应纳税款的计算公式如下:收入税率0 收入 1000元的部分 2000元收入10 收入 3000 元2000元的部分15 3000 收入元的部分 6000元 20 6000收入元的部分输入某人的收入,计算出应纳税额及实际得到的报酬。(7 分)(如需连续计算多个人的纳税情况,直到输入负数为止,程序应如何改进?试写出程序)#include“stdio.h”main()int grade;float income,tax,

8、money;printf(“please input your incomen”);scanf(“%f”,&income);if(income0)printf(“the input is error”);else grade=(int)income/1000;switch(grade)case 0:tax=0;break;case 1:tax=(income-1000)*0.05;break;case 2:tax=50+(income-2000)*0.1;break;case 3:case 4:case 5:tax=150+(income-3000)*0.15;break;default:ta

9、x=600+(income-6000)*0.2;money=income-tax;printf(“n tax=%f,money=%f”,tax,money);12.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score90,等级为A;80 score90,等级为 B;70 score80,等级为 C;60 score70,等级为 D;score60,等级为 E。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 18 页 -#include main()int data;char grade;printf(Please enter the score:);scanf(

10、%d”,&data);switch(data/10)case 10:case 9:grade=A;break;case 8:grade=B;break;case 7:grade=C;break;case 6:grade=D;break;default:grade=E;printf(he grade is%c”,grade);*13.编程设计一个简单的计算器程序。从键盘输入2 个操作数,1 个运算符,当运算符为加(+)、减(-)、乘(*)、除(/)时,输出计算结果#include main()int data1,data2;/*定义两个操作符*/char op;/*定义运算符*/printf(P

11、lease enter the expression:);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/:/*处

12、理除法*/if(0=data2)/*为避免出现溢出错误,检验除数是否为0*/printf(Division by zero!n);else printf(%d/%d=%d n,data1,data2,data1/data2);break;default:名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 18 页 -printf(Unknown operator!n);14.从键盘输入10 个整数,统计其中正数、负数和零的个数,并在屏幕上输出。main()int a10,i,p=0,n=0,z=0;printf(“please input number”);for(i=0;i0)p+

13、;else if(ai0)n+;else z+printf(“正数:,负数:,零:n”,p,n,z);15、编程序实现求1-200之间的所有数的乘积并输出。#include main()int i,sum=1 for(i=1;i200 i=i+1)sum=sum*i;printf(“the sum of odd is:%d”,sum);16.从键盘上输入10 个数,求其平均值。main()int a10,i,s=0;float ave;for(i=0;i10;i+)scanf(“%d”,&ai);for(i=0;i10;i+)sum+=ai;ave=(float)sum/10;printf(a

14、ve=%fn,ave);17、编程序实现求1-1000之间的所有奇数的和并输出。#include main()int i,sum=0;for(i=1;i1000;i=i+2)sum=sum+i;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 18 页 -printf(“the sum of odd is:%d”,sum);18.有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13编程求这个序列的前20 项之和。main()int i,t,n=20;float a=2,b=1,s=0;for(i=1;i=n;i+)s=s+a/b;t=a;a=a+b;b=t;prin

15、tf(sum=%9.6f,s);19.用数组实现以下功能:输入5 个学生成绩,而后求出这些成绩的平均值并显示出来。main()float a5,i;float s=0;for(i=0;i5;i+)scanf(“%f”,&ai);for(i=0;i5;I+)s=s+ai;printf(“result=%f”,s/5);*20、用循环的方法构造一个5 行 5 列的二维数组,使主对角线上的变量为1,其它为0,并将数组中所有项按行按列显示出来。main()int a55,i,j,s=0;for(i=0;I5;i+)for(j=0;j5;j+)if(i=j)aij=1;else aij=0;for(i=

16、0;i5;i+)for(j=0;j5;j+)if(j=0)printf(“n”);printf(“%d ”,aij);21 求一个 33 矩阵对角线元素之和。从键盘输入矩阵元素的值并输出和的值.main()int a33,sum=0;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 18 页 -int i,j;printf(Enter data:n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);for(i=0;i3;i+)sum=sum+aii;printf(sum=%d,sum);22.输入 n 的值,n 代表行数,输出如图所示的图形。(

17、6 分)*(此图为 n4 时的输出结果)#include main()i,j,k;int for(i=1;i=4;i+)/*控制行数*/for(k=1;k=(2*i-1);k+)/*控制每行输出的*号个数*/printf(*);printf();/*输出一行后换行*/23、从键盘输入30 名学生的成绩数据,求其中的最高分、最低分和平均分。(提示:用数组存放成绩数据)#include#define M 30 main()float scoreM,max,min,aver;int i;printf(“please input score:n”);for(i=0;iM;i+)scanf(“%f”,&

18、scorei);max=score0;min=score0;aver=score0;for(i=1;iM;i+)if(max scorei)min=scorei;aver+=scorei;printf(“max=%f,min=%f,aver=%f”,max,min,aver/M);24.从键盘输入某班学生某门课的成绩及其学号(班级人数最多40 人,具体人数由键盘输入),名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 18 页 -输出该班最高分和最低分及其学生学号;并输出该班该课程的总分和平均分。请编写程序。#include#define ARR_SIZE 40 main()flo

19、at scoreARR_SIZE,maxScore,minScore,sum;int n,i;long maxNum,minNum,numARR_SIZE;printf(Please enter total number:);scanf(%d,&n);printf(Please enter the number and score:n);for(i=0;in;i+)scanf(%ld%f,&numi,&scorei);maxScore=score0;minScore=score0;maxNum=num0;minNum=num0;sum=score0;for(i=1;i maxScore)max

20、Score=scorei;maxNum=numi;if(scorei minScore)else minScore=scorei;minNum=numi;sum=sum+scorei;printf(maxScore=%.0f,maxNum=%ldn,maxScore,maxNum);printf(minScore=%.0f,minNum=%ldn,minScore,minNum);printf(sum=%.1f,average=%.1fn,sum,sum/n);整数)按逆序重新存放。将一个有*25.5个元素的数组中的值(8 1、4、6、5,要求改为、例:原来顺序为:86、54、1define

21、N 5 main()int aN,I,temp;printf(“enter array a:n”);for(I=0;IN;I+)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 18 页 -i);scanf(“%d”,$a for(I=0;IN;I+)temp=ai;ai=aN-I-1;aN-I-1=temp;n”);pri ntf(“n Now,array a:for(I=0;IN;I+)i);pri ntf(“M”,a n”);pri ntf(“的矩阵输出。3*2的矩阵,将其转置后形成2*3 从键盘上输入一个*26.main()int a23,b32,i,j;for(i=0;i

22、2;i+)for(j=0;j3;j+)scanf(“%d”,&aij);for(i=0;i3;i+)for(j=0;j2;j+)bij=aji;for(i=0;i3;i+)for(j=0;jy)t=x;x=y;y=t;while(zy)t=x;x=y;y=t;z=x;while(z1)if(x%z=0)&(y%z=0)break;z-;return(z);main()int a,b,c;char ch;printf(mingb(1)/maxgy(2)?);ch=getchar();printf(input:);scanf(%d,%d,&a,&b);if(ch=1)c=mingb(a,b);el

23、se if(ch=2)c=maxgy(a,b);printf(he result is%d,c);getch();*28.输入一个3*3 矩阵,求出其转置矩阵,并求出两个矩阵的和.main()int a33;int b33;int c33 int i,j;printf(“please input 6 numbers!”)for(i=1;i3;i+)for(j=1;j3;j+)scanf(“%d”,&aij);bji=aij;for(i=1;i3;i+)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 18 页 -for(j=1;j3;j+)cij=aij+bij;for(i=1;

24、i3;i+)for(j=1;j3;j+)printf(“%d”,aij);29、从键盘输入10 名学生的成绩数据,按成绩从高到低的顺序排列并输出。(提示:用数组存放成绩数据)main()int a10;int i,j,temp;printf(input score:n);for(i=0;i10;i+)scanf(%d,&ai);printf();for(i=1;i10;i+)for(j=0;j9;j+)if(ajaj+1)temp=aj;aj=aj+1;aj+1=temp;for(i=0;i10;i+)printf(%d,ai);30.定义一个5 行 3 列的数组,从键盘输入各数组元素的值,计

25、算各数组元素之和。#include main()int i,j,a53;printf(“Enter data:n”);for(i=0;i5;i+)for(j=0;j3;j+)scanf(“%d”,&aij);for(i=0;i5;i+)for(j=0;j3;j+)sum=sum+aij;printf(“sum=n”,sum);31、编写程序,交换两个数组中的对应元素。名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 18 页 -#include#define N 20 main()int aN,bN,i,j,temp;printf(“please input a:n”);for(

26、i=0;iN;i+)scanf(“%d”,&ai);n”);input b:ntf(“please pri for(j=0;jN;j+)scanf(“%d”,&bi);for(i=0;iN;i+)temp=ai;ai=bi;bi=temp;for(j=0;jN;j+)printf(“%d,”,aj);printf(“n”);for(j=0;jN;j+)printf(“%d,”,bj);*32、从键盘上输入一个4*3的整型数组,找出数组中的最小值及其在数组中的下标。#include main()int a43,i,j,min,m,n;printf(Please enter data:);for(

27、i=0;i4;i+)for(j=0;j3;j+)scanf(“%d”,&aij);min=a00;m=0;n=0;for(i=0;i4;i+)for(j=0;j3;j+)if(aijmin)min=aij;m=i;n=j;printf(he min is%dn,min);printf(posion is%d%d n,m,n);33 编程实现如下功能:从键盘输入一行字符,统计其中大写英文字符,小写英文字符和其他字符的个数。#include 名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 18 页 -#include#define ARR_SIZE 80 main()char st

28、rARR_SIZE;int len,i,letter=0,digit=0,space=0,others=0;printf(Please input a string:);gets(str);len=strlen(str);for(i=0;i=a&stri=A&stri=0&stri=9)digit+;/*统计数字字符*/else others+;/*统计其它字符的个数*/printf(English character:%dn,letter);printf(digit character:%dn,digit);printf(other character:%dn,others);*34 编程实

29、现如下功能:1)在主函数中,实现从键盘输入10 名学生某门课的成绩,保存在一维数组中;调用排序函数;对排序后的数组中的元素按从高到低打印输出。2)编写排序函数,使用数组名做函数参数,实现对该成绩的排序。#include#define ARR_SIZE 40 void Sort(float score,long num,int n);main()float scoreARR_SIZE;int n,i;long numARR_SIZE;printf(Please enter total number:);scanf(%d,&n);printf(Please enter the number and

30、 score:n);for(i=0;in;i+)scanf(%ld%f,&numi,&scorei);Sort(score,num,n);printf(Sorted results:n);名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 18 页 -for(i=0;in;i+)printf(%ldt%4.0fn,numi,scorei);void Sort(float score,long num,int n)int i,j;float temp1;long temp2;for(i=0;in-1;i+)for(j=i+1;j scorei)temp1=scorej;scorej=

31、scorei;scorei=temp1;/*交换学号*/temp2=numj;numj=numi;numi=temp2;*35 编程实现如下功能:实现从键盘输入两个字符串,分别存入两个不同的字符数组中;将两个字符串连接为一个字符串,并打印输出连接后的整个字符。#include#include#define ARR_SIZE 80 void MyStrcat(char dstStr,char srcStr);main()char sARR_SIZE,tARR_SIZE;printf(Please enter source string:);gets(s);printf(Please enter

32、destination string:);gets(t);MyStrcat(s,t);printf(The concatenate string is:);puts(s);void MyStrcat(char dstStr,char srcStr)int i=0,j;while(dstStri!=0)i+;名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 18 页 -for(j=0;srcStrj!=0;j+,i+)dstStri=srcStrj;dstStri=0;*36、猜数游戏。系统随机产生一个整数,通过键盘输入数据猜数,猜对为止,并要求统计猜的次数。注:rand()函数可

33、以产生032767间的正整数,程序中需包含stdlib.h。#include#include main()int magic;int guess;int counter;magic=rand()%100+1;counter=0;do printf(Please guess a magic number:);scanf(%d,&guess);counter+;if(guess magic)printf(Wrong!Too high!n);else if(guess magic)printf(Wrong!Too low!n);while(guess!=magic);printf(Right!n);

34、printf(counter=%dn,counter);37.输入两个整数,利用指针变量作为函数参数,编程实现两数互换功能,并将交换后的数据重新输出。#include void S*x,int*y);main()int a,b;printf(Please enter a,b:);scanf(%d,%d,&a,&b);printf(Before swap:a=%d,b=%dn,a,b);S,&b);名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 18 页 -printf(After swap:a=%d,b=%dn,a,b);void S*x,int*y)int temp;temp

35、=*x;*x=*y;*y=temp;38.随机输入若干个学生的体重,以输入负数或零结束,分别求最重和最轻的体重,并计算平均体重。#include main()int n=0;float weight,max=0,min=10,sum=0,ave;printf(“please input the weight:”);scanf(“%f”,&weight);while(weight0)sum=weight+sum;n+;if(weightmax)max=weight;scanf(“%f”,&weight);if(n0)ave=sum/n;printf(maxweight=%fn ,max);pri

36、ntf(minweight=%fn,min);printf(ave=%fn,ave);else printf(NO VALID DATA”);39.输入 m,k 的值,编程求下面表达式的值:(要求编写一个求阶乘的函数,调用函数实现本题)k!?p(m?k)!#include unsigned long Factorial(unsigned int number);main()unsigned int m,k;double p;printf(Please input m,k:);scanf(%u,%u,&m,&k);p=(double)Factorial(k)/Factorial(m-k);pri

37、ntf(p=%fn,p);unsigned long Factorial(unsigned int number)名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 18 页 -unsigned long i,result=1;for(i=2;i=number;i+)result*=i;return result;*40.编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。#include int IsPrimeNumber(int number)int i;if(number=1)return 0;for(i=2;isqrt(number);i+)if(number%i)=0)return 0;return 1;main()int n;printf(“Please input n:”);scanf(“%d”,&n);if(IsPrimeNumber(n)printf(“n%d is a Prime Number”,n);me Number”,n);n%d is not a Printf(“pri else 名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 18 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com