第一单元   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=7.5,B=2,C=3.6,表达式(A>B && C>A) || (A<B && !C>B)的值是(  )。

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

5、若有x=1,y=2,z=3,则表达式(x<y?x:y)= =z的值是(  )。

A1                   B2                   C3            D0

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>3?2: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 <float<double     B)double<float <int<char

C)char<int <float<double      D)float<int <char<double

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)2.0        D)2.5

31、设a为整型变量,不能正确表达数学关系:10<a<15的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”的值是(      )。

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,其值为13.8。执行语句“n=( (int)f )%3;”后,n的值是(      )。

A)4                  B)1                C)4.333333            D)4.6

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

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

40、以下能正确定义整型变量a、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)11.3           B)11.333333     C)11          D)12
       50、若已定义x和y为double类型,则表达式x = 1,y = x+3/2的值是(  )

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”文件。 V

( )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语言中的关键字                  C) 2two不能以数字开头         D) a#b不能包括特殊符号

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

A) hot_do        B) cat@113不能包括特殊符号                            C) INT                     D) _2ab

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

A) 字符串型 字符型char   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.2只能用在输出函数中

(   )5、 如果a是一维字符数组名,则语句scanf("%s", &a); 是正确的。X

第五单元   选择结构

一、选择题

1、有以下程序段

int a;

if (3&&2)    &&逻辑与,p且q,两个都为真,结果为真

a=1;

else

a = 2;

执行后a=(     )。

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

2、表达式:10!=9的值是(     )。10不等于9是对的,所以返回值为1

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的值为:(     )。C1==C2结果为1,所以s=1

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)都不对   1不等于0是对的,所以结果为1

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>b?a+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!”);

输出结果是(     )。

c=5,结果为非0的数,则为真,结果为1,则执行ok!

A)OK!   B)NO    C)程序错误   D)以上都不对

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

A)0       B)1      C)2      D)都不对  1等于0为假,结果为0

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

A)0       B)1   C)2    D)都不对  1等于0为假,结果为0,取反后,结果为1

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
应该用a==b

(   )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的值是: _1.0__

main()

{

int n ;

float s=1.0;

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

s=s+1/n;

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

}

                            第七单元 whiledo-while循环

一、选择题

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

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

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

break退出本层循环

continue退出本次循环

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<b<c )

{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 )   表达式的值恒为“非0”,循环条件永远成立,死循环。

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) 字符串函数声明在包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]); 的输出结果是(     )。

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

5、不能把字符串:Hello!赋给数组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)int m[5];                    B)char b[]={‘h’,’e’};

C)int a[10]={1,6,8,4};      D)char  p[];

7、以下对二维数组 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'};

以下正确的叙述是(   )。

A)数组x和数组y等价

B)数组x和数组y长度相等

C)数组x的长度大于数组y的长度,因为还存储了一个结束符

D)数组x的长度小于数组y的长度,因为还存储了一个结束符

9、在int b[ ][3]={{1},{3,2},{4,5,6},{0}};中b[2][2]的值是(   )。

A)0    B)5   C)6    D)2

10、下列初始化正确的是(   )。

A)char s1[ ]="abcd" ;   B)char s2[3]="zxy";

C)char * p=1000 ;        D) char s4[2][3]={{"xyz"},{"mnp"}} ;

11、设有定义:char s[12]="string";则printf ("%d\n",strlen(s));的输出是(    )。

A)6         B)7         C)11         D)12

12、函数调用strcat(strcpy(str1,str2),str3)的功能是(   )。

A)将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后

B)将字符串str1复制到字符串str2中后再连接到字符串str3之后

C)将字符串str1复制到字符串str2中后再复制到字符串str3之后

D) 将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中

13、使用随机函数需要包含的头文件有(   )。

A) #include<stdlib.h>         B) #include<time.h>

C) #include <conio.h>         D) A和B

14、若有说明int a[3][4]={0};下列叙述正确的是(   )。

A)只有元素a[0][0]可得到初值0

B)此说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0

D)数组a中每个元素均可得到初值0

15、执行下面的程序段后,变量k的值为(   )。

int  k=3,s[2];

s[0]=k;

k=s[0]*10;

A)不定值   B)33    C)30       D)10

16、以下定义数组的语句中正确的是(   )。

A) int a(10)

B) char str[] ;

C) int  n=5; int  a[4][n];

D) #define  N  10

char str[N];

17、定义如下变量和数组:

int   k;

