答案2016年秋季《C语言程序设计》北京理工大学
2016年秋季《C语言程序设计》北京理工大学一、单选题:
1.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是( )。 (满分:2)
A. 地址传递
B. 值传递
C. 由实参传给形参,并由形参传回给实参
D. 由用户指定传递方式
2.若有char a,b;则正确的是( )。 (满分:2)
A. puts(a
b);
B. printf(“%s
%s”a[ ]
b[ ]);
C. putchar(a
b);
D. puts(a);puts(b);
3.执行以下程序段后,c3的值是( )。int c1=1,c2=2,c3; c3=c1/c2; (满分:2)
A. 0
B. 1/2
C. 0.5
D. 1
4.main(argc,argv)中形式参数argv的正确说明形式应当为( )。 (满分:2)
A. char *argv[ ]
B. char argv[ ][ ]
C. char argv[ ]
D. char *argv
5.若int a,b,c;则为它们输入数据的正确的语句是( )。 (满分:2)
A. read(a
b
c);
B. scanf("%d%d%d"
a
b
c);
C. scanf("%D%D%D"
&a
&b
&c);
D. scanf("%d%d%d"
&a
&b
&c);
6.以下程序的输出结果是( )。main( ){int i,k,a,p;k=5;for(i=0;i<10;i++)a=i;for(i=0;i<3;i++)p=a;for(i=0;i<3;i++)k+=p*2;printf(“%d”,k); } (满分:2)
A. 20
B. 21
C. 22
D. 23
7.已知: struct{int i; char c; float a; }test;则sizeof(test)的值是( )。 (满分:2)
A. 4
B. 5
C. 6
D. 7
8.若int x;则执行下列程序段后输出是( )。for(x=10;x>3;x--){if(x%3)x--;--x;--x;printf(“%d”,x);} (满分:2)
A. 63
B. 74
C. 62
D. 73
9.执行以下程序段后,a,b,c的值分别是( )。int a,b=100,c,x=10,y=9;a=(--x= =y++)?—x:++y; if(x<9) b=x++;c=y; (满分:2)
A. 9
9
9
B. 8
8
10
C. 9
10
9
D. 1
11
10
10.下列说法中正确的是( )。 (满分:2)
A. break用在switch语句中,而continue用在循环语句中。
B. break用在循环语句中,而continue用在switch语句中。
C. break能结束循环,而continue只能结束本次循环。
D. continue能结束循环,而break只能结束本次循环。
11.下面描述中,不正确的是( )。 (满分:2)
A. 递归法的关键是必须有一个递归终止的条件。
B. 递归算法要求语言具有反复自我调用子程序的能力。
C. 对于同一个问题,递推算法比递归算法的执行时间要长。
D. 递推算法总可以转换为一个递归算法。
12.已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量a的值为( )。 (满分:2)
A. 0
B. 1
C. 4
D. 5
13.以下程序的输出是( )。main( ){char a={“6937”,”8254”};int i,j,s=0;for(i=0;i'0'&&a<='9';j+=2)s=10*s+a-‘0’;printf(“s=%d”,s);} (满分:2)
A. 6385
B. 69825
C. 63825
D. 693825
14.要判断char型变量m是否是数字字符,可以使用下列表达式( )。 (满分:2)
A. 0<=m&&m<=9
B. '0'<=m&&m<='9'
C. “0”<=m&&m<=“9”
D. 前3个答案都是错误的
15.已知:struct sk{int a;float b; }data,*p;若有p=&data, 则对data中的成员a的正确引用是( )。 (满分:2)
A.(*p).data.a
B.(*p).a
C. p->data.a
D. p.data.a
16.不能正确为字符数组输入数据的是( )。 (满分:2)
A. char s;scanf(“%s”
&s);
B. char s;scanf(“%s”
s);
C. char s;scanf(“%s”
&s);
D. char s;gets(s);
17.下列程序段( )。x=3;do{y=x--;if(!y){printf(“x”);continue;}printf(“#”);}while(1<=x<=2); (满分:2)
A. 输出
B.
C. 输出##x
D. 是死循环
E. 有语法错
18.执行下列程序段后,x、y和z的值分别是( )。int x=10,y=20,z=30;if(x>y)z=x; x=y; y=z; (满分:2)
A. 10
20
30
B. 20
30
30
C. 20
30
10
D. 20
30
20
19.为了显示一个文本文件的内容,在打开文件时,文件的打开方式应当时( )。 (满分:2)
A. "r+"
B. "w+"
C. "wb+"
D. "ab+"
20.下列对字符串的定义中错误的是( )。 (满分:2)
A. char str="FORTRAN"
B. char str[ ]=" FORTRAN"
C. char *str="FORTRAN"
D. char str[ ]={'F'
'O'
'R'
'T'
'R'
'A'
'N'
'
21.在以下对C语言的描述中,正确的是( )。 (满分:2)
A. 在C语言中调用函数时,只能将实参数的值传递给形参,形参的值不能传递给实参
B. C语言函数既可以嵌套定义又可以递归调用
C. 函数必须有返回值,否则不能使用函数
D. C语言程序中有定义关系的所有函数都必须放在同一源文件中
22.执行下面的语句后x的值为( )。int a=14,b=15,x;char c='A';x=((a&b)&&(c<'a')); (满分:2)
A. TRUE
B. FLASE
C. 0
D. 1
23.说明语句"int(*p)( ); "的含义是( )。 (满分:2)
A. p是一个指向一维数组的指针变量
B. p是一个指针变量,指向一个整型数据
C. p是一个指向函数的指针,该函数的返回值是一个整型
D. 以上都不对
24.if语句的控制条件( )。 (满分:2)
A. 只能用关系表达式
B. 只能用关系表达式或逻辑表达式
C. 只能用逻辑表达式
D. 可以是任何表达式
25.若有以下定义和语句:struct student{int num,age;};struct student stu={{1001,20},{1001,19},{1003,21}};struct student *p=stu;则以下错误的引用是( )。 (满分:2)
A.(p++)->num
B. p++
C.(*p).num
D. p=&stu.age
26.已知:char s,*p=s,则在下列语句中,错误的语句是( )。 (满分:2)
A. p=s+5;
B. s=p+s;
C. s=p;
D. *p=s;
27.在C语言的函数定义过程中,如果函数finA调用了函数funB,函数funB又调用了函数funA,则( )。 (满分:2)
A. 称为函数的直接递归
B. 称为函数的间接递归
C. 称为函数的递归定义
D. C语言中不允许这样的递归形式
28.以下对C语言中联合类型数据的正确叙述是( )。 (满分:2)
A. 一旦定义了一个联合变量后,即可引用该变量或该变量中的任意成员
B. 一个联合变量中可以同时存放其所有成员
C. 一个联合变量中不能同时存放其所有成员
D. 联合类型数据可以出现在结构类体型定义中,但结构体类型数据不能出现在联合类型定义中
29.以下( )不是C语言的特点。 (满分:2)
A. 语言的表达能力
B. 语言定义严格
C. 数据结构系统化
D. 控制流程结构化
30.利用fseek函数可以( )。 (满分:2)
A. 改变文件的位置指针
B. 实现文件的顺序读写
C. 实现文件的随机读写
D. 以上答案均正确
31.下面个选项组中,均属于C语言关键字的一组是( )。 (满分:2)
A. auto
enum
include
B. switch
typedef
continue
C. signed
union
scanf
D. if
struct
type
32.C语言结构类型变量在程序执行期间( )。 (满分:2)
A. 所有成员一直驻留在内存中
B. 只有一个成员驻留在内存中
C. 部分成员驻留在内存中
D. 没有成员驻留在内存中
33.下面程序的输出结果是( )。main( ){int i,j;float s;for(i=6;i>4;i--){s=0.0;for(j=i;j>3;j--)s=s+i*j;}printf(“%f”,s);} (满分:2)
A. 135.000000
B. 90.000000
C. 45.000000
D. 60.000000
34.以下正确的数组定义语句是( )。 (满分:2)
A. int y={1
2
3
4,5};
B. float x[ ]={{1}
{2}
{3}};
C. long s={{1}
{1
2}
{1
2
3}};
D. double t[ ]={0};
35.下列程序执行的结果是( )。A=1;b=2;c=3;While(b<a<c){t=a;a=b;b=t;c--;}printf(“%d,%d,%d”,a,b,c); (满分:2)
A. 1
2
0
B. 2
1
0
C. 1
2
1
D. 2
1
1
36.C编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是( )。 (满分:2)
A. 编辑和编译
B. 编译和连接
C. 连接和运行
D. 编辑和运行
37.若在键盘上输入:283.1900,想使单精度实型变量c的值为283.19,则正确的输入语句是( )。 (满分:2)
A. scanf("%f"
&c);
B. scanf("8.4f"
&c);
C. scanf("%6.2f"
&c);
D. scanf("8f"
&c);
38.以下程序的输出结果是( )。main( ){int i,x={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)printf(“%d,”x);} (满分:2)
A. 1
5
9
B. 1
4
7
C. 3
5
7
D. 3
6
9
39.已知:int a,*p=&a; 则下列函数调用中错误的是( ) (满分:2)
A. scanf("%d"
&a);
B. scanf("%d"
p);
C. printf("%d"
a);
D. printf("%d"
p);
40.已知:int x=1,y=2,z;则执行z=x>y?++x:++y;则z的值为( )。 (满分:2)
A. 1
B. 2
C. 3
D. 4
三、判断题:
1.在标准C语言中,可以用typedef定义类型,所以用typedef可以增加C语言的数据类型。 (满分:2)
A. 错误
B. 正确
2.若函数的返回值与return表达式类型不一致时,以return 表达式类型为准。 (满分:2)
A. 错误
B. 正确
3.switch(表达式)中的表达式可以是任意类型的表达式。 (满分:2)
A. 错误
B. 正确
4.“%”运算两侧的数据可以是任意类型的数据。 (满分:2)
A. 错误
B. 正确
5.在标准C语言中,所有函数在调用之前都要进行声明。 (满分:2)
A. 错误
B. 正确
6.设有变量定义char s[]=”hello”,则数组中有6个元素。 (满分:2)
A. 错误
B. 正确
7.结构体变量在内存中所占的字节数是由其各个成员所占字节的总和。 (满分:2)
A. 错误
B. 正确
8."A"是一个字符常串量。 (满分:2)
A. 错误
B. 正确
9.在C语言中,逻辑表达式中只允许出现逻辑型数据。 (满分:2)
A. 错误
B. 正确
10.在C语言中,以“r”方式不能打开并不存在的文件。 (满分:2)
A. 错误
B. 正确
**** Hidden Message *****
页:
[1]