C语言程序设计A课程考核说明定稿Word下载.docx
《C语言程序设计A课程考核说明定稿Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计A课程考核说明定稿Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
题量安排以平时能够独立完成作业者,能在规定的考试时间内做完并有一定时间检查为原则。
6.试卷题型
选择:
根据题意,从四种可选择的答案中选择合适的一种答案。
填空:
根据题意,在画有横线或空白括号内填写合适内容。
写出程序运行结果:
根据所给的C语言程序,写出运行后的输出结果。
指出程序或函数功能:
根据所给的C语言程序或函数,指出运行程序或进行函数调用时所能实现的功能。
编写程序或函数:
根据所给出的题目要求,编写出相应的程序或函数模块。
7.考核形式:
本课程考核采用终结性考试与形成性考核相结合的方式。
形成性考核分为两种,一种视形成性考核册作业完成情况和所规定的上机实验完成情况而定,占总成绩的20%;
另一种为
省级电大统一命题和组织的期末上机考核,占总成绩的10%,要求完成一个带有多个程序
文件的程序工程的编写(或修改)并上机运行通过,上机考核时限为60分钟。
形成性考核
成绩由省级电大考核和确认。
终结性考试采用书面和闭卷方式,考试成绩占总成绩的
70%,由中央电大统一命题和考试时间,答卷时限为90分钟。
总成绩满分为100分,合成
成绩达到60及以上分数者可获得该课程规定的4学分,否则不获得该课程学分。
第二部分考核内容及要求
第一章C语言概述
考核内容(知识点):
1.程序、程序文件和函数的概念及其相互之间的关系。
2.函数的定义格式和作用,主函数的特殊地位和作用。
3.C语言简单语句和复合语句的语法格式。
4.#include预处理命令的格式与作用。
5.头文件的文件名格式、在程序中的使用方法和作用。
6.程序中两种注释标记的写法和作用。
7.标准输出函数printf()和标准输入函数scanf()的定义格式和具体应用。
8.C语言程序文件名、编译后生成的目标文件名和连接后生成的可执行文件名的命名规则,以及上机输入、编辑、编译、连接和运行程序的过程。
考核要求:
要求了解和理解以上内容。
第二章数据类型和表达式
重点考核的内容(知识点):
1.C语言中的数据类型的分类。
2.各种整数类型的关键字表示,存储空间的大小和值域范围。
3.整型变量的定义和初始化,十进制整型常量的表示。
4.字符类型的关键字表示,存储空间的大小和值域范围;
字符型常量的表示,回车、换行、单引号、双引号、反斜线、空字符等特殊字符的表示。
5.字符型变量的定义和初始化,字符型与整型的关系。
6.枚举的概念,枚举类型的定义,枚举变量的定义和初始化,枚举常量与整型常量的对应关系。
7.各种实数类型的关键字表示,存储空间的大小和有效位数。
8.单精度和双精度实数的定点表示和浮点(科学)表示,实型变量的定义和初始化。
9.加、减、乘、除、取余、赋值、增1、减1、取数据存储长度等算术运算符的表
示、含义、运算对象个数和运算优先级。
10.关系运算符的定义和关系表达式的计算,逻辑运算符的定义与逻辑表达式的计算,根据任意表达式的值判断其逻辑值的方法。
一般考核的内容(知识点):
1.整型常量的八进制和十六进制表示。
2.符号常量的两种定义方法,它们之间的区别。
3.位操作符、复合赋值操作符的含义与使用。
4.求关系或逻辑表达式的相反表达式的方法。
理解和掌握以上重点考核的内容,了解和理解以上一般考核内容。
第三章流程控制语句考核内容(知识点):
1•C语言程序中的顺序、分支和循环这三种基本结构,每种结构的执行过程。
2.简单if语句、带else子句的if语句、多分支结构的if语句的定义格式、执行过程和在处理问题中的具体应用。
3.switch语句的定义格式、执行过程和在处理问题中的具体应用。
4.if语句与switch语句之间的功能比较,if语句与switch语句之间的转换。
5.for循环、while循环和do-while循环的定义格式、执行过程和在处理问题中的具体应用。
6.三种循环结构不同特点。
7.Break语句在switch语句和各种循环语句中的作用,continue语句在各种循环语句中的作用。
8.goto语句和return语句的定义格式和功能。
考核要求:
理解和掌握本章的所有内容,并能够灵活应用。
第四章数组和字符串考核内容(知识点):
1.一维数组的含义、定义格式及初始化格式。
2.数组长度、数组元素、元素下标的含义,访问数组元素的语法格式,下标运算符的操作对象和操作结果。
3.数组元素的下标变化范围,数组元素所占存储空间大小和整个数组所占存储空间大小的计算,各元素对应存储空间的排列情况,每个元素的存储地址的计算。
4.利用一维数组存储数据,按元素值的升序或降序排列数据,按给定条件或功能对数组元素依次进行访问和处理。
5.二维数组的含义、定义格式及初始化格式。
6.二维数组的行数和列数的概念,数组长度(即所含元素个数)的计算。
7.访问二维数组元素的语法格式,每个下标运算符的操作对象和操作结果。
8.二维数组中的所有元素在存储空间中的排列情况,每个元素的存储地址的计算。
9.利用二维数组存储矩阵数据,按给定条件或功能对数组元素依次进行访问和处理。
10.字符串常量的定义格式,字符串的存储格式,字符串长度的概念。
11.一维字符数组、二维字符数组与字符串之间的关系,一维字符数组与二维字符数组的初始化。
12.strlen、strcpy、strcmp、strcat等字符串函数的声明格式及功能。
13.利用typedef语句定义数据类型的方法。
了解和理解一维数组、二维数组和字符串的概念的使用方法,会利用它们存储和处理数据。
第五章指针考核内容(知识点):
1.指针的概念,指针变量的定义和初始化。
2.指针赋值(=)、取对象(变量)地址(&
)、访问指针所指对象(*)、指针比较(==、!
=、>、<等)、指针算术运算(+、-、+=等)、指针增1或减1(++、--)等各种运算的含义和使用。
3.数组名的指针含义。
4.一维数组元素的下标访问方式与指针访问方式及其之间的转换。
5.二维数组元素的下标访问方式与指针访问方式及其之间的转换。
6.动态存储分配函数malloc()和calloc()以及动态存储空间释放函数free()的定义格式与调用方法。
理解指针的概念,掌握利用指针访问简单数据和数组元素的方法,掌握进行动态存储分配与释放的方法。
第六章函数考核内容(知识点):
1.函数的定义格式。
2.函数调用表达式的语法格式及执行过程。
3.函数定义中形参变量的作用及实虚参数结合的过程。
5.函数声明(原型)语句的定义格式及作用。
6.形参为一维数组或二维数组时的说明格式,调用时数组参数传递的过程。
7.变量的作用域的概念和含义;
系统对全局变量、static变量、局部变量的建立和初始化过程。
8.函数的递归调用的概念和递归函数的具体执行过程。
9.头文件在程序文件中的位置和作用。
掌握用户自定义函数的定义、声明与调用方法,掌握函数调用中一般参数、指针参数、数组参数的传递,以及函数体执行和返回的过程。
第七章结构与联合考核内容(知识点):
1.结构的概念,结构类型的定义格式,结构类型的声明(即不完整定义)格式。
2.结构对象(变量)的各种定义格式和初始化,结构大小的计算,结构对象和结构数组对象的动态分配和初始化。
3.结构赋值,结构成员的直接访问和间接访问,利用结构数组保存和处理数据。
4.结构和结构指针作为函数参数和返回值类型的具体应用。
5.链表的概念,链表中结点的结构,链表的建立和遍历的方法和算法。
6.联合的概念,联合类型的定义格式,联合对象的定义和初始化,联合的存储结构及大小的计算,匿名联合的特点。
理解和掌握结构和联合类型的特点以及数据成员的访问方法,了解和理解链表中结点的结构和建立与访问链表的方法,以及结构与联合嵌套定义的概念。
第八章文件考核内容(知识点):
1.数据文件的概念。
2.文件的打开和关闭方法。
3.文件的各种访问方式的表示。
4.对字符文件进行的输入和输出数据的方法。
5.对字节文件进行的输入和输出数据的方法。
了解和理解文件的有关概念和访问方式,会利用字符或字节文件保存和处理数据。
第三部分模拟考核试卷及解答
、选择题
1.由C语言源程序文件编译而成的目标文件的缺省扩展名为()。
A.cppB.exeC.objD.C
2.C语言程序的基本模块为()。
A.表达式B.标识符C.语句D.函数
3.x>
0||y==5的相反表达式为()。
A.x<
=0||y!
=5B.x<
=0&
&
y!
=5
C.x>
0||y!
=5D.x>
0&
y==5
4.枚举类型中的每个枚举常量的值都是一个()。
A.整数B.浮点数
C.字符D.逻辑值
5.循环语句“for(inti=0。
i<
n。
i++)S。
”中循环体S被执行的次数为()A.1B.n-1C.nD.n+1
6.在下面的while循环语句中,其循环体被执行的次数为()。
inti=0,s=0。
while(s<
20){i++。
s+=i。
}
A.4B.5C.6D.7
7.若定义了函数double*function(),则返回值类型为()。
A.实数型B.实数指针型C.函数指针型D.数组型
8.若用数组名作为函数调用的实参,传递给形参的是()。
A.数组的首地址B.数组中第一个元素的值
C.数组中全部元素的值D.数组元素的个数
9.假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大()个字节。
A.4B.8C.16D.32
10.下列给字符数组赋初值时,正确的是()。
A.chars1[]="
abcdef"
。
B.chars2[4]="
abcd"
C.chars3[2][3]={"
abc"
"
xyz"
}。
D.chars4[4][]={'
a'
'
x'
s'
t'
}
A.char*p=s。
B.char*p=&
s。
C.char*p。
p=*s。
D.char*p。
p=&
11.
要使p指向二维整型数组a[10][20]
,p应定义为(
)。
A.int*p=a。
B.int
**p=a。
C.int*p[20]=a。
D
int(*p)[20]=a。
12.
标准输入设备的文件流标识符是(
A.stdinB.stdoutC.stderrD.
stdio
13.若要以读/写操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为()。
A."
r+"
B."
ab+"
C."
rb+"
D."
wb+"
二、填空题
1.单行或多行注释的开始标记符为。
2.使用#include命令可以包含一个头文件,也可以包含一个文件。
3.执行“printf("
%s%s%d"
wei"
rong"
18)。
”语句后得到的输出结果为。
4.执行“printf("
%c"
A'
+2)。
5.short类型的大小为个字节。
6.十进制数3.26f的类型为。
7.假定y=10,则表达式++y*3的值为。
8.关系表达式(x==0)的等价表达式为。
9.若x=5,y=10,则x!
=y的逻辑值为。
10.在if语句中,每个else关键字与它前面同层次并且最接近的关键字相配
套。
11.当在程序中执行到语句时,将结束所在循环语句中循环体的一次执行。
12.假定二维数组的定义为“chara[M][N]。
”,则该数组所占存储空间的字节数为
13.存储字符串"
a"
需要占用存储器的个字节空间。
14.strlen函数用于计算一个字符串的。
15.函数中的形参变量的初值由调用该函数时对应的值决定。
16.程序的编译是以为单位进行的。
17.假定a是一个一维数组,则a[i]的指针访问方式为。
18.执行int*p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为。
19.假定要动态分配一个类型为structWorker的具有n个元素的数组,并由r指向这个
动态数组,则使用的语句表达式为=malloc(n*sizeof(struct
Worker))。
20.与结构成员访问表达式p->
name等价的表达式是。
三、写出下列每个程序运行后的输出结果
1.#include<
stdio.h>
voidmain(){
inti,s=0。
for(i=1。
。
i++){
if(s>
50)break。
if(i%2==0)s+=i
printf("
i,s=%d,%d\n"
i,s)。
//s=2+4+6+8+10+12+14=56i=15
2.#include<
charch='
*'
inti,n=5。
while
(1){
for(i=0。
i++)printf("
ch)。
\n"
)。
if(--n==0)break。
3.#include<
voidmain()
{
intx=24,y=88。
inti=2,p=1。
do{
while(x%i==0&
y%i==0){
p*=i。
x/=i。
y/=i。
i++。
}while(x>
=i&
y>
=i)。
%d\n"
p*x*y)。
/*i=2p=2x=12y=44
P=4x=6y=22
P=8x=3y=11
i=3i=4循环条件不成立因此循环体不执行p*x*y=8*3*11=264*/
4.#include<
inta[9]={36,25,48,24,55,40,18,66,20}。
inti,b1,b2。
a[0]<
=a[1]?
(b1=a[0],b2=a[1]):
(b1=a[1],b2=a[0])。
//b1=25,b2=36
for(i=2。
9。
i++)//i取2到8
if(a[i]<
b1){b2=b1。
b1=a[i]。
}//注意循环体elseif(a[i]<
b2)b2=a[i]。
%d%d\n"
b1,b2)。
分析i=2a[2]=48b1=25b2=36
i=3
a[3]=24
b2=25
b1=24
i=4
a[4]=55
i=5
a[5]=44
b1=25
i=6
a[6]=18
b2=24
b1=18
i=7
a[7]=66
i=8a[8]=20b2=20b1=18
结果
1820
#include<
inta[9]={36,25,48,24,55,40,18,66,20}
(b1=a[1],b2=a[0])
i++)//i取2到8{if(a[i]<
printf("
2536
2425
1824
5.#include<
voidmain(){inta=10,b=20。
a,b)。
{intb=a+25。
//注意局部变量b的作用域a*=4。
}结果
1020
4035
4020
6.#include<
voidSelectSort(inta[],intn){
inti,j,k,x。
i++){//进行n-1次选择和交换
k=i-1。
for(j=i。
j<
j++)
if(a[j]<
a[k])k=j。
x=a[i-1]。
a[i-1]=a[k]。
a[k]=x。
}}voidmain(){
inti。
inta[6]={20,15,32,47,36,28}。
SelectSort(a,6)。
6。
%d"
a[i])。
7.#include<
voidLE(int*a,int*b){intx=*a。
*a=*b。
*b=x。
voidmain(){intx=15,y=26。
x,y)
LE(&
x,&
y)。
8.#include<
string.h>
structWorker{
charname[15]
//姓名
intage。
//年龄
floatpay。
//工资
intEqual(structWorker*r1,structWorker*r2)
if(strcmp(r1->
name,r2->
name)==0)return1
elsereturn0。
structWorkera[4]={{"
25,420},{"
defa"
58,638},{"
ghin"
49,560},{"
jklt"
36,375}}
structWorkerx={"
4。
i++)if(Equal(a+i,&
x))break。
if(i>
=4)printf("
没有查找所需要的记录!
)
elseprintf("
%s%d%6.2f\n"
a[i].name,a[i].age,a[i].pay)
四、写出下列每个函数的功能
1.intSE(intn){//n为大于等于1的整数
intx,s=0。
输入%d个整数:
"
n)。
scanf("
%d"
&
x)。
if(n==1)returnx。
s=x。
while(--n){scanf("
s+=x。
returns。