C语言程序设计.docx

上传人:b****5 文档编号:12681822 上传时间:2023-04-21 格式:DOCX 页数:44 大小:32.31KB
下载 相关 举报
C语言程序设计.docx_第1页
第1页 / 共44页
C语言程序设计.docx_第2页
第2页 / 共44页
C语言程序设计.docx_第3页
第3页 / 共44页
C语言程序设计.docx_第4页
第4页 / 共44页
C语言程序设计.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

C语言程序设计.docx

《C语言程序设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计.docx(44页珍藏版)》请在冰豆网上搜索。

C语言程序设计.docx

C语言程序设计

C语言程序设计

CLanguageProgramming

教案

四、重点与难点:

1、数据类型、数据的存储,数据的输入输出格式。

先掌握常用数据类型;

2、常量、符号常量、变量的表示与定义;运算符及表达式,包括算术运算、赋值运算、关系运算、逻辑运算、逗号运算、强制类型运算、条件,求字节运算、位运算等运算符的运算级别、结合原则。

3、程序的三种基本结构:

顺序结构、分支选择结构、循环结构;算法分析和编程方法;

4、函数定义、函数调用、函数声明、参数传递,值传送与地址传送,函数的嵌套调用与递归调用,局部变量与全局变量,变量的存储类别与作用域等。

5、一维数组、二维数组、字符数组与字符串,数组作为函数的参数,数组与指针。

6、指针与地址,变量的指针和指向变量的指针变量,数组的指针与指向数组的指针变量,字符串的指针与指向字符串的指针变量,指针与函数,指针数组,指针的指针。

7、结构体与共用体类型的说明、结构体和共用体变量的定义及初始化方法,类型定义typedef的作用;结构体与共用体变量成员的引用方法;数组、结构体、共用体等构造类型数据的使用方法;存储动态分配和释放;链表的基本概念和基本操作。

8、文件类型指针,文件的打开与关闭,文件的读写,文件的基本处理函数。

二、预习作业

1、程序填空题:

调试程序并写出输出结果(共4小题,每题5分,共20分)

(1)编译预处理命令填空:

(程序名sy1_15.c)

()//(#include)

main()

{

printf("GNUGCC\n");

}

(2)编译预处理命令填空:

(程序名sy1_16.c)

#include

()N4//(#define)N4

main()

{inta=2,b;

b=N*a;

printf(“b=%d\n“,b);

}

(3)主函数定义填空:

(程序名sy1_17.c)

()//(#include)

()//main()

{

printf("MinGW——MinimalistGNUforWindows\n");

}

(4)输出函数填空:

(程序名sy1_18.c)

#include

main()

{

()("GNU/Linux\n");//printf("GNU/Linux\n");

}

2、改错题:

(共4小题,每题5分,共20分)

(1)修改程序中输入/输出的错误。

(程序名sy1_19.c)

#include

main()

{inta,b,c;

/**********Found*************/

scanf(“%d,%d”,a,b);//scanf(“%d,%d”,&a,&b);

c=a+b;

printf(“c=%d\n,&c);//printf(“c=%d\n“,c);

}

(2)修改程序中标识符的错误(程序名sy1_20.c)

#include

/**********Found*************/

mian[]//main()

{inta=8,b=3,c;

c=a/b;

print(“c=%d\n,c);//printf(“c=%d\n“,c);

}

(3)修改程序中错误的分隔符(程序名sy1_21.c)

#include

main()

/**********Found*************/

{inta=8;b=3;c;//inta=8,b=3,c;

c=a/b;b=c;

printf(‘b=%d‘\n,b);//printf(“b=%d\n”,b);

}

(4)修改编译预处理中的错误(程序名sy1_22.c)

/**********Found*************/

#include“stdio.h”

#includePI3.1415926//#definePI3.1415926

main()

{intr=4;

ints;//floats;

s=PI*r*r;

printf(“%f\n“,s);

}

3、读程序写结果:

(共2小题,每题10分,共20分)

(1)求宏代换后的表达式的值。

(程序名sy1_23.c)

#include

#defineM2+3

main()

{inta=2,b=4,c;

c=a*M*b;

printf(“c=%d\n“,c));

}

输出结果为:

(16)

(2)用赋值语句计算表达式的值。

(程序名sy1_24.c)

#include"stdio.h"

#definePI3.1415926

main()

{intr=4;

floats;

s=4/3.0*PI*r*r;

printf("%f\n",s);

}

输出结果为:

(67.020645)

4、改写程序与替换练习(共2小题,每题10分,共20分)

(1)用printf函数输出字符串,已知字符串用转义字符表示的程序如下,试用其他方法编辑输出相同结果的程序。

(程序名sy1_25.c)

#include

main()

