2C语言上机练习题总结版.docx
- 文档编号:3988562
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:30
- 大小:49.34KB
2C语言上机练习题总结版.docx
《2C语言上机练习题总结版.docx》由会员分享,可在线阅读,更多相关《2C语言上机练习题总结版.docx(30页珍藏版)》请在冰豆网上搜索。
2C语言上机练习题总结版
“C语言”上机题目汇总
2013-2014-2
1.输入三角形两个边长及其夹角(角度值),求第三边边长和三角型面积。
2.输入一个字符,若是小写字母,则转换成大写字母输出;若是大写字母,则转换成小写字母输出。
3.输入一个大写字母,输出字母表中它前面的字母和后面的字母。
如果输入的字母为A或Z,则分别输出提示信息“没有前面的字母”或“没有后面的字母”。
4.编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息:
(1)能同时被3、5、7整除。
(2)能同时被3、5、7中的两个数整除,并输出这两个数。
(3)只能被3、5、7中的一个数整除,输出该数。
(4)不能被3、5、7中的任何一个数整除。
5.已知正整数A>B>C且A+B+C<100,求满足
共有多少组,并输出满足条件的组合。
6.求
的值,直到最后一项的值小于
。
7.用迭代法求某数
的平方根,已知求平方根的迭代公式为:
。
取
为迭代初值,迭代的结束条件取
。
8.分别输出100以内(不包括100)所有偶数的和与所有奇数的和。
9.利用嵌套循环输出以下图形(行与行之间无空行,列与列之间无空列):
#
##
###
####
10.使用循环找到并输出100以内的所有素数。
11.利用循环找出并输出所有的“水仙花数”。
“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。
如
,所以153是“水仙花数”。
12.输出斐波那契数列的前40项。
斐波那契数列是个整数数列,其定义为:
13.输出100以内所有的“同构数”。
所谓“同构数”一个正整数,它出现在其平方数的右边。
例如:
5是25右边的数,25是625右边的数,5和25都是同构数。
14.指定一个正整数n,并输入n个整数,用冒泡法将它们由小到大顺序排列并输出。
15.利用循环打印下列九九乘法表:
1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
4*1=44*2=84*3=124*4=16
5*1=55*2=105*3=155*4=205*5=25
6*1=66*2=126*3=186*4=246*5=306*6=36
7*1=77*2=147*3=217*4=287*5=357*6=427*7=49
8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64
9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81
16.利用循环打印以下杨辉三角(要求打印7行):
1
11
121
1331
14641
15101051
1615201561
17.利用循环输出下列图形(无空行和空列):
*
***
*****
*******
18.不使用strcat函数,将两个字符串连接起来。
19.编写函数,求
的值。
n的值由键盘获得。
20.编写函数intfun(charstr[])并在主函数中调用它。
此函数的功能是判别字符串str是否为“回文”,若是,返回1,否则返回0(回文是指正反序相同的字符串,如“13531”、“madam”是回文,“1353”、“mrs”不是回文)。
21.用递归方法计算
。
22.用静态局部变量法计算
。
23.编写函数,求
,其中:
24.编写程序,计算组合数
。
m和n由键盘获得。
25.编写函数,求出n个a之积。
调用该函数,输入两个正整数n和a,求
之和。
26.编写程序,使用字符指针将字符数组s1中的字符串拷贝到字符数组s2中去。
27.使用“指向函数的指针”编写函数,求多项式
当
时的值。
28.编写函数,将直角坐标
转换为极坐标
。
转换公式为:
29.编写函数,使用指针参数将字符串ch2复制到字符串ch1的末尾,实现ch1与ch2的连接。
30.利用指针编写程序,将一个一维数组a[10]中的最大元素和首元素换位,最小元素和末元素换位。
数组元素由键盘获得。
31.试编程序,输入整数a和b,若
大于100,则输出
百位以上(包括百位)的数字,否则输出两数之和。
32.试编程序,求一个整数任意次方的最后三位数。
即求
的最后三位数,要求x,y从键盘输入,使用循环实现,不能使用数学库函数。
33.求
的个、十、百位上数字之和。
34.输出100以内每位数的积大于每位数的和的所有正整数。
35.通过循环按行优先顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角。
36.从键盘输入若干整数(个数小于30),其值在0至4的范围内,用-1作为输入结束的标志。
统计每个整数的个数。
37.定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。
38.数组a包括10个整数,把a中所有的后项除以前项之商取整后存入数组b,并按每行3个元素的格式输出数组b。
39.编写函数sstrcmp,实现两个字符串的比较(即实现与strcmp函数功能相同的函数)。
若两个字符串相等,返回值为0;若不等,则返回两个对应字符的ASCII码值差值。
若前者大,应返回正值,若后者大,应返回负值。
1、#include
#include
main()
{
doublea,b,c,d,e,s;
scanf("%lf%lf%lf",&a,&b,&d);
e=cos(d*3.1415926/180);
c=sqrt(a*a+b*b-2*a*b*e);
s=1.0*a*b*sin(d*3.145926/180)/2;
printf("第三条边=%f,面积为=%f",c,s);
}
2、#include
main()
{
charch;
ch=getchar();
if(ch>=65&&ch<=90)
ch=ch+32;
else
ch=ch-32;
printf("%c",ch);
}
3,#include
main()
{
intx,y;
charch;
ch=getchar();
if(ch==65)
printf("没有前面的字母");
elseif(ch==90)
printf("没有后面的字母");
else
{x=ch-1;y=ch+1;printf("%c%c",x,y);}
}
4、#include
main()
{
intx;
printf("Pleaseinput:
\n");
scanf("%d",&x);
if(x%3==0&&x%5==0&&x%7==0)
printf("能同时被3、5、7整除。
\n");
elseif(x%3==0&&x%5==0)
printf("能同时被3、5、7中的两个数整除,分别是3,5\n");
elseif(x%3==0&&x%7==0)
printf("能同时被3、5、7中的两个数整除,分别是3,7\n");
elseif(x%5==0&&x%7==0)
printf("能同时被3、5、7中的两个数整除,分别是5,7\n");
elseif(x%3==0&&x%5!
=0&&x%7!
=0)
printf("只能被3、5、7中的一个数整除,是3\n");
elseif(x%3!
=0&&x%5==0&&x%7!
=0)
printf("只能被3、5、7中的一个数整除,是5\n");
elseif(x%3!
=0&&x%5!
=0&&x%7==0)
printf("只能被3、5、7中的一个数整除,是7\n");
else
printf("不能被3、5、7的任何一个数整除\n");
}
5、#include
main()
{
inta,b,c,i=0;
for(c=1;c<33;c++)
for(b=c+1;b<49;b++)
for(a=b+1;a<97;a++)
if((1.0/(a*a)+1.0/(b*b))==1.0/(c*c))
{i++;printf("a=%d,b=%d,c=%d\n",a,b,c);}
printf("有%d组\n",i);
}
5.已知正整数A>B>C且A+B+C<100,求满足共有多少组,并输出满足条件的组合。
(2)
#include
main()
{
inta,b,c,i=0;
for(a=1;a<99;a++)
for(b=1;b for(c=1;c if(a+b+c<100&&(1.0/(a*a)+1.0/(b*b))==1.0/(c*c)) {i++;printf("a=%d,b=%d,c=%d\n",a,b,c);} printf("有%d组\n",i); } 6,#include main() { inti=0; doubles=0,c=1; while(1/c>=1e-5) {s=s+1/c;i++;c=c+i;} printf("sum=%f\n",s); return0; }或者#include main() { inti=0; doubles=0,c=1; while(1/c>=1e-5) { s=s+1/c; c=c+i; c=c+1; i++; } printf("sum=%f\n",s); return0; } 7、#include #include main() { floata,x0,x1; scanf("%f",&a); x1=a/2; do{ x0=x1; x1=(x0+a/x0)/2; }while(fabs(x1-x0)>1e-5); printf("a=%f,squart(a)=%f\n",a,x1); } 8、#include main() { inti,s1=0,s2=0; for(i=1;i<100;i++) if(i%2==0) s2=s2+i; else s1+=i; printf("s1=%d,s2=%d",s1,s2); } 9、#include main() { inti,j,k; for(i=1;i<=4;i++) {for(j=1;j<=5-i;j++) printf(""); for(k=1;k<=i;k++) printf("#"); printf("\n");} } 10、#include #include intsu(intx) { inti=1; doublek; k=sqrt(x); if(x>=0) {while(++i<=k) {if(x%i==0) return0;} if(i>k) return1;} else return2; } main() { intb,i; for(i=1;i<100;i++) { b=su(i); if(b==1) printf("%d\n",i);} } (2) //判断一个数是否为素数 #include intmain() { intn,i; scanf("%d",&n); for(i=2;i<=n-1;i++) if(n%i==0)break; if(i>=n) printf("%disprime\n",n); else printf("%disnotprime\n",n); return0; } (3) //找出100以内的素数 #include intmain() { intn,i; for(n=3;n<=100;n++,n++) { for(i=2;i<=n-1;i++) if(n%i==0)break; if(i>=n) printf("%d\n",n); } return0; } 11、#include main() { inta,b,c,i; for(i=100;i<1000;i++) {a=i/100; b=i/10%10; c=i%10; if(a*a*a+b*b*b+c*c*c==i) printf("%d\n",i);} } //多重循环实现水仙花数 #include intmain() { inti,j,k,a; for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) { a=i*100+j*10+k; if(i*i*i+j*j*j+k*k*k==a) printf("%d\n",a); } return0; } 12、#include main() { inta=1,b=1,c,i; for(i=1;i<=40;i++) if(i<3) printf("1\n"); else {c=a+b; printf("%d\n",c); a=b; b=c;} } (2) (2) //斐波那契数列 #include intmain() { inta=1,b=1,i; printf("%-6d%-6d\n",a,b); for(i=2;i<=20;i++) { a=a+b; b=a+b; printf("%-6d%-6d\n",a,b); } return0; } 13、#include intf(intn) { intx; x=n*n; if(n<4) {if(n==x) return1; else return0;} elseif(n<10) {if(n==(x%10)) return1; else return0;} else {if(n==(x%100)) return1; else return0;} } main() { inti; for(i=0;i<100;i++) if(f(i)) printf("%d\n",i); } 14、#include main() { inta[100],i,j,n,t; scanf("%d",&n); for(i=0;i scanf("%d",&a[i]); for(i=0;i for(j=1;j if(a[j-1]>a[j]) {t=a[j-1];a[j-1]=a[j];a[j]=t;} printf("排序: \n"); for(i=0;i printf("%d",a[i]); } 15、 (1)//乘法表 #include intmain() { inti,j,x; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%d*%d=%-3d",i,j,i*j); printf("\n"); } return0; } (2) #include main() { inti,j,x; for(i=1;i<=9;i++) for(j=i,x=1;x<=i;x++) {printf("%2d*%d=%2d",i,j,x*j); if(x==i) printf("\n");} } 16、#include main() { inti,j,a[7][7]={0}; for(i=0;i<7;i++) {a[i][0]=1; for(j=1;j<=i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];} for(i=0;i<7;i++) {for(j=0;j<=i;j++) printf("%4d",a[i][j]); printf("\n");} } 17、 (1)正三角形 #include intmain() { inti,j,k; for(i=1;i<=4;i++) { for(j=i;j<=4;j++) printf(""); for(k=1;k<=2*i-1;k++) printf("*"); printf("\n"); } } (2) #include main() { intn=4,i,j,z; for(i=1;i<=4;i++) {for(j=1;j<=4-i;j++) printf(""); for(z=1;z<=(2*i-1);z++) printf("*"); for(j=1;j<=4-i;j++) printf(""); printf("\n");} } 18、#include main() { chars1[80],s2[80]; inti=0,j=0; gets(s1); gets(s2); while(s1[i++]); i=i-1; while(s2[j]) {s1[i]=s2[j];i++;j++;} s1[i]='\0'; printf("%s\n",s1); } 19、#include main() { intn,i; doubles=0; scanf("%d",&n); for(i=1;i<=n;i++) s=s+1.0/i; printf("%6.2f\n",s); } 20、#include intfun(charstr[]) { inti=0,n=0; while(str[i++]); n=i-1; for(i=0;i if(str[i]! =str[n-1-i]) return0; if(i==n/2) return1; else return0; } main() { chars[30]; printf("Pleaseinput: \n"); gets(s); if(fun(s)==0) printf("不是回文"); else printf("是回文"); } 21、#include #include #include longf(intn) { longk; if(n<0) { printf("Error! \n"); exit(0); } elseif(n==0||n==1) k=1; else k=n*f(n-1); returnk; } main() { intn; longk; printf("Pleaseinput: \n"); scanf("%d",&n); k=f(n); printf("%d! =%d",n,k); } 22、#include doublef(intn) { staticintc; inti,k=1; c=n; for(i=1;i<=n;i++) k=k*i; returnk; } main() { intq; scanf("%d",&q); f(q); printf("%f",f(q)); } 23、#include doublef(intn) { doubles=0; inti; for(i=1;i<=n;i++) s=s+1.0/i; returns; } intmain() { doubles; s=f(50)+f(100)+f(150)+f(200); printf("s=%8.2lf",s); return0; } 24、#include longfun1(longn) { longk=1; inti; for(i=1;i<=n;i++) k=k*i; returnk; } longfun2(longm,longn) { longc; c=fun1(m)/(fun1(n)*fun1(m-n)); returnc; } main() { longc,m,n; printf("Pleaseinputmandn: \n"); scanf("%ld%ld",&m,&n); c=fun2(m,n); printf("%ld",c); } 25、 (1)//a+aa+aaa+aaaa #include intmain() { intn,i,a,t; doubles=0; printf("Pleaseinputnanda: \n"); scanf("%d%d",&n,&a); t=a; for(i=1;i<=n;i++) { s=s+a; a=a*10; a=a+t; } printf("%6.2f",s); return0; } #include doublef(intn,inta) { doubles=1; inti; for(i=1;i<=n;i++) s*=a; returns;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 练习题 总结