《2022年C语言程序设计实验考试题答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言程序设计实验考试题答案 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-1-第 1 题输入某学生的成绩,经处理后给出学生的等级,等级如下:90 分以上(包括 90 分):A 8090分(包括 80 分):B 7080分(包括70 分):C 6070分(包括 70 分):D 60 分以下:E 要用 switch 语句编写程序答案:#include void main()int score,c;char grade;printf(请输入学生的成绩:);scanf(%d,&score);if(score100|score0)printf(成绩输入错误!n);goto end;c=score/10;switch(c)case 10:case 9:grade=A;brea
2、k;case 8:grade=B;break;case 7:grade=C;break;case 6:grade=D;break;default:grade=E;printf(该学生的成绩等级为:%cn,grade);end:;第 2 题从键盘上输入三个实数,它们分别代表三条线段的长度,请写出一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的 C 程序;如果能构成三角形,求出三角形面积(取两位小数)。用下面的数据运行程序记录程序的输出结果:a b c 类型三角形面积1.58 2.37 1.58 3.21 4.25 5.16 2.48 2.48 2.48 235
3、9.28 3.83 答案:#include#include void main()float a,b,c,e,y=1,p,s;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 6 页 -2-printf(请输入三角形边长a,b,c(中间用逗号隔开):);scanf(%f,%f,%f,&a,&b,&c);e=a+bc&b+ca&c+ab&a0&b0&c0;if(e)if(a=b|b=c|a=c)if(a=b&a=c)printf(是等边三角形 n);else printf(是等腰三角形 n);else printf(是不等边三角形 n);else printf(不构成三角形 n);y
4、=0;if(y)p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c);printf(三角形面积等于%.2fn,s);第 3 题有一数列:2/1,32,53,85,编程求这个数列前n 项之和(n 在运行时从键盘输入)。答案:#include void main()int n,t,m;float a=2,b=1,s=0;printf(请输入 n 的值:);scanf(%d,&n);for(m=1;m=n;m+)s=s+a/b;t=a;a=a+b;b=t;printf(%fn,s);名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 6 页 -3-第 4 题计算两个
5、数的最大公约数,运行程序输入两整数为360,135。答案:#include void main()int m,n,k;printf(请输入 m,n 的值(中间用逗号隔开):);scanf(%d,%d,&m,&n);k=m%n;while(k!=0)m=n;n=k;k=m%n;printf(最大公约数是%dn,n);第 5 题选择排序(升序):编写选择排序程序,并编辑运行.记录输入输出数据。答案:#include void main()int i,j,n,k,t,a100;printf(请输入要排序的数据个数n(n=100):);scanf(%d,&n);printf(请输入要排序的%d 个整数
6、(整数间用空格分割):,n);for(i=0;in;i+)scanf(%d,&ai);for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(ajak)k=j;if(k!=i)t=ai;ai=ak;ak=t;printf(排序后的%d 个整数:,n);for(i=0;in;i+)printf(%6d,ai);printf(n);名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 6 页 -4-第 6 题编写程序,输出由1N*N 的整数组成的 N 阶方阵的上三角阵。例如,N=3,输出:1 2 3 5 6 9 答案:#include#define N 3 void
7、main()int i,j,k=1,aNN;for(i=0;iN;i+)for(j=0;jN;j+)aij=k+;for(i=0;iN;i+)for(j=0;jN;j+)if(ji)printf(%6c,);else printf(%6d,aij);printf(n);printf(n);第 7 题编写两个函数,分别求两个正整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个正整数由键盘输入。程序调试通过后,用m=350.,n=64两组数据运行程序,记录程序的输出。答案:#include int hcf(int m,int n)int k=m%n;if(k)hcf(n,k);
8、else return(n);lcd(int m,int n,int h)名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 6 页 -5-return(m/h*n);void main()int m,n,h,l;printf(请输入两个正整数m,n(中间用逗号隔开):);scanf(%d,%d,&m,&n);h=hcf(m,n);printf(%d 和%d 的最大公约数是:%dn,m,n,h);l=lcd(m,n,h);printf(%d 和%d 的最小公倍数是:%dn,m,n,l);第 8 题编写求 n!的函数 f(int n),在主函数中输入两个整数m,n,然后调用函数求:答案
9、:#include double f(int n)if(n=0)return 1;else return n*f(n-1);main()int n,m;printf(请输入正整数 n m(要求 nm):);scanf(%d%d,&n,&m);printf(c(%d,%d)=%.0fn,n,m,f(m)/(f(n)*f(m-n);第 9 题有一个字符串,输入一个字符,编写函数drst 将输入的指定字符从字符中删去。答案:#include dstr(char str,char ch)int i,j;for(i=j=0;stri!=0;i+)if(stri!=ch)strj+=stri;strj=0
10、;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 6 页 -6-void main()char str80,ch;printf(请输入字符串:);gets(str);printf(请输入欲删除的字符:);ch=getchar();dstr(str,ch);printf(删除指定字符后的结果:%sn,str);第 10 题编写函数 fun(float*sn,int n),其功能是:根据以下公式计算S,计算结果通过形参 sn传回;n 的值大于等于 0.。上机运行并记录输入输出。答案:#include void fun(float*sn,int n)float s=0.0,w,f=-1.0;int i;for(i=0;i=n;i+)f=-1*f;w=f/(2*i+1);s+=w;*sn=s;main()float s;int n;printf(n=(n 大于等于 0);scanf(%d,&n);fun(&s,n);printf(s=%fn,s);名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 6 页 -