C语言期末考试复习资料(选择题)

1、以下叙述正确的是( B )

A)C语言的源程序不必通过编译就可以直接运行。

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。

C)C语言源程序经编译形成的二进制代码可以直接运行。

D)C语言中的函数不可以单独进行编译。

2. main( )函数的位置____B_____。

A. 必须在自定义函数前面   B. 可以在自定义函数后面

C.必须位于程序的最前面    D.必须在自定义函数后面

3、设 a 和 b 均为 double 型变量,且 a=5.5 、b=2.5 ,则表达式(int)a+b/b

的值是( D)

A、 6.500000   B、 6    C、 5.500000   D、 6.000000

4、switch (表达式)语句中的“表达式”,允许的类型是( C)。

A. float,int   B. float, int, char   C. int, char D. char, double

5. C语言的基本构成单位是(  A  )。

A. 函数       B. 函数和过程    C. 超文本过程     D. 子程序

6.下列字符串是标识符的是___D______。

A. 5_pro    B.case    C.else    D.pro_5

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

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

8、对两个字符数组a 和 b 进行初始化 char[]="ABCDEF";char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是 (D)。

A、a 与 b 数组完全相同     B、a 与 b 长度相同

C、a 和 b 中都存放字符串   D 、a 数组比 b 数组长度长

9、为了避免在嵌套的条件语句if ―― else 中产生二义性, c语言规定:else 子句总是与 (B) 配对。

A、缩排位置相同的if     B、其之前最近的if

C、其之后最近的if       D、同一行上的 if

10、正确的变量定义是( A)。

A.unsigned long d=1000;  B.float m1=m2=10.0;

C.char c1= ’A’,c2=A;     D.doublex=0.618,x=3.14;

11、程序 char c[5]={ ‘a’,’b’,’\0’,’c’,’\0’}; printf( “%s”,c);} 的运行结果是 ( D )。

A 、'a''b'   B、 ab   C、ab c   D、ab

12、一个 C语言的源程序中( A)

A)必须有一个主函数    B)可能有多个主函数

C)必须有除主函数外其它函数  D)可以没有主函数

13、C 语言中最简单的数据类型包括( B)

A、整型、实型、逻辑型      B、整型、实型、字符型

C、整型、字符型、逻辑型    D 、整型、实型、逻辑型、字符型

14.以下不正确的C语言标识符是( D   )。

A. ABC             B. abc              C. a_bc         D. ab.c

15. C语言的基本数据类型包括___A______。

A. 整型、实型、字符型     B. 整型、实型、空类型

C.整型、字符型、指针型    D.整型、实型、逻辑型

16. 在C语言中,合法的字符串常量是____B_____。

A. ‘\078’ B. “asd” C. ‘ab’ D. ‘\0’

17、下面不正确的字符串常量是(A)

A、 'abc'     B、 "12'12"    C、 "0"      D 、 " "

18、设 int a=1,b=2;, 则执行 a=b+2,a++,a+b ;后 a 和 b 的值分别是( D)。

A.1 和 2  B.3 和 2  C.4 和 7  D.5 和 2

19、下述表达式中 ,( A )可以正确表示 x≤0 或 x≥1 的关系。 

A 、(x>=1) || (x<=0)  B 、x>=1 | x<=0  C 、x>=1 && x<=0  D 、 (x>=1) && (x<=0)

20 设:int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a>b)&& (n=c>d) 后 n 的值为 (B) 。

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

21.若有定义:int a=7; float x=2.5 , y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( A   )。

A. 2.500000    B.2.750000   C. 3.500000   D. 0.000000

22. 结构化程序设计的三种基本结构是____C_____。

A.函数结构、选择结构、判断结构   B.函数结构、嵌套结构、平行结构

C.顺序结构、选择结构、循环结构   D.选择结构、循环结构、嵌套结构

23、以下错误的 if 语句是 (C) 。

A、 if(x>y) z=x;   B、 if(x= =y) z=0;

C、 if(x!=y) printf("%d",x) else printf("%d",y);