{

printf("\x6D\171\t\163\x74\157\x72\171!

\n");//printf("my\tstory!

\n");

}

(2)用scanf函数输入数据的程序如下,试用赋初值的方法输入数据,改写如下程序。

(程序名sy1_26.c)

#include

main()

{inta,b,c;//inta=3,b=4;

scanf("%d,%d",&a,&b);//intc;

c=2*(a*a+b*b);

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

}

5、编程题(共2小题,每题10分,共20分)

(1)试编写输出如下字符的程序。

(程序名sy1_27.c)

--------------------

|Studyhard|

--------------------

#include//包含标准输入输出头文件,程序调用标准输出函数;

main()//经典C的主函数头部;

{//函数体开始;

printf("------------------\n");//

printf("|Studyhard|\n");//

printf("------------------\n");//

}

(2)已知梯形的面积S为16,上底a为3,下底b为5,试编程求梯形的高h。

(程序名sy1_28.c)

解:

梯形的高h=S*2/(a+b);

#include"stdio.h"

#defineS16

main()

{inta=3,b=5;

floath;

h=S*2/(a+b);

printf("%f\n",h);

}

第2次课4学时

授课章节:

第二章数据类型、运算符与表达式(4学时)

二、预习作业

1、程序填空题:

调试程序并写出输出结果(共4小题,每题5分,共20分)

(1)数据类型填空:

(文件名:

sy2_32.c)

#include

main()

{

()iA=8,iB=5;//int

printf("%d\n",iA%iB);

}//输出结果为(3)

(2)变量名填空:

(文件名:

sy2_33.c)

#include

main()

{

int();//iA,iB,iC

iC=(iB=2)&&(iA=3);

printf("iA=%d,iC=%d\n",iA,iC);

}//输出结果为(iA=3,iC=1)

(3)运算符填空:

输出变量dA占用的字节数。

(文件名:

sy2_34.c)

#include

main()

{

doubledA=3.0;

printf("%d\n",();//sizeofdA

}//输出结果为(8)

(4)条件表达式填空:

已知iA=4,iB=2,将两者中的小数赋给iC。

(文件名:

sy2_35.c)

#include

main()

{

intiA=4,iB=2,iC;

iC=();//iA

iA:

iB;

printf("%d\n",iC);

}//输出结果为

(2)

2、改错题:

(共4小题,每题5分,共20分)

(1)修改程序中数据数据类型的错误:

输入a的值为65,将a右移2位赋给b,a左移2位赋给c。

(文件名:

sy2_36.c)

#include

main()

{

/****************Found****************/

floata,b,c;//int

scanf("%d",a);//&a

b=a>>2;

c=a<<2;

printf("b=%d,c=%d\n",b,c);

}//当输入65,输出b=16,c=260

(2)修改程序中强制类型转换运算符的错误:

(文件名:

sy2_37.c)

#include

main()

{

inta=6,b=4;

floatc;

/****************Found****************/

c=float(a)/b;//c=(float)a/b;

print(“c=%d\n,c);//printf("c=%f\n",c);

}//输出结果为c=1.500000

(3)修改程序中赋值表达式的错误:

(文件名:

sy2_38.c)

#include

main()

{

/****************Found****************/

inta,b,c;

c=(a=2,)||(b=3;)//c=(a=2)||(b=3);

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

}//输出结果为c=1

(4)修改程序中的错误:

将逗号表达a+=2,b+=3,a+b的值赋给c。

(文件名:

sy2_39.c)

#include

main()

{inta=1,b=2,c;

/****************Found****************/

c=a+=2,b+=3,a+b;//c=(a+=2,b+=3,a+b);

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

}//输出结果为c=8

3、读程序写结果:

(共2小题,每题10分,共20分)

(1)写出逻辑表达式的计算结果:

(文件名:

sy2_40.c)

#include

main()

{intx=0,y=2,k;

k=x++<=0&&!

(y--<=0);

printf("%d,%d,%d\n",k,x,y);

}

输出结果为:

(1,1,1)

(2)写出强制类型转换表达式的计算结果:

(文件名:

sy2_41.c)

#include

main()

{inta=2,b=3;

floatx=3.9f,y=2.3f,r;

r=(float)(a+b)/2+(int)x%(int)y;

printf("%f\n",r);

}

输出结果为:

(3.500000)

4、改写程序(共2小题,每题10分,共20分)

(1)用逗号表达式改写如下程序,使得变量x、y、z的输出结果相同。

(文件名:

sy2_42.c)

#include

main()

{intx,y,z;

z=(x=3)&&(y=4);//z=(x=3,y=4,y>x);

printf("x=%d,y=%d.z=%d\n",x,y,z);

}

(2)改写字符变量的取值范围,使输出的字符变量不产生溢出。

(文件名:

sy2_43.c)

#include

main()

{

charchA='A',chB='B';//unsignedcharchA='A',chB='B';

chA+=chB;

printf("chA=%d\n",chA);

}

5、编程题(共2小题,每题10分,共20分)

(1)输入两个整数iX和iY,如3,5,试编写输出iZ=|iX-iY|值的程序。

(文件名:

sy2_44.c)

#include

main()

{

intiX,iY,iZ;

scanf("%d,%d",&iX,&iY);

iZ=iX>iY?

iX-iY:

iY-iX;

printf("iZ=%d\n",iZ);

}

(2)输入一个小数位超过4位的浮点数,将其精确到小数点后两位。

文件名:

sy2_45.c)

#include

main()

{

floatiX,iY;

scanf("%f",&iX);

iY=(int)(iX*100+0.5)/100.0;

printf("iY=%f\n",iY);

}

授课章节:

第三章顺序结构程序设计

1、程序填空题:

试在括号中填入正确的答案,并上机验证程序的正确性。

(1)输入大写字符A,则输出为(C65,a)。

()//#include

main()

{()//charch,chr;

chr=(ch=getchar())<’Z’+1?

ch+32:

ch-32;

putchar(ch+2);

printf(“%d,%c\n”,ch,chr);

}

(2)已知变量a=80000,b=60000,输出二数据之和c,与二数之差d。

#include

main()

{()a=80000,b=60000,c,d;//int

()=(a-b,a+b);//c

()=(a+b,a-b);//d

printf("%ld.%ld\n",c,d);

}//输出结果为140000,20000

3、读程序写结果并上机验证其正确性

(1)变量 a,b,c,d如下,分别输出各种类型的变量a,输出表达式c+a,d–32的值。

#include

main()//结果为:

-1,4294967295,377777777777,ffffffff

{inta=-1,b=2;//C,B

charc=‘D’,d=‘b’;

b=b+c;

printf(“%d,%u,%o,%x\n”,a,a,a,a);

printf(“%c,%c\n”,c+a,d-32);

}

(2)运行程序后输入B空格o空格y回车后输出结果是(B,o)。

#include

main()

{intch1,ch2,ch3;

ch1=getchar();ch2=getchar();

scanf("%c",&ch3);

putchar(ch1);putchar(ch2);

printf("%c\n",ch3);

}

4、编程题

(1)给变量abc输入一个3位数,请编程分离出这个数的百位、十位、个位,分别赋给变量a,b,c,输出a,b,c的值。

#include"stdio.h"

main()

{intabc,a,b,c;

scanf("%d",&abc);

a=abc/100;

b=abc/10-a*10;

c=abc%10;

printf("%d,%d,%d\n",a,b,c);

}

(2)输入一个四位小数的浮点数,如16.4572,试编程将该数精确到小数点后的二位。

#include"stdio.h"

main()

{floata,b;

scanf("%f",&a);

printf("a=%f\n",a);

b=(int)(a*100+0.5)/100.0;

printf("a=%f,b=%f\n",a,b);

getch();

}

授课章节:

第四章选择结构程序设计

1、程序填空题:

试在括号中填入正确的答案,并上机验证程序的正确性。

(1)下面程序用于判断从键盘输入的一个字符是数字、大写字母或小写字母。

#include//(程序名:

sy4_20.c)

