中国人民公安大学硕士研究生招生考试 824 C 语言程序设计和数字电子技术 考试大纲 ( 本大纲适用于公安技术一级学科安全防范工程二级学科招生初试 ) 2018 年 7 月修订 1
目录 Ⅰ. 考查目标... 3 Ⅱ. 考试形式和试卷结构... 3 Ⅲ. 考查内容... 4 第一部分 C 语言程序设计... 4 第二部分数字电子技术... 5 Ⅳ. 参考试题... 6 V. 参考答案... 12 VI. 参考书目... 14 2
Ⅰ. 考查目标 要求考生具有扎实的 C 语言程序设计基础, 具备开展科学研究的分析 判断和解决问题 的基本能力 考查学生是否具备安全防范技术 警务信息技术 视频图像侦查技术 警务网 络通信技术等相关专业领域研究生所必要的数字电子技术的基本理论与分析设计方法 具体 包括 : 一 掌握 C 语言程序设计的基本概念 基本原理 ; 二 掌握结构化程序设计的方法, 具有良好的程序设计风格 ; 三 掌握程序设计中简单的数据结构和算法, 并能阅读和编写简单的程序 ; 四 数字电子技术的基本概念和基本知识 ; 五 基本的组合与时序逻辑电路的分析及设计方法 ; 六 常用组合逻辑器件与时序逻辑器件的基本特性 应用及设计方法 ; 七 较强的知识拓展能力, 能够分析及设计较为综合的逻辑电路 Ⅱ. 考试形式和试卷结构 一 试卷满分及考试时间本试卷满分为 150 分, 考试时间为 180 分钟 二 答题方式答题方式为闭卷 笔试 三 试卷内容结构 C 语言程序设计 75 分数字电子技术 75 分四 试卷题型结构 ( 一 ) 第一部分 : C 语言程序设计 1. 单项选择题共 10 小题, 每小题 2 分, 共 20 分 2. 程序填空题共 5 个空, 每空 2 分, 共 10 分 3. 读程序写结果题, 共 3 小题, 每小题 5 分, 共 15 分 4. 编程题共 2 小题, 每小题 15 分, 共 30 分 ( 二 ) 第二部分 : 数字电子技术 1. 单项选择题共 10 小题, 每小题 1 分, 共 10 分 2. 填空题共 20 个空, 每空 1 分, 共 20 分 3. 简答题共 3 小题, 每小题 5 分, 共 15 分 4. 分析设计题共 2 小题, 每小题 10-20 分, 共 30 分 3
Ⅲ. 考查内容 第一部分 C 语言程序设计 一 C 语言基本知识 ( 一 )C 语言的概念 特点及基本组成 ; ( 二 ) 基本数据类型 ( 整型 字符型 实型等基本数据类型 ); ( 三 ) 运算符与表达式 优先级和结合性 1. 基本数据类型的算术运算 ( 含自增和自减 ) 逻辑运算 关系运算 条件运算 赋值运算 逗号运算 类型转换运算 位运算等 2. 混合运算的表达式, 能正确对表达式进行求值 二 C 语言程序的基本语句和基本结构 ( 一 ) 基本语句 ( 表达式语句 函数调用语句 控制语句 复合语句 空语句 ); ( 二 ) 基本结构 ( 顺序结构 选择结构 循环结构 ); 赋值语句 ( 含条件赋值语句 ) 条件语句( 含 if if-else switch) 循环语句( 含 while do-while for 语句, 包括循环嵌套和 break 语句与 continue 语句 ) ( 三 ) 输入输出函数的基本使用方法 格式化输入 / 输出函数 (printf 函数和 scanf 函数 ) 三 C 语言数组 ( 一 ) 数组的基本概念 一维数组和二维数组的定义 引用与初始化 ; ( 二 ) 字符数组的定义 引用与初始化, 字符数组的输入与输出, 字符串和字符串处理函数的应用 四 C 语言函数 ( 一 ) 函数声明和函数定义, 函数参数 ( 形参和实参 ) 与函数的返回值 ; ( 二 ) 函数调用方法 ( 函数的嵌套调用, 函数的递归调用, 数组作为函数参数的函数调用 ); ( 三 ) 函数参数传递方法 ( 传值 传地址 传引用 ); ( 四 ) 常用库函数的使用 ; ( 五 ) 局部变量和全局变量, 变量存储类型 作用域和生存期 五 C 语言编译预处理 ( 一 ) 预处理的概念与特点 ; ( 二 ) 宏定义符号常量 ( 不带参数的宏 ); ( 三 ) 文件包含处理 六 C 语言指针 ( 一 ) 指针的概念 ( 定义 使用 指针变量作为函数参数 ); ( 二 ) 数组与指针 ( 指向数组的指针变量的定义与赋值 ); ( 三 ) 字符串与指针 ( 指向字符串的指针变量 ) 七 C 语言结构体 4
( 一 ) 结构体的基本概念 ( 结构体类型变量的定义 引用和初始化 ); ( 二 ) 结构体数组 结构体指针 八 C 语言文件 ( 一 ) 文件的基本概念 文件类型指针 ; ( 二 ) 文件的打开 关闭 ; ( 三 ) 文件的状态 读写 九 C 语言算法设计应用 ( 一 ) 排序 ( 冒泡排序 选择排序 快速排序 ); ( 二 ) 链表 ( 创建单向动态链表 输出链表 释放链表 ) 第二部分 数字电子技术 一 数制和码制 ( 一 ) 数制 码制的概念, 不同数制之间的相互转换 ; ( 二 ) 几种常用的编码及其规则与特点 二 逻辑代数基础 ( 一 ) 逻辑代数的三种基本运算和复合运算 ; ( 二 ) 逻辑代数的基本公式 常用公式和三个基本定理 ; ( 三 ) 逻辑函数及其描述方法 ; ( 四 ) 逻辑函数的公式化简法和卡诺图化简法 ; ( 五 ) 具有无关项的逻辑函数及其化简方法 ; ( 六 ) 逻辑函数形式的变换 三 门电路 ( 一 ) 正逻辑和负逻辑的概念 ; ( 二 ) 双极型三极管和 MOS 管的开关特性 ; ( 三 )TTL 反相器的电路结构 工作原理 静态输入特性和输出特性以及动态特性 ; ( 四 ) 其他类型的 TTL 门电路 ; ( 五 )COMS 反相器的电路结构 工作原理 静态输入特性和输出特性以及动态特性 ; ( 六 ) 其他类型的 COMS 门电路 ; 四 组合逻辑电路 ( 一 ) 组合逻辑电路的特点及描述方法 ; ( 二 ) 组合逻辑电路的分析方法和设计方法 ; ( 三 ) 若干常用组合逻辑电路模块 ( 编码器 译码器 数据选择器 加法器 数值比较器等 ) 的逻辑功能及应用 ; ( 四 ) 层次化和模块化的设计方法 ; ( 五 ) 组合逻辑电路中的竞争 冒险现象 成因及其消除的办法 5
五 半导体存储电路 ( 一 ) 触发器的电路结构与动作特点 ; ( 二 ) 触发器的逻辑功能及其描述方法 ; ( 三 ) 不同逻辑功能触发器之间的转换 ; ( 四 ) 寄存器的逻辑功能和应用 ; ( 五 ) 半导体存储器的类型 特点 ; ( 六 ) 存储器容量的扩展 ; ( 七 ) 利用存储器实现组合逻辑函数 六 时序逻辑电路 ( 一 ) 时序逻辑电路的特点及描述方法 ; ( 二 ) 同步时序逻辑电路的分析方法 ; ( 三 ) 若干常用时序逻辑电路 ( 移位寄存器 计数器 顺序脉冲发生器 序列信号发生器 ) 的功能和应用 ; ( 四 ) 同步时序逻辑电路的设计方法 ; ( 五 ) 时序逻辑电路的自启动分析 七 脉冲波形的产生和整形电路 ( 一 ) 施密特触发器 单稳态触发器 典型多谐振荡器的工作原理 特点及其应用 ; ( 二 )555 定时器的工作原理与功能 ; ( 三 ) 工作原理 八 数模和模 - 数转换 ( 一 )A/D D/A 转换器的类型 工作原理 性能指标和应用 ; ( 二 )A/D D/A 转换器的转换精度与转换速度 Ⅳ. 参考试题 第一部分 C 语言程序设计 一 单项选择题 : 下列每题给出的四个选项中, 只有一个选项是符合题目要求的 ( 每小题 2 分, 共 20 分 ) 1. 以下选项中, 能用作用户标识符的是 ( ) A.void B.6_6 C._0_ D.unsigned 2. 已知 int j,i=1; 则执行 j=-i++; i 和 j 的值为 ( ) A.1,-1 B.1,1 C.2,-1 D.2,1 3. 有以下程序, 程序运行后的输出结果是 ( ) int a=1,b=0; printf("%d,",b=a+b); printf("%d",a=2*b); 6
A.0,0 B.1,0 C.3,2 D.1,2 4. 设有定义 : int a=1,b=2,c=3;, 以下语句中执行效果与其它三个不同的是 ( ) A.if(a>b) c=a,a=b,b=c; B.if(a>b){c=a,a=b,b=c; C.if(a>b) c=a;a=b;b=c; D.if(a>b){c=a;a=b;b=c; 5. 有以下定义语句, 编译时会出现编译错误的是 ( ) A. char a='a'; B.char a='\n'; C. char a='aa'; D.char a='*'; 6. 有以下程序, 已知字母 A 的 ASCII 码为 65, 程序运行后的输出结果是 ( ) char c1,c2; c1='a'+'8'-'4'; c2='a'+'8'-'5'; printf("%c,%d\n",c1,c2); A.E,68 B.D,69 C.E,D D. 输出无定值 7. 有以下程序, 若要使程序的输出值为 2, 则应该从健盘给 n 输入的值是 int s=0,a=1,n; scanf("%d",&n); do {s+=1; a=a-2; while(a!=n); printf("%d\n",s); A. -1 B.-3 C. -5 D. 0 8. 若有定义 : int a[ ][4]; 则 a[i][j] 前有 个元素 A. j*4+i B.i*4+j C.i*4+j-1 D. i*4+j+1 9. 下面有关 for 循环的正确描述是 : ( ) A. for 循环只能用于循环次数已经确定的情况 B. for 循环是先执行循环体语句, 后判断表达式 C. 在 for 循环中, 可以用 break 语句跳出循环体 D. for 循环中, 可以包含 if 语句, 但必须用花括号括起来 10. 以下不正确的描述是 : ( ) A. continue 语句的作用是结束本次循环的执行 B. break 语句只能在 switch 语句体内使用 C. 在循环体内使用 break 语句或 continue 语句的作用完全不同 D. 从多层循环嵌套中退出时, 可以使用 goto 语句 二 程序填空题 ( 每小题 2 分, 共 10 分 ) 1. 若程序运行后的输出结果是 1,3,7, 请填空 int int i,n[5]={0; for(i=1;i<4;i++){ n[i]= ; printf("%d\n", ); 7
2. 若程序的运行结果是 10, 请填空 int a=3,b=5; int max(int a,int b) { int c;? a:b; return(c); int a=10; int max(int a,int b); printf("%d", ); 3. 函数 fun 的功能是使字符串 str 按逆序存放, 请填空 void fun (char str[]) { char m; int i, j; for (i=0, j=strlen(str); i< ; i++, j--) { m = str[i]; str[i] = str[j-1]; str[j-1] = m; printf("%s\n",str); 三 读程序写结果题 ( 每小题 5 分, 共 15 分 ) 1. 程序运行后的输出结果是 ( ) int a=1,b=7; do{ b=b/2;a+=b; while (b>1); printf("%d\n",a); 2. 程序运行时, 若输入 1 2 3 4 5 0< 回车 >, 则输出结果是 ( ) 8
int s; main(){ scanf("%d",&s); char ch[2][5]={ 6937, 8254,*p[2]; while(s>0) { int i,j,s=0; switch(s) { for(i=0;i<2;i++) case 1:printf("%d,",s+5); p[i]=ch[i]; case 2:printf("%d,",s+4); break; for(i=0;i<2;i++) case 3:printf("%d,",s+3); for(j=0;p[i][j]> \0 ;j+=2) default:printf("%d,",s+1);break; s=10*s+p[i][j]- 0 ; scanf("%d",&s); printf( %d\n,s); 3. 有如下程序 char ch[2][5]={ 6937, 8254,*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]> \0 ;j+=2) s=10*s+p[i][j]- 0 ; printf( %d\n,s); 该程序的输出结果是 ( ) 四 编程题 ( 每题 15 分, 共 30 分 ) 1. 所谓 水仙花数 是指一个 3 位数, 其各位数字立方和等于该数本身 例如,153 是一个水仙花数, 因为 153=13+53+33 编写 C 语言程输出所有的水仙花数并求所有水仙花数之和 2. 在主函数中输入 10 个字符串, 用另一个函数对它们排序 然后在主函数输出这 10 个排好序的字符串 第二部分 数字电子技术 一 单项选择题 ( 每小题 1 分, 共 10 分 ) 1. 将十六进制数 (BE.4)16 转换成十进制数是 ( ) A. (190.25)10 B. (190.4)10 C. (176.25)10 D.(176.4)10 2. 容量为 4K 4 位的 RAM 芯片, 其地址线和数据线各为 ( ) 9
A. 4 和 4 条 B.4 和 12 条 C.12 和 4 条 D.4 和 10 条 3. 对正逻辑而言, 某电路是与非门, 则对负逻辑而言是 ( ) A. 与非门 B. 与门 C. 或非门 D. 或门 4. 图示逻辑电路为 ( ) A. 与非门 B. 与门 C. 或门 D. 或非门 5. 逻辑函数 F = A ( A B) =( ) A. B B. A C. A B D. ( A B) 6. 时序逻辑电路中必须有 ( ) A. 输入逻辑变量 B. 时钟信号 C. 计数器 D. 编码器 7. 为将 D 触发器转换为 T 触发器, 下图所示电路的虚线框内应是 ( ) A. 或非门 B. 与非门 C. 异或门 D. 同或门 8.n 个触发器构成的扭环型计数器中, 有效状态有 ( ) 个 A. n B. 2n C. 2n-1 D. 2n-2n 9. 以下哪一条不是消除竞争冒险的措施 ( ) A. 接入滤波电路 B. 利用触发器 C. 加入选通脉冲 D. 修改逻辑设计 10
10. 石英晶体多谐振荡器的突出优点是 ( ) A. 速度高 B. 电路简单 C. 振荡频率稳定 D. 输出波形边沿陡峭 二 填空题 ( 每空 1 分, 共 20 分 ) 1. 数字信号的特点是在 上和 上都是断续变化的 2. 和 是衡量 A/D 转换器和 D/A 转换器性能优劣的主要指标 3. 数字电路按照是否有记忆功能通常可分为两类 : 4.555 定时器的最基本应用有 5. 半导体存储器分为 和 两类 6. 如将或非门做反相器使用, 则其他输入端应接 平, 如将异或门做反相器使 用, 则其他输入端应接 电平 7. 施密特触发器和 是两种常用的脉冲整形电路 8. 存储器容量的扩充通常有 三种方式 9. 随机存储器 RAM 的电路结构主要由 和地址译码器 读 / 写控制电路三部 分组成 10. 串行传输的数据转换为并行数据时, 可采用 寄存器 11. 根据对偶规则, 直接写出函数 Y = A + C D + 0 的对偶函数 = 三 简答题 ( 每小题 5 分, 共 15 分 ) 1. 将逻辑式 F = ( A + B) C + A C + AB + ABC + B C + ( A + B) C 化为最简与或式 2. 已知电路及 CP A 的波形如图所示, 设触发器的初态均为 0, 试画出输出端 B 和 C 的波形 3. 试述单稳态触发器的工作特点 四 分析设计题 ( 共 30 分 ) 1. 请写出下列 ROM 结构中 Y0-Y2 的函数表达式, 列出其真值表, 并采用三 - 八译码器 74LS138 对 Y0-Y2 进行重新实现, 要求写出实现表达式, 并画出逻辑电路图 其中,ROM 地址译码器中, 输入地址选中的列线为高电平 (10 分 ) 11
2. 用 JK 触发器和门电路设计一个 11 进制计数器, 要求体现逻辑抽象 状态化简 状态 方程 特性方程 驱动方程和输出方程等中间过程, 画出逻辑电路图, 检查所设计的电路能 否自启动 (20 分 ) V. 参考答案 第一部分 C 语言程序设计 一 单项选择题 (20 分 ) 1.C 2.C 3.D 4.C 5.C 6.A 7.B 8.B 9.C 10.B 二 程序填空题 (10 分 ) 1. n[i-1]*2+1, n[i] 2. c=a>b, max(a,b) 3. j/2 三 读程序写结果题 (15 分 ) 1. 5 2. 6,5,6,6,4,5,6, 3. 6385 四 编程题 (30 分 ) 1. 参考答案 int i,j,k,n,sum=0 ; for(n=100;n<1000;n++){ i=n/100; j=n/10-i*10; k=n%10; if(n= =i*i*i+j*j*j+k*k*k ) { printf("flower is= %d \n",n) ; sum=sum+n; printf("the number is =%d",sum); 12
2. 参考答案 #include<stdio.h> #include<string.h> int main(){ void sort(char *[]); int i; char *p[10],str[10][10]; for(i=0;i<10;i++) p[i]=str[i]; print( input 10 strings:\n ); for(i=0;i<10;i++) scanf( %s,p[i]); sort(p); printf( the sorted strings:\n ); for(i=0;i<10;i++) printf( %s\n,p[i]); void sort(char *s[]) { int i,j; char *tp; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(strcmp(*(s+j), *(s+j+1))>0) {tp=*(s+j); *(s+j)= *(s+j+1); *(s+j+1)=tp; 第二部分数字电子技术 一 单项选择题 1.A 2.C 3.C 4.A 5.A 6.B 7.D 8.B 9.B 10.C 二 填空题 1. 时间, 幅值 2. 转换速度, 转换精度 3. 组合逻辑电路, 时序逻辑电路 4. 施密特触发电路, 单稳态电路, 多谐振荡电路 5. 随机存储器, 只读存储器 6. 低, 高 7. 单稳态触发器 8. 字扩展, 位扩展, 字位扩展 9. 存储矩阵 10. 移位 13
11. A ( C + D) 三 简答题 1. 解 : F=C+AB 2. 解 : 3. 解 :(1) 有稳态和暂稳态两个状态 ;(2) 在外界触发脉冲作用下, 能从稳态翻转到暂 稳态, 暂稳态持续一段时间后, 自动回到稳态 ;(3) 暂稳态持续时间的长短取决于电路本身 参数, 与触发脉冲的宽度和幅度无关 四 分析设计题 1. 略 2. 略 VI. 参考书目 一 C 程序设计 ( 第五版 ), 清华大学出版社, 谭浩强著 二 其他 C 语言程序设计参考书 三 阎石. 数字电子技术基础 ( 第六版 ). 北京 : 高等教育出版社,2016.4 14