专升本计算机(数据库技术与程序设计语言)模拟试卷6
程序阅读题
1.下列程序的运行结果是________。(注:运行结果中,用口表示空格。)
#include
int fun(int x,int y)
{
static int m=0,i=2;
i+=m+1;
m=i+x+y;
return m;
}
void main()
{
int j=1,m=1,k;
k=fun(j,m);
printf(“%3d”,k);
k=fun(j,m);
printf(“%3d”,k);
}
□□5□11
解析:本题考查的是静态局部变量的特点。本题中,在fun函数内以static。声明的局部变量m和i为静态局部变量。静态局部变量在调用函数之前就已经生成,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的内存单元,变量将保持现有的值,直到程序终止才失效。若在定义静态局部变量时赋了初值,则在程序开始执行时就执行了赋初值操作,调用函数时不会执行赋初值操作。因此,对于静态局部变量m和i,在程序开始执行时便分别赋了初值0和2,而在main函数中两次调用fun函数时,不再对m和i重新赋初值,m和i将保持现有的值。核心代码运行过程如下:
(1)程序开始执行,静态局部变量m赋初值为0,静态局部变量i赋初值为2。
(2)main函数第一次执行k=fun(j,m);,调用fun函数,初始时m=0,i=2,fun函数执行完后,i的值为3,m的值为5,返回m的值5,所以main函数中打印k的值5(按照格式控制符打印的是□□5)。
(3)main函数第二次执行k=fun(j,m);,调用fun函数,初始时m=5,i=3,fun函数执行完后,i的值为9,m的值为11,返回m的值11,所以,main函数中打印k的值11(按照格式控制符打印的是口11)。
填空题
2.一个C语言程序的基本组成单位是________。
函数
解析:C语言程序的基本组成单位是函数。在C语言程序中可以包含一个或多个函数,但是有且只有一个名为main的函数。
3.C语言的三种循环语句分别是________、________、________。
while,do—while,for
解析:C语言中的循环语句分为三种:①while语句,先判断表达式,后执行循环体语句,因世循环体语句至少执行0次。②do–while语句,先执行循环体语句,后判断表达式,因此循环体语句至少执行1次。注意,while(表达式)后面必须带一个分号“;”。③for语句,可以省略任何一个或两个表达式,甚至三个表达式都可以不写,但是两个分号“;”不能省略;若表达式2省略,则相当于表达式2的值为真,一般会与break语句结合使用以跳出循环。
4.当a=5,b=4,c=2时,表达式a>b!=C的值是________。
1
解析:由于>的优先级高于!=,所以先计算a>b,其值为真,即为1,再计算1!=c,其值为真,即为1,故整个表达式的值是1。
单选题
5.按照标识符的要求,( )符号不能组成标识符。(A)
A. 连接符
B. 下划线
C. 大小写字母
D. 数字
解析:标识符由字母、数字和下划线组成。
6.已知int x=(1,2,3,4);,变量x的值是( )。(D)
A. 1
B. 2
C. 3
D. 4
解析:逗号表达式的值为最后一个表达式的值。
7.下列说法错误的是( )。(A)
A. 一个C语言程序只能实现一种算法
B. C语言程序可以由多个程序文件组成
C. C语言程序可以由一个或多个函数组成
D. 一个C函数可以单独作为一个C语言程序文件存在
解析:一个C语言程序可以有一个或多个程序文件,也可以有一个或多个函数,一个C语言程序可以实现多种算法。
8.已知字母A的ASCII码为十进制数65,且C2为字符型,则执行语句C2=‘A’+‘6’-‘3’;后,C2中的值为( )。(A)
A. D
B. 68
C. 不确定的值
D. C
解析:字符型进行加法运算,先转换成对应的ASCII码值,字母A对应65,字符‘6’-‘3’的结果为3,则65+3结果为68,ASCII码值为68的是字母D,故选项A正确。
9.若t为double类型,则表达式t=1,t+5,t++的值是( )。(D)
A. 1
B. 6.0
C. 2.0
D. 1.0
解析:本题中的表达式为逗号表达式。逗号表达式的求值顺序是从左向右依次计算各个表达式的值,最后一个表达式的值就是此逗号表达式的值。若t为double类型,则表达式t=1,t+5,t++的计算过程:第一个表达式t=1的值为1.0;第二个表达式t+5的值为6.0,注意,此时t的值仍为1.0;第三个表达式t++的值为1.0,因为自增运算符++是后置运算,先运算后自增。因此,逗号表达式的值即为最后一个表达式的值1.0。
10.若a为整型变量,则下列语句( )。
a=-2L;
printf(“%d\n”,a);(B)
A. 赋值不合法
B. 输出值为-2
C. 输出为不确定值
D. 输出值为2
解析:a为整型变量,在后面加上字母l或L,编译器将会认为这是long int型常量,所以输出结果为-2。
11.下列四个选项中,均属于非法常量的是( )。(A)
A. ‘as’-0fff‘\0a’
B. ‘\\’“019”12,456
C. 0×18 01177 0xf
D. 0xabc ‘\0’“a”
解析:字符常量是用一对单引号引起来的。字符常量只能是单个字符(以反斜线“\ ”开头的转义字符除外),不能是多个字符。选项B,‘\\’和‘019’是合法常量。选项C,-0x18、0xf是合法常量,是八进制数;01177也是合法常量,是八进制数。选项D,0xabc是合法常量,是十六进制数;‘\0’为空值,其ASCII码值为0,合法;“a”是字符串常量,合法。
12.表达式18/4*sqrt(4.0)/8 算结果的数据类型为( )。(C)
A. int
B. float
C. double
D. 不确定
解析:整型和实型参与运算,运算结果的最终数据类型都会转换成double。
13.逗号表达式(a=3*5,a*4),a+15的值为( )。(C)
A. 15
B. 60
C. 30
D. 不确定
解析:逗号表达式的求值顺序是从左向右依次计算各个表达式的值,最后一个表达式的值就是此逗号表达式的值。本题中,第一个表达式
本文档预览:3500字符,共6818字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载