D、 if(x<y) { x++;y--;}

24、设 int a=2,b=3,c=4;, 则表达式a>b&&b<c||b 的值是(C )。

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

25、下面是对数组a 的初始化,其中不正确的是( D )。

A 、a[5]={"ABCD"}   B 、a[5]={'A' ,'B','C', 'D'}

C 、 a[5]= ""        D 、a[5]="ABCDE"

26、程序 char c[5]={‘a’, ’b’, ’\0 ’, ’c’ , ’\0 ’}; printf(“%s”,c);} 的运行结果是 ( D) 。

A、'a''b'  B、ab  C 、ab c  D 、 ab

27、若变量已正确定义,以下非法的表达式是( B)

A、a/=b+c  B、 a%(4.0)   C、 a=1/2*(x=y=20,x*3)   D、a=b=c

28、以下关于运算符优先顺序的描述中正确的是(C) 。

A、关系运算符 <算术运算符 <赋值运算符<逻辑与运算符

B、逻辑与运算符 <关系运算符 <算术运算符<赋值运算符

C、赋值运算符 <逻辑与运算符 <关系运算符 <算术运算符

D、算术运算符 <关系运算符 <赋值运算符<逻辑与运算符

29.若有定义double x=1,y;则以下的语句执行的结果是(  C  )。

y=x+3/2; printf(“%f”,y);

A.2.500000      B.2.5       C.2.000000        D.2 

30. 若已定义:int  a=7;float b=60.3;则以下语句能正确输出值的是___D______。

A. printf(“%d%d”,&a,&b);       B.printf(“%d%f”,&a,&b);    

 C. printf(“%f%d”,&a,&b);       D. printf(“%d%f”, a, b);

31、使用语句 scanf( “a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:(A)

A、a=2.2,b=3    B、a=2.2 b=3    C、2.2 3    D、2.2,3

32、表示关系 12<=x<=y 的 C语言表达式为:(B)

A、(12<=x)&(x<=y)   B、 (12<=x)&&(x<=y)

C、 (12<=x)|(x<=y)   D、(12<=x)||(x<=y)

33、以下正确的叙述是( D) 

A 、 在 C 程序中,每行中只能写一条语句

B、 若 a 是实型变量, C 程序中允许赋值a=10,因此实型变量中允许存放整型数

C、 在 C 程序中,无论是整数还是实数,都能被准确无误地表示

D、 在 C 程序中, %是只能用于整数运算的运算符

34.若x=0,y=3,z=3,以下表达式值为0的是(  C  )。 

A. !x   B.x<y? 1:0        C.x%2&&y==z       D. y=x||z/3

35、以下对一维数组正确初始化的是____D____。

A.int a[5]=(0,0,0);           B.int  a[5]={};

C. int  a[5]={1,2,3,4,5,6};     D. int  a[5]={1,2,3,4,5}

36.设i和x都是int类型,则for循环语句___A_____。

for(i=0,x=0;i<=9&&x!=876;i++)scanf("%d",&x);

   A. 最多执行10次                      B. 最多执行9次

C. 是无限循环                         D. 循环体一次也不执行

37、语句 for (a=0,b=0;b!=100&&a<5;a++)scanf( “%d”,&b);scanf最多可执行次数为:(C)

A、4     B 、6    C 、5     D 、1

38、执行下列语句int a;printf("%d\n",(a=3*5,a*4,a+5));后,a 的值是( B) 

A 、 65    B、 20    C、 15     D、 10

39、下列程序的输出结果是(C)。

main( )

{ inta=7,b=5;

printf("%d\n",b=b/a);

}

A 、 5    B、1  C、0   D、不确定值

40.分析以下程序, 下列说法正确的是(  D  ) 。

main()

  { int x=5,a=0,b=0;

if(x=a+b) printf("* * * *\n");

else  printf("# # # #\n");

    }

   A. 有语法错,不能通过编译             B. 通过编译,但不能连接

   C. 输出** * *                        D. 输出# # # #

41、若以下选项中的变量已正确定义,则正确的赋值语句是(C )

A)x1=26.8%3;   B)1+2=x2;   C)x3=0x12;   D)x4=1+2=3;

