C语言基础题

C语言基础题
C语言基础题

第一单元C语言概述

一、选择题

1、C语言中主函数的个数为()个。

A)1 B)2

C)无穷个D)任意个

2、以下关于C语言描述错误的是()。

A)一个C程序总是从main函数开始执行

B)每个语句和数据声明的最后必须有一个分号

C)C语言的注释符是以“/*”开始并以“*/”结束的

D)一个C程序可以包含多个main函数

3、C 语言源程序文件后缀为()。

A).EXE B).OBJ C) .C D).ASM

4、C语言是由()组成的。

A)子程序 B)主程序与子程序C)函数D)过程

5、C语言属于()语言

A)机器语言B)汇编语言C)高级语言D)面向对象语言

第二单元 C语言基础

一、选择题

1、C语言中普通整型变量int在内存中占()字节。

A)1 B)2 C)3 D)4

2、下列不是C语言基本数据类型的是()。

A)字符型 B) 整型

C) 浮点型 D) 结构体

3、有关自增、自减运算,以下只有()是正确的。

A) ---f B) ++78 C) a—b++ D) d++

4、已知A=,B=2,C=,表达式(A>B && C>A) || (AB)的值是()。

A)0 B)10 C)1 D)5

5、若有x=1,y=2,z=3,则表达式(x

A)1 B)2 C)3 D)0

6、判断char型变量ch是否为大写字母的正确表达式是()。

A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’)

C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)

7、判断整型变量digit是否为数字的正确表达式是()。

A) ‘0’<=ch<=‘9’ B) (ch>=‘0’)&(ch<=‘9’)

C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch)

8、一个C程序的执行是从()。

A)本程序的main函数开始,到main函数结柬

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

9、在以下标识符中,合法的是()

A)if B) 0xy C)_xy D)case

10、C语言中各种类型的数据其实决定了占用内存的字节数。float占()。

A)一字节 B)二字节 C)四字节 D)八字节

11、下列各选项中,()是有效的标识符。

A)ab B)3day C)day-3 D)#abc

12、以下叙述正确的是()。。

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,则正确的数据输入方式是()。

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的表达式是()。

A) b = a/2 B) b = 6-(--a) C) b=a%2 D) b=a>32:1

15、以下程序的输出结果是( )。

int x=10,y=10;

printf(“%d %d\n”,x--,--y);

A) 10 10 B) 9 9 C) 9 10 D)10 9

16、选出下列标识符中不是合法的标识符的是()。

A)hot_do B)cat1 C)_pri D) 2ab

17、设有如下定义: int x=10,y=3,z;

则语句printf("%d\n",z = x%y); 的输出结果是()。

A) 1 B) 0 C) 4 D)3

18、各种基本数据类型的存贮空间正确的长度排列为( )。

A)int < char

C)char

19、下面的变量说明中( )是正确的。

A)char:a, b, c; B)char a; b; c; C)char a, b, c; D)char a, b, c。

20、转义字符“反斜杠线”的表示方法正确的是( ) 。

A)\ B)\\ C )‘\’ D)“\”

21、若x=5,y=3 则y*=x+5; y的值为( )。

A) 10 B) 20 C) 15 D) 30

22、能正确表示a和b同时为正或同时为负的逻辑表达式是( )。

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语言中,合法的字符型常数是( )。

A)‘A’B)“A”C)65 D) A

24、下列程序段的输出结果是( )。

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、下列语句不具有赋值功能的是()

A)a*=b B)x=1 C)a+b D)a++

26、在C语言中,存储一个整型、字符型、双精度实型变量所需的字节( )。

A)2、1、8 B)4、1、4

C)4、1、4 D)2、2、8

27、下列程序段输出结果是( )。

int j=2 , i=1;

j /= i*j;

printf(“%d”,j);

A)0 B)1 C)2 D)3

28、不是C语言提供的合法关键字是( )。

A)switch B)char C)case D)this

29、在C语言中,要求参加运算的数必须时整数的运算符是( )。

