c语言7章.docx
- 文档编号:8830025
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:18
- 大小:20.43KB
c语言7章.docx
《c语言7章.docx》由会员分享,可在线阅读,更多相关《c语言7章.docx(18页珍藏版)》请在冰豆网上搜索。
c语言7章
二
2、编一程序,输入a,b两个值,输出两个数中较大的开方。
1.#include
2.#include
3.voidmain()
4.{
5.doublea,b,max;
6.scanf("%lf%lf",&a,&b);
7.max=a>b?
a:
b;
8.printf("%lf\n",sqrt(max));
9.}
3、编一程序,计算从键盘输入的一个数的平方和立方。
1.#include
2.voidmain()
3.{
4.doublea,b;
5.scanf("%lf",&a);
6.b=a*a;
7.printf("%lf%lf\n",b,b*a);
8.}
4、编一程序,计算从键盘输入的4个数的平均值。
1.#include
2.voidmain()
3.{
4.doublea,b,c,d,sum;
5.scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
6.sum=a+b+c+d;
7.printf("%lf\n",sum/4.0);
8.}
5、编一程序,从键盘输入一个5位正整数,然后分别求出它的个位数、十位数、百位数、千位数和万位数,并打印出这五位数字的和。
如输入12345,打印出15(1+2+3+4+5=15)。
1.#include
2.voidmain()
3.{
4.intsum=0,i,x;
5.inta[5];
6.printf("输入一个五位数:
");
7.scanf("%d",&x);
8.for(i=0;i<5;i++)
9.{
10.a[i]=x%10;
11.x/=10;
12.sum=sum+a[i];
13.}
14.printf("%d",sum);
15.putchar('(');
16.for(i=4;i>=0;i--)
17.{
18.printf("%d+",a[i]);
19.}
20.putchar('\b');
21.printf("=%d",sum);
22.putchar(')');
23.}
三
4.设圆球半径为r=2.5,求圆球表面积、圆球体积。
用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字。
请编程序。
1.#include
2.#definePI3.14
3.voidmain()
4.{
5.floatr,s,v;
6.printf("输入半径:
");
7.scanf("%f",&r);
8.s=4*PI*r*r;
9.v=4.0/3*PI*r*r*r;
10.printf("圆球面积是:
%.2f\n",s);
11.printf("圆球体积是:
%.2f\n",v);
12.}
5.输入一个华氏温度,根据公式为c=5/9(f-32)计算并输出摄氏温度,输出时要求有文字说明,取2位小数。
请编程序。
1.#include
2.voidmain()
3.{
4.floatf,c;
5.printf("输入华氏温度:
");
6.scanf("%f",&f);
7.c=5.0/9*(f-32);
8.printf("摄氏温度是:
%f",c);
9.}
7.编写一个能引起short型变量溢出的程序。
1.#include
2.voidmain()
3.{
4.shorta;
5.a=21344211;
6.printf("a=21344211,溢出后a=%d\n",a);
7.}
8.编写一个程序,显示下列10个转义字符:
\a,\b,\n,\r,\t,\v,\',\",\\,\?
1.#include
2.voidmain()
3.{
4.printf("\\a,\\b,\\n,\\r,\\t,\\v,\\\',\\\",\\\\,\\\?
");
5.}
9.编写一个程序,输入一个小写字母,输出其对应的大写字母。
1.#include
2.voidmain()
3.{
4.chara,A;
5.printf("输入一个小写字母,将输出一个相应大写字母:
");
6.a=getchar();//或者是scanf(“%c”,&a);
7.A=a+'A'-'a';
8.putchar(A);//或者是printf(“%c\n”,A);
9.putchar('\n');
10.}
四
1、输入一个整数,判别它是奇数还是偶数。
1.#include
2.voidmain()
3.{
4.intn;
5.printf(“Pleaseenteroneinteger:
”);
6.scanf("%d",&n);
7.if(n%2!
=0)//不等于表示为奇数的表达式为真
8.{
9.printf("odd\n")
10.}
11.else
12.{
13.printf("even\n");
14.}
15.}
2、从键盘输入一个字符,如果输入的是大写字母,则将它转换成小写字母后输出,否则输出原来输入的字符。
1.#include
2.voidmain()
3.{
4.charc;
5.c=getchar();//或者c=scanf(“%c”,&c);
6.if((c>='A')&&(c<='Z'))//为了保证可读性,可以加多个上括号
7.{
8.c-='A'-'a';
9.}
10.putchar(c);//或者printf(“%c”,c);
11.}
3、从键盘输入一个考试分数,如果输入的分数是60分以下输出“不及格”,90分以上输出“优秀”,否则输出“合格”。
1.#include
2.voidmain()
3.{
4.intn;
5.printf(“Pleaseenteroneinteger:
”);
6.scanf("%d",&n);
7.if(n<60)
8.{
9.printf("不及格\n");
10.}
11.elseif(n<90)
12.{
13.printf("合格\n");
14.}
15.else
16.{
17.printf("优秀\n");
18.}
19.}
4、输入一个字符,判断输入字符的种类,即区分空格、回车、数字字符、英文字母和其他字符(要求分别用if…elseif和switch语句编写)。
1.#include
2.voidmain()
3.{
4.charc;
5.c=getchar();
6.switch(c)//【注意】采用switch语句判断其他字符比较麻烦,因此下面的程序无法判断其他字符
7.//的情况(程序不完整,不推荐使用),因此此题仅仅是了解一下switch语句的基本用法,
8.//建议直接采用ifelseif多分支语句,switch语句【考试不考】,了解即可。
9.{
10.case'':
//【注意】里面有一个空格,必须键入空格
11.printf("空格");
12.break;
13.case'\n':
//【注意】getchar或者scanf无法获取'\r',题目其实可以改成换行
14.printf("回车");
15.break;
16.case'0':
17.case'1':
18.case'2':
19.case'3':
20.case'4':
21.case'5':
22.case'6':
23.case'7':
24.case'8':
25.case'9':
26.printf("数字");
27.break;
28.default:
29.printf("英文");
30.}
31.}
1.#include
2.voidmain()
3.{
4.charc;
5.c=getchar();
6.if(c=='')//【注意】里面有一个空格,必须键入空格
7.{
8.printf("空格");
9.}
10.elseif(c=='\n')//【注意】getchar或者scanf无法获取'\r',题目其实可以改成换行
11.{
12.printf("回车");
13.}
14.elseif((c>='0')&&(c<='9'))//【注意】最好加上多个括号,下面一个条件类似
15.{
16.printf("数字");
17.}
18.elseif(((c>='a')&&(c<='z'))||((c>='A')&&(c<='Z')))
19.{
20.printf("英文");
21.}
22.else
23.{
24.printf("其他字符");
25.}
26.}
五
11.输出如下图形
1.#include
2.voidmain()
3.{
4.inti,j,k;
5.charch;
6.ch='A';
7.for(i=1;i<5;i++)
8.{
9.for(j=1;j<=4-i;j++)
10.{
11.printf("%c",'');
12.}
13.for(k=1;k<=(2*i-1);k++)
14.{
15.printf("%c",ch);
16.}
17.ch++;
18.printf("\n");
19.}
12.求1!
+2!
+3!
+4!
+……10!
的值
#include
main()
{
longi,j,sum,temp;
for(i=1,sum=0;i<=10;i++)
{
for(j=1,temp=1;j<=i;j++)
{
temp*=j;
}
sum+=temp;
}
printf("%ld",sum);
}
20.计算1-3+5-7+…-99+101的值。
#include
main()
{
inti,j,sum;
for(sum=1,i=-3,j=5;j<=101;i-=2,j+=2)
{
sum+=i+j;
}
printf("%d\n",sum);
}
21.计算100~1000之间有多少个数其各位数字之和是5.
#include
main()
{
inti,j,c=0,x,sum;
for(i=100;i<=1000;i++)
{
x=i;sum=0;
for(j=0;j<3&&x>0;j++)
{
sum+=x%10;
x/=10;
}
if(sum==5)
{
printf("%d\t",i);
c++;
}
}
printf("\n共%d个",c);
}
第六章
5、写一个函数,其功能是返回正整数n的位数。
并设计一个主程序测试这个函数。
#include
intweishu(intx)
{
inti,c=0;
for(i=0;x>0;i++)
{
x/=10;
c++;
}
returnc;
}
main()
{
inta;
printf("输入一个整数:
");
scanf("%d",&a);
printf("共有%d位。
",weishu(a));}
6、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘键入。
要求利用递归算法编写求最大公约数的函数。
intgcd(intparA,intparB)//最大公约数
{
if(parB==0)
{
returnparA;}
else
{
returngcd(parB,parA%parB);
}
}
intgbs(intpartA,intpartB)//最小公倍数
{
returnpartA*partB/gcd(partA,partB);
}
7、编写函数,验证陈景润研究的哥德巴赫猜想:
任意大偶数为两个素数之和,并输出这两个素数(所谓大偶数是指6开始的偶数)说明:
下面的程序,需要输入查询范围的左右边界a,b,然后程序会验证属于(a,b)区间内的所有偶数都是两个素数之和,并且会打印出这些素数。
#include
intsushu(intx)
{
inti;
for(i=2;i { if(x%i==0) return0; } return1; } main() { inti,j,a,b; printf("输入查询范围: (两个偶数)"); scanf("%d%d",&a,&b); for(i=a;i<=b;i+=2) { printf("%d: \n",i); for(j=2;j<=i/2;j++) { if(sushu(j)&&sushu(i-j)) printf("%d+%d=%d\n",j,i-j,i); } printf("\n"); } } 8、利用递归算法,编写一程序,计算组合数C(m,n)(提示: 利用C(m,n)=C(m-1,n)+C(m-1,n-1))intcomb(intm,intn) { if(m==0||n==0||m<=n) { return1; } if(n==1) { returnm; } else { returncomb(m-1,n)+comb(m-1,n-1); } } 9、分别用递归和非递归的算法,求两个正整数m、n的最大公约数 intgcd2(intm,intn) { if(m { inttmp=m; m=n; n=tmp; } if(n==0) returnm; while(n>0) { inttmp=m%n; m=n; n=tmp; } returnm; } 第七章 二、编程题1、编写一个计算圆的程序,将pi值定义为符号常量 #include #definepi3.14 voidmain() {floatr; printf("输入圆的半径: "); scanf("%f",&r); printf("圆的面积为%f\n",pi*r*r); } 2、将求圆柱体的体积写成带参数的宏定义,并使用该宏定义计算圆柱体的体积 #include #definevolumn(r,h)3.14*r*r*h voidmain(){ floatr,h; printf("输入圆柱底面积半径: "); scanf("%f",&r); printf("输入圆柱的高: "); scanf("%f",&h); printf("圆柱的体积为: %f",volumn(r,h)); } 3、定义一个带有3个参数的宏MAX,求3个参数中的最大值 #include #defineMAX(a,b,c)a>b? (a>c? a: c): (b>c? b: c) voidmain() { floata,b,c; printf("输入三个数: "); scanf("%f%f%f",&a,&b,&c); printf("最大值为%f",MAX(a,b,c)); } 4、给年份YEAR定义一个宏,判定该年份是否是闰年 #include #defineYEAR(a)(a%4==0&&a%100! =0)||(a%400==0) voidmain() { intyear; printf("输入年份: "); scanf("%d",&year); if(YEAR(year)) { printf("%d是闰年\n",year); } Else {printf("%d不是闰年\n",year); } } 第八章 1.一维数字a的值已经,请把数组中的值按逆序存放,然后输出数组。 例如数组中原来的值为3,4,2,1,6,颠倒后变成6,1,2,4,3. #include main() { inti,a[5]={2,3,45,12,5},t; printf("转换前: "); for(i=0;i<5;i++) printf("%d\t",a[i]); for(i=0;i<5/2;i++) { t=a[i]; a[i]=a[5-i-1]; a[5-i-1]=t; } printf("\n转换后: "); for(i=0;i<5;i++) printf("%d\t",a[i]); } 2.输入一个整数(位数不确定),从高位到低位依次输出各位数字,其间用逗号分隔。 例如输入整数为2345,则输出应为2,3,4,5。 #include main() { inta[10],x,i; printf("输入一个整数: "); scanf("%d",&x); for(i=0;x>0;i++) { a[i]=x%10; x/=10; } for(i--;i>=0;i--) printf("%d,",a[i]); printf("\b"); } 3.若某数的平方具有对称性质,则称该数为回文数。 例如11的平方121,则称11为回文数。 请找出1~999中的所有回文数。 #include main() { intx,i,j,a[10],wei,p; for(i=1;i<1000;i++) { p=1; x=i*i; for(j=0;x>0;j++) { a[j]=x%10; x/=10; } wei=j; for(j--;j>=0;j--) { if(a[j]! =a[wei-1-j]) { p=0break; } } if(p==1) printf("%d\t",i); } } 5.文本加密。 输入一字符串,将其中所有的大写英文字母+3,小写字母-3,然后在输出加密后该句子的长度。 #include #include main() { inti; chara[100]; puts("输入文本: "); gets(a); for(i=0;i { if(a[i]<='Z'&&a[i]>='A') a[i]+=3; elseif(a[i]<='z'&&a[i]>='a') a[i]-=3; } puts("加密后: "); puts(a); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言