收藏 分销(赏)

计算机程序设计基础(C语言)编程习题.doc

上传人:精*** 文档编号:2493410 上传时间:2024-05-30 格式:DOC 页数:17 大小:119.54KB
下载 相关 举报
计算机程序设计基础(C语言)编程习题.doc_第1页
第1页 / 共17页
计算机程序设计基础(C语言)编程习题.doc_第2页
第2页 / 共17页
计算机程序设计基础(C语言)编程习题.doc_第3页
第3页 / 共17页
计算机程序设计基础(C语言)编程习题.doc_第4页
第4页 / 共17页
计算机程序设计基础(C语言)编程习题.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

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

2、nput r:n”); scanf(”%f”,&r);if (r=0) s=pir*r; l=2*ir ; printf(the area is %fn”,s);printf(the circumference is %fn”,l);else printf(”input error!n); 3、函数y=f(x)可表示为: 2x+1 (xb) 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=1,当x0时,y=3,当x=0时y=5,编程,从键盘输入一个x值,

3、输出y值.main()int x,y;scanf(d,x);if (x0) y=1;else if(x=0) y=5;else y=3;printf(x=%d,y=dn”,x,y);6从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)main()float max(float x,float y); float a,b,m;scanf(”f,%f,a,&b);m=max(a,b);printf(Max is fn,m);float max(float x,float y)float temp;if (xmain()int yourAge, hisAge;prin

4、tf(”Please enter your age:);scanf(d, yourAge); /输入你的年龄yourAge/printf(”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个加

5、数,再输入答案,如果正确,显示“right”,否则显示“error”include “stdio.hmain( )int a,b,c; printf(“please 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. 编一程序每个月根据每个月上网时间计算上网费用,计算方法如下: 要求当输入每月上网小时数,显示该月总的上网费用(6分)main() in

6、t hour; float fee; printf(“please input hour:n”); scanf(“d”,&hour); if(hour=10hour=50) fee=3hour; else fee=hour2.5; printf(“The total fee is f,fee);10.神州行用户无月租费,话费每分钟0。6元,全球通用户月租费50元,话费每分钟0。 4元。输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。 main() float a,x,y; printf(“n请输入您的话费:”); scanf(“%f,”,a); x= 0。6*a; y=50+0

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

8、rade; float income,tax,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+(income2000)*0.1;break; case 3 :case 4 :case 5 : tax=

9、150+(income-3000)0.15;break;default: tax=600+(income6000)*0.2; money=income-tax; printf(“n tax=%f, money=%f,tax, money); 12.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score90,等级为A;80score90,等级为B;70score80,等级为C;60scoremain()int data; char grade; printf(”Please enter the score:);scanf(”%d”, &data); switch(data/10)

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(”the grade is %c,grade);13。 编程设计一个简单的计算器程序。从键盘输入2个操作数,1个运算符,当运算符为加(+)、减(-)、乘(*)、除(/)时,输出计算结果 include main() int data1, data2; /定义两个操作符/char op; /*定义运算符*/printf(Please en

11、ter the expression:);scanf(”d%cd, 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 * dat

12、a2); break;case /: /*处理除法*/if (0 = data2) /*为避免出现溢出错误,检验除数是否为0*/printf(Division by zero!n”);else printf(”%d / d = d n, data1, data2, data1 / data2); break;default: printf(”Unknown operator! n);14. 从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。main( ) int a10, i,p=0,n=0,z=0; printf(“please input number”); for(i=

13、0;i0) p+;else if (ai0) n+;else z+ printf(“正数:5d, 负数:5d,零:%5dn”,p,n,z);15、编程序实现求1200之间的所有数的乘积并输出。#include stdio。h main( ) int i, sum=1 for(i=1; i200 i=i+1) sum=sumi; 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

14、+) sum+=ai; ave=(float)sum/10;printf(ave = fn”, ave); 17、编程序实现求11000之间的所有奇数的和并输出。 include main( ) int i, sum=0; for(i=1; i1000; i=i+2) sum=sum+i; 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;

15、a=a+b;b=t; printf(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;e

16、lse aij=0;for(i=0;i5;i+)for(j=0;j5;j+)if(j= =0) printf(“n”);printf(“%d ”, aij);21求一个33矩阵对角线元素之和。从键盘输入矩阵元素的值并输出和的值.main() int a33,sum=0; 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代表行数,输出如图所示的图形。(6分) * * * *

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

18、ase input score: n”); for(i=0; iM ; i+) scanf(“f”, &scorei); max=score0; min=score0; aver=score0; for(i=1; iM; i+) if (max scorei) max= scorei; if (minscorei) min=scorei; aver+=scorei; printf(“max=%f, min=%f,aver=%f”, max, min, aver/M);24。 从键盘输入某班学生某门课的成绩及其学号(班级人数最多40人,具体人数由键盘输入),输出该班最高分和最低分及其学生学号;并

19、输出该班该课程的总分和平均分。请编写程序。include stdio.hdefine ARR_SIZE 40main() float 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(ldf, numi, scorei); maxScore = scor

20、e0;minScore= score0;maxNum = num0; minNum= num0; sum=score0;for (i=1; i maxScore) maxScore = scorei; maxNum = numi; else if (scorei minScore) minScore = scorei; minNum = numi; sum=sum+scorei;printf(maxScore = %.0f, maxNum = %ldn, maxScore, maxNum); printf(”minScore = %.0f, minNum = %ldn, minScore, m

21、inNum);printf(sum = %.1f, average = .1fn, sum, sum/n);*25。将一个有5个元素的数组中的值(整数)按逆序重新存放。例: 原来顺序为:8、6、5、4、1,要求改为1、4、5、6、8 define N 5main() int aN,I,temp; printf(“enter array a:n”); for(I=0;IN;I+) scanf(“%d”,ai); for(I=0;IN;I+) temp=ai; ai=aN-I1; aNI1=temp; printf(“n Now, array a:n”); for(I=0;IN;I+) print

22、f(“4d”,ai); printf(“n); 26.从键盘上输入一个2*3的矩阵,将其转置后形成32的矩阵输出。 main() int a23, b32,i,j; for(i=0;i2;i+) for(j=0;j3;j+) scanf(“d”,&aij); for(i=0;i3;i+) for(j=0;j2;j+) bij=aji; for(i=0;iy) t=x;x=y;y=t;while(zy) t=x;x=y;y=t;z=x;while(z1) if((xz=0)&(yz=0)) break; z-;return(z);main()int a,b,c;char ch;printf(”n

23、mingb(1)/maxgy(2)?”);ch=getchar();printf(ninput:);scanf(”%d,d”,&a,&b);if(ch=1) c=mingb(a,b);else if(ch=2) c=maxgy(a,b);printf(the result is d,c);getch();28. 输入一个3*3矩阵,求出其转置矩阵,并求出两个矩阵的和。main()int a33;int b33;int c33int i,j;printf(“please input 6 numbers!”)for (i=1;i3;i+)for(j=1;j3;j+)scanf(“%d,aij);b

24、ji=aij;for (i=1;i3;i+)for(j=1;j3;j+)cij=aij+bij;for (i=1;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(n);for(i=1;i10;i+)for(j=0;j9;j+)if(ajaj+1)temp=aj; aj=aj+1; aj+1=t

25、emp;for(i=0;i10;i+) printf(d,”,ai);30. 定义一个5行3列的数组,从键盘输入各数组元素的值,计算各数组元素之和。#include stdio.hmain( )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=5dn”,sum);31、编写程序,交换两个数组中的对应元素。 includestdio.h #define N 20 main(

26、 ) int aN, bN, i, j, temp; printf(“please input a:n); for(i=0; iN; i+) scanf(“d”, &ai); printf(“please input b:n”); 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的整型数组,找出数组中的最

27、小值及其在数组中的下标.include main() int a43, i , j ,min,m,n; printf(Please enter data:); for (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(the min is %dn, min);printf(posion is d %d n, m,n);33编程实现如下功能:从键盘输入一行字符,统计

28、其中大写英文字符,小写英文字符和其他字符的个数.include stdio.h#include = a & stri = z | stri = A stri = 0 & stri #define ARR_SIZE 40void 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 score:

29、n); for (i=0; in; i+) scanf(”ldf,&numi,scorei); Sort(score, num, n); printf(”Sorted results:n); 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; in1; i+) for (j=i+1; jn; j+) if (scorej scorei) temp1 = scorej; scorej

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

31、(s);printf(Please enter 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+; for (j=0; srcStrj!=0; j+, i+) dstStri = srcStrj; dstStri = 0;*36、猜数游戏.系统随机产生一个整数,通过键盘输入数据猜数,猜对为止,并要求统计猜的次数。注:rand()函数可以产生032767间的正整数,程序中需包含stdlib。h。#include #include main() int magic;

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服