十八年专注考研辅导
因为专注,所以出色

0371-60904200 全国咨询热线服务
您所在的位置: 首页 > 考研资讯 > 考试大纲 > 正文
考研资讯

中国人民警察大学2020网络空间安全学科复试大纲及参考试题

来源:天任考研  |  更新时间:2020-04-17 14:19:03  |  关键词:

  •  
  •  
  •  

中国人民警察大学2020网络空间安全学科复试大纲及参考试题

Ⅰ.考 查 目 标

要求考生对C程序设计的基础知识、基本理论和基本技能熟练掌握,能够综合运用C语言进行编程来分析问题和解决问题。考查具体包括:

1.掌握C语言程序设计的基本概念,基础知识。

2.掌握结构化程序设计的思路和方法,能编写一定难度的C程序,并具有基本的纠错和调试程序的能力。

3.掌握程序设计中的数据结构和简单算法,能够熟练编写程序来分析和解决实际问题。

Ⅱ.考试形式和试卷结构

一、试卷满分及考试时间

本试卷满分为100分,考试时间为120分钟。

二、答题方式

答题方式为闭卷、笔试。

三、试卷内容结构

C语言程序设计 100分

四、试卷题型结构

1.单项选择题共10小题,每小题2分,共20分

2.填空题共5个空,每空2分,共10分

3.程序阅读题共5小题,每小题5分,共25分

4.程序设计题共3小题,每小题15分,共45分

Ⅲ. 考 查 内 容

一、C程序设计基础

(一)基本常用头文件与C语言程序的基本结构;

(二)基本数据类型(基本整型、字符型、浮点型等);

(三)常用的算术运算符与表达式(加减乘除、求余、自增、自减、条件、关系等、运算符优先级、不同类型数据混合运算与强制类型转换);

(四)格式化数据输入与输出(scanf、printf、putchar、getchar函数等)。

二、程序控制结构(选择结构与循环结构)

(一)选择结构与程序判断;

(二)if语句的选择结构;

(三)关系运算符与关系表达式;

(四)逻辑运算符与逻辑表达式;

(五)条件运算符与条件表达式;

(六)选择结构及选择结构的嵌套;

(七)多分支选择结构(switch、if…else);

(八)几种常见的循环语句(while、do…while、for);

(九)循环的嵌套(双重循环、三重循环等);

(十)循环状态的改变(break语句、continue语句等)。

三、数组及操作

(一)一维数组定义和引用;

(二)一维数组的初始化与赋值;

(三)二维数组的定义与引用;

(四)二维数组的初始化与赋值;

(五)字符数组定义、初始化;

(六)字符数组中元素引用、赋值;

(七)字符串和字符串结束标志;

(八)字符数组的输入输出与字符串处理函数(puts函数、gets函数、strcat函数、strcpy函数、strncopy函数、strcmp函数与strlen函数等)。

四、函数

(一)函数的定义与调用(函数调用形式、调用函数时的数据传递、调用过程及返回值);

(二)函数声明与函数原型;

(三)函数的嵌套与递归;

(四)数组作为函数的参数(数组元素、数组名作为函数参数);

(五)局部变量与全局变量;

(六)变量的存储方式和生存期;

(七)内部函数和外部函数。

五、指针

(一)指针变量的定义与使用;

(二)指针变量作为函数参数;

(三)指针引用数组;

(四)指针引用字符串;

(五)指向函数的指针。

六、结构体与共用体

(一)结构体的基本概念和特点,结构体变量的初始化与引用;

(二)结构体数组,包括结构体数组的定义、初始化及应用;

(三)共用体的基本概念,共用体变量的引用。

七、文件

(一)文件的基本概念,包括文件类型指针FILE与文件的使用方式;

(二)文件的打开函数fopen与关闭函数fclose;

(三)文件的状态,包括feof函数和ferror函数;

(四)文件的读/写,包括fread和fwrite函数、fputc和fgetc函数、fgets与fputs函数的应用;

(五)文件的输入函数fscanf和输出函数fprintf的应用;

