《2022年2022年计算机程序设计基础编程习题 2.pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机程序设计基础编程习题 2.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机程序设计基础(c语言)习题编程题1 计算机程序设计基础(C 语言)编程练习题及参考答案1. 输入 2 个整数,求两数的平方和并输出。#include 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); 2. 输入一个圆半径(r )当 r 0 时,计算并输出圆的面积和周长,否则,输出提示信息。#include #define PI 3.14 main() float r ,s , l; printf(please input r
2、: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); else printf(input error!n); 3、函数 y=f(x)可表示为: 2x+1 (x0) 编程实现输入一个x 值,输出y 值。main() int x,y; scanf(“ %d” ,&x);If(x0)y=2*x-1; If(x=0) y=0; pri ntf(“ %d” ,y);名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
3、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题2 4、编写一个程序,从 4 个整数中找出最小的数, 并显示此数。main( ) int a,b,c,d,t; scanf (“ %d,%d,%d,%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; pri ntf (“mn” ,a); 5有一函数当x0 时, y=3 ,当 x=0 时 y=
4、5 ,编程,从键盘输入一个x 值,输出 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 tem
5、p; if (xy) temp=x; x=y; y=temp; return(x); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题3 7、从键盘输入你和你朋友的年龄,编成判断谁的年龄最大,并打印最大者的年龄。#include main() int yourAge, hisAge; printf(Please enter your age:); scanf(%d, &yourAge);
6、/* 输入你的年龄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 个加数,再输入答案,如果正确,显示“right”,否则显示 “ error”#i
7、nclude “ stdio.h”main( ) int a,b,c; pri ntf(“ please n” );scanf (%d,%d” ,&a,&b);pri ntf(“ please n” );scanf (%d” ,&c);if (c=a+b) pri ntf(“r n” );else pri ntf(“ error n” ); 9. 编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:小时小时小时元每小时元每小时元费用505010105 .2330要求当输入每月上网小时数,显示该月总的上网费用(6 分) main() int hour; float fee; pri nt
8、f(“ please n” );名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题4 scanf(“ %d” ,&hour);if(hour=10&hour=y) pri ntf(“建议使用全球通” );else pri ntf(“建议使用神州行); 11 个人所得税计算,应纳税款的计算公式如下:收入税率收入 收入 1000元的部分53000元收入 2000元的部分10 6000元收入 30
9、00元的部分15 收入 6000元的部分20 输入某人的收入,计算出应纳税额及实际得到的报酬。(7 分)(如需连续计算多个人的纳税情况,直到输入负数为止,程序应如何改进?试写出程序)#i nclude “ stdio.h”main() int grade; float income,tax,money; pri ntf(“ please n” );scanf (“ %f ” ,&income); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - -
10、 - - - - 计算机程序设计基础(c语言)习题编程题5 if (income0) print f(“ the input 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-3000)*0.15;break; default: tax=600+(
11、income-6000)*0.2; money=income-tax; pri ntf(“n tax=%f, money=%f” ,tax, money); 12. 从键盘上输入一个百分制成绩score ,按下列原则输出其等级:score 90,等级为A;80 score90,等级为B;70 score80,等级为C; 60 score70,等级为D; score60 ,等级为 E。#include main() int data; char grade; printf(Please enter the score:); scanf(%d” , &data); switch(data/10)
12、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 个运算符,当运算符为加 (+) 、减( - ) 、乘( *) 、除( / )时,输出计算结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
13、心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题6 #include main() int data1, data2; /* 定义两个操作符*/ char op; /* 定义运算符 */ printf(Please enter the expression:); scanf(%d%c%d, &data1, &op, &data2); /* 输入运算表达式*/ switch(op) /* 根据输入的运算符确定要执行的运算*/ case +: /* 处理加法 */ printf(%d + %d = %d n,
14、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(Division by zero!n); else printf(%d / %d
15、 = %d n, data1, data2, data1 / data2); break; default: printf(Unknown operator! n); 14. 从键盘输入 10 个整数,统计其中正数、负数和零的个数,并在屏幕上输出。main( ) int a10, i,p=0,n=0,z=0; pri ntf(“please i nput number” ); for(i=0;i0) p+; else if (ai0) n+; else z+ pri ntf(“正数: %5d, 负数: %5d, 零:n” ,p,n,z); 名师资料总结 - - -精品资料欢迎下载 - - -
16、- - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题7 15 、编程序实现求1-200之间的所有数的乘积并输出。#include main( ) int i, sum=1 for(i=1; i200 i=i+1) sum=sum*i; pri ntf(“ the sum of odd is :%d” ,sum); 16. 从键盘上输入10 个数,求其平均值。main() int a10,i,s=0; float ave; for(i=0;i10;
17、i+) scanf(“ %d” ,&ai); for(i=0;i10;i+) sum+=ai; ave=(float)sum/10; printf(ave = %fn, ave); 17 、编程序实现求1-1000之间的所有奇数的和并输出。#include main( ) int i, sum=0; for(i=1; i1000; i=i+2) sum=sum+i; pri ntf(“ 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
18、=20; float a=2,b=1,s=0; for(i=1;i=n;i+) s=s+a/b; t=a; a=a+b; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题8 b=t; printf(sum=%9.6f,s); 19. 用数组实现以下功能:输入5 个学生成绩,而后求出这些成绩的平均值并显示出来。main() float a5,i; float s=0; for(i=0;i5;
19、i+) scanf(“ %f ” ,&ai); for(i=0;i5;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;I5;i+) for(j=0;j5;j+) if(i= =j) aij=1; else aij=0; for(i=0;i5;i+) for(j=0;j5;j+) if(j= =0) pri ntf(“n” );pri ntf(“ %d ” , aij); 2
20、1 求一个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); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 计算机程序设计基
21、础(c语言)习题编程题9 22. 输入 n 的值, n 代表行数,输出如图所示的图形。(6 分) * * * * * * * * * * * * * * * * (此图为 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 名学生的成绩数据,求其中的最高分、最低分和平均分。(提示:用数组存放成绩数据)
22、#include #define M 30 main ( ) float scoreM, max , min, aver; int i ; pri ntf(“ please n” );for(i=0; iM ; i+) scanf(“ %f ” , &scorei); max=score0; min=score0; aver=score0; for(i=1; iM; i+) if (max scorei) min=scorei; aver+=scorei; pri ntf(“ max=%f, min=%f,aver=%f” , max, min, aver/M); 24. 从键盘输入某班学生某
23、门课的成绩及其学号(班级人数最多40 人,具体人数由键盘输入) ,输出该班最高分和最低分及其学生学号;并输出该班该课程的总分和平均分。请编写程序。#include #define ARR_SIZE 40 main() float scoreARR_SIZE, maxScore,minScore,sum; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题10 int n, i; long m
24、axNum, 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) maxScore = scorei; maxNum = nu
25、mi; else if (scorei minScore) 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,
26、要求改为1、4、5、6、8 define N 5 main() int aN,I,temp; pri ntf(“ enter array a:n” );for(I=0;IN;I+) scanf(“ %d” ,$ai); for(I=0;IN;I+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题11 temp=ai; ai=aN-I-1; aN-I-1=temp; pri ntf(“n
27、” );for(I=0;IN;I+) pri ntf(“ %4d ” ,ai); pri ntf(“n” ); *26. 从键盘上输入一个2*3 的矩阵,将其转置后形成3*2 的矩阵输出。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;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
28、=0) break; z-; return(z); main() int a,b,c; char ch; printf(nmingb(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 c33 int i,j;
29、pri ntf(“ please input 6 numbers!”)for (i=1;i3;i+) for(j=1;j3;j+) scanf(“ %d” ,&aij); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题13 bji=aij; for (i=1;i3;i+) for(j=1;j3;j+) cij=aij+bij; for (i=1;i3;i+) for(j=1;j3;j+
30、) pri ntf(“ %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=temp; for(i=0;i10;i+) printf(%d,ai); 30. 定义一个5 行 3 列的数组,从键盘输入各数组元素
31、的值,计算各数组元素之和。#include main( ) int i, j ,a53; pri ntf(“ Enter data: n” );for(i=0;i5;i+) for(j=0;j3;j+) scanf(“ %d” ,&aij); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题14 for(i=0;i5;i+) for(j=0;j3;j+) sum=sum+aij; pri
32、 ntf(“ sum=%5dn” ,sum); 31 、编写程序,交换两个数组中的对应元素。#include #define N 20 main( ) int aN, bN, i, j, temp; pri ntf(“ please n” );for(i=0; iN; i+) scanf(“ %d” , &ai); pri ntf(“ please 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+) pri ntf(“ %d, ” , aj);p
33、ri ntf(“n” );for(j=0; jN; j+) pri ntf(“ %d, ” ,bj ); *32 、从键盘上输入一个4*3的整型数组,找出数组中的最小值及其在数组中的下标。#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) 名师资料总结 - - -精
34、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题15 min= aij; m=i; n=j; printf(the min is %dn, min); printf(posion is %d %d n, m,n); 33 编程实现如下功能:从键盘输入一行字符,统计其中大写英文字符,小写英文字符和其他字符的个数。#include #include #define ARR_SIZE 80 main() char st
35、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
36、, digit); printf(other character: %dn, others); *34 编程实现如下功能:1)在主函数中,实现从键盘输入10 名学生某门课的成绩,保存在一维数组中;调用排序函数;对排序后的数组中的元素按从高到低打印输出。2)编写排序函数,使用数组名做函数参数,实现对该成绩的排序。#include #define ARR_SIZE 40 void Sort(float score, long num, int n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
37、- - 第 15 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题16 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:n); for (i=0; in; i+) scanf(%ld%f,&numi,&scorei); Sort(score, num, n); printf(Sorted results:n
38、); 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 = scorei; scorei = temp1; /* 交换学号 */ temp2 = numj; numj = numi; numi = temp2; *35 编程实现如下功能:实现从键盘输入两个字符串,分别存入两
39、个不同的字符数组中;将两个字符串连接为一个字符串,并打印输出连接后的整个字符。#include #include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题17 #define ARR_SIZE 80 void MyStrcat(char dstStr, char srcStr); main() char sARR_SIZE, tARR_SIZE; printf(Please en
40、ter source string: ); gets(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 、猜数游戏。系统随机产
41、生一个整数,通过键盘输入数据猜数,猜对为止,并要求统计猜的次数。注: rand() 函数可以产生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 +; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
42、- 名师精心整理 - - - - - - - 第 17 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题18 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 voi
43、d 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); Swap(&a, &b); printf(After swap: a = %d,b = %dn, a, b); void Swap(int *x, int *y) int temp; temp = *x; *x = *y; *y = temp; 38. 随机输入若干个学生的体重,以输入负数或零结束,分别求最重和最轻的体重,并计算平均体
44、重。#include main() int n=0; float weight,max=0,min=10,sum=0,ave; pri ntf(“ 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); printf(minweight = %fn, min); printf
45、(ave = %fn,ave); else printf(NO VALID DATA” ); 39. 输入 m,k 的值,编程求下面表达式的值:(要求编写一个求阶乘的函数,调用函数实现本题))!(!kmkp#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); printf(p=%f
46、n, p); unsigned long Factorial(unsigned int number) 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+) 名师资料总结 - - -精品资料
47、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 20 页 - - - - - - - - - 计算机程序设计基础(c语言)习题编程题20 if (number % i) = 0) return 0; return 1; main() int n; pri ntf(“ Please input n:” );scanf(“ %d” ,&n);if(IsPrimeNumber(n) pri ntf(“n%d is a Prime Number” ,n);else pri ntf(“n%d is not a Prime Number” ,n);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 20 页 - - - - - - - - -