⑴ 如何学习C语言
学习方法是:
1、课前预习,课后复习,认真做课堂、课后的作业,理解理论知识。
2、记住语法规则。
3、加强逻辑思维。
4、多动手,通过练习上机了解它的运行过程。
5、实践—>理论—>再实践,刚开始学习C语言时,按示例练习,并推动理论的学习,然后再自己多思考,多上机实践。
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
⑵ c语言程序设计的预习报告包括哪些内容,怎样写
看课本目录
⑶ C语言文件的编译与执行的四个阶段并分别描述
开发C程序有四个步骤:编辑、编译、连接和运行。
任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。
1、预处理:导入源程序并保存(C文件)。
2、编译:将源程序转换为目标文件(Obj文件)。
3、链接:将目标文件生成为可执行文件(EXE文件)。
4、运行:执行,获取运行结果的EXE文件。
(3)c语言编译预习扩展阅读:
将C语言代码分为程序的几个阶段:
1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。
2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。
3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。
4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。
⑷ C语言在通信工程专业中的地位需要预习吗
大学大部分学生是不会预习的,C语言是编程的基础,通信工程专业也应该会涉及,有时间的话看看。
⑸ 大一明天就要c语言考试了,可是什么都不会,我怎么预习才能效率最高!
1)输入1个整数,输出它的绝对值。
#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a>=0)
printf("%d\n",a);
else
printf("%d\n",-a);
}
2)输入2个整数,求两数的平方和并输出。
#include <stdio.h>
void main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d", a * a + b * b);
}
3)输入1个整数,判断该数是奇数还是偶数。
#include<stdio.h>
main(void)
{
int a;
printf("please input your number:");
scanf("%d",&a);
if(a%2==0)
printf("%d is ou\n",a);
else
printf("%d is ji\n",a);
return 0;
}
4)输入正整数n,输出1+1/3+1/5+1/7+…前n项的和.(输入的n<=10)
#include<stdio.h>
void main()
{
int n;
float sum=0;
for(n=1;n<=10;n++)
{ sum=sum+1.0/(2*n-1); }
printf("%f",sum);
}
5)输入一个正整数n, 计算 1 - 1/3 + 1/5 - 1/7 + … 的前 n(n>10) 项之和。
#include <stdio.h>
void main()
{
int n,i=1,m;
float a=0;
printf("输入一个正整数N:");
scanf("%d",&n);
for(m=1;m!=(n+1);m++)
{ a+=i*1.0/(2*m-1);
i=-i; }
printf("结果为:%f",a);
}
6)输入一个整数,判断该数是奇数还是偶数。要求必须使用if-else结构实现。
#include <stdio.h>
void main()
{
int a;
printf("please enter a number:");
scanf("%d",&a);
if(a%2==0)
printf("该数为偶数");
else
printf("该数为奇数");
}
7)输入一批学生的成绩,找出最高分。
#include <stdio.h>
#define N 5 //通过改变宏定义,改变数组元素的个数
void main()
{
int a[N];
int i;
int max;
max=a[0];
printf("请输入一组学生成绩(假设有5位学生成绩,且学生成绩都是整数型)\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
// printf("%f\n",a[i]);
}
for(i=0;i<N;i++)
{
if(max<a[i])
max=a[i];
}
printf("学生成绩最高分为:%d\n",max);
}
8)输入三个整数,分别存在变量x,y,z中。编程输出最大数。
#include <stdio.h>
void main()
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{if(x>z)
printf("最大数是%d\n",x);
else printf("最大数是%d\n",z);
}
else if(y>z)
printf("最大数是%d\n",y);
else printf("最大数是%d\n",z);
}
9)输入一个字母,判断是大写字母还是小写字母,并输出信息。
#include <stdio.h>
void main()
{
char c;
scanf("%c",&c);
if(c>=97&&c<=122)
printf("这是一个小写字母\n");
else if(c>=65&&c<=90)
printf("这是一个大写字母\n");
}
10)输入你和你朋友的年龄,编程判断谁的年龄较大,并打印较大者的年龄。
#include<stdio.h>
void main()
{
int age1,age2;
printf("输入你的年龄:");
scanf("%d",&age1);
printf("输入你朋友的年龄:");
scanf("%d",&age2);
if (age1>age2)
printf("你年龄比较大\n%d",age1);
else printf("你的朋友年龄较大\n%d\n",age2);
}
11)输入一个数,求出该数绝对值所对应的开方 。
#include<stdio.h>
#include<math.h>
int main (void)
{
int a,b;double c;
scanf("%d",&a);
if(a>=0)
{
b=a;
c=sqrt(b);
printf("%d的绝对值的开方是%lf",a,c);
}
else
{
b=-a;
c=sqrt(b);
printf("%d的绝对值的开方是%lf",a,c);
}
return 0;
}
12)输入一个字母,如果接收的是‘n’或者‘N’,
则输出“no”。否则输出“wrong”。从键盘读入一个整数,
统计该数的位数。例如,输入12534,输出5;输入-99,输出2;输入0,输出1。
13)输入一个字符,如果是字母,输出其对应的ASCII码
,如果是数字,按原样输入,否则给出提示信息“输入错误!”。
14)输入一个年份year,判断改年是否是闰年。
判断闰年的条件是:能被4整除但不能被100整除,或能被400整除。
#include<stdio.h>
void main()
{
int year;
scanf("%d",&year);
if(year%4==0&&year%100!=0||year%400==0)
{
printf("润年");
}
else
{
printf("非润年");
}
}
15)输入一个正整数,将其逆序输出。例如,输入12345,输出54321。
#include<stdio.h>
void main()
{
long n,m;
printf("输入一个正整数");
scanf("%d",&n);
while(n!=0)
{
m=n%10;
n=n/10;
printf("%d",m);
}
}
16)输入20个字符,统计其中英文字母、数字字符和其他字符的个数。
17)输入三角形三边,输出其面积和周长
#include<stdio.h>
#include<math.h>
int main(void)
{
double a,b,c;
double area,perimeter,s;
printf("Enter 3 sides of the triangle:");
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c||b+c>a||a+c>b){
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area=%.2f;perimeter=%.2f/n",area,perimeter);
}
else
printf("These sides do not correspond to a valid triangle\n");
return 0;
}
18)输入大写字母,输出其小写字母
#include<stdio.h>
void main()
{
char c;
printf("输入大写字母:\n");
c=getchar();
putchar(c+32);
}
19)输入两实数(浮点数),由大到小输出(先强转,比较大小,后输出)
20)输入一系列字符,统计其中英文字母,数字,空格的个数
21)输入若干个非零整数,以0为终止符,输出这批数中的最大值。
22)统计在[2980-21980]之间有多少个数能同时被29和43整除,而不能被53整除。
23)计算n的阶层:n!
#include<stdio.h>
void main()
{
long n,i,s=1; //s为所求和
printf("Enter n:");
scanf("%d",&n); //输入N的值
if(n>=0)
{for(i=1;i<=n;i++)
s=s*i;
printf("%d\n",s);}
else
printf("error\n");
}
24)计算 s=1-2!+3!-4!+…-n!的值并输出,其中n不大于10。要求必须使用for语句实现。
#include <stdio.h>
void main()
{
int n,sigh=1,k=1;
float m=1,sum=0;
for(n=1;n<=3;n++)
{
m=m*n; //用来计算N的阶乘
sum=sum+k*m;
k=-k;
}
printf("%f\n",sum);
}
25)计算 公式 a-|b|,其中a,b为两个整数。
#include <stdio.h>
void main()
{
int a,b,sum;
printf("输入正数a:");
scanf("%d",&a);
printf("输入b:");
scanf("%d",&b);
if(b>=0)
{
sum=a-b;
printf("%d-|%d|=%d\n",a,b,sum);
}
else
{
b=-b;
sum=a-b;
printf("%d-|-%d|=%d\n",a,b,sum);
}
}
26)计算 s=a+aa+aaa+aaaa+aa...a的值,
其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),
几个数相加有键盘控制。
#include <stdio.h>
void main()
{
int j,k,i,sum=0,n=1,m,a=0;
printf("输入累加到几位数:");
scanf("%d",&j);
printf("输入累加数字:");
scanf("%d",&k);
for(i=1;i<=j;i++)
{
sum=sum+k*n;
n=n*10;
for(m=1;m<=1;m++)
{
a=a+sum;
}
}
printf("该数为%d\n",a);
}
27)编写程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和。要求必须使用for语句实现。
#include <stdio.h>
void main()
{
int n,sigh=1;
float m,sum=0,term;
for(n=1;n<=50;n++)
{
m=n*(n+1); //用来计算N的阶乘
term=sigh/m; //用来计算1/N的值
sum=sum+term;
}
printf("%.10f\n",sum);
}
28)编程求1+(1+2)+…+(1+2+…+n),n的值由键盘输入。要求使用for语句实现
#include <stdio.h>
void main()
{
int j,k,i,sum=0,n=1,m,a=0;
printf("输入累加到几:");
scanf("%d",&j);
for(i=1;i<=j;i++)
{
sum=sum+n;
n++;
for(m=1;m<=1;m++)
{
a=a+sum;
}
}
printf("该数为%d\n",a);
}29)题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,
其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,
因为153=1的三次方+5的三次方+3的三次方。
#include <stdio.h> //100到999内的水仙花数
void main()
{
int i,b,s,g;
for(i=100;i<=999;i++)
{
b=i/100; //百位
s=(i/10)%10; //十位
g=i%10; //个位
if(b*b*b+s*s*s+g*g*g==i)
printf("%d\n",i);
}
}
30)猜数游戏。由计算机"想"一个数请人猜,如果人猜对了,
则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,
直到人猜对为止。计算机记录人猜的次数,以此可以反映出猜数者"猜"的水平。
#include <stdio.h>
#include<stdlib.h>
void main()
{
int a,b,i,k;
a=rand()%89+10; //取10到100的随机数
for(i=0;i!=k;)
{ printf("输入被猜的数字");
scanf("%d",&b);
if(b==a)
{
i++;
printf("恭喜你猜对了,成功通关\n");
k=i;
}
if(b>a)
{
printf("对不起,你猜大了\n");
i++;
}
if(b<a)
{
printf("对不起,你猜小了\n");
i++;
}
}
printf("总共猜了%d次\n",i);
}
31)打印100-999以内所有满足条件的数。条件为:这个数等于其个位数,
十位数,百位数立方和,如153=1*1*1+5*5*5+3*3*3
#include <stdio.h> //100到999内的水仙花数
void main()
{
int i,b,s,g;
for(i=100;i<=999;i++)
{
b=i/100; //百位
s=(i/10)%10; //十位
g=i%10; //个位
if(b*b*b+s*s*s+g*g*g==i)
printf("%d\n",i);
}
}
32)查询自动售货机中商品的价格。假设自动化售货机出售4种商品:
薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),
售价分别是每份3.0、2.5、4.0和3.5元。在屏幕上显示以下菜单(编号和选项),
用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;不到5次时,
用户可以选择退出。当用户输入编号1~4,显示相应商品的价格(保留1位小数);
输入0,退出查询;输入其他编号,显示价格为0。
[1]Select crisps[2]Select popcorn[3]Select chocolate[4]Select cola[0]Exit
#include <stdio.h>
void main()
{
int g,i;
float a=3,b=2.5,c=4,d=3.5;
printf("[1]选择薯片\n");
printf("[2]选择爆米花\n");
printf("[3]选择巧克力\n");
printf("[4]选择可乐\n");
printf("[0]退出查询\n");
for(i=1;i<=5;i++)
{
printf("请输入查询的物品数字:");
scanf("%d",&g);
switch(g)
{
case 1:printf("薯片的价格为%.1f\n",a);break;
case 2:printf("爆米花价格为%.1f\n",b);break;
case 3:printf("巧克力价格为%.1f\n",c);break;
case 4:printf("可乐价格位%.1f\n",d);break;
case 0:i=6;break;
}
}
}
33)猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,
还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,
又多吃了一个。以后每天早上都吃了前一天剩下的桃子的一半多一个。
到第10天早上想再吃,见只剩下一个桃子了。求第一天共摘了多少桃子。
#include <stdio.h>
void main()
{
int i,k=1,n=0,sum=1;
for(i=10;i>=1;i--)
{
sum=sum+k;
sum=sum*2;
}
printf("第一天摘桃子数为%d\n",sum);
}
34)输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include <stdio.h>
#define PI 3.14
void main()
{
float r,s,l;
printf("输入圆的半径:");
scanf("%f",&r);
l=2*PI*r;
s=PI*r*r;
printf("输出圆的周长=%f\n面积=%f\n",l,s);
}
35)利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,
60-89分之间的用B表示, 60分以下的用C表示。
#include<stdio.h>
void main()
{
int grade;
printf("Inter grade:");
scanf("%d",&grade);
if(grade>=90&&grade<100)
printf("Grade is:A\n");
else if(grade>=60&&grade<=89)
printf("Grade is:B\n");
else if(grade<60&&grade>=0)
printf("Grade is:C\n");
else printf("error\n");
}
36)求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶,
若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,
若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。
请问,这条阶梯共有多少阶?
#include<stdio.h>
void main()
{
int x=1;//x为阶长
while(x)
{
if(x%2!=1) {x++;continue;}
if(x%3!=2) {x++;continue;}
if(x%5!=4) {x++;continue;}
if(x%7) {x++;continue;}
printf("%d\n",x);
printf("press \"Enter\" to continue\n");
getchar();
x++;
}
}
37)输出9*9乘法口诀。
#include<stdio.h>
void main()
{
int a,b,c;
for(a=1;a<=9;a++)
{ for(b=1;b<=9;b++)
{
c=a*b;
if(b<=a)
printf("%d*%d=%2d\t",b,a,c);
}putchar('\n');
}
}
38)用for循环输出菱形图案
#include<stdio.h>
void main()
{
int i,j,k;
for(i=1;i<5;i++)
{
for(j=4;j-i>0;j--)
printf(" ");
for(k=1;2*i-k>0;k++)
printf("*");
printf("\n");
}
for(i=3;i>0;i--)
{
for(j=4;j-i>0;j--)
printf(" ");
for(k=0;2*i-1>k;k++)
printf("*");
printf("\n");
}
}
39)有一函数当x<0时y=1,当x>0时,y=3,当x=0时y=5,编程,
从键盘输入一个x值,输出y值
#include<stdio.h>
void main()
{
int x,y;
printf("Enter x:");
scanf("%d",&x);
if(x<0) y=1;
else if(x>0) y=3;
else y=5;
printf("y=%d\n",y);
}
40)一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
#include<stdio.h>
void main()
{
int n;
double h,x,sum;
h=100.0;
sum=0.0;
for(n=0;n<10;n++)
{
x=h/2.0;
sum=sum+h+x;
h=h/2.0;
}
printf("小球下落100米\n十次后小球共经过%lf米 第十次上弹%lf米\n",sum,x);
}
41)输出菲波那契(Fibonacci)序列:1,1,2,3,5,8,…的前20项,每行输出5项。
#include<stdio.h>
void main()
{
int a=0,b=1,c,i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=5;j++)
{
c=a+b;
printf("%d\t",c);
a=b;
b=c;
}putchar('\n');
}
}
42)100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,
小马两匹驮1担。试编写程序计算大、中、小马的数目。
#include<stdio.h>
void main()
{
int a,b,c,sum=100;//大 中 小
for(a=0;a<=100;a++)
for(b=0;b<=100;b++)
for(c=0;c<=100;c++)
{
if(a+b+c==100&&(a*3+b*2+c)==sum)
printf("大马:%d 中马:%d 小马:%d\n",a,b,c);
}
}
43)函数y=f(x)可表示为:y=2x+1 (x<0) ;y= 0 (x=0) ;y=2x-1 (x>0)
编程实现输入一个x值,输出y值。
#include<stdio.h>
void main()
{
int x,y;
printf("Enter x:");
scanf("%d",&x);
if(x<0) y=2*x+1;
else if(x>0) y=2*x-1;
else y=0;
printf("y=%d\n",y);
}
44)若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,
每次从中任取8个球,编写程序求出共有多少种不同的颜色搭配。
#include<stdio.h>
void main()
{
int a,b,c,sum;
for(a=0;a<=3;a++)
for(b=1;b<=5;b++)
for(c=0;c<=6;c++)
if(a+b+c==8)
{
printf("%d %d %d\n",a,b,c);
sum++;
}
}
45) 从键盘输入一个学生的分数, 要求实现这样的判断功能:
如果分数大于100,输出”Input error!” 如果分数介于100到90之间,
输出”Very Good!” 如果分数介于80到90只,输出”Good!”
如果分数介于70到80之间,输出”Middle”
如果分数介于60到70之间, 输出”Pass”
如果分数小于60,输出”No Pass!” 。要求必须使用if-else-if结构实现。
#include<stdio.h>
void main()
{
int grade;
printf("Inter grade:");
scanf("%d",&grade);
if(grade>=90&&grade<100)
printf("Very Good!\n");
else if(grade>=80&&grade<=89)
printf("Good!\n");
else if(grade>=70&&grade<=79)
printf("Middle!\n");
else if(grade>=60&&grade<=79)
printf("Pass!\n");
else if(grade<60&&grade>=0)
printf("No Pass\n");
else printf("Input error!\n");
}
46) 输入两正整数 a n ,求a+aa+aaa+aa...a(n个a)之和。
#include"stdio.h"
int main(void)
{
int a,b,n,i,s=0;
printf("Input a,n:");
scanf("%d %d",&a,&n);
b=a;
for(i=1;i<=n;i++)
{
s=s+a;
a=a*10+b;
}
printf("s=%d\n",s);
return 0;
}
47) 输入一个正整数n,再输入n个整数,输出最小值
#include <stdio.h>
int main()
{
int i,n,min=999999,x; //min赋值为极大值
printf("input:");
scanf("%d",&n);
printf("input numbers:");
for(i>0;i<n;i++)
{
scanf("%d",&x);
if(x<min) min=x;
}
printf("min=%d\n",min);
return 0;
}
⑹ 大学C语言需要预习吗因为之前没接触过,完全不懂啊!
这个你要买点参考书看看的,高等教育出版社有专门的考试参考书卖的,建议你最好找考过的童鞋问问,希望你考试通过。
⑺ 怎样学习C语言
谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,再自学其他语言就显得轻而易举了。忧虑的是,C语言犹如“少林武功”一般博大精深,太难学了。其实就笔者认为C语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,那么自学C语言是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C语言或者说学习C语言应从哪几方面着手。 一、明确学习目的: ◆ C语言功能强大,本书涉及知识结构全面、合理。是一门非常好的编程语言基础语言。 ◆ C是一门学习逻辑、程序算法、算法实现很好的教程。通过第一学期C语言的学习,从而可以了解程序的设计编码的过程。 ◆ C是一单进程、单线程执行,从头到尾执行,学习难不小。但结构严谨的高级语言,可以很好学习编程规范和要求。 ◆ C语言是为以后学习其它语言打下基础的语言。 二、好的学习方法: 基于上述学习目的并且也我们第一门编程语言。学习方法是: ◆ 课前预习,课后复习,认真做课堂、课后的作业,理解理论知识。 ◆ 记住语法规则。 ◆ 加强逻辑思维。 ◆ 多动手,通过练习上机了解它的运行过程。 ◆ 实践—>理论—>再实践,刚开始学习C语言时,按示例练习,并推动理论的学习,然后再自己多思考,多上机实践。 常见问题: 1、有同学听说C语言很难,刚学习到第二、三章时,于是说:老师,我不会呀!真的很难。我不知道如何学习? 分析: 1)心理作用,在没有学习之前都认为很难了。学不会也正常。 2)前三章是基础,对于没有学习过编程语言的同学来说,新的专业名词很多。 3)前三章是基础,还不能完整的写出一个C程序。于是,就不知道如何去用,在哪个时候用等很多的疑问。 问题的存在:过于着急,对新的事务领悟不够。 解决方法:学习是循序渐进和积累的过程,不要着急。这此知识都是为以后作铺垫的。 2、有同学学到数组时,说:听你上课时,我懂,但要我自己写,我不知道如何写?不知道如何开始? 分析: 1)逻辑性思想太乱。如果问:“如果班上有30个同学,要判断成绩是否及格,你将如何做?”;“当然先知道每个同学的成绩,然后一个一个和60比较,如果大于等60,则及格,否则不及格。”;“那么C语言来实现,如何做?”。声明30个变量存储成绩?不是一个好办法。如果声明一个30元素的数组,是不是更合理。另外,如果要写30个条件语句来判断,也太过于繁锁。如果用for循环是不是更加合理。 2)练习太少,有解决方法,但不能用C语言实现。 问题的存在:思路不清淅,练习太少。 解决方法:多上机练习,多思考,举一反三。了解程序的运行过程和编码。三、学习要点和重点: ◆ 第一章至第四章的:基础知识和理论知识必须要求能理解、领悟。也是学习其它语言的基础。 ◆ 第二章、第三章提到很多的专业名词,如数据类型,变量与常量的区别,标识符的命名规则,表达式及各种运算符及输入输出函数基础 ◆ 五章和第六章:程序的基本结构,学习完前六章,要求能理解程序运行和编码的过程。 ◆ 将我们的算法用编程语言来实现,主要是学习程序设计的逻辑性。也是学习其它语言的基础 ◆ 第七章到第十一章:学习C语言的特色,更深入了解C语言。本章让学员加强空间的想象力。 ◆ 第十二章:是文件的操作。考虑的是如何将程序的输出结果及相关信息用文件记录下来。 四、学习难度: ◆ 与日常的自然语言的表达不完全相同,所有结果要通过计算才能得。计算机没有想象能力和空间思维能力。计算机能运行,依靠程序员的严谨的命令来驱动。 ◆ 语法格式多,知识点全面。应用时,要将零散的知识点有效有序的组合。 很多问题的解决方法是需要经验的。原文链接: http://wenwen.soso.com/z/q66714191.htm?rq=85286038&ri=2&uid=513205934&ch=w.xg.llyjj #
⑻ 如何学习C语言
很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言? 我是一个教师,已经开发了很多年的程序,和很多刚刚起步的人一样,学习的第一个计算机语言就是C语言。经过这些年的开发,我深深的体会到C语言对于一个程序设计人员多么的重要,如果不懂C语言,你想写底层程序这几乎听起来很可笑,不懂C语言,你想写出优秀高效的程序,这简直就是天方夜谭。为什么C语言如此重要呢? 第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。 那么究竟怎样学习C语言呢? 1:工欲善其事,必先利其器这里介绍几个学习C语言必备的东东:一个开发环境,例如turbo C 2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。一本学习教程,现在C语言教材多如牛毛,但推荐大家使用《C语言程序设计》谭浩强主编 第二版 清华大学出版社,此书编写的很适合初学者,并且内容也很精到。除此以外,现在有很多辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。 2:葵花宝典学习计算机语言最好的方法是什么?答曰:读程序。没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。 3:登峰造极写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io函数罢了。 那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的《数据结构》清华大学出版社,希望每一个想成为程序设计高 手的人研读此书。[编辑:赵晋军] 二,语言学习方法 谈谈偶的学习方法,抛砖引玉! 学习不论讲不讲方法,最终都能学会。但是别人1个月学会了,而你却100年才学会,这不就晚了么?:)所以说,学习还是要讲究方法的。学习方法正确,事半功倍;学习方法不正确,事倍而功半。 什么才是学习C语言的捷径?我的答案是看书。书中所写,是前人数十年经验所写,看十本书,就相当于汲取了前人数十年的功力,那么你的内功也会迅速上升1甲子。:)书当然要看好书,只有好书才营养丰富。假如你花了1天时间看了一本破书,而该书介绍的知识虽然对于你来说是全新的知识,但是由于书中组织不当、或者深度不够,使你获取的营养很少,还不如自己研究一天来的快,这种书就不值当看了。学习C语言要看那些好书?我认为首先要把基础书给看扎实了,比如《C语言之四书五经》中介绍的4本。(虽然这些书很多已经绝版了,但我相信电子版也是很有益处。况且,如果你真的想看,我相信你一定有办法搞的到。)这些书你会在很短的时间内看完(比如一两个月),这取决于你的基础和悟性。 之后要看那些书呢?我不妨再列几本。Bjarne Stroustrup的《C++程序设计语言》theC++Programming Language)一定要看,这本书里面对于C的一些基础概念的定义,比我见过的其他任何C语言书都要全,都要仔细;Bjarne Stroustrup的《C++语言的设计与演化》(The Design and Evolution of C++)和David R.Hanson 的《C语言接口与实现 创建可重用软件的技术》(C Interfaces and Implaementations Techniques for Creating Reusable Software)一定要看,这两本书讲述了如何用C来实现异常处理、实现类型的封装和扩展等一些大的项目中经常用到的高级技术。其他的书,操作系统的要看,编译原理的要看,算法的要看,模式的也要看。读书破万卷,coding如有神。 总而言之,就如《传》中云:“生而知之者,上也;学而知之者,次也;困而学之又其次也。”我们不能总是因困而学之,而要做到兵马未动,粮草先行。看书是学习的导向,书中能一一介绍清楚概念,但书却不能把应用的细节一一介绍给你,因为应用总是招数繁复,变化多端。因此我们要想熟悉招数,懂得书中所讲怎么使用,还要多读源码。Linus给别人解答问题的时候,常说Read the fucking source code;候捷也在其文中提到“源码之前,了无秘密。”这就是大师的箴言呀。源码就像是动画、就像是幻灯片,把书中的招式一一演练给你看。可以说高手的经验大都是源自代码。源码和书一样,也是要看好的,不要看差的。在此,我推荐看Linux kernel source code 和 Linux tcp/ip source code。这两套代码都是开源的,垂手可得。此外,还可以配合着Andrew S.Tanenbaum的《操作系统的设计与实现》(Operating Systems:Design and Implementation)、毛德操 胡希明的《Linux内核 源代码情景分析》、Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman合着的《Linux设备驱动程序》(Linux Device Driver,3e)、W.Richard Stevens《TCP/IP详解(3部)》 (TCP/IP Illustracted )、W.Richard Stevens《UNIX环境高级编程》(Advanced Programming in the UNIX Environment,新版增加了Linux kernel的内容)等书来看,方便的很。当然程序不是看出来的,是写出来的。我高中的时候每天坚持写6个小时程序,《数据结构》和排列组合、图论方面的习题反复做了N遍。到现在虽然已经时隔五六年,很多内容早已淡忘掉,但却培养了我很强的编码能力和调试能力,直到现在还对我的工作有很大的帮助。
⑼ 大学c语言怎么学
如何学习C语言?我说一下我是怎么学的吧,因为我就是计算机专业的学生
1. 首先选择一门入门的书籍,c primer plus 适合初学者入门
2. 制定详细的学习计划,遇到不懂的知识点,在网络上找一些对号的视频解决掉,然后回归继续书本学习
3.基础学完后开始在开源社区研究代码,先从看代码开始,然后尝试修改代码
按照三个步骤走,坚持下去学习个基础还是足够的,要想学的更加深刻需要真的项目的锤炼。
学习C/C++编程知识,想要成为一个更加优秀的程序员,或者你学习C/C++的时候有难度,,和别人一起交流成长会比自己琢磨学的更快更扎实。
⑽ C语言开始如何自学.大一 预习
这些都是基础的,必须要记住的,多看书本,先掌握最基本的概念,然后读程序,每一步都要搞清楚,c语言基础没什么难的,做多了也就熟了,但要变成编程高手那就要慢慢磨练了.