还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
C语言程序设计
一、课程基本情况课程名称C语言程序设计CProgrammingLanguage考核对象计算机专业和理工类的非计算机专业学生先修课程大学计算机基础,高等数学学时总学时数108,其中课堂讲授72学时,上机实验36学时教学目标C语言是计算机专业的一门基础课,也是理工类非计算机专业学习计算机语言、建立和培养编程思想与程序语言能力和素质的基础课程C语言与其它高级语言相比有其显著的优点,它既具有高级语言的特点,又具有低级语言的许多特点;它不仅是系统描述语言,而且也是通用的程序设计语言因此,它既适合编写系统程序,又适合编写应用程序,应用领域很广,是一种理想的结构化语言通过对本课程的学习,使学生了解和掌握C语言基本语法规则,熟练阅读和理解简单的C语言程序,掌握一些基本的算法并具备设计简单程序的能力,为继续学好后续计算机课程和今后的计算机应用与__打下良好的基础教学参考C语言的学习包括知识和技能两个方面知识方面重点掌握数据类型、运算符与表达式,程序流程控制,数组,函数,指针,结构体、共用体和枚举,文件的基本操作,面向对象的基本概念等其中指针是难点,对于理工类非计算机专业学生,以一级指针为主技能方面须通过上机操作掌握所学的知识,要特别强调讲授与上机操作相结合,保证学生有充分的上机条件和学时数程序调试平台可以选择TurboC
2.0或者VisualC++
6.0如果选择后者,请注意其与前者的不同主要参考书
[1]丁亚涛.《C语言程序设计》第2版[M].北京:
[2]丁亚涛.《C语言程序设计实训与考试指导》第2版[M].北京:
[3]谭浩强.《C语言程序设计》第3版[M].北京:
二、课程内容与考核目标第1章C语言概述
(一)课程内容C语言的发展历史、特点、基本程序结构、算法、流程图、上机编辑和调试程序的方法和步骤
(二)考核知识点与考核目标了解C语言的形成、发展和基本特点;了解程序、程序设计、高级语言的基本概念;掌握C语言程序的基本结构和组成,掌握算法的基本概念和算法描述的基本工具;学会用传统流程图描述一个具体的算法(简单应用)第2章数据类型、运算符和表达式
(一)课程内容C语言的数据类型、标识符、关键字、常量、变量、运算符、表达式、类型转换
(二)考核知识点与考核目标了解C语言的数据类型、运算符、关键字;掌握标识符的命名规则,掌握各种基本类型的特点,掌握常量的书写方法,掌握变量的定义、赋值、初始化和使用方法;掌握各种基本表达式的组成、运算规则和优先级别,理解并掌握不同类型数据运算的类型转换规则第3章简单程序设计
(一)课程内容C语言中的语句类型、程序结构、赋值语句、字符输入/输出函数、格式输入/输出函数、格式控制符
(二)考核知识点和考核目标了解结构化程序设计方法以及3种基本程序结构;理解顺序结构的程序执行过程;掌握赋值语句和基本输入/输出函数的使用;学会用printf和scanf函数进行简单的程序设计第4章选择结构程序设计
(一)课程内容C语言选择程序结构、关系运算符与关系表达式、逻辑运算符与逻辑表达式、if语句、switch语句、转移语句
(二)考核知识点和考核目标理解选择(分支)结构程序设计的概念;理解语句嵌套的概念、掌握关系表达式和逻辑表达式的组成及运算规则并能运用这些运算符构成表达式;学会阅读和理解简单的选择结构程序,学会利用if语句和switch语句进行简单的程序设计(应用)第5章循环结构程序设计
(一)课程内容C语言循环程序结构、for语句、while语句、do-while语句、循环嵌套、转移语句break、continue和goto
(二)考核知识点和考核目标掌握for语句、while语句、do-while语句、break语句、continue语句;学会利用循环进行简单的程序设计(求和、求阶乘、素数判断、Fibonacci数列、水仙花数等)第6章数组
(一)课程内容数组的概念、一维数组、二维数组、字符数组、字符串处理函数
(二)考核知识点和考核目标理解构造数据类型的概念;掌握一维数组、二维数组的定义、初始化和数组元素的引用;掌握字符数组的定义、初始化和数组元素的引用;理解并掌握字符串的存储方法和应用;掌握有关字符串处理的函数的使用方法;理解并掌握有关数组应用的简单算法(冒泡排序、矩阵转置、字符串的插入、删除和替换操作等)第7章函数
(一)课程内容函数的基本概念和功能、函数的定义和声明、函数参数和返回值、函数的参数传递方式、函数的嵌套调用、函数的递归调用、数组作为函数参数、变量的作用域和存储类型、内部函数和外部函数
(二)考核知识点和考核目标了解函数的基本概念和功能、内部函数和外部函数;理解并掌握函数的定义和声明;重点理解传值和传址的区别;掌握函数的调用方法;理解作用域和存储类型的概念;学会区分不同作用域和存储类型的变量;学会设计具有简单功能的函数;掌握常量、变量、数组作为函数参数的函数调用和参数传递的方法和特点;理解并掌握函数的递归调用方法,学会利用“递归”设计简单的函数(求和、阶乘)第8章指针
(一)课程内容指针的基本概念、指针变量的类型说明、指针变量的引用、指针和函数参数、数组指针变量、数组名和数组指针作函数参数、指向__数组的指针变量、字符串指针变量、使用字符串指针变量与字符数组、函数指针变量、指针型函数、指针数组、命令行参数、指向指针的指针变量
(二)考核知识点和考核目标了解指针数组和多级指针的概念;理解地址、指针和指针变量的概念;变量、数组、字符串指针的含义;掌握指向变量、数组、字符串的指针变量的定义与引用方法;各种指针变量作为函数参数时的传递过程;学会正确利用指针变量来引用所指向的变量、数组或函数;学会在程序设计中应用指针解决一些简单的问题第9章结构体、共用体与枚举
(一)课程内容结构体的概念、结构体的定义和声明、结构体变量的定义和引用;结构体数组的定义和引用、指向结构体数据的指针变量的定义和引用、共用体的定义和声明、共用体变量的定义和引用、枚举型的定义和声明、枚举型变量的定义和引用;用户自定义类型的定义和使用、动态存储分配、链表
(二)考核目标了解结构体、共用体和枚举类型数据的特点;掌握结构体类型、变量、数组、指针变量的定义、初始化和成员的引用方法;了解共用体和枚举类型、变量的定义和引用;掌握用户自定义类型的定义和使用;了解动态存储分配和链表的基本特点第10章位运算
(一)课程内容位运算符及其运算规则和优先级
(二)考核知识点和考核目标了解位运算符及其运算规则和优先级;掌握基本位运算的形式
三、课程学时分配章次内容课堂讲授学时数一C语言概述4二数据类型、运算符和表达式8三简单程序设计8四选择结构程序设计6五循环结构程序设计4复习小结2六数组6七函数8八指针8九结构、共用体与枚举8十位运算4复__结2总计68
四、考试参考题型考试采用笔试方式,时间120分钟,主要考查C语言基本语法、阅读程序和编写程序的能力笔试题型和分值分配如下表题型题数单元分值题目说明总分值单项选择题30每题1分C语言程序设计30填空题6-15每空2分C语言程序设计20-30阅读理解题4-5每题4-5分C语言程序设计20编程题2-4每题5-10分C语言程序设计20-30
五、样卷
1.笔试样卷
一、单项选择题(每题1分,共30分1.下列关于C语言程序书写规则的说法中正确的是______A 不区分大小写字母B 一行只能写一条语句C 一条语句可分成几行书写D 每行必须有行号2.以下不能作为C语言常量的是______A0582B
2.5e-2C3e2D0xA53.以下不符合标识符规定的是______A _sumB sumC 3cdD Void4.下列可以正确表示字符常量的是______AtB\tC\tDt5.在C语言中,要__作数不能是实型的运算符是______A %=B/=C !=D ++6.设有inta=1b=2c=1;,则表达式aa+b:a+c的值是______A 0B 1C 2D 37.设有inta=2b=6;,则表达式a*b/5的值是______A 2B 3C
2.4D
3.68.已知inti;floatf;,则以下正确的语句是______Aintf%i;Bintf%iCintf%i;Dintf%i;9.设变量x,y均为int类型,则下面程序段的输出结果是______x=6;y=x++;++y;printf%dy;A9B8C7D610.已知inta=6b=8c=3;,则逻辑表达式ab++c运算后,c的值是______A1B2C3D411.已知intx=2y=-1z=3;,执行下面语句后,z的值是______ifxyify0z=1;elsez++;A1B2C3D412.下面程序运行结果为______#includestdio.hvoid__in{ int a=1;if!aprintfYES;elseprintfNO;}A NOB YESC YESNOD 提示运行错误13.有以下程序段intabc;a=1;b=2;c=3;ifabc=a;b=c;printfa=%db=%dc=%d\nabc;程序运行结果为______Aa=1b=3c=3Ba=1b=3c=2Ca=1b=2c=3Da=2b=1c=114.for表达式1;;表达式3可理解为______Afor表达式1;0;表达式3Bfor表达式1;1;表达式3Cfor表达式1;表达式1;表达式3Dfor表达式1;表达式3;表达式315.执行语句fori=1;i6;i+=2;后,变量i的值是______A5B6C7D816.有如下程序#includestdio.hvoid__in{ints=1i;fori=1;i=5;i++s=s*i;printf%d\ns;}该程序执行后输出______A6B120C240D217.运行下面程序:#includestdio.h#includestring.hvoid__in{charp[]=12345\0__\0;printf%d\nstrlenp;}输出结果为______A8B7C6D518.以下能正确定义一维数组的选项是______Aintnum[];B#defineN100intnum[N];Cintnum[
0..100];DintN=100;intnum[N];19.下面能正确对字符串s进行初始化操作的是______Achars
[5]={CHINA\0};Bchars
[5]={CHINA};Cchars[]=CHINA;Dchars
[5];s
[0]=C;s
[1]=H;s
[2]=I;s
[3]=N;s
[4]=A;s
[5]=\0;20.若有inta
[3]
[4];,则对a数组元素非法引用的是______Aa
[0][2+1]Ba
[0]
[4]C**a+2+3Da
[1]
[2]21.当调用函数时,实参是一个数组名,则向函数传送的是______A数组的长度B数组的首地址C数组每一个元素的地址D数组每个元素中的值22.C语言中,如果在定义函数时没有指定函数类型,系统会隐含指定为______型AintBcharCfloatDstatic23.一个源文件中定义的全局变量的作用域是______A本函数的全部范围B本程序的全部范围C本文件的全部范围D从定义开始至本文件结束24.设有以下函数首部intfuncdoublex
[10]intn如果在程序中需要对该函数进行声明则以下选项中错误的是______Aintfuncdoublex[]intn;Bintfuncdoubleint;Cintfuncdoublex
[10]intn;Dintfuncdouble*xintn;25.对于类型相同的两个指针变量之间,不能进行的运算是______A+B=CD-26.若有说明intm=5n*p1=m*p2=n;,能将5赋值给n的是______Ap2=p1;B*p1=*p2;Cp2=p1;D*p2=*p1;27.设有inta
[10]={12345678910}*p=a;,则p
[6]的值是______A5B6C7D828.设有structstudent{charname
[10];intage;char___;}std={LiMing19M}*p;p=std;则下面各输出语句中错误的是______Aprintf%d*p.age;Bprintf%dp-age;Cprintf%dstd.age;Dprintf%dp.age;29.已知intx=28;,则执行语句printf%d\nx1;后的结果为________A34B14C70D5630.以读写方式打开一个已存在的文本文件file
1.___,以下选项中正确的是______AFILE*fp;fp=fopenfile
1.___r+;BFILE*fp;fp=fopenfile
1.___w;CFILE*fp;fp=fopenfile
1.___r;DFILE*fp;fp=fopenfile
1.___rb+;
二、填空题(每空2分,共30分1.在C语言中整型常量可用十进制、八进制和___________进制三种数制表示2.已知intia;执行语句i=a=6a*3a+5;后,变量i的值是___________3.已知intx=3;doublef=
2.8;charc=a;则sizeofx+2*f/c的值为______4.已知intx=20;,执行语句x=x+
6.28;后,变量x的数据类型是___________5.若有inti;,则执行语句i=432;后,i的值为___________6.已知intxy;scanf“%d%*d%d”xy;,从键盘输入数据10□20□30回车时,y的值是______7.以下程序段的功能是从键盘上输入一个正整数n并判断其是否为素数,请填空intni;printf请输入一个正整数n:\n;scanf%dn;fori=2;i=n-1;i++ifn%i==0break;ifi___________nprintf%d是素数\nn;elseprintf%d不是素数\nn;8.已知intk=8;,则下面while循环执行的次数为___________whilek==2k=k-1;9.已知inta
[10];,则___________代表数组a的首地址10.若有inta
[3]
[4]={{12}{0}{46810}},则a
[2]
[1]的值是_______11.下列程序执行后的输出结果为___________#includestdio.h#defineMxx*x+1void__in{inta=2b=3;printf%dMa+b;}12.在C标准库函数中,常用的字符串连接函数是___________13.若有如下定义,则变量w在内存中所占的字节数是___________unionaa{floatx;charc
[2];};structst{unionaav;floaty;doublez;}w;14.已知enumcolor{blackwhiteyellow=4redblue=8};,则枚举元素red对应的数值为15.若fp是指向某二进制文件的指针,且未指到文件末尾,则!feoffp的值是___________
三、阅读理解题每题4分,共20分1.以下程序的运行结果为________________#includestdio.hint__in{charc=A;inta=65;floatf=
3.14159;printf%d%c\ncc;printf%d%c\naa;printf%f%.4f\nff;return0;}2.以下程序的运行结果为________________#includestdio.hint__in{intis=0;fori=1;i=10;i++switchi%5{case1:case2:s++;break;case3:case4:s--;break;default:s++;}printf%d\ns;return0;}3.以下程序的运行结果为________________#includestdio.hint__in{inta
[2]
[5]i;fori=0;i5;i++{a
[0][i]=i*2;a
[1][i]=i+2;}printf%d\na
[0]
[1]*a
[1]
[3];return0;}4.以下程序的运行结果为________________#includestdio.hintfunintn{staticintx=1;inty;x=x+n;y=x+n;returnx+y;}int__in{ints;s=fun1;printf%d\ns;s=funs;printf%d\ns;return0;}5.以下程序的运行结果为________________#includestdio.hintfintn{ifn==0return0;elsereturnn+fn+1;}int__in{printf%d\nf-5;return0;}
四、编程题共20分1.编写程序计算并输出下面式子的值(要求用循环语句实现)(7分5+10+15+…+490+495+5002.编写程序输出下面图形要求用嵌套的循环语句实现(7分1213214321543213.编写程序将字符串中的所有小写字母转换为大写字母,并统计其中字母的个数要求输出转换后的字符串和字母个数(6分运行结果如下HELLO2009WEAREREADY.n=15程序框架如下#includestdio.hint__in{chars
[100]=Hello2009Weareready.;intn=0;/*考生在此完善程序*/……return0;}【参考答案】
一、单项选择题每题1分,共30分1-5CACBA6-10DADCC11-15CAABC16-20BDBCB21-25BADBA25-30DCDDA
二、填空题每空2分,共30分序号参考答案序号参考答案1十六或169A2181063811204int或整型12strcat或strcat5013166301457=或==15180评分细则略
三、阅读理解题每小题4分,共20分序号参考答案165A65A
3.
1415903.14162231045195-15
四、编程题共20分序号参考程序1#includestdio.hint__in{inti;ints=0;fori=5;i=500;i=i+5s=s+i;printf%d\ns;return0;}2#includestdio.hint__in{intij;fori=1;i=5;i++{forj=1;j=5-i;j++printf□;/*□表示空格*/forj=i;j=1;j--printf%dj;printf\n;}return0;}3#includestdio.hint__in{chars
[100]=Hello2009Weareready.;intn=0;/*考生在此完善程序*/inti;fori=0;s[i]!=\0;i++{ifs[i]=As[i]=Z||s[i]=as[i]=z{n++;ifs[i]=as[i]=zs[i]=s[i]-32;}}printf%s\ns;printfn=%d\nn;return0;}。