int  a[3][3]={9,8,7,6,5,4,3,2,1};

则下列语句的输出结果是(   )。

for(k=0;k<3;k++)  printf(“%d”,a[k][k]);

A) 7 5 3     B)  9 5 1     C) 9 6 3   D)7 4 1

18、下列描述正确的是(   )。

A)两个字符串所包含的字符个数相同时,才能比较字符串

B)字符个数多的字符串比字符个数少的字符串大

C)字符串“STOP”与“STOP   ”相等

D)字符串“That”与字符串“ThaT”不相等

19、若二维数组a有n 行n列,则副对角线元素是(   )。(假设a[0][0]位于数组的第一个位置上,且i∈[0,n))

A)a[i][i]

B)a[i][n-i]

C)a[n-i][i]

D)a[i][n-1-i]

20、对以下说明语句的正确理解是(   )。

int  a[10]={6,7,8,9,10};

A)将5个初值依次赋给a[1]至a[5]。

B)将5个初值依次赋给a[0]至a[4]。

C)将5个初值依次赋给a[6]至a[10]。

D)因为数组长度与初值的个数不相同,所以此语句不正确

21、判断字符串a和b是否相等,应使用(   )。

A)if(a= =b)   B) if(a=b)    C)if(strcpy(a,b))   D) if(strcmp(a,b)= =0)

22、判断字符串s1的长度是否大于字符串s2的长度,应使用(   )。

A)if(s1>s2)              B)if(strcmp(s1,s2))

C)if(strlen(s1)>strlen(s2))     D)if(strcat(s1)>strcat(s2))

23、下列程序段的运行结果(   )。

char  c[15]={'a','b','\0','c','\0'};

printf(“%s”,c);

A)'a','b'     B)  ab       C) abc       D)  a ,b

24、假设有两个字符数组a,b,则以下正确的输入语句是(   )。

A)puts(a,b);                B) scanf(“%s%s”,a,b);

C)scanf(“%s%s”,&a,&b);     D)gets(“a”);gets(“b”);

25、若有说明int  a[][3]={1,2,3,4,5,6,7,8,9};则a数组行数的大小为(   )。

A) 2        B) 3       C)4         D)无确定值

26.  若有定义double   x[3][5]; 则x数组中行标的下限为(   ),列标的上限为(   )。

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

27、 若有说明a[3][4];则数组a中的各元素(   )。

A) 可在程序的运行阶段得到初始值0

B) 可在程序的编译阶段得到初始值0

C) 不能得到确定的初始值

D) 可在程序的编译或运行阶段得到初始值

28、若有下列程序段

char  x[80];

scanf(“%s”,x);

printf(“%s”,x);

从键盘上输入字符串“zhang  san”,则输出结果为(   )。

A)zhang     B)  zhangsan      C)  zhang  san   D)san

29、在C语言中,引用数组元素时,其数组下标的数据类型允许为(   )

A) 整型常量                     B) 整型表达式

C) 整型常量或整型表达式         D) 任何类型的表达式

30、设有如下形式的字符数组定义:

char  str[]=”welcome”;

则执行下列语句后的输出结果(   )。

printf(“%d\n”,strlen(strcpy(str,“Hello”)));

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

31、若有int a[3][5]={2,2},{2,6},{2,6,2}},则数组a共有(     )个元素。

A)8          B)5            C)3              D)15

32、设有如下定义:int a[100];则数组下标区间为:(   )。

A) 0~99    B) 1~99       C) 0~100        D)1~100

33、若有定义:int a[3][4],则对数组a中某元素的正确引用是(   )。

A)a[2][4]   B)a[1][3]       C)a(5)           D)a[10-10]

34、以下对一维整型数组a的正确说明是(   )。

A)int a(10) ;                   B)int n=10,a[n];

C) int n;                      D)#define SIZE 10

scanf(“%d”,&n);                 int a[SIZE];

nt a[n];

35、若要使用字符函数,需要引入的头文件是(   )。

A)string.h   B)ctype.h       C)stdlib.h        D)stdio.h

二、判断题

(     )1、在定义一维数组时,可以将该数组的长度省略                   V

(     )2、数组的下标从0开始。                                                  V

(     )3、数组的下标从1开始。                                 X

(     )4、数组名代表数组的首地址。                           V

(     )5、在C语言中,数组元素在内存中的存放顺序是按顺序存放的。V

(     )6、字符数组可以存放字符串。                           V

(     )7、字符串函数strupr(str),可将串中大写字母变成小写字母。 X

