资源描述
(完整版)C语言选择题(附答案)
第一单元 C语言概述
一、选择题
1、C语言中主函数的个数为( A)个。
A)1 B)2
C)无穷个 D)任意个
2、以下关于C语言描述错误的是( D)。
A)一个C程序总是从main函数开始执行T
B)每个语句和数据声明的最后必须有一个分号T
C)C语言的注释符是以“/*”开始并以“*/”结束的 T
D)一个C程序可以包含多个main函数F
3、C 语言源程序文件后缀为( C ).
A).EXE B).OBJ C) .C D).ASM
4、C语言是由( C )组成的.
A)子程序 B)主程序与子程序 C)函数 D)过程
5、C语言属于( B )语言
A)机器语言 B)汇编语言 C)高级语言 D)面向对象语言
第二单元 C语言基础
一、选择题
1、C语言中普通整型变量int在内存中占( B )字节。
A)1 B)2 C)3 D)4
2、下列不是C语言基本数据类型的是 ( A )。
A)字符型 B) 整型
C) 浮点型 D) 结构体
3、有关自增、自减运算,以下只有( D )是正确的。
A) ——-f B) ++78 C) a—b++ D) d++
4、已知A=7.5,B=2,C=3.6,表达式(A>B && C〉A) || (A<B && !C〉B)的值是( A )。
A)0 B)10 C)1 D)5
5、若有x=1,y=2,z=3,则表达式(x〈y?x:y)= =z的值是( D )。
A)1 B)2 C)3 D)0
6、 判断char型变量ch是否为大写字母的正确表达式是( C )。
A) ‘A'<=ch<=‘Z’ B) (ch>=‘A')&(ch<=‘Z’)
C) (ch>=‘A’)&&(ch〈=‘Z') D) (‘A’<= ch)AND(‘Z’〉= ch)
7、判断整型变量digit是否为数字的正确表达式是( C )。
A) ‘0'〈=ch〈=‘9’ B) (ch>=‘0’)&(ch〈=‘9')
C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’〈= ch)AND(‘9’>= ch)
8、 一个C程序的执行是从( A ).
A) 本程序的main函数开始,到main函数结柬
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
9、在以下标识符中,合法的是( C )
A)if B) 0xy C)_xy D)case
10、C语言中各种类型的数据其实决定了占用内存的字节数。float占( C )。
A)一字节 B)二字节 C)四字节 D)八字节
11、下列各选项中,( A )是有效的标识符。
A)ab B)3day C)day-3 D)#abc
12、以下叙述正确的是( C )
A) 在C程序中,每行只能写一条语句
B) 若a是实型变量,C程序中不允许a=10这种赋值。
C) 在C程序中,%是只能用于整数运算的运算符
D) 在C程序中,无论是整数还是实数,没有什么区别
13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量 a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( B ).
A)132↙ B)1,3,2↙
C)a=1 b=3 c=2↙ D)a=1,b=3,c=2↙
14、设整型变量a为5,使b不为2的表达式是( C )。
A) b = a/2 B) b = 6-(-—a) C) b=a%2 D) b=a〉3?2:1
15、以下程序的输出结果是( D ).
int x=10,y=10;
printf(“%d %d\n”,x——,——y);
A) 10 10 B) 9 9 C) 9 10 D) 10 9
16、选出下列标识符中不是合法的标识符的是( D )。
A) hot_do B) cat1 C) _pri D) 2ab
17、设有如下定义: int x=10,y=3,z;
则语句printf(”%d\n",z = x%y); 的输出结果是( D )。
A) 1 B) 0 C) 4 D) 3
18、各种基本数据类型的存贮空间正确的长度排列为( C )。
A)int 〈 char <float<double B)double<float 〈int<char
C)char<int 〈float<double D)float〈int 〈char<double
19、下面的变量说明中( C )是正确的。
A)char:a, b, c; B)char a; b; c; C)char a, b, c; D)char a, b, c。
20、转义字符“反斜杠线"的表示方法正确的是( B ) 。
A) \ B) \\ C ) ‘\’ D) “\”
21、若x=5,y=3 则y*=x+5; y的值为( D )。
A) 10 B) 20 C) 15 D) 30
22、能正确表示a和b同时为正或同时为负的逻辑表达式是( D )
A)(a〉=0||b>=0)&&(a<0 ||b<0) B)(a〉=0 && b〉=0)&&(a〈0 && b〈0)
C)(a+b〉0) &&(a+b〈=0) D) a*b>0
23、C语言中,合法的字符型常数是( D )。
A)‘A’ B)“A” C) 65 D) A
24、下列程序段的输出结果是( C ).
char c1,c2;
c1=65;
c2=65+32+1;
printf(“%c,%c",c1,c2);
A)a,B B)a,b C)A,b D)A,B
25、下列语句不具有赋值功能的是( C )
A)a*=b B)x=1 C)a+b D)a++
26、在C语言中,存储一个整型、字符型、双精度实型变量所需的字节( A )。
A)2、1、8 B)4、1、4
C)4、1、4 D)2、2、8
27、下列程序段输出结果是( B ).
int j=2 , i=1;
j /= i*j;
printf(“%d”,j);
A)0 B)1 C)2 D)3
28、不是C语言提供的合法关键字是( D )。
A)switch B)char C)case D)this
29、在C语言中,要求参加运算的数必须时整数的运算符是( C )。
A)/ B)* C)% D) =
30、若已定义x和y为double类型,且x=1;则表达式y=x+3/2的值是( C )。
A)1 B)2 C)2.0 D)2。5
31、设a为整型变量,不能正确表达数学关系:10〈a〈15的C语言表达式是( C ).
A)10〈a<15 B)a= =11 || a= =12 || a= =13 || a= =14
C)a〉10&&a<15 D)!(a〈=10)&&!(a〉=15)
32、表达式“10!=9”的值是( D )。
A)true B)非零值 C)0 D)1
33、设a,b为字符型变量,执行scanf(“a=%c,b=%c",&a,&b)后使a为'A’,b为’B',从键盘上的正确输入是( B ).
A) ’A’ ‘B’ B) ’A',’B’ C)A=A,B=B D)a=A,b=B
34、设有单精度变量f,其值为13.8.执行语句“n=( (int)f )%3;”后,n的值是( B )。
A)4 B)1 C)4.333333 D)4.6
35、普通整形int能够处理的数据范围是( D )
A)—32767~32767 B)—32768~32768
C)-32767~32768 D)-32768~32767
36、若定义x为double型变量,则能正确输入x值的语句是。B
A)scanf(“%f",x); B)scanf(“%f",&x);
C)scanf(“%lf”,&x); D)scanf(“%5.1f",&x)
37、执行 x=(6*7%8+9)/5; 后,x的值为( B )
A)1 B)2 C)3 D)4
38、若有代数式3ae/bc,则不正确的c语言表达式是( B )
A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/b/c*3
39、设有变量说明:float x = 4.0 , y = 4。0,下面使x为10.0的表达式是( D )
A)x -= y*2.5 B)x /= y+9 C)x *= y—6 D)x += y+2
40、以下能正确定义整型变量z、b、c并为其赋初值5的语句是( C )
A)int a=b=c=5; B)int a,c, c=5;
C)a=5,b=5,c=5; D)a=b=c=5;
41、C语言中双精度浮点型变量double在内存中占(D )字节.
A)1 B)2 C)4 D)8
42、以下哪个数学函数的作用是求某数的平方根( A )。
A)sqrt() B)fabs() C)pow() D)exp()
43、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( C ).
int x;
scanf(”%d",&x);
if(++x〉5) printf("%d",x);
else printf(”%d\n",x -—);
A) 7和5 B) 6和3 C) 7和4 D)6和4
44、执行语句"x=(a=3,b=a—-)”后,x,a,b的值依次为( B )。
A)3, 3, 2 B)3,2,2 C)3,2,3 D)2,3,2
45、读出以下语句的输出结果是( D )。
int x=10,y=10;
printf("%d %d\n",x-—,-—y);
A) 10 10 B)9 9 C)9 10 D) 10 9
* 46、C语言中,合法的字符串型常数是( D )。
A)‘A’ B)”A” C) ‘abcd’ D) abcd
47、为表示关系x≥y≥z,应使用C语言表达式( A ).
A)(x〉=y)&&(y>=z) B)(x〉=y) AND (y〉=z)
C)(x>=y〉=z) D) (x〉=z)&(y〉=z)
48、C语言的输入与输出操作是由( C )完成的。
A)输入语句 B)输出语句
C)输入与输出函数 D)输入与输出语句
49、设有int x=11 ;则表达式(x+1/3)的值是( C )。
A)11。3 B)11。333333 C)11 D)12
50、若已定义x和y为double类型,则表达式x = 1,y = x+3/2的值是( C )
A)1 B)2 C)2。0 D)2。5
二、判断题
( )1、 “A”是一个字符常量. X
( )2.、在程序运行过程中其值可以改变的量称为变量。 V
( )3、在C语言中,变量可以先使用再定义。 X
( )4、在C语言中,所有算术运算符的优先级都相同。 X
( )5、程序中若要使用数学函数就必须包含头文件”math.h”。 V
( )6、程序中若要使用printf()函数就必须引用头文件”stdio.h”。 V
( )7、在标准C中,“="是判断两个数是否相等。 X
( )8、在标准C中,使用所有输入输出函数必须包含“stdio。h”文件. X
( )9、在C语言中输出数据时可以指定数据的精度,即小数点后保留几位。 V
( )10、C语言中的基本数据类型有字符型、整型和浮点型。 V
( )11、所有的C语言程序都必须有一个名为main的主函数。 V
( )12、/ 运算符要求运算数必须是整数。 X
( )13、Int, #a15 , char都是合法的标识符。 X
( )14、’b'和"b”是不同的两种常量。 V
( )15、C语言本身没有输入输出语句,要实现输入输出必须调用相应的输入输出函数。 V
第三单元 算法
一、判断题
( )1、 算法简而言之就是基于某种计算机语言,利用数据结构来解决具体问题的思路和方法。 V
( )2、 描述算法的图形化方法之一就是程序流程图.V
( )3、 描述算法可以用自然语言、传统流程图、N—S流程图来描述。V
( )4、 算法要有一定的逻辑性和健壮性。V
( )5、 算法的特点之一是无穷性。X
第四单元 顺序结构
一、选择题
1、下列标识符中合法的标识符是( A )
A) int2 B) if C) 2two D) a#b
2、选出下列标识符中不是合法的标识符的是( B )
A) hot_do B) cat@113 C) INT D) _2ab
3。、以下选项中属于C语言的数据类型是( B )
A) 字符串型 B) 双精度型 C) 逻辑型 D) 布尔型
4、设有如下定义: int x=10,y=3, z;
则语句printf("%d\n”, z = x%y ); 的输出结果是( D )
A) 3 B) 0 C) 4 D) 1
5、设整型变量n的值为2,执行语句"n += n;"后,n的值是( B )
A) 0 B) 4 C) - 4 D) 2
二、判断题
( )1、结构化程序设计的三种结构是顺序结构、选择结构和循环结构。V
( )2、可以用printf("%d” ,123);语句输出一个十六进制整数。X
( )3、可以用scanf("%x”,&da);语句从键盘接收一个八进制整数给变量da.X
( )4、语句scanf("%5。2f", &a); 是正确的.X
( )5、 如果a是一维字符数组名,则语句scanf(”%s”, &a); 是正确的。X
第五单元 选择结构
一、选择题
1、有以下程序段
int a;
if (3&&2)
a=1;
else
a = 2;
执行后a=( A )。
A)1 B)2 C)3 D)0
2、表达式:10!=9的值是( D )。
A) true B) 非零值 C) 0 D) 1
3、设int x=1,y=1;表达式(!x++ || y-—)的值是_( B )。
A)0 B) 1 C) 2 D)—1
4、设整型变量s, c1,c2的值均为2,则执行语句(s=(c1= =c2))后,s的值为:( B ).
A)0 B)1 C)2 D)3
5、设整型变量a,b的值分别为1,0,那么a && b的结果是( A ).
A)0 B)1 C)2 D)都不对
6、设整型变量a,b的值分别为1,0,那么a || b的结果是( B )。
A)0 B)1 C)2 D)都不对
7、设整型变量a,b的值分别为1,0,那么a != b的结果是( B ).
A)0 B)1 C)2 D)都不对
8、设整型变量a,b的值分别为1,0,那么a || (b++)的结果是( B )。
A)0 B)1 C)2 D)都不对
9、设整型变量a,b的值分别为1,0,那么a && (++b)的结果是( B )。
A)0 B)1 C)2 D)都不对
10、设整型变量a,b的值分别为1,2,那么表达式 a〉b?a+b:a—b的结果是( D )。
A)1 B)2 C)3 D)-1
11、下边程序段
int a=2,b=3,c=4;
if(c=a+b) printf(“OK!")
else printf(“NO!”);
输出结果是( A )。
A)OK! B)NO C)程序错误 D)以上都不对
12、设整型变量a,b的值分别为1,0,那么a= =b 的结果是( A ).
A)0 B)1 C)2 D)都不对
13、设整型变量a,b的值分别为1,0,那么!(a = = b)的结果是( B )。
A)0 B)1 C)2 D)都不对
14、设整型变量a,b的值分别为1,2,那么!a && b的结果是( A )。
A)0 B)1 C)2 D)都不对
15、设x为非零,则下列描述错误的是( D ).
A)!(x = = 0) B)x != 0 C)3*x != 0 D)x〉0
16、下列表达式的值中哪个表示为逻辑假( C )。
A)1 B)3 C)0 D)-1
17、设整型变量a,b的值分别为6,2,那么a%b != 0的结果是( A ).
A)0 B)1 C)2 D)3
18、下列属于分支结构的是( B ).
A)while B)switch C)for D)以上都不是
19、设整型变量a,b的值分别为1,0,那么a || (++b)的结果是( B )。
A)0 B)1 C)2 D)都不对
20、设整型变量a,b的值分别为1,0,那么a&&(b++)的结果是( A )。
A)0 B)1 C)2 D)都不对
二、判断题
( )1、在分支结构switch中,case后面跟的一定是常量。 V
( )2、逻辑运算符优先级高于关系运算符的优先级。 X
( )3、关系运算符中,= = 的优先级要高于 >= 的优先级。 X
( )4、关系运算符中,〉 的优先级要高于 >= 的优先级。 X
( )5、在条件表达式中,-3代表为真。 V
( )6、在条件表达式中,非0代表为真。 V
( )7、条件运算符 ?: 是2目运算符。 X
( )8、在switch语句中,有没有break的情况都是相同的。 X
( )9、判断a,b两个数是否相等,用 a = b. X
( )10、判断a,b两个数是否相等,用 a = = b. V
第六单元 for循环结构
一、选择题
1、对下边for循环,循环体体执行次数是( B )。
for ( i = 1; i 〈= 10; i = i + 2 )
;
A) 6 B) 5 C) 4 D) 7
2、对下边for循环,循环体执行次数是( C ).
for ( i = 5; i 〉 1; i -— )
;
A) 6 B) 5 C) 4 D) 7
3、下边循环执行完后,a为( C )。
for ( a= 1;a〈 5; a++ )
a = 2 * a;
A) 5 B) 4 C) 7 D) 8
4、下边循环执行完后,s为( A ).//无法确定
for ( a= 1; a〈 5; a++ )
for ( b= s = 0; b〈 a; b++, s = s +a)
;
A) 6 B) 4 C) 7 D) 无答案
7、下边程序段输出结果是( A ).
int i , a= 0;
for ( i = 0; i < 10; i++ )
a++, i++;
printf(”%d", a);
A)5 B)6 C)9 D)10
8、以下for循环的次数为( D )。
for(x = 0,y = 0; (y=123) && (x<4) ; x++)
;
A)不循环 B)无限次 C)3 D)4
9、从循环体内某一层跳出,继续执行循环外的语句是:( A )。
A) break语句 B)return语句 C)continue语句 D)空语句
11、循环语句 for (x=0,y=0; (y!=123)|| (x<4);x++) ;的循环执行次数为( C )。
A)无限次 B)不循环 C)4次 D)3次
12、设i,j,k均为int型变量,k初值为0,执行完下面的for循环后,k的值为( A )。
for (i=0,j=10; i〈=j; i++,j--) k=i+j;
A)10 B)9 C)8 D)7
13、以下程序段的循环次数是( C )。
for (i=2 ; i=0 ; )
printf(“%d” , i--) ;
A)无限次 B)0次 C)1次 D)2次
14、下边程序段循环执行的次数是( B )。
int a= 0, j = 10;
for ( ; j 〉 3; j—— )
{
a++;
if ( a> 3) break ;
}
A) 3 B、4 C、5 D)6
18、for循环中,能省略的表达式有( D )。
A)表达式1 B)表达式2 C)表达式3 D)3个都可以
A)3次 B)2次 C)6次 D)9次
20、下面循环体被执行的次数是( 2 ).
for(i=0;i<3;i++)
;
21、定义变量int i=-1; 则以下不是无限循环的是: ( C )。
A。 for (i=0; i=1; i++) ; B。 for ( i=0; ; i—-) ;
C。 for ( ; i>-10; i--) ; D。 for ( ; i<0 ; ) ;
22、定义变量int i=2; 则以下是无限循环的是: ( D )。
A. for (i=0;i==1;i++) ; B。 for (i=0; i<0 ; ) -—i;
C. for ( ; i〉10; i++) ; D。 for ( ; i ; ++i ) ;
23、以下for循环语句,循环体的执行次数是: ( A )。/*该题经验证是3次,不知道怎么回事 ,自己取研究*/
for( i=1; i<=5; i+=2 ) ;
A. 4 B. 5 C. 6 D. 7
24、以下for循环语句,循环体的执行次数是: ( A )。
for( i=5; i〉1; i—- ) ;
A. 4 B. 5 C. 3 D。 2
25、下面的循环体执行完后,a的值是: ( A )。
for( a=2; a〈8; a++) a*=2 ;4
A. 10 B。9 C. 12 D。 11
二、判断题
( )1、continue语句只能用于循环语句中。 V
( )2、在for循环中允许使用嵌套循环,但只能是嵌套while循环。X
( )3、break语句只能用于循环语句中. X
( )4、for循环可能一次都不执行。 V
( )5、break语句是结束本层循环. V
( )6、break语句是结束本次循环。 X
( )7、continue语句是结束本层循环. X
( )8、continue语句是结束本次循环. V
( ) 9、在循环过程中,使用break语句和continue语句的作用是一样的. X
( )10、for( ; ; )这写书写for循环是合法的,即for三个表达式都是可以省略的。 V
三、程序阅读
1、以下程序运行完后的输出数据是:__aaaaaaaaa__
main()
{
int a=10 ;
for( ; a ; )
{
a——;
if(a==0) break;
printf("a”);
}
}
2、以下程序运行完后a的值是: __1__
main()
{
int i, a=0 ;
for(i=0; i<10; i++)
i++; a++;
printf("%d”, a);
}
3、 以下程序运行完后a的值是: __5__
main()
{
int i, a=0 ;
for(i=0; i<10; i++)
a++, i++;
printf(”%d”, a);
}
4、以下程序运行完后的结果是:_#*#*_
main()
{
int k;
for (k=1;k〈5;k++)
{
if(k%2!=0)
printf(”#");
else
printf(”*") ;
}
}
5、以下程序运行完后s的值是: _1。0__
main()
{
int n ;
float s=1。0;
for(n=10;n>1;n-—)
s=s+1/n;
printf(”%6.1f\n",s);
}
第七单元 while与do—while循环
一、选择题
1、break语句的正确的用法是( C )。
A)无论在任何情况下,都中断程序的执行,退出程序。
B)在多重循环中,只能退出最靠近的那一层循环语句。
C)跳出多重循环。
D)只能修改控制变量。
2、int i=0; while( i++ < 5); 循环结束后i的值是( C )。
A)6 B)7 C)5 D)8
3、语句while ( E ); 括号中的表达式E等价于( D )。
A)E==0 B)E!=1 C)E!=0 D)E==1
4、 int i=1; while( --i ) ; 循环次数是( B )。
A)无限次 B)0 C)2 D)1
7、do—while语句的循环体( B )。
A)可能一次都不执行 B)至少要执行一次
C)由循环条件决定循环次数 D)B C均正确
8、对下面的while语句,循环体执行次数是( A )次。
a=30;
while ( a-—) ;
A)30 B)31 C)39 D)都不对
9、在C语言中,下列说法中正确的是( B ).
A)不能使用”do … while”的循环。
B)”do while”的循环必须使用break语句退出循环.
C)"do while”的循环中,当条件为0时将结束循环。
D) "do while”的循环中,当条件为非0时将结束循环。
10、下面的循环执行完后,循环次数是( B )次.
while( k=10 )
k--;
A)9 B)10 C)11 D)无穷次
二、判断题
( )1、while 适合控制循环次数不确定的循环。(V)
( )2、无论循环条件是否满足,do 。。. while循环的循环体至少执行一次.(V)
( )3、while( ’a' ) ;是一个死循环。(V)
( )4、在实际编程中,do-while循环完全可以用for循环替换。(V)
( )5、continue;语句和break;语句有同样的作用.(X)
第八单元 数组
一、选择题
1、下列描述中不正确的是( A )。
A) 字符型数组中可能存放字符串。
B) 可以对字符型数组进行整体输入、输出。
C) 字符串函数声明在包ctype。h中.
D) 字符串的结束符是’\0’.
2、定义如下变量和数组: int i ; int x[6] ={1,2,3,4,5,6};
则语句for(i=0;i<3;i++) printf("%d ",x [5-i]); 的输出结果是( D )。
A) 1 2 3 B)1 3 5 C)2 4 6 D)6 5 4
3、以下对二维数组a进行正确初始化的是( D )。
A) int a[2][3]={{1,2},{3,4},{5,6}}; B) int a[ ][3]={1,2,3,4,5,6};
C)int a[2][ ]={1,2,3,4,5,6}; D) int a[2][ ]={{1,2},{3,4}};
4、下列程序的输出结果是( A )。
char a[]=”abcd", b[]=”ABCD", str[50]=”xyz”;
strcpy( str , strcat( a, b ) );
printf( ”%s”, str );
A)xyabcAB B)abcABz C)ABabcz D)abcdABCD
5、不能把字符串:Hello!赋给数组b的语句是( B )。
A)char b[10]={’H',’e’,'l','l’,’o','!’}; B)char b[5] ="Hello!”;
C)char b[10]; strcpy(b,"Hello!"); D)char b[10]="Hello!”;
6、下列对数组定义不正确的语句是( A ).
A)int m[5]; B)char b[]={‘h',’e’};
C)int a[10]={1,6,8,4}; D)char p[];
7、以下对二维数组 a的正确定义是( A )
A)int a[3][] ; B)float a(3,4) ;
C)double a[2][4]; D)float a(3)(4) ;
8、给出以下定义:
char x[ ]="abcdefg";
char y[ ]={'a','b','c','d','e','f','g'};
以下正确的叙述是( D )。
A)数组x和数组y等价
B)数组x和数组y长度相等
C)数组x的长度大于数组y的长度
展开阅读全文