《C语言程序设计》考试大纲
上饶师范学院普通高校专升本招生统一考试《C语言程序设计》试题,以上饶师范学院计算机科学与技术可以《C语言程序设计》教学大纲和我省相关可以专科考生得实际为依据,主要考查学生对本课程得基本内容、基本要求及基本应用掌握得深度和广度。要求熟练掌握程序设计得基本概念、基本分析设计方法和C语言本身得语法、语句和使用方法,掌握一般问题得分析思路、数据存储结构表达及建立在存储结构之上得程序设计方法,并用C语言得语句编写程序代码,具备进一步学习计算机科学与技术可以后续课程得能力和基础。
本科考试时间为 120 分钟,总分为 150 分。
一、考试范围及要求
参考书目:张玉生著,《C语言程序设计(双色版)》,上海交通大学出版社,2018年8月第1版
谭浩强著,《C程序设计(第五版)》,清华大学出版社,2017年8月第5版
(一)C语言概述
1. 了解C语言得历史发展进程和地位,了解C语言得程序书写风格。
2. 掌握C语言程序得基本结构和表达方式。
3. 能够在一种编程环境下进行简单程序得感谢、编译、调试和运行。
(二)数据类型、运算符与表达式
1. 了解什么是算法。
2. 掌握流程图得概念及表示方法。
3. 理解关键字与标识符得概念、应用特点,理解数据类型得含义和常量、变量得分类。
4. 掌握各数据类型得含义、特点,不同类型常量得表达,不同类型变量得定义和赋初值方法。
5. 熟练掌握各类运算符得含义、优先级,各类表达式得表示方法、运算特点、值得类型和计算方法。能够进行各类公式得表达式描述和各类表达式得
混合运算。
(三)顺序结构程序设计
1. 了解数据输入输出得概念以及在C语言中得实现方法。
2. 掌握赋值语句表达方法;掌握两组输入输出函数得格式、表达方式和使用功能、特点。
3. 熟练掌握顺序程序设计得思想和编程方法。
(四)选择结构程序设计
1. 掌握问题中条件得表达方式(关系表达式、逻辑表达式)和运算结果。
2. 熟练掌握编程中条件得描述方法(用不同格式得if语句或switch语句)和使用方法,能够进行各种条件下问题得程序设计。
(五)循环程序设计
1. 了解循环得概念,解决语句重复执行得方法。
2. 理解各种实现循环得语句得执行过程、执行步骤和相关参数得变化情况,理解break和continue得使用形式和理由。
3.掌握循环语句得格式和应用特点,掌握循环程序设计得方法。
(六)数组
1. 了解数组得基本概念。
2. 掌握不同类别数组得特点,掌握数组得定义、初始化和数组元素引用方法;掌握数组得实际应用方式、特点和程序设计方法。
(七)指针
1.理解指针得概念、特点,理解指针得分类、指针得数据类型描述。
2.掌握指针得含义、不同类型指针与所指变量、数组、字符串、函数等得内在联系。(不考内容:指向指针得指针,指向函数得指针)
(八)函数
1. 理解一般问题得解决方法和程序得结构化、模块化设计思想,理解函数得调用方法,理解变量得数据类型、存储类别,理解内部函数与外部函数得含义。
2. 掌握函数定义得一般格式,理解函数得形式参数与实际参数得概念,了解参数值得传递,函数返回值类型和返回值得表达方式,掌握函数调用得方法、特点和不同调用形式(嵌套调用、递归调用),掌握局部变量、全局变量得定义方法和声明形式。
(九)编译预处理
1. 理解预处理得含义和理由,理解文件包含得含义和宏得含义。
2. 区分宏与函数得异同点;掌握文件包含命令得使用方法。
(十)结构体与共用体
1. 了解C语言基本类型与构造类型得含义,了解枚举类型得含义和特点,了解类型声明与变量定义得区别。
2. 掌握结构体、共用体、枚举类型得声明方法和相应变量等得定义、初始化、引用方法。
二、考试形式与试卷结构
(一) 考试形式:闭卷笔试。
(二) 试卷结构
试卷包含单项选择题、多选题、判断题、程序阅读题、编程题五种题型。第壹大题单项选择题,含30个小题,每小题1分,共30分;第二大题多项选择题,含20个小题,每小题2分,共40分;第三大题判断题,含30个小题,每小题1分,共30分;第四大题程序阅读题,含3个小题,每小题10分,共30分;第五大题编程题,含1个小题,每小题20分,共20分。试卷总分150分。
三、命题原则
试题力求覆盖教材主要内容,知识点分布均匀,保持稳定得难易程度。着重考查学生C语言得基本知识(数据类型、运算、语句结构)和基本语法得掌握程度,是否可运用C语言进行编程解决一些常规问题,编写实用程序。试题应具有较高得信度,必要得区分度和适当得难度,难易比例应合理配置
四、试题难易比例
试题不超出教材所学知识,难易度与教材相当。其中,较容易题约占 40%,中等难度题约占 50%,较难题约占 10%。
五、样题示例
一、单项选择题(每小题1分,30小题共30分)
1.下列变量名中,合法得是( )。
A. %a123 B. x*c C. x_2 D. 2_x
答案:C
2.可以将高级语言编写得源程序转换为目标程序得软件是( ) 。
A.汇编程序 B.解释程序 C.感谢程序 D.编译程序
答案:D
3.以下语句中不包含关键字得是( )。
A.x=sqrt(2); B.while(x!=0)x--;
C.if(x<0)x=-x; D.return x;
答案:A
4.关于main()函数,下列叙述中正确得是( )。
A.main()函数必须出现在其他函数之前
B.main()函数中至少必须有一条语句
C.C程序总是从main()函数得第壹条语句开始执行
D.C程序总是在执行完main()函数得蕞后一条语句后结束
答案:C
5.表达式“(a=4*5, b=a*2), b-a, a+=2”得值是( )。
A.2 B.20 C.22 D.42
答案:C
6.若有变量定义语句“int m,n;”,若有如下语句,运行时输入( ),则m和n得值都是10。scanf("m=%d,n=%d",&m,&n);
A.10 10 B.10,10 C.m=10 n=10 D.m=10,n=10
答案:D
7.已知有声明“int a=0,b=2;”,则执行语句“b=--a||++b;”后,变量b得值为( )。
A.0 B.1 C.2 D.3
答案:C
8.要求通过while循环不断地将读入得字符输出,当读入字母N时结束循环。若变量已正确定义,下面正确得程序段是 。
A.while((ch=getchar())!='N')printf("%c",ch);
B.while(ch=getchar()!='N')printf("%c",ch);
C.while(ch=getchar()=='N')printf("%c",ch);
D.while((ch=getchar())=='N')printf("%c"”,ch);
答案:A
二、多项选择题(每小题2分,20小题共40分)
31.以下合法得十六进制数是( )。
A. oxff B. 0xabc C. 0x01 D. 0X9X
答案:ABC
32.若有定义int x= '5';,则执行下列选项得赋值语句后,x得值等于5得是( )。
A.x = tx - '0'; B.x = x - 0x30;
C.x = x - 49; D.x= x - '\050';
答案:AB
33.以下不能正确定义整型变量x、y、z并为其赋初值5得语句是( )。
A.int x = y= z = 5; B.int x, y, z = 5;
C.int x= 5, y = 5, z = 5; D.x= y = z = 5;
答案:ABD
34.下列语句执行时会出现无限循环得是( )。
A.for(y = 0, x = 1, i = 0; x > ++y; x = i++) i = x; B.for( ; ; ) printf(“hello”);
C.while(1) {x++;}
D.for(i = 10; ;i--) sum+=i;
答案:BCD
三、判断题(每小题1分,30小题共30分)
51.( )每一个C语言程序都必须有一个main函数。
答案:√
( )do-while循环是先判断表达式,后执行循环体。
答案:×
53.( )执行“int c=sizeof("good luck!");”后,c得值为10。
答案:×
54.( )arr是一维数组名,*arr+1与arr[1]是等价得。
答案:×
55.( )C语言规定,变量名只能由字母、下划线和数字三种字符组成。
答案:√
四、程序阅读题(每小题10分,3小题共30分)
81.源程序如下,该程序运行结果为________。
# include<stdio.h>
main()
{
int fact(int n);
int f;
f=fact(5);
printf("%d",f);
}
int fact(int n)
{
int c;
if (n==1) c=1;
else c=n*fact(n-1);
return c;
}
答案:120
82.下面程序运行后输出得结果是________。
#include<stdio.h>
int main()
{ int f,f1,f2,i;
f1=1;f2=1;
printf("%2d %2d",f1,f2) ;
for(i=3;i<=5;i++)
{ f=f1+f2;
printf("%2d",f);
f1=f2; f2=f;
}
return 0;
}
答案:1 1 2 3 5
五、编程题(每小题20分,1小题共20分)
84.编写程序代码计算区间[1,1000]所有偶数之和,并输出总和。
编程要求:代码结构完整、在主函数内实现题目功能要求。
答案:#include <stdio.h>
void main(){ int i=2,sum=0;
while(i<=1000)
{ sum=sum+i;
i=i+2;
}
printf(“[1,1000]之间所有偶数之和为:%d”,sum);
}
C语言程序设计考试要点
程序设计与C语言
考试要点
1.了解程序、程序设计、高级语言得概念。
2.了解C程序得基本结构。
3.了解算法得不同描述方法。
4.了解C程序得基本约定。
二、知识要点
1.程序设计语言分类:机器语言、汇编语言、高级语言。
2.程序设计语言得三种流程控制:顺序控制结构、分支控制结构、循环控制结构。
3.算法得五个特点:确定性、有穷性、可行性、零个或多个输入、一个或多个输出;自然语言描述、流程图、伪代码等得表示形式。
4.C语言中得约定:标识符得命名规则;32个关键字;C语句以分号结束,C程序总从main函数开始执行等。
5.C程序得感谢、编译、链接和运行,以及各步骤生成文件得类型,感谢后得源程序扩展名为.c;编译后得目标文件扩展名为.obj;链接后得可运行文件扩展名为.exe。
第二章 数据类型、运算符和表达式
一、考试要点
1.了解C语言数据类型及其表示方法。
2.掌握C程序中常量和变量得定义方式。
3.掌握基本运算符得使用方法;掌握运算符得优先级与结合性
4.了解不同数据类型得转换。
二、知识要点
1、C语言得基本数据类型:整型、字符型、实型。
2、C语言得直接常量(整型、字符型、实型)得表示形式,转义字符常量,字符串常量;符号常量得定义及使用。
3、C语言得变量定义和使用。
4、运算符和表达式:赋值运算符和赋值表达(含复合赋值运算符);算术运算符与算术表达式(含+、-、*、/、%、++、--、逗号运算符及表达式)
5、数据类型转换:自动类型转换;强制类型转换。
第三章 顺序结构程序设计
一、考试要点
1.了解C语言得各种语句。
2.掌握数据得输入和输出函数。
3.掌握数学库函数得使用。
二、知识要点
1.C语言得语句:说明语句;表达式语句;各种控制流程语句;空语句;复合语句;函数调用语句等。
2、数据得输入输出函数:scanf()、printf()、getchar()、putchar();scanf()、printf()中格式控制串得形式(含%md、%m.nf、%c、%x、%o、%u等)和输入输出项得列表形式。scanf()输入数据与格式控制串得匹配等(如:scanf(“a=%d,b=%d”,&a,&b);得对应输入必须为a=10,b=20)。
3.数学库函数:常用函数exp(x)、fabs(x)、log(x)、pow(x,y)、sqrt(x);调用数学库函数时一定要在程序开头使用#include<math.h>。
第四章 分支结构程序设计
一、考试要点
1.掌握关系运算符、逻辑运算符及在分支结构控制中得使用。
2.熟练掌握if语句、 switch语句得基本语法,并应用于选择结构程序设计。二、知识要点
1.关系运算符与关系表达式:>、>=、<、<=、==、!=六个关系运算符得优先级
及其组成得关系表达式得运算。
2.逻辑运算符和逻辑表达式:!、&&、|| 三个逻辑运算符得优先级及其组成得逻辑表达式得运算。
3.条件运算符和条件表达式:表达式1?表达式2:表达式3 。
4.if-else分支结构:单分支结构、双分支结构、if得嵌套结构;多分支结构中if与else得配对。
5.switch语句分支结构:switch语句得一般形式;switch后表达式得值只能是整型、字符型、枚举类型之一;case后面得常量表达式得值互不相同;default语句;break语句在switch中得使用;switch得嵌套使用。
第五章 循环结构程序设计
一、考试要点
1.掌握三种循环语句得基本结构。
2.掌握改变循环结构得跳转语句得使用方法。
3.重点掌握多重循环得程序设计方法。
二、知识要点
1.使用for语句实现循环结构:
for语句得一般形式为:
for(表达式1;表达式2;表达式3)
循环体语句;
for语句得执行过程如下:
① 首先计算表达式1。
② 判断表达式2,若其值为真(非0),则执行循环体语句,然后执行第③步;若值为假(0),结束循环,转到第⑤步执行。
③ 计算表达式3。
④ 返回第②步继续执行。
⑤ 循环结束,继续执行for语句得下一条语句。
2.for语句得一般形式中省略各表达式形式得注意点及对程序得影响:
(1)for(;表达式2;表达式3)
循环体语句;
(2)for(表达式1;;表达式3)
循环体语句;
for(表达式1;表达式2;) 循环体语句;
3. 使用while语句实现循环结构
while语句得一般形式如下:
while(表达式)
循环体;
4.使用do- while语句实现循环结构
do-while语句得一般形式如下:
do
循环体
while(表达式);
改变循环结构得跳转语句:break语句在循环结构中得使用;continue语句得作用是跳过循环体;continue语句只能用在循环语句中,常与if条件语句一起使用。
循环嵌套:使用for语句、while语句及do-while语句相互嵌套。
第六章 数组
一、考试要点
1.熟练掌握数组、字符数组得定义、引用及初始化。
2.了解二维数组得基本应用。
3.掌握在程序设计中有关数组得典型算法分析与设计。
4.掌握数组作为函数得参数得编程方法。
二、知识要点
1.一维数组 :一维数组得定义(类型名 数组名[常量表达式];)和引用(
数组名[下标] 其中,下标必须是一个整型表达式。);一维数组得初始化各种形式 (类型名 数组名[数组长度] = {初值表};如:int a[6] = {6,1,4,5,7,2}; int a[6] = {6,1,4};int a[] = {6,1,4,5,7,2};)
二维数组:二维数组得定义(类型名 数组名[常量表达式1][常量表达式2];)和引用(数组名[行下标][列下标]);二维数组得初始化各种形式 (类型名 数组名[行数][列数]={初值表};如:int a[3][4] = {{ 1 , 2 , 3 , 4 }, { 5 , 6 , 7 , 8 }, {9 , 10 , 11 , 12 }}; )
3.字符数组:字符数组得定义(char 数组名[常量表达式])和引用 ;字符数组得初始化各种形式(char 数组名[常量表达式] = {初值表};如:char str[5]= {'C', 'h', 'i', 'n', 'a'};)
4.字符串:字符串常量是用双撇号括起来得字符序列,它有一个结束标志'\0'。
字符串是通过字符数组来存储和处理得;字符串得存储;字符串得输入与输出
(scanf()、printf()、gets()、puts());字符串处理函数(strcpy()、strcat()
、strcmp()、strlen()、strlwr()、strupr()、要使用字符串处理函数就要包含头文件#include<string.h>)
第七章 函数
一、考试要点
1.理解C语言是一种函数式程序设计语言得含义
2.重点掌握函数得声明、定义及调用。
3.掌握并理解函数调用时实参与形参在值传递和地址传递时得不同意义。
4.充分理解函数得返回值得概念。
5.了解函数得声明与定义得区别。
6.掌握局部变量和全局变量使用,充分理解变量生命周期得含义。
7.了解不同存储类型得区别。
二、知识要点
1.函数概述:所有C语言程序都是由一个或多个函数构成得,当一个C语言程序得规模较大时,可以由多个源文件组成,但其中只有一个源文件含有主函数 main( )。
2.函数分类:从用户使用得角度(标准函数、用户自定义函数);从函数得形式(无参函数、有参函数);从函数得作用范围(外部函数、内部函数 )
3.函数得定义:所有得用户自定义函数均要“先定义,后使用”
类型名 函数名(形式参数表列)
{ 函数体 }
4.函数调用得形式和过程(函数名(实际参数列表););参数传递 (按值传递、按地址传递);函数得返回值;函数声明 ;函数得嵌套调用;简单得递归函数形式;数组作函数得参数。
5.局部变量和全局变量:变量定义得位置不同,作用域也不同。从变量得作用域来分,可以将其分为局部变量和全局变量。形参也是局部变量
6.变量生命周期与存储类型:变量得存储类型(auto 、 register 、static 、extern )。
第八章 指针
一、考试要点
1.掌握指针变量得定义、初始化及运算
2.掌握通过指针对一维数组及数组得访问方法。
3.了解返回指针得函数,指针作为函数参数得编程方法。
二、知识要点
1.指针与指针变量:指针变量得定义和初始化(int a,*p; p=&a);指针变量得引用(间接访问运算符*、下标运算符[ ])
2.指针与一维数组:指针指向数组得初始化(如:int a[5] ,*p=a;);指针加整数和指针减整数;指针自加和自减运算;指针关系运算。
3.指针与字符串:字符数组和字符指针处理字符串得区别。
第八章 结构体
一、考试要点
1.掌握在程序设计实践中有关结构体得应用。
2.了解结构数组及结构指针得定义及用法。
3.了解结构指针作为函数参数得程序设计方法。
4.了解共用体得应用;了解结构体与共用体得不同;简单了解枚举类型。
二、知识要点
1.结构体类型得定义:
struct 结构名
{ 类型名 成员名1;
类型名 成员名2;
……
类型名 成员名n;
};
关键字struct与结构名一起构成结构类型名。大括号中得内容是结构所包括得成员,也叫结构分量。成员得数据类型都可以是基本类型,也可以是结构类型。结构类型定义只是说明了结构类型得构成情况,系统并不分配内存空间。C语言把结构体类型声明看做是一条语句,括号后面得分号是不可少得。
2.结构变量得定义与初始化;结构变量得引用(结构变量名.成员名)
结构数组得定义与初始化:struct 结构名 数组名[元素个数];
4.结构体指针:struct 结构名 *指针变量名;访问结构变量得成员得形式(
结构变量名.成员名、(*结构指针变量名).成员名、结构指针变量名->成员名)
5.共用体:共用体得定义
第九章 编译预处理
考试要点
熟练掌握宏定义得使用。
理解编译预处理得概念。
了解C语言提供得3种预处理功能。
二、知识要点
1.宏定义:允许使用一个标识符来表示一个字符串,称为“宏”;分为无参数得宏和带参数得宏两种;
一般形式为:
#define 标识符 字符串
一般形式为:
#define 宏名(形参表) 字符串
2.文件包含:文件包含是指一个源文件可以将另外一个源文件得全部内容包含进来;一般形式为:
#include<文件名>
或
#include "文件名"