(     )8、字符串函数strrev(str) ,可将str串字符颠倒过来。       V

(     )9、字符串的结束符不是’\0’ 。                            X

(     )10、可如此定义a数组:float  a[3]={12.5,’z’,”school”};        X

(     )11、数组边定义边赋值时,大括号内数据项的数目可以大于或等于数组的长度。                                                      X

(     )12、数组边定义边赋值时,大括号内数据项的数目可以小于或等于数组的长度。                                               V

(     )13、字符串函数strcat(str1,str2)的作用是将字符串str2连接在字符串str1后。                            V

(     )14、定义字符型一维数组char a[80];可用gets(a[0])给a[0]赋值。X

(     )15、数组定义 int  a[10]; 也可以写成 int  a(10);。      X

三、程序阅读题

1、下面程序的输出结果是___6  5_______。

main ( )

{

char ch[7]={"65ab21"};

int i;

for (i=0;ch[i]>='0'&&ch[i]<='9';i++)

printf("%c  ",ch[i]);

}

2、下面程序执行后,s1=___15.0_____,s2=___2.7______。

float  b[]={0.5,1.6,2.7,3.8,4.9,5,6.1,6.2,7.3,8.4},s1,s2;

int  i;

for(i=0,s1=s2=0 ; i<9 ; i++ )

{

if ( i%2 )  s1 += ( int ) b[i];

if( i%3 )  s2 += b[i] – (int) b[i];

}

3、将程序补充完整,实现功能:输出斐氏数列的前20项,菲波纳契额数列具有这样的性质:F(0)=1  F(1)=2  F(N)=F(N-1)+F(N-2)

#include "stdio.h"

void main()

{  int i;

long f[20]={1,2};

for(i=2 ; i<20 ; i++)

f[i] = f[i-2] + f[i-1];

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

printf("%ld\t ",f[i]);

}

4、将程序补充完整,实现功能:输入2个字符串,判断两个串是否相同,相同输出yes,不同输出no。

#include "stdio.h"

#include "string.h"

void main()

{  char x[80],y[80];

gets(x);

gets(y);

if(strcmp(x,y)==0)

puts("yes");

else

puts("no");

}

5、 设有以下代码:

#include "stdio.h"

void main()

{

int  a[3][3],s=0;

int  i,j;

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

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

scanf("%d",&a[i][j]);

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

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

s+=a[i][j];

printf("%d\n",s);

}

假设键盘上输入的9个数据为:1  2  3  4  5  6  7  8  9 ,

上面程序的输出结果是_______19____。

第九单元   指针

一、选择题

       1、以下定义正确的是(  )。

A)int x;   float  *p=x;

B)int x;   int    *p=x;

C)int x;   int    *p=&x;

D)int x;   float  *p=&x;

2、以下定义正确的是(  )。

A)float  x;   float  *p=x;

B)float  x;   int    *p=x;

C)float  x;   int    *p=&x;

D)float  x;   float  *p=&x;

3、以下定义正确的是(  )。

A)float  x[10];   float  *p=x;

B)float  x[10];   int    *p=x;

C)float  x[10];   int    *p=&x;

D)float  x[10];   float  *p=&x;

4、以下定义正确的是(  )。

A)int  x[10];   float  *p=x;

B)int  x[10];   int    *p=x;

C)int  x[10];   int    *p=&x;

D)int  x[10];   float  *p=&x;

5、设有以下变量定义

int x;

float  y;

double  z;

z = sizeof( x ) + sizeof ( y ) + sizeof ( z ) ;

则z的值为(  )。

A)8          B)4         C)6       D)10

二、判断题      

(  )1、数组名代表数组的首地址。          正确

(  )2、指针的类型必须跟其所指向的变量的数据或数据结构类型一致。正确

(  )3、指针可以不操作数组。             错误

(  )4、空指针的值为NULL。              正确

(  )5、指针不能实现对数据的间接访问。   错误

第十单元    文件(李武)

一、选择题

1、 在C语言中对文件进行操作的一般步骤是(   )。

A)打开文件->操作文件->关闭文件

B)操作文件->修改文件->关闭文件

C)读写文件->打开文件->关闭文件

D)读文件->写文件->关闭文件

2、系统的标准输入文件是指(   )。

A)键盘     B) 显示器     C)软盘    D) 硬盘

3、若要打开C盘上user子目录下名为text.txt的文本文件进行只读操作,以下函数参数调用正确的是(    )

A)fopen(“C:\\user\\text.txt”,”r”);

