2006级《高级语言程序设计》试题A卷
- 格式:doc
- 大小:77.50 KB
- 文档页数:6
四川职业技术学院2005—2006学年第 1 学期期末考试《C 语言程序设计》 (A )(供04电气、04机电班使用)考试时间:120分钟 满分:100分 命题人:陈 科…………………………………………………………………………………………一、单项选择题,答案不写入答题栏的一律不得分!(每题1.5分,共52.5分)1、结构化程序设计的3种结构是 。
A)顺序结构、选择结构、转移结构 B )分支结构、等价结构、循环结构 C)多分支结构、赋值结构、等价结构 D )顺序结构、选择结构、循环结构2、以下叙述中正确的是 。
A )C 语言比其他语言高级B)C 语言可以不用编译就能被计算机识别执行C )C 语言以接近英语国家的自然语言和数学语言作为语言的表达 形式D )C 语言出现的最晚,具有其他语言的一切优点 3、C 语言中最简单的数据类型包括 。
A )整型、实型、逻辑型B )整型、实型、字符型C )整型、字符型、逻辑型D )字符型、实型、逻辑型 4、若变量已正确定义并赋值,以下符合C 语言语法的表达式是 。
A)a:=b+1 B )a=b=c+2 C )int 18.5%3 D)a=a+7=c+b5、若变量a ,i 已正确定义,且i 已正确赋值,合法的语句是 。
A )a= =1B )++i ;C )a=a++=5;D )a=int (i ); 6、已知: int t=0;while(t=1){。
.}则以下叙述正确的是 。
A )循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对7、若变量已正确说明为float 型,要通过语句scanf ("%f %f%f ",&a ,&b ,&c );给a 赋予10.0,b 赋予22.0,c 赋予33.0,下列不正确的输入形式是 .A)10〈回车〉22<回车〉33<回车> B )10。
0,22.0,33.0〈回车> C )10。
编译原理试题及参考答案课程测试试题(04A卷)I、命题院(部):数学与计算机科学学院II、课程名称:编译原理III、测试学期:2006-2007 学年度第1 学期IV、测试对象:数计、国交学院计科专业2004 级1、2、国交班V、问卷页数(A4):3 页VI、答卷页数(A4):4 页VII、考试⽅式:闭卷(开卷、闭卷或课程⼩论⽂,请填写清楚)VIII、问卷内容:(请⽼师在出题时安排紧凑,填空题象征性的留出⼀点空格,学⽣将所有的答案做在答题纸上的规定位置,并写清楚⼤题、⼩题的题号)⼀、填空题(共30分,30个空,每空1分)1、典型⾼级程序设计语⾔编译系统的⼯作过程⼀般分为六个阶段,即词法分析、语法分析、语义分析、中间代码⽣成、、⽬标代码⽣成。
编译阶段的两种组合⽅式是组合法和按遍组合法,这两种组合⽅式的主要参考因素都是的特征。
2、Chomsky将⽂法按其所表⽰语⾔的表达能⼒,由⾼往低分为四类:0型,1型,2型,3型⽂法。
其中,2型⽂法也称,它的所有规则α→β都满⾜:α∈,β∈ ((V N∪V T) *且,仅当β= ε时例外。
3、现代编译系统多采⽤⽅法,即在语法分析过程中根据各个规则所相联的或所对应的语义⼦程序进⾏翻译的办法。
该⽅法使⽤为⼯具来说明程序设计语⾔的语义。
4、构造与NFA M等价的正规⽂法G的⽅法如下:(1)对转换函数f(A,a)=B或f(A,ε)=B,改成形如或的产⽣式;(2)对可识别终态Z,增加⼀个产⽣式:。
5、代码⽣成要考虑的主要问题:充分利⽤的问题、选择的问题、选择的问题。
6、设有穷⾃动机M=(K,∑,f,S,Z),若当M为时,满⾜z0∈f(S,α)且z0∈Z,或当M为时,满⾜f(S,α)=P∈Z,则称符号串α∈∑*可被M所。
7、符号表中每⼀项对应⼀个多元组。
符号表项的组织可分为组织、组织、组织等。
8、对于A∈?VN 定义A的后续符号集:FOLLOW(A)={a|S=*>uAβ,a∈VT,且a∈,u∈VT*,β∈V+;若,则#∈FOLLOW(A)。
高级语言程序设计期末考试试卷及答案( E卷)2005—2006学年上学期考试科目:考试类型:(闭卷) 考试时间:120 分钟考试须知:1.答案必须写在“答题卡”上,写在试卷上不得分.2.必须在答题卡上正确填写班级、学号、姓名等内容。
一、选择题(共20小题,每小题1分)1。
下列C常量中不合法的是( )A。
’\500' B。
0500 C.'500' D。
"500"2。
C语言中,若对函数类型未加显示说明,则函数的隐含类型为()类型A.void B.intC.空 D.char3. C语言程序的三种基本结构是( )A。
嵌套结构、递归结构、顺序结构 B.递归结构、循环结构、转移结构C。
顺序结构、选择结构、循环结构 D.循环结构、转移结构、顺序结构4。
一个可执行C程序的开始执行点是()A.名为main()的函数 B.包含文件的第一函数C.程序中的第一个语句 D.程序中的第一个函数5。
下面程序段的执行结果是()int a=5, b=4, c=3;if(a〉b〉c)printf(”a>b〉c”);elseprintf(”no");A.a>b〉c B.noC.编译错误 D.运行错误6。
合法的数组定义是( )A.int a[]= “string" B.int a[5] = {0,1,2,3,4,5}C.char a[] = {0,1,2,3,4,5} D.char s = “string”7。
在C语言中,提供的合法关键字是()A.printf B.cher C.case D.Else8。
在C语言中,合法的字符常量是( )A.’\081’ B.’\0’ C.’ab’ D.”a ”9。
putchar函数可以向终端输出一个().A)字符串 B)实型变量值C)整型变量表达式D)字符或字符型变量10。
在C语言中,一个char变量占( )字节。
A.1 B.2 C.4 D.811. 调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是( )A.12,23 B. a=12,b=23C.12:23 D. 12 2312。
第十二届全国青少年信息学奥林匹克联赛初赛试题 2006(普及组C++ 语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案.)1. 在下面各世界顶级的奖项中,为计算机科学与技术领域做出杰出贡献的科学家设立的奖项是()。
A. 沃尔夫奖B. 诺贝尔奖C. 菲尔兹奖D. 图灵奖2. 在下列各软件中,不属于NOIP竞赛(复赛)推荐使用的语言环境有()。
A. gcc/g++B. Turbo PascalC. RHIDED. free pascal3. 以下断电之后仍能保存数据的有()。
A. 寄存器B. ROMC. RAMD. 高速缓存4.Linux是一种( )。
A. 绘图软件B. 程序设计语言C. 操作系统D. 网络浏览器5. CPU是( )的简称。
A. 硬盘B. 中央处理器C. 高级程序语言D. 核心寄存器6. 在计算机中,防火墙的作用是()。
A. 防止火灾蔓延B.防止网络攻击C. 防止计算机死机D. 防止使用者误删除数据7. 在下列关于计算机语言的说法中,不正确的是()。
A. Pascal和C都是编译执行的高级语言B. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上C. C++是历史上的第一个支持面向对象的计算机语言D. 与汇编语言相比,高级语言程序更容易阅读8. 在下列关于计算机算法的说法中,不正确的是()。
A. 一个正确的算法至少要有一个输入B. 算法的改进,在很大程度上推动了计算机科学与技术的进步C. 判断一个算法的好坏的主要标准是算法的时间复杂性与空间复杂性D. 目前仍然存在许多涉及到国计民生的重大课题,还没有找到能够在计算机上实施的有效算法9. 在下列各种排序算法中,不是以“比较”作为主要操作的算法是()。
A. 选择排序B. 冒泡排序C. 插入排序D. 基数排序10.在编程时(使用任一种高级语言,不一定是C++),如果需要从磁盘文件中输入一个很大的二维数组(例如1000*1000的double型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于列的)相比,在输入效率上()。
2006上半年软件评测师考试真题及答案-上午卷在计算机系统中,存取速度最快的是(1)。
(1)A.CPU内部寄存器 B.计算机的高速缓存CacheC.计算机的主存D.大容量磁盘【答案】A【解析】计算机中,用于存放程序或数据的存储部件有CPU内部寄存器、计算机的高速缓冲存储器(Cache)、计算机的主存、大容量磁盘(外存/辅存)。
它们的存取速度不一样,其中以设置在CPU内部并作为CPU的一个组成部分的内部寄存器的存取速度最快。
模块的耦合度描述了(2)。
(2)A.模块内各种元素结合的程度 B.模块内多个功能之间的接口C.模块之间公共数据的数量D.模块之间相互关联的程度【答案】D【解析】耦合描述的是模块之间联系的紧密程度。
若某计算机系统是由500个元器件构成的串联系统,且每个元器件的失效率均为10-7/H,在不考虑其它因素对可靠性的影响时,该计算机系统的平均故障间隔时间为(3)小时。
(3)A.2×104 B.5×104 C.2×105D.5×105【答案】A【解析】根据题意,该计算机系统的总失效率为各元器件的失效率之和,即500×10-7/h = 5×10-5/h。
因为失效率的倒数即为平均故障间隔时间(MTBF),从而求出平均故障间隔时间为2×104。
内聚是一种指标,表示一个模块(4)。
(4)A.代码优化的程度B.代码功能的集中程度C.完成任务的及时程度D.为了与其他模块连接所要完成的工作量【答案】B【解析】本考题考查的知识点为内聚基础知识。
内聚是指模块内部各元素之间联系的紧密程度,也就是代码功能的集中程度。
为了解决进程间的同步和互斥问题,通常采用一种称为(5)机制的方法。
若系统中有5个进程共享若干个资源R,每个进程都需要4个资源R,那么使系统不发生死锁的资源R 的最少数目是(6)。
(5)A.调度 B.信号量 C.分派 D.通讯(6)A.20 B.18 C.16 D.15 【答案】B C【解析】为了解决进程间的同步和互斥问题,通常采用一种称为信号量机制的方法。
中山大学计算机科学系2006级计算机科学与技术专业、网络工程专业、信息安全专业(ABCDE班)程序设计 A卷学号 ____________ 姓名 ______________ 成绩______________(试卷共6页,答案全写在答题纸上,交卷时连试卷一同交回)考试形式:闭卷任课老师:林瑛、肖菁、杨永红2007-6 《中山大学授予学士学位工作细则》第六条:“考试作弊不授予学士学位。
”一、单项选择(每小题1分,共15分)1.C++语言新引入了在一种C语言中没有的参数传递方式是:A) 按指针调用B) 按名调用C) 按值调用D) 按引用调用2.在C++语言中,以下哪个表达式采用了八进制表示整型常量:A) k=0123; B) k=123; C) k=’\x23’; D) k=0x123;3.下面对结构或类中成员的访问不正确的是:A). *p.salary B) p->salary(p为指向类对象的指针) (p为指向类对象的指针)C) (*p).salary D) Worker.salary(p为指向类对象的指针) (Worker是类类型的对象)4.类A中有一成员函数说明如下void A::Set(A & a); 其中A & a的含义是:A) 指向类A的指针为a B) 变量A与a按位与作为函数Set()的参数C) 将a的地址值赋给变量Set D) a是类A的对象引用,用作函数Set()的形参5.假定一个类有两个数据成员a和b,其构造函数为:A(int aa=1,int bb=0){ a = aa; b = bb; } 则执行语句A x(4); 后,x.a和x.b值分别是:A) 1和0 B) 1和4 C) 4和0D) 4和16.可以用友元方式重载的运算符是:A) + :: << B) = >> / C) + & [] D) + || !7.设有如下声明的类: class FOO {private:static float std;float max, min;};则表达式sizeof(FOO)的值为:A) 4 B) 8C) 12 D) 168.若在一个类中用成员函数重载了某种二元运算符@,而obj1和obj2都是该类的对象,则表达式obj1@obj2 被C++编译器解释为:A) obj1.operator@(obj2)B) obj2.operator@(obj1)C) operator@(obj1,obj2) D) operator@(obj2,obj1)9.下列函数中,不能重载的是:A) 类的成员函数B) 非成员函数C) 析构函数D) 构造函数10.关于构造函数不正确的说法是:A) 构造函数可以有返回值B) 一个类可以有多个构造函数C) 构造函数名与类名相同D) 构造函数初始化时为对象开辟一个内存11.假定AB为一个类,则执行语句AB a(2), *p[3], b[4];时,自动调用该类构造函数的次数为:A) 3 B) 5C) 6 D) 9指针不调用构造函数12.template<class T>class APPLE{……};定义类模板APPLE的成员函数的正确格式是:A) T APPLE<T>::Push(T obj) {……}B) T APPLE::Push(T obj) {……}C) template<class T> D) template<class T>T APPLE::Push(T obj) {……}T A PPLE<T>::Push(T obj) {……}13.假设程序中已有#include <string.h>,从而可用字符串的库函数。
天津工业大学200 9 ~201 0 学年第 2 学期高级语言程序设计(C语言) 试卷(A卷答案)学院班级学号姓名注意事项:1、本试卷共12 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
一、单项选择题:(每题 1 分,共40 分)一、单项选择题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.根据C语言的规定,为变量取名时,不能使用的符号是【1】。
A) 数字字符B) 大写字母C) 下划线D) 减号2.一个C语言程序的执行是【2】。
A) 从第一个函数开始,到最后一个函数结束B) 从main()函数开始,到最后一个函数结束C) 从main()函数开始,到main()函数结束D) 从第一个语句开始,到最后一个语句结束3.执行下列程序段后,输出结果是【3】。
int m=013;printf("%d,%o,%x\n",m,m,m);A) 19,23,13 B) 11,13,b C) 13,15,d D) 13,13,134.表达式sizeof(double)的值是【4】。
A) 1 B) 2 C) 4 D) 85.设有变量定义语句char ch; 则能够正确地为变量ch输入数据的是【5】。
A) scanf("%c",&ch); B) getchar(ch);C) scanf("%c",ch); D) putchar(ch);6.设变量a是int型、f是float型、d是double型、c是char型,则表达式c+a-f/d的数据类型是【6】。
A) char型B) int型C) float型D) double型7.有变量定义语句int k=4,m; 执行语句m=k--; 后,变量m、k的值是【7】。
A) m=3,k=3 B) m=4, k=3 C) m=3,k=4 D) m=4,k=48.设int i=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是【8】。
江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试二级C 语言程序设计2006 年(秋)笔试试卷(考试时间120 分钟,满分60 分)第一部分计算机基础知识(1)在下列有关集成电路的叙述中,错误的是__________。
A)集成电路的规模是根据其所包含的电子元件数目进行划分的B)大规模集成电路一般以功能部件和子系统为集成对象C)现代集成电路使用的半导体材料主要是硅(Si)D)集成电路技术发展很快,至2005 年初已达到线宽0.001μm 的工艺水平(2)在下列有关通信技术的叙述中,错误的是__________。
A)电视节目的传输目前采用的还都是模拟传输技术B)模拟调制的方法有3 种,即调频、调幅和调相C)数字信号不经过调制就在信道上直接进行传输,称为“基带传输”D)用户使用MODEM 通过电话线上网时,采用的是数字调制技术(3)所谓“变号操作”,是指将一个整数变成绝对值相同但符号相反的另一个整数。
假设使用补码表示的8 位整数,则经过变号操作后,结果为__________。
A)01101010 C)B)00010101 D)01101011(4)若计算机内存中连续 2 个字节的内容其十六进制形式为34 和64,则它们不可能是__________。
A)2 个西文字符的ASCII 码C)1 个16 位整数B)1 个汉字的机内码D)图像中1 个或2 个像素的编码(5)在下列关于指令和指令系统的叙述中,错误的是__________。
A)指令是构成程序的基本单元,它用来规定计算机执行什么操作B)指令由操作码和操作数组成,操作数的个数由操作码决定C)Intel 公司Pentium 系列的各种微处理器,其指令完全不同D)Pentium 处理器的指令系统包含数以百计的不同指令(6)在下列关于BIOS 及CMOS 存储器的叙述中,错误的是__________。
A)BIOS 是PC 机软件最基础的部分,包含POST 程序、CMOS 设置程序、系统自举程序等B)BIOS 存放在ROM 存储器中,通常称为BIOS 芯片,该存储器是非易失性的C)CMOS 中存放着基本输入输出设备的驱动程序和一些硬件参数,如硬盘的数目、类型等D)CMOS 存储器是易失性的,在关机时由主板上的电池供电(7)PC 机的机箱外面常有很多接口,用来连接外围设备。
武汉大学计算机学院2006-2007学年度第2学期2006级《高级语言程序设计》期末考试试卷A卷姓名:学号:专业:说明:开卷考试,答案请全部写在答题纸上,写在试卷上无效。
一.单项选择题:(选择最合适的答案填空,每小题2分,共16分)()1、在执行以下程序时,从键盘上输入9,则该程序输出结果是__________。
#include <stdio.h>int main( ){ int n;scanf("%d",&n);if(n++<10)printf("%d\n",n);elseprintf("%d\n",n--);return 0;}A、8B、9C、10D、11()2、表达式0156637&~0777的结果是____________。
A、0156000B、156000C、0637D、637()3、假设有如下定义:int m=1,n=1; 则执行表达式(m=’5’<’3’)&&(n=’7’>’9’)后,m和n的值分别是_____________________。
A、1和1B、1和0C、0和1D、0和0()4、表达式-11%3+7/2的结果是____________。
A、5.5B、5C、1.5D、1()5、设有如下宏定义:#define BOOK(x) 8-x则执行赋值语句v=BOOK(2)*BOOK(4); /*v为int型变量*/后,变量v的值为。
A、-12B、0C、24D、44()6、设有如下定义:int a[6][4]; int (*p)[4]; p=a;则与表达式*p+3等价的选项是_________。
A、a[0][3]B、&a[0][3]C、a[3][0]D、&a[3][0]()7、假设有以下定义:static char *a=”h\te\nY\0W\0o\b”;则表达式strlen(a)的结果为________。
A、15B、10C、7D、5()8、假设有如下定义:int a=1,b=2,c=3,u,v;执行下面语句组后,整型变量u和v的值分别为_____________。
u = a ? b : c;v = (a = 2) ? b + a:c + a;A、3和3B、3和4C、2和3D、2和4二.程序阅读与分析(每小题8分,共24分)9、分析下面程序执行流程,指出程序执行结果。
#include <stdio.h>int main(){ int i;for(i=1;i<=6;i++)switch (i%5){ case 0: printf(“*”);break;case 1: printf(“#”);break;default: printf(“\n”);case 2: printf(“&”);}return 0;}10、下面程序完成的功能如下:输入一个由10个整数组成的数组a,将该数组下标值为偶数的元素由小到大排序,将下标值为奇数的元素由大到小排序。
例如,输入数组a为{8,1,6,3,4,5,2,7,0,9},执行下面程序后,数组a为{0,9,2,7,4,5,6,3,8,1}。
请在空白处填写合适内容以正确完成整个程序。
#include <stdio.h>int main(){ (1) a[10],n;int i,j,t;for(i=0;i<10;i++)scanf("%d", (2) );for(i=0;i<7;i+=2)for(j= (3) ;j<10; (4) ){ if( (5) ){ t=a[i]; a[i]=a[j]; a[j]=t; }if( (6) ){ t=a[i+1]; a[i+1]=a[j+1]; a[j+1]=t;}}for(i=0; (7) ;i++)printf("%d\t", (8) );return 0;}11、分析以下程序执行流程,请指明错误之处,并简要说明错误原因,并给出修改意见。
(共4个错误)/*输入多个整数,以0作为结束标记,将这些整数存入到Exam.dat文件中*/ /*然后将这些数据从Exam.dat文件中读出来,显示到显示器上*/#include <stdio.h>#include <stdlib.h>int main(){File *fp;if((fp = fopen("Exam.dat","w"))==NULL){ printf("open file error!");exit(1);}do{ scanf("%d", p);fprintf(fp,”%d ”,p);}while(p!=0);fclose(fp);if((fp = fopen ("Exam.dat","r")) == NULL){ printf("open file error!");exit(1);}do{ fscanf(fp,"%d",p);printf("%6d\t",p);}while(p!=0);fclose(fp);return (0);}三.程序测试与分析(每小题5分,共15分)12、以下程序计算-32768-3,执行以下程序,得到如下所示的运行结果,请分析结果为什么不是-32771?并指出该如何修改。
#include <stdio.h>int main(){ short int a,b;a=-32768;b=a-3;pr intf("a=%d,b=%d\n",a,b);}运行结果:a=-32768,b=3276513、上机调试下面的程序,在编译过程提示有如下语法错误“too many argumentsto function in max(int,int)”。
分析下面程序,说明出现上述语法错误的原因。
并指出用下划线标注的语句的作用是什么?#include <stdio.h>#define MAX#ifdef MAXint max(int x, int y){ return (x>y)?x:y;}#elseint max(int x, int y, int z){ int k;k=x>y?x:y;return (z>k)?z:k;}#endifint main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“max=%d\n”,max(a,b,c));return 0;}14、下面的函数的功能是从一个整数组成的单链表中删除指定整数n的节点。
#include <stdio.h>#include <stdlib.h>struct node{int data;struct node *next;};int deletelink (struct node *phead,int n){ struct node *p,*q;p=phead;while(p->data!=n&&p->next!=NULL){ q=p;p=p->next; }if(p->data==n) /*找到*/{ if(p==phead) /*被删除的结点是链头*/phead=p->next;else /*被删除的结点不是链头*/q->next=p->next;free(p);return (1); }elsereturn (0);}假设有下图所示的单链表:现在要求从上图所示的单链表中删除数据值等于3的节点,通过执行函数调用deletelink(head,3)来完成该删除操作。
但是函数调用结束后,该链表仍然和上图一样,整数3并没有从链表中删除,请分析出错的原因,并给出修改意见。
(提示:被删除的节点是单链表中的第一个节点。
)四.程序实现题(每小题15分,共30分)15、下面程序完成的功能如下:输入一个整数,要求按原来的规律将它插入一个已经排好序的数组中。
分析该程序的执行流程,写出该程序的流程图。
#include <stdio.h>int main(){ int a[11]={1,4,6,9,13,16,19,28,40,100};int temp1,temp2,number,end,i,j;printf("original array is:\n");for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("insert a new number:");scanf("%d",&number);end=a[9];if(number>end)a[10]=number;else{ for(i=0;i<10;i++){ if(a[i]>number){ temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){ temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i++)printf("%6d",a[i]);return 0;}16、设计一个函数count(s, t); 其中s为字符串,t单个字符。
如果t为大小写字母,则函数count统计字符串s中t对应的字母(大小写字母均统计在内)出现的次数。
例如,count(“aAdgfASa”,’a’)函数调用的返回值为4。
如果t为其他字符,则直接统计该字符出现的次数。
五.算法设计(选做一题15分)说明:●仅需任意选做一题。
●分析思路,说明算法中的重要数据类型的定义;●说明算法中的模块划分;各模块的功能、形式参数、函数返回值说明;并用伪代码、流程图或其它方法描述子程序的执行过程;●不必完整写出函数程序的代码,完整代码将不作为判分依据17、某家研究机构记录北极点一年中每天正午的室外气温(单位o F),正午的室外气温超过32o F则认为该天为高温天气。
要求每月将该月每天的正午的室外气温输入到计算机中处理。
根据月份不同,则输入数据个数可能是28、29、30、31个。
编写程序统计每月高温天气的天数,以及每月的平均气温。