42、若有说明:int a[3][4]; 则对 a 数组元素的非法引用是( D )。 

A 、a[0][2*1]   B 、a[1][3]   C 、a[4-2][0]   D 、a[0][4]

43、以下关于运算符优先顺序的描述中正确的是( C )。

A 、关系运算符 <算术运算符 <赋值运算符<逻辑与运算符

B、逻辑与运算符 <关系运算符 <算术运算符<赋值运算符

C、赋值运算符 <逻辑与运算符 < 关系运算符 <算术运算符

D、算术运算符 <关系运算符 <赋值运算符<逻辑与运算符

44、下列运算符中,结合性为自左向右的是( B)

A 、?:    B、,    C、+=     D 、 ++

45、程序段 char a[7]= ”abcdef”;char b[4]= ”ABC ”; strcpy(a,b);printf( “%c”,a[5]); 输出结果是 ( D )。

A 、一个空格  B、\0   C、e   D、f

46、在 C 语言中,一位数组的定义方式为:类型说明符 数组名 (C )。

A 、[常量表达 ] B、整型表达式 C、[整型常量 ]或 [整型表达式 ]  D、[整型常量 ]

47.程序段如下:则以下说法中正确的是( D   ) 。

int k=5;

do{  k--;}while(k<=0);

   A. 循环执行5次                       B. 循环是无限循环

   C. 循环体语句一次也不执行             D. 循环体语句执行一次

48.设有语句int  x=2,y=3;则表达式x=(y= =3)的值是__B______。

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

49、设有定义:float a=2,b=4,h=3;以下 C 语言表达式中与代数式(a+b)*h 的计算结果不相符的是( B)

A)(a+b)*h/2    B)(1/2)*(a+b)*h    C)(a+b)*h*1/2  D)h/2*(a+b)

50.下列程序段执行后k值为(  A  )。

int k=0,i,j;

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

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

      k=k+1 ;

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

51. 下列关于C语言函数的描述中,错误的是__A______。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套  

B. 凡不加类型说明的函数,其返回值默认为整型

C.函数的返回值可以通过函数中的return语句获得  

D.可以定义有参函数,也可以定义无参函数

52.在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是( A  )。

A. 4          B.1             C. 2        D. 5

53.在 while(!x)语句中的 !x 与下面条件表达式等价的是( D)

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

54.在C语言程序中,以下描述正确的是(  B  ) 。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套

B. 函数的定义不可以嵌套,但函数的调用可以嵌套

C. 函数的定义和函数的调用均不可以嵌套

D. 函数的定义和函数的调用均可以嵌套

55、有以下程序:

#include<stdio.h>

void main(){

inti=1,j=1,k=2;

if((j++||k++)&&i++ )

printf(“%d,%d,%d\n”,i,j,k);}

执行后的输出结果是(C )

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

56.一个C语言程序总是从___B______开始执行。

A. 主过程    B. 主函数    C. 子程序   D.主程序

57、有以下程序:

#include<stdio.h>

void main(){

int i,s=0;

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

s+=i+1;

printf(“%d\n”,s);}

程序执行后的输出结果是(D  )

A)自然数 1~9 的累加和   B)自然数 1~10 的累加和

C)自然数 1~9 中奇数之和  D)自然数 1~10 中偶数之和

58、有以下函数定义:

void fun(intn,double x){……}

若以下选项中的变量都已经正确定义并赋值,则对函数fun 的正确调用语句是( C  )

A)fun(int y,double m);   B)k=fun(10,12.5);

C)fun(x,n);      D)void fun(n,x);

59.下列字符串是标识符的是___A______。

A. _HJ         B.9_student        C. long       D. LINE 1

60、已知各变量的类型说明如下:

int k,a,b=1;unsigned long w=5; 则以下不符合 C 语言语法的表达式是( A )

A 、 k=b+2=w   B、 w+= -2    C、 k=(a=2,b=3,a+b)  D 、a+=a-=(b=4)*(a=3)

61.在C语言中,字符型数据在内存中以___D______形式存放。

A. 原码     B. BCD码    C. 反码      D. ASCII码

62、设 char s[10]=〞abcde〞,t[]=〞 12345〞 ; , 则 s 和 t 在内存中分配的字节数分别是(B )。

A.6 和 5  B.6 和 6   C.10 和 5  D .10 和 6

63、 c 语言中 ( D )。 

A 、不能使用 do-while 语句构成的循环

B、do-while 语句构成的循环必须用break 语句才能退出

C、do—whiLe 语句构成的循环,当while语句中的表达式值为非零时结束循环

D、do—while 语句构成的循环,当while语句中的表达式值为零时结束循环

64.使用字符串处理函数时,应该包含的头文件是____C_____。

A、stdio.h     B、math.h     C、string.h  D、不用包含头文件

65.C语言中运算对象必须是整型的运算符是___D______。

A、*     B、=      C、+       D、%

66、以下选项中 ,不合法常量的是(B)

A、1.234e04   B、 1.234e0.4  C、1.234e+4 D、 1.234e0

67.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是__B_______。

A. float型       B. int型      C. long型      D. double型

68、设 a 和 b 均为 double 型变量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是( D)

A、 6.500000   B、 6    C、 5.500000    D、 6.000000

69、x、y、z 被定义为 int 型变量,若从键盘给x、y、z 输入数据,正确的输入语句是(B)

A、 INPUT x 、y、z;        B、scanf("%d%d%d",&x,&y,&z);

C、 scanf("%d%d%d",x,y,z); D、 read("%d%d%d",&x,&y,&z);

70、函数调用结束后,形式参数(C )。

A 、继续占用相同大小的内存   B、占用的内存减小

C、释放内存            D、不确定

71、以下数组定义中,正确的是__D______。

A、inta[2][3]={1,2,3,4,5,6,7};

B、inta[][]={{1,2,3},{4,5,6},{7,8,9}};

C、inta[2][]= {1,2,3,4,5,6};

D、inta[][4]= {6};

72、设 char ch='A'; 则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是 ( B )。

A、A    B 、a   C、Z     D 、z

73、若有以下类型说明语句:

char w; intx; float y; double z; 则表达式 w*x+z-y 的结果类型是(D)

A 、float    B、char    C、int    D、double

74.设i和x都是int类型,则for循环语句__A______。

for(i=0,x=0;i<=9&&x!=876;i++) scanf("%d",&x);

   A. 最多执行10次                      B. 最多执行9次

C. 是无限循环                         D. 循环体一次也不执行

75、执行程序段 int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“ %d %d %d\n ”,k,a,b);后的输出结果是 ( D ) 。

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

76、设 x,y 为浮点型变量,合法赋值语句是( A)

A 、x=8+y;   B、(float)3 ;   C、y=(x%2)/10 ;   D、*x=10;

77、下面不正确的字符串常量是( A)

A 、 'abc'    B、 "12'12"   C、 "0"  D、 " "

78.分析以下程序, 下列说法正确的是__C______。

main()

  { intx=0,a=0,b=0;

if(x==a+b) printf("* * * *\n");

else  printf("# # # #\n");

        }

   A. 有语法错,不能通过编译             B. 通过编译,但不能连接

   C. 输出** * *                        D. 输出# # # #

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

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

80、以下对二维整形数组a 的正确说明是 (C)。

A、int a[3][];   B 、float a(3,4);  C、double a[1][4]; D 、float a(3)(4)

81、 C 语言中 , 下列字符常量合法的是(A) 

A 、'\t'    B、"A"   C、65    D、A

82.下列关于do_while语句和while语句的叙述中错误的是___B_____。

A、do_while先执行循环语句后判断循环条件

B、while语句至少执行一次循环语句 

C、while语句是先进行条件判断,满足条件才去执行循环语句

D、do_while语句至少执行一次循环语句