B)fopen(“C:\user\text.txt”,”rb”);

C)fopen(“C:\\user\\text.txt”,”r+”);

D)fopen(“C:\\user\\text.txt”,”w”);

4、fclose函数的功能是(   )

A)打开文件   B)关闭文件   C)读文件   D)写文件

5、C语言对文件的操作需要通过文件指针和文件操作函数来完成。下列文件指针定义正确的是(    )

A) FILE  * fp;        B)  int  *  fp;

C)   file   * fs;       D) char   fs;

第十一单元   函数

一、选择题

1、以下不正确的说法是(  )。

A)在不同函数中可以使用相同名字的变量

B)形式参数是局部变量

C)在函数内定义的变量只在本函数范围内有定义

D)在某函数内定义的变量可在其余函数中通用

2、以下正确的函数定义是(  )。

A)double fun(int x , int y)       B)double fun(int x ; int y)

C)double fun(int x , int y) ;      D)double fun(int x,y)

3、以下正确的函数定义是(  )。

A)double fun(int x, int y)       B)double fun(int x,y)

{ z=x+y ; return z ; }             { int z ; return z ;}

C)fun (x,y)                   D)double fun (int x, int y)

{ int x, y ; double z ;                          { double z ;

z=x+y ; return z ; }                   return z ; }

4、若调用一个函数,且此函数中没有return语句,则正确的说法是(  )。

A)该函数没有返回值

B)该函数返回若干个系统默认值

C)能返回一个用户所希望的函数值

D)返回一个不确定的值

5、已知一个函数的定义如下:

double fun(int x, double y)

{ …… }

则该函数正确的函数原型声明为(  )。

A)double fun (int x,double y)        B)fun (int x,double y)

C)double fun (int x ,double y );       D)fun(x,y) ;

6、包含标准库函数scanf()声明的头文件是(  )。

A)stdio.h        B)stdlib.h

C)math.h        D)time.h

7、C语言规定,函数返回值的类型是由 决定的。

A)return语句中的表达式类型   B)调用该函数时的主调函数类型

C)调用该函数时由系统临时    D)在定义函数时所指定的函数返回类型

8、若在某程序中定义了多个函数,则以下说法中正确的是(     )。

A)C语言程序总是从第一个的数开始执行

B)在C语言程序中,要调用的函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

9、一个C语言程序是由(      )构成。

A)语句          B)行号         C)数据      D)函数

10、设有某函数fun,定义如下:

int  fun(int x, int y)

{     ……..    }

以下fun函数的调用,正确的是(  )。

A)fun(3 , 4.2)                  B)fun(3 , 4)

C)int a;                      D)int a;

a = fun(3 , 4)                   a = fun(3 , 4.2)

二、判断题

(  )1、在不同函数中可以使用相同名字的变量。     正确

(  )2、全局变量的作用域是整个程序。                正确

(  )3、局部变量的作用域是整个程序。                错误

(  )4、函数在做调用时,实际参数必须与形式参数一致,包括数量和数据类型。       正确

(  )5、函数的返回值必须与函数定义时的返回类型一致。  正确

三、程序阅读

  1. 以下程序运行后的结果是:___6,6_______

int fun()

{

int  x = 1;

int  y = 1;

x += 2;

y += 2;

return  x+y;

}

main()

{

int  a,b;

a = fun();

b = fun();

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

}

  1. 以下程序运行结果是:___B______

void  fun();

char  c = ’a’;

void  main()

{

char  c;

myfun( c );

printf(“%c\n”,c+1);

}

void  fun()

{

c -= 32;

}

  1. 下面程序执行过程中若输入23、45,运行结果是:___68_______

void  fun();

int  a,b;

main()

{

scanf(“%d,%d”,&a,&b);

fun();

}

void  fun()

{

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

}

4、以下函数的功能为通过自定义函数求两个数之间的最大值,请填空完成该程序。

int  fun(int a, int b)

{

if (a<b)  return  b

else     return  a

}

main()

{

int  a,b,max;

scanf(“%d,%d”,&a,&b);

max=fun(a,b);

printf(“max=%d”,max);

}

5、以下自定义函数的功能是找出所有三位数中不能被12整除的数,并统计其个数,请填空完成该程序。

void fun()

{     int i;

for( i=100; i<=999; i++)

if( i%12!=0 )   printf(“%d”,i);

}

void main()

{

fun();

}

