C语言 网络空间安全,中国人民警察大学2020年网络空间安全学科复试大纲及参考试题...

2020考研初试已经结束,短暂放松之后,建议大家及时了解院校发布最新考研公告可以帮助考生更好的开展后续考研复试调剂工作,为帮助考研考生及时了解院校考研复试相关公告信息,中公考研小编整理“中国人民警察大学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,%cn ”,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

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=%dn",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(“%dt”,s[i]);

printf(“%dn”,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

{ for(j=0;j

printf("n");

}

}

void sub_s2(char s[ ],int n)

{  int i,j;

for(i=0;i

{ for( j=i;j

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=%dn",*ptr1,*ptr2);

printf("a=%d,b=%dn",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,%dn",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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值