C程序设计课程总结 本文关键词:程序设计,课程
C程序设计课程总结 本文简介:本课程总结第一章引言目的:初步了解C语言程序,学会使用C语言环境编辑运行C程序。要求:掌握程序设计语言、程序、算法的概念,了解算法的特点,熟悉算法的设计步骤,掌握用流程图表达算法的方法。了解C语言程序的结构特点,掌握在TurboC集成环境下编辑、运行简单C语言程序的方法。教学重点:C语言程序的结构特
C程序设计课程总结 本文内容:
本课程总结
第一章
引言
目的:初步了解C语言程序,学会使用C语言环境编辑运行C程序。
要求:掌握程序设计语言、程序、算法的概念,了解算法的特点,熟悉算法的设计步骤,掌握用流程图表达算法的方法。了解C语言程序的结构特点,掌握在Turbo
C集成环境下编辑、运行简单C语言程序的方法。
教学重点:C语言程序的结构特点;在Turbo
C集成环境下运行C程序
教学难点:算法设计和算法描述。
算法:
算法:就是解决问题的方法。
计算机算法可分为两类别:
数值运算算法
—求数值解,用在科学计算。
非数值运算算法
—求非数值解,用在事物处理。
数值运算算法
例如:已知三角形的底a等8,高h等14,求三角形的面积s。则
数值运算算法为:
1、
a=8
a的值等于8
2、
h=14
h的值等于14
3、
s=a*h/2
计算面积S
非数值运算算法
例如从湛江乘火车去北京开会,其算法为:
1、买火车票
2、按时到车站
3、登上火车
4、到北京站后乘电车到会场
5、参加会议
C语言的特点:
C语言的基本结构
(1)函数是组成C程序的基本单位,一个C的源程序有且只有一个main函数,但可以有若干个其它的函数。
(2)一个函数由两个部分组成:
函数的首部:函数的第一行,包括函数名、函数类型、函数参数(形参)名、参数类型等。
函数体:由声明和执行两部分组成。
(3)一个C程序总是从main函数开始执行的,不管main函数在整个程序中的位置如何。
(4)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
(5)每个语句和数据定义的最后必须有一个分号。
(6)C语言本身没有输入输出语句,输入和输出的操作是由库函数scanf和printf等函数来完成的。
(7)可用/*……*/
或
//……
对C程序中的任何部分作注释,以增加程序的可读性。
标识符与关键字:标识符用来表示函数、类型、变量的名称,使字母、下划线和数字的排列,必须用字母、下划线开头;关键字不能作为变量或函数名来使用。
C语言程序的开发环境:VC、TC
第二章
C语言的基础知识
目的:通过对本章的学习,要求掌握C语言的基本要素:字符集、标示符、关键字;C语言的基本数据类型。
要求:掌握数据类型、常量、变量的概念及变量的定义和使用方法;
教学重点:基本数据类型的表示方法,常量、变量的使用方法;
基本数据的三种类型及表示形式:
整型
int
(十、八-
-以数字0开头、十六进制—以0X开头)
实型
float(十进制制、指数形式----
e之前必须有数字,e之后指数必须为整数)
字符型:char(注意常见的转义字符)
转义字符
转义字符的意义
/n
回车换行
/t
横向跳到下一制表位置
/v
竖向跳格
/b
退格
/r
回车
/f
走纸换页
//
反斜线符“/”
/‘
单引号符
/”
双引号
/a
鸣铃
/ddd
1~3位八进制数所代表的字符
/xhh
1~2位十六进制数所代表的字符
常量和变量:变量类型与变量的定义
运算符:符号、优先级别、结合方向;尤其注意前增、前减、后增、后减和条件运算
表达式:表达式的值及类型(注意类型的强制转换)
第三章
简单语句与顺序结构程序设计
目的:通过本讲学习,达到进行顺序结构程序设计的目的。
要求:了解程序的三种控制结构及其特点,能对任何一种结构绘制流程图;
掌握基本输出输入函数的基本格式及其主要用法;能够设计顺序结构程序。
教学重点:printf()和scanf()函数的基本格式及其主要用法。
1、C语言的基本语句
2、字符输入、输出:putchar()
getchar()
3、格式输入输出:scanf(“%d”,输入序列:123456[ENTER]
结果:x=123,y=45
2:scanf
(“%d,%d:%f“,输入序列:1,2:3.5[ENTER]
结果:x=1,y=2,z=3.5
3:scanf
(“%d%d%d“,输入序列一:1
2
3[ENTER]
输入序列二:1[TAB]2
3[ENTER]
输入序列三:1[ENTER]
2
3[ENTER]
第四章
选择结构程序设计
目的:通过本讲学习,达到能够使用if语句和switch语句进行程序设计的目的。
要求:掌握if语句三种形式(if,if-else,if-else
if)和执行过程,掌握if语句嵌套概念;掌握条件运算;掌握多路分支switch语句的格式和执行过程。
教学重点:if语句和switch语句的格式和执行过程。
关系运算和关系表达式:>、=
、b)
max=a;
else
max=b;
三、多支选择:
int
a=5,b=7,c=9max;
if(a>b)
if(a>c)
max=a;
else
max=c;
else
if(
b>c)
max=b;
else
max=c;
条件语句注意的问题:
1、
if(
)后面一般不跟“;”号。
如:
if(a>c)
;
max=c;
条件不影响后面语句。
2、
else
与if
的配对
3、
比较两个变量是否相等,必须用“=
=”两个等号。
如:
if(a==b)
c=a;
4、
if(
)语句括号内的值为
0,表示条件不成立。非0表示条件成立。
分情况语句switch()语句和break语句的使用
条件语句的应用例题:
1、将字母换成小写。
main()
{
char
c;
scanf(“%d”,%c);
if(
‘A’<=c
printf(“%c”,c);
}
2.
给出一个3位的正整数。按反序打印每位数。
例如:321,应输出123。
main()
{
int
n,a,b,c;
scanf(“%d”,a=n/100;
b=n%100/10;
c=n%10;
printf(“/n%d%d%d”,c,b,d);
}
3.switch语句的例子
例1:
#include
“stdio.h“main()
{
char
s[]=“ABCCDA“;
int
k;char
c;
printf(“/n“);
for(k=1;(c=s[k])!=
/0
;k++)
{switch(c)
{
case
A
:putchar
(
%
);
continue;
case
B
:
++k;break;
default
:putchar(
);
case
C
:putchar(
continue;}
putchar(
#
);}}
答案:#
while((c=getchar())!=
/n
)
switch(c-
2
)
{
case
0:
case
1:putchar(c+4);
case
2:putchar(c+4);break;
case
3:putchar(c+3);
default:putchar(c+2);break;
}
printf(“/n“);}
若输入为2473,则输出是:668977。
例3:func(1)
=
?
int
func(int
a)
{
int
b;
switch(a)
{
case
1:
b
=
30;
case
2:
b
=
20;
case
3:
b
=
16;
default:
b
=
0;
}
return
b;
}
第五章
循环结构程序设计
目的:通过本讲学习,达到使用循环控制语句编写循环控制程序的目的。
要求:掌握while、do-while、for三种循环结构格式以及执行流程;掌握三种循环结构的区别。
重点:while、do-while、for三种循环的结构格式以及执行流程、break语句和continue语句的功能及应用。
主要掌握循环三个变量:
循环从哪开始-----初始值
到哪结束----终止值
步长多少。
for(i=0;i<=99;i++)
printf(“%d”,a[i]);
循环语句注意的问题:
1、
for(
)后面一般不跟“;”号。
如:
for(i=0;i<=99;i++);
printf(“%d”,a[i]);
管不了不后面的printf(“%d”,a[i]);
语句。
2、
while()语句的步长变量必须在循环体内改变。
例:i=1;
While(i<10)
{
printf(“%d”,i);
i++;}
否则死循环。
3、
while(
)语句括号内的值为
0,表示条件不成立。非0表示条件成立。
例:
int
i,j;
for(i=5;i;i--)
for(j=1;j<5;j++)
{
}
假若内循环体内不存在中止循环的控制语句,则内循环体执行的总次数为___A___。
A.
20
B.
24
C.
25
D.
30
循环的应用例题:
一、一重循环的应用:
1、输入10个数据到数组a[10].
main()
{
int
i,a[10];
for(i=0;i<=9;i++)
scanf(“%d”,%a[i]);
}
2、已知有十个学生的成绩,
求最高分max和最低分min,所在的下标ma,mi。
main()
{
int
max,mink,ma;
int
a[10]={88,78,76,89,66,65,68,99,77,89};
max=a[0];
ma=0;
for(k=1;k<=9;k++)
if(max
{
max=a[k];
ma=k;}
min=a[0];
for(k=1;ka[k])
{
min=a[k];
mi=k;}
printf(“/n
max=%d,min=%d”,max,min);
}
二重循环的应用:
1、打印图形
例题:打印下面图案:************************
总共打印4行,每行打印6个星号。
分析:
要求打n行.
每行打若干”*”
换行.
main()
{
int
I,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=6;j++)
printf(“*”);
printf(“/n”);
}
}
2、将数组
a[10]={88,78,76,89,66,65,68,99,77,89};从小到大排序
main()
{
int
i,j,ma;
int
a[10]={88,78,76,89,66,65,68,99,77,89};
for(i=0;k<9)
for(j=i+1;ja[j])
{
ma=a[i];a[i]=a[j];a[j]=ma;}
for(i=0;ib?a:b;
return
m;
}
main()
{
float
a,b,m;
Scanf(“%f,%f”,m=max(a,b);
调用子程序max
printf(“%f”,m);
}
2、求出100—500内所有的素数,并按5个一排打印出来。
prim(int
n)
{
int
k,fg;
for(k=2;k<=n/2;k++)
if(n%k=
=0)
{
fg=0;break;}
else
fg=1;
return
fg;
}
main()
{
int
k,x,cnt=0;
for(k=100;k<=500;k++)
{
if(prim(k))
{
if(cnt%5==0)
printf(“/n”);
printf(“%d”,k);
cnt++;}
}}
4、
用函数递归实现求n!
。
#include
long
fat(int
n)
{
long
y;
if
(n=
=1)
y=1;
else
y=n*fat(n-1);
return
y;
}
void
main()
{int
n;
long
fa;
scanf(“%d”,fa=fat(n);
printf(“%d
!=
%ld/n”,n,fa);
}
4、教材
第72页
例6.3
第74页
例6.5
变量作用域与存储方式:
注意:局部变量、全局变量的概念及特点
动态存储于静态存储比昂两的不同。
例:写出程序运行结果
int
sum(int
a)
{
auto
int
c=0;
static
int
b=3;
c+=1;
b+=2;
return(a+b+c);
}
void
main()
{
int
I;
int
a=2;
for(I=0;I<5;I++)
{
printf(“%d,“,sum(a));
}
}
8,10,12,14,16
预编译处理:
1、宏定义:无参数的宏定义、带参数的宏定义方法和注意事项
2、文件包含
第七章
数组(一维数组和二维数组)
目的:通过本讲介绍,达到使用数组进行基本编程的目的。
要求:掌握一维数组和二维数组的定义和初始化及引用;掌握一维数组的编程应用和二维数组的简单编程应用;了解数组作为函数参数的使用。
重点:一维数组和二维数组的定义、初始化及其数组元素的引用方法。
数组的概念
?
数组:具有相同类型的数据组成的序列,是有序集合
数组定义形式:数据类型
数组名[常量表达式]
◆
数据类型:数组的基本类型
有整型、实型、字符型等。
int
a[10]
float
b[10]
char
c[10]
l
数组名
对数组的标识,遵循C语言标识符规则
l
常量表达式
是数组元素的个数,即数组长度。
int
a[10]
10
它必须是常量。
下标:元素在数组的位置.
下标的上界:
0
下界:
9
数组的成员称为数组元素。
数组的基本应用:(必须掌握)
1.对一组数,求累加数,平均数。
2.对一组数,求最大值或最小值和下标。
3.将最小(大值)调到前面。
4.对一组数,按最大(小)值排序。
5.
将字符数组从小到大排序.
6.
对字符数组,把字母
a换成b,b---c,z---a.
7.对一组数a[],按给出的条件取数,赋给另外一个数组b[]。再对b[]排序。(难,等级考试题)
例题1、对字符数组,把字母
a换成b,b---c,z---a.
main()
{
int
i,j;
/*‘a’---‘b’
‘a’+1*/
char
a[10]={‘a’,’c’,’e’,…’u’};
for(i=0;i=’a’
else
if(a[i]==’z’)
a[i]==’a’;}
}
2、对一组数a[],把偶数的元素,赋给另外一个数组b[]。再对b[]排序。(难,等级考试题)
main()
{
int
b[16],cnt=0,I,j,y;
int
a[16]={12,32,11,33,43,45,66,88,78,46,69,99,98,87,76,65};
for(i=0;i<16;i++)
if((a[i])%2==0)
b[cnt++]=a[i];
for(i=0;i for(j=i+1;jb[j]) {y=b[i];b[i]=b[j];b[j]=y;} for(i=0;i printf(“%d,”,b[i]); } 第八章 指针(指针基础) 目的:通过本讲介绍,达到应用指针进行基本编程的目的。 要求:掌握指针和指针变量的概念、掌握指针变量的定义、赋值方法,熟练使用指针访问简单变量;掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素;了解指针和二维数组的关系,掌握用指针表示二维数组元素的方法;掌握指针与字符串的关系。 例:a[q - p] = ? int a[3]; a[0]=0; a[1]=1; a[2]=2; intp,q; p=a; q= float ; char ; 必须有说明语句, scanf(“格式符“, } 必须有输出语句 C程序编写容易犯的错误 1、 有变量运算,没有说明语句。 2、 输入语句 scanf(),变量前面没写”&”地址符。 3、 用到大写字母开头或大写的函数名。如Printf(),SIN(x) 4、 打印语句printf()“格式符”或变量名错。
篇2:程序设计基础专周报告
程序设计基础专周报告 本文关键词:周报,程序设计,基础
程序设计基础专周报告 本文简介:成都电子机械高等专科学校专周报告课程名称程序设计基础专周专周题目学生成绩管理系统姓名班级学号指导教师设计时间成都电子机械高等专科学校计算机工程系一、题目和设计要求一、题目学生成绩管理系统二、功能说明1、学生成绩信息包括:学号、姓名、4门课程的成绩、总分及平均分;2、能完成对学生成绩的录入、修改;3、
程序设计基础专周报告 本文内容:
成都电子机械高等专科学校
专
周
报
告
课程名称
程序设计基础专周
专周题目
学生成绩管理系统
姓
名
班
级
学
号
指导教师
设计时间
成都电子机械高等专科学校计算机工程系
一、题目和设计要求
一、题目
学生成绩管理系统
二、功能说明
1、学生成绩信息包括:学号、姓名、4门课程的成绩、总分及平均分;
2、能完成对学生成绩的录入、修改;
3、能计算总分及平均分
4、成绩排序
(1)能根据学生平均分排序;
(2)能根据指定科目成绩排序;
5、查询功能
(1)能按指定学号和姓名显示学生成绩
(2)能按指定科目显示不及格学生信息(学号、姓名、指定科目成绩)
(3)显示全部学生的全部成绩。
三、设计要求
1、学生成绩信息可用数组存储(可初始化部分数据)。
2、提供菜单选择功能。
3、程序结构合理,各功能通过函数调用实现。
4、必须要有必要的注释信息。
程序源代码
#include
#include
void
shuru();
void
chakan();
void
jisuan();
void
xiougai();
void
paixu();
int
num[100]={1,2,3,4};
char
name[100][20]={“A“,“B“,“C“,“D“};
int
score[100][6]={{97,84,93,95},{89,97,88,91},{95,91,86,94},{93,95,93,94}};
int
i,j,y;
void
main(void)
{
printf(“学生成绩管理系统/n“);
for
(i=0;i=0;i--)
{
for(j=0;j=0;i--)
{
for(j=0;j=0;i--)
{
for(j=0;j=0;i--)
{
for(j=0;j
if(score[j][4] { k=score[j][4]; score[j][4]=score[j+1][4]; score[j+1][4]=k; k=score[j][1]; score[j][1]=score[j+1][1]; score[j+1][1]=k; k=score[j][2]; score[j][2]=score[j+1][2]; score[j+1][2]=k; k=score[j][3]; score[j][3]=score[j+1][3]; score[j+1][3]=k; k=score[j][0]; score[j][0]=score[j+1][0]; score[j+1][0]=k; k=score[j][5]; score[j][5]=score[j+1][5]; score[j+1][5]=k; k=num[j]; num[j]=num[j+1]; num[j+1]=k; strcpy(nam,name[j]); strcpy(name[j],name[j+1]); strcpy(name[j+1],nam); } } for(j=0;j0) printf(“%2s %4d %4d %4d %4d %4d %4d %4d /n“,name[j],num[j],score[j][0],score[j][1],score[j][2],score[j][3],score[j][4],score[j][5]); break;//按总分或平均分排序// } } 考核情况(由指导老师填写) 项目 考勤 (20%) 验收 (40%) 报告 (20%) 总分 得分 考勤 记录 考勤日期 出勤记录 验 收 情 况