C语言课堂教学案例

2020-03-02 03:31:07 来源:范文大全收藏下载本文

C语言课堂教学案例

2、输入三角形三边长,求三角形面积。 #include \"math.h\" main() {

float a,b,c,s,area;

scanf(\"%f ,%f,%f\",&a,&b,&c); s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(\"area=%f\\n\",area); }

例2 从键盘输入一个大写字母,要求改用小写字母输出。 #include main() {

char c1,c2;

c1=getchar();

printf(\"%c,%d\\n\",c1,c1);

c2=c1+32;

printf(\"%c,%d\\n\",c2,c2); }

【例2】输入并运行程序,写出运行结果。 main() {

int a,b,sum;

a=123;b=456;

sum=a+b;

printf(\"sum is %d\\n\",sum); }

1、已知三个数a,b,c,找出最大值放于max中。 #include \"stdio.h\" main() {

int a,b,c,max;

/*定义四个整型变量*/ scanf(\"a=%d,b=%d,c=%d\",&a,&b,&c); if (a>=b)

max=a;

/*a>=b*/ else

max=b;

/*amax)

max=c;

/*c是最大值*/ printf(\"max=%d\",max); }

2、输入某学生的成绩,经处理后给出学生的等级,等级分类如下:

90分以上(包括90): A

80至90分(包括80):B

70至80分(包括70):C

60至70分(包括60):D

60分以下:E

#include\"stdio.h\" main() {

int score;

char grade;

printf(\"\\nplease input a student score:\");

scanf(\"%d\",&score);

if(score>100||score

printf(\"\\ninput error!\");

else

{ if(score>=90)

grade=\'A\';

else

{ if(score>=80)

grade=\'B\';

else

{if(score>=70) grade=\'C\';

else

{ if(score>=60) grade=\'D\'; else grade=\'E\';

}

}

}

printf(\"\\nthe student grade:%c\\n\",grade);

} }

方法二:用switch语句

#include\"stdio.h\" main() { int g,s; char ch; printf(\"\\ninput a student grade:\"); scanf(\"%d\",&g); s=g/10; if(s10) printf(\"\\ninput error!\");

4 else { switch (s) { case 10: case 9: ch=\'A\'; break; case 8: ch=\'B\'; break; case 7: ch=\'C\'; break; case 6: ch=\'D\'; break; default: ch=\'E\'; } printf(\"\\nthe student scort:%c\\n\",ch); } }

【程序6】

题目:用*号输出字母C的图案。

1.程序分析:可先用’*’号在纸上写出字母C,再分行输出。 2.程序源代码: #include\"stdio.h\" main() {

printf(\"hello c-world\\n\");

printf(\" ***\\n\");

printf(\" *\\n\");

printf(\"*\\n\");

printf(\"*\\n\");

printf(\"*\\n\");

printf(\" ****\\n\"); }

=============== 【程序7】

题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! 1.程序分析:字符共有256个。不同字符,图形不一样。

2.程序源代码:

#include “stdio.h“ main() { char a=176,b=219; printf(“%c%c%c%c%c\\n“,b,a,a,a,b); printf(“%c%c%c%c%c\\n“,a,b,a,b,a); printf(“%c%c%c%c%c\\n“,a,a,b,a,a); printf(“%c%c%c%c%c\\n“,a,b,a,b,a); printf(“%c%c%c%c%c\\n“,b,a,a,a,b);}

=============== 【程序8】

题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 2.程序源代码:

6 #include \"stdio.h\" main() { int i,j,result; printf(\"\\n\"); for(i=1;i

for(j=1;j

{

result=i*j;

printf(\"%d*%d=%-3d\",i,j,result); /*-3d表示左对齐,占3位*/

} } } printf(\"\\n\");/*每一行后换行*/

===============

【程序9】

题目:要求输出国际象棋棋盘。

1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 2.程序源代码: #include\"stdio.h\" main() {int i,j; for(i=0;i

7 if((i+j)%2==0) printf(\"%c%c\",219,219); else

printf(\" \\n\"); } } =============== 【程序10】

题目:打印楼梯,同时在楼梯上方打印两个笑脸。

1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 2.程序源代码:

#include\"stdio.h\" main() { int i,j; printf(\"\\1\\1\\n\");/*输出两个笑脸*/

} for(i=1;i

printf(\"%c%c\",219,219); } printf(\"\\n\");

【程序5】

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

8 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x〉y则将x与y的值进行交换,然后再用x与z进行比较,如果x〉z则将x与z的值进行交换,这样能使x最小。 2.程序源代码:

main() { int x,y,z,t; scanf(\"%d%d%d\",&x,&y,&z); if (x>y) {t=x;x=y;y=t;} /*交换x,y的值*/ if(x>z) {t=z;z=x;x=t;}/*交换x,z的值*/ if(y>z) {t=y;y=z;z=t;}/*交换z,y的值*/ printf(\"small to big: %d %d %d\\n\",x,y,z); }

===============

【程序23】

题目:打印出如下图案(菱形) * *** ****** ******** ****** *** * 1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。 2.程序源代码:

9 main() {

int i,j,k; for(i=0;i

printf(\" \"); for(k=0;k

printf(\"*\"); printf(\"\\n\"); } for(i=0;i

printf(\" \"); for(k=0;k

printf(\"*\"); printf(\"\\n\"); } }

【程序34】

题目:练习函数调用 1.程序分析: 2.程序源代码: #i nclude

10 printf(“Hello, world!\\n“);

} void three_hellos(void) { int counter; for (counter = 1; counter

===============

【程序37】

题目:对10个数进行排序

1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

2.程序源代码:

#define N 10 main() { int i,j,min,tem,a[N]; /*input data*/

printf(\"please input ten num:\\n\"); for(i=0;i

scanf(\"%d\",&a[i]); } printf(\"\\n\"); for(i=0;i

printf(\"%5d\",a[i]); printf(\"\\n\");

/*sort ten num*/

11 for(i=0;i

for(j=i+1;j

if(a[min]>a[j])

min=j;

tem=a[i];

a[i]=a[min];

a[min]=tem; } /*output data*/ printf(\"After sorted \\n\"); for(i=0;i

===============

【程序40】

题目:将一个数组逆序输出。

1.程序分析:用第一个与最后一个交换。 2.程序源代码:

#define N 5 main() { int a[N]={9,6,5,4,1},i,temp;

12 printf(“\\n original array:\\n“);

for(i=0;i

for(i=0;i

a[i]=a[N-i-1];

a[N-i-1]=temp; } printf(“\\n sorted array:\\n“); for(i=0;i

}

【程序66】

题目:输入3个数a,b,c,按大小顺序输出。

1.程序分析:利用指针方法。 2.程序源代码: /*pointer*/ main() { int n1,n2,n3; int *pointer1,*pointer2,*pointer3; printf(\"please input 3 number:n1,n2,n3:\"); scanf(\"%d,%d,%d\",&n1,&n2,&n3); pointer1=&n1; pointer2=&n2; pointer3=&n3; if(n1>n2) swap(pointer1,pointer2); if(n1>n3) swap(pointer1,pointer3); if(n2>n3) swap(pointer2,pointer3); printf(\"the sorted numbers are:%d,%d,%d\\n\",n1,n2,n3); } swap(p1,p2) int *p1,*p2; {int p; p=*p1;*p1=*p2;*p2=p; } ===============

13

【程序70】

题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

1.程序分析: 2.程序源代码:

main() { int len; char *str[20]; printf(\"please input a string:\\n\"); scanf(\"%s\",str); len=length(str); printf(\"the string has %d characters.\",len); } length(p) char *p; { int n; n=0; while(*p!=\'\\0\') { n++; p++; } return n; }

【程序71】

题目:编写input()和output()函数输入,输出5个学生的数据记录。 1.程序分析: 2.程序源代码: #define N 5 struct student { char num[6]; char name[8]; int score[4]; } stu[N];

14 input(stu) struct student stu[]; { int i,j; for(i=0;i { printf(\"\\n please input %d of %d\\n\",i+1,N);

printf(\"num: \");

scanf(\"%s\",stu[i].num);

printf(\"name: \");

scanf(\"%s\",stu[i].name);

for(j=0;j

{ printf(\"score %d.\",j+1);

scanf(\"%d\",&stu[i].score[j]);

}

printf(\"\\n\"); } } print(stu) struct student stu[]; { int i,j; printf(\"\\nNo.Name Sco1 Sco2 Sco3\\n\"); for(i=0;i{ printf(\"%-6s%-10s\",stu[i].num,stu[i].name); for(j=0;j

printf(\"%-8d\",stu[i].score[j]); printf(\"\\n\"); } } main() { input(); print(); } =====================

【程序88】

题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。

1.程序分析: 2.程序源代码: main()

15 {

} int i,a,n=1; while(n

scanf(\"%d\",&a); } while(a50); for(i=1;i

printf(\"*\"); printf(\"\\n\"); n++; } getch();

【程序97】

题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。 1.程序分析:

2.程序源代码: #include \"stdio.h\" main() { FILE *fp; char ch,filename[10];

16 scanf(\"%s\",filename); if((fp=fopen(filename,\"w\"))==NULL) {printf(\"cannot open file\\n\"); exit(0);} ch=getchar(); ch=getchar(); while(ch!=\'#\') {fputc(ch,fp);putchar(ch); ch=getchar(); } fclose(fp); } ===============

【程序98】

题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。 1.程序分析: 2.程序源代码:

#include \"stdio.h\" main() {FILE *fp; char str[100],filename[10]; int i=0; if((fp=fopen(\"test\",\"w\"))==NULL) { printf(\"cannot open the file\\n\"); exit(0);} printf(\"please input a string:\\n\"); gets(str); while(str[i]!=\'!\') { if(str[i]>=\'a\'&&str[i]

17 printf(\"%s\\n\",str); fclose(fp); }

在C源文件当前的目录下可以看到:test的文件

=============== 【程序99】

题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。 1.程序分析: 2.程序源代码:

#include \"stdio.h\" main() { FILE *fp; int i,j,n,ni; char c[160],t,ch; if((fp=fopen(\"A\",\"r\"))==NULL) {printf(\"file A cannot be opened\\n\"); exit(0);} printf(\"\\n A contents are :\\n\"); for(i=0;(ch=fgetc(fp))!=EOF;i++) {c[i]=ch; putchar(c[i]); } fclose(fp);

18 ni=i; if((fp=fopen(\"B\",\"r\"))==NULL) {printf(\"file B cannot be opened\\n\"); exit(0);} printf(\"\\n B contents are :\\n\"); for(i=0;(ch=fgetc(fp))!=EOF;i++) {c[i]=ch; putchar(c[i]); } fclose(fp); n=i; for(i=0;ifor(j=i+1;jif(c[i]>c[j]) {t=c[i];c[i]=c[j];c[j]=t;} printf(\"\\n C file is:\\n\"); fp=fopen(\"C\",\"w\"); for(i=0;i{ putc(c[i],fp); putchar(c[i]); } fclose(fp); } =============== 【程序100】

题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出

平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件\"stud\"中。 1.程序分析: 2.程序源代码: #include \"stdio.h\" struct student { char num[6]; char name[8]; int score[3]; float avr; } stu[5]; main() {int i,j,sum; FILE *fp; /*input*/

19 for(i=0;i

=============== 21

C语言

C语言

c语言

c语言

c语言

C语言

C语言

C语言

C语言

c语言

《C语言课堂教学案例.doc》
C语言课堂教学案例
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文