计算机系c语言学习总结(通用15篇)
计算机系c语言学习总结 篇1
全国计算机二级C语言考试上机题型总汇
(一)关于“******”问题
1、将字符串中的前导*号全部删除,中间和后面的*号不删除。void fun(char *a){ char *p=a;while(*p= =’*’)p++;for(;*p!=’’;p++,a++)*a=*p;*a=’’;}
2、只删中间* int i;for(i=0;a[i]= =’*’;i++)for(;h
3、只删尾* while(*a!=’’)a++;a--;while(*a= =’*’)a--;*(a+1)=’’;
4、只留前* int i , j=0;for(i=0;a=’*’;i++);j=i;for(;a;i++)if(a!=’*’)a[j++]=a[i];a[j]=’’;
5、只留中间* int i,j=0;for(i=h;i 6、只留尾* char *t=a;for(;t<=p;t++)if(*t!=’*’)*(a++)=*t;for(;t!=’’;t++)*(a++)=*t;*a=’’; 7、*个数>n个,删多余的*;*个数<=n个,不做任何处理。int i=0, k=0;char *p,*t;p=t=a;while(*t= =’*’){ k++;t++;} if(k>n){ while(*p){a[i]=*(p+k-n);i++;p++} a[i]=’’;} (二)移动问题 1、若一维数组中有n个整数,要求把下标从p到n-1(p<=n-1)的元素平移到数组前面。int i,j,t;for(i=p;i<=n-1;i++){ t=w[n-1];for(j=n-2;j>=0;j--)w[j+1]=w[j];w[0]=t;} 2、把下标从0到p(p<=n-1)的元素平移到数组最后。int i,j,t;for(i=0;i<=p;i++){ t=w[0];for(j=1;j 3、把字符串str中的字符向前移动,原来第1个字符放串尾,结果仍保存在原串中。ch=str[0];for(i=0;str[i+1];i++)str[i]=str[i+1];str[i]=ch; 4、移动字符串中的内容,把第1到第m个字符平移到串后,把第m+1到后移到前。void fun(char *w, int m){ int i, j;char t;for(i=1,i<=m;i++){ t=w[0];for(j=1;w[j]!=’’;j++)w[j-1]=w[j];w[j-1]=t;} } (三)排序法 1、冒泡法 for(i=1;i 2、选择法 for(i=0;i 3、插入法 for(i=1;i (四)Fibonacci问题 1、求Fibonacci数列中小于t的最大的一个数,结果由函数返回。int fun(int t){ int a=1,b=1,c=0,i;do { c=a+b;a=b;b=c;}while(c 2、用递归算法计算数列中第n项的值。long fun(int g){ swich(g){ case 0:return 0;switch(g)case1:case2:return 1;} return(fun(g-1)+fun(g-2));}(五)素数问题 1、将大于整数m且紧靠m的k个非素数存入所指的数组中。void fun(int m,int k,int xx[]){ int i,j,n;for(i=m+1,n=0;n 2、小于或等于lim的所有素数放在aa数组中,该函数返回所求出的素数个数。int fun(int lim, int aa[MAX]){ int i,j,k=0;for(i=2;i<=lim;i++){ for(j=2;j=i)aa[k++]=i;} return k;} 3、将所有大于1小于整数m的非素数存入xx数组中,个数通过k传回。void fun(int m,int *k,int xx[]){ int i,j,n=0;for(i=4;i {int i, j,t,n=0;for(i=2;i (六)删除相同数 int fun(int a[],int n){ int i, j=1;for(i=1;i { int i,t,j=0;t=a[0];for(i=1;i (七)统计字符个数,单词个数。 1、按‘0’到‘9’统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。 void fun(char *tt, int num[]){ int i, j;int bb[10];char *p=tt;for(i=0;i<10;i++){ num[i]=0;bb[i]=0;} while(*p){ if(*p>=’0’&&*p<=’9’)bb[*p-‘0’]++;p++;} for(i=1,j=0;i<10;i=i+2,j++)num[j]==bb[i];} 2、str全部由小写字母和空格字符组成的字符串,num传入字符串长度。统计单词个数。void fun(char *s, int *num){ int I, n=0;for(i=0;i<*num;i++){ if(s[i]>=’a’&&ss[i]<=’z’&&(s[i+1]= =’’|| s[i+1]==’0’))n++;} *num=n;} 3、从’a’到’z’统计一个字符串中所有字母字符各自出现的次数,结果存在数组alf中。void fun(char *tt, int alf[]){ int i;char *p=tt;for(i=0;i<26;i++)alf[i]=0;while(*p){ if(*p>=’A’&&*p<=’Z’)*p+=32;if(*p>=’a’&&*p<=’z’)alf[*p-‘a’]++;p++;} } 4、str字符序列由字符0和1组成。查找0字符连续出现的最长长度,若有几个0字符长度相同,只记录最后1个0字符串相关信息,通过m和k返回最长0字符长度和其下标。void fun(char *str, int *m, int *k){ int i, j=0;int bb[N];char *p=str;*m=0;*k=0;for(i=0;i 5、统计在tt字符串中”a”到”z”26个字母各自出现的次数,并依次放在pp所指数组中。void fun(char *tt,int pp[]){ int i;for(i=0;i<26;i++)pp[i]=0;for(;*tt!=’’;tt++)if(;*tt>=’a’&&*tt<=’z’)pp[*tt-’a’]++;} 6、统计一个长度为n的字符串在另一个字符串中出现的次数。int fun(char *str, char *substr){ int n;char *p,*r;n=0;while(*str){ p=str;r=substr;while(*r)if(*r==*p){r++;p++;} else break;if(*r==’’)n++;str++;} return n;} 7、求出ss所指字符串中指定字符的个数,并返回此值。int fun(char *ss, char c){ int i=0;for(;*ss!=’’;ss++)if(*ss==c)i++;return i;} 8、统计一个长度为2的字符串在另一个字符串中出现的次数。int fun(char *str, char *substr){ int i,j=0;for(i=0;str[i+1]!=’’;i++)if(str[i]==substr[0]&&str[i+1]==substr[1])j++;return j;} (八)进制转换 1、把str字符串转换成任意进制的数。int fun(char *str, int x, int y){ int sum;int i=0;char *p=str;for(i=0;i :原进制;y:要转换成的进制。x while(sum!=0){ xx[i]=sum%y;sum=sum/y;i++;} return i;} 注: (1)将x转换成10进制:sum=sum*x+*p-‘0’;(2)将10进制转换成y: sum%y 得到y进制数的最低位。sum/y 得到y进制数的次低位。 2、str字符串由‘0’和‘1’组成。转换成十进制数。int fun(char *str){ int n;char *p=str;n=*p-‘0’;p++;while(*p){ n=n*2+*p-‘0’;p++;} return n;} (九)比较字符串长度 1、比较两个字符串的长度,函数返回较短的字符串。char *fun(char *s, char *t){int i,j;for(i=0;s[i]!=’’;i++);for(j=0;t[j]!=’’;j++);if(i<=j)return s;else return t;} 2、从传入的num个字符中找出最长的一个字符串,通过形参指针max传回该串地址。fun(char(*a)[81], int num,char *max){ int i=0;max=a[0];for(i=0;i (十)最大公约数,最小公倍数 1、int fun(int a, int b){ int r,t;if(a 2、输入两整数m和n,求最大公约数,最小公倍数。while(b!=0){t=a%b;a=b;b=t;} printf(“%d”,”%d”,a, n*m/a);注: (1)最大公约数:若b/a的非零余数能整除a。(2)最小公倍数:两数乘积除以最大公约数。 1 循环冗余码CRC的工作原理 在发送端利用事先约定的m位生成码和K位要发送的信息位,产生一个r位的循环冗余码,附加在信息位后面一起发送到接收端。接收端对收到的信息,按发送端形成循环冗余码同样的算法重新计算CRC,并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误,需重发。生成码可以用(r=m-1)次多项式G(X)表示;K位信息位可以用(k-1)次多项式K(X)表示;r位的循环冗余码可以用(r-1)次多项式R(X)表示;实际发送的信息码共有n=k+r位,可以用(n-1)次多项式T(X)=Xr*K(X)+R(X)表示。 生成多项式G(X)是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。生成多项式应满足以下条件: 1)多项式的最高位和最低位必须为1。 2)传送信息(CRC码)任何一位发生错误时,被生成多项式做模2除后应该使余数不为0。 3)位发生错误时,应该使余数不同。 4)数继续做模2除,应使余数循环。 2 循环冗余码的产生与码字正确性检验例子 例1.已知:信息码:110011信息多项式:K(X)=X5+X4+X+1 生成码:11001生成多项式:G(X)=X4+X3+1(r=4) 求:循环冗余码和码字。 解:1)(X5+X4+X+1)*X4的积是X9+X8+X5+X4对应的码是1100110000。 2)积/G(X)(按模二算法)。 由计算结果知冗余码是1001,码字就是1100111001。 例2.已知:接收码字:1100111001多项式:T(X)=X9+X8+X5+X4+X3+1 生成码:11001生成多项式:G(X)=X4+X3+1(r=4) 求:码字的正确性。若正确,则指出冗余码和信息码。 解:1)用字码除以生成码,余数为0,所以码字正确。 2)因r=4,所以冗余码是:11001,信息码是:110011 3 用C语言程序实现方法 下面以最常用的CRC-16为例来说明其生成过程。假设发送信息用信息多项式K(X)表示,将K(x)左移R位,则可表示成k(x*2R,这样K(x)的右边就会空出R位,这就是校验码的位置。通过k(x)*2R除以生成多项式G(x)得到的余数就是校验码。实现方法: 1)最高幂次为R的生成多项式G(x)转换成对应的R+1位二进制数。 2)码左移R位,相当与对应的信息多项式k(x)*2R。 3)多项式(二进制数)对信息码做模2除,得到R位的余数。 4)拼到信息码左移后空出的位置,得到完整的CRC码。 C语言程序源代码: 按同样的方法可以编写出验证CRC码的正确性,以及指出冗余码和信息码的程序。 摘要:简述CRC算法原理,用C语言的位运算方法来求解,并给出用C语言编写的源程序。 关键词:CRC,位运算,编程 参考文献 [1]顾慰文.纠错码及其在计算机系统中的应用[M].北京:人民邮电出版社,1980. 关键词:C语言;计算思维;教学改革 一、引言 目前,在高校的计算机课程中,C语言作为基础的高级编程语言,已经在高等教学中得到广泛应用。要想掌握C语言的使用方法,学生要具备较好的抽象思维能力,而这种能力就是计算思维。由于对学生的抽象能力要求较高,C语言的教学效果始终提升不起来。为此,本文提出了融合计算思维的C语言教学方法。 二、发展现状与存在问题 计算思维的特征有如下三个方面:(1)计算思维采用一般的数学思维方式对复杂问题进行求解,改变了目前人们对复杂系统设计和评价的传统方法;(2)计算思维站在计算过程的能力与限制的上层,通过计算思维,能够处理原本无法由个人完成的计算问题与系统设计;(3)计算思维是计算内容的高度抽象,超越了传统物理思维的时空观,计算思维的抽象内容是用符号来表示的。因此,计算思维比物理思维的抽象更加丰富与复杂。 根据上文所述,计算思维对复杂问题有着很强的求解能力。因此,在高校的计算机学科的C语言教学中融合计算思维,有助于提升学生的学习兴趣以及提升解决C语言编程的能力。 目前,C语言作为非计算机专业学生的一门必修课,在C语言教学中,一般的授课方法是,语法说明,按照固定的模式编程,这样的教学形式容易造成学生片面的理解。根据多年的教学实践来看,大多数学生认为C语言这门课程比较难学,而且毫无兴趣而言,学生只是为了编程去编程。因此,我们应该更换一种教学思维,推行计算思维融合到C语言教学。这样就能通过计算思维培养学生的兴趣学习与主动学习。 三、计算思维融合的方法 如何将计算思维与C语言的教学相融合,如何提高学生利用计算机理论对实际问题进行抽象与分解的能力,对学习C语言的学生与教师都是一个急需解决的问题。下面提供了几种计算思维与C语言教学融合的方法: 1.案例教学法。在C语言的教学过程中,教师要注重讲授C语言是过程化的语言,主要有顺序、选择和循环三种结构。这三种结构是学习C语言编程的基本架构。而对于数组以及指针部分,教师要多选取生动、印象深刻的例子让学生理解。例如,指针是存储地址的变量,教师可以在教学过程中让一个学生通过学号找到对应的学生,并讲解,这个学号变是地址,而持有学号的学生就是指针变量。再如,从生活中简单的例子来引入C语言的计算思维,可以举例求解1至100的连加和。通过上述两个例子,可以使学生对计算思维有一个初步的认识,学生也可以从一个更高层级的思维高度去思考问题和理解C语言编程,这对学习C语言的学生无疑是一个非常好的方式。 2.交互式教学法。教师要注重课堂的互动方式,教师不能一直在讲解知识点,而是要适当地与学生互动,进行问题的探讨,引导学生主动思考问题,激发学生主动学习的热情,充分提高课堂效率。 3.课程设计。教师在课程设计中也应该融入计算思维的模式,比如课程设计题目为酒店入住管理系统,从实际问题出发,从解决思路出发,使学生在整个课程设计中,将设计题目分成几个功能模块,对每个模块进行思考、讨论、验证。 四、结论 本文探析的是将计算思维融入C语言的教学,并提出了几种融合方法,通过教学效果来看,通过计算思维在C语言教学课堂的融合,提高了大学生解决复杂问题的能力,提高了大学生的主动学习能力,这对大学生日后其他课程的学习是非常有益处的。 参考文献: [1]牟琴,谭良.计算思维的研究及其进展[J].计算机科学, 2011(3). [2]陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1). [3]李国杰.信息科学技术的长期发展趋势和我国的战略取向[J].中国科学:信息科学,2010(1). [4]董荣胜.计算思维与计算机导论[J].计算机科学,2009(4). [5]朱亚宗.论计算思维:计算思维的科学定位、基本原理及创新路径[J].计算机科学,2009(4). 在C语言中取随机数所需要的函数是: int rand(void); void srand (unsigned int n); rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件: #include 2. 使用方法 rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom),RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。 srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。 /* 例1:不指定种子的值 */ for (int i=; i<10; i++) { printf(“%d ”, rand()%10); } 每次运行都将输出:1 7 4 0 9 4 8 8 2 4 /* 例2:指定种子的值为1 */ srand(1); for (int i=; i<10; i++) { printf(“%d ”, rand()%10); } 每次运行都将输出:1 7 4 0 9 4 8 8 2 4 例2的输出结果与例1是完全一样的。 /* 例3:指定种子的值为8 */ srand(8); for (int i=; i<10; i++) { printf(“%d ”, rand()%10); } 每次运行都将输出:4 0 1 3 5 3 7 7 1 5 该程序取得的随机值也是在[0,10)之间,与srand(1)所取得的值不同,但是每次运行程序的结果都相同。 /* 例4:指定种子值为现在的时间 */ srand((unsigned)time(NULL)); for (int i=; i<10; i++) { printf(“%d ”, rand()%10); } 该程序每次运行结果都不一样,因为每次启动程序的时间都不同。另外需要注意的是,使用time()函数前必须包含头文件time.h。 3. 注意事项 求一定范围内的随机数。 如要取[0,10)之间的随机整数,需将rand()的返回值与10求模。 randnumber = rand() % 10; 那么,如果取的值不是从0开始呢?你只需要记住一个通用的公式, 要取[a,b)之间的随机整数(包括a,但不包括b),使用: (rand() % (b - a)) + a 伪随机浮点数。 要取得0~1之间的浮点数,可以用: rand() / (double)(RAND_MAX) 如果想取更大范围的随机浮点数,比如0~100,可以采用如下方法: rand() /((double)(RAND_MAX)/100) 其他情况,以此类推,这里不作详细说明。 当然,本文取伪随机浮点数的方法只是用来说明函数的使用办法,你可以采用更好的方法来实现。 举个例子,假设我们要取得0~10之间的随机整数(不含10本身): 大家可能很多次讨论过随机数在计算机中怎样产生的问题,在这篇文章中,我会对这个问题进行更深入的探讨,阐述我对这个问题的理解。 首先需要声明的是,计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。 伪随机数并不是假随机数,这里的“伪”是有规律的意思,就是计算机产生的伪随机数既是随机的又是有规律的。怎样理解呢?产生的伪随机数有时遵守一定的规律,有时不遵守任何规律;伪随机数有一部分遵守一定的规律;另一部分不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这正是点到了事物的特性,即随机性,但是每种树的叶子都有近似的形状,这正是事物的共性,即规律性。从这个角度讲,你大概就会接受这样的事实了:计算机只能产生伪随机数而不能产生绝对随机的随机数。 那么计算机中随机数是怎样产生的呢?有人可能会说,随机数是由“随机种子”产生的。没错,随机种子是用来产生随机数的一个数,在计算机中,这样的一个“随机种子”是一个无符号整形数。那么随机种子是从哪里获得的呢? 下面看这样一个C程序: //rand01.c #include static unsigned int RAND_SEED; unsigned int random(void) { RAND_SEED=(RAND_SEED*123+59)%65536; return(RAND_SEED); } void random_start(void) { int temp[2]; movedata(0x0040,0x006c,FP_SEG(temp),FP_OFF(temp),4); RAND_SEED=temp[]; } main() { unsigned int i,n; random_start(); for(i=;i<10;i++) #include main { int sign=1; float deno=2.0,sum=1.0,term; while(deno<=100) { sign=-sign; term=sign/deno; sum=sum+term; deno=deno+1; } printf(“the sum is %f ”,sum); } 2 #include #define PI 3.14159 #define R 5.3 main() { printf(“area=%f ”,PI*R*R); /*输出面积*/ printf(“circumference=%f ”,2*PI*R); /*输出周长*/ } 3 #include main() { int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%f ”,data); } 4 #include main() { float a,b; a=123456.72e5; b=a+20; printf(“a=%f ”,a); printf(“b=%f ”,b); } 运行结果都是123456780.000000 5 #include main() { char a=0x1261,b; b=a-32; printf(“%c,%c %d,%d ”,a,b,a,b); } 6 #include main() { int i=5,x; x=i++; printf(“i=%d,x=%d ”,i,x); printf(“%d ”,++i); printf(“%d ”,--i); printf(“%d ”,i--); printf(“%d ”,-i++); printf(“%d ”,-i--); } ++在前 先干别人让它干的事 再干其他事 ++在后 先干自己该干的事请 再干其它事 7 #include main() { int x,a; x=(a=3,6*3); printf(“a=%d,x=%d ”,a,x); x=a=3,6*a; printf(“a=%d,x=%d ”,a,x); } 8 #include main() { short int a=289; char c; long int b=98304; c=a; /*截取a的低八位赋值给c*/ a=b; /*截取b的低八位赋值给a*/ printf(“a=%d c=%d ”,a,c); } 9 #include main() { umsign short int a; a=-1; printf(“%u”,a); } 10 #include main() { int a; a=3.567; printf(“%d ”,a); } 11 #include main() { float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d ”,x,i); } 12 #include main() { int a; float b; printf(“char:%d byte ”,sizeof(char)); printf(“int:%d byte ”,sizeof(int)); printf(“a:%d byte ”,sizeof(a)); printf(“b:%d byte ”,sizeof(b)); } 1.计算机二级C语言程序设计考点解析:C语言程序实例 2.计算机二级C语言每日练习 3.计算机二级C语言复习建议 4.计算机二级c语言试题 5.计算机二级C语言程序设计考点:C语言的特点 6.计算机二级C语言程序设计考点:C语言的应用 7.计算机二级C语言程序设计考点:函数 8.计算机二级C语言程序设计考点:数组 9.计算机二级C语言程序设计考点解析:运算 A.FOR B.&a C.print D._00 正确答案:B 答案解析:合法的标识符要满足组成字符为a~z以及A~Z,数字字符0到9和下划线,其中数字不开头,不能是关键字。选项B中,&不属于组成字符,是错误的。 2). 下列描述中正确的是( ) A.程序就是软件 B.软件开发不受计算机系统的限制 C.软件既是逻辑实体,又是物理实体 D.软件是程序、数据与相关文档的集合 正确答案:D 答案解析:计算机软件与硬件是计算机系统中相互依存的两部分。计算机软件是包括程序、数据及相关文档的完整集合。软件由两部分组成:一部分是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。软件具有以下六个特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性。②软件的生产与硬件不同,它没有明显的制作过程。③软件在运行、使用期间不存在磨损、老化问题。④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移值的问题。⑤软件复杂性高,成本昂贵。⑥软件的开发涉及诸多社会因素。 3). 变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是 A.a^b B.a|b C.a&b D.a<<4 正确答案:A 答案解析:本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会产生任何变化,故本题选A。 4). 下列关于栈叙述正确的是( ) A.栈顶元素最先能被删除 B.栈顶元素最后才能被删除 C.栈底元素永远不能被删除 D.以上三种说法都不对 正确答案:A 答案解析:栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。 5). 已知 int a=1,b=3则a^b的值为 A.3 B.1 C.2 D.4 正确答案:C 答案解析:^是按位异或运算,如果对应位不同则结果为1,相同则为0。 6). 按条件f对关系R进行选择,其关系代数表达式为( ) A.R|X|R B.R|X|Rf C.бf(R) D.∏f(R) 正确答案:C 7). 信息隐蔽的概念与下述哪一种概念直接相关( ) A.软件结构定义 B.模块独立性 C.模块类型划分 D.模拟耦合度 正确答案:B 8). 对于循环队列,下列叙述中正确的是( ) A.队头指针是固定不变的 B.队头指针一定大于队尾指针 C.队头指针一定小于队尾指针 D.队头指针可以大于队尾指针,也可以小于队尾指针 正确答案:D 答案解析:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。循环队列的主要操作是:入队运算和退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,队头指针就进一。当rear或front等于队列的长度加1时,就把rear或front值置为1。所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。 9). 设有定义: char p[]={′1′, ′2′, ′3′},*q=p; 以下不能计算出一个char型数据所占字节数的表达式是( ) A.sizeof(p) B.sizeof(char) C.sizeof(*q) D.sizeof(p[0]) 正确答案:A 答案解析:选项A计算的是p[ ]字符数组首地址所占的内存字节数,返回值数组中所有元素占有的空间。*q和p[0]分别表示数组p中下标为0的字符元素,选项B和D都可以计算char型数据占有的字节数。 10). 以下叙述中正确的是( ) A.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 B.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据 C.C语言中的文件是流式文件,因此只能顺序存取数据 D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 正确答案:D 答案解析:在C语言中,有两种对文件的存取方式;顺序存取和直接存取;如果以″a″的方式对一个已打开的文件进行写操作后,则原有文件中内容将保存,新的数据写在原有内容之后。如果以″a+″的方式为读和写而打开一个文件,则既可以对文件进行读,也可以对文件进行写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读(写)操作完成之后,必须将它关闭。 11). 若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。 A.x=y==5; B.x=n%2.5; C.x+n=I; D.x=5=4+1; 正确答案:A 答案解析:选项A的含义是把关系表达式y==5的值赋给变量x。所以这是一条正确的赋值语句。因为赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,所以选项C和D是错误的。因为求余运算符″%″两侧的运算对象都应当是整型数据,所以选项B是错误的。 12). 下列数据结构中,属于非线性结构的是( ) A.循环队列 B.带链队列 C.二叉树 D.带链栈 正确答案:C 答案解析:根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。 13). 下列叙述中正确的是( ) A.一个算法的空间复杂度大,则其时间复杂度也必定大 B.一个算法的空间复杂度大,则其时间复杂度必定小 C.一个算法的时间复杂度大,则其空间复杂度必定小 D.算法的时间复杂度与空间复杂度没有直接关系 正确答案:D 答案解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。 14). 下列描述中正确的是( ) A.程序就是软件 B.软件开发不受计算机系统的限制 C.软件既是逻辑实体,又是物理实体 D.软件是程序、数据与相关文档的集合 正确答案:D 答案解析:计算机软件与硬件是计算机系统中相互依存的两部分。计算机软件是包括程序、数据及相关文档的完整集合。软件由两部分组成:一部分是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。软件具有以下六个特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性。②软件的生产与硬件不同,它没有明显的制作过程。③软件在运行、使用期间不存在磨损、老化问题。④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移值的问题。⑤软件复杂性高,成本昂贵。⑥软件的开发涉及诸多社会因素。 1.计算机二级c语言试题 2.计算机二级C语言程序设计测试题及答案 3.计算机二级C语言考试考什么 4.计算机二级C语言基础练习题 5.计算机二级C语言考试必看技巧 6.计算机二级C语言考点:字符型数据 7.计算机二级《C语言》基础练习题及答案 8.全国计算机二级c语言练习题 9.计算机二级C语言重点知识点 1 C语言的特点 C语言具有许多特点, 正确运用这些特点, 就可以提高对C语言的学习效率。 1.1 相关操作较为简易 C语言的相关操作非常简单, 灵活性也是非常强的, C语言有九种控制语言, 并且具有32个关键字, C语言可以将一些高级语言的基本结构与低级语言的实用性相结合。 1.2 涉及的范围较为广泛 C语言所涉及的范围相对较为广泛, 从C语言的相关运算符来说, C语言总共有三种运算符, 对于一些特殊的符号可以运用一些方法进行转换, 这些符号都可以叫运算符。丰富C语言的运算类型, 在一定程度上可以达到广泛应用C语言的效果。 1.3 输入操作均由标准库函数来实现 在C语言的学习过程中, 标准库函数起到的作用非常大。在学习C语言的过程中时, 对于控制语句和运算符的学习是十分困难的, 此外还要掌握一些词汇量较大的函数。C语言的基本单位是函数, 函数的作用就在于C语言具有独特的一套学习程序, 学习的过程中函数就相当于它的子程序, C语言程序的每一次执行都是由函数开始的, 不论函数在程序中处于哪个位置、充当什么成分, 只有当主函数的程序执行完, 子程序的函数才可以进行语言的转换。 2 C语言的语法 C语言中涉及许多语法, C语言中的语法学习起来非常困难, 只有掌握了C语言中语法存在的规律, 才可以熟练掌握C语言的语法。设计了一系列字符串, 对于这些字符串来说, C语言学习起来就像是一种数组。 2.1 指针 如果变量存在的前提条件是要使用术号, 指针型变量就会被间接性证明出, 同时也可以说明, 变量之间是互相存储的。不同的含义代表不同的运算符号, 这样就可以理解C语言中存在的双目运算符, C语言中还存在一种内容操作符, 就是我们要根据这个储存的地址来看它储存的内容是什么。C语言中最高级的语言区别就是指针, 指针并不是指生活中常见的东西, 它是C语言中的一种含义的代称。在新语言的学习过程中我们可以根据指针函数确认返回值, 指针在C语言中代表的是一种形式参数, 在C语言中指针有利也有弊, 有一些计算机操作是可以通过指针来表达的, 但有时在表达上也存在一些弊端。指针得到正确的使用才会带来便捷, 如果运用不得当就会带来一些问题。 2.2 字符串 字符串简单来说就是C语言中的一些字符, 是不同的数的组合, 我们在运用字符串时并不需要借鉴与引用库中的数据。在C语言的标准库中确实存在着一些重复的字符串, 但是仔细去观察这些相同的字符串, 还是具有不同的含义的, 虽然它们看起来就像是一些奇形怪状的符号, 但是其实是一些函数。 3 C语言结构 C语言具有一些特殊的结构, 比如顺序结构、倒序结构和选择结构, 这些特殊的结构共同构成了C语言结构。 3.1 顺序结构 顺序结构是C语言结构中最为简单的一种结构, 只需要依据问题发生的顺序来解决即可, 接下来就写出相对应的语句, 顺序结构的执行顺序一般都是从上到下, 按照问题的顺序进行解答。简单介绍一下, 当两个箱子进行交换时, 要用到第三个箱子, 如果说第三个箱子是丙, 那么顺序就应是丙=甲、甲=乙、乙=丙, 通常情况下, 对于刚刚接触C语言的学习者来说, 很容易犯一些低级的错误。C语言的顺序结构虽然说是一个简单的程序, 但是却可以独立使用, 并且在一些常见的输入中, 应用顺序结构是最为简便的。 3.2 选择结构 选择结构就是将一些较为相似的结果放在一起, 然后根据不同的条件进行分类, 所以选择的执行路径是有所不同的。对于一些特殊的选择结构程序设计方法, 可以运用一些实用性较强的分支条件进行计算, C语言的选择顺序中的分析程序是最关键的。在学习相关的一些程序时, 不同的程序要运用不同的思维学习, 不同的程序所涉及的一些规律也是不同的。对于C语言选择顺序的程序来说, 在通常情况下都要为流程绘画图解, 以便于在计算的过程中可以简化程序, 在完成程序流程图后, 就可以写出最初的源程序, 从而就可以将设计和语言分开, 这样在一定程度上就会简化问题。 3.3 循环结构 C语言的循环结构也是运用非常广泛的, 在剖析工作的源程序时, 循环结构可以减少工作中的工作量。在重复执行某一片段的工作问题时, 在某一片段的程序设计中可以表现得自由和谨慎。C语言中一共存在四种循环, 它们分别是goto循环、while循环、do while循环以及for循环, 在这四种循环中, 如果对相同的问题进行不同的处理, 就可以运用C语言中的顺序进行解决。 4 C语言的主要特色 C语言具有非常丰富的特点, 以上所讲的指针就是其中的特色之一, C语言的各种各样的结构也体现出了C语言的优越性, C语言在学习起来虽然有一定的难度, 但是也具有一定的优越性, 这也是C语言之所以得到广泛应用和广泛欢迎的原因。C语言中最高级的语言区别就是指针, C语言的指针在一定程度上并不会进行相应的保护, 虽然有时可能会造成一些安全隐患, 但是后来的C++就解决了这些问题。C++丰富了C语言, C语言越来越受到客户的广泛欢迎, 不仅是因为它降低了语言的复杂度, 还因为其具有一定特色的语言分析顺序。C语言中存在着一些受争议的地方, 随着软件技术的不断发展, C语言对其安全性存在的问题进行了改正。 5 结语 随着我国经济的不断发展和进步, 科学水平有了很大的提高, 尤其是计算机时代的来临, 计算机技术得到了快速的发展。C语言成为现在最受欢迎的技术, 在一定程度上也促进了经济和生产力的发展。C语言不断在自我完善, C语言具有很多的优点, 但是也存在着一些弊端, 要发扬与继承优点, 要学会规避和改正弊端。 参考文献 [1]陈斌.基于单片机的光电式叶片面积测量仪[D].咸阳:西北农林科技大学, 2010. [2]蔡晓丽, 陈舜青, 丁志云.计算机C语言实验教学改革探讨[J].电脑知识与技术, 2010. 关键词 计算思维 教学改革 C语言 中图分类号:G511 文献标识码:A 1选题意义及研究价值 提高高等教育質量,首先是提高人才培养质量。对高水平大学来说,尤其体现在创新人才培养上。一个时期以来,社会上比较关注“为什么我们的教育总是培养不出杰出人才”这个问题,这句话充分说明教育改革势在必行。为实现培养和训练大学生计算思维、计算机基础教育的现实要求,《C语言程序设计》作为大学计算机基础课程的重要组成部分,是培养学生计算思维的理想课程。因此,如何深化《C语言程序设计》课程的改革,组建贯穿计算思维培养的知识体系,探索适宜计算思维能力培养的教学方法都是需要我们认真思考的问题。通过积极探索和尝试,培养计算思维能力,既有助于计算机基础教育学科的健康、持续发展,又有助于国家对战略型人才的培养。 2国内外研究现状 计算思维(Computational Thinking)是2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授在美国计算机权威期刊《Communications of the ACM》杂志上提出并定义的。周教授认为:运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。 在国外,计算思维不仅得到美英等国教育界的广泛支持,而且还直接促成美国国家科学基金会(NSF)重大基金资助计划CDI的产生,旨在使用计算思维促进美国自然科学和工程技术领域产生革命性的成果。英国计算机学会也组织了欧洲的专家学者对计算思维进行研讨,提出了欧洲的行动纲领。 在国内,中科院自动化所王飞跃教授率先将国际同行倡导的“计算思维”引入国内,中科院李国杰、陈国良、孙家广等院士以及桂林电子科技大学董荣胜教授、国防科技大学的朱亚宗教授等多位专家学者也就此开展研究。教育部高等学校计算机基础课程教学指导委员会对计算思维的培育非常重视,多次召开会议进行研讨。 3研究目标、内容和拟创新点 3.1研究目标 一是丰富和完善C语言的教学资源库建设,分别在专科、本科教育层次上建成一套质量较高的教学课件、实验辅导教材、课后辅导和习题资料;二是推动计算机语言类课程教学内容和方法的改革创新;三是推进学生计算思维能力的培养和思维方式的转变。计算思维不仅要培养学生对计算环境的认识,更重要的应该培养学生掌握在计算环境下的问题求解方法。 3.2研究内容 根据美国卡内基?梅隆大学周以真教授的阐述:计算思维是通过约简、嵌入、转化和仿真等方法,把一个困难的问题阐释为如何求解它的思维方法。计算机语言类教学和程序设计是学习计算机分析和解决问题的基本过程和思路,是理解计算机和计算思维能力培养的最好途径。由于长期以来受“狭义工具论”思想的影响,计算机语言类课程教学过程中,很容易陷入语言表达形式的误区,把重点放在语言语法知识点的学习上,忽视程序设计能力及更为重要的计算思维的培养。本项目主要通过选择C程序设计语言的教学和应用,培养学生对计算环境的认识和面向典型计算环境的问题求解方法和能力,着力提高学生的计算思维能力,推动以计算思维为核心的计算机语言类课程的教学改革。主要研究内容包括:C语言的教学资源库的建设;整合课程内容,把原侧重“语言”使用的内容转变为注重与专业结合的解决实际问题的程序设计思想与方法,注重于思维能力培养;构建三个层次的教学模式:课堂教学与实验教学相结合、课程作业与项目训练相结合、常规教学与网络教学相结合;设计教学方法,采用任务驱动法、案例分析法等手段,以提高学生逻辑能力和创新能力的培养;以计算思维能力培养为核心构建教学体系,并推进基于计算思维培养的教学方法改革,从而建设可持续的计算机学习形式。 3.3拟创新点 首先,课程讲授内容精选学生终身学习必备的基础知识和技能,加强课程内容与学生生活以及现代社会、科技发展的联系,关注学生的学习兴趣和经验,满足学生多样化发展的需要;其次,进行教师教学方式和学生学习方式变革的尝试,探索双主教学模式,要求教师精讲,改变课程过于注重知识传授的倾向,对学生倡导自主、探究与合作的学习方式,逐步改变以教师为中心、课堂为中心和书本为中心的局面,强调形成积极主动的学习态度,使获得知识与技能的过程成为学会学习和形成正确价值观和计算思维的过程,促进学生创新意识与和计算思维能力的提高;第三,在教学网站的建设上,用以资源为中心的信息技术与课程进行全方位整合,并借助优秀媒体的辅助作用,为学生主动学习和积极探索提供内容丰富、多种层次的教学和学习环境。 4结束语 下列给定程序中,函数fun的功能是:输出M×M整数方阵,然后求两条对角线上元素之和,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果; 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: 四、程序设计题 编写函数fun,其功能是:将a,b两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。 例如,当a=45,b=12,调用该函数后c=4251。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 如 iMax = a; if(b > iMax) { iMax = b; } if(c > iMax) { iMax = c; } printf(“三个数的最大值是:%dn”,iMax); (2) printf(“请输入机票价格:”); scanf(“%f”,&fTicketPrice); (3)%5.2f的意思是以长度为5,小数点后面2位的形式输出。 【关键字】计算思维 C程序设计 教学实践 2010年,教指委明确指出,要旗帜鲜明地把“计算思维能力的培养”作为计算机基础教学的核心任务[1]。 C语言程序设计是我校理科非计算机专业必修的公共课,是计算机基础教学的重要组成部分。新形势下,其教学目标是让学生掌握问题求解算法和实现算法具体过程,在教会学生计算机编程的同时强化计算思维的培养。因此,如何培养学生程序设计以及计算思维能力,是教学需要思考的一个重要问题。 一、计算思维 (一)概念 计算思维(Computational Thinking)是由美国卡内基·梅隆大学计算机学院主任 Jeannette M. Wing(周以真教授)于2006年提出。 其理论精髓为,充分利用计算机科学的基础概念来分析问题,思考问题从而解决实际问题。它就像逻辑思维能力一样是每个当代大学生必须要具备的一种能力。应用计算思维在实际算法实现时还要充分考虑到计算机的运算速度及内部存储器容量等问题。 (二)重要性 计算思维是人的思维方式,非计算机的。 教学过程是把实际问题转化为算法的过程,要使同学们循序渐进的体会计算思维,从而培养学生的理性思维和形式逻辑能力,培养学生通过计算机算法实现并编写程序,最终领会计算思维。实际教学当中,带领、引导学生使用社会生活中遇到的问题来思考问题,是计算思维重要体现的一个方面。 二、计算思维与C语言程序设计教学 (一)计算思维和算法 对程序设计来说,算法是其精髓。在同学们刚刚接触循环程序设计时,最为经典的例题就是求1到100的所有整数之和。应用计算思维的理论,具体算法为循环变量从1开始,连续累增,直到循环变量首次越界,退出循环。请同学们比较该算法与著名高斯算法的区别,阐明原因。 (二)计算思维和理论教学 在C程序设计教学中遇到的全局变量和局部变量同名时,如何让学生理解什么叫作用域越小越优先原则。可以借助生活中遇到的交通堵塞问题,当既有交通红绿等又有交通警察指挥交通时,作为普通行人和车辆应该听从谁的指挥,同学们异口同声的说“警察”。通过这个实际问题,不但让同学们瞬间掌握了全局变量和局部变量同名时的使用方法,更重要的是从计算思维的理论出发从而带领同学进一步理解计算思维的运用方法。 (三)计算思维与实验教学内容的设计 计算思维的目标是明确的,其培养的核心就是实际问题的求解能力的培养。在C语言程序设计课程的教学过程中,注意培养学生依据已有知识体系,着重强化利用计算思维的方式描述问题和使用机器语言解决问题的训练。因此在C语言程序设计的实验课堂上,教师可以采用任务驱动的方式,启发与引导同学们运用计算思维对问题进行分析和独立求解。同时在程序设计的各个章节,和练习中,不断渗入计算思维的思考问题方式。 例如,在练习三大基本结构所有知识点的“输入银行密码”程序,最能体现出培养学生计算思维的连贯性。采用任务逐步细化、计算思维逐步渐进的方式。“输入银行密码”程序知识点分布如表1 所示。 通过具体实践来领悟计算思维在程序设计中的运用,培养学生分析问题、决策和解决问题的能力。 三、总结 计算思维的精髓就是要培养同学们应用计算机的思维方式,把实际问题转化为切实可行的算法并灵活编程实现。专家指出:“计算思维代表着一种普遍的认识和一类普适的技能,每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用” [6]。 因此,在C语言程序设计课程中注重培养学生的计算思维能力,对于高等教育下培养高素质技术人才的培养目标是十分重要的,这不仅有利于知识的整体把握更有利于他们进行实践和创新。 参考文献: [1]九校聯盟(C9).计算机基础教学发展战略联合声明[J].中国大学教学.2010(9). [2]jeannette m. wing. computational thinking[J]. communications of the acm.2006.3. [3]jeannette m. wing. computational thinking and thinking about computing philosophical transactions[J].series A.2008.7. [4]jan cuny, larry snyder, jeannette m. wing. demystifying ct for non-computer scientists[J]. work in progress.2010. [5]李廉.计算思维——概念与挑战[J].中国大学教学.2012(1). 1 C语言相关特点 在计算机领域中, 相关编程语言数不胜数, 并且每种语言都有着其相应特点, 包括:C++、C#、Java、Boo等, 这些语言都有着其擅长应用领域。其中, 由于面向对象编程模式逐渐成为主流, 使得Java、C#等语言逐渐成为行业宠儿。与之相对, C语言作为一门面向过程语言, 许多行业人士认为其已经不适应当下发展, 应逐步淘汰。但是C语言所具有的一些特性, 使得其在当下仍然具有极强生命力, 并且对于计算机原理学习有着巨大影响。C语言特点包括:贴近底层、使用方便、兼容性强。 1.1 贴近底层 贴近底层是C语言最大特点之一, 也是其可以保持经久不衰的秘籍。Java等语言都是要运行在其底层回收机制之上, 通过这套机制可以自动回收内存, 同时防止程序开发人员直接与底层接触, 保证程序运行安全性和稳定性。但是这也使得程序开发人员无法直接调用底层方法, 无法直接对硬件做出相应控制, 这就会导致程序运行效率降低。这对于当前个人电脑、智能手机、平板电脑等平台影响并不明显, 但是对于正在发展的嵌入式设备, 却有着非常重要影响。通过C语言可以有效提升嵌入式设备运行效率, 实现设备相应控制功能。这也使得C语言在当今物联网发展中扮演了重要角色。 1.2 使用方便 很多高等院校之所以选择C语言作为教学用语言, 就是因为其使用方便, 便于学生理解。C语言一共有32个关键字, 34个运算符。便于程序开发人员记忆和使用。同时C语言还有较为丰富的函数实现机制, 这些机制可以便于程序开发人员在实际使用时, 可以随时根据需要对函数和操作符进行功能修改。从而增加了语言灵活性, 便于开发和教学。与之相对, 如Java和C#等语言, 处于安全考虑, 诸如指针等机制都收到了限制, 甚至取消, 取而代之的是大量类和方法, 这些类和方法不仅需要程序开发人员花费大量时间去记忆和熟悉, 同时也降低了语言灵活性, 不便于学生进行学习和理解。 1.3 兼容性强 根据前文可知, C语言广泛应用于嵌入式系统开发过程中, 由此也可以看出C语言拥有极强兼容性。截止到目前为止, C语言可以在各种型号个人电脑运行, 同时几乎所有编程工具都支持C语言开发, 不仅如此C语言还可以在Linux等其他操作系统上运行。这就使得C语言应用程序种类丰富, 功能也非常强大。而对于其他一些操作语言, 由于不仅编译工具之间存在兼容性问题, 运行平台同样也受到相应影响。并且对于一些语言而言, 在编写时不仅需要安装相应编译器, 还要打各种补丁, 配置环境等。而这无疑会给变成语言学习造成严重影响, 尤其是对于学生群体。 2 C语言对于计算机原理影响 C语言是在上世纪70年代, 由贝尔实验室发明。通过数十年的应用和推广, 其经典地位无人质疑。其对计算机原理相关理论发展也有着巨大影响。通过研究和学习C语言在计算机原理领域的应用, 可以加深人们对于计算机原理理解, 促进编程能力提升。C语言对于计算机原理影响主要包括:指针、循环结构、选择结构。 2.1 指针 指针可以说是C语言的标志。指针实际上是用来记录一段内存地址, 因此程序开发人员可以通过直接对该内存地址进行操作, 从而提升程序执行效率。指针所指向的内存可以是任何数据类型, 甚至是指针自己。借助指针还可以实现动态数组等多种数据结构。一个指针在使用过程中, 指针可以改变所指内存对象, 因此可以借助这一优势进行相应操作。但是, 在使用过程中也必须注意的是:指针在引用完后, 要及时释放内存, 避免“内存孤岛”出现, 同时还要注意的是, 由于指针直接指向内存, 因此如果使用不当, 就会直接对系统变量进行修改, 从而导致系统出现故障。所以指针也是一把双刃剑, 同时也塑造了C语言最具代表性特点。 2.2 循环结构 任何编程语言都必须具有顺序、选择和循环三种结构。C语言和其他很多语言一样都有while、for、do-while三种循环模式。但是C语言还有goto这一种循环方式。goto也是C语言最具代表性标志之一, 程序开发人员可以使用goto语句, 使程序跳转到任何地方, 从而提升编程灵活度。开发人员在实现一些复杂功能时, 通过使用goto语句, 可以减少编码量, 加快编写速度。但是与指针类似, goto语句也是一把双刃剑, 由于其灵活性, 会使得程序结构被严重破坏, 程序缺少可读性, 增加了维护难度。因为这一原因, 当下主流面向对象语言都取消了goto语句。通过研究和使用goto语句, 可以加深程序开发人员对于程序的理解, 提升其对于计算机运行原理理解。 2.3 选择结构 选择结构作为编程语言三大结构之一, 其对于程序开发而言也有着至关重要作用。C语言主要有3种选择结构, 包括if、if-else、switch-case这三种模式, 其中switch-case主要是用于多分支选择模式。同时, 通过相应操作, goto语句也可以实现选择功能, 但是正如前文所说, goto语句会导致程序结构出现混乱。 3 结束语 在可以预见的未来, 计算机发展速度将进一步加快, 因此相应开发技术也会得到进一步发展, 各种新型开发语言也会不断出现。但是, 随着物联网和嵌入式设备不断发展, 使得在未来C语言仍然会有着旺盛生命力, 通过加强学习和研究C语言在计算机原理中应用, 可以有效提升程序开发人员综合能力, 从而加快信息化建设速度, 促进信息社会发展, 实现社会主义现代化建设目标。 参考文献 [1]吴大愚.C语言教学中计算机原理知识的应用[J].计算机工程与科学, 2006, 28 (z1) :104-106. [2]徐辉强.C语言教学中计算机原理知识的应用[J].科学咨询, 2013, (25) :94-94, 95. 分析总结了目前c语言教学中存在的问题,并针对存在的问题,在教学方法、教学内容、教学手段、上机实践等多方面进行了一些尝试性的`改革工作.实践结果表明,这些教学方法的推行在培养学生的动手能力、思维能力以及创新能力方面均取得了较佳效果,有效地提高了教学质量,改善了教学效果. 作 者:徐晓蓉 陈洪波 作者单位:湖南文理学院,计算机科学与技术学院,湖南,常德,415000 刊 名:福建电脑 英文刊名:FUJIAN COMPUTER 年,卷(期): 25(4) 分类号:G71 关键词:C语言 程序设计 教学方法 专业班级: 姓 名: 物联网技术15-02 日期: 2016 学号: 年 7 月 1 日 上大学之前,总是看见新闻说某某某少年攻击了银行网络防火墙盗刷别人的银行卡,就感觉那人非常的牛逼,总是幻想着要是能成为他那样该多好啊,直到我接触了C语言,才知道要想成为他那样是不容易的,与勤奋、刻苦、努力是分不开的。 刚开始学C语言的时候,很迷茫,在此之前从没有接触过C语言,有点摸不着头脑。最早接触C语言也就是在大学了,以前可以说对C语言是一窍不通,根本不理解什么是代码经过导师李灿林老师细心解释,和在上机过后,让我发现了写代码的乐趣,就比如刚学C语言前几章的时候就自作聪明的让运行的结果在屏幕上显示各种图案,那时真是感觉乐意无穷。 然后学着学着就感觉到枯燥无味了,感觉每天面对的都是冷冰冰的字符串和代码,也会遇到有些问题理解不透,学习的积极性在一点一点的下降,也开始对C语言没有了兴趣。后来没有办法上机时要应付老师,期末还要考试总之就是不能挂科。于是就开始强迫自己学习,暗示自己万事开头难,然后就拿着书本从头一点一点的看,拿着笔、本子凡是看见书上有代码就不管理解还是不理解,只管在本子上抄,心想着只要牢记这些代码以后就会理解它们。 在对书本上的知识有了一个大致的了解过后,理论的知识看的差不多了,光看不动手实际操作是不行的,不能眼高手低。所以接着就是要在电脑上实践了。最开始就是一股脑的撸书上的例题、代码,熟悉程序,慢慢的开始试着编程。在编程时要理清自己的思路,在脑子里要有一个大致的框架,然后再转换成C语言中的语言,只有通过在电脑上的实际操作才能验证自己程序的正确性。执行程序,出现错误,修改,在执行,错误,请教学的比较好的室友,再修改;如此反复不要害怕错误,其实,我觉得错误是好的,知道了自己所学知识的不足。在哪里跌倒就要在哪里爬起来,在哪个知识点上出错,就钻研弄懂它。 C语言作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过两个学期的学习,使我初步掌握简单的知识完成编程,比如在编写一个较大的程序时可以把它分开成几个小程序来看,这样就会变得容易得多。同时,我觉得C语言应该是操 作和理论相结合的课程,在不断地编写中去思考,在学习C语言的过程中自己也摸索总结了一点经验: 上课的时候一定要认真听老师讲课,老师在课堂上讲的肯定是最重要的,错过了就是一大笔损失,认真听讲才可以提高学习效率。 每一节课上,注意老师讲的内容,有的知识,老师稍微提点,你就能弄懂,但要是你自己钻研看书,或许你几天也弄不懂。老师能让你清晰地明白那些要求掌握的知识点的含义。 当然做笔记也是必不可少的,无论学习什么知识,一定要做笔记,俗话说的好:“好记性不如烂笔头”。一个懂得学习的人,总是把老师讲的那些重点都记下来,在课下学习的时候,不会的一定要问明白,切记一定要问明白,可以向老师、同学、室友等一切C语言学的比较好的人请教,不要自己一个人钻牛角尖,浪费时间不说又学不到东西。 实践也是学好C语言的重要因素,只有勤动手,多动脑才能学好C语言,光说不练是不行的。 所以要想学好C语言,上机实习把你所学的能通过代码编写出来并运行成功才是王道,编写的过程中出现错误时必不可少的,你不可能一次就能把程序编写的完全正确,总有错误出现,这时你要学会发现错误并修改错误。刚开始的时候这也是比较难的,也是比较考验耐心的,甚至有时候一个错误就能让你用几个小时时间来修改。当然这样,当程序运行出来的时候那种喜悦、那种兴奋,不经历是体会不到的。 1计算机C语言 C语言的本质属性就是划分在计算机编程语言中的编程语句。相关的工作人员在对程序进行编辑的过程中,要对每一种变量x、y都进行设定。以求保持程序编辑的准确性;而在数体之前加入:int、x、y,这样就能够使得程序的完整性得到体现。在计算机编程语言当中计算机C语言的地位和价值是作为高级语言存在的,计算机人员在进行计算机系统操作或者是修改、编译时,往往是计算机人才的首要选择。C语言的重要性不仅仅是体现在其是学校当中的重点课程,其在IT产业当中也发挥着重要的作用和价值。C语言具有双重属性,在使用C语言进行语言的描绘时,其语言的编程可以是通用型的,也可以是系统型的。经过对于计算机C语言的详细分析将其特征进行了分类。(1)C语言具有32个关键字,9种控制语句,语言的构成简明扼要,在计算机编程语言运用时方便快捷;(2)C语言总共拥有34种运算符,相较于其他计算机编程语言其语言的种类更丰富;(3)其结合了现代计算机编程当中的语言要素;(4)在进行语言程序设定时,受限制因素较小。C语言这些特征充分论证了其应用领域广阔,但同时在进行学习时,难度系数较大。 2计算机C语言程序编辑技巧 2.1扎实掌握基础知识 C语言在进行应用的过程中,其作为计算机的编程语言不但将高级语言当中的特性涵盖其中,并且其也将汇编语言进行兼容处理。在对于C语言进行数据的编程时,数据格式具有一定的差异性,比如说将A定义为整数B定义为实行。在计算机程序编程当中A=4,B=5.5;这一步骤就是指对于A和B分别赋值。操作计算机系统程序在使用的过程当中,主要是依据C语言当中的语言构成要素来进行程序运行的。其语言的构成要素主要包括字节的设定、位、地址的管理等。但是初学者在进行编程语言的学习时,可能对于其中那些特定名词不能够透彻地理解,因此进行学习的前提条件就是学习C语言的理论知识和基础概念。与此同时,也需要将语言当中的关键字进行重点了解和分析,因为在计算机编程语言当中的关键字往往都具有特殊的涵义,同时要了解固定语句所代表的涵义和内容、语句当中的区别以及特性,这样在进行语句的选择过程中,才能够连贯地将程序语言进行连接,在系统逻辑中才能够将其清晰的显现出来。在语言条件设定的过程中,需要运用到一定的数学函数知识,数学函数可谓是计算机编程语言的的基础。在编程的过程中,对于运算符的使用要格外谨慎,对于自加(++)运算符、自减(--)运算符在编程中不能够进行使用。与此同时也要对于计算机C语言编程语言中的快捷键进行了解,这样在程序设定时往往工作效率能够得到提高,接下来将对以下几种快捷键的涵义进行简单的介绍: 光标移动快捷键: 2.2熟练应用基本程序结构 计算机C语言的基本属性就是语言的结构化。在与其他计算机进行比较时其突出之处就是运用了模块。计算机C语言按照程序来进行划分时,可以将其划分为顺序结构、选择结构以及循环结构这3种类型。按照难易程度来进行排序,顺序结构最为简单,其在进行程序语句的编程时,并不需要使用数学函数或者是逻辑结构等等,只需要以顺序为主要编写的标准,将对应的语句填入到框中。而循环式框架结构的主要功能就是为了防止源代码重复情况的发生。对于编程语言中的这些结构规律进行一定程度的了解后,在进行C语言编程结构的设定时,才能够对其进行快速而准确的定位。同时,也要对计算机C语言中的变量进行设置,给其明确的地址符号,以免出现程序缺少地址符“&”的情况。比如说scanf(“%d%d”,a,b);应写为scanf(“%d%d”,&a,&b)。在此基础之上也要寻找能够熟练地应用基本程序结构的专业性人才。想要提高社会的生产力水平和运行的效率,最主要的就是能够对于基本程序结构进行熟练的运用。在此过程中,计算机人才可谓是大数据时代中必不可少的关键一环,起着承上启下的作用,推动着计算机应用程序领域的发展和创新。如表1所示。 3勤于编辑程序 计算机编程语言的设定不能够只是对于其中的理论知识了解,否则在进行实际运用的过程当中,不能够很好地解决编程中遇到的问题。高职院校的学生在进行计算机编程语言的学习时,认为对其理论知识的学习并掌握其实践操作的方式和技巧是进行编程语言学习的关键。实践是认识的来源,因此就需要相关的计算机人才对于计算机C语言时常进行练习,只有理论与实践相结合,才能够将理论知识不断地丰富。技巧都是在不断的实践中积累出来的,因此经常性的进行计算机C语言的练习能够不断地提升自身的计算机语言程序编辑的能力,使自己热爱这个行业,推进计算机语言编程行业的可持续发展。 4 C语言编辑程序的设定 在进行计算机C语言的编程设定时,往往使用全程扫描的方式进行编辑工作的开展。但是扫描的范围具有一定的局限性,其只是在C盘操作系统中Problem file代码当中进行扫描,扫描程序的运行主要是以“宏”作为主要载体,具有一定的扩散性。其扩散的特性就说明了C语言具有连接性能强的优势,其对于传统版本中的传输语言进行兼容,同时结合高级语言中所具备的功能,这样就为系统用户提供了方便快捷的特征,其不需要在两种版本的语言编程中进行相互的程序转化。长时间的经验表明,在计算机C语言的编辑过程中能够通过“位运算”的方式使得编写呈现出高效化的特征,其中的除法和取模运算的程序可以得到简化。比如说: 5结语 结合如今经济发展的态势以及计算机技术发展的程度来说,人们对于新媒体程序的运用越来越频繁。计算机C语言也已经成为各个高等学校开设的重点必修课程,并且其对未来工作的发展以及实际生活中的运用具有重要的意义和价值。因此相关的计算机编程人员或者是编程的初学者,一定要将计算机C语言的程序编辑进行练习,并对于其中的基本结构要素以及运行的规律进行详细的了解和分析,这样在进行计算机语言程序的编写时,对于结构的选择就能更加简便快捷,提高计算机C语言编程的效率。 摘要:以C语言为例,在系统用户对其所编程的语言进行使用时,往往会感受到其便捷性的特征,能够将其运用到众多领域当中。详细介绍了C语言的使用方式与技巧以及学习C语言给人们带来的帮助为研究的主线对C语言进行系统理论的探究。 关键词:计算机C语言,编辑程序,探讨分析,兼容性 参考文献 [l]黄俊爽,郭凌云,李燕杰,宋傻雅.浅析C语言中常见错误[J].电脑知识与技术,2010,(12). [2]陈宇文.注重源程序在《数据结构》课程中的重要性[J].高教论坛,2004,16(1):73-75. [3]郁金祥.求多项式最大公因式的C语言编程处理[J].嘉兴高等专科学校学报,2010,(14). 【计算机系c语言学习总结】推荐阅读: C语言计算机软件08-24 9月计算机二级考试C语言预测试题08-23 课课家教育-2018年12月大学生全国计算机等级考试二级C语言视频教程09-09 计算机专业发展前沿学习总结06-12 计算机网络技术学习总结11-06 自学考试心得分享——自考学习总结篇计算机技术及应用专业08-26 学习计算机08-09 计算机自主学习07-25 计算机语言课程07-28 计算机动态语言11-04计算机系c语言学习总结 篇2
融合计算思维的C语言教学探析 篇3
C语言计算随机数 篇4
计算机二级C语言入门程序 篇5
计算机二级C语言考前测试题 篇6
计算机C语言的应用特点分析 篇7
计算机系c语言学习总结 篇8
计算机系c语言学习总结 篇9
c语言学习总结 篇10
计算机系c语言学习总结 篇11
计算机原理中C语言的应用研究 篇12
计算机系c语言学习总结 篇13
C语言进阶学习总结 篇14
计算机C语言程序的编辑分析 篇15