《2022年c语言编程大题 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言编程大题 .pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、三、编程题1.输入一个半径值,分别计算圆周长、圆面积和球的体积。要求使用符号常量定义圆周率。#include int main() printf( 计算圆周长面积求面积n); floatr,c,s,v; scanf(%f,&r); # define PI 3.14159265 c=2*PI*r; s=4*PI*r*r; v=4/3*PI*r*r*r; printf( 周长是 %.2fn,c); printf( 表面积是 %.2fn,s); printf( 体积是 %.2fn,v); return 0; 2.假设今天是星期三,编程求20 天之后是星期几?#include int main() p
2、rintf( 今天是星期三,20 天后是星期几?n); int i; i=23%7; printf(20 天后是星期 %dn,i); return 0; 3.从键盘输入一个字符,然后将其按字符和整数这两种形式输出。#include int main() printf( 输入一个字符n); char i; scanf(%c,&i); printf( 整数形式是 %dn,i); printf( 字母形式是 %cn,i); return 0; 4.输入一个大写英文字母,将它转化为小写输出。#include int main() printf( 请输入一个大写英文字母n); charch; 名师资料总
3、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - scanf(%c,&ch); printf(%cn,ch+32); return 0; 5.求一元二次方程ax2+bx+c=0 方程的两个实根。 a、 b、 c 由键盘输入。 (默认 b*b-4*a*c=0 )#include #include int main() printf( 求两个实数根n); float x1,x2,a,b,c; scanf(%f%f%f,&a,&b,&c); x
4、1=(-b)+sqrt(b*b-4*a*c)/2; x2=(-b)-sqrt(b*b-4*a*c)/2; printf(%.2fn,x1); printf(%.2fn,x2); return 0; 6.输入长方形的长和宽,编程求该长方形的周长和面积#include int main() printf( 输入长和宽 n); inta,b,c,s; scanf(%d%d,&a,&b); c=2*(a+b); s=a*b; printf( 周长是 %dn,c); printf( 面积是 %dn,s); return 0; 7.要将“ China”译成密码,译码规律是:用原来字母后面的第5 个字母代替
5、原来的字母。例如,字母“ A”后面第 5 个字母是 “F” ,用“F”代替“A” 。 因此, “China” 应译为“Hmnsf” 。请编写程序,用赋初值的方法使c1、c2、c3、c4、 c5 5 个变量的值分别为C 、 h 、 i 、n 、 a ,经过运算,使c1、c2、c3、c4、c5 分别变为 H 、 m 、 n 、 s 、 f并输出。#include int main() printf(China到 Hmnstn); char a5=C,h,i,n,a; for(int i=0;i=5;i+) ai=ai+5; for(int j=0;j=5;j+) 名师资料总结 - - -精品资料欢
6、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - printf(%c,aj); printf(n); return 0; 8.有人用温度计测量出用华氏法表示的温度,现输入华氏温度f,要求把它转换为以摄氏法表示的温度c 并输出。(c=5/9(f-32) )#include int main() printf( 把华氏温度转换为摄氏温度n); printf( 请输入华氏温度:n); floati,j; scanf(%f,&i); j=5*(i-32)/9; prin
7、tf(%.1fn,j); return 0; 9.编写程序,输入两个实数,按代数值由大到小的顺序输出这两个实数。#include int main() printf( 将两个实数从大到小排列n); floati,j; scanf(%f%f,&i,&j); if(ij) printf( 输出 %f %fn,i,j); else printf( 输出 %f %fn,j,i); return 0; 10.编写程序,从键盘输入两个整数,输出其中较小的数。#include int main() printf( 输出较小的数n); inti,j; scanf(%d%d,&i,&j); if(ij) pri
8、ntf(%dn,i); else printf(%dn,j); return 0; 11.编写程序,输入一个不多于5 位的正整数,输出该正整数是几位数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - #include int main() printf( 输入一个不多于5位数的正整数n); int i; scanf(%d,&i); if(i0&i=10&i=100&i=1000&i10000) printf(%d是四位数 n,
9、i); return 0; 12.编写程序,不使用系统提供的数学函数,编写程序求一个实数的绝对值。#include int main() printf( 求一个实数的绝对值n); int i; scanf(%d,&i); if(i=0) printf( 绝对值是 %dn,i); if(i0) printf( 绝对值是 %dn,-i); return 0; 13.编写程序,编写程序实现如下分段函数。当x5 时, f(x)=6x-10 。 (x 定义成实型数据)#include int main() int i; scanf(%d,&i); if(i-5) printf(%dn,-i+5); if
10、(-5=i&i=5) printf(%dn,i*i); else printf(%dn,6*i-10); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 14.编写程序,输入2015 年的一个月份,输出该月有多少天。(使用 switch 语句实现)#include int main() printf( 输入月份 n); intmonth,day; scanf(%d,&month); switch(month
11、) case 2: day=28; printf(%dn,day);break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; printf(%dn,day);break; case 4: case 6: case 9: case 11: day=30; printf(%dn,day);break; return 0; 15.编写程序,判断某一年是否是闰年。#include int main() printf( 判断某一年是否为闰年n); int i; scanf(%d,&i); if(i%4=0) prin
12、tf(%d是闰年 n,i); if(i%4!=0) printf(%d是平年 n,i); return 0; 16.编写程序,编写程序,根据输入的学生成绩输出相应的等级。90 分以上(包括90 分)为A 等, 8089 分为 B 等, 7079 分为 C 等, 6069 分为 D 等, 60 分以下为E 等。#include int main() printf( 求学生成绩相应的等级n); int i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - -
13、 - - - - - - scanf(%d,&i); if(i=90) printf(%d是 An,i); else if(i=80) printf(%d是 Bn,i); else if(i=70) printf(%d是 Cn,i); else if(i=60) printf(%d是 Dn,i); else printf(%d是 En,i); return 0; 17 编写程序,输入一个百分制成绩,若大于等于60,则输出“恭喜!您的成绩通过了!” ,若小于 60,则输出“抱歉!您的成绩未通过!”(要求成绩只能是整数)#include int main() printf( 请输入您的成绩n);
14、int i; scanf(%d,&i); if(i=60) printf( 您通过了 n); else printf( 您没通过 n); return 0; 18.编写程序,输入3 个整数 x、y、z,输出其中最小值。#include int main() printf( 输出最小值 n); int x,y,z,min1,min; scanf(%d%d%d,&x,&y,&z); min1=xy?x:y; min=min1z?min1:z; printf( 最小值是 %dn,min); return 0; 19.编写程序,输入三角形的3 条边 a、b、 c,判断它们能否构成三角形。若能构成三角形
15、,求出三角形面积。(s=(a+b+c)/2 ,三角形面积area=sqrt(s(s-a)(s-b)(s-c))#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - #include int main() printf( 判断能否构成三角形若能求面积n); floata,b,c,d,s; scanf(%f%f%f,&a,&b,&c); d=(a+b+c)/2; if(a=c+b|b=a+c|c=a+b) printf
16、( 不能构成三角形n); else s=sqrt(d*(d-a)*(d-b)*(d-c); printf( 面积是 %.2fn,s); return 0; 20.编写程序,试编程判断输入的正整数是否既是5 又是 7 的整倍数。若是,则输出yes,否则输出 no。#include int main() printf( 判断一个正整数是否既是5 又是 7 的倍数 n); int i; scanf(%d,&i); if(i%35=0) printf(yesn); else printf(non); return 0; 21.编写程序,编程实现以下功能:读入两个运算数(data1 和 data2)及一
17、个运算符(op) ,计算表达式data1 op data2的值,其中 op 可为 +, ?, *,/ (执行除法运算时假设data2不为 0,用 switch 语句实现)。#include int main() char op; float data1,data2; printf( 请输入两个数字n); scanf(%f%c%f,&data1,&op,&data2); switch(op) case+:printf(%f+%f=%.2fn,data1,data2,data1+data2);break; case-:printf(%f-%f=%.2fn,data1,data2,data1-dat
18、a2);break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - case*:printf(%f*%f=%.2fn,data1,data2,data1*data2);break; case/:printf(%f/%f=%.2fn,data1,data2,data1/data2);break; return 0; 22.编写程序,编写程序,输入任意一个17 之间的整数,将他们转换成对应的表示星期几的英文单词。例如:1 转换成
19、 Monday ,7 转换成 Sunday。 (使用 switch 语句实现)#include int main() printf( 请输入 1 至 7 之间任意整数n); int i; scanf(%d,&i); switch(i) case 1:printf(Mondayn);break; case 2:printf(Tuesdayn);break; case 3:printf(Wednesdayn);break; case 4:printf(Thursdayn);break; case 5:printf(Fridayn);break; case 6:printf(Saturdayn);b
20、reak; case 7:printf(Sundayn);break; return 0; 23.输出小写字母的ascii 码对照表。#include int main() printf( 输出小写字母的ascii码n); charch; ch=a; for(int i=0;i=25;i+) printf(%c:%dt,ch+i,ch+i); printf(n); return 0; 24.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#include main() int a=0,b=0,c=0,d=0,i=0; char s10; printf( 请输入一行不超过十个字
21、的字符串:n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - gets(s); while(i=0&si=a&si=A&si=Z) b+; else if(si= ) c+; else d+; i+; printf( 数字的个数是%dn,a); printf( 字母的个数是%dn,b); printf( 空格的个数是%dn,c); printf( 其他符号的个数是%dn,d); return 0; 25.输出图形$ $ $
22、 $ #include #include int main() for(int i=0;i=3;i+) for(int j=1;j=fabs(4-i)&j=fabs(4+i) printf($); else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - printf( ); printf(n); return 0; 26.求 s=1+(1+2)+(1+2+3)+ ,+(1+2+3+,+n),要求 n 从键盘输入。#inclu
23、de main() int sum=0,n,i,a=1; printf(计算 1+(1+2)+(1+2+3)+,(1+2+3+n)=?n); scanf(%d,&n); while(a=n) i=(1+a)*a/2; sum=sum+i; a+; printf(输出 sum=%dn,sum); return 0; 27.计算 10! #include int main() int i=1,a=1; for(i=1;i=10;i+) a=a*i; printf(%dn,a); return 0; 28.输出所有的“水仙花数”,所谓“水仙花数”是指一个3 位数,其各位数字立方和等于该数本身。例如,
24、153 是一个水仙花数,因为153=13+53+33 。#include int main() printf( 输出所有的水下花数n); for(int i=1;i=9;i+) for(int j=0;j=9;j+) for(int k=0;k=9;k+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 21 页 - - - - - - - - - if(100*i+10*j+k=i*i*i+j*j*j+k*k*k) printf(%d%d%d ,i,j,k); pri
25、ntf(n); return 0; 29.鸡兔同笼,上数共有35 个头,下有94 只脚,鸡、兔各有几只? #include int main() for(int x=0;x=35;x+) for(int y=0;y=35;y+) if(x+y=35)&(2*x+4*y=94) printf( 鸡有 %d 只,兔子有 %d 只n,x,y); return 0; 30.编程找 10 个数中的最大数以及该数在数组中的位置。#include int main() printf( 找 10 个数中最大数极其所在位置n); int a10,max; for(int i=0;i=9;i+) scanf(%d
26、,&ai); max=a0; for(int j=1,int k=0;j=9;j+) if(maxaj) max=aj; k=j+1; printf( 第%d 位 n,k); printf( 最小是 %dn,max); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 21 页 - - - - - - - - - 31.编程找 10 个数中的最小数以及该数在数组中的位置。#include int main() printf( 找 10 个数中最小数极其
27、所在位置n); int a10,min; for(int i=0;i=9;i+) scanf(%d,&ai); min=a0; for(int j=1,int k=0;jaj) min=aj; k=j+1; printf( 第%d 位 n,k); printf( 最小是 %dn,min); return 0; 32.编程将一个数组中的元素按逆序存放。#include int main() printf( 一个数组按照逆序存放n); int a10,b10; for(int i=0;i=9;i+) scanf(%d,&ai); for(int j=0;j=9;j+) bj=a9-j; print
28、f(%d ,bj); printf(n); return 0; 33.编程计算Fibonacci 数列的前50 项,并把结果存放在一个数组中。(Fibonacci 数列前两项的值是1。从第 3 项开始,其值为前两项之和。) #include intmain() int a50=0,1; for(int i=2;i50;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 21 页 - - - - - - - - - ai=ai-1+ai-2; for(i=0;i50;
29、i+) printf(%ft,ai); printf(n); return 0; 34.编写程序,将两个字符串连接起来(不使用strcat 函数) 。#include int main() int i=0,j=0; printf( 将两个字符串连接起来n); char ch1100,ch2100; printf( 输入第一个字符串:); gets(ch1); printf( 输入第二个字符串:); gets(ch2); while(ch1i!=0) i+; while(ch1j!=0) j+; for(int k=i;k=i+j-1;k+) ch1k=ch2k-i; printf( 连接后为:
30、 ); for(int l=0;l=i+j-1;l+) printf(%c,ch1l); printf(n); return 0; 35.有一个 2 行 3 列的矩阵,编程找出值最小的元素的值以及它所在的行列号。#include int main() printf( 找到最小元素的值极其位置n); int a23,min,x,y; for(int i=0;i=1;i+) for(int j=0;j=2;j+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 21 页 -
31、 - - - - - - - - scanf(%d,&aij); min=a00; for(int m=0;m=1;m+) for(int l=0;laml) min=aml; x=m+1; y=l+1; printf(%dn,min); printf( 第%d 行,第 %d 列n,x,y); return 0; 36.一个学习小组有3 个人,每人有4 门课的成绩。计算每个人的平均成绩。#include int main() printf( 分别计算每个人的平均数n); float a34,v3,s=0; for(int m=0;m=2;m+) for(int l=0;l=3;l+) scan
32、f(%f,&aml); s=s+aml; vm=s/4; s=0; printf( 第 一 个 人 平 均 分 是 %.2fn第 二 个 人 平 均 分 是 %.2fn第 三 个 人 平 均 分是%.2fn,v0,v1,v2); return 0; 37.编程输出杨辉三角中的前10 行。1 1 1 1 2 1 1 3 3 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 21 页 - - - - - - - - - 1 4 6 4 1 . #include int m
33、ain() printf(n); int a1010=1,1,1,i,j; for(i=0;i10;i+) ai0=1; for(i=2;i10;i+) for(j=1;j10;j+) aij=ai-1j-1+ai-1j; for(i=0;i10;i+) for(j=0;j=i;j+) printf(%dt,aij); printf(n); printf(n); return 0; 38.编写一个函数,输入立方体的长、宽、高,输出立方体的体积。#include int V(inti,intj,int k); int main() inta,b,c; printf( 输入长方体的长宽高n); s
34、canf(%d%d%d,&a,&b,&c); printf( 体积是 %dn,V(a,b,c); return 0; int V(inti,intj,int k) int v=i*j*k; return v; 39.输入两个整数,要求输出其中值较大者。用函数实现找大数。#include int MAX(inti,int j); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 21 页 - - - - - - - - - int main() inta,b; printf
35、( 输入两个整数n); scanf(%d%d,&a,&b); printf( 最大数是 %dn,MAX(a,b); return 0; int MAX(inti,int j) int v=ij?i:j; return v; 40.编写一个函数,用递归方法求n!,调用该函数求m!/(n!*(m-n)!) 的值并输出。#include float X(int n); int main() intm,n; scanf(%d%d,&m,&n); printf(result is %.3fn,X(m)/X(n)/X(m-n); return 0; float X(int n) int i=1,a=1;
36、for(i=1;i=n;i+) a=a*i; return a; 41.编写一个函数,实现用选择法对数组中10 个整数按由小到大排序。#include intpailie(int a10,int n); int main() for(int i=0;i=9;i+) scanf(%d,&ai); return 0; intpailie(int a10,int n) (不会)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 21 页 - - - - - - - - - 42.
37、编写一个函数,求一个34 的矩阵所有元素之和。43.编写求圆的面积的函数,并调用该函数求出圆的面积。#include float S(int r); int main() printf( 计算圆的面积n); int i; scanf(%d,&i); printf( 面积是 %.2fn,S(i); return 0; float S(int r) float s; #define PI 3.14159265 s=r*r*PI; return s; 44.编写一个函数,该函数的功能是判断一个整数是不是素数(所谓素数是指除了1 和它本身以外 ,不能被任何整数整除的数),在 main 函数中输入一个整
38、数,调用该函数,判断该数是不是素数,若是则输出“yes”,否则输出“ no” 。#include int j(); int main() printf( 请输入一个数:n); j(); return 0; int j() int n; scanf(%d,&n); if(n=1&n=2) printf(%d是素数 n,n); for(int i=2;i=n;i+) if(n%i=0) break; if(in) printf(%d是合数 n,n); else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
39、 - - - - 第 17 页,共 21 页 - - - - - - - - - printf(%d是素数 n,n); return 0; 45.编写判定闰年的函数,并调用此函数求出公元2000 年到公元2100 年之间的所有闰年。#include int RUN(int i); int main() printf( 输出 2000 至 2100 之间的闰年:n); for(int a=2000;a=2100;a+) RUN(a); printf(n); return 0; int RUN(int i) int j; if(i%4=0) printf(%d ,i); return 0; 46.
40、编写两函数分别求两个个整数的最大公约数和最小公倍数,用主函数调用两个函数并输出结果,两个整数由键盘输入。#include int MAX(inta,int b); int MIN(inta,int b); int main() printf( 请输入两个数求最大公约数和最小公倍数n); intx,y; scanf(%d%d,&x,&y); printf( 最大公约数是%d ,最小公倍数是%dn,MAX(x,y),MIN(x,y); return 0; int MAX(inta,int b) for(int i=(a=1;i-) if(a%i=0&b%i=0) break; return i;
41、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 21 页 - - - - - - - - - int MIN(inta,int b) for(int j=(ab?a:b);j=a*b;j+) if(j%a=0&j%b=0) break; return j; 47.编写判断回文的函数,并调用此函数判定一个字符串是否为回文。(回文字符串是指该字符串从左到右读和从右到左读完全一样。)#include #include int PANDUAN(char b10); int ma
42、in() char a10; gets(a); PANDUAN(a); return 0; int PANDUAN(char b) int j=strlen(b),i=0; while(bi=bj-1-i) i+; if(i=j) printf( 是回文字符串n); else printf( 不是回文字符串n); return 0; 48.编写一个函数,在一个有序的数列中插入一个数。插入后,数列仍然维持有序。如果有相同的数,要插入在相同的数的后面。#include #include #include int CHARU(int b100,int n); int main() int a=1,2
43、,3,4,5,6; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 21 页 - - - - - - - - - int x; printf( 请输入插入数字n); scanf(%d,&x); CHARU(a,x); return 0; int CHARU(int b100,int n) int j=sizeof(b)/sizeof(int),i; printf(%dn,j); for(i=0;i=bi&n=i+2;k-) bk=bk-1; bi+1=n; else i
44、f(n=bj) bj+1=n; for(i=0;i=j+1;i+) printf(%d ,bi); printf(n); return 0; (不会)49.编写一个函数,使给定的一个33 的二维整型数组转置,即行列互换。#include int ZHIHUAN(int b33); int main() printf( 请输入一个3*3 方阵 n); int a33; for(int i=0;i=2;i+) for(int j=0;j=2;j+) scanf(%d,&aij); ZHIHUAN(a); return 0; int ZHIHUAN(int b33) 名师资料总结 - - -精品资料
45、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 21 页 - - - - - - - - - int c33,m,n; printf( 转置方阵为:n); for(m=0;m=2;m+) for(n=0;n=2;n+) cnm=bmn; for(n=0;n=2;n+) for(m=0;m=2;m+) printf(%d ,cnm); printf(n); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 21 页 - - - - - - - - -