吉林大学远程教育学院2013年C语言程序设计练习题B
吉林大学远程教育学院2013年《计算机原理及系统结构》试题B答案

《计算机原理及系统结构》练习题B答案一、单项选择(每小题有四个备选答案,只有一个是正确的)1. B2. C3. A4. B5. A二、填空1.对阶,向右规格化2.磁表面存储器,半导体存储器3.图象分辨率,灰度级4.先进后出、存储器5. 8,4三、简答1:二级存储体系是计算机系统中最简单的存储体系,它是利用软、硬件控制将主存与辅存有机地组成一个整体。
在二级存储体系中,主存是与计算机各部件进行数据交换的主要设备,辅存作为主存的后援系统用来弥补主存容量不足的缺陷。
辅存中存放的是暂时不用的和主存中容纳不下的程序和数据。
辅存中的信息不能被CPU直接访问,必须通过调入主存中才能被计算机的其他部件使用。
一般有两种途径允许CPU运行辅存中存放的程序:一是当主存能够容纳下整个程序及所需数据时,将要使用的程序从辅存调入主存之中,然后由CPU控制运行;二是当主存容量不能容纳整个程序时,由程序员或将程序分成与主存大小相匹配的几段,由程序员按需要控制各段程序的运行顺序,在执行时依次调入主存运行。
在二级存储体系中,主存是直接为 CPU提供现行程序和数据的存储器,它必须拥有与CPU相近的工作速度,才能保证整个计算机系统运算速度的提高,它的容量在保证计算机正常运行的情况下尽可能大。
辅存做为主存的后备系统,必须具有容量大、价格低的特点。
2.答:CISC是复杂指令系统计算机的英文缩写。
其特点是:(1)指令系统复杂庞大,指令数目一般多达2、3百条。
(2)寻址方式多(3)指令格式多(4)指令字长不固定(5)可访存指令不加限制(6)各种指令使用频率相差很大(7)各种指令执行时间相差很大(8)大多数采用微程序控制器3.答:指令周期是指取出并执行一条指令的时间,指令周期常常用若干个CPU周期数来表示,CPU周期也称为机器周期,而一个CPU周期又包含若干个时钟周期(也称为节拍脉冲或T周期)。
4.答:Huffman压缩概念的基本思想是:当各种事件发生概率不均等时,采用优化技术对发生概率最高的事件用最短的位数来表示,而对发生概率较低的事件,允许用较长的位数来表示。
C语言程序设计吉大直属课程机考复习题库及答案

C语言程序设计吉大直属课程机考复习题库及答案1:根据定义和数据的输入方式,输入语句的正确形式为( )。
已有定义:float f1,f2;数据的输入方式:4.523.51.scanf(“%f,%f”,&f1,&f2);2.scanf(“%f%f”,&f1,&f2);3.scanf(“%3.2f%2.1f”,&f1,&f2);4.scanf(“%3.2f,%2.1f”,&f1,&f2);2:判断char型变量ch是否为大写字母的正确表达式是( ).1.’A’<=ch<=’Z’2.(cb>=’A’)&(ch<=’Z’)3.(ch>=’A’)&&(ch<=’Z’)4.(‘A’<=ch)AND(‘Z’>=ch)3:若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
1.22.33.44.无确定值4:有以下定义和语句,则以下引用形式不合法的是( )。
Struct s{int i1;struct s*i2,i0;};static struct sa[3 ]={2,&a[1],’\0’,4,%a[2],&a[0],6,’\0’,&a[1]}, *ptr;ptr=a;1.ptr->i1++2.*ptr->i23.++ptr->i04.ptr->i15:以下结果为整数的表达式(设有int i;char c;float f;)( ).1.i十f2.i*c3.c十f4.i十c十f6:fwrite函数的一般调用形式是( )。
1.fwrite(buffer,count,size,fp) ;2.fwrite(fp,size,count,buffer) ;3.fwrite(fp,count,size,buffer) ;4.fwrite(buffer,size,count,fp) ;7:下面四个选项中,均是不合法转义字符的选项是( ).1.’\”’‘\\’‘\xf’2.’\1011’‘\’‘\a’3.’\011’‘\f’‘\}’4.’\abc’‘\101’‘x1f’8:若有说明:int a[][4]={0,0};则下面正确的叙述是()。
吉林大学网络教育面向对象程序设计练习题B期末考试复习题