A)/ B)* C)% D) =

30、若已定义x和y为double类型,且x=1;则表达式y=x+3/2的值是( )。

A)1 B)2 C) D)

31、设a为整型变量,不能正确表达数学关系:10

A)10

C)a>10&&a<15 D)!(a<=10)&&!(a>=15)

32、表达式“10!=9”的值是( )。

A)true B)非零值 C)0 D)1

33、设a,b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b)后使a为’A’,b为’B’,从键盘上的正确输入是( )。

A)’A’‘B’ B)’A’,’B’ C)A=A,B=B D)a=A,b=B

34、设有单精度变量f,其值为。执行语句“n=( (int)f )%3;”后,n的值是( )。

A)4 B)1 C)D)

35、普通整形int能够处理的数据范围是( )

A)-32767~32767 B)-32768~32768

C)-32767~32768 D)-32768~32767

36、若定义x为double型变量,则能正确输入x值的语句是。

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的值为()

A)1 B)2 C)3 D)4

38、若有代数式3ae/bc,则不正确的c语言表达式是()

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 = , y = ,下面使x为的表达式是( )

A)x -= y* B)x /= y+9 C)x *= y-6 D)x += y+2

40、以下能正确定义整型变量z、b、c并为其赋初值5的语句是( )

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在内存中占()字节。

A)1 B)2 C)4 D)8

42、以下哪个数学函数的作用是求某数的平方根()。

A)sqrt() B)fabs() C)pow() D)exp()

43、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()。

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的值依次为()。

A)3, 3, 2 B)3,2,2 C)3,2,3 D)2,3,2

45、读出以下语句的输出结果是( )。

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语言中,合法的字符串型常数是( )。

A)‘A’B)"A" C)‘abcd’ D) abcd

47、为表示关系x≥y≥z,应使用C语言表达式( )。

A)(x>=y)&&(y>=z) B)(x>=y) AND (y>=z)

C)(x>=y>=z) D) (x>=z)&(y>=z)

48、C语言的输入与输出操作是由( )完成的。

A)输入语句 B)输出语句

C)输入与输出函数D)输入与输出语句

49、设有int x=11 ;则表达式(x+1/3)的值是( )。

A) B) C)11 D)12

50、若已定义x和y为double类型,则表达式x = 1,y = x+3/2的值是()

A)1 B)2 C) D)

二、判断题

()1、“A”是一个字符常量。 X

()2.、在程序运行过程中其值可以改变的量称为变量。 V

()3、在C语言中,变量可以先使用再定义。 X

()4、在C语言中,所有算术运算符的优先级都相同。 X

()5、程序中若要使用数学函数就必须包含头文件””。 V

()6、程序中若要使用printf()函数就必须引用头文件””。 V

()7、在标准C中,“=”是判断两个数是否相等。 X

()8、在标准C中,使用所有输入输出函数必须包含“”文件。 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) int2 B) if C) 2two D) a#b

2、选出下列标识符中不是合法的标识符的是()

A) hot_do B) cat@113 C) INT D) _2ab

3.、以下选项中属于C语言的数据类型是()

A) 字符串型 B) 双精度型 C) 逻辑型 D) 布尔型

4、设有如下定义: int x=10,y=3, z;

则语句printf("%d\n", z = x%y ); 的输出结果是()

A) 3 B) 0 C) 4 D) 1

5、设整型变量n的值为2,执行语句"n += n;"后,n的值是( )

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)1 B)2 C)3 D)0

2、表达式:10!=9的值是()。

A) true B)非零值C) 0 D) 1

3、设int x=1,y=1;表达式(!x++ || y--)的值是_()。

A)0 B) 1 C) 2 D)-1

4、设整型变量s, c1,c2的值均为2,则执行语句(s=(c1= =c2))后,s

的值为:()。

A)0 B)1 C)2 D)3

5、设整型变量a,b的值分别为1,0,那么a && b的结果是()。

A)0 B)1 C)2 D)都不对