【C语言】入门基础选择题附答案相关推荐

  1. 计算机基础知识一级考试题库,office一级考试选择题计算机基础知识(附答案)

    office一级考试选择题计算机基础知识(附答案) 全真试题训练 1)根据汉字国标GB2312-80的规定,二级次常用汉字个数是 A) 3000个 B)7445个 C)3008个 D)3755个 2) ...

  2. 计算机应用基础2010版知识点,2010计算机应用基础选择题(含答案版)重点.doc

    2010计算机应用基础选择题(含答案版)重点 第1部分 1.C 根据计算机使用的电信号来分类,电子计算机分为数字计算机和模拟计算机,其中,数字计算机是以( )为处理对象. A.字符数字量 B.物理量 ...

  3. 计算机office基础知识的试题,office计算机基础知识(附答案).doc

    office计算机基础知识(附答案).doc 试题训练1)根据汉字国标GB2312-80的规定,二级次常用汉字个数是? ? A) 3000个? ? B)7445个? ? C)3008个? ? D)37 ...

  4. 计算机归属应用软件的有,2017大学计算机应用基础试题附答案

    2017大学计算机应用基础试题附答案 计算机应用技术专业培养,能够用所学专业知识解决专业相关实际问题,培养适应计算机技术在企事业单位中发展.应用需要的人才.下面是小编整理的关于计算机应用基础试题附答案 ...

  5. c语言中return的作用_C语言入门基础整理

    学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学. 结构化程 ...

  6. c语言课后作业答案指针,C语言程序基础练习题带答案

    C语言程序基础练习题带答案 C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value).下面是小编为大家搜索整理的C语言专项训练 ...

  7. c语言3到7位水仙花数流程图_C语言入门基础整理

    学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学. 结构化程 ...

  8. C语言入门基础知识有哪些?

    众所周知C语言经久不衰,并且很多人都想要成为C语言工程师,为了能够做好C语言技术学习,需要知晓C语言入门基础知识有哪些. 用一个简单的C程序例子,介绍C语言的基本构成.格式.以及良好的书写风格,使小伙 ...

  9. 【无标题】C#nbsp;语言入门基础介绍学习通http://www.bdgxy.com/

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 表格制作excel教程h ...

  10. Go语言入门--基础语法

    Go语言入门系列文章目录 Go语言入门–基础语法 Go语言入门–流程语句 Go语言入门–数组和切片 集合(Map)(咕咕咕

最新文章

  1. IT运维人员追女友必备神器之运维开发实战程序案例
  2. laravel(二):laravel基本入门 看到Hello Laravel
  3. Pycharm切换anaconda的环境
  4. ListT.Find用法学习
  5. kubernetes实战篇之windows添加自签ca证书信任
  6. 浅谈JVM垃圾回收机制
  7. 实现AJAX回传过程中禁止用户重复提交
  8. 【电路仿真】基于matlab Simulink光伏太阳能电池板仿真模型【含Matlab源码 771期】
  9. android 日期控件计算星座,21. “我”模块(二)之星座选择
  10. Git报错:/c/Users/zhouy/AppData/Roaming/npm/hexo: line 12: node: command not found
  11. 蚂蚁金服是如何提高移动端体验的?
  12. java和mysql实现点餐功能_java+mysql餐馆点餐系统的设计与开发
  13. linux mantis安装包,Linux下安装mantis
  14. CDR真实图片转水墨画效果制作教程
  15. flutter打包出错了,有大神帮忙看看吗?
  16. HTML和CSS基础学习
  17. 企业核心-不是技术而是人才
  18. 贝塞尔曲线 弯曲动画ios_用贝塞尔曲线弯曲
  19. JS将数字金额转换为大写人民币汉字
  20. 如何查看磁盘是GUID格式(GPT)还是MBR格式?判别UEFI模式启动,还是Legacy模式启动?

热门文章

  1. 软件项目管理作业汇总
  2. latex中Winedt和Sumatra PDF互联设置及失效解决
  3. libpng error处理方式
  4. 基于STM32移植UCGUI图形界面框架(3.9.0源码版本)
  5. 神州炫龙蓝天刷bios教程(百分百成功/不成功下面留言)
  6. Python 文本转语音
  7. 区分BPSK、QPSK、8PSK和区分8QAM、16QAM、32QAM、64QAM
  8. Apache-tomcat-8.5.82下载安装以及环境变量配置
  9. 大学计算机专业高考听力,2018北京高考英语听力一年两考,其他省市如何进行?...
  10. 使用pytorch实现crnn