面向对象程序设计练习题B
一、填空
1.语句const int * p将p定义成。
2.由类构建对象的过程称为。
3.含有纯虚函数的类是。
4.实现软件复用有两种方式,分别为、、。
5.处理程序执行错误的机制称为。
6.对象的初始化可以在类的中进行。
7.A::s中A可能是⒀或者的语法成分。
8. 方法重载和实现了多态性。
9. new和malloc函数的主要区别是。
10. 给出构造函数参数列表三个用途是、、。
11. 系统提供的成员函数中指向当前对象的指针是。
二、名词解释
1、构造函数
2、对象
3、运算符重载
4、析构函数
5、组合
三、简答
1.比较类和结构体?
2.重载的意义?
3.抽象类的作用和意义?
4.组合与继承的区别?
四、辩析
1.任何父类对象都可以被子类对象替代。
2.public修饰符号破坏了数据的开放性。
3.private继承方式不能产生子类。
4.不能实例化的类一定是抽象类。
五、综合回答
1.简述多态的实现机制。
2.谈谈多态的意义。
3.面向对象程序设计思想的优点和缺点。
吉林大学远程教育学院2013年《计算机原理及系统结构》试题C答案

《计算机原理及系统结构》C答案一、单项选择(每小题有四个备选答案,只有一个是正确的)1. B2. D3. B4. D5. C二、填空题1.双总线结构运算器2.存储微程序的控制存储器3.总线、I/O设备(或输入输出设备)4.计算机系统结构,计算机组成5.机器语言,软件移植6.吞吐率、加速比、效率三、简答题1.答:1、计算机硬件系统五大功能部件包括:运算器、控制器,存储器,输入设备、输出设备,这些设备和部件通过总线和接口连结在一起,构成一台完整的计算机。
运算器部件是计算机中进行数据加工的部件。
控制器是计算机中控制执行指令的部件,向计算机各功能部件提供每一时刻协同运行所需要的控制信号。
存储器系统是计算机中用于存储程序和数据的部件。
输入设备是向计算机中送入程序和数据的具有一定独立功能的设备,通过接口和总线与计算机主机连通,用于人机交互联系,如计算机键盘和鼠标等。
输出设备是计算机中用于送出计算机内部信息的设备,例如打印机、显示器等。
2.答:首先需要明确参加运算的数据来源,运算结果的去向。
运算器能直接运算的数据,通常来自于运算器本身的寄存器。
这里有3个概念。
一是这些寄存器的数量为几个、十几个、一百多个不等,它们能最快速地提供参加运算的数据,需要有办法指定使用哪1个或2个寄存器的内容参加运算。
二是这些寄存器还能接收数据运算的结果,需要有办法指定让哪1个寄存器来接收数据运算的结果。
三是在时间关系上,什么时刻送出数据去参加运算,什么时刻才能正确地接收数据运算的结果,这些内容在下图有示意性表示。
请注意,这些寄存器本身是暂存数据用的,是由触发器构成的时序逻辑电路。
其次需要明确将要执行的运算功能,是对数值数据的算术运算功能,哪一种算术运算,还是对逻辑数据的逻辑运算功能,哪一种逻辑运算。
另外一个问题是,运算器完成一次数据运算过程由多个时间段组成,其时序关系示意表示在下图。
请注意,完成数据运算功能的线路是组合逻辑电路。
最后还要说明,运算器部件只有和计算机的其他部件连接起来才能协同完成指令的执行过程,就是说,运算器需要有办法接收其他部件(例如内存储器或者计算机的输入设备)送来的数据,才能源源不断地得到参加运算的数据来源;运算器还需要有办法送出它的运算结果到其他部件(例如内存储器或者计算机的输出设备),才能体现出它的运算处理效能和使用价值,这些内容在下图有示意性表示。
吉林大学《程序设计基础》历年试题及答案

