考 试 大 纲
科目代码、名称: | 865程序设计(C语言) | |
适用专业: | 085211 计算机技术、 085212 软件工程 | |
本试卷满分为150分,考试时间为180分钟。
答题方式为闭卷、笔试。
试卷由试题和答题纸组成;答案必须写在答题纸相应的位置上。
1、单项选择题,15小题,每小题2分,共30分
2、填空题,10小题,每小题2分,共20分
3、程序分析题,4小题,每小题6分,共24分
4、程序填空题,4小题,每小题6分,共24分
5、程序设计题,4小题,1~3题,每小题12分,第4小题16分,共52分
全日制专业型硕士生入学考试《程序设计(C语言)》科目考试内容包括《计算机导论》、《高级语言程序设计(C语言)》2门学科基础课程,要求考生系统掌握相关学科的基本知识、基础理论和基本方法,并能运用相关理论和方法分析、解决程序设计中的实际问题。
1.C语言常用符号
2.C语言上机调试步骤
3.C语言概况
1.常用的进位制及其转换
2.数与字符在计算机内存中的表示
3.常量
4.变量
5.常用的运算符与表达式
6.基本输入/输出操作
1.算法的概念与特点
2.算法的常用表示方法
3.结构化程序设计方法
4.C语句概述
5.选择结构程序设计
6.循环程序设计
7.综合程序设计应用
1.函数的定义
2.函数的调用与返回值
3.函数的传数传递方式
4.函数的嵌套与递归
5.变量的作用域
6.变量的生存期
7.内部函数与外部函数
8.编译预处理命令
1.一维数组的定义与使用
2.二维数组的定义与使用
3.数组的应用(排序,查找)
4.字符数组
5.指针的定义与使用
6.指针参数
1.结构类型的定义
2.结构数组
3.动态链表
1.文件概述
2.打开文件与关闭文件
3.文件的读与写
1.C++概述
2.重载函数
3.面向对象的基础知识
4.类和对象
5.构造函数
6.析构函数
7.继承与派生类
1、程序设计(C语言):《C语言程序设计》(第3版),罗坚、王声决、徐文胜、李雪斌编著,中国铁道出版社
一、单项选择题(每小题2分,共30分)
1.计算机系统是由( )组成的。
A.硬件和应用软件系统 B.硬件和操作系统软件
C.应用软件和操作系统软件 D.硬件和软件系统
2.下列叙述中,正确的是( )。
A.机箱内的声卡属于外部设备
B.操作系统只管理内存,并不管理磁盘
C.硬盘装在机箱内部,因此属于内存
D.存储在任何存储器中的信息在断电后都不会消失
3.一个ASCII码在计算机内占用( )。
A.1个字节且最高位为0 B.2个字节且最高位都为0
C.1个字节且最高位为1 C.2个字节且最高位都为1
4.若采用16bit补码表示整数,则可表示的整数范围为( )。
A.[-215,215] B.(-215,215] C.(-215,215) D.[-215,215)
5.把高级语言编写的源程序转换成可执行程序,要经过的过程叫做( )。
A.汇编和解释 B.汇编和连接 C.编译和连接 D.解释和编译
6.程序设计语言中不能选用的标识符是( )
A.word B.2π C.Hello D.sum
7.执行下列语句
int a=8,b=7,c=6;
if(a<b) if(b>c) {a=c;c=b;}
后,a,b,c的值分别是( )
A.6,7,7 B.6,7,8 C.8,7,6 D.8,7,8
8.设有变量int i=3;则下列表达式结果等于2的是( )。
A.i-- B.i%2 C.i-=1 D.i<<2
9.设int x=1 , y=2 ,z=3;则表达式y+=z--/++x的值是( )
A.3 B.3.5 C.4 D.5
10.下列语句执行后,变量a、c的值分别是( )
int x=182,a,c; c=x/100; a=x%10;
A.1,2 B.2,1 C.1.82,2 D.100,82
11.算法的每一步,必须有确切的定义。也就是说,对于每步需要执行的动作必须严格地和清楚地给出规定。这是算法的( )。
A.正确性 B.有穷性 C.确定性 D.可行性
12.程序编译时,程序中的注释部分( )
A.参加编译,并会出现在目标程序中 B.参加编译,但不会出现在目标程序中
C.不参加编译,但会出现在目标程序中 D.不参加编译,也不会出现在目标程序中
13.下列表达式的值为0的是( )
A.3%5 B.3/5.0 C.3/5 D.3-5
14.下列保留字中用于构成循环结构的是( )
A.if B.while C.switch D.default
15. 设int x=1,a=9,b=6,c=7,d=8;则执行语句:
if(a>b)if(c>d) x=2; else x=3;
后,x的值是( )
A.1 B.2 C.3 D.不确定
二、填空题(每空2分,共20分)
1.结构化程序设计的三种基本结构是顺序结构、选择结构和 。
2.与十六进制数(2A3C)等值的二进制数。
3.二进制数110110010.110转换成对应的十六进制数是。
4.面向对象程序设计的基本特点是继承、多态和。
5.设 int x=5;
则执行 x+=x-=x+x; 后x的值是。
6.设有数组定义:int MyIntArray[ ] = { 10, 20 , 30 , 40 , 50 , 60 , 70};则执行以下几个语句后s的值是。
inti,s=0;
for(i=0;i<7;i++) if (i%2==0) s+=MyIntArray[i];
7.switch后面的括号中的表达式只能是型表达式。
8.表达式a=1,a+=1,a+1,a++的值是。
9.设for(k=0;k<0;k++) ++k;则该循环共执行次。
10.设inti =5;则循环语句while (i>=2) i--;执行后,i的值为。
三、程序分析题(本大题共4小题,每小题6分,共24分)
【A-1】.写出下面程序的输出结果。
int fun(int n)
{ ints=1;
do { s*=n%10; n/=10; }
while(n);
return s;
}
void main( )
{int n=428;
n=fun(n);
printf("%d\n",n);
}
【A-2】.说明该程序的功能,并写出其输出结果。
#include <stdio.h>
void main()
{ char a[20];
int n=127,i=0;
while (n)
{ a[i++]=n%8+'0';
n=n/8;
}
i--;
while (i>=0) putchar(a[i--]);
}
【A-3】.写出下面递归程序的输出结果。
void reverse(char a[], int left, int right)
{ charx;
if (left<right)
{ x=a[left]; a[left]=a[right]; a[right]=x;
reverse(a,left+1,right-1);
}
}
void main()
{ int i;
chara[6]={‘A’,’B’,’C’,’D’,’E’,’F’};
for (i=0;i<6;i++) printf(“%c”,a[i]);
printf(“\n”);
reverse(a,0,5);
for (i=0;i<6;i++) printf(“%c”,a[i]);
printf(“\n”);
}
【A-4】.写出下面程序在屏幕中央的输出结果。
#include <stdio.h>
void main( )
{ int i,j,n=3;
for(i=1;i<=n;i++)
{ for(j=1;j<=40-i;j++) printf("");
for(j=1;j<=2*i-1;j++) printf("*");
printf("\n");
}
for(i=n-1;i>=1;i--)
{ for(j=1;j<=40-i;j++) printf(" ");
for(j=1;j<=2*i-1;j++) printf("*");
printf("\n");
}
}
四、程序填空题(本大题共4小题,每小题6分,共24分)
【A-1】.函数verge(int a[ ],intn)的功能是对长度为n的数组进行倒置,请在横线上填上适当的语句。
void verge(int a[ ],int n)
{ int x,i=0,j;
j=(1) ;
while ( (2) )
{ x=a[i];
(3) = a[j];
a[j--]=x;
}
}
【A-2】.下面程序的功能是输出整数n的各位数字之和。例如,n=1476,则输出格式为:6+7+4+1=18。
#include<stdio.h>
intmain()
{ int n=1476,k,s= (1) ;
while(n/10) //当n大于10时循环分解出各位数字
{ (2) ; //分离出个位数
s+=k; //求和
printf("%d+",k); //输出
(3) ; //去除分离出的个位数
}
s+=n; //将最后剩余的最高位加入s
printf("%d=%d",n,s);
return 0;
}
【A-3】.使二维数组a按右侧所示的形式输出数据,请在横线上填上适当的语句。
void main ( )
{int i, j, (1) ; /*第一空*/
for (i=0; i<5; i++)
for (j=0; j<5;j++) a[i][j]= (2) ; /*第二空*/
for (i=0; i<5;i++)
{ for (j=0; j<5; j++)
printf(″%2d″, a [i] [j]);
(3) ; /*第三空*/
}
}
【A-4】.函数SelectSort(int a[],int n)的功能是采用简单选择排序法对长度为n的数组a进行升序排列,请在横线上填上适当的语句。
voidSelectSort(int a[],int n)
{int i,j,k,x;
for (i=0;i<n-1;i++)
{ k=i;
for( (1) ;j<n;j++) /*第一空*/
if (a[j]<a[k]) (2) ; /*第二空*/
if(i!=k)
{ x=a[i]; a[i]=a[k]; (3) ; /*第三空*/
}
}
}
五、程序设计题(1~3题,每小题12分,第4小题16分,共52分)
1.计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小于10-4为止。
2.利用泰勒级数e=计算e的近似值。当最后一项的值小于10-5时认为达到了精度要求,要求统计总共累加了多少项。
3.采用循环程序在屏幕中央输出下图所示的九九乘法表。
4.已知学生信息包含学号(number)、姓名(name)和成绩(score)三个属性,请定义相关结构或类Student描述学生信息,编写函数void BubbleSort(),采用冒泡排序方法对学生数组s按照成绩(score)由高分到低分进行排序,并编写main()函数测试该函数功能。