大学c语言课件(经典十八篇)
发布时间:2017-05-04大学c语言课件(经典十八篇)。
✹ 大学c语言课件 ✹
读后感--<>
通过一个学期的学习,我们学到了很多以前不知道的东西,特别是c语言编程能力的培养。通过对这本书的研究,我们受益匪浅。
c语言程序设计与数据结构是计算机专业的基础课程。本书是c语言程序设计与数据结构相结合的计算机专业基础课程。该书重点突出,结构严谨,语言通俗易懂,内容全面详实,解释深刻,例证丰富多样。
本书不求知识体系的完整性,力求培养读者的基本编程能力。这也是本书追求的唯一宗旨。
随着计算机软件产业工程化程度的不断提高,软件开发过程进一步细化,并划分为几个阶段。编程能力又分为五种能力:调试程序的能力;读程序的能力;根据流程图编写程序的能力;设计流程图的能力;分析问题的能力。
这本书着重于前三种编程能力的培养。学习本书后,基本上可以阅读程序,按照流程图编写程序,调试程序。同时,为培养和提高程序设计和问题分析能力奠定了基础。
c语言是学习其他语言的基础。只要我们掌握了c语言,我们就会很快学会其他语言。c语言是应用最广泛的高级编程语言。c语言功能丰富,表达能力强,使用灵活方便,效率高。它是一种结构化编程语言。c语言具有很强的实用性,可以用来编写应用软件和系统软件。
既有高级语言的特点,又具有汇编语言的特点。
一种语言之所以能够存在、发展并具有生命力,是因为它具有于其他语言不同或于其他语言不同的特点。c语言具有以下几本特点:①简洁、灵活、方便;②操作人员丰富多样;③数据结构多样;④程序语言模块化;⑤控制语句结构化;⑥接近硬件和系统;⑦操作效率高;⑧可移植性好。
任何一种语言都有各自的优点也有自己的缺点。c语言有许多优点和缺点,如操作符的优先级比较高,有些不同于传统的约定,不便于记忆;c语言的语法限制不太严格。
✹ 大学c语言课件 ✹
(1)下列关于栈的叙述中正确的是
A)在栈中只能插入数据
B)在栈中只能删除数据
C)栈是先进先出的线性表
D)栈是先进后出的线性表
(2)下列数据结构中,插入时不需要移动其他元素的是
A)有序线性链表
B)无序线性链表
C)栈和队列
D)以上三种都是
(3)下列叙述中正确的是
A)同一个数据结构不管是采用何种存储方式,其所占的存储容量一定是相同的.
B)同一个数据结构采用不同的存储方式,其所占的存储容量一般是不同的
C)同一个有序表不管是采用何种存储方式,都可以使用对分查找法
D)同一个有序表不管是采用何种存储方式,都不能使用对分查找法
(4)数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是
A)线性链表
B)二叉链表
C)栈与队列
D)循环队列
(5)下列数据结构中,能直接使用堆排序法进行排序的是
A)完全二叉树
B)线性链表
C)带链的栈
D)带链的队列
✹ 大学c语言课件 ✹
(1)下述关于数据库系统的叙述中正确的是________。
A)数据库系统减少了数据冗余
B)数据库系统避免了一切冗余
C)数据库系统中数据的一致性是指数据类型的一致
D)数据库系统比文件系统能管理更多的数据
答案:A
评析:由数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值。
(2)关系表中的每一横行称为一个________。
A)元组 B)字段 C)属性 D)码
答案:A
评析:在关系数据库中,关系模型采用二维表来表示,简称“表”。二维表是由表框架及表元组组成。在表框架中,按行可以存放数据,每行数据称为元组。
(3)数据库设计包括两个方面的设计内容,它们是________。
A)概念设计和逻辑设计 B)模式设计和内模式设计
C)内模式设计和物理设计 D)结构特性设计和行为特性设计
答案:A
评析:数据库设计可分为概念设计与逻辑设计。概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。逻辑设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。
(4)请读程序:
#include
main
{
int a;float b,c;
scanf(“%2d%3P%4f’,a,b,C);
printf(”\na=%d,b=%ec。%f\n”,a,b,C);
}
若运行时从键盘上输入9876543210l,则上面程序的输出结果是________。
A)a=98,b=765,c=432 1
B)a=1 0,b=432,c=8765
C)a=98,b=765.000000,c=432 1.000000
D)a=98,b=765.0,c=432 1.0
答案:C
评析:scanf把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。
(5)一个良好的算法由下面的基本结构组成,但不包括__________。
A)顺序结构 B)选择结构 C)循环结构 D)跳转结构
答案:D
评析:1966年,Bohra和Jacopini提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。
(6)请选出以下程序的输出结果________。
#include
sub(x,y,z)
int x,y,星符号z:
{星符号z=y-x;}
main{
int a,b,c;
sub(10,5,a);sub(7,a,b);sub(a,b,C);
printf(”%d,%d,%d\n”,a,b,C);
}
A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7
答案:B
评析:sub函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,a/I,10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随星符号z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,C)后,c的值发生变化,其值为-12-(-5)=-7。
(7)下面程序在屏幕上的输出是________。
main
{
printf(”ab\b\b c”);
}
A)ab\b\b c B)a c C)abc D)ab c
答案:B
评析:c语言中允许使用一种特殊形式的字符常量,、就是以一个“\”开头的字符序列,这样的字符称为“转义字符”。常用的转义字符有:\n,换行;\t,水平制表;\b,退格;\r,回车。
(8)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是_______。
A)pb=x; B)pb=x; C)星符号pb=x; D)星符号pb=星符号x
答案:A
评析:选项A将变量x的地址赋给指针变量pb,使pb指向x‘选项B是将x的值当作地址赋给指针pb,Db指向一个地址等于x值的内存单元;选项c将x的地址赋给指针pb指向的地址等于x的内存单元。
(9)设整型数i=5,则printf(“%d”,i+++++i);的输出为________。
A)10 B)1l C)12 D)语法错误
答案:D
评析:c语言中有基本的算术运算符(+、-、星符号、/)还包括自增自减运算符(++、–),在c语言解析表达式时,它总是进行贪婪咀嚼,这样,该表达式就被解析为i++ ++ +i,显然该表达式不合c语言语法。
(10)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元
int 星符号p;
p=___________malloc(sizeof(im));
则应填入__________。
A)int B)int C)(星符号int) D)(int星符号)
答案:D
评析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型+)。
(11)下面程序输出的结果是__________。
main
{
int i=5,J=9,x;
x=(I==j?i:(j=7));
printf(”\n%d,%d”,I,J);
}
A)5,7 B)5,5 C)语法错误 D)7,5
答案:A
评析:条件表达式的一般形式为:表达式I?表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式l的值为假,则求解表达式3。本题中先判断i==j,不等,执行j=7;然后执行x=7。故本题为A。
✹ 大学c语言课件 ✹
C语言程序设计的试题及答案
________________________) if(n%i==0) ________________________ if(i>k) printf(”\t%2d“,n); } return 0; } 3. 输出 200 以内能被 5 整除的数 #include”stdio.h“ int main() { ________________________ for(________________________;n<=200; ________________________) { if (n%5!=0) ________________________ printf(”%d “,n); } return 0; } 4. 求输入的十个整数中正数的个数及其平均值 #include int main() { int i,num=0,a; float sum=0; for(i=0; ________________________;________________________) { scanf(”%d“,&a); if(a>=0) { ________________________; ________________________; } } printf(”%d plus integer's sum: %6.0f\n“,num,sum); printf(”Mean value:%6.2f\n“,sum/num); return 0; }5. 求输入的十个整数中负数的个数及其平均值 #include int main() { int i,num,a; float sum=0; ________________________; ________________________; while(i<10) { scanf(”%d“,&a); if(a<=0) { ________________________; num++; } ________________________; } printf(”%d plus integer's sum: %6.0f\n“,num,sum); printf(”Mean value:%6.2f\n“,sum/num); return 0; } 6. 分解并打印出 X 的各个素数因子.如 18=1*2*3*3. #include int main() { int i,x; scanf(“%d”,&x); printf(“%d=1”,x); for(________________________;i<=x; ________________________) { while________________________ { printf(“*%d”,i); ________________________; } } return 0; } 7. 输出九九乘法表. #include int main() { int i,j; for (i=1; ________________________;________________________) { for(________________________;________________________;j++) printf(”%2d*%2d=%2d“, j, i ,i*j);
printf(”\n\n“); } return 0; } 8. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20 项之和。 #include ”stdio.h“ int main() { int n,t,number=20; float a=2,b=1, ________________________; for( n=1; ________________________;________________________) { s=s+a/b; t=a; a=a+b; ________________________; } printf(”sum is %9.6f\n“,s); return 0; } 9. 求 1+2!+3!+...+20!的和. #include ”stdio.h“ int main() { float n, ________________________,t=1; ________________________;________________________;) { t*=n; ________________________; } printf(”1+2!+3!...+20!=%e\n“,s); return 0; }
for(n=1;
10. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 20 项之和。 #include ”stdio.h“ int main() { int n,t,number=20; float a=2, ________________________,s=0; for(________________________;________________________;n++) { s=s+a/b; t=a; ________________________; b=t; }
printf(”sum is %9.6f\n“,s); return 0; } 解答: 1. int n; n=1; n++ continue; 2. #include”math.h“ n++ i++ break; 3. int n; n=1 n++ continue; 4. i<10 i++ num++ sum+=a 5. i=0; num=0; sum+=a; i++;
6. i=1 i++ (x%i==0) x=x/i; 7. i<=9 i++ j=1 j<=i 8. s=0 n<=20 n++ b=t; 9. s=0 n<=20 n++ s+=t; 10. b=1 n=1 n<=20 a=a+b 四.改错题 解答:
五.编程一 1. 试编写程序求 S=1+1*2+1*2*3+1*2*3*4+?+1*2*3*?*10 的值。
2. 编程利用以下公式求π 的值。 (取 n=10000)
3. 计算 s=1+1/2+1/3+?+1/n 的值,其中 n 的值由键盘输入。
4. 编写程序,在屏幕上输出下面的图案(要求用 for 循环实现) 。 ***** ***** ***** ***** ***** 5. 编写程序,输入整数 n,并根据 n 的值打印图案(要求用 for 循环实现) 。 。 n 为中间一行的*号个数。例如,当 n=4时,图案为 * ** *** **** *** ** * 6. 从键盘输入若干个学生的成绩,-1 作为结束标志,求出平均成绩及最高成绩并输出其结 果。 7. 编写一程序,从键盘输入 n 个数,输出其最大数和最小数,并输出它们在序列中的序号。 8. 编程实现:输出由 0、1、2、3 组成的所有的各位数字均不相同的三位数,输出时每 8 个 数 占一行。 9. 输入一行字符,回车作为结束,分别统计出其中英文字母、空格、数字和其它字符的个 数。
10. 求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时
共 有 5 个数相加),几个数相加由键盘控制。
解答: 1. #include void main() { int i; float s=0,term=1; for(i=1;i<=10;i++) { s=s+term; term=term*(i+1); } printf(”sum%10.1f\n“,s); } 2. #include void main() { int i; float e=1,term=1; for(i=1;i<=100;i++) { term=term*i; e=e+1./term; } printf(”e=%10.6f\n“,e); } 3. #include void main() { int i,n; float s=0; printf(”input n\n“); scanf(”%d“,&n); for(i=1;i<=n;i++) s=s+1./i; printf(”s=%10.6f\n“,s); } 4. #include void main() { int i,j,k; for(i=1;i<=5;i++)
{
for(k=1;k<=2*i;k++) printf(” “); for(j=1;j<=5;j++) printf(”* “); printf(”\n“);
} }
5. #include void main() { int i,j,n; printf(”input n\n“); scanf(”%d“,&n); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) printf(”* “); printf(”\n“); } for(i=n-1;i>=1;i--) { for(j=1;j<=i;j++) printf(”* “); printf(”\n“); } } 6. #include void main() { int i,score,sum=0,max; i=0; printf(”please input score:\n“); scanf(”%d“,&score); max=score; while (score!=-1) { sum=sum+score; if(score>max)max=score; i++; scanf(”%d“,&score); } printf(”max=%d\n“,max); printf(”average=%f\n“,(float)sum/i);
} 7. #include void main() { int i, n,x,max,min,maxi=1,mini=1; printf(”please input n:\n“); scanf(”%d“,&n); printf(”please input x:\n“); scanf(”%d“,&x); max=x;min=x; for(i=2;i<=n;i++) { scanf(”%d“,&x); if(x>max) { max=x;maxi=i;} if(x void main() { int i,j,k,n=0; for(i=1;i<=3;i++) for(j=0;j<=3;j++) for(k=1;k<=3;k++) if(i!=j&&i!=k&&j!=k) { n++; printf(”%5d“,i*100+j*10+k); if(n%8==0)printf(”\n“); } } 9. #include void main() { int shuzi=0,zimu=0,kge=0,qita=0; ch=getchar(); while(ch!='\n') { if(ch==' ') kge++; else if(ch>='0'&&ch<='9')
char ch;
shuzi++; else if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z') zimu++; else qita++; ch=getchar(); } printf(”数字=%d;字母=%d;空格=%d;其它%d“,shuzi,zimu,kge,qita); } 10. #include void main() { int Sn=0,a,n,i=0,t; printf(”Sn=a+aa+aaa+…+aaa…a\nplease input a,n:“); scanf(”%d,%d“,&a,&n);t=a; while(i
) ;形参实参都是
4. 定义在一个程序块(函数)中的`变量,称为( 它的程序块。
5. 在函数原型声明中,必须声明函数参数的类型,但可以省略( 6. C 语言源程序中主函数名由系统规定为(
) 。
) ,程序员是不能改变的。
7. 已知函数首部定义为:int stat(int a , float *p) 则此函数的两个参数类型分别是(
) 、(
) 。
8. 在 c 语言中,进行函数调用是,实参和实参之间有严格的规定,主要有三种要求分别是: ( ) 相等, ( )一致,并( )对应。 9. 若自定义的函数要求返回一个值,则应在该函数中有一条( )语句。
10. 若函数头部定义为 int foo(), 则该函数中 return 语句返回的数据类型是( ) 。 11. 若函数头部定义为 struct stu * foo(), 则该函数中 return 语句返回的数据类型是( ) 。 12. 若函数头部定义为 int * foo(), 则该函数中 return 语句返回的数据类型是( ) 。 13. 若函数头部定义为 float foo(), 则该函数中 return 语句返回的数据类型是( ) 。 14. 若函数头部定义为 char foo(), 则该函数中 return 语句返回的数据类型是( ) 。 15. 若函数头部定义为 char * foo(), 则该函数中 return 语句返回的数据类型是( ) 。 16. 若函数头部定义为 void foo(int a[]),在主程序中有如下语句: int a[5] = {1};? foo(a[5]); 这句函数调用的语句是 ( 正确” “错误” ) 17. 若函数头部定义为 void foo(int *a),在主程序中有如下语句: int array[5] = {1};? foo(array); 这样的语句是( 确” “错误” )
) 。 (填“
) 。 (填“正
18. 若函数头部定位为 void foo (char * str), 在主程序中有如下语句: char array[5] = ”good“;? foo(array); 这样的语句是( “正确” “错误” )
) 。 (填
19. 若一个函数中的主要语句是这样的, int a = 3; if (a >3) return -1; return 0; 那 么 这 个 函 数 的 返 回 值 是 ( ) 。 20. 若函数头部定义为 void foo (int * a), 主程序中定义 int array[10], 现在要将 arra y 数据传进数组进行处理,正确函数调用语句是(
)
。 解答: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 二.阅读程序写结果 1. #include long fun(int x,int n); int main() { int x=3,n=3; long p; p=fun(x,n); printf(”p=%ld\n“,p); return 0; } long fun(int x,int n) { int i; long p=1; for(i=0;i int isDigit(char ch); int main() {
char ch; while((ch=getchar())!='\n') { if(isDigit(ch)) putchar(ch); } printf(”\n“); return 0; } int isDigit(char ch) { if(ch>='0' && ch<='9') return 1; else return 0; } 输入:Abc1d23eF45g3. #include void odddivisor(int n); int main() { int n; scanf(”%d“,&n); odddivisor(n); return 0; } void odddivisor(int n) { int i; for(i=3;i<=n/2;i=i+2) if(n%i==0) printf(”\n“); } 输入:15
printf(”%5d“,i);
4. #include
void print(); int a=5; int main() { int a=1,b=2; a=a+b; print(); printf(”%d %d\n“,a,b); return 0; } void print() { int b=3; printf(”%d %d\n“,a,b); } 5. #include int fun1(int x); void fun2(int x); int main() { int x=1; x=fun1(x);
printf(”%d\n“,x); return 0; } int fun1(int x) { x++; fun2(x); return x; } void fun2(int x) { x++; }
6. #include int fun1(int a,int b,int c); int main() { int a=11,b=21,c=31; fun1(a,b,c); printf(”%d %d %d\n“,a,b,c); return 0; } int fun1(int a,int b,int c) { a=a+10; b=b+10; c=c+10; } 7. #include void fun(int x); int main() { fun(7); printf(”\n“); return 0; } void fun(int x) { if(x/2>1) printf(”%5d“,x); }
return c;
fun(x/2);
8. #include void fun(int a[]); int main() { int i,a[5]={1,2,3}; fun(a); for(i=0;i<5;i++) printf(”%5d“,a[i]); printf(”\n“); return 0; } void fun(int a[]) { int i; for(i=0;i<5;i++) a[i]+=5; } 9. #include void fun ( int k ) ; void main ( )
{ int w = 5 ; fun ( w ) ; printf ( ”\n“ ) ; } void fun ( int k ) { if ( k>0 ) fun ( k-1 ) ; printf ( ”%d“ , k ) ; } 10. #include void f1(void); int a=1; void main( ) { int a=2; f1(); { int a=3; } printf(”a3=%d\n“,a); } void f1(void) { printf(”a1=%d\n“,a); }
printf(”a2=%d\n“,a);
11. #include void f(int a, int b, int *c) { a=20; b=10; *c=a+b; } void main() { int a=10,b=20,c=30,d=40; printf(”%d,%d,%d\n“,a,b,c); }
f(a,b,&c);
12. #include void swap(int a,int b); void main() { int a=2,b=3; printf(”a=%d,b=%d\n“,a,b);
swap(a,b); printf(”a=%d,b=%d\n“,a,b); } void swap(int a,int b) { int c; c=a; a=b; b=c; } 13. #include void fun(int a,int b,int c); void main() { int x=10,y=20,z=30; fun(x,y,z); printf(”%d,%d,%d\n“,x,y,z); } void fun(int a,int b,int c) { a=456;b=567;c=678; } 14. #include float f(int n) { int i;float s=0.0; for(i=1;i int f(int a); void main() { int a=2,i; for(i=0;i<3;i++) printf(”%d“,f(i));
} int f(int a) { int b=0,c=3; c++; return(a+b+c); } 16. #include int fun(); void main() { int i,x; for(i=0;i<=2;i++) x=fun(); printf(”%d\n“,x); } int fun() { int x=3; x++; return x; }
b++;
17. #include float add(float x,float y); void main( ) { float a,b,c; a=1.0; b=2.0; printf(”%f\n“,c); } float add(float x,float y) { float z; z=x+y; return(z); } 18. #include void fun(int x, int cp, int dp) { cp=x++; dp=++x; }
c=add(a,b);
void main(void) { int a,c=80, d=-20; a=30; printf(”%d,%d\n“, c,d); } 19. #include int f(int a,int b); void main() { int i=2,p; p=f(i,i+1); printf(”%d\n“,p); } int f(int a,int b) { int c; if(a>b) c=1; else if (a==b) c=0; else c=-1; return (c); }
fun(a,c,d);
20. #include int fun(int n) { if(n= =1) return 1; else return fun(n-1)+3; } void main() { int i,j=0; for(i=1;i<4;i++) j=j+fun(i); printf(”j=%d\n“,j); } 21. #include void f(int x,int y) { int t; if(x
f(a,b);
f(a,c); f(b,c); printf(”%d,%d,%d“,a,b,c); } 22. #include int age(int n) { int c; if(n==1) c=10; else c=age(n-1)+2; return(c); } void main() { printf(”%d“,age(5)); } 23. #include void hello_world(void) { printf(”Hello, world!\n“); } void three_hellos(void) { int counter; for (counter =1;counter <= 3;counter++) hello_world(); }
void main(void) { three_hellos(); } 24. #include int f(int a,int b); void main() { int x,i=1,k=3; x=f(i,k); printf(”x=%d \n“,x); } int f(int a,int b) { int M=0; while(b!=0) M=M+a; b--; } return M; }
{
25. #include f(int b[ ],int m,int n) { int i,s = 0; for(i = m;i < n;i++) s += b[i]; return s; } int main() { int x,a[ ] = {1,2,3,4,5,6,7,8,9}, *p = a; x = f(p,3,7); printf(”x=%d\n“,x); return 0; } 26. #include void fun(int i, int j) { int x = 7; printf(”i = %d; j = %d; x = %d\n“, i, j, x); } int main() { int i = 2, x = 5, j = 7; fun(j, 6); printf(”i = %d; j = %d; x = %d\n“, i, j, x);
return 0; } 27. #include void f(int a[]) { int i=0; while(a[i]<=10) { printf(”%d“,a[i]); i++; } } int main() { int a[]={1,7,17,9,11,34}; f(a+1); }
28. #include void add(int x, int y, int z) { z = x + y; x = x * x; y = y * y; printf(”(2) x = %d y = %d z = %d\n“, x, y, z); }
int main() { int x = 2, y = 3, z = 0; printf(”(1) x = %d y = %d z = %d\n“, x, y, z); add(x, y, z); printf(”(3) x = %d y = %d z = %d\n“, x, y, z); return 0; }
29. #include int x1 = 30, x2 = 40; void sub(int x, int y) { x1 = x; x = y; y = x1; }
int main() { int x3 = 10, x4 = 20; sub(x3, x4); sub(x2, x1); printf(” %d, %d, %d, %d\n“, x3, x4, x1, x2); return 0; }
30. #include int x; void cube() { x = x * x * x; }
int main() { x = 5; cube(); printf(” %d\n“, x); return 0; } 31. #include invert(int *s, int i, int j) { int t; if(i < j) { invert(s, i + 1,j - 1); t = *(s + i); *(s + i) = *(s + j); *(s + j) = t; } } void main( )
{ int a[6] = {10, 6, 23, -90, 0, 3}, i; invert(a, 0, 5); for(i = 0; i < 6; i++) printf(”%d, “, a[i]); printf(”\n“); } 32. int func(int a[][3])
{
int i,j,sum=0; for(i=0;i<3;i++)
for(j=0;j<3;j++){
a[i][j]=i+j;
if(i==j)
sum = sum+a[i][j];
}
return sum;
}
int main()
{
int a[3][3]={1,3,5,7,9,11,13,15,17};
int sum;
sum=func(a);
printf(”sum=%d“,sum);
return 0; }
33. # include int i=10; void fun(); void main( ) { int i; for(i=2; i>0; i--) fun( ); } void fun() { i*=2; printf(”i=%d\n“, i); } 34. #include int fun(int n) { if(n<=1) return 1; else
return fun(n-1)*n; } void main() { int i,j=0; for(i=1;i<=3;i++) j+=fun(i); printf(”j=%d\n“,j); }
35. #include int funa(int a, int b) { int t; if (a >b) t = a/b; else t = a%22; return t; } void main() {
int a=33, b=22,c; c=funa(a,b); printf(”c=%d\n“, c); }
36. # include void fun(int i); void main( ) { int i; for(i=2; i>0; i--) fun(i); } void fun(int i) { i*=2; printf(”+%d+“, i); } 37. # include void fun(int n); void main( ) { int x=879; fun(x); } void fun(int n) { int a,b,c,t; a = n % 10; b = (n/10) % 10; t; } if ( b < c ) { t = b; b = c; c = t; } if ( a < b ) { t = a; a = b; b = t; } printf( ”%d“, b ); }
c = (n/100) % 10;
if ( a < b ) { t = a; a = b; b =
38. #include int funa(int a, int b) { int t; if (a >b) { t = a; a = b; b = t; } return t; } void main() { int a=33, b=22,c; c=funa(a,b); printf(”c=%d\n\", c); } 39. #include int swap(int x, int y) { int z; z=x%10; x=y%10; y=z; z=x; return z; } void main() { int a=38, b=29,c;
✹ 大学c语言课件 ✹
C语言的灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误,下面整理了一些常见错误,一起来看看吧!
1.书写标识符时,忽略了大小写字母的区别。
main()
{
int a=5;
printf("%d",A);
}
编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
2.忽略了变量的类型,进行了不合法的运算。
main()
{
float a,b;
printf("%d",a%b);
}
%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。
3.将字符常量与字符串常量混淆。
char c;
c="a";
在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘',而把它赋给一个字符变量是不行的。
4.忽略了“=”与“==”的区别。
在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写
if (a=3) then …
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:
if (a==3) a=b;
前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。
5.忘记加分号。
分号是C语句中不可缺少的一部分,语句末尾必须有分号。
a=1
b=2
编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。
{ z=x+y;
t=z/100;
printf("%f",t);
}
对于复合语句来说,最后一个语句中最后的'分号不能忽略不写(这是和PASCAL不同的)。
6.多加分号。
对于一个复合语句,如:
{ z=x+y;
t=z/100;
printf("%f",t);
};
复合语句的花括号后不应再加分号,否则将会画蛇添足。
又如:
if (a%3==0);
I++;
本是如果3整除a,则I加1。但由于if (a%3==0)后多加了分号,则if语句到此结束,程序将执行I++语句,不论3是否整除a,I都将自动加1。
再如:
for (I=0;I<5;I++);
{scanf("%d",&x);
printf("%d",x);}
本意是先后输入5个数,每输入一个数后再将它输出。由于for()后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它。
7.输入变量时忘记加地址运算符“&”。
int a,b;
scanf("%d%d",a,b);
这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。
8.输入数据的方式与要求不符。
①scanf("%d%d",&a,&b);
输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:
✹ 大学c语言课件 ✹
说到我学习C语言时,真是用千言万语呀!记得刚开始学的时候,我的C语言学的并不是很好,学期都过了快一半了,对C语言还是一知半解的,我是第四小组的组长,组长的职位给我了很大的压力,我一直认为做学问都要做到这一点,要么做到最好,要么就不去做它,本着这样一个心太,我下了一个决心就是要学好C语言,开始我用了最笨的方法,就是一个厚厚的本子,一支笔,一本C语言书,天天有事没事抄程序,不管什么程序,我都不放过,一个一个的抄,抄了有好几个本,回到宿舍就在机子上调程序,一个月过去了,老师让做C语言项目,是一个学生成绩管理系统,在当时这样一个项目对我们来说真是难度不小,可是我本着一个试一试的心太去做了,一个打死我都不敢相信的奇迹出现了,这个程序我写出来了,而且几乎是一气合成,而且只用了一个晚上的时间,写了足足有六页的代码,看着写在本子上的代码我有点不相信,这怎么可能呢,当晚我没有睡着觉,高兴啊,谁能睡的着。做这个项目让我明白了一些道理,再大的程序也是有不同的小程序组成的,因为我天天抄程序,抄的全是小程序,做这个大点的程序的时候我发现全是一个一个的小程序,抄了一个月的程序,当然能很顺利的就写出来了。
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理、简单界面程序、高级界面程序、程序的添加修改、用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基矗为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1、加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的.认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2、熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基矗同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3、学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难、。
✹ 大学c语言课件 ✹
1.打印100-200之间的素数:
#include
#include
{
int i,a;
printf(“%d\n”,i);
}
return 0;
}
2.输入乘法口诀:
#include
{
int i,j;
printf(“%d*%d=%d ”,j,i,j*i);
printf(“\n”);
}
return 0;
}
3.判断1000-之间的闰年:
#include
{
int i;
if((i%4==0&&i%100!=0)||i%400==0)
printf(“%d\n”,i);
return 0;
}
✹ 大学c语言课件 ✹
1.下面四个选项中,均不是c语言关键字的选项是( )。
A) define IF Type B) getc char printf
C) include scanf case D) while go pow
2.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。
A) 必须为字母 B) 必须为下划线
C) 必须为字母或下划线 D) 可以是字母、数字和下划线中任一种字符
3.下列四个选项中,均是C语言关键字的选项是( )。
A) auto enum B) switch typedef continue
C) signed union scanf D) if struct 4.下面四个选项中,均是不合法的用户标识符的选项是( )。
A) A P_0 do B) float la0 _A
C) b-a goto int D) _123 temp int
5.以下有4组用户标识符,其中合法的一组是( )。
A) For -sub Case B) 4d DO Size
C) f2_G3 IF abc D) WORD void define
6.下列选项中,合法的C语言关键字是( )。
A) VAR B) cher C) integer D)
default
7.下面四个选项中,均是合法整型常量的选项是( )。
A) 160 -0xffff 011 B) -0xcdf 01a 0xe
C) –01986 012 0668 D) -0x48a 0x2e5 0xe
8.下面四个选项中,均是正确的八进制数或十六进制数的
选项是( )。
A) -10 0x8f -011 B) 0abc -017 0xc
C) 010 -0x11 0xf1 D) 0a12 -0x123 -0xa
9.设C语言中,一个int型数据在内存中占2个字节,则
unsigned int型数据的取值范围为( )。
A) 0~255 B) 0~32767 C) 0~65535
D) 0~2147483647
C++笔试题之选择题篇
1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。
A.12345ABCDE B.EDCBA54321 C.ABCDE12345 D.54321EDCBA
【答案】B
【解析】栈的特点是先进后出,所以全部入栈后再全部出栈所得的序列顺序必然与入栈序列的顺序相反。
2.下列叙述中正确的是( )。
A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定
【答案】D
【解析】循环队列是线性表的一种,所以选项A错误。循环队列的人队和出队需要队尾指针和队头指针共同完成,所以选项B和C错误。
在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。
A.O(n) B.O(n2) C.O(log2n) D.O(nlog2n)
【答案】C
【解析】二分查找法也称为折半查找法。它的基本思想是:将n个元素分成个数大致相同的两组,取a[n/2]与欲查找的x作比较。如果x=a[n/2],则找到x,算法终止;如果xa[n/2],则只要在数组a的右半部继续搜索x。每次余下n/2i)个元素待比较,当最后剩下一个时,即n/2i)=1。故,n=2i,i=log2n。
下列叙述中正确的是( )。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
【答案】A
✹ 大学c语言课件 ✹
篇1:学习c语言经验<\/h2>
我以前在学习计算机这上面走了很多弯路和邪路,相信很多朋友都有同样的感受,我第一个学习的语言是ASP,其实它也算不上们语言.大概是09一整年都在研究它,可是却还是糊里糊涂的,因为什么呢.最后我总结得出:因为ASP杂乱无章,更没有C那样贴近现实.搞ASP还要会CSS,JS,html,要背的死东西太多了,当然.这些是我后来才知道,一开始以为这些都是ASP里面的东西,学也学不会,也没人正确的指导,最后头都大了,自己也是凭着记忆式的操作ACCESS数据库,做些小网站等等.
后来我学习了C语言,从它里面,我知道了什么才是程序开发.如果,你以后要从事IT这个行业,我想C语言是必学的一门语言..
好了,开场白介绍完了,来具体讲讲我这几个月学习C语言的总结吧.
一、流程控制:
不管是哪一门语言,这个都是必须要学会,据说流程控制中的:顺序,循环,选择,能够解决世界上所有的问题.当然,只有通晓流程控制才能真正的解读程序!
1.顺序:正常的语句执行,从上至下。
2.选择:if 或 select..
3.循环:for while ..
在这里给大家出个程序,如果答对,那么流程控制也就基本过关了.
示例一:
#include
int main
{
int a = 3;
if a++;
a--;
printf;
a++;
printf;
return 0;
}
讲解一:
//第一个结果是3的话就答对了,因为一个if只能控制一条语句.如果想控制多条语句则用{}
//第二个是for循环,在他们中把int i = 0 看做1; i < 3 看做2; i++看做3; a++看做4
程序执行的顺序是:1.现执行1 2.执行2 3.如果2成立则执行4,不成立则推出循环 4.执行3
5.执行2 6.如果2成立则执行3,不成立则推出循环
当3执行完后,算一个循环执行.聪明的你应该知道答案了吧!
指针就像一根针指向一个地方..在他里面有两个运算符:* &
指针的用途可以说是很大的,在跨函数中使用内存是应用最广泛的,
因为引用函数中的变量和主函数中的变量不是同一变量,所以你要在引用函数中改变主函数的值,只有通过指针来改变。
示例二:
#include
{
int c;
c = *a;
*a = *b;
*b = c;
{
int a = 2;
int b = 3;
f;
printf;
return 0;
}
讲解二:
这个程序可以通过调用函数来实现两个数的交换,其中主函数的a b和f函数中的a b 是不相同的。
三、结构体
指针和结构体在以后的编程中会经常看到,在API中很多数据类型都是通过结构体自定义的.打个比方.假如一个班级要录入学生的信息.他们有:出生年月日、姓名、性别、籍贯、住所...我们需要发给每个人一张表单.这每个表单就相当于一个结构体变量.我们可以自己定义结构体变量中有哪些变量.这样就方便了我们对信息的操作!
四、运算符
五、数据类型
六、算法
四和五,我觉得是死东西.只要记得就行了.前三个我认为是学C语言必须掌握的基础知识. 而要会算法则要学习数据结构这门课!
PS:如果以上所写有错误或者不足之处欢迎拍砖。大家一起来谈论,C语言我们究竟该学习什么,什么才是重点,当然学习C语言也不仅是学C语言的,所谓一通百通,相信大家学会了C之后学习其他语言一定会逐步青云.
篇2:c语言学习技巧<\/h2>
一、课本
无论用的是什么书,要学好C语言,把书上的每一个例题、习题的代码读懂,这是学C最基本的要求。弄懂每一章的内容是什么?在C语言中有什么用?并尝试修改每一个例题的代码,采用不同的代码来实现题目的要求。
二、课堂
在每一节课上,注意老师讲的内容,有的知识,老师稍微提点,你就能弄懂,但是自己看书,或许你几天也弄不懂。老师更能清晰地让你明白所要求掌握的知识点。在课堂上,尽可能多的在草稿纸上写下你自己的代码,让老师看或是自己上机调试。
三、笔记
无论学习什么知识,笔记是重点,俗话说:好记性不如烂笔头。一个认真学习的人,总是记了很多笔记的,想学好编程,你的笔记本上总有课本上的每一个例题代码的核心部分。以及八大经典的算法举例,递推、递归、穷举、贪心、分治、动规、迭代、分枝。
四、交流
想学好C语言,交流是必须的,尤其是学习C语言的新手,这里,我向大家推介百度C语言贴吧,这里有很多的学习者,也有很多高手,在这里你能学到课本以及课堂上学不到的东西。和他人交流也是很重要的。
五、上机练习
这是学习好C语言的关重要的环节,无论你编程学得多好,上机实现才是目的,所以,不怕要辛苦,把你的每一段代码都敲进计算机,让计算机来实现,这样有助于你对程序的理解,并试着修改你的代码,让你的代码更精简,效率更高。平时没事的时候,在计算机上多敲代码,一个编程厉害的高手,他的计算机上会有多代码。
想成为编程高手的军规:
1、大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘!
2、编程不是技术活,而是体力活。
3、C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好。
4、计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣。
5、学习编程的秘诀是:编程,编程,再编程。
C语言的读书心得篇2说到我学习C语言时,真是用千言万语呀!记得刚开始学的时候,我的C语言学的并不是很好,学期都过了快一半了,对C语言还是一知半解的,我是第四小组的组长,组长的职位给我了很大的压力,我一直认为做学问都要做到这一点,要么做到最好,要么就不去做它,本着这样一个心太,我下了一个决心就是要学好C语言,开始我用了最笨的方法,就是一个厚厚的本子,一支笔,一本C语言书,天天有事没事抄程序,不管什么程序,我都不放过,一个一个的抄,抄了有好几个本,回到宿舍就在机子上调程序,一个月过去了,老师让做C语言项目,是一个学生成绩管理系统,在当时这样一个项目对我们来说真是难度不小,可是我本着一个试一试的心太去做了,一个打死我都不敢相信的奇迹出现了,这个程序我写出来了,而且几乎是一气合成,而且只用了一个晚上的时间,写了足足有六页的代码,看着写在本子上的代码我有点不相信,这怎么可能呢,当晚我没有睡着觉,高兴啊,谁能睡的着。做这个项目让我明白了一些道理,再大的程序也是有不同的小程序组成的,因为我天天抄程序,抄的全是小程序,做这个大点的程序的时候我发现全是一个一个的小程序,抄了一个月的程序,当然能很顺利的就写出来了。
后来我明白了,抄程序是最笨的方法但我认为它是进步最快的方法,抄程序是积累经验的时候,而做项目才是真正把所学为所用的时候,可以说只有你做一个大点的项目出来才能真正是说明你学到了东西,你会用所学的东西,要不然就算你学的再多,不会用也没用啊,我还发现有很多同学,在学飞C语言的时候比我学的要好,可是他们却做不出来项目,就是说学会了但是不会用,那我说还不如不学呢。有点浪费时间。做学问特别是计算机一定要做的精准,比如说一个语句一个关键字,你一定要把它几乎所有的用方法都能清楚明白,比如说print语句,对于它你一定要明白什么时候用,这些你都要非常的清楚明白,要不然说不定那一天你用会碰上麻烦事,一句话要学精了,语法掌握住了,接下来就是写程序了,其实抄程序并不是说一直没有目的去抄,你会发现当你抄一段时间以后就不用再抄了,因为大部分都是一样的你一看就知道怎么写了,当你一看到程序就知道它什么功能,那里有错的时候,那你的成绩可是进步不小啊,这并不需要太多的时间,只要你用心一个月足够了。
跟大家说几点经验1.在学习的时候一定要注意这几点,不会的一定要问明白,不管谁能让他教会你知识就是你的了,要学会让知识为我所用。在看书的时候一定要做好标记,特别是不懂的地方一定要标明是什么意思。
2.在学习语言的时候一定要记住动手,不要只说不做,这样会行成眼高手低,不管什么样的程序都要亲手做过才能说会了,不要整天说我不会学不会,其实是你不想学,只是你下决心抄一个月程序,我保证我能有大的进步,其实当你抄到一周到两周的时候你就会特想抄,因为你会发现程序你能看懂了,能帮别人调程序了,有一种成就感呀!它会让你更加努力的去学习。
3.再一点是我建议大家在上课的时候少看课本,课本要在下课的时候看特别是上课前一定要先看看课本,上课的时候呢就不要看了,不要老师讲到那个问题了你马上在书上找,这样不好,会影响你的注意力,其实还真不如注意听老师讲呢?因为你要是一边听一边看课本,你是看到了书上的答案但是老师的思路你没有听到,而要是你不看的话,你听明白了思路,一定是想迫切的看到结果,这个时候看课本才是记的最死的时候,学习要的是就是个效率吗?
4.提醒大家学习要讲效率,我发现有很多同学天天学习,每天最早到教室,走的又最晚,别人玩他在学,别人学他也学,可是别的一天30%的学习时间却比他们一天50%以上的学习时间的效率要高上不仅仅是几倍的问题,所以我要说的是不要对别人说你天天在学习,要说你天天在进步,学习不是要你学习了多久是,是要你学了多少东西的,你学一小时还没有别人学一分钟的效率高,难道自己不是浪费时间吗?不想学的时候就不要学,出去玩一会儿再来学说不定会有更好的效果。希望这些经验能跟大家分享一下,最后还是要跟大家强调一点,抄程序是学好C语言的最好最快的方法。
C语言的读书心得篇3在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基矗为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的.上机实验的目的可以概括为如下几个方面:
1.加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去掩盖程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2.熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓环境就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基矗同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3.学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。
篇3:c语言学习总结<\/h2>
怎么才能学好c语言呢?
1,要学习c语言的基本语言及程序结构,这时谭浩强的那本书就比较经典了。c语言学习心得。当然你不能只看书,要动手动写代码,去上机测试。因为很多时候写程序就是一个测试,你就是再牛的程序员也不能可写出没有bug的程序,所以学会找出程序中的错误很重要。这也是你以后分析他人的程序的先决条件,不可偷懒只看书,这样你是不可能学好一门计算机语言的。
2,分析他人写的程序,网上有很多实例代码,下载下来自己先看一下他们的实例是解决什么问题的,有时候很多经典的模块可以为已所用的。不过,网上下的代码中会存在很多问题,环境问题啊,编程习惯问题了,不过也好,在解决问题的过程中你会学到很多东西的,像我在分析网上下的代码时就遇到了我平时没有遇到的dos函数,masm与c语言的接合等方面的问题,学到了不少东西呢。
3,要是你再想学的深一点儿,那还得学习,,及,再深就要去分析linux内核或是驱动程序了,这因人而异。但不管怎么学,一定要有个方向,有计划,这样才会事半功倍。c语言学习心得。如果你能找到你想学习方面的高手指导,或是几个人一起学的话那就更好了。
4,分析c语言函数的实现方法。这对你很好地使用函数会很有帮助的,再者很多大公司的笔试题就是让你实现c语言的数,比如:中兴的strcpy,阿里巴巴的strcmp,上海贝尔公司宣讲会上一个技术总监说,要是谁能说出printf的实现方法及返回值,当场录用。再者,c语言经过这么多年的考验,仍然很热门,可见其开发是多么经典啊,学习一下c函数实现,比学习任何书都要好。要是再有兴趣的话就分析一下c的头文件,这也是个不错的学习方面。
篇4:c语言学习总结<\/h2>
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1。加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现
原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去“掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2。熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓“环境”就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3。学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。
篇5:C语言学习入门<\/h2>
C语言学习入门
C语言32个关键字:
auto double int struct break else long switch
case enum register typedef char extern return union
const float short unsigned continue for signed void
default goto sizeof volatile do if while static
常量修饰:const
c 语言中的进制: 二进制:int a = 0B1100 ; 八进制: int b = 027; 十六进制:int c = 0XAF3;
printf; printf;
%4d, 若表示的位数大于4,再按原样输出; 若小于4,则补上空格输出4位,, +4空格补左边,-4空格补右边
%.2f 输出两位小数,默认是6位
%p 输出内存的地址,, 如:printf
scanf; scanf; 接收多个时,分隔符可以是任意符号
包括空格、tab、回车
当数值比较小,用char 比用int 更节省内存开销,因为它只占1个字节
char c = ‘A’;与 char c = 65; 是等效的。一个汉字占两个字符,用char是不行的,
需要用字符数组来存储。
局部变量可以在声明时不初始化,后续使用,与Java不同;如果后续赋值是可以的,如果后续直接
使用系统赋给它的默认值是不好的,因为这是一个随机的垃圾值,不是0。
可以在基本数据类型的前面加一些修饰符,也有人称之为限定符,一样的意思。
有以下4种类型修饰符:
short 短型
long 长型
signed 有符号型 包括 正负数和0
unsigned 无符号型 正数和0
// 下面两种写法是等价的
short int s1 = 1;
short s2 = 1;
// 下面两种写法是等价的
long int l1 = 2;
long l2 = 2;
// 可以连续使用2个long
long long ll = 10;
// 下面两种写法是等价的
signed int si1 = 3;
signed si2 = 3;
// 下面两种写法是等价的
unsigned int us1 = 4;
unsigned us2 = 4;
// 也可以同时使用2种修饰符
signed short int ss = 5;
unsigned long int ul = 5;
unsigned char c1 = 10;
signed char c2 = -10;
long double d1 = 12.0;
short int 取值范围 类似java中的 short
long int int
long longlong
C语言的基本语句跟Java中的差不多
goto语句
算术运算符
+ 加法运算符
- 减法运算符,或负值运算符
* 乘法运算符
/ 除法运算符
% 模运算符,或称取余运算符,要求%两侧均为整型
关系运算符
< 小于运算符
<= 小于等于运算符
>大于运算符
>= 大于等于运算符
== 等于运算符
!= 不等于运算符
C语言中没有boolean类型
在C语言中,关系运算的结果为“真”就返回1,“假”就返回0
int a1 = 5 >4;// 1
int a2 = 5 <4;// 0
* 还需注意的是,在C语言中,任何非0值都为“真”,只有0值才为“假”如:if{}
if {}
在C语言中,可以不保存关系运算的结果因此,下面的写法是合法的:
int a = 10;
a >10;
a == 0;
逻辑运算符
&& 逻辑与运算符
|| 逻辑或运算符
! 逻辑非运算符
逻辑运算的结果也只有两个:成立就为“真”,返回1;不成立就为“假”,返回0
复合赋值运算符
+= 加赋值运算符。如a += 3+1,等价于 a = a +
-= 减赋值运算符。如a -= 3+1,等价于 a = a -
*= 乘赋值运算符。如a *= 3+1,等价于 a = a *
/= 除赋值运算符。如a /= 3+1,等价于 a = a /
%= 取余赋值运算符。如a %= 3+1,等价于 a = a %
自增运算符和自减运算符
++ 自增运算符。如a++,++a,都等价于a = a+1
-- 自减运算符。如a--,--a,都等价于a = a-1
逗号运算符和逗号表达式
* 逗号运算符主要用于连接表达式,例如:
int a = 9;
int b = 10;
a = a+1 , b = 3*4;
逗号表达式的运算过程是:从左到右的顺序,先计算表达式1,接着计算表达式2,...,最后计算表达式n
* 整个逗号表达式的值是最后一个表达式的值c = ; <==>c=b;
三目运算符
int a = ? 10 : 9;
sizeof可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。
sizeof;
char c = 'a';
sizeof;
sizeof;
篇6:c语言学习计划<\/h2>
第一步:入门,即学会如何写C语言程序。以C语言作为编程语言的学习切入点,笔者认为是个不错的选择。C语言是一门较早的编程语言,也是一门基础语言,很多理工科高校都把C语言作为必修课。C语言也是一门较底层较高效的语言,不仅在单片机开发和嵌入式开发大显身手,还创造了像C++、PHP等其他流行的编程语言。 下面让我们看一下如何学习C语言。 了解C语言的特点和有关概念:如C语言的发展过程、C语言版本、C语言特点、C和C++的区别等!
了解C语言的数据类型和算法:如基本数据类型和运算符、顺序程序设计、分支程序设计、循环结构、数组等。 学习C语言一定要知道它的利器——指针。这正是C语言强大、高效和灵活的地方。如果您没有学会指针,可以说,您就没有学到C语言的精髓。 模块化程序设计:函数的定义和使用、结构体和共用体等。 其他相关操作,如预处理命令、文件操作等。 最重要的一点,大家要系统的学习入门教程,请进入学习页面:C语言入门教程 第二步:进阶,即写出高质量的代码。亲,如果您按照第一步的步骤去做了,那么恭喜你,你已经入门了,了解了编程语言的基本概念和思想、能用C语言来处理一般的运算和操作了。 但是,这样是不够的,要想成为C语言程序设计高手,必须要考虑内存和CPU分配、程序。