2011-2012学年第1学期2008级《高级语言程序设计》重修考试试题(B卷)考试时间:2012年04月班级学号姓名✧请将答案写在答题纸上,写清题号,不必抄题,字迹工整、清晰;✧答题纸和试题纸上都写上班级、学号和姓名,交卷时将试题纸、答题纸和草纸一并交上来。
✧每个题目不必给出对应的PAD图,但要添加必要的注释,程序命名和书写要规范。
一、[20分] 编写函数,实现按照如下公式计算的功能。
f(n)=0/(1*2!)+1/(2*3!)+2/(3*4!)+3/(4*5!)+…+n/((n+1)*(n+2)!),其中n为自然数。
二、[20分] 编写bool函数,判断给定的整数数组a[n]中是否存在元素a[i] (0<i<n),等于其前边的所有元素之和,即a[i]=a[0]+a[1]+…+a[i-1]。
三、[20分] 编写一个递归函数,计算组成给定正整数n的所有数字之和。
例如:输入参数为1035,则返回结果应该为9(通过1+0+3+5=9得到)。
四、[20分] 构造一个表示教师的结构体(包含3个字段:姓名、性别、年龄),编写函数,读入M个教师的信息,存入一个结构体数组中,如下图所示。
张三李四赵九男(true) 女(false) … 男(true)50 37 29图1 管理教师信息的结构体数组例如:一个教师的信息为Zhangsan、true、50,另一个教师的信息为Lisi、false、37。
五、[20分] 设有一个保存教师信息的单链表(每个结点包含4个字段:姓名、性别、年龄、后继指针),如下图所示。
构造该链表中一节的数据类型声明;编写函数,在给定链表上查找所有女教师的信息,并存储到指定文件output.txt中。
图2 管理教师信息的单链表第 1 页共 1 页2011-2012学年第1学期2008级《高级语言程序设计》重修考试试题(B卷)答案及评分标准考试时间:2012年4月一、满分20分。
int fac(int n)//阶乘函数1:循环形式(10分){int i,r=1;for(i=1;i<=n;i++)r=r*i;return r;}int fac(int n)//阶乘函数2:递归形式(10分){if(n==0)return 1;return n*fac(n-1);}//利用阶乘函数的计算函数(10分)float f(int n){float f=0;for(int i=0;i<=n;i++){f=f+i*1.0/((i+1)*fac(i+2));}return f;}参考要点:阶乘函数(10分);累加计算功能(10分)。
2013 c语言试题及答案

理论考试(120分钟)一、单项选择题(在每小题的4个备选答案中,选出一个最佳答案,共15小题;每小题2分,共30分)1.一个C程序的执行是从( A)A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2.已知int x=10,y=20,z=30; 以下语句执行后x,y,z的值是( B) if (x>y) z=x; x=y;y=z;A. 10,20,30B. 20,30,30C. 20,30,10D. 20,30,20 3.int a=1,b=2,x=3; 表达式:x*=a+b计算后x的值为:( B )A. 5B. 9C. 3D. 64.下列选项,在C语言中能作为合法标识符的是( D)A. %xB. a+bC. 2_int_12_D. int_2_5.#include<stdio.h> (A)void main(){int sum,pad;sum=pad=5;pad=sum++;pad++;++pad;printf("%d %d\n",pad, sum);}A.7 6B. 6 5C. 7 5D. 6 6 6.若有说明:int a[10];则对a 数组元素的正确引用是( D )A. a[10]B. a[3, 5]C. a(5)D. a[10-10] 7.请读程序#include<stdio.h>#define MUL(x,y) (x)*yvoid main(){ int a=3, b=4, c;c=MUL(a++, b++);printf("%d\n", c);}上面程序的输出结果是(A)。
A. 12B. 15C. 20D. 168.若用数组名作为函数调用的实参,传递给形参的是数组的( A )A. 数组的首地址B. 数组第一个元素的值C. 数组中全部元素的值D. 数组元素的个数9.阅读以下程序void main(){ int a=5,b=0,c=1;if(a=b+c) printf(“***\n”);else printf(“$$$\n”);}以上程序( C)A. 语法有错不能通过编译B. 可以通过编译但不能通过连接C. 输出***D. 输出$$$10.下列关于函数定义正确的是( D )A. fun(int x,y){ int z;return z;}B. void fun(int x,int y){ return x+y;}C. fun(x,y){int x,y;double z;z=x+y;return z;}D. double fun(int x,int y) { double z;z=x+y;return z;}11.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(B )A. 地址传递B. 单向值传递C. 由实参传给形参,再由形参传回实参D. 传递方式由用户指定12.具有相同基类型的指针变量P和数组Y,下列写法中不合法的是( D ) A.P = Y B.*P = Y[i]C.P = &Y[i] D.P = &Y13.设x和y均为int型变量,则下列语句:x+=y; y=x-y; x- =y;的功能是(D ) A.把x和y按从大到小排列。
2013年C语言考题[B]-解答
![2013年C语言考题[B]-解答](https://img.taocdn.com/s3/m/c972aedc80eb6294dd886c75.png)
}
输出结果是:6
9
#include <stdio.h>
int A=2,B=3;
void dblA(){A*=2;}
void dblB(){int B=5;B*=2;}
void main(){
dblA();dblB();
printf("%d,%d\n",A,B);
}
输出结果是:4,3
A.1 B.0 C.10 D.9
(D) 19.有说明语句struct stu{ int age,no;} st,sa[10];下面哪个语句是正确的。
A.st=20 B.st[5]=20 C.sa.age[5]=20 D.sa[5].age=20
(A) 20.定义int a[10],*p;则下面正确的表达式是
(A) 17.char a;int b; float c;double d下面哪个语句是正确的的
A.switch(a){…} B.switch(sin(b)){…}
C.switch(c){…} D.switch(d){…}
(B) 18.for(i=0;i<10;i++){break;}执行完后i的值是
10
#include <stdio.h>
int f(){
int a=1;
static int b=1;
return a++ + b++;
}
void main(){
printf("%d\n",f()+f());
}
输出结果是:5
得分
阅卷人
1253《C语言程序设计》电大期末精彩试题及其问题详解

