试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.以下程序的输出结果是() main() {char a[10]=”6789”,*p; p=a; printf(“%s ”,p);
A.6
B.6789
C.'6'
D.789
2.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
3.以下说法中正确的是()
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main( )中有定义
C.C语言程序的执行既可以采用解释方式,也可以采用编译方式
D.C语言程序中的main( )函数可以不放在程序的开始部分
4.在C语言中,数字009是一个()
A.八进制数
B.十六进制数
C.十进制数
D.非法数
5.若有以下的定义int t[3][2];能正确表示t数组元素地址的表达式是()
A.&t[3][2]
B.t[3][2]
C.t[1][0]
D.t[2]+1
6.以下程序段的输出结果是() int x=3; do {printf(“%3d”,x-=2);} while(!(--x));
A.1
B.3 0
C.1 -2
D.死循环
7.在宏定义 #define PI 3.14159中,用宏名PI代替一个()
A.常量
B.单精度数
C.双精度数
D.字符串
8.以下数组定义中不正确的是()
A.int a[2][3];
B.int b[][3]={0,1,2,3};
C.int c[100][100]={0};
D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
9.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()
A.a<>0
B.!a
C.a=0
D.a
10.若有声明语句int a[10],b[3][3];则以下对数组元素赋值的操作中,不会出现越界访问的是()
A.a[-1]=1
B.a[10]=0
C.b[3][0]=0
D.b[0][0]=0
11.下述对C语言字符数组的描述中错误的是()
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
12.若有说明int i,j=7,*p=&i;,则与i=j;等价的语句是()
A.i=*p;
B.*p=*&j;
C.i=&j;
D.i=**p;
13.以下选项中,非法的字符常量是()
A.' '
B.'17'
C."n"
D.'xaa'
14.设有如下定义 int x=10,y=3,z; 则语句 printf(“%d ”,z=(x%y,x/y)); 的输出结果是()
A.1
B.0
C.4
D.3
15.若函数调用时用数组名作为函数参数,以下叙述中,不正确的是()
A.实参与其对应的形参共占用同一段存储空间
B.实参将其地址传递给形参,结果等同于实现了参数之间的双向值传递
C.实参与其对应的形参分别占用不同的存储空间
D.在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组
16.C语言中,凡未指定存储类别的局部变量的隐含存储类别是()
A.auto
B.static
C.extern
D.register
17.当调用函数时,实参是一个数组名,则向函数传送的是()
A.数组的长度
B.数组的首地址
C.数组每一个元素的地址
D.数组每个元素中的值
21.以下定义语句中,错误的是()
A.int a[]={1,2};
B.char *a[3];
C.char s[10]="test";
D.int n=5,a[n];
19.有如下函数调用语句 func(rec1,rec2+rec3,(rec4, rec5));该函数调用语句中,含有的实参个数是()
A.3
B.4
C.5
D.有语法错误
20.C语言提供的合法的数据类型关键字是()
A.Double
B.short
C.integer
D.Char
21.在C语言中,合法的长整型常数是()
A.0L
B.4962710
C.0.054838743
D.2.2169e10
22.下面程序输出的结果是()
{图}
A.0
B.1
C.3
D.3.333333
23.在C语言中,数字023是一个()
A.八进制数
B.十六进制数
C.十进制数
D.非法数
24.下列运算符中,优先级最低的是()
A.||
B.!=
C.<=
D.+
25.若有说明int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是()
A.i=*p;
B.*p=j;
C.i=&j;
D.*p=*j;
26.C语言中最简单的数据类型包括()
A.整型、实型、逻辑型
B.整型、实型、字符型
C.整型、字符型、逻辑型
D.整型、实型、逻辑型、字符型
27.设有说明语句char a= '72';则变量a()
A.包含3个字符
B.包含2个字符
C.包含1个字符
D.说明不合法
28.下面程序段的运行结果是()
{图}
A.12345
B.1234
C.15
D.无限循环
29.已知有声明语句char s1[10]="abcde",s3[10];以下语句中能将s1中存储的字符串和s2中存储的字符串正确交换的是()
A.s3=s1,s1=s2,s2=s3;
B.s3[0]=s1[0],s1[0]=s2[0],s2[0]=3[0];
C.strcpy(s3[0],s1[0]),strcpy(s1[0],s2[0]),strcpy(s2[0],s3[0]);
D.strcpy(s3,s1),strcpy(s1,s2),strcpy(s2,s3);
30.函数pi的功能是根据以下近似公式求π值()
{图}
A.1/i*i
B.1.0/i*i
C.1.0/(i*i)
D.1.0/(n*n)
川农《C语言(本科)》22年11月课程考核[资料答案]多选题答案
二、判断题 (共 10 道试题,共 20 分)
31.自动变量属于局部变量。()
32.用scanf输入字符时,字符串中不能包含空格。()
33.已知char c=48;int i=1,j=10;执行语句j=!(c>j)&&i++;则i和j的值分别是1和0。 ()
34.数组的大小是可变的,但所有数组元素的类型必须相同。()
35.字符常量的长度肯定为1。()
36.Continue可用来实现循环的中止。()
37.在程序运行过程中,系统分配给实参和形参的内存单元是不同的。()
38.只能在循环体内和switch语句体内使用break语句()
39.在对某一函数进行多次调用时,系统会对相应的自动变量重新分配存储单元。()
40.一个函数利用return只能返回一个函数值。()
三、简答题 (共 2 道试题,共 20 分)
41.阅读下列程序段,写出程序运行结果
{图}
川农《C语言(本科)》22年11月课程考核[答案]国开电大历年参考题目如下: