您好,欢迎来到刀刀网。
搜索
您的当前位置:首页c语言考试题库

c语言考试题库

来源:刀刀网
一、单选题(每题1分,共100题)

1.C语言源程序文件是后缀为( 未填 )的文件。 错误 正确答案:A

A. .c

B. .exe

C. .obj

D. .bat

2.C语言中主函数的个数是( 未填 )。 错误 正确答案:D

A. 2个

B. 任意个

C.10个

D. 1个

3.定义指针变量时,需要在指针变量名前加上( 未填 ) 错误 正确答案:C

A.!

B.@

C.*

D.&

4.变量的指针,其含义是指该变量的( 未填 ) 错误 正确答案:B

A.值

B.地址

C.名

D.标志

5.若定义:int a=511,*b=&a; 则printf("%d\\n",*b);的输出结果为( 未填 ) 错误 正确答案:D

A.无确定

B.a的地址

C.512

D.511

6.若有以下定义int a[10],*p=a;则p+5表示( 未填 ) 错误 正确答案:A

A.元素a[5]的地址

B.元素a[5]的值

C.元素a[6]的地址

D.元素a[6]的值

7.下列变量名中合法的是( 未填 ) 错误 正确答案:A

A.Tom

B.3a6b

C.6a7b

D.5ABC

8.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( 未填 )。 错误 正确答案:C

A.必须为字母

B.必须为下划线

C.必须为字母或下划线

D.可以是字母,数字和下划线中任一字符

9.表达式18/4*sqrt(4.0)/8值的数据类型为( 未填 )。 错误 正确答案:C

A.int

B.float

C.double

D.不确定

10.若希望当A的值为奇数时,表达式的值为真,A的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是( 未填 )。 错误 正确答案:C

A.A%2==1

B.!(A%2==0)

C.!(A%2)

D.A%2

11.下列数据中,为字符的是( 未填 )。 错误 正确答案:D

A.‘AB’

B."A"

C.How

D.'A'

12.下列不合法的实数是( 未填 ) 错误 正确答案:C

A.34.65

B.6.3E2

C.e3

D.54.3

13.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( 未填 )。 错误 正确答案:D

A.float

B.char

C.int

D.double

14.已知有以下定义

char a;

int b;

float c;

double d;

则表达式a*b+c-d的结果为( 未填 )型。

错误 正确答案:A

A.double

B.int

C.float

D.char

15.下面程序的输出是( 未填 )。

main()

{

int x=10,y=3;

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

}

错误 正确答案:B

A.0

B.1

C.3

D.不确定的值

16.已知变量定义i=4,则执行表达式k=i++后,k的值为( 未填 )。 错误 正确答案:C

A.2

B.3

C.4

D.5

17.在C语言中,不正确的int类型常量是( 未填 )。 错误 正确答案:B

A.0453

B.1.5

C.32768

D.-32768

18.下列不正确的转义字符是( 未填 )。 错误 正确答案:C

A.\\\\'

B.\\"

C.074'

D.\\0'

19.下列浮点数的表达中不正确的是( 未填 ) 错误 正确答案:D

A.223

B.719E22

C.2e3

D.12e2.0

20.字符(char)型数据在微机内存中的存储形式是( 未填 ) 错误 正确答案:D

A.反码

B.补码

C.EBCDIC码

D.ASCII码

21.以下实型常量中,符合C语言语法的是( 未填 )。 错误 正确答案:A

A.5E-3

B.1.2E0.5

C.E15

D.3.14.159E

22.7/2的结果为( 未填 )型。 错误 正确答案:B

A.double

B.int

C.float

D.char

23.函数double sqrt(x)的功能是( 未填 ) 错误 正确答案:B

A.求x的平方

B.求x的平方根

C.求x的对数

D.求x的绝对值

24.C语言中,若未说明函数的类型,则系统默认该函数的类型是( 未填 ) 错误 正确答案:C

A.float型

B.long型

C.int型

D.double型

25.下列程序的输出结果是( 未填 )

main()