《C语言程序设计》期末综合练习题模拟试题一一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。
A. mainB. MAINC. nameD. function2.每个C语言程序文件的编译错误分为(B)类。
A. 1B. 2C. 3D. 43.字符串"a+b=12\n"的长度为(B)。
A. 6B. 7C. 8D. 94.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。
A. forB. whileC. doD. if5.在下面的do-while循环语句中,其循环体语句被执行的次数为(C)。
int i=0; do i++; while(i<10);A. 8B. 9C. 10D. 116.将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。
A. strlen( )B. strcpy( )C. strcat( )D. strcmp( )7.若用数组名作为函数调用的实参,传递给形参的是(A)。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大(C)个字节。
A. 4B. 8C. 16D. 329.假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为(A)。
A. char *p=sB. char *p=&sC. char *p;p=*sD. char *p; p=&s10.从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。
A. gets( )B. fgets( )C. getc( )D. fgetc( )二、填空题1.执行“printf("%c",'A'+2);”语句后得到的输出结果为(C)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计练习题B一、单项选择题1. 以下选项中可作为C语言合法整数的是()A)10110B B)0386 C)0Xffa D)x2a22. 以下选项中非法的表达式是()A)0<=x<100 B)i=j==0 C)(char)(65+3) D)x+1=x+13. 假定x和y为double型,则表达式x=2,y=x+3/2的值是()A) 3.500000 B) 3 C) 2.000000 D) 3.0000004. 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是()A) c1^c2 B) c1&c2 C) ~c2 D) c1|c25. 以下能正确定义二维数组的是()A) int a[][3] B) int a[][3]=2{2*3};C) int a[][3]={} D) int a[2][3]={{1},{2},{3,4}};6. 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是()printf("%d,%d\n",x--,--y);A) 10,3 B) 9.3 C) 9.2 D)10.27. 有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是()A) a=a+b=b++ B) w%((int)a+b) C) (c+w)%(int)a D) w=a= =b;8. 已定义c为字符型变量,则下列语句中正确的是()A)c='97' B)c="97" C)c=97 D)c="a"9. 下列选项中正确的语句组是()A)char s[8]; s={"Beijing"} B)char *s; s={"Beijing"};C)char s[8]; s="Beijing" D)char *s; s="Beijing";10.以下语句或语句组中,能正确进行字符串赋值的是()A)char *sp;*sp="right!" B)char s[10];s="right!";C)char s[10];*s="right!" D)char *sp="right!";11. s1和s2已正确定义并分别指向两个字符串。
若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是()A) if(s1>s2)S B) if(strcmp(s1,s2))S;C) if(strcmp(s2,s1)>0)S D) if(strcmp(s1,s2)>0)S;12. 下列条件语句中,功能与其它语句不同的是()A) if(a) printf("%d\n",x); else printf("%d\n",y);B) if(a==0) printf("%d\n",y); else printf("%d\n",x);C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);D) if(a==0) printf("%d\n",x); else printf("%d\n",y);13. 有以下定义和语句int a[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是()A) a[0][1] B) a[1][0] C) a[1][1] D) a[1][2]14. 已有定义:int i,a[10],*p;,则合法的赋值语句是()A) p=100 B) p=a[5] C) p=a[2]+2 D) p=a+2;15. 设有如下程序段:int x=2002, y=2003;printf("%d\n",(x,y));则以下叙述中正确的是()A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002D)输出值为200316. 有以下说明和定义语句struct student{ int age; char num[8];};struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是()A) (p++)->num B) p->num C) (*p).num D) stu[3].age17.以下叙述中正确的是()A) 预处理命令行必须位于源文件的开头B) 在源文件的一行上可以有多条预处理命令C) 宏名必须用大写字母表示D) 宏替换不占用程序的运行时间18. 要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10main(){ int n; float s;s=1.0;for(n=10;n>1;n--) s=s+1/n;printf("%6.4f\n",s); }程序运行后输出结果错误,导致错误结果的程序行是()A)s=1.0 B)for(n=10;n>1;n--) C)s=s+1/n D)printf("%6.4f\n",s);19. 下列函数定义中,会出现编译错误的是()A)max(int x,int y,int *z) B)int max(int x,y){ *z=x>y ? x:y; } { int z;z=x>y ? x:y;return z; }C)max(int x,int y) D)int max(int x,int y){ int z; { return(x>y?x:y); }z=x>y?x:y; return(z);}20. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参二、阅读程序写结果1. 有以下程序main(){ int m=0256,n=256;printf("%o %o\n",m,n);}程序运行后的输出结果是2.以下程序运行后的输出结果是_____main(){ int a=3,b=4,c=5,t=99;if(b if(a printf("%d%d%d\n",a,b,c);}3.以下程序运行后的输出结果是main(){ char c1,c2;for(c1='0',c2='9';c1printf("\n");}4.以下程序运行后的输出结果是______void swap(int x,int y){ int t;t=x;x=y;y=t;printf("%d %d ",x,y);}main(){ int a=3,b=4;swap(a,b);printf("%d %d\n",a,b);}5.以下程序运行后的输出结果是_____fun(int a){ int b=0;static int c=3;b++;c++;return(a+b+c);}main(){ int i,a=5;for(i=0;i<3;i++)printf("%d %d ",i,fun(a));printf("\n");}6.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时, 函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出.所谓回文即正向与反向的拼写都一样,例如:adgda.请填空.#includechar *huiwen(char *str){ char *p1,*p2;int i,t=0;p1=str;p2=______;for(i=0;i<=strlen(str)/2;i++)if(*p1++!=*p2--){t=1;break;}if(____)return("yes!");else return("no!");}main(){char str[50];printf("Input:");scanf("%s",str);printf("%s\n",______);7. 有以下程序main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("%d,%d\n",k,m);}程序运行后的输出结果是8. 有以下程序main(){int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q; *q=*(p+5);printf("%d %d\n",*p,*1);}程序运行后的输出结果是9. 有以下程序main(){ unsigned int a;int b=-1;a=b;printf("%u",a);}程序运行后的输出结果是10. 有以下程序m ain(){ int x[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for (j=2;j>=i;j--)if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for (i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}for (i=0;i<8;i++) printf("%d",x[i]);printf("\n");}程序运行后的输出结果是:三、程序填空题1. 通过函数求f(x)的累加和,其中f(x)=x2+1main(){printf("The sum=%d\n",SunFun(10));}SunFun(int n){int x,s=0;for(x=0;x<=n;x++) s+=F(______);return s;}F( int x){ return ______;}2. 以下程序中,函数SumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。