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