{ int a=4;

a*=a+=6;

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

错误 正确答案:D

A.40

B.60

C.80

D.100

26.定义a为整型,下列表达式a=3>6的运行后,a的值为( 未填 ) 错误 正确答案:A

A.0

B.1

C.3

D.表达式错误

27.设已定义x为double类型变量

x=213.82631;

printf("%-6.2e\\n",x);

则以上语句( 未填 )。

错误 正确答案:C

A.输出格式描述符的域宽不够,不能输出

B.输出为21.38e+01

C.输出为2.14e+002

D.输出为-2.14e2

28.阅读下面的程序

#include

void main()

{int i,j;

i=010;

j=9;

printf("%d,%d",i-j,i+j);}

则程序的运行结果是( 未填 )

错误 正确答案:D

A. 1,19

B. -1,19

C. 1,17

D. -1,17

29.已知 int i,a; 执行语句”i=(a=2*3,a*5),a+6;”后,变量a的值是( 未填 )。 错误 正确答案:A

A. 6

B. 12

C. 30

D. 36

30.若有定义:int a,b;,通过语句scanf("%d;%d",&a,&b);能把整数3赋给变量a,5赋给变量b的输入数据是( 未填 )。 错误 正确答案:C

A. 3 5

B. 3,5

C. 3;5

D. 35

31.设有int a=4; float b=9.5;则执行printf("a=%d,b=%4.2f\\n",a,b);后,屏幕上显示( 未填 ) 错误 正确答案:C

A. a=%d,b=%f\\n

B. a=%d,b=%f

C. a=4,b=9.50

D. a=4,b=9.5

32.表达式18/4*sqrt (4.0)/8值的数据类型为( 未填 )。 错误 正确答案:C

A.int

B.float

C.double

D.不确定

33.下列程序执行后的输出结果是( 未填 )。

main()

{ char x=0xFFFF; printf("%d \\n",x--); }

错误 正确答案:C

A.-32767

B.FFFE

C.-1

D.-32768

34.已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是( 未填 )。 错误 正确答案:D

A. scanf("%ld",&a);

B. scanf("%d",&a);

C. scanf("%7.2f",&a);

D. scanf("%lf",&a);

35.C语言中数组下标的下限是( 未填 )。 错误 正确答案:B

A.1

B.0

C.视具体情况而定

D.无固定下限

36.有如下条件表达式,若a=2、b=4、c=5 、d=7则表达式的值为( 未填 )。a>b? a:c>d?c:d 错误 正确答案:D

A.2

B.4

C.5

D.7

37.下列if语句中,不正确的是( 未填 )。 错误 正确答案:C

A.if(x>y);

B.if(x==y) x+=y;

C.if(x!=y) scanf("%d",&x) else x=1;

D.if(x

38.要用C语言表示数学关系式a≥b≥c,正确的表达式是( 未填 )。 错误 正确答案:D

A.a>=b>=c

B.(a>=b)& (b>=c)

C.(a>=b) || (b>=c)

D.(a>=b)&& (b>=c)

39.两次运行下面程序,如果从键盘分别输入3和2,则输出结果是( 未填 )

#include

void main(){

int x;

scanf("%d",&x);

if(x++>2) printf("%d",x);

else printf("%d\\n",x--);

} 错误 正确答案:A

A.4和3

B.4和2

C.4和1

D.3和2

40.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是( 未填 ) 错误 正确答案:D

A. x&&y

B. x<=y

C. x||++y&&y-z

D. !(x

41.下面( 未填 )不是c语言的关键字。 错误 正确答案:C

A.if

B.goto

C.print

D.else

42.以下4个选项中,不能看做一条语句的是( 未填 ) 错误 正确答案:D

A.;

B.a=5,b=2.5,c=3.6;

C. if(a<5);

D. if(b!=5)x=2;y=6;

43.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( 未填 )。if(x>y) z=x; x=y; y=z; 错误 正确答案:B

A. x=10, y=20, z=30

B. x=20, y=30, z=30

C. x=20, y=30, z=10

D. x=20, y=30, z=20

44.以下程序的输出结果是( 未填 )。

#include ”stdio.h”

main()

{

int a=5, b=4, c=6, d;

printf(”%d\\n”, d=a>b? a>c?a:c :b);

} 错误 正确答案:C

A.5

B.4

C.6

D.不确定

45.下列说法正确的是( 未填 )。 错误 正确答案:D

A.break语句仅能使用在switch结构中

B.执行continue语句可以结束包含它的整个循环结构

C.执行循环体中的break语句可以结束语本次循环

D.执行break语句可以结束包含它的循环结构

46.下面有关for循环的正确描述是 ( 未填 )。 错误 正确答案:D

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判断表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

47.下列保留字中用于构成循环结构的是( 未填 )。 错误 正确答案:B

A.if

B.while

C.switch

D.default

48.以下正确的描述是( 未填 )。 错误 正确答案:B

A. continue语句的作用是结束整个循环的执行

B. 只能在循环体内和switch语句体内使用break语句

C. 在循环体内使用break语句或continue语句的作用相同

D. 从多层循环嵌套中退出时, 只能使用goto语句

49.有以下程序

main()

{ int i, j;

for(j=10;j<11;j++)

{ for(i=9;i==j-1;i++)printf("%d",j);

}

}

输出结果是( 未填 )。 错误 正确答案:B

A.11

B.10

C.9

D.10 11

50.若有如下语句

int x=3;

do{ printf("%d\n",x-=2);}

while(!(--x));

则上面程序段( 未填 ) 错误 正确答案:B

A. 输出的是1

B.输出的是1和-2

C. 输出的是3和0

D. 是死循环

51.以下程序的运行结果为( 未填 )

#include "stdio.h"

main()

{ int m,n;

for(m=0,n=10;m

printf("%d,%d\n",m,n);} 错误 正确答案:C

A. 6,7

B. 7,6

C. 9,7

D. 7,9

52.在下述程序中,判断i>j共执行的次数是( 未填 )

main(){ int i=0, j=10, k=2, s=0;

for (;;) { i+=k;

if(i>j)

{ printf("%d",s);

break;

}

s+=i;

}

} 错误 正确答案:D

A.4

B.7

C.5

D.6

53.若for循环用以下形式表示:for(表达式1;表达式2;表达式3) 循环体语句,则执行语句for(i=0;i<3;i++) printf("*"); 时,表达式1执行________次,表达式3执行________次( 未填 ) 错误 正确答案:A

A.1 3

B.1 1

C.3 1

D.3 3

54.程序运行的结果是( 未填 )

main()

{int n=0;

while(n++<=1)

printf("%d\",n);

} 错误 正确答案:A

A.1 2

B.0 1

C.1

D.1 1

55.下面程序的输出结果是( 未填 )。

main()

{ int x=3,y=6,a=0;

while (x++!=(y-=1))

{a+=1;

if (y

}

printf("x=%d,y=%d,a=%d\\n",x,y,a);

} 错误 正确答案:D

A.x=4,y=4,a=1

B.x=5,y=5,a=1

C.x=5,y=4,a=3

D.x=5,y=4,a=1

56.在下列选项中,没有构成死循环的是( 未填 ) 错误 正确答案:D

A. int i=100;while(1){ i=i%100+1;if(i>100)break;}

B. for(;;);

C. int k=10000;do{k++;}while(k>10000);

D. int s=36;while(s)--s;

57.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空。( 未填 )

#include

main()

{ int a,b,t;

scanf("%d%d",&a,&b);

while(_______)

{if(a>b)

{t=a;a=b;b=t;}

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

scanf("%d%d",&a,&b);

}

} 错误 正确答案:B

A. !a=b

B. a!=b

C. a==b

D. a=b

58.有如下程序

main()

{ int x=23;

do

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

while(!x);

}

该程序的执行结果是( 未填 ) 错误 正确答案:B

A.321

B.23

C.不输出任何内容

D. 陷入死循环

59.有以下语句,则下面( 未填 )是正确的描述

static char x [ ]=“12345”;

static char y[ ]={‘1’,‘2’,‘3’,‘4’,‘5’}; 错误 正确答案:B

A. x数组和y数组的长度相同。

B. x数组长度大于y数组长度。

C. x数组长度小于y数组长度

D. x数组等价于y数组。

60.有语句char str1[10],str2[10]={"china"};则能将字符串china赋给数组str1的正确语句是( 未填 )。 错误 正确答案:B

A. str1={"china"};

B. strcpy(str1,str2);

C. str1=str2;

D. strcpy(str2,str1);

61.以下正确的语句是( 未填 )。

错误 正确答案:D

A. int a[1][4]={1,2,3,4,5};

B. float x[3][ ]={{1},{2},{3}};

C. long b[2][3]={{1},{1,2},{1,2,3}};

D. double y[ ][3]={0};

62.下述对C语言字符数组的描述中错误的是( 未填 )。 错误 正确答案:C

A. 字符数组可以存放字符串

B. 字符数组中的字符串可以整体输入、输出

C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D. 不可以用关系运算符对字符数组中的字符串进行比较

63.以下程序的输出结果是( 未填 )。

main()

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

printf("%d%d%d%d\\n",a[0][0],a[1][1],a[2][2],a[3][3]);

} 错误 正确答案:B

A. 0650

B. 1470

C. 5430

D. 输出值不定

.列不能正确进行字符串赋值操作的语句是( 未填 ) 错误 正确答案:C

A. char str[10];gets(str);

B. char*str;str=“a”;

C. char*str;str=‘a’;

D. charstr[10];strcpy(str,“hello”);

65.以下说法中正确的是( 未填 )

错误 正确答案:C

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

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

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

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

66.如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量( 未填 )。 错误 正确答案:C

A. 为全局变量,在本程序文件范围内有效

B. 为局部变量,只在该函数内有效

C. 为局部变量,只在该复合语句中有效

D. 定义无效,为非法变量

67.若函数的定义为:

fun (char ch)

{

}

那么该函数的返回值是( 未填 )

错误 正确答案:D

A.void 型

B.char 型

C.float 型

D.int 型

68.程序的输出是 ( 未填 )

int w=3;

void main()

{

int w=10;

printf("%d\\n",fun(5)*w);

}

fun(int k)

{ if(k==0) return w; return(fun(k-1)*k); }

错误 正确答案:B

A. 360

B. 3600

C. 1080

D. 1200

69.在C语言中,形参必须是( 未填 )。 错误 正确答案:B

A. 常量

B. 变量

C. 数值

D. 表达式

70.若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量a,则在另一文件中可使用的引用说明是( 未填 )。 错误 正确答案:D

A. extern static float a;

B. float a;

C. extern auto float a;

D. extern float a;

71.有一下程序

viod fun (int a,int b,int c)

{ a=456; b=567; c=678;}

void main()

{ int x=10, y=20,z=30;

fun (x,y,z);

printf("%d,%d,%d\\n",x,y,z);

}输出结果是( B )

错误 正确答案:B

A.30,20,10

B.10,20,30

C.456,567,678

D.678,567,456

72.下面程序的运行结果是( 未填 )。

char c[5] = {‘a’,‘b’,‘\\0’,‘c’,‘\\0’};

printf(“%s”,c);

错误 正确答案:D

A. ‘a’’b’

B. \\0

C. ab c

D. 以上三个答案均有错误

73.假设有以下函数定义

float f1(float x)

{return x+1.3;}

则输出语句printf(“%f\\n”,f1(2));的输出结果为( 未填 )。 错误 正确答案:A

A.3.300000

B.3.3

C.2.000000

D.1.3

74.已知

int t=0;

while (t=1)

{...}

则以下叙述正确的是( 未填 ) 错误 正确答案:B

A.循环控制表达式的值为0

B.循环控制表达式的值为1

C.循环控制表达式不合法

D.以上说法都不对

75.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是( 未填 )。 错误 正确答案:B

A.地址传递

B.单向值传递

C.由用户指定传递方式

D.实参传给形参,再由形参传给实参

76.设有:int a[10],i=5;,以下对数组元素引用不正确的是( 未填 )。 错误 正确答案:D

A. a[9]

B. a[0]

C. a[i]

D. a[i+5]

77.若有数组定义: char array [ ]="China"; 则数组 array所占的空间为( 未填 )。 错误 正确答案:C

A. 4个字节

B. 5个字节

C. 6个字节

D. 7个字节

78.若i为int型,且有程序如下,则输出结果是( 未填 )

i=111;

if(i%3==0)

printf("####");

printf("****");

错误 正确答案:C

A) ####

B. ****

C. ####****

D. 无输出结果

79.对表达式for(表达式1; ;表达式3)可理解为( 未填 ) 错误 正确答案:B

A. for(表达式1;0;表达式3)

B. for(表达式1;1;表达式3)

C. for(表达式1;表达式1;表达式3)

D. for(表达式1;表达式3;表达式3)

80.若 int m=5;

则 if(m++>5) printf("%d\\n",m);

else printf("%d\\n",m--);

输出结果是( 未填 )。 错误 正确答案:B

A.7

B.6

C.5

D.4

81.以下程序的输出结果( 未填 )

int main()

{

int num=0;

while(num <=2)

{num++;

printf("%d",num);

}

} 错误 正确答案:B

A.012

B.123

C.234

D.345

82.以下描述中正确的是( 未填 ) 错误 正确答案:C

A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C.在do-while循环体中,是先执行一次循环,再进行判断

D.do-while循环中,根据情况可以省略while

83.要说明一个有10个int元素的数组,应当选择语句( 未填 )。 错误 正确答案:A

A. int a [10];

B. int a[2,5];

C. int a [ ];

D. int *a[10];

84.若 int k=3;

则语句 if(k)

printf("###");

else

printf("&&&&");

执行后的输出结果是( 未填 )

错误 正确答案:A

A.###

B.&&&&

C.###&&&&

D.有语法错误,不能执行

85.以下程序段的输出结果为( 未填 )。

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

for(j=1;j

putchar('#'); 错误 正确答案:B

A.无

B.######

C.#

D.###

86.有以下语句:

i=1;

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

与以上语句序列不等价的有( 未填 )。 错误 正确答案:C

A. for(i=1; ;i++) {sum+=i;if(i==100)break;}

B. for(i=1;i<=100;){sum+=i;i++;}

C. i=1;for(;i<=100;)sum+=i;

D. i=1;for(; ;){sum+=i;if(i==100)break;i++;}

87.以下程序运行后的输出结果是( 未填 )。

fun(int a, int b)

{

if(a>b) return a;

else return b;

}

则函数调用表达式 fun(fun(3,5),2)的结果为: 错误 正确答案:B

A.3

B.5

C.2

D.10

88.定义一个void型函数意味着调用该函数时,函数( 未填 ) 错误 正确答案:C

A.通过return返回一个用户所希望的函数值

B.返回一个系统默认值

C.没有返回值

D.返回一个不确定的值

.以下是死循环的程序段是( 未填 ) 错误 正确答案:C

A. for(i=1; ; ){if(++i%2==0) continue;f(++i%3==0) break; }

B. i=32767; do{if(i<0) break;}while(++i);

C. for(i=1; ; ) if(++i<10) continue;

D. i=1;while(i--);

90.以下程序的输出结果( 未填 )

int 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中偶数之和

91.若 int num=0;

则循环语句while(num<=2)

{

num++;

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

}

的执行结果为( 未填 )

错误 正确答案:C

A. 1

B. 1<换行>2

C. 1<换行>2<换行>3

D. 1<换行>2<换行>3<换行>4

92.若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是( 未填 )。 错误 正确答案:C

A.2.5

B.3.5

C.4.5

D.5.5

93.下列程序段的执行结果( 未填 )int a=8,b=1;

if(a>=5) printf("%d",b+a);

else if(a>b) printf("%d",a-b);

else printf("%d",b); 错误 正确答案:A

A.9

B.7

C.1

D.编译错误

94.有以下程序

int fun(int n)

{

if(n==1) return 1;

else

return(n+fun(n-1));

}

则函数调用表达式fun(10)输出结果是( 未填 )。 错误 正确答案:A

A.55

B.54

C.65

D.45

95.有下面程序

#include

void main(){

int x;

scanf("%d",&x);

if(x<=3);else

if(x!=10)

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

}

程序运行,输入的值在哪个范围才会有输出结果( 未填 ) 错误 正确答案:B

A.不能于10的整数

B.大于3且不等于10的整数

C.大于3或等于10的整数

D.小于3的整数

96.下列关于do...while(表达式)循环结构的叙述中,说法正确的是( 未填 )。 错误 正确答案:B

A.只要表达式的值不为0就开始执行循环

B.循环体至少被执行一次

C.当表达式的值为0时循环体一次也不执行

D.循环体仅能执行一次

97.若有定义:int a[10],则对数组a元素的正确引用是 ( 未填 )。 错误 正确答案:B

A. a(5)

B. a[0]

C. a[10]

D. a[3.5]

98.下面程序段( 未填 )

for(t=1;t<=100;t++)

{

scanf("%d",&x);

if(x<0) continue;

printf("%3d",t);

} 错误 正确答案:D

A. 当x<0时整个循环结束

B. x>=0时什么也不输出

C. printf函数永远也不执行

D. 最多允许输出100个非负整数

99.下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择①( 未填 )

#include

void main()

{

int a,max=0;

scanf("%d",&a);

while( ① )

{

if(max

scanf("%d",&a);

}

printf("%d",max);

} 错误 正确答案:B

A.a==0

B.a

C.!a==1

D.!a

100.若int a=2,b=-1,c=2;

则 if (a

if (b<0) c=0;

else c++;

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

的输出结果是( 未填 )

错误 正确答案:C

A. 0

B. 1

C. 2

D. 3

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务