(六)文件的定位,包括rewind函数和fseek函数以及ftell函数的应用。

Ⅳ.参考试题

一、单项选择题(共10小题,每小题2分,共20分)

1.以下符合C语言语法的实型常量是( )。

A.5E-3

B.1.2E0.5

C.3.14.159E

D.E15

2.putchar函数可以向终端输出一个( )。

A.整型变量表达式

B.字符或字符型变量值

C.字符串

D.实型变量值

3.若有以下定义和语句

char c1=’b’,c2=’e’;

printf(”%d,%c\n ”,c2-c1,c2-‘a’+’A’);

则输出结果是( )。

A.2,M

B.3,E

C.2,E

D.输出项与对应的格式控制不一致,输出结果不确定

4.为了避免嵌套的条件语句if-else的二义性,C语言规定:else与( )配对。

A.编排位置相同的if

B.其之前最近的if

C.其之后最近的if

D.同一行上的if

5.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为( )。

A.0

B.1

C.2

D.7

6.在C语言中,以下错误的描述是( )。

A.break语句不能用于循环语句和switch语句外的任何其它语句

B.在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环

C.在switch语句中使用break语句或continue语句的作用相同

D.在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

7.在C语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上传递给形参的是( )。

A.数组中全部元素的值

B.数组的第一个元素值

C.数组元素的个数

D.数组首地址

8.若有说明:int a[][4];则a[i][j]前有( )个元素。

A.j*4+i

B. i*4+j+1

C.i*4+j-1

D.i*4+j

9.若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为6的表达式是( )。

A.*p+6

B.*(p+6)

C.p+5

D.*p+=5

10.有如下程序:

int main( )

{int n=9;

while ( n>5) {n-- ; printf(“%d”, n); }

return 0;}

该程序的输出结果是( )。

A.8765

B. 876

C.9876

D.987

二、填空题(请将正确答案填写在括号内。每空2分,共10分)

1.以下函数的功能是:求x的y次方,请填空:

double fun ( double x , int y)

{ int i ; double z;

for ( i=1 , z=x ; i<y ;="" i++="" )="" z="z*(" );

return z ;

}

2.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是( )

int w[10]={23,54,10,33,47,98,72,80,61},*p=w。

3.设有以下定义的语句:

