本文目录一览:
c语言编程怎样入门
任何知识的学习没有太多捷径,但有经验、方法及教训
(1)基础教材选择-系统又通俗易懂,最好有该书配套免费视频
建议选择系统正统的大学教材,尽量不要选择“多少天精通C语言”等吸引眼球的教程,相信一点C语言学习没有速成。这里给大家推荐一本不错的入门教程:清华大学出版社-孙海洋-C语言程序设计,讲解很透彻、知识点很全面、例程较多且通俗易懂。优酷“孙海洋课题”还有全书免费教学视频,便于自学。
(2)动起手来--立马安装VC++6.0或VS开发环境
C语言是特别注重动手实操能力的课程!!动起手来,现在开始安装VC++6.0开发环境,从第一个经典程序“Hello,world!”开始,每一个例题及知识点均通过开发环境验证、理解深化。多做每一章小型实验操作(网上多得很)。提升代码调试能力。
(3)有了基础后,一般可以有两个发展方向可供选择
(i)转向项目实战
建议购买一本C语言项目教程,在实践项目中强化理论知识的学习。
(ii)继续深入理论学习
建议购买国外经典深入学习C语言的教程,人民邮电出版社-C Primer Plus(第5版),或者 机械工业出版社-C程序设计语言(第2版.新版)
下定信心,坚持下去!希望对你有所帮助。
下面是转载的 孙海洋 版 C语言程序设计 部分内容截图。
怎么用c语言写一个 程序。实现从键盘输入字符并写入一个文件。
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。
2、例程:
#includestdio.h
char c;
int main(){
FILE * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
c=getchar();//从键盘读取一个字符
fputc(c,fp2);//向输出文件写入一个字符
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}
c语言游戏编程实例
生命游戏
/* ------------------------------------------------------ */
/* PROGRAM game of life : */
/* This is a finite implementation of John H. Conway's */
/* Game of Life. Refere to my book for detail please. */
/* */
/* Copyright Ching-Kuang Shene July/25/1989 */
/* ------------------------------------------------------ */
#include stdio.h
#include stdlib.h
#define MAXSIZE 50 /* board size */
#define OCCUPIED 1 /* occupied flag */
#define UNOCCUPIED 0
#define YES 1
#define NO 0
char cell[MAXSIZE][MAXSIZE]; /* the board */
char workcopy[MAXSIZE][MAXSIZE]; /* a working copy */
int row; /* No. of rows you want */
int column; /* no. of columns you want */
int generations; /* maximum no. of generation*/
/* ------------------------------------------------------ */
/* FUNCTION read_in : */
/* This function reads in the number of generations, */
/* the number of rows, the number of columns and finally */
/* the initial configuration (the generation 0). Then put*/
/* your configuration to the center of the board. */
/* ------------------------------------------------------ */
void read_in(void)
{
int max_row, max_col; /* max # of row and col. */
int col_gap, row_gap; /* incremnet of row and col */
int i, j;
char line[100];
gets(line); /* read in gens, row and col*/
sscanf(line, "%d%d%d", generations, row, column);
for (i = 0; i row; i++)/* clear the board */
for (j = 0; j column; j++)
cell[i][j] = UNOCCUPIED;
max_col = 0; /* read in the config. */
for (max_row = 0; gets(line) != NULL; max_row++) {
for (i = 0; line[i] != '\0'; i++)
if (line[i] != ' ')
cell[max_row][i] = OCCUPIED;
max_col = (max_col i) ? i : max_col;
}
row_gap = (row - max_row)/2; /* the moving gap */
col_gap = (column - max_col)/2;
for (i = max_row + row_gap - 1; i = row_gap; i--) {
for (j = max_col + col_gap - 1; j = col_gap; j--)
cell[i][j] = cell[i-row_gap][j-col_gap];
for ( ; j = 0; j--)
cell[i][j] = UNOCCUPIED;
}
for ( ; i = 0; i--)
for (j = 0; j column; j++)
cell[i][j] = UNOCCUPIED;
}
/* ------------------------------------------------------ */
/* FUNCTION display : */
/* Display the board. */
/* ------------------------------------------------------ */
#define DRAW_BOARDER(n) { int i; \
printf("\n+"); \
for (i = 0; i n; i++) \
printf("-"); \
printf("+"); \
}
void display(int gen_no)
{
int i, j;
if (gen_no == 0)
printf("\n\nInitial Generation :\n");
else
printf("\n\nGeneration %d :\n", gen_no);
DRAW_BOARDER(column);
for (i = 0; i row; i++) {
printf("\n|");
for (j = 0; j column; j++)
printf("%c", (cell[i][j] == OCCUPIED) ? '*' : ' ');
printf("|");
}
DRAW_BOARDER(column);
}
/* ------------------------------------------------------ */
/* FUNCTION game_of_life : */
/* This is the main function of Game of Life. */
/* ------------------------------------------------------ */
void game_of_life(void)
{
int stable; /* stable flag */
int iter; /* iteration count */
int top, bottom, left, right; /* neighborhood bound */
int neighbors; /* # of neighbors */
int cell_count; /* # of cells count */
int done;
int i, j, p, q;
display(0); /* display initial config. */
done = NO;
for (iter = 1; iter = generations !done; iter++) {
memmove(workcopy, cell, MAXSIZE*MAXSIZE); /*copy*/
stable = YES; /* assume it is in stable */
cell_count = 0; /* # of survived cells = 0 */
for (i = 0; i row; i++) { /* scan each cell...*/
top = (i == 0) ? 0 : i - 1;
bottom = (i == row - 1) ? row-1 : i + 1;
for (j = 0; j column; j++) {
left = (j == 0) ? 0 : j - 1;
right = (j == column - 1) ? column-1 : j + 1;
/* compute number of neighbors */
neighbors = 0;
for (p = top; p = bottom; p++)
for (q = left; q = right; q++)
neighbors += workcopy[p][q];
neighbors -= workcopy[i][j];
/* determine life or dead */
if (workcopy[i][j] == OCCUPIED)
if (neighbors == 2 || neighbors == 3) {
cell[i][j] = OCCUPIED;
cell_count++;
}
else
cell[i][j] = UNOCCUPIED;
else if (neighbors == 3) {
cell[i][j] = OCCUPIED;
cell_count++;
}
else
cell[i][j] = UNOCCUPIED;
stable = stable (workcopy[i][j] == cell[i][j]);
}
}
if (cell_count == 0) {
printf("\n\nAll cells die out.");
done = YES;
}
else if (stable) {
printf("\n\nSystem enters a stable state.");
done = YES;
}
else
display(iter);
}
}
/* ------------------------------------------------------ */
void main(void)
{
read_in();
game_of_life();
}
用C语言编写一个程序: 从键盘输入 10 个整数,求出其中的最大值。
程序:
#includestdio.h
int main()
{
int arr[10] = {0};
int i = 0;
int max = 0;
int min = 0;
printf("请输入10个整数:");
for (i = 0; i sizeof(arr)/ sizeof(arr[0]); i++)
{
scanf("%d",arr[i]);
}
max = arr[0];
for (i = 0; i sizeof(arr) / sizeof(arr[0]); i++)
{
if (max arr[i])
{
max = arr[i];
}
}
min = arr[0];
for (i = 0; i sizeof(arr) / sizeof(arr[0]); i++)
{
if (min arr[i])
{
min = arr[i];
}
}
printf("max=%d\n", max);
printf("min=%d\n", min);
return 0;
}
结果:
请输入10个整数:1 2 3 56 23 6 767 32 11 567
max=767
min=1
请按任意键继续. . .
扩展资料:
编写过程分为三部分:源代码文件 ------ 目标代码文件------可执行文件。
用到两个组件:编译器、链接器。编译器的作用是将源代码转换为中间代码,产生中间文件。链接器将此中间代码与其他代码相结合来生成可执行文件。
中间文件的形式有多种,一般就是将源代码文件转换为机器语言代码,将其结果放置在一个目标代码文件中。虽然目标代码文件包含机器代码文件,但是该文件还不能运行。目标文件包含源代码的转换结果,但它还不是一个完整的程序,也就是不是一个完整的可执行文件,它还需要与一些基本元素。
目标代码文件中所缺少的第一个元素是一种叫做启动代码的东西,这个代码相当于程序跟操作系统之间的接口。所缺少的第二个元素是库例程的代码,几乎所有c程序都利用标准c库中所包含的例程,例如printf。
而链接器的作用就是将这三部分结合在一起,并将它们存放在单个文件,即可执行文件中,这样,一个完整的可执行文件就产生了。