C
程序设计总复习
第一章复习要点
n
C
程序的结构
第三章复习要点
n
常量和符号常量
n
变量
n
整型变量
n
实型变量
n
字符型变量
n
各种数据类型所占的存储空间
n
各类数值型数据间的混合运算
n
算术运算符和算术表达式
n
强制类型转换运算符
n
自增、自减运算符
n
复合的赋值运算符
第四章复习要点
n
掌握赋值语句的使用
n
字符数据的输入输出
n
格式输入与输出:
printf
函数
scanf
函数
第五章复习要点
n
关系运算符及其优先次序
n
逻辑运算符和逻辑表达式
n
if
语句
n
条件运算符
n
switch
语句
(
多分支选择
)
n
常用算法总结
(
1
)分段函数的计算。
第六章复习要点
n
掌握用
while
语句实现循环
n
掌握用
do…while
语句实现循环
n
掌握用
for
语句实现循环
n
掌握
break
语句与
contiue
语句
n
循环的嵌套
n
常用算法总结
(
1
)多项式累加和、累乘积;
1.
实验五第
2
题
main()
{
long sum=0,t=1;
int i;
for (i=1;i<=5;i++)
{ t=t*i;
sum+=t;
}
printf("%ld",sum);
}
(
2
)求素数(判断素数);
判断一个数
m
是否是素数
(
1
)函数实现
#include <math.h>
int prime(int m)
{
int i,k;
k=sqrt(m);
for (i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1) return 1;
else return 0;
}
main()
{
int m;
scanf(“%d”,&m);
if (prime(m)) printf(“yes”);
else printf(“no”);
}
(
2
)不用函数调用
#include<stdio.h>
main()
{ int i,k,m;
scanf(“%d”,&m);
k=sqrt(m);
for (i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1)
printf(“yes”);
else
printf(“no”);
}
(
3
)数的分解,如水仙花数,完数等;
水仙花数:一个
3
位数,其各位数字立方和等于该数本身。
#include<stdio.h>
main()
{ int i,j,k,n;
for(n=100;n<1000;n++)
{ i=n/100;
j=n/10%10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d/n",n);
}
}
完数:一个数如果恰好等于它的因子之和,如:
6=1+2+3
;则
6
是完数。
找出
1000
之内的所有完数。
main()
{
int n,i,s;
for(n=1;n<1000;n++)
{
s=0;
for(i=1;i<=n/2;i++)
if(n%i==0)
s=s+i;
if (s==n)
printf(“%d/n”,n);
}
}
(
4
)求最大公约数和最小公倍数。
main()//
用定义来求。其它略。
{
int a,b,c,i,gys,gbs;
scanf(“%d%d”,&a,&b);
c=a>b?a:b;
for (i=c;i<=a*b;i++)
if(i%a==0 &&i%b==0) break;
gbs=i;
c=a<b?a:b;
for(i=c;i>=1;i--)
if(a%i==0 &&b%i= =0) break;
gys=i;
printf(“%d,%d”,gbs,gys);
}
第七章复习要点
n
掌握一维数组的应用
n
掌握二维数组的定义与引用
n
掌握字符数组的应用
n
常用算法总结
(
1
)数组运算,如找最大,最小值问题,累加和,求平均值;
main()
{
int a[10],i,max,min,sum=0;
float average;
for (i=0;i<10;i++)
scanf(“%d”,&a[i]);
max=a[0];
min=a[0];
for(i=0;i<10;i++)
{
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
sum=sum+a[i];
}
average=sum/10.0;
printf(“max=%d,min=%d,sum=%d,average=%f”,
max,min,sum,average);
}
(
2
)排序运算,如冒泡法,选择排序;
选择排序:
#include<stdio.h>
main()
{ int i,j,t,r,a[20];
for(i=0;i<20;i++) scanf("%d",&a[i]);
for(i=0;i<19;i++)
{ r=i;
for(j=i+1;j<20;j++)
{ if(a[j]<a[r]) r=j; }
if(r!=i)
{ t=a[r];
a[r]=a[i];
a[i]=t; } }
for(i=0;i<20;i++) printf("%d ",a[i]); }
冒泡排序:
#include <stdio.h>
main()
{ int a[20],i,j,temp;
for(i=0;i<20;i++) scanf("%d",&a[i]);
for(i=0;i<20-1;i++)
for(j=0;j<20-1-i;j++)
{ if(a[j]>a[j+1])
{ temp=a[j];
a[j]=a[j+1];
a[j+1]=temp; } }
printf("the array after sort:/n");
for(i=0;i<20;i++) printf("%5d",a[i]); }
(
3
)字符串操作:
strcpy
,
strcat
,
strlen
。
ctrcpy
的功能,把
s2
赋值给
s1;
#include<stdio.h>
main()
{ char s1[100],s2[50];
int i=0,j=0;
gets(s1);
gets(s2);
while(s2[j]!='/0')
{
s1[i]=s2[i];
i++;
}
s1[i]='/0';
puts(s1);
}
strcat
的功能,把
s2
的内容连接到
s1
字符串
#include<stdio.h>
main()
{ char s1[100],s2[50];
int i=0,j=0;
gets(s1);
gets(s2);
while(s1[i]!='/0') i++;
while(s2[j]!='/0')
{ s1[i]=s2[j];
i++;
j++;
}
s1[i]='/0';
puts(s1);
}
strlen
:求字符串
s1
的有效字符的个数。
#include<stdio.h>
main()
{ char s1[100];
int i=0;
gets(s1);
while(s1[i]!='/0') i++;
printf(“%d”,i);//i
为字符串的长度。
}
第八章复习要点
n
掌握函数的定义
n
掌握函数的形参,实参和函数的返回值
n
掌握函数的调用、声明、嵌套
n
掌握数组作为函数参数:数组元素作函数参数、一维数组名作函数参数
n
掌握局部变量,全局变量和用
static
声明局部变量
n
常用算法总结
能以函数的形式完成第五章、第六章、第七章的常用算法。
第九章复习要点
n
宏定义
第十章复习要点
n
掌握指针的基本概念
(
1
)指针变量的定义
(
2
)指针变量的引用
(
3
)指针的初始化和赋值运算
(
4
)指针变量作为函数参数
n
掌握一维数组与指针的关系
n
掌握字符串与指针的关系
第十一章复习要点
n
掌握结构体类型变量的定义
n
掌握结构体变量的引用
n
掌握结构体变量的初始化
n
掌握结构体数组
n
掌握指向结构体类型数据的指针
第十三章复习要点
n
掌握文件的打开
n
掌握文件的关闭
n
掌握文件的读写:字符输入输出函数、格式化读写函数
(fprintf()
和
fscanf())