int a[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

则*(*(p+2)+1)值为( )。

4.设有以下程序:

int main ( )

{ int a,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1= =&m;

b=( *p1) / (*p2)+7;

printf (“a=%d \ n” ,a);

printf (“b=%d \ n” ,b);

return 0;}

执行该程序后,a的值为( ),b的值为( )。

三、程序阅读题(写出以下程序运行的结果,每小题5分,共25分)

1.以下程序的运行结果是:

#include

int main()

{ int a,b,c,d;

unsigned u;

a=12;b=-24;u=10;

c=a+u;d=b+u;

printf("a+u=%d,b+u=%d\n",c,d);

return 0;}

2.以下程序的运行结果是:

#include

int main()

{ int i, k=0, s[10]={1,2,3,4,5,6,7,8,9,10};

for(i=0;i<10;i++)

if(i%2) k+=s[i];

for(i=i-1;i>=0;i--)

if(i%5= =0) printf(“%d\t”,s[i]);

printf(“%d\n”,k);

return 0;}

3. 以下程序的运行结果是:

#include

int main()

{ char s[]={"12345"};

void sub_s1(char s[],int n) ;

void sub_s2(char s[ ],int n);

sub_s1(s,5);sub_s2(s,6);

return 0;

}

void sub_s1(char s[],int n)

{ int i,j;

for(i=0;i<n;i++)< p="">

{ for(j=0;j<i;j++) p="" printf(?%c?,s[j%5]);

printf("\n");

}

}

void sub_s2(char s[ ],int n)

{ int i,j;

for(i=0;i<n;i++)< p="">

{ for( j=i;j<n;j++) p="" printf(?%c?,s[j%5]);

printf("\n");

}

}

4. 以下程序的运行结果是:

#include

void swap(int *,int *);

int main()

{

int a=5, b=7, *ptr1, *ptr2;

ptr1=&a, ptr2=&b;

swap (ptr1,ptr2);

printf("*ptr1=%d,*ptr2=%d\n",*ptr1,*ptr2);

printf("a=%d,b=%d\n",a,b);

return 0;

}

void swap (int *p1, int *p2)

{

int p;

p=*p1;

*p1=*p2;

*p2=p;

}

5.以下程序的运行结果是:

#include

int main( )

{

FILE *fp;

int i,k=0,n=0;

fp=fopen("d1.dat","w");

for(i=1;i<4;i++)

fprintf(fp, "%d",i);

fclose(fp);

fp=fopen("d1.dat","r");

fscanf(fp, "%d%d",&k, &n);

printf("%d,%d\n",k, n) ;

fclose(fp);

return 0;}

四、程序设计题(每小题15分,共45分)

1.编写程序实现,假设有十个人,每个人年龄不同,用冒泡法将他们的年龄从小到大排列并输出。从键盘输入十个人的年龄。要求排序过程用函数实现。

2.编写程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。要求在主函数中输入字符串及m的值,并输出复制结果,在被调函数中完成复制。

3.定义N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a数组中的值为:

则返回主程序后s的值应为3.375。

Ⅴ.参考答案

一、单项选择题(共10小题,每小题2分,共20分)。

1.A 2.B 3.B 4.B 5.C 6.C 7.D 8.D 9.D 10.A

二、填空题(每空2分,共10分)

1.x

2.*(p+5)

3.60

4.0; 7

三、程序阅读题(每小题5分,共25分)

1.a+u=22,b+u=-14

2.6 1 30 (注:6和1后面是7个空格)

3.

1

12

123

1234

123451

23451

3451

451

51

4.*ptr1=7,*ptr2=5

a=7,b=5

5.123,0

四、程序设计题(每小题15分,共45分)

1.参考答案

#include

int main()

{

int a[10];

int i;

void sort(int array[]);

printf("print 10 numbers:\n");

for (i=0;i<10;i++)

scanf("%d",&a[i]);

printf("\n");

sort(a);

for(i=0;i<10;i++)

printf("%d ",a[i]);

printf("\n");

return 0;

}

void sort(int a[])

{

int i,j,t;

for(i=0;i<9;i++)

for(j=0;j<9-i;j++)

if (a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

2.参考答案

#include

#define MAX 80

void copystr(char *str1,char *str2, int m)

{ int i=0;

while(str2[m]!='\0') str1[i++]= str2[m++];

str1[i]= '\0';

}

int main( )

{ int m;

char st1[MAX], st2[MAX];

printf(" please enter a string:");

scanf("%s",st2);

printf(" please enter a number:");

scanf("%d",&m);

copystr( st1, st2,--m);

printf("%s\n",st1);

return 0;

}

3.参考答案

#include

#define N 5

int main()

{

int i,j;

int C_array[N][N];

float fun(int a[N][N]);

float ave;

for(i=0;i<n;i++)< p="">

{

for(j=0;j<n;j++)< p="">

{

scanf("%d",&C_array[i][j]);

}

}

ave=fun(C_array);

printf("%f",ave);

return 0;}

float fun(int a[N][N])

{

int i,j;

float sum=0;

float ave;

for(j=0;j<n;j++)< p="">

{

sum+=a[0][j];

sum+=a[N-1][j];

}

for(i=1;i<n-1;i++)< p="">

{

sum+=a[i][0];

sum+=a[i][N-1];

}

ave = sum/(4*N-4);

return ave;

}

Ⅵ.参考书目

1.《C程序设计教程(第三版)》,谭浩强著,清华大学出版社,2018.8。


免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。邮箱:zzqihangpx@163.com 电话:0371-60903400

天任考研微信群

扫码加入2026考研群
获取考研咨询一对一服务


热报课程

报考信息


备考指南


报名咨询电话:0371-60904200
Copyright©2006-2020  郑州市天任教育科技有限公司 豫ICP备2024092498号

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。电话:0371-60904200