83、对两个字符数组 a 和 b 进行初始化 char a[]="ABCDEF"; char

b[]={'A','B','C','D','E','F'}; 则以下叙述正确的是 (D ) 。

A、a 与 b 数组完全相同     B、a 与 b 长度相同

C、a 和 b 中都存放字符串  D、a 数组比 b 数组长度长

84、在 C 语言中 ,若需一变量只在本文件中所有函数使用,则该变量的存储类别是

( D ) 。

A、extern   B、register    C、 auto     D、static

85、以下叙述中正确的是(C)

A 、用 C 语言实现的算法必须要有输入和输出操作

B、用 C 语言实现的算法可以没有输出但必须要有输入

C、用 C 程序实现的算法可以没有输入但必须要有输出

D、用 C 程序实现的算法可以既没有输入也没有输出

86、设有 int k=10;while (k=0) k=k-1; 则下面描述中正确的是( C )。 

A 、while循环执行 10 次      B、循环是无限循环

C、循环体语句一次也不执行    D、循环体语句执行一次

87、下列循环语句会进入死循环的是 ( C )。 

A 、i=0;do { i++; }while(i = =100) ;

B、for(i=0;i<100; i+=3.14);

C、for(i=0;; i+=2);

D、k=1;do { k--;} while(k);

88、以下选项中,与k=n++ 完全等价的表达式是( A )

A 、 k=n,n=n+1     B、 n=n+1,k=n

C、 k=++n          D、 k+=n+1

89、以下错误的 if 语句是 ( C )。( 2 分)

A 、if(x>y)z=x;    B、if(x==y)z=0;

C、if(x!=y)printf("%d",x) else printf("%d",y);   D、if(x<y){ x++;y--;}

90、执行程序段int k=4,a=3,b=2,c=1; printf( “\n%d\n”,k<a?k:c<b? c:a);后的输出结果是

( D )。

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

91、对以说明语句int a[10]={6,7,8,9,10}; 的正确理解是 ( B )。 

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

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

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

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

92、执行下列语句int x=10,y=10;printf("%d %d\n",x--,--y); 后的输出是( D)

A 、10 10    B、9 9     C、9 10    D、10 9

93、执行下列语句int k=2, i=2, m;m=(k+=i*=k); printf("%d,%d\n",m,i);后的输出结果是( C)

A 、8,6     B、8,3     C、6,4     D、7,4

94、能正确表示“当 x 的取值在 [1,10]和[200,210]范围内为真, 否则为假”的表达式是 (

C )。

A、(x>=1)&& (x<=10) && (x>=200) && (x<=210)

B 、 (x>=1) || (x<=10) || (x>=200) || (x<=210)

C、(x>=1)&& (x<=10) || (x>=200) && (x<=210)

D 、 (x>=1) || (x<=10) && (x>=200) ||(x<=210)

95、语句 int a,b; printf("%d",(a=2)&&(b= -2)); 的输出结果是 ( D )。 

A 、无输出    B、结果不确定    C、-1     D、1

96、下列说法中正确的是( C)  

A、C 语言程序书写时,不区分大小写字母

B、C 语言程序书写时,一行只能够写一个语句

C、C 语言程序书写时,一个语句可分成几行书写

D、C 语言程序书写时,每行必须有分号

97、判断字符串 a 是否大于 b,应当使用 ( D )。 

A 、if(a>b)

B、if(strcmp(a,b))

C、if(strcmp(b,a)>0)

D、if(strcmp(a,b)>0)

98、下列关于赋值运算符的表述中,错误的是( B)

A 、赋值运算符优先级高于逗号运算符

B、赋值运算符的结合性是从左至右

C、赋值运算符是双目运算符

D、赋值运算符可在表达式中连用

99、实际参数不能是 (D )。

A 、常量   B、变量   C、表达式     D、不确定值

100、下面的函数是无参函数的是 ( A )。

A 、main()  B、intmax(int x, int y)   C、return(z)   D、scanf("%d",&a)

  • 4
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鸭文库

你的鼓励是我前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值