武汉工程大学专升本《程序设计基础》.doc_第1页
武汉工程大学专升本《程序设计基础》.doc_第2页
武汉工程大学专升本《程序设计基础》.doc_第3页
武汉工程大学专升本《程序设计基础》.doc_第4页
武汉工程大学专升本《程序设计基础》.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉工程大学2007年专升本程序设计基础考试大纲一、考试基本要求掌握高级程序设计语言的基本概念、基本理论及程序设计的基本方法与编程技巧,掌握进行科学计算的一般思路,具有一定的抽象思维和逻辑推理能力。能利用所学知识,具备用计算机解决和处理实际问题的思维方法与基本能力。二、考试方法闭卷笔试。三、考试时间120分钟。四、试卷分值试卷满分100分。五、题型及比例单项选择题:20%填空题:10%读程序写结果:20%程序填空:20%编写程序:30%六、试卷考试内容及要求1. C语言的基本概念 (1) 了解C语言的发展及特点。 (2) 掌握程序的基本结构与书写格式。 (3) 掌握程序的基本概念及程序开发基本过程。(4) 理解结构化程序设计的思想和方法.2. 数据类型 (1) 掌握C语言的字符集及常用词法符号。 (2) 理解C语言的数据类型(基本类型、构造类型、指针类型、空类型)。(3) 掌握常量及变量的定义方法。(4) 掌握标准输入/输出函数的使用方式。3. 运算符和表达式(1) 掌握运算符的种类、运算优先级、结合性。(2) 掌握各种表达式类型(赋值表达式、算术表达式、逗号表达式、条件表达式、关系表达式、逻辑表达式等)及求值规则。(3) 掌握不同类型数据间的转换与运算。4. 语句(1) 掌握选择语句的使用方法。(2) 掌握循环语句的使用方法。(3) 掌握continue、break语句。(4) 理解循环的嵌套调用。5. 数组(1) 掌握一维数组定义、初始化和引用。(2) 掌握排序算法、查找算法和插入算法。(3) 理解二维数组的定义、初始化和引用。 (4) 掌握字符数组的使用,了解字符串常用函数。6. 函数(1) 掌握常用库函数的正确调用方法。 (2) 掌握自定义函数的定义方法。 (3) 掌握形式参数与实际参数的区别及参数的传递方式。 (4) 掌握函数的类型及其返回值。 (5) 掌握函数的调用方法,理解函数的嵌套调用、递归调用。 (6) 掌握局部变量和全局变量,理解变量的作用域和生存期。 (7) 理解变量的存储类型。 (8) 了解内部函数和外部函数。7. 指针(1) 掌握指针的概念及指针的定义。(2) 掌握指针与地址运算符及指针的运算。(3) 掌握指向变量、数组、字符串的指针变量。(4) 理解指针变量作函数参数和指针型函数。(5) 理解指针数组和指向函数的指针。8. 编译预处理 (1) 掌握编译预处理的概念和特点。(2) 理解不带参数的宏定义及其使用。(3) 理解带参数的宏定义及其使用。 (4) 掌握“文件包含”的概念和使用。(5) 了解条件编译及其使用。9. 结构与联合(1) 掌握结构类型数据的定义方法。(2) 掌握结构型数据的引用方法。(3) 了解联合类型数据的定义方法和引用方法。(4) 理解指向结构体的指针变量。10. 文件(1) 掌握定义和使用文件指针的方法。(2) 掌握文件的打开和关闭方法。(3) 掌握文件的读写方法。七、考试内容大致比例1. 基础知识部分 20%2. 数组 20%3. 函数 20%4. 指针 15%5. 结构与联合 20%6. 文件 5%八、试题难易度大致比例 1. 容易题 30% 2. 中等难度题 50% 3. 较难题 20%九、参考书目1. C语言程序设计,谭浩强编,清华大学出版社。2. 程序设计基础,吴文虎编,清华大学出版社。程序设计基础考试样卷一、单项选择题(每小题2分,共计20分,将答案写在题中横线上)1. 在C语言中,字符型数据在内存中的存储形式是。A. 补码 B. 反码 C. 原码 D. ASCII码2. 下列变量名中合法的是。A. B.C.Tom B. 3a66 C. _6a7b D. $ABC3. 以下语句输出的结果是。#include void main( )printf(“%d”,null);A. 0 B. 编译出错,变量无定义 C. -1 D. 14. 为避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与配对。A. 同一行上的if B. 其之后最近的ifC. 其之前最近的if D. 缩排位置相同的if5. 以下程序的执行结果是。#include void main( ) int i,sum;for(i=1;i=3;sum+) sum+=i;printf(“%dn”,sum);A. 6 B. 3 C. 死循环 D. 06. 当执行以下程序时,。#include void main( ) int y=-1;do y-; while(-y); printf(%dn,y-); A. 循环体将执行一次 B. 循环体将执行两次 C. 循环体将执行无限次 D. 系统将提示有语法错误7. 若有定义int a45,则元素a23是数组中第 个元素。A. 13 B. 14 C. 8 D. 98. 在函数调用语句fun1(fun2(x,y),(x,y),z=x+y);中,fun1的实际参数的个数是 。A. 3 B. 7 C. 4 D. 59. 以下叙述中不正确的是 。A. 在不同的函数中可以使用相同名字的变量 B. 函数中的形式参数是局部变量 C. 在一个函数内定义的变量只在本函数范围内有效 D. 在一个函数内的复合语句中定义的变量在本函数范围内有效10. p1指向某个整型变量,要使指针p2也指向同一变量,哪一个语句是正确的 。A. p2=*&p1; B. p2=*p1; C. p2=&p1; D. p2=*p1;二、填空题(每小题1分,共10分,把答案填在题中横线上)1. 一个C语言程序一般由若干个函数构成的,程序中至少应包含一个 。2. x是int 类型变量,则执行下列语句x=7;x+=x-=x+x; 后x的值是 。3. 设有 int x=13; 则表达式 (+x * 1/3) 的值是 。4. 若 a=13、b=25、c=-17,条件表达式 (y=(ab)?a:b)c)?y:c 的值为 。5. 在函数内部定义只在本函数内有效的变量是 。6. 函数直接或者间接地自己调用自己,被称为函数的 。7. 在C语言中,要读取某个数据文件里的数据,首先要将该文件处于打开状态,即对该文件进行 操作。8. 定义语句为 char a=”hangzhou”,*p=a,语句 for(int i=0; *p!=0; p+,i+); 执行后i的值为 。9 对宏定义语句“#define f(x,y) printf(x,y)”的引用 f(”%dn”,m); 置换展开后为 。10. 释放由p所指向的内存区的语句为 。三、读程序写结果(每小题5分,共20分,把答案填在题中“运行结果”处)1. 下列程序的输出结果是:#include void main() int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2); 运行结果:2. 以下程序的执行结果是:#include void main() struct studchar name20;int age;char sex; student=louis,10,m;printf(%s,%d,%c,,student.age, student.sex);运行结果:3. 以下程序运行后,输出结果是:#include void main ( ) int y=18,i=0,j,a8; do ai=y%2;i+; y=y/2; while(y=1); for(j=i-1;j0;j-) printf(“%d”,aj); printf(n); 运行结果:4. 以下程序运行后,输出结果是:#includevoid main()int a5=1,2,3,4,5;int *p=a;printf(%d,,*+p); printf(%d,,*p+);printf(%d,a2);运行结果:四、程序填空。根据下列各题题意填空,填写在程序中的划线处。(每空2.5分,共20分) 1. 输入2个整数,输出它们的最小公倍数和最大公约数。 #include void main( ) int m,n,gbs,gys; scanf( ); for(gbs=m; ; gbs=gbs+m); gys= 2. 输入若干个学生的姓名、学号、数学、英语、计算机成绩到文件中student.dat。 #include void main() char name8,numb8; scanf(%d,&n); for(i=1;i=n;i+) scanf(%s%s%d%d%d,name,numb,&m,&e,&c); fprintf(fp,%s %s %d %d %dn,name,numb,m,e,c); ; 五、编写程序(每小题10分,共30分)1. 编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。2. 编程,用递归方法求n!。3. 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score3,用主函数输入这些记录,用print函数输出这些记录。程序设计基础考试样卷参考答案与评分标准一、单项选择题(每小题2分,共计20分)12345678910DCBCCCBADA二、填空题(每小题1分,共10分,把答案填在题中横线上)1. 一个C语言程序一般由若干个函数构成的,程序中至少应包含一个 main()函数 。2. x是int 类型变量,则执行下列语句x=7;x+=x-=x+x; 后x的值是 -14 。3. 设有 int x=13; 则表达式 (+x * 1/3) 的值是 4 。4. 若 a=13、b=25、c=-17,条件表达式 (y=(ab)?a:b)c)?y:c 的值为 -17 。5. 在函数内部定义只在本函数内有效的变量是 内部变量 。6. 函数直接或者间接地自己调用自己,被称为函数的_ 递归调用 _。7. 在C语言中,要读取某个数据文件里的数据,首先要将该文件处于打开状态,即对该文件进行 open(或打开文件) 操作。8. 定义语句为 char a=”hangzhou”,*p=a;,语句 for(int i=0; *p!=0; p+,i+); 执行后i的值为 8 。9 对宏定义语句“#define f(x,y) printf(x,y)”的引用 f(”%dn”,m); 置换展开后为 printf(”%dn”,m); 。10. 释放由p所指向的内存区的语句为 free(p) 。三、读程序写结果(每小题5分,共20分,把答案填在题中“运行结果”处)1. 运行结果:3 32. 运行结果:louis 10 m3. 运行结果:10014. 运行结果:2 , 2 , 3四、程序填空。根据读下列各题题意填空,写入在程序中的划线处。(每空2.5分,共20分)1.(1) ”%d%d”,&m,&n (2) gbs%n!=0(3) m*n/gbs; (4) printf(”%d %dn”,gbs,gys);2. (1) FILE *fp;(2) int m,e,c,i,n;(3) fp=fopen(”student.dat”,”w”); (4) fclose(fp);五、编写程序(每小题10分,共30分)1. 编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。参考程序如下:#include stdio.h #define N 50 void main() float x; unsigned int s1,s2,s3,i; / 正确定义变量,得2分。 s1=s2=s3=0; for(i=1;i=N;i+) / 正确使用循环,得2分。 scanf(%f,&x); /正确输入数据,得1分。 if(x0) s1+; else if(x= =0) s2+; else s3+; /三个计数器每个正确累加,得3分。 printf(负数%u个,零%u个,正数%u个n,s1,s2,s3); /正确输出,得2分。 2. 编程,用递归方法求n!。参考程序如下:#include long fact(int m) /函数头部定义正确,得1分。 long p; if (m=0|m=1) p=1; /正确定义结束条件,得1分。else p=m*fact(m-1); /正确写出递归表达式,得2分。 return(p); /正确返回结果,得1分。void main()int n;long x;scanf(“%d”,&n); /输入,得1分。x=fact(n); /正确调用函数,3分。printf(“n!=%ld”,x); /输出,得1分。3. 编写一个函数print,打印包含学生成绩的数组,该数组中有5个学生的数据记录,每个记录包括num,name,score3,用主函数输入这些记录,用print函数输出这些记录。参考程序如下:#include struct student char num7,name9;int score3; /正确定义结构体,得1分。void print(struct student* s,int n) /函数头部定义正确,得2分。 int i; for(i=0;in;i+) printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论