6、设整型变量a,b的值分别为1,0,那么a || b的结果是()。

A)0 B)1 C)2 D)都不对

7、设整型变量a,b的值分别为1,0,那么a != b的结果是()。

A)0 B)1 C)2 D)都不对

8、设整型变量a,b的值分别为1,0,那么a || (b++)的结果是()。

A)0 B)1 C)2 D)都不对

9、设整型变量a,b的值分别为1,0,那么a && (++b)的结果是()。

A)0 B)1 C)2 D)都不对

10、设整型变量a,b的值分别为1,2,那么表达式 a>ba+b:a-b的结果是()。

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)OK! B)NO C)程序错误 D)以上都不对

12、设整型变量a,b的值分别为1,0,那么a= =b 的结果是()。

A)0 B)1 C)2 D)都不对

13、设整型变量a,b的值分别为1,0,那么!(a = = b)的结果是()。

A)0 B)1 C)2 D)都不对

14、设整型变量a,b的值分别为1,2,那么!a && b的结果是()。

A)0 B)1 C)2 D)都不对

15、设x为非零,则下列描述错误的是()。

A)!(x = = 0) B)x != 0 C)3*x != 0 D)x>0

16、下列表达式的值中哪个表示为逻辑假()。

A)1 B)3 C)0 D)-1

17、设整型变量a,b的值分别为6,2,那么a%b != 0的结果是()。

A)0 B)1 C)2 D)3

18、下列属于分支结构的是()。

A)while B)switch C)for D)以上都不是

19、设整型变量a,b的值分别为1,0,那么a || (++b)的结果是()。

A)0 B)1 C)2 D)都不对

20、设整型变量a,b的值分别为1,0,那么a&&(b++)的结果是()。

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循环,循环体体执行次数是()。

for ( i = 1; i <= 10; i = i + 2 )

;

A) 6 B) 5 C) 4 D) 7

2、对下边for循环,循环体执行次数是()。

for ( i = 5; i > 1; i -- )

;

A) 6 B) 5 C) 4 D) 7

3、下边循环执行完后,a为()。

for ( a= 1;a< 5; a++ )

a = 2 * a;

A) 5 B) 4 C) 7 D) 8

4、下边循环执行完后,s为()。

for ( a= 1; a< 5; a++ )

for ( b= s = 0; b< a; b++, s = s +a)

;

A) 6 B) 4 C) 7 D)无答案

5、下边程序执行完后,a ,b的值是()。

for ( a= 1; a<= 10; a++ )

for ( b= 10;b>= 1; b-- )

if ( a>= b)) exit(0);

A) 1,1 B) 5,5 C) 6,6 D)均不对6、下边程序执行后s的值是()。

for ( s = i = 1; i < 100; i++ ) s = s + 1 / i; A) 0 B) 2 C) 1 D)难以确定

7、下边程序段输出结果是()。

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循环的次数为()。

for(x = 0,y = 0; (y=123) && (x<4) ; x++)

;

A)不循环 B)无限次 C)3 D)4

9、从循环体内某一层跳出,继续执行循环外的语句是:()。

A) break语句 B)return语句 C)continue语句 D)空语句

10、for(k=0;k<5;++k)

{

if(k= = 3) continue;

printf("%d",k);

}

的输出结果为()。

A)012 B)0124 C)01234 D)没有输出结果

11、循环语句 for (x=0,y=0; (y!=123)|| (x<4);x++) ;的循环执行次数为()。

A)无限次 B)不循环 C)4次 D)3次

12、设i,j,k均为int型变量,k初值为0,执行完下面的for循环后,k 的值为()。

for (i=0,j=10; i<=j; i++,j--) k=i+j;

A)10 B)9 C)8 D)7

13、以下程序段的循环次数是()。

for (i=2 ; i=0 ; )

printf(“%d” , i--) ;

A)无限次 B)0次 C)1次 D)2次

14、下边程序段循环执行的次数是()。

int a= 0, j = 10;

