程序设计基础练习题
《程序设计基础》习题集计算机科学与技术系第一章程序设计概论一、选择题1.一个C程序的执行是从( )A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序文件的第一个函数开始,到本程序main函数结束D.本程序的main函数开始,到本程序文件的最后一个函数结束2.下列关于C语言注释的叙述中错误的是( )A.以“/*”开头并以“*/”结尾的字符串为C语言的注释符B.注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义C.程序编译时,不对注释作任何处理D.程序编译时,需要对注释进行处理3.下列不是C语言的分隔符的是( )A.逗号 B.空格 C.制表符 D.双引号4.在Visual C++ 6.0环境下,C源程序文件名的默认后缀是( ) A..cpp B..exe C..obj D..dsp5.若在当前目录下新建一个名为“LX”的工程,则在当前目录下生成的工作区文件名为( )A.LX.DSW B.LX.OPT C..LX.DSP D.LX.C二、问答题1. 简述程序的概念2. 简述算法的概念。
3. 简述程序设计的一般方法和过程。
4. 程序设计的表示方法有哪些?5. 请用程序流程图设计出求n!的算法。
第二章程序设计的基本要素一、选择题1.以下叙述不正确的是( )A.一个C源程序必须包含一个main函数B.一个C源程序可由一个或多个函数组成C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面2.以下叙述正确的是( )A.在对一个C程序进行编译的过程中,可发现注释中的拼写错误B.在C程序中,main函数必须位于程序的最前面C.C语言本身没有输入输出语句D.C程序的每行中只能写一条语句3.一个C语言程序是由( )A.一个主程序和若干个子程序组成 B.函数组成C.若干过程组成 D.若干子程序组成4.下列四组选项中,均不是C语言关键字的选项是( )A.define IF typeB.getc char printfC.include case scanfD.while go pow5.下列四组选项中,均是不合法的用户标识符的选项是( ) A.W P_0 doB.b-a goto intC.float la0 _AD.-123 abc TEMP6.下列四组选项中,均是合法转义字符的选项是( )A.‘\”’‘\\’‘\n’B.‘\’‘\017’‘\”’C.‘\018’‘\f’‘xab’D.‘\\0’‘\101’‘xlf’7.所有C函数的结构都包括的三部分是( )A.语句、花括号和函数体 B.函数名、语句和函数体C.函数名、形式参数和函数体 D.形式参数、语句和函数体8.C语言程序由( )组成A.子程序 B.主程序和子程序 C.函数 D.过程9.下面属于C语言标识符的是( )A.2ab B.@f C.?b D._a1210.C语言中主函数的个数是( )A.2个 B.1个 C.任意个 D.10个11.下列关于C语言注释的叙述中错误的是( )A.以“/*”开头并以“*/”结尾的字符串为C语言的注释符B.注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义C.程序编译时,不对注释作任何处理D.程序编译时,需要对注释进行处理12.下列不是C语言的分隔符的是( )A.逗号 B.空格 C.制表符 D.双引号二、填空题1.C程序是由构成的,一个C程序中至少包含。
因此,是C程序的基本单位。
2.C程序注释是由和所界定的文字信息组成的。
3.开发一个C程序要经过编辑、编译、和运行四个步骤。
4.在C语言中,包含头文件的预处理命令以开头。
5.在C语言中,主函数名是。
三、程序设计题1.编写程序输出以下的图案** S **2.试编写一个C程序,输出如下信息。
*****************Your are welcome!*****************第三章简单数据类型与变量一、选择题1.关于C语言数据类型的叙述,正确的是()。
A. 枚举类型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型2.下面关于C语言用户标识符的描述,正确的是()。
A. 不区分大小写B. 用户标识符不能描述常量C. 类型名也是用户标识符D. 用户标识符可以作为变量名3.以下叙述不正确的是()A.在C程序中,逗号运算符的优先级最低B.在C程序中,MAX和max是两个不同的变量C.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,二b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值4.以下()是正确的变量名。
A. 5fB. ifC. f.5D. _f55.以下()是正确的常量。
A. E-5B. 1E5.1C. 'a12'D. 32766L6.若有说明语句:char c='\95'; 则变量c包含()个字符。
A. 1B. 2C. 3D. 语法错误7.语句x=(a=3,b=++a);运行后,x、a、b的值依次为()。
A. 3,3,4B. 4,4,3C. 4,4,4D. 3,4,38.语句a=(3/4)+3%2;运行后,a的值为()。
A. 0B. 1C. 2D. 39.char型变量存放的是()。
A. ASCII代码值B. 字符本身C. 十进制代码值D. 十六进制代码值10.以下叙述正确的是()A.在C程序中,每行只能写一条语句B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C.在C程序中,%是只能用于整数运算的运算符D.在C程序中,无论是整数还是实数,都能被准确无误地表示11.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为()A. D B. 68 C.不确定的值 D. C12.sizeof(float)是()A. 一个双精度型表达式B.一个整型表达式C.一种函数表达式 D.一个不合法的表达式13.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为()A.0~255B.0~32767C.0~65535D.0~2147483647 14.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为()A. floatB.charC.intD.double15.设以下变量均为int类型,则值不等于7的表达式是()A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)16.变量的指针,其含义是指该变量的()A.值B.地址C.名D.一个标志17.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是() A.a,point,*&a B.&*a,&a,*pointC.*&point,*point,&aD.&a,&*point ,point18.若有说明;int *p,m=5,n;以下正确的程序段的是()A.p=&n;B.p=&n;scanf("%d",&p); scanf("%d",*p);C. scanf("%d",&n);D.p=&n;*p=n; *p=m;二、填空题1. 设a为short型变量,描述“a是奇数”的表达式是___________________。
2. 若有以下定义,则计算表达式y+=y-=m*=y后的y值是___________。
int m=5,y=2;3. 若a是int型变量,则下面表达式的值为_____。
(a=4*5,a*2),a+64. 若有定义:float x=3.5;int z=8;则表达式 x+z%3/4 的值为______________。
5. 若x和a均是int型变量,则计算表达式(1)后的x值为_____,计算表达式(2)后的x 值为_____。
(1) x=(a=4,6*2)(2) x=a=4,6*2__________。
6.若有定义:int a=2,b=3; float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是_____。
7. 若有定义:int b=7; float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是____________。
8.以下的输出结果是________________________。
#include<stdio.h>void main(){ short i;i=-4;printf(“\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n”,i,i,i,i);}9. 以下的输出结果是_______________。
#include<stdio.h>void main(){ char c=‘x’;printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\n”,c,c,c,c);}10.以下的输出结果是_____________________。
#include<stdio.h>void main(){ int x=1,y=2;printf(“x=%d y=%d * sum * =%d\n”,x,y,x+y);printf(“10 Squared is : %d\n”,10*10);}11. 假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空。
a+=_____; b=a-_______; a-=_______;12.若x为int型变量,则执行以下语句后的x 值为_______。
x=7;x+=x-=x+x;z=m=0xFFFF13. 有一输入语句scanf(“%d”,k);则不能使float类型变量k得到正确数值的原因是____________________和____________________。
三、程序设计题1.已知圆半径的r=2.5,圆柱高h=1.8,求圆周长,圆柱体积。
2.要将“China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。
例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。
因此,”China”应译为”Glmre”。
请编写1程序,用赋初值的方法使c1、c2、c3、c4、c5 五个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,使c1、c2、c3、c4、c5分别变为‘G’、‘l’、‘m’、‘r’、‘e’、,并输出。
《C语言程序设计》练习题及答案
《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。
C程序设计基础练习题4及答案
一、单选题1、以下数组定义中,错误的是()。
A.inta[3]={‰2,3,4};B.inta[]={l,2,3};C.inta[5]={l z2,3};D.inta[5],b;正确答案:A解析:A、数组长度为3,但赋了4个初值2、设有定义inta[10]={0};则说法正确的是()。
A.数组初始化错误,初值个数少于数组元素个数B.数组a有10个元素,各元素的值为0C.数组a有1个元素,其值为0D.数组a有10个元素,其中a[0]的值为0,其他元素的值不确定正确答案:B解析:B、当定义的同时,给数组赋了初值,但初值个数小于数组长度时,剩余的数组元素全赋为03、执行下面的初始化语句,()保存的不是字符串。
A.charstr[6]={,S, ,r,,,i√n,,,g,};B.charstr[]={'S';t','r,,,i,z,n∖,g,,0};C.charstr[10]={'S',,t',,r',,i√n∖,g,,,∖0,};D.charstr[10]="String";正确答案:A解析:A、Str数组长度为6,6个元素值都不是'0)没有成为字符串B›,∖0,的ASClI码是0,初始化为。
或'∖0'是一样的。
4、设有以下定义,则数组Sl和s2()ocharsl[]={'S'z,t','r'∕i√n','g');chars2[]="String";A.长度不同,但内容相同B.长度相同,内容也相同C.长度相同,但内容不同D.长度不同,内容也不同正确答案:D解析:D、s2比Sl多一个∖0T长度多15、设已定义charstr[6]={,a√b√∖O√c√d√∖O,};执行语句printf(("%s",str)后,输出结果为()。
Python程序设计基础练习题及答案
思考与练习答案练习一1.(略)2. 答:只有在第一行为‘空’、进入到第二行时,Sublime菜单项‘文件(F)’下拉菜单中的‘保存(S)’命令才成为可用。
3. 答:程序执行和交互执行两种方式。
4. 答:C练习二1. 答:不行,因为3不是一个有效的变量名,变量名只能以英文字母或下划线打头。
2. 答:可以。
3. 答:空字符串是单引号(或双引号)里不包含任何字符的字符串。
若单引号(或双引号)里包含了一个空格字符,那就表明该字符串里有字符,因此它不是空字符串。
所以,空字符串与单引号(或双引号)里面只包含一个空格字符的字符串,它们是两个不同的字符串概念。
4. 答:第一个print语句输出Please Wait Beyond TheLine.;第二个print语句输出please wait beyond the line.;第三个print语句输出Please Wait Beyond TheLine.5. 答:第一句输出的结果是20;第二句输出的是-1。
6. 答:输出:中华人民共和国,中华人民共和国7. 答:程序中出现n时,代表的是英文中的一个小写字母n;程序中出现\n时,反斜杠后跟随的n就不再是英文中的小写字母n,这个整体被视为是换行符。
8. 答:用str1[-10:-1]截取出的切片是a student。
为了将此切片反转过来,应该做如下的两个操作,第一是先将该切片存放到另一个变量str2里:str2=str1[-10:-1];然后将str2进行反转,即:str2[::-1]。
9. 答:7、32、1。
10. 答:有两种办法,一是当字符串中出现撇号(’)时,用双引号定义该字符串;二是用转义字符\’代替直接使用撇号。
11.答:0b、0o、0x。
12. 答:(1)表示要确定变量ch里的内容是否是介于0与9之间;(2)表示要确定变量ch里的内容是否是介于小写字母a与z之间; (3)表示要确定变量ch里的内容是否是介于大写字母A与Z之间。
《计算机程序设计基础》课后练习题参考标准答案
《计算机程序设计基础》课后练习题1一.判断题(1)(错)事件过程由某个用户事件或系统事件触发执行,但不能被其他过程调用。
(2)(错)若X=2, Y=5,则表达式 Y-2>X AND X+2>Y 的结果为:True。
(3)(错)常量是指在程序运行过程中其值可以改变的那些量。
(4)(错,timer没有)VB工具箱中的所有控件都具有宽度(Width)和高度(Height)属性。
(5)(错)定义变量:Dim max,min as Single , 则max 和 min 的数据类型均为Single。
(6)(对)如果创建的菜单项的标题是一个减号“-”,则该菜单项显示为一条分隔线。
(7)(错)标准模块文件的扩展名是“*.VBP”。
(8)(错,都不能)定时器控件可以响应Click事件,但不能响应DbClick事件。
(9)(错)在默认情况下,数组下标下界的缺省值为1。
(10)(对)在使用字体对话框时,需要对其Flags属性先进行相应设置。
二.单选题(11)在Visual Basic中,表示鼠标单击事件的是 C 。
A)Activate B)DoubleClick C)Click D)MouseDown(12)用于设置计时器时间间隔的属性是 A 。
A)Interval B)Name C)Left D)Top(13)函数Int(10*Rnd)是在 D 范围内的整数。
A)[1,10] B)[1,10] C) [0,9) D)[0,9](14)Select case语句结构的结尾应使用 D 。
A)End B) End Case C) End Sub D) End Select(15)改变了容器的坐标系后,该容器的 A 属性值不会改变。
A)left B)scaleleft C)scaletop D)scalewidth(16)执行下列语句后,列表框中各表项顺序为 DList1.ClearFor i=1 to 4 : List1.AddItem i-1,0 :Next iA)B)C)D)(17)输入对话框InputBox的返回值的类型是 A 。
《程序设计基础》练习题
1.在C++的结构化程序设计框架中,程序的基本组成单元是___。
A.函数B.类
C.关系D.数据结构
2.下列特性中,C与C++共有的是_____。
A.继承B.封装C.多态性D.函数定义不能嵌套
3.面向对象程序设计思想的主要特征中,不包含____。
C.整型常量或整型表达式D.任何类型的表达式
28.若有以下说明和语句,且0<i<10,则对数组元素的错误引用是____。
int a[ ]={1,2,3,4,5,6,7,8,9,0}, *p,i;
p=a;
A.*(a+i) B.a[p-a] C.p+i D.*(&a[i])
29.若有以下定义和语句,且0<i<10,则对数组元素地址的正确表示是__。
6.下列哪个是C++语言的有效标识符?____。
A._No1 B.No.1 C.12345 D.int
7.在C++语言中,所有函数说明都必须指明返回值类型,没有返回值的函数应说明为____类型的函数。
A.int B.char C.float D.void
8.下列字符常量的写法中,错误的是____。
A.’\105’B.’*’C.’’’’D.’\a’
A.如果类A是类B的友元,那么类B也是类A的友元
B.如果函数fun( )被说明为类A的友元,那么在func( )中可以访问类A的私有成员
C.友元关系不能被继承
D.如果类A是类B的友元,那么类A的所有成员函数都是类B的友元
40.下面关于类MyClass的定义,对定义中的各语句描述正确的是____。
Class MyClass
(完整版)C语言程序设计练习题(含程序及参考答案)
(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。
#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。
〖程序设计基础〗练习题3及答案
〖程序设计基础〗练习题3一、单选题(30分)语言是( )。
A.面向问题的解释型高级编程语言B.面向机器的低级编程语言C.面向过程的编译型高级编程语言D.面向对象的解释型高级编程语言2.下列的变量定义中,错误的是( )。
A) int i; B) int i=;C) static int i=100; D) int 123_$;3.以下的变量定义语句中,合法的是( )。
A) float $_*5= ; B) byte b1= 15678;C) double a =Double. MAX_VALUE;D) int _abc_ = 3721L;4.以下字符常量中不合法的是( )。
A) '|' B) '\'' C) "\n" D) '我'5.若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是( )。
A) b = a!=7 ; B) a = 7 + b + c=9;C) i=* % 4; D) a = a + 7 = c + b;6.下列程序段执行后t5的结果是( )。
int t1 = 9, t2 = 11, t3=8;int t4,t5;t4 = t1 > t2 t1 : t2+ t1;t5 = t4 > t3 t4 : t3;A) 8 B) 20 C) 11 D) 97.设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的是( )。
A) a!=b & c%d < a B) a++ = =a+b+c+dC) ++a*b--+d D) a+b>=c+d8.执行下列程序段后,b, x, y的值分别是( )。
int x=6,y=8;boolean b;b=x>y&&++x==--y;A) true , 6, 8 B) false , 7, 7C) true, 7, 7 D) false, 6, 89.以下由do-while语句构成的循环执行的次数是( )。
第四章 程序设计基础 同步练习-粤教版(2019) 必修1数据与计算
第四章程序设计基础一、选择题1.分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决问题,最后将子问题的解组合起来形成原问题的解。
这要求原问题和子问题的()A.规模相同,性质相同B.规模相同,性质不同C.规模不同,性质相同D.规模不同,性质不同2.某算法的部分流程图如下图所示,执行该流程图,则输出s的值以及k的值是( )A.25 ,9B.36 ,11C.36 ,13D.49 ,153.以下流程图符号是输入输出框的是()A.B.C.D.4.如图所示的流程图,当输入16、80时,输出16;当输入20、18时,输出18,则虚线框中应填入的是()。
A.c=a,c=b B.c=b, c=a C.c=max(a,b)D.c=min(a,b) 5.观察流程图,下列关于算法特征表述错误..的是()A.算法可以没有数据输入B.算法必须至少有一个输出C.该流程图符合算法的有穷性特征D.该流程图中s=s+1体现了算法的确定性6.下面四个选项中,全部是C语言关键字的选项是()A.auto enum includeB.switch type def continueC.signed union scanfD.if struct type7.某算法的部分流程图如图所示。
执行这部分流程,则输出a的值为()A.1B.4C.8D.128.计算机能够直接识别和执行的语言是( )A.机器语言B.汇编语言C.Python 语言D.C语言二、简答题9.程序设计语言有哪些,分别具备什么特点。
10.思考高楼的自动电梯在运行时需要考虑哪些方面(例如方便乘客,节约能源等),请为自动电梯设计一个适宜的算法。
三、操作题11.某数据解密算法描述如下:(1)在输入的数字字符串中依次提取有效的密文,有效的密文的特点:①是一组连续的,都小于5的三位数字串;②每个位置上的数字不能被重复提取;(2)对有效密文进行解密的过程:将密文作为一个五进制数转换为对应的十进制数值,根据ASCII字符的十进制编码表,得出对应的明文字符(提示:空格符所对应的ASCII码值为十进制数32,小写字母“z”所对应的ASCII码值为十进制数122).例如,密文242转换成十进制数为72,对应的明文字符为大写字母“H”。
Java程序设计基础练习题1(含答案).doc
( g.(”你好!”,10,20);}
3.下面是用户程序对Applet类中方法action()的重新定义,功能为从单行文本编辑区i叩ut中输入数据赋给k= TextField类的对象input和int型变量k已在类体中正确说明。
public action( Event e, Object o )
for ( count = 1; count <= 10; count++ ) if ( count == 8 )
break;
g.drawString( " " + count, xPos, 25 );
四、程序填空
阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。
1.下面是一个类的定义。
class//定义名为myclass的类
(
int var=666;
static int getvar()
(
return var;
}
}
2.下面是用户程序对Applet类中方法paint()的重:新定义。
8.下列语句序列执行后,k的值是()。
int i=6, j=8, k=10, n=5, m=7;
if( i<j II m<n ) k++; else k—;
A) 9 B) 10C) 11 D) 12
9.下列语句序列执行后,r的值是()。
char ch='8'; inti-IO;
switch( ch+1 )
( if( e.target==input)
k=lnteger.parselnt(.getText());
程序设计语言基础练习试卷2(题后含答案及解析)
程序设计语言基础练习试卷2(题后含答案及解析) 题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1.______是有运行时把过程调用和响应调用需要的代码加以结合的过程。
A.词法分析B.静态绑定C.动态绑定D.预编译正确答案:C解析:动态绑定是在程序运行过程中发生的,选项C为正确答案。
其他选项都是在程序编译过程中或编译前发生的。
知识模块:程序设计语言基础2.函数调用采用______方式时,系统将实参的地址传递给形式参数。
A.传值调用B.引用调用C.宏调用D.内部调用正确答案:B解析:形参为形式参数,是在定义函数名和函数体的时候使用的参数。
实参为实际参数,是在调用时传递该函数的参数。
函数调用时,传值是把实参的值赋值给行参,对行参的修改,不会影响实参的值。
引用调用时,以地址方式传递参数。
传递以后,行参和实参都是同一个对象,只是名字不同而已,对行参的修改将影响实参的值。
选项B是正确答案。
知识模块:程序设计语言基础3.在C语言中,若函数调用时实参是数组名,则传递给对应形参的是______。
A.数组空间的首地址B.数组的第一个元素值C.数组中元素的个数D.数组中所有的元素正确答案:A解析:在C语言中,数组名表示该数组的起始地址,如果函数调用时,实参为数组名,那么,传递给形参的是数组的首地址。
本题正确答案为选项A。
知识模块:程序设计语言基础4.对高级语言源程序进行编译时,可发现源程序中的______错误。
A.堆栈溢出B.变量未定义C.指针异常D.数组元素下标越界正确答案:B解析:高级语言源程序中的错误分为两类:语法错误和语义错误。
①语法错误指语言结构上的错误。
②语义错误又可分为静态语义错误和动态语义错误。
静态语义错误指编译时就能发现的程序含义上的错误,动态语义错误只有在程序运行时才能表现出来。
堆栈溢出、指针异常和数组元素下标越界都是程序运行中才能出现的问题,而遵循先声明后引用原则的程序语言必须先定义变量,然后才能使用,否则编译器会在语法分析阶段指出变量未定义错误。
