> 大一C语言课堂练习
文章目录
- 1. Hello world
- 2. 求两个整数中的最大者
- 3. 鸡兔同笼
- 4. 正序输入反序输出
- 5. 输入字母输出数字
- 6. 输入大写字母用小写字母输出
- 7.求圆的面积周长和圆球的体积
- 8.输入三边长求三角形面积(先判断想)
- 9. 求根公式
- 10. 九九乘法表
- 11. 爱心打印
- 12. 字符数组
- 13. 字符串打印且有几个单词
- 14. 找出每列最大并打印出位置
- 15. 十行杨辉三角形
- 16. 将数组赋值再打印(双for循环)
- 17. 数组形式打印斐波那契数列
- 18. 数组赋值再打印
- 20. 十个一组打印200个数
- 21. 判断一个数是否为素数
- 22. 输入三个成绩然后由高到低输出
- 23. 输入数量和单价得到货款
- 24. while循环语句使用
- 25. 求两个正整数最大公约数和最小公倍数
- 26函数模块化之数字公式
- 27.函数模块化之字母打印
- 28.函数模块化之大小比较
- 29.数组中的正向输入反向输出
- 30.程序模块化之数组数据求和
- 31.判断一个年份是否为闰年
- 32.输入十个学生的成绩求平均分并输出大于平均分的成绩
- 33. 奇数和偶数分别相加求和
- 34.中国现有13.54亿人口,以每年增长1%何时能到15亿
- 35.行和列元素互换
- 36.比较数组中数字大小多的数组获胜
- 37.函数之比较数组中数字大小多的数组获胜
1. Hello world
#include "stdafx.h"
int main(int argc, char* argv[])
{
printf("Hello World!\n");
return 0;
}
2. 求两个整数中的最大者
#include "stdafx.h"
int main(int argc, char* argv[])
{
int max(int x,int y);//对调用max函数进行声明
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
return 0;
}
int max(int x,int y)
{ int z;
if (x>y) z=x;
else z=y;
return (z);
}
3. 鸡兔同笼
//x代表鸡的数量,y代表兔的数量,h为总头数,f为总脚数
#include "stdafx.h"
int main(int argc, char* argv[])
{ int h,f,x,y;
printf("请输入总头数和总角数\n");
scanf("%d,%d",&h,&f);
y=(f-2*h)/2;
x=h-y;
printf("鸡的数量是%d,兔的数量是%d\n",x,y);
return 0;
}
4. 正序输入反序输出
#include "stdafx.h"
int main(int argc, char* argv[])
{ char a='C',b='H',c='I',d='N',e='A';
printf("%c%c%c%c%c\n",a,b,c,d,e);
printf("%c%c%c%c%c\n",e,d,c,b,a);
return 0;
}
5. 输入字母输出数字
#include "stdafx.h"
int main(int argc, char* argv[])
{ char a='C',b='H',c='I',d='N',e='A';
printf("%c%c%c%c%c\n",a,b,c,d,e);
printf("%2d%2d%2d%2d%2d\n",e,d,c,b,a);
return 0;
}
6. 输入大写字母用小写字母输出
#include "stdafx.h"
int main(int argc, char* argv[])
{ char a,b;
printf("输入大写字母\n");
a=getchar();
printf("%c,%d\n",a,a);
b=a+32;
printf("%c,%d\n",b,b);
return 0;
}
7.求圆的面积周长和圆球的体积
#define PI 3.1415926
#include "stdafx.h"
#include "math.h"
int main(int argc, char* argv[])
{
double r,c,s,v,PI;
PI=3.14;
r=3.67;
c=2*PI*r;
s=PI*pow(r,2);
v=4.0/3.0*PI*pow(r,3);
printf("c=%f\ns=%f\nv=%f\n",c,s,v);
return 0;
}
8.输入三边长求三角形面积(先判断想)
#include "stdafx.h"
#include "math.h"
int main(int argc, char* argv[])
{ double a,b,c,s,area;
scanf("%lf,%lf,%lf",&a,&b,&c);
if (a+b>c&&a+c>b&&b+c>a)
{s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%f\nb=%f\nc=%f\narea=%f\n",a,b,c,area);}
else printf("这三边无法组成三角形\n");
return 0;
}
9. 求根公式
#include "stdafx.h"
#include "math.h"
int main(int argc, char* argv[])
{ double a,b,c,d,x1,x2,p,q;
scanf("%lf,%lf,%lf",&a,&b,&c);
d=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(d/(2*a));
x1=p+q;x2=p-q;
printf("x1=%5.2f\nx2=%5.2f\n ",x1,x2);
return 0;
}
10. 九九乘法表
#include<stdafx.h>
int main()
{
int i,j;
for (i = 1; i < 9; i++)
{
for (j = 1; j < 10; j++)
printf("%4d ",i*j);
printf("\n");
}
}
11. 爱心打印
#include "stdafx.h"
void main(int argc, char* argv[])
{ int row,col;
int m[6][26]={
{0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,1},
{0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1},
{0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1},
{0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0}
};
for(row=0;row<6;row++)
{
for(col=0;col<26;col++)
{ if (m[row][col]==0) printf(" ");
else printf("$");
}
printf("\n");
}
}
12. 字符数组
#include "stdafx.h"//字符
int main(int argc, char* argv[])
{ char c[10];
c[0]='i';
c[1]=' ';
c[2]='a';
c[3]='m';
c[4]=' ';
c[5]='a';
c[6]=' ';
c[7]='b';
c[8]='o';
c[9]='y';
for (int i=0;i<10;i++)
printf("%c ",c[i]);
return 0;
}
13. 字符串打印且有几个单词
#include "stdafx.h"//字符
int main(int argc, char* argv[])
char a[20]="i am a boy";
printf("%s\n ",a);
// return 0;
// }*/
char c;
int num=0;
for (int i=1;i<20;i++)
{ c=a[i];
if (c==' ')
num=num+1;
if (c=='\0' ) break;
}
printf("这个字符串里有%d个单词\n",num+1);
return 0;
}
14. 找出每列最大并打印出位置
#include "stdafx.h"
#include"math.h"
int main(int argc, char* argv[])
{
int i,j,max=0;
for (i=1;i<=5;i++)
{
for (j=1;j<=5;j++)
{
if(i*j>max)
{max=i*j;}
printf("%5d",i*j);
}
printf("第%d行,第%d列,%2d\n",i,j-1,max);printf("\n");
}
return 0;
}
15. 十行杨辉三角形
#include "stdafx.h"
void main(int argc, char* argv[])
{ int a[10][10];
int i,j;
for(i=0;i<10;i++)
{ a[i][0]=1;a[i][i]=1;}
for(i=0;i<10;i++)
{ for (j=1;j<i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(j=0;j<=i;j++) printf("%5d",a[i][j]);
printf("\n");}
}
16. 将数组赋值再打印(双for循环)
#include <stdafx.h>
#include<math.h>
int main()
{int a[5][5];
int i,j;
for ( i=0;i<5;i++)
for( j=0;j<5;j++)
a[i][j]=i*j;
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("a[%d][%d]=%d ",i,j,a[i][j]);
printf("\n");}
return 0;
}
17. 数组形式打印斐波那契数列
#include <stdafx.h>
#include<math.h>
int main()
{int a[5][5];
int i,j;
for ( i=0;i<5;i++)
for( j=0;j<5;j++)
a[i][j]=i*j;
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("a[%d][%d]=%d ",i,j,a[i][j]);
printf("\n");}
return 0;
}
18. 数组赋值再打印
#include "stdafx.h"
int main ()
{
int b[100];
for (int i=0;i<100;i++)
{b[i]=i;}
for (int j=0;j<100;j++)
printf("b[%d]=%d\n",j,b[j]);
return 0;}
19. 斐波那契数列
#include <stdio.h>//斐波那契数列
#include<math.h>
int main()
{int i,x=1,y=1,z;
for (i=1;i<20;i++)
{ z=x+y;
x=y;
y=z;
printf("%d\n",z);}
return 0;
}
20. 十个一组打印200个数
#include "stdafx.h"
int main()
{int i;
for(i=1;i<201;i++){
printf("%5d ",i);
if (i%10==0)
printf("\n");
}
return 0;
}
21. 判断一个数是否为素数
#include <stdafx.h>//判断一个数是否为素数
#include<math.h>
int main()
{
int i, k, m,n;
for(i=1;i<100;i++)
{
k=1;
for (m=2;m<=sqrt(i);m++)
{if(i%m==0) {k=0; printf("i=%d不是素数\n",i);break;}
}
if(k==1){printf("i=%d是素数\n",i);n++;
}
// if(n%9==0) printf("\n");
}
}
22. 输入三个成绩然后由高到低输出
#include "stdafx.h"
int main(int argc, char* argv[])
{ int a,b,c,d;
printf("请输入三个成绩\n");
scanf("%d,%d,%d",&a,&b,&c);
if (a<b) {d=a;a=b;b=d;}
if(a<c) {d=a;a=c;c=d;}
if(b<c) {d=b;b=c;c=d;}
printf("%d %d %d \n",a,b,c);
return 0;
}
23. 输入数量和单价得到货款
#include "stdafx.h"
int main(int argc, char* argv[])
{ int num;
double cost,price,total;
printf("请输入数量和单价:\n");
scanf("%d,%lf",&num,&price);
if(num>=500) cost=0.10;
else
if(num>=300) cost=0.075;
else
if(num>=50) cost=0.05;
else cost=0;
total=num*price*(1-cost);
printf("总价为%5.2f\n",total);
return 0;
}
24. while循环语句使用
#include "stdafx.h"
int main(int argc, char* argv[])
{ int i=0;
while(i<100)
{ i=i+1;
printf("i=%d\n",i);}
printf("Hello World!\n");
return 0;
}
25. 求两个正整数最大公约数和最小公倍数
#include "stdafx.h"
int main(int argc, char* argv[])
{int a,b,c,m,n;
printf("输入两个整数\n");
scanf("%d,%d",&a,&b);
m=a;n=b;
if(a<b)
{c=a;a=b;b=c;}//交换值使a>b
c=a%b;
for(;c!=0;)//辗转相除法求最大公约数
{a=b;b=c;c=a%b; }
printf("最大公约数是%d\n",b);
printf("最小公倍数是%d\n",m*n/b);
return 0;
}
26函数模块化之数字公式
#include "stdafx.h"
jia(int a,int b,int c)
{ int A;
A=a+b+c;
//printf("A=%d\n",A);
return A;
}
jian(int c,int d)
{ int B;
B=c-d;
// printf("B=%d\n",B);
return B;
}
cheng(int e,int f,int m)
{ int C;
C=e*f*m;
//printf("C=%d\n",C);
return C;
}
chu(int g,int h)
{int D;
D=g/h;
printf("D=%d\n",D);
}
int main(int argc, char* argv[])
{ int receive_jia;
receive_jia=jia(10,20,30);
printf("receive_jia=%d\n",receive_jia);
int receive_jian;
receive_jian=jian(300,1);
printf("receive_jian=%d\n",receive_jian);
int receive_cheng;
receive_cheng=cheng(12,6,2);
printf("receive_cheng=%d\n",receive_cheng);
chu(56,7);
return 0;
}
27.函数模块化之字母打印
#include "stdafx.h"
void printf_star(int m)
{for (int i=0;i<m;i++)
printf("*");
printf("\n");
}
int printf_message()
{ printf(" I LOVE YOU!!!!!!\n I LOVE YOU!!!!!!\n");
return 521;
}
int main(int argc, char* argv[])
{ //void printf_star();
int re;
printf_star(66);
re=printf_message();
printf("re=%d\n",re);
printf_star(66);
return 0;
}
28.函数模块化之大小比较
#include "stdafx.h"
//副函数
int printf_max(int a,int b)
{ if (a>b) return a;//printf("max=%d",a);
else return b//printf("max=%d",b);
;
}
//主函数
int main(int argc, char* argv[])
{ int a,b,c,d,MAX;
printf("请输入四个值来比较大小\n");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
MAX=printf_max(a,b);
MAX=printf_max(c,MAX);
MAX=printf_max(d,MAX);
//printf("re=%d\n",re);
printf("%d,%d,%d,%d,max=%d\n",a,b,c,d,MAX);
return 0;
}
29.数组中的正向输入反向输出
#include <stdafx.h>//输入数组反向输出
int main()
{
int b[5],i;
for (i=0;i<5;i++)
scanf("%d",&b[i]);
for ( i=4;i>=0;i--)
printf("%4d",b[i]);
}
30.程序模块化之数组数据求和
#include "stdafx.h"
int sum(int a[],int n)
{ int he=0;
for (int i=0;i<n;i++)
{
he+=a[i];
}
return he;
}
int main(int argc, char* argv[])
{ int S;
int a[10]={12,15,17,19,21,29,61,72,14,13};
S=sum(a,10);
printf("S=%d\n",S);
return 0;
}
31.判断一个年份是否为闰年
#include "stdafx.h"
#include "math.h"
int main()
{
int year;
printf("请输入年份:\n");
scanf("%d\n",&year);
if((year%4==0)&&(year%100!=0)||(year%400==0))
printf("year=%d是闰年",year);
else printf("year=%d是平年\n",year);
return 0;
}
32.输入十个学生的成绩求平均分并输出大于平均分的成绩
#include "stdafx.h"
int main(int argc, char* argv[])
{int i;int s[10];float a=0.0;
printf("请输入是个学生的成绩\n");
for (i=0;i<10;i++)
scanf("%d",&s[i]);
for (i=0;i<10;i++)
a=a+s[i];
a=a/10;
printf("平均数是%2.1f\n",a);
for (i=0;i<10;i++)
if(s[i]>a)
printf("比平均数高的成绩有%3d\n",s[i]);
return 0;
}
33. 奇数和偶数分别相加求和
#include "stdafx.h"
int main(int argc, char* argv[])
{int a,b,c,d;
a=1;b=0;c=1;d=0;
for(int i=0;i<100;i++)
{a=a+2;
b=b+2;
c=c+a;
d=d+b;
printf("奇数项的和为%d\n偶数项的和为%d\n",c,d);}
return 0;
}
34.中国现有13.54亿人口,以每年增长1%何时能到15亿
#include "stdafx.h"
int main(int argc, char* argv[])
{int i;float num=13.54;
while (num<15)
{num=13.54*(1+0.01);
i++;}
printf("%d\n",i);
return 0;
}
35.行和列元素互换
#include "stdafx.h"
int main(int argc, char* argv[])
{int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
printf("%d",a[i][j]);
b[j][i]=a[i][j];
printf("\n");}
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
printf("%d\n",b[j][i]);}
return 0;
}
36.比较数组中数字大小多的数组获胜
#include "stdafx.h"
int main(int argc, char* argv[])
{int red[10]={11,2,34,4,5,68,7,8,92,10};
int blue[10]={13,15,17,19,21,24,28,46,45,78};
int red_N;
int blue_N;
for(int i=0;i<10;i++)
{ if(red[i]<blue[i]) blue_N++;
else red_N++;
}
if (red_N>blue_N) printf("red win\n");
else if (red_N<blue_N) printf("blue win\n");
else printf("red=blue\n");
return 0;
}
37.函数之比较数组中数字大小多的数组获胜
#include <stdafx.h>
higher(int a[],int b[])
{ int high=0;
int red=0;
int blue=0;
for(int i=0;i<10;i++)
{ if(a[i]<b[i]) blue++;
else red++;
}
if (red>blue) high=1;
if (red<blue) high=2;
if (red=blue) high=3;
return high;
}
int main()
{
int a[10]={11,2,34,4,5,68,7,8,92,10};
int b[10]={13,15,17,19,21,24,28,46,45,78};
int high;
high=higher(a,b);
if(high==1) printf("winner is a\n");
if(high==2) printf("winner is a\n");
if(high==3) printf("no winners \n");
return 0;
}