




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机程序设计基础(c语言)习题编程题计算机程序设计基础(C语言)编程练习题及参考答案1.2.输入2个整数,求两数的平方和并输出。#include <stdio.h>main() intt a ,b,s;printf("please input a,b:n");scanf("%d%d ” ,&a,&b);s=a*a+b*b;printf("the result is %dn",s);输出提示信息。输入一个圆半径(r)当r> =0时,计算并输出圆的面积和周长,否#include <stdio.h>#d
2、efine PI 3.14 <stdio.h>main() float r ,s , l;printf("please input r:n");scanf("%f " ,&r);if (r>=0)s=pi*r*r;l=2*i*r ;printf("the area is %fn",s);printf("the circumference is %fn",l);elseprintf("input error!n");、函数y=f(x)可表示为:2x+1 (x<0)y
3、= 0(x=0)2x-1 (x>0)I编程实现输入一个x值,车出y值。main()int x,y;scanf( " %d" ,&x);If(x<0)y=2*x+1;If(x>0)y=2*x-1;If(x=0) y=0;pri ntf( " %d" ,y);4、编写一个程序,从4个整数中找出最小的数,并显示此数。main()int a,b,c,d,t;scanf (" %d,%d,%d,%d” ,&a,&b,&c,&d);if (a>b)t=a; a=b; b=t;if (a>
4、c)t=a; a=c; c=t;if (a>d)t=a; a=d; d=t;printf ( "m n" ,a); 5 .有一函数当 x<0时y=1 ,当x>0时,y=3 ,当x=0时y=5 ,编程,从键盘输入一个x值,输出y值。main()int x,y;scanf("%d",&x);if (x<0) y=1;else if(x=0) y=5;else y=3;printf("x=%d,y=%dn",x,y);6 .从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)ma
5、in()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 (x<y)temp=x;x=y;y=temp;return(x);7、从键盘输入你和你朋友的年龄,编成判断谁的年龄最大,并打印最大者的年龄。#include <stdio.h>main() int yourAge, hisAge;printf(&qu
6、ot;Please enter your age:");scanf("%d", &yourAge);/* 输入你的年龄 yourAge*/printf("Please enter your friend's age:");scanf("%d", &hisAge);/* 输入你朋友的年龄hisAge*/if (yourAge >= hisAge)printf("You are older! Your age is = %dn", yourAge);if (hisAge >
7、 yourAge)printf("Your friend is older! HisAge age is = %dn", hisAge);8、键盘输入2个加数,再输入答案,如果正确,显示 “pht ;否则显示“ error#i ncludei'ostd "main()int a,b,c;pri ntf( " pleasen");scanf (%d,%d" ,&a,&b);pri ntf( " pleasen");scanf (%d" ,&c);if (c=a+b)pri n
8、tf("r n");elsepri ntf(" error");9.编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:30元W10小时费用=,每小时3元 10-50小时、每小时2.5元A 50小时要求当输入每月上网小时数,显示该月总的上网费用(6分)main() int hour;float fee;pri ntf( " pleasen");3计算机程序设计基础(c语言)习题编程题scanf( " %d” ,&hour);if(hour=10)fee=30;else if(hour=10&&
9、hour=50)fee=3*hour;else fee=hour*2.5;pri ntf( " The total fees %f " fee);10 .神州行用户无月租费,话费每分钟 0.6元,全球通用户月租费 50元,话费每分钟0. 4元。输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。main()float a,x,y;pri ntf( n"请输入您的话费:”);scanf( " %f, " ,&a);x= 0.6*a;y=50+0.4*a;pri ntf (神州行话费为 n” ,x);pri ntf (全球通话费
10、为n” ,y);if (x=y)pri ntf(建议使用全球通”);else pri ntf(建议使用神州行); 11 .个人所得税计算,应纳税款的计算公式如下:收入税率收入=1000 兀郃分0%2000 元=U勺入1000 元的部分5%3000 方=曲入2000 元的部分10 %6000 元=U勺入3000 元的部分15 %收入6000元的部分20 %输入某人的收入,计算出应纳税额及实际得到的报酬。(7分)(如需连续计算多个人的纳税情况,直到输入负数为止,程序应如何改进?试写出程序)#i nclude io.std”main()int grade;float income,tax,money
11、;pri ntf( " pleasen");scanf (" %c6me&if (income<0)print f( " theput i s 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-30
12、00)*0.15;break;default: tax=600+(income-6000)*0.2; money=income-tax;pri ntf( n“tax=%f, money=%f” ,tax, money);12.从键盘上输入一个百分制成绩 score ,按下列原则输出其等级:score > 9弹级为 A;80 & score<90,等级为 B; 70 < score<80,等级为 C; 60 & score<70,等级为 D; score<60 , 等级为E。#include <stdio.h> main()int
13、data;char grade;printf("Please enter the score:");scanf("%d ” , &data);switch(data/10) case 10:case 9 :grade=' Arreak;case 8:grade='B'break;case 7:grade='C'break;case 6:grade='D'break;default:grade=' E';printf("the grade i s %c ” ,grade); *
14、13.编程设计一个简单的计算器程序。从键盘输入2个操作数,1个运算符,当运算符为加(+)、减(-)、乘(*)、除(/)时,输出计算结果7#include <stdio.h>main() int datal, data2;/*定义两个操作符 */char op;/*定义运算符*/printf("Please enter the expression:");scanf("%d%c%d”, &data1, &op, &data2); /* 输入运算表达式 */switch(op)/*根据输入的运算符确定要执行的运算*/ case
15、39;+':/* 处理加法 */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", datal, data2, datal * data2);break;case '/':/*处
16、理除法*/if (0 = data2) /*为避免出现溢出错误,检验除数是否为0*/printf("Division by zero!n");elseprintf("%d / %d = %d n", datal, data2, datal / data2);break;default:printf("Unknown operator! n");14.从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。main()int a10, i,p=0,n=0,z=0;pri ntf( lease i nput number &q
17、uot;);for(i=0;i<10;i+)scanf( " %d,i); ,&aif (ai>0)p+;else if (ai<0)n+;else z+pri ntf( 正数:%5d,负数:5d,零: n” ,p,n,z);15、编程序实现求1-200之间的所有数的乘积并输出。#include <stdio.h> main() int i, sum=1 for(i=1; i<200 i=i+1) sum=sum*i;pri ntf( "the sum of 0dds :%d” ,sum);16.从键盘上输入10个数,求其平均值。
18、main() int a10,i,s=0;float ave;for(i=0;i<10;i+) scanf( " %di); ,&a for(i=0;i<10;i+)sum+=ai;ave=(float)sum/10; printf("ave = %fn", ave); 17、编程序实现求1-1000之间的所有奇数的和并输出。#include <stdio.h> main() int i, sum=0;for(i=1; i<1000; i=i+2) sum=sum+i;pri ntf( "the sum of 0dd
19、s :%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;计算机程序设计基础(c语言)习题编程题b=t;printf("sum=%9.6f",s);19 .用数组实现以下功能:输入 5个学生成绩,而后求出这些成绩的平均值并显示出来。main()float a5,i;float s=0;for(i=0;i<5;i+)scanf
20、( " %f i); ,&afor(i=0;i<5;I+)s=s+ai;pri ntf( " result=%f " ,s/5);*20、用循环的方法构造一个5行5列的二维数组,使主对角线上的变量为1 ,其它为0 ,并将数组中所有项按行按列显示出来。main()int a55,i,j, s=0;for(i=0;I<5;i+)for(j=0;j<5;j+)if(i= =j) aij=1;else aij=0;for(i=0;i<5;i+)for(j=0;j<5;j+)if(j= =0) pri ntf( n); pri ntf(
21、 " %d , j21 .求一个3X3矩阵对角线元素之和。从键盘输入矩阵元素的值并输出和的值main() int a33,sum=0;int i,j;printf("Enter data:n");for(i=0;i<3;i+)for(j=0;j<3;j+)scanf("%d",&aij);for(i=0;i<3;i+)sum=sum+aii;printf("sum=%d",sum);22 .输入n的值,n代表行数,输出如图所示的图形。(6分)* * * * * * * * * * * * * * (
22、此图为n=4时的输出结果)#include <stdio.h>main()int i , j , k;for (i = 1; i <= 4; i+) for (k = 1; k <= (2 * i - 1); k+) printf("*");printf("n");/*控制行数*/*控制每行输出的*号个数*/*输出一行后换行*/23、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。 (提示:用数组存放成绩数据)#include<stdio.h>#define M 30 main () float sco
23、reM, max , min, aver; int i ;pri ntf( " pleasen");for(i=0; i<M ; i+) scanf( " %f” , &Score max=score0;min=score0;aver=score0;for(i=1; i<M; i+) if (max < scorei) max= scorei; if (min>scorei) min=scorei; aver+=scorei;pri ntf( " max=%fi,rm%f,aver=%f” , miaxaver/M);24
24、.从键盘输入某班学生某门课的成绩及其学号(班级人数最多40人,具体人数由键盘输入)输出该班最高分和最低分及其学生学号;并输出该班该课程的总分和平均分。请编写程序。#include <stdio.h>#define ARR_SIZE 40main() float scoreARR_SIZE, maxScore,minScore,sum;intn, i;longmaxNum, minNum,numARR_SIZE;printf("Please enter total number:");scanf("%d", &n);printf(&qu
25、ot;Please enter the number and score:n");for (i=0; i<n; i+)scanf("%ld%f", &numi, &scorei);maxScore = score0;minScore= score0;maxNum = num0; minNum= num0;sum=score0;for (i=1; i<n; i+) if (scorei > maxScore) maxScore = scorei;maxNum = numi;else if (scorei < minScore)
26、 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、6、5、4、1,要求改为1、
27、4、5、6、8define N 5main()int aN,I,temp;pri ntf( " enter array an");for(I=0;I<N;I+)scanf( "%dT); ,$afor(I=0;I<N;I+) temp=ai;ai=aN-I-1;aN-I-1=temp; pri ntf( “n ” );for(I=0;I<N;I+)pri ntf( " %4d)' ,a pri ntf( n© );*26.从键盘上输入一个2*3的矩阵,将其转置后形成3*2的矩阵输出。main()int a23, b32
28、,i,j; for(i=0;i<2;i+) for(j=0;j<3;j+) scanf( " %dij),;&a for(i=0;i<3;i+)for(j=0;j<2;j+) bij=aji; for(i=0;i<3;i+) for(j=0;j<2;j+) printf("%5d",bij); n”); *27 .编写两个函数分别求两个整数的最小公倍数和最大公约数,用主函数调用这两个函数并输出结果。两个整数由键盘输入。#include "stdio.h"mingb(x,y) int x,y;int z
29、,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)int x,y;int z,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()int a,b,c;char ch;printf("nmingb(1)/maxgy(2)?");ch=getchar();pri
30、ntf("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;pri ntf( " pleasput 6 numbers!")for (i=1;i
31、<3;i+)for(j=1;j<3;j+)scanf( " %d M),;&abji=aij;for (i=1;i<3;i+)for(j=1;j<3;j+)cij=aij+bij;for (i=1;i<3;i+)for(j=1;j<3;j+)pri ntf( " d面);,a29、从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。(提示:用数组存放成绩数据)main() int a10;int i,j,temp;printf("input score:n");for(i=0;i<10;i+)
32、scanf("%d”,&ai);printf("n");for(i=1;i<10;i+)for(j=0;j<9;j+)if(aj<aj+1)temp=aj;aj=aj+1;aj+1=temp;for(i=0;i<10;i+) printf("%d,",ai);30.定义一个5行3列的数组,从键盘输入各数组元素的值,计算各数组元素之和。#include <stdio.h>main() int i, j ,a53;pri ntf( " Enter datan" );for(i=0;i&
33、lt;5;i+)for(j=0;j<3;j+) scanf( " %d ij),&a for(i=0;i<5;i+)for(j=0;j<3;j+) sum=sum+aij; pri ntf( " sum=%nd ,sum);31、编写程序,交换两个数组中的对应元素。#include<stdio.h>#define N 20 main() int aN, bN, i, j, temp;pri ntf( " please n");for(i=0; i<N; i+) scanf( " %d"i);
34、, &a pri ntf( " please n");for(j=0; j<N; j+) scanf( “ d"i);, &bfor(i=0; i<N; i+) temp=ai; ai=bi; bi=temp;for(j=0; j<N; j+) pri ntf( " %d, " , aj); pri ntf( n);for(j=0; j<N; j+) pri ntf( " %d, " ,bj);*32、从键盘上输入一个4*3的整型数组,找出数组中的最小值及其在数组中的下标。#inclu
35、de <stdio.h>main() int a43, i , j ,min,m,n; printf("Please enter data:"); for (i=0; i<4; i+) for (j=0; j<3; j+) scanf( " %d"ij& a min=a00;m=0; n=0;for (i=0; i<4; i+) for (j=0; j<3; j+) if (aij<min)13计算机程序设计基础(c语言)习题编程题min= aij;m=i;n=j;printf("the min
36、 is %dn, min);printf("posion is %d %d n, m,n);33.编程实现如下功能:从键盘输入一行字符,统计其中大写英文字符,小写英文字符和其他 字符的个数。#include <stdio.h>#include <string.h>#define ARR_SIZE 80main()char strARR_SIZE;int len, i, letter = 0, digit = 0, space = 0, others = 0;printf("Please input a string:");gets(str)
37、;len = strlen(str);for (i=0; i<len; i+) if (stri >= 'a' && stri <= 'z' | stri >= 'A' && stri <= 'Z')letter +;/*统计英文字符*/else if (stri >= '0' && stri <= '9')digit +;/*统计数字字符*/elseothers +;/*统计其它字符的个数 */printf(
38、"English character:%dn", letter);printf("digit character:%dn", digit);printf("other character:%dn", others);*34 .编程实现如下功能:1)在主函数中,实现从键盘输入10名学生某门课的成绩,保存在一维数组中;调用排序函数;对排序后的数组中的元素按从高到低打印输出。2)编写排序函数,使用数组名做函数参数,实现对该成绩的排序。#include <stdio.h>#define ARR_SIZE 40void Sort(f
39、loat score, long num口,int n);main()floatscoreARR_SIZE;intn, i;longnumARR_SIZE;printf("Please enter total number:");scanf("%d", &n);printf("Please enter the number and score:n");for (i=0; i<n; i+)scanf("%ld%f",&numi,&scorei);Sort(score, num, n);p
40、rintf("Sorted results:n");for (i=0;i<n;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; i<n-1; i+)for (j=i+1; j<n; j+) if (scorej > scorei) temp1 = scorej;scorej = scorei;scorei = temp1;/*交换学号*/temp2
41、 = numj;numj = numi;numi = temp2; *35 .编程实现如下功能:实现从键盘输入两个字符串,分别存入两个不同的字符数组中;将两个字符串连接为一个 字符串,并打印输出连接后的整个字符。#include <stdio.h>#include <string.h>#define ARR_SIZE 80void MyStrcat(char dstStr口,char srcStr);main() char sARR_SIZE, tARR_SIZE;printf("Please enter source string:");gets(
42、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'猜对为
43、止,并要求统计猜的包含 stdlib.h 。*36、猜数游戏。系统随机产生一个整数,通过键盘输入数据猜数, 次数。注:rand()函数可以产生 032767间的正整数,程序中荒#include <stdio.h>#include <stdlib.h>main()int magic;int guess;int counter;magic = rand() % 100 + 1;counter = 0;doprintf("Please guess a magic number:");scanf("%d", &guess);cou
44、nter +;if (guess > magic)printf("Wrong!Too high!n");else if (guess < magic)printf("Wrong!Too low!n");while (guess != magic);printf("Right!n");printf("counter = %dn", counter);37.输入两个整数,利用指针变量作为函数参数,编程实现两数互换功能,并将交换后的数据 重新输出。#include <stdio.h>void Swap(int *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);Sw
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成考和统考试卷及答案
- 员工安全注意事项讲解
- 新质生产力发展的挑战与对策
- 采油厂新质生产力实践路径
- 单位安全培训规定讲解
- 新质生产力的发展方向探析
- 新质生产力赋能上虞新发展
- 医患关系五避免原则
- 乒乓球比赛策划方案
- 2025年内科心律失常药物治疗考试答案及解析
- 2024房产独家出售委托协议书范本
- 法院委托评估价格异议申请书
- 《报批报建工作》课件
- 全自动自清洗过滤器操作规程(2篇)
- 毕业实习调查研究报告
- 【知识点总结】高中数学人教A版必修第一册知识点总结
- ASTM-D3359-(附著力测试标准)-中文版
- 全国中小学生学籍信息管理系统学生基本信息采集表(2022修订版)
- DL∕T 5461.11-2013 火力发电厂施工图设计文件内容深度规定 第11部分土建结构
- CB-Z-239-1987一般排水量船模双桨自航试验方法
- 平安经营分析岗面试
评论
0/150
提交评论