C语言单选题复习Answers

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.一个完整的可运行的C源程序中(B )。

A.可以有一个或多个主函数B.必须有且仅有一个主函数
C.可以没有主函数D.必须有主函数和其他函数.
2.构成C语言源程序的基本单位是()。

D
A.子程序B.过程C.文本D.函数
3.某C程序由一个主函数main( )和一个自定义函数max( )组成,则该程序
()。

D
A.总是从max( )函数开始执行B.写在前面的函数先开始执行
C.写在后面的函数先开始执行D.总是从main( )函数开始执行
4.C语言源程序文件的后缀是( C ),经过Compile后,生成文件的后缀是
( A ),经过Build后,生成文件的后缀是( B )。

A..obj B..exe C..c D..doc
5.C语言中运算对象必须是整型的运算符是( A )。

A.% B./ C.= D.〈=
6.若已定义x和y为int类型,则执行了语句x=1;y=x+3/2;后y的值是(B )。

A.1 B.2 C.2.0 D.2.5
7.若有以下程序段:
int a=1,b=2,c;
c=1.0/b*a;
则执行后,c中的值是(A )。

A.0 B.0.5 C.1 D.2
8.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是(D )。

A.a>=10 or a<=0 B.a>=0|a<=10
C.a>=10 && a<=0 D.a>=10‖a<=0
9.设x=3,y=4,z=5,则表达式((x+y)>z)&&(y==z)&&x||y+z&&y+z的值为( B )。

A.0 B.1 C.2 D.3
10.如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为( A )。

A.1 B.2 C.3 D.4
11.C语言中,逻辑“真”等价于( C )。

A.整数1 B.整数0 C.非0数D.TRUE
12.C语言中while与do-while语句的主要区别是( A )。

A.do-while的循环体至少无条件执行一次
B.do-while允许从外部跳到循环体内
C.while的循环体至少无条件执行一次
D.while的循环控制条件比do-while的严格
13.语句while (!a);中条件等价于(D )。

A.a!=0 B.~a C.a==1 D.a==0
14.为了避免嵌套的if-else语句的二义性,C语言规定else总是(C )。

A.与缩排位置相同的if组成配对关系
B.与在其之前未配对的if组成配对关系
C.与在其之前未配对的最近的if组成配对关系
D.与同一行上的if组成配对关系
15.对于for (表达式1; ;表达式3)可理解为(B )。

A.for (表达式1; 0 ;表达式3)
B.for (表达式1; 1 ;表达式3)
C.for (表达式1;表达式1;表达式3)
D.for (表达式1;表达式3;表达式3)
16.for(i=1;i<9;i+=1);该循环共执行了 B 次。

A. 7
B. 8
C. 9
D. 10
17.int a=2;while(a=0) a--;该循环共执行了 A 次。

A. 0
B. 1
C. 2
D. 3
18.执行完循环for(i=1;i<100;i++);后,i 的值为 B 。

A. 99
B. 100
C. 101
D. 102
19.函数swap(int x, int y)可实现对x和y值的交换。

在执行如下定义及调用语句
后,a和b的值分别为( B )。

int a=10, b=20;
swap (a,b );
A.10和10 B.10和20 C.20和10 D.20和20
20.下面错误的叙述是( D )。

A.在某源程序不同函数中可以使用相同名字的变量
B.函数中的形式参数是局部变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量在本函数范围内有效
21.若定义a[ ][3]={0,1,2,3,4,5,6,7}; ,则a数组中行的大小是( B )。

A.2 B.3 C.4 D.无确定值
22.若执行以下程序段,其运行结果是(D )。

char c[ ]={'a', 'b', '\0', 'c', '\0'};
printf ( "%s\n", c );
A.ab c B.'a''b' C.abc D.ab 23.在定义int a[5][4];之后;对a的引用正确的是(C )。

A.a[2][4]B.a[5][0]C.a[0][0]D.a[0,0]
24.当接受用户输入的含空格的字符串时,应使用函数(B )。

A.scanf( ) B.gets( )C.getchar( ) D.getc( )
25.被调函数通过 D 语句,将值返回给主调函数。

A. if
B. for
C. while
D. return
26.设先有定义:
int a=10;
则表达式a+=a *=a的值为(D 自右向左进行运算)。