main()

{charch;

if(ch=getchar())!

=’#’))

{if(ch>=’0’)printf(“number”);//&&ch<=’9’

if(ch>=’A’)printf(“Upper”);//&&ch<=’Z’

if(ch>=’a’)printf(“Litter”);}//&&ch<=’z’

printf(“\n”);

}

(2)已知m的初值为4,试填写变量说明语句,输出结果为(3,4)。

#include//(程序名:

sy4_22.c)

main()

{

()//intm=4,n;

if(m%4)n=m++;

elsen=--m;

printf("%d,%d",m--,++n);

getch();

}

2、程序改错并上机调试运行

(1)输入a,b两个数,若a与b相等,将a+b赋给c;如若a与b不相等,将a-b赋给c

#include//(程序名:

sy4_23.c)

main()

{/**********found**********/

inta,b,c,max;

scanf(“%d,%d”,a,b);//&a,&b

max=a;

if(max=b)c=a+b;//max==b

elsec=a-b;

printf(“c=%d\n”,c);

}

(2)改正程序中switch-case语句出现的错误。

#include//(程序名:

sy4_24.c)

main()

{charch='d';

/**********found**********/

switch(ch–32);//switch(ch-32){

casea;//case'a':

;

default:

printf("%c\n",ch);

case'b':

printf("%d",ch);

}

}

3、读程序写结果并上机验证其正确性

(1)选择结构程序如下,当a=1,b=3,c=5,d=4时,执行下面程序后,x的值为(x=2)

#include//(程序名:

sy4_25.c)

main()

{inta=1,b=3,c=5,d=4,x;

if(a

if(c

elseif(a

If(b

elsex=3;

elsex=6;

elsex=7;

printf(“x=%d”,x);

}

(2)求表达式的输出结果。

(程序名:

sy4_26.c)

#include//结果为:

a=1,b=2

main()

{intx=1,y=1,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;}

case2:

a++;b++;break;

case3:

a--;b--;break;

default:

a++;b--;}

printf("\na=%d,b=%d",a,b);

getch();

}

4、编程题

(1)试编写一个程序,输入a,b,c三个值,输出最大值max和最小值min。

#include//(程序名:

sy4_27.c)

main()

{intiA,iB,iC,iMax,iMin;

printf("inputiA,iB,iC“);

scanf("%d,%d,%d",&iA,&iB,&iC);

iMax=iA;

iMin=iA;

if(iB>=iMax)iMax=iB;

if(iB<=iMin)iMin=iB;

if(iC>=iMax)iMax=iC;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1