《高级语言程序设计大作业》_2011(Part 1)
- 格式:doc
- 大小:166.00 KB
- 文档页数:7
2011年10月全国自考高级语言程序设计试题高级语言程序设计(一) 试题课程代码:00342一、单项选择题(本大题共1 5小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.自定义标识符由字母、数字或下划线组成,且第一个字符必须是( )A.数字B.字母或数字C.数字或下划线D.字母或下划线2.运算符优先级符合由高到低排列的一组是( )A.+、!=、&&、=B.&&、!=、+、=C.!=、+、=、&&D.&&、=、!=、+3.转义字符中正确的是( )A.'\'B. '\xyz'C. '\\'D. '\820'14.下列程序段执行后x、y和z的值分别是( )int x=10,y=20,z=30;if(x>y)z=x;x=y;y=z;A.10,20,30B.20,30,30C.20,30,10D.20,30,205.下列程序段执行后的输出结果是( )int k=4,a=3,b=2,c=l;printf("%d\n",k<a? k:c<b? c:a);A.1B.2C.3D.46.关于for(表达式1;表达式2;表达式3),叙述正确的是( )A.表达式1不可以缺省B.表达式2不可以缺省C.表达式3不可以缺省D.三个表达式都可以缺省7.设int *p[4];,则标识符p是( )A.整型数组名B.指针数组名C.指针函数名D.指向整型变量的指针8.在循环结构中,continue语句的作用是( )A.继续执行本次循环B.提前退出多重循环C.提前结束本次循环D.提前退出本重循环9.数组定义及初始化正确的是( )A.char a[5]={};B.int a[5]={0,1,2,3,4,5};C.char a={"string"};D.char a[]={'0','1','2','3','4','5'};1O.设int m;,与while(!m)等价的是( )A.while(m!=0)B.while(m==1)C.while(m==O)D.while(m!=1)11.设char s1[]="12345",s2[]="1234";,执行语句printf("%d\n",strlen(strcpy(s1,s2)));后的输出结果是( )A.4B.5C.9D.1O12.下列不属于C语言数据类型的保留字是( )A.realB.voidC.floatD.double13.设int i,j=7,*p=&j;,与赋值语句i=j;等价的是( )A.i=&p;B.p=*&j;C.p=&j;D.i=*p:14.正确表示数学关系式x≥y≥z的C语言表达式是( )A.x>=y>=zB.(x>=y)&&(y>=z)C.(x>=y)&(y>=z)D.(x>=y)||(y>=z)15.设struct student{char name[10];char sex;}stu;,则sizeof(stu)的值是( )A.2B.1OC.11D.12二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
计算机公选课《高级级语言程序设计》作业1.已知运费单价:小于等于50kg为0.65元,大于50kg为1.65元。
当行李重时为65kg时,求运费。
2.void main()3.{4.float a,w;5.a=65;6.7.if (a<=50)8.w=0.65*a;9.else10.w=1.65*a;11.printf("运费是%f",w); }2.根据学生成绩判别为哪个档次。
输入学生成绩为85分。
void main(){int s;s=85;if (s>=90)printf("优秀");if (s>=80 && s<90)printf("良好");if (s>=60 && s<80)printf("合格");if (s<=0 || s>100)printf("error");}3.求水仙花数。
水仙花数如13+23+53=125 void main(){int a,b,c,k;for (k=100;k<1000;k++){a=k/100;b=(k-100*a)/10;c=(k-100*a-10*b);if (k==a*a*a+b*b*b+c*c*c){printf ("%d\n",k);}}}4.求回文数。
如252,474,919等void main(){int a,b,c,k;for (k=100;k<1000;k++){a=k/100;b=(k-100*a)/10;c=(k-100*a-10*b);if (a==c){printf ("%d\n",k);}}}5.求5的阶乘#include"stdio.h"void main(){int a,s;s=1;for (a=1;a<=5;a++){s=s*a;}printf("5的阶乘是%d",s);}6.求1~100相加之和void main()s=0;for (a=1;a<=100;a++){s=s+a;}printf("1加到100是%d",s);}7.打印图形(1)******void main(){int a,s;for(a=1;a<=3;a++){printf("\n");for(s=1;s<=a;s++)printf("*");printf("\n");}}*********void main(){int a,s;for(a=1;a<=3;a++){printf("\n");for(s=1;s<=3;s++)printf("*");printf("\n");}}8.采用数组及循环,对a[10]数组输入数据,并按从小到大排序并输出结果。
大作业
目标:完成一个可以独立使用的数据库应用系统,包括“数据库+应用程序”。
要求:
(1)数据管理系统采用SQL Server 2000,应用程序使用Visual Basic 6.0开发。
(2)系统包括一个数据库,不少于5个表,符合第三范式,视图个数不限。
(3)数据库中应有保存用户名和密码的表,并在应用程序的界面上体现不同用户的不同权限。
(3)应用软件包含以下基本功能:添加数据、修改数据、删除数据和尽量方便的查询、统计、分类汇总功能。
界面上尽量多用选择,少用直接输入。
(4)数据库中既保存当前数据,也保存历史数据,并提供历史数据的查询。
(5)程序完成后,撰写“使用手册”二份,分别用于系统管理员和最终用户。
可选题目:
(1)机动车与驾驶员信息管理系统
(2)长途营运客车信息管理系统
(3)Restaurant综合管理系统
(4)Hotel管理系统
(5)机动车违法查询系统
(6)交通事故信息管理系统
(7)超市进销存系统
(8)家庭收支管理系统
(9)图书馆图书借阅管理系统
(10)科研项目管理系统
(11)银行个人业务管理系统
(12)火车票销售管理系统
开发流程(供参考)
(1)需求分析,结构设计,功能设计
(2)创建数据库→表→约束→视图
(3)创建角色→用户→权限
(4)开发应用程序
(5)撰写使用说明
(6)上交数据库(的备份),VB源程序和可执行文件。
2011年1月高级语言程序设计(一)试题一、单项选择题(本大题共15小题,每小题2分,共30分)1.下列运算符的操作数必须是整型的是(C )A./B.!C.%D.=2.可用于C语言用户标识符的是( D )A.void,defineB.2c,DOC.For,-abcD.as_b3,_1233.函数调用语句fun(fun(a,a+b,a+c),(a,b,c),5);中函数fun的参数个数是( A )A.3B.4C.5D.64.设int a=0,b=1;,下列语句错误..的是( D )A.a=b=10;B.a++;C.b+=a;D.(a+b)++;5.能正确表达数学关系式0≤x<20的C语言表达式是( C )A.0<=x<20B.x>=0||x<20C.x>=0&&x<20D.!(x<=0)&&x<206.正确的C语言字符常量是( A )A.'\\'B. '65'C.“A”D. '/n'7.设char s[ ]=“1234567”;,执行printf(“%d,%d\n”,strlen(s),sizeof(s));后的输出结果是( B )A.7,7B.7,8C.8,7D.8,88.设int a[ ]={12,34,56,78},*p=a;,下列表达式的值为56的是( B )A.p[1+2]B.*(a+2)C.a[3]D.*(p+3)9.对二维数组正确定义并初始化的是( A )A.int a[ ][3]={1,2,3,4,5,6};B.int a[3][3]=(1,2,3,4,5,6);C.int a[3][ ]={{l,2,3},{4,5,6}};D.int a[3][3]={a,b,c,d,e,f,g};10.设double x=5.168;,执行printf(“%5.3f\n”,(int)(x*10+0.5)/10.0);后的输出结果是( C )A.5.218B.5.210C.5.200D.5.16811.关于函数,下列叙述正确的是( B )A.一个函数中可以定义其它的函数B.C程序总是从main()函数开始执行C.main()函数也可以被其它函数调用D.一个C程序可以有多个main()函数12.设char ch=…a‟;,执行printf(“%d,%c\n”,ch,ch+2);后的输出结果是( A )A.97,cB.97,99C.a,cD.a,a+213.下列叙述正确的是( C )A.continue语句的作用是跳出循环体B.while循环语句的循环体至少执行一次C.do-while循环语句的循环体至少执行一次D.switch语句中的每个case语句组必须含有break语句14.设struct{int x;int y;}m[2]={7,3,2,1};,执行printf(“%d\n”,m[0].x/m[1].x*m[0].y);后的输出结果是( B )A.10.5B.9C.8.0D.715.设int a=l,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是( D )A.0B.1C.2D.3二、填空题(本大题共10小题,每小题2分,共20分)16.表达式3 !=6的值是1。
一、选择题:(共20题,每题1.5分,共30分)1 A2 A3 A4 B5 B6 A7 B8 C9 C 10 D11 C 12 C 13 B 14 D 15 C16 D 17 D 18 A 19 D 20 A1. C语言属于( A )A.高级语言 B. 低级语言C.中级语言 D. 机器语言2. 下列全部属于合法的用户标识符的是( A )A.A1 P_0 dS B. float 2la _A C. *a hy kk D. _123 temp main3. C语言中运算对象必须是整型的运算符为( A )A.% B. / C.= D. <=4. 设有int i; char c; float f; 以下结果为整数的表达式是( B )A.i+f B. i/c C.c+f D. i+c+f5. 逗号表达式(a=5*3, a+20),a+15的值是( B )A.35 B. 30 C.40 D. 206. 设有语句char a = '\72'; 则变量a( A )A.包含一个字符 B. 包含两个字符C.包含3个字符 D. 说明不合法7. 若有以下定义和语句,则输出结果是( B )char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');A.2,M B. 3,E C.2,E D. 不确定8. 设有如下程序段,则下面说法中正确的是( C )int k=10;while(k=0)k=k-1;A.while循环执行10次 B. 循环是无限循环C.循环体语句一次也不执行 D. 循环体语句执行一次9. 当pi=3.1415926时,printf(" %-7.2f",pi);的输出结果是( C )(注:□代表空格)A.3.14159 B. 3.14 C.3.14□□□ D. □□□3.1410. 下列运算符中,优先级最高的是( D )A.! B. + C.|| D. ( )11. 表达式a==b&&b==c计算的优先级别是( C )A.((a==b)&&b)==c) B. (a==(b&&b))==c C.(a==b)&&(b==c) D. a==((b&&b)==c12. 已知x=45, ch=‟B‟,y=0;则表达式(x>=y && ch<‟b‟ && ! y)的值是( C )A.0 B. 语法错C.1 D. “假”13. 下列关于switch语句和break语句的结论中,正确的是( B )A.break语句是switch语句的一部分B.在switch语句中可以根据需要使用或不使用break语句C.在switch语句中必须使用break语句D.break语句不能在switch语句中使用14. 若变量c为char类型,能正确判断出c为小写字母的表达式是( D )A.'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z') C.('a'<=c)and ('z'>=c) D. (c>= 'a')&&(c<= 'z')15. 执行语句for ( i=0; i++<3; ); 后,变量i的值为( C )A.2 B. 3 C.4 D. 516. 已知:int a[10]; 则对a数组元素的正确引用是( D )A.a[10] B. a[3.5] C.a(5) D. a[9-9]17. 对字符数组str赋初值,str不能作为字符串使用的一个是( D )A.char str[]="shanghai"; B. char str[]={"shanghai"};C.char str[9]={'s','h','a','n','g','h','a','i'}; D. char str[8]={ 's','h','a','n','g','h','a','i'};18. 以下对C语言函数的有关描述中,正确的是( A )A.在C语言中,调用函数时,根据实参传递给形参值的不同,通常有值传递方式和地址传递方式两种。
2011-2012学年第1学期2011级《高级语言程序设计》考试试题(A卷)考试时间:2012年01月班级学号姓名✧请将答案写在答题纸上,写清题号,不必抄题,字迹工整、清晰;✧请在答题纸和试题纸上都写上你的班级、学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来;✧每个题目必须添加必要的注释,程序命名和书写尽可能规范。
一、[20分] 编写函数,判定正整数m和n(均至少为2)是否满足:数m为数n可分解的最小质因数(数n可分解的最小质因数为能整除n的最小质数)。
//提示:判定m为质数且m是n的最小因数。
二、[20分] 编写函数,对给定的整型数组a的前n个元素排序,使得所有正整数均出现在负整数和0之前。
//提示:排序结果中,正整数之间的出现顺序不限制,负整数和0之间的出现顺序不限制。
例如:原数组为-1、4、-3、0、2、1、-9、7,则排序后可以为4、2、1、7、0、-1、-3、-9。
三、[20分] 编写递归函数,实现按照如下公式计算的功能。
//提示:如果独立编写阶乘运算函数,可以不考虑存储溢出,默认结果类型为整型。
f(n)=0/(1*2!)+1/(2*3!)+2/(3*4!)+3/(4*5!)+…+n/((n+1)*(n+2)!),其中:n为自然数。
四、[20分] 定义一个表示学生的结构体(包含3个字段:姓名、性别、成绩),编写函数,将下图所示的结构体数组s中的前n个学生的信息,存储到当前目录下的output.txt文件中。
//图1 管理学生信息的结构体数组例如:一个学生的信息为ZhangSan、true、83,另一个学生的信息为LiSi、false、76。
五、[20分] 定义一个单链表(每个结点包含2个字段:整数信息、后继指针),如下图所示。
编…图2 单链表例如:若单链表中存储的整数信息依次为1、5、5、0、5、6、0、0、5、1,如果x为5,则得到的单链表中相应信息依次为1、0、6、0、0、1。
全国2018年10月高等教育自学考试高级语言程序设计(一)试题课程代码:00342一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.以下属于c语言保留字的是()A・ fopen B・ includeC・ get D・ unsigned2.C语言中,错误的int类型的常数是()• •A・1E5 B・0C.037 D・Oxaf3.在C语言中,'a'和"a"存储所占用的字节数分别是()A・1, 1 B・1, 2C・2, 1 D・2, 24.对于数学表达式2^ + — ,正确的C语言表达式是()3sinxA. 2sqrt(x)+(a+b)/3sin(x) E ・ 2 sqil(x)+(a+b)/(3 sin(x))C ・ 2*sqrt(x)+(a+b)/3/sin(x)D ・ 2*sqit(x)+(a+b/3 *sin(x))5.设iiit x=10. a=0, b=25:»条件表达式x<l?a+10 : b的值是()A・0 E・1C・10 D・256. C语言中,下列运算符优先级最高的是()A. !B. %C・>> D.==7. sizeof(double)是( )A.函数调用B. int型表达式C. double型表达式D.非法表达式8 •设有以下程序段:iiit a=l, b=10, c=l,x;x=a&&b||++c;printf (“ %d, %d\n"兀c);执行后输出的结果是() A. 0, 0 B ・ 0, 1C ・ 1, 0D ・ I, 19•设mtx;,则以卞语句中错误的输入是( )• •A ・ scanf (rr %d" ,x);E ・ scanf (“ %d " ,&x):C ・ scanf (“ %o " ,&x):D. scanf(r/ %x 〃,&x):10.设 int (*P) ();, p 的含义是( )A ・指向一维数组的指针变量B. 指向二维数组的指针变量C. 指向一个整型变量的指针变量D. 指向整型函数的指针变量11.在C 语言中,运算符"="和"=="的功能分别是( ) A.关系运算和赋值运算 E.赋值运算和关系运算 c ・都是关系运算 D ・都是赋值运算 12.设 intx [] ={1,2,3,4,5}, *p=x ;,则值为 3 的表达式是( )A ・ p+=2, *p++B ・ p+=2, *++pC. p+=2,p 卄D. p+=2, ++*p13.设 foi (i=0,j=10; (j>0)&&(i<4);i++J~);,该语句的循环次数是() A ・0 B ・3C ・4 14.设函数定义如卞:D ・无限float fl (float a, float b){return (a+b);}若有float x=l.l,y=2.2;,则以下语句中正确的函数调用是( ) A ・ priiitf (,z %f" ,fl(x));E ・ printf ( %f" ,fl (&x 、y));C・ pnntf(" %f" ,fl(*x,*y));D・ piiiitf (,z %f",fl(x、y));15.结构型变量占用内存的字节数是()A.各成员占用内存字节数之和B.第一个成员占用的内存字节数C.占用内存最人成员所需的字节数D.最后一个成员占用的内存字节数16・设enum color {purple,black, red. white} d;,若将d赋值为枚举常量red,则正确的是A ・ d=(enum color)2; C・ d=〃red;B ・ d=(enum color)3; D・ d=color;17.若main ()函数带参数,参数个数最多是()A・0 B・1D・318.设宏定义#defiiie PI 3.1415926,用宏名PI替换的是()A.算术表达式B.字符串C.单精度实型数D.双精度实型数19•调用系统函数fabs时,应选用的文件包含是()A・存include " stdio.hB・ ^include " string.h C・ ^include " ctvpe.h" D・ ^include " math.h"20.设stmct st{ mt 1;mt j;} *P;main (){C・2Stmct stm[ ]={{10. 1}, {20, 2}, {30, 3}}; p=m;printf (r/ %d\n",(*++p)・j);则程序的输出结果是( )A・1 B・2C・3 D・10二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
课程简介
华南理工大学本科课程教学大纲基本格式
《高级语言程序设计大作业》教学大纲
总学时:64理论课学时:实验课学时:64
一、课程的性质
实践课
二、课程的目的与教学基本要求
本课程是学生学完《高级语言程序设计》课程后,必须完成的一门实践课程。
目的是通过本课程,培养学生实际分析问题、编程和动手能力,最终目标是通过大作业的形式,帮助学生系统掌握《高级语言程序设计》课程的主要内容,为后续的专业课程的学习打好坚实的基础,使学生在以后的学习和工作中,能够自如地利用程序设计语言完成各种研究、设计和开发任务。
本课程要求学生利用在高级语言程序设计课程里所学的知识和原理,在任课教师的指导下,完成一些设计项目。
学生的成绩根据所完成的设计项目情况、作业报告的质量等方面来评定。
三、课程适用专业
计算机类专业
四、课程的教学内容、要求与学时分配
本课程由2个作业组成:
1、结构化程序设计大作业
要求:(1)针对实际问题,用结构化方式进行分析和设计;(2)正确定义和使用基本数据结构,包括数组、链表等;(3)用高级语言编写程序,
设计测试用例测试并完善程序;(4)书写作业报告。
2、面向对象程序设计大作业
要求:(1)针对实际问题,用面向对象思想分析和建立应用程序模型;
(2)设计一个不少于3层类体系结构的类库;(3)编写界面简洁、功能实用的类库应用程序;(4)书写作业报告。
●两个作业的学时分配如下表所示:
五、教材和主要参考资料
●《C++ How to Program》( Fourth Edition), H. M. Deitel, P.J. Deitel,
电子工业出版社
六、课程考核方式
根据所完成的设计项目情况以及作业报告的质量来评定。
参考评价标准
1) 程序比较复杂,全部作对并能进行正确测试,文档齐全给80~85分。
能对局部进行完善,即可加分。
2) 全部作对但测试欠缺,给75~80分。
程序有部分错误,根据情况给70~75
分。
3) 为鼓励学生的积极性,允许相互讨论,鼓励他们将这个实验完成,但不允
许复制代码。
如果是有雷同现象,给予不及格。
归档材料
(1)作业报告。
(2)源程序代码(cpp文件,h文件,dsp文件,dsw文件), 可执行程序。
华南理工大学课程考核双向细目表
课程名称:《高级语言程序设计大作业》
课程代码:
考核对象、课程类别:计算机类专业
开课单位:计算机科学与工程学院
Part 1 Maze Traversal
1. (Maze Traversal) The grid of hashes (#) and dots (.) in Fig.1 is a two-dimensional array representation of a maze. In the two-dimensional array, the hashes represent the walls of the maze and the dots represent squares in the possible paths through the maze. Moves can be made only to a location in the array that contains a dot.
# # # # # # # # # # # #
# . . . # . . . . . . #
. . # . # . # # # # . #
# # # . # . . . . # . #
# . . . . # # # . # . .
# # # # . # . # . # . #
# . . # . # . # . # . #
# # . # . # . # . # . #
# . . . . . . . . # . #
# # # # # # . # # # . #
# . . . . . . # . . . #
# # # # # # # # # # # #
Fig. 1 Two-dimensional array representation of a maze.
There is a simple algorithm for walking through a maze that guarantees finding the exit (assuming that there is an exit). If there is not an exit, you will arrive at the starting location again. Place your right hand on the wall to your right and begin walking forward. Never remove your hand from the wall. If the maze turns to the right, you follow the wall to the right. As long as you do not remove your hand from the wall, eventually you will arrive at the exit of the maze. There may be a shorter path than the one you have taken, but you are guaranteed to get out of the maze if you follow the algorithm.
Write recursive function mazeTraverse to walk through the maze. The function should receive arguments that include a 12-by-12 character array representing the maze and the starting location of the maze. As mazeTraverse attempts to locate the exit from the maze, it should place the character X in each square in the path. The function should display the maze after each move, so the user can watch as the maze is solved.
2.(Generating Mazes Randomly) Write a function mazeGenerator that takes as an argument a two-dimensional 12-by-12 character array and randomly produces a maze. The function should also provide the starting and ending locations of the maze. Try your function mazeTraverse from Exercise 1, using several randomly generated mazes.
3.(Mazes of Any Size) Generalize functions mazeTraverse and mazeGenerator of Exercise 1 and Exercise 2 to process mazes of any width and height.
附件二: 参考作业报告模板
《高级语言程序设计》作业报告
作业名称:
学院
专业
学生姓名
任课教师
提交日期
一、问题描述
简述题目要解决的问题是什么,规定软件做什么。
二、系统设计
1、体系设计
2、应用程序设计
三、程序测试
1. 设计测试用例
2. 程序测试结果
四、使用说明
五、收获体会及建议。