A.10 B.100 C.1000 D.200 27.设先有定义:
int a=10;
则表达式(++a)+(a --)的值为(C )。

A.20 B.21 C.22 D.19
28.有如下程序:
#include <stdio.h>
main( )
{
int y=3,x=3,z=1;
printf("%d %d\n",(++x,y++),z+2);
}
运行该程序的输出结果是( D )。

A.3 4 B.4 2 C.4 3 D.3 3 29.假定x、y、z、m均为int型变量,有如下程序段:
x=2; y=3; z=1;
m=(y<x)?y: x;
m=(z<y)?m:y;
则该程序运行后,m的值是( C )。

A.4 B.3 C.2 D.1
30.以下选项中合法的字符常量是(B )。

A."B" B.'\010' C.68 D.D
A中界限符不对,用双引号括起来的是字符串。

C和D不是由单引号括起来的字
符常量,只有B,是一个转义字符。

因此,正确答案为B。

31.如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为(A )。

A.1 B.2 C.3 D.4
32.设int m=1,n=2; 则m++==n的结果是(B )。

A.0 B.1 C.2 D.3
33.设ch是char型变量,其值为'A',则下面表达式的值是(B )。

ch=(ch>='A'&& ch<='Z')? (ch+32):ch
A. A
B. a
C. Z
D. Z
34.字符串的结束标志是( C )。

A. 0
B. '0'
C. '\0'
D. "0"
35.int b=0,x=1;执行语句if(x++) b=x+1; 后,x,b 的值依次为 A 。

A. 2,3
B. 2,0
C. 3,0
D. 3,2
36.设有语句int a=3;,则执行了语句a+=a-=a*=a; 后,变量 a 的值是
B 。

A. 3
B. 0
C. 9
D. -12
37.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为
B 。

A. 算术运算、赋值运算、关系运算
B. 算术运算、关系运算、赋值运算
C. 关系运算、赋值运算、算术运算
D. 关系运算、算术运算、赋值运算
38.逻辑运算符中,运算优先级按从高到低依次为 D 。

A. &&,!,||
B. ||,&&,!
C. &&,||,!
D. !,&&,||
39.在以下一组运算符中,优先级最低的运算符是 D 。

A.*
B. !=
C. +
D. =
40.以下用户标识符中,合法的是 B 。

A. int
B. nit
C. 123
D. a+b
41.printf("%c,%d",'a', 'a');的输出结果是 A 。

A. a,97
B. a 97
C. 97,a
D. 97 a
42.a 是int类型变量,c是字符变量,下列输入语句中哪一个是错误的 B 。

A. scanf("%d,%c",&a,&c);
B. scanf("%d%c",a,c);
C. scanf("%d%c",&a,&c);
D. scanf("d=%d,c=%c",&a,&c);
43.int a[4]={5,3,8,9};其中a[3]的值为( D )。

A. 5
B. 3
C. 8
D. 9
44.若有以下数组说明,则数值最小的和最大的元素下标分别是( B )。

int a[12] = {1,2,3,4,5,6,7,8,9,10,11,12};
A. 1,12
B. 0,11
C. 1,11
D. 0,12
45.若有以下说明,则数值为4 的表达式是( D )。

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;
A.a[g-c]
B. a[4]
C. a['d'-'c']
D. a['d'-c]
46.设有定义:char s[12] = "string" ; 则printf( "%d\n",strlen(s)); 的输出是
( A )。

A. 6
B. 7
C. 11
D. 12
47.下列定义的字符数组中,输出printf("%s\n", str[2]) ;的输出是( C )。

static str[3][20] ={ "basic", "foxpro", "windows"};
A.basic
B. foxpro
C. windows
D. 输出语句出错
48.下列各语句定义了数组,其中哪一个是不正确的( C )。

A. char a[3][10]={"China","American","Asia"};
B. int x[2][2]={1,2,3,4};
C. float x[2][ ]={1,2,4,6,8,10};
D. int m[][3]={1,2,3,4,5,6};
49.数组定义为int a[3][2]={1,2,3,4,5,6},值为6的数组元素是( B )。

A. a[3][2]
B. a[2][1]
C. a[1][2]
D. a[2][3]。

相关文档
最新文档