for ( ; j > 3; j-- )

{

a++;

if ( a> 3) break ;

}

A) 3 B、4 C、5 D)6

15、for循环中,表达式1的作用是()。

A)循环变量赋初值 B)循环条件

C)改变循环变量的值 D)什么作用都没有

16、for循环中,表达式2的作用是()。

A)循环变量赋初值 B)循环条件

C)改变循环变量的值 D)什么作用都没有

17、for循环中,表达式3的作用是()。

A)循环变量赋初值 B)循环条件

C)改变循环变量的值 D)什么作用都没有

18、for循环中,能省略的表达式有()。

A)表达式1 B)表达式2 C)表达式3 D)3个都可以19、下面程序中a++ 总共被执行多少次()。

for(i=0;i<3;i++)

for(j=0;j<3;j++)

a++;

A)3次 B)2次 C)6次 D)9次

20、下面循环体被执行的次数是()。

for(i=0;i<3;i++)

A)0次 B)1次 C)2次 D)3次

21、定义变量int i=-1; 则以下不是无限循环的是: ( )。

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; 则以下是无限循环的是: ( )。

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循环语句,循环体的执行次数是: ( )。

for( i=1; i<=5; i+=2 ) ;

A. 4

B. 5

C. 6

D. 7

24、以下for循环语句,循环体的执行次数是: ( )。

for( i=5; i>1; i-- ) ;

A. 4

B. 5

C. 3

D. 2

25、下面的循环体执行完后,a的值是: ( )。

for( a=2; a<8; a++) a*=2 ;

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的值是:

main()

{

int n ;

float s=;

for(n=10;n>1;n--)

s=s+1/n;

printf("%6.1f\n",s);

}

第七单元 while与do-while循环

一、选择题

1、break语句的正确的用法是( )。

A)无论在任何情况下,都中断程序的执行,退出程序。

B)在多重循环中,只能退出最靠近的那一层循环语句。

C)跳出多重循环。

D)只能修改控制变量。

2、int i=0; while( i++ < 5); 循环结束后i的值是( )。

A)6 B)7 C)5 D)8

3、语句while ( E ); 括号中的表达式E等价于( )。

A)E==0 B)E!=1 C)E!=0 D)E==1

4、 int i=1; while( --i ) ; 循环次数是( )。

A)无限次 B)0 C)2 D)1

5、下述程序段的运行结果是。

int a=1,b=2, c=3, t;

while ( a

{t=a; a=b; b=t; c--;}

printf(“%d,%d,%d”,a,b,c);

A)1,2,0 B)2,1,0 C)程序错误 D)2,1,1

6、程序运行的结果是( )。

main()

{

int x;

x=3;

do

{

printf("%d",x--);

}while(x);

}

A)0 B)无限循环 C)3 D)2

7、do-while语句的循环体( )。

A)可能一次都不执行 B)至少要执行一次

C)由循环条件决定循环次数 D)B C均正确

8、对下面的while语句,循环体执行次数是()次。

a=30;

while ( a--) ;

A)30 B)31 C)39 D)都不对

9、在C语言中,下列说法中正确的是( )。

A)不能使用"do … while"的循环。

B)"do while"的循环必须使用break语句退出循环。

C)"do while"的循环中,当条件为0时将结束循环。

D) "do while"的循环中,当条件为非0时将结束循环。

10、下面的循环执行完后,循环次数是()次。

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)字符型数组中可能存放字符串。

B)可以对字符型数组进行整体输入、输出。

C)字符串函数声明在包中。

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]); 的输出结果是()。

A) 1 2 3 B)1 3 5 C)2 4 6 D)6 5 4

3、以下对二维数组a进行正确初始化的是()。

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、下列程序的输出结果是()。

char a[]="abcd", b[]="ABCD", str[50]="xyz";

strcpy( str , strcat( a, b ) );

printf( "%s", str );

A)xyabcAB B)abcABz C)ABabcz D)abcdABCD

相关主题