人人范文网 范文大全

C语言基础试题

发布时间:2020-03-02 01:10:41 来源:范文大全 收藏本文 下载本文 手机版

一、单选题:

1、以下说法中正确的是( c)

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

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

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

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

2、C语言可执行程序的开始执行点是( c)

A.程序中的一条可执行语句

B.程序中第一个函数

C.程序中的main函数

D.包含文件中的第一个函数

3、C程序是( B)

A.顺序执行

B.从Main函数开始

C.从函数体开始

D.任意语句

4、C语言程序的基本单位是_____B__.

A.语句

B.函数

C.程序行

D.字符

5、C语言程序由( C)组成

A.子程序

B.过程

C.函数

D.主程序段程序

6、一个C程序的执行是从( A)

A.本程序的main函数开始,到main函数结束

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

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

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

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

A.在C程序中,main函数必须位于程序的最前面

B.C程序的每行中只能写一条语句

C.C语言本身没有输入输出语句

D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误

8、以下叙述不正确的是 D

A.一个C源程序可由一个或多个函数组成

B.一个C源程序必须包含一个main函数

C.C程序的基本组成单位是函数

D.在C程序中,注释说明只能位于一条语句的后面

9、C语言规定,在一个源程序中,main函数的位置(C)

A.必须在最开始

B.必须在系统调用的库函数的后面

C.可以任意

D.必须在最后

10、一个C语言程序是由 B

A.一个主程序和若干子程序组成

B.函数组成

C.若干过程组成

D.若干子程序组成

二、填空题:

1、函数体用____{___开始,用____}__结束。

2、C源程序的基本单位是____函数__________

3、一个C源程序中至少应包括一个____MAIN函数_________

4、在一个C源程序中,注释部分两侧的分界符分别为___/*_____和_____*/___

三、程序设计题:(这两个程序设计题上课讲过我就不做了,自己写吧)

1、编写一个C程序,输出以下信息:

*********************

Very good!

*********************

2、编写一个程序,输入a,b,c三个值,输出其中最大者。

第2 章 程序设计的灵魂——算法

一、单选题:

1、将三个数排序需要比较__B____次。

A.2 B.3 C.4

D.不确定

2、算法的表示方法有___A_____。

A.自然语言,传统流程图,N-S流程图,伪代码

,计算机语言

B.高级语言,汇编语言,机器语言

C.C语言,QBASIC语言,InterDev

D.图形图像法,描述法,编程法

二、问答题:

1、什么是结构化的算法?为什么要提倡结构化的算法?

2、算法有哪些特性?

3、什么叫算法?为什么要提倡结构化算法?

第3 章 数据类型、运算符和表达式

一、单选题:

1、设 int b=2;表达式b/(b*2)的值是____A____.

A.0

B.0.5

C.0.500000

D.0.000000

2、设有如下定义:

int a=1,b=2,c=3,d=4,m=2,n=2;

则执行表达式:(m= a d)后,m的值为__A___。

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

3、设有a=b=c=2,求表达式a+++b+++c++的结果是___A____。

A.6 B.9 C.8

D.表达式出错

4、表示关系X

A.(X

B.(X

D.(X

5、选出运行结果为4的表达式( C);

A.int i=0,j=1;(i=3,(++j > +1))

B.int i=0,j=1;(j==1)?(i=1):(i=3)

C.int i=1,j=1;i+=j+=2;

D.int i=1,j=0;j=i=((i=3)*2);

6、表达式(a=3*5,a*5),a+5的值是多少(B )

A.20

B.80

C.不能确定

D.15

7、设有整型变量a,b,c,它们的初值是1运行表达式:

++a||++b&++c后,a,b,c的值分别是:___A_____。 (这个最好电脑上通过一下)

A.2,1,1

B.2,2,1

C.1,2,1

D.1,1,2

8、下面的表达式中__A__满足:当x为偶数时值为“真”,为奇数时值为“假”

A.x%2==0

B.!x%2!=0

C.2*x/2-x==0

D.!(x%2)

9、C语言的对语句中用作判断的表达式一般为__E__

A.关系表达式

B.逻辑表达式

C.算术表达式

D.逻辑表达式和关系表达式

E.关系或逻辑表达式

10、若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是(D ) A.1 B.2

C.2.0

D.2.5

11、若有以下定义:

char a; int b;

float c;double d;

则表达式a*b+d-c值的类型为__D____.

A.float

B.int

C.char

D.double

12、以下定义和语句:

char cl=\'b\',c2=\'e\';

printf(″%d,%c\\n″,c2-c1,c2-\'a\'+\'A\');

则输出结果是:___B____.

A.2,M

B.3,E

C.2,E

D.输出项与对应的格式控制不一致,输出结果不确定

13、语句:printf(\"%d \\n\",12&&12);的输出结果是___B_____.

A.12 B.1

C.24

D.0

14、设A=3,B=4,执行

printf(\"%d,%d\",(A,B),(B,A));的输出是___B___.

A.3,4

B.4,3

C.3,3

D.4,4

15、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:

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

上面程序片段的输出结果是 A

A.200

B.100

C.200 100

D.输出格式符不够,输出不确定的值

16、表达式:10!=9的

值是__D_

A.true

B.非零值

C.0

D.1

17、请读程序:

main()

{ int A;

float B, C;

scanf(\"%2d%3f%4f\",&A,&B,&C);

printf(\"\\nA=%d,B=%f,C=%f\\n\",A,B,C); }

若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是 B

A.A=98, B=765, C=4321

B.A=10, B=765.000000, C=4321.000000

C.A=98, B=765.0, C=4321.0

D.以上答案都不正确

18、执行程序段char str[20]={\'a\',\'b\',\'c\',\'\\o\'};

int len=strlen(str);

变量len的值为( C)

A.20 B.4 C.3

D.3或4或20

19、若x,i,j和k都是int型变量,则计算下面表达式后,x的值为 C

x=(i=4,j=16.k=32) A.4

B.16

C.32

D.52

20、下列四组选项中,均不是C语言关键字的选项是 A

A.define IF type

B.getc char printf

C.include scanf case

D.while go pow

21、下列四个选项中,均是C语言关键字的选项是 B

A.auto enum include

B.switch typedef continue

C.signed union scanf

D.if struct type

22、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符 C

A.必须为字母

B.必须为下划线

C.必须为字母或下划线

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

23、下面四个选项中,均是不合法的浮点数的选项是 B

A.160.0.12 e3

B.123 2e4.2 .e5

C.-.18 123e4 0.0

D.-e3 .234 1e3

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

int k,a,b;

unsigned long w=5;

double x=1.42;

则以下不符合C语言语法的表达式是

A.x%(-3)

B.w+=-2

C.k=(a=2,b=3,a+b)

D.a+=a-=(b=4)*(a=3)

25、以下不正确的叙述是 D

A.在C程序中,逗号运算符的优先级最低

B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变

D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

26、若有定义: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

27、设变量a是整型,f是实型,i是双精度型,则表达式10+\'a\'+i*f值的数据类型为 C

A.int

B.float

C.double

D.不确定

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

A.关系运算符

B.逻辑运算符

C.赋值运算符

D.算术运算符

29、若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是 B

A.(exp==0)

B.(exp!=0) C.(exp==1)

D.(exp!=1)

30、设 i

nt x=1, y=1; 表达式(!x||y--)的值是 B A.0 B.1 C.2

D.-1

二、填空题:

1、字符串“This is a string\"的存储形式为___顺序存储_______。

2、写出下问表达式运算后a的值设原来a=12

1) a+=a 24

2) a-=a 0

3) a/=a+a 0

4) a+=a-=a*=a 0

3、求下面算术表达式的值

1) x+a%3*(int)(x+y)%2/4 2.5

设x=2.5,a=7,y=4.7

2) (float)(a+b)/2+(int)x%(int)y 3.5

设a=2,b=3,x=3.5,y=2.5

4、写出该程序运行的结果。

#include

void main()

{ int i, j, k=10;

i=(j=k)>0;

j=i==j;

printf(``%2d,%2d\\n``,i,j); 1 0

k=!i==++j;

printf(\"%2d, %2d, %2d\\n\", i, j, k);} 1 1 0

5、main( )

{char st=\'A\';

int i=10; st=st+i;i=st%i;

printf(\"%C,%d\\n\",st,i);}

已知字母A的ASCII码为65

结果:__K,5__

6、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_____9_______

7、C语言中的标识符只能由三种字符组成,它们是___字母____,____数字__和___下画线_______

8、已知字母a的ASCII码为十进制数97,且设ch为字符型变量,

则表达式ch=\'a\'+\'8\'-\'3\'的值为___f_______

9、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式 pow(y,fabs(x))的值为____8.0_____

10、若有定义:int e=1,f=4,g=2;

float m=10.5,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是___13.7_________

第4 章 顺序程序设计

一、单选题:

1、输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是(B)

A.main() { float c,F; scanf(\"%f,%f\",&c,&F); c=5/9*(F-32); printf(\"摄氏温度是:%f\\n\",c); }

B.main() { float c,F; scanf(\"%f,%f\",&c,&F); c=5*(F-32)/9; printf(\"摄氏温度是:%f\\n\",c); }

C.main() { float c,F; scanf(\"%f,%f\",&c,&F); c=5%9*(F-32); printf(\"摄氏温度是:%f\\n\",c); }

D.main() { float c,F; scanf(\"%f,%f\",&c,&F); c=5.0/9.0(F-32); printf(\"摄氏温度是:%f\\n\",c); }

2、以下程序的输出结果是 C

main( )

{

int a=12,b=12;

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

A.10 10

B.12 12

C.11 13

D.11 10

3、有如下程序

main0

{

int y=3,x=3,z=1;

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

运行该程序的输出结果是 D

A.3 4

B.4 2

C.4 3

D.3 3

4、能正确表示逻辑关系:\"a ≥ =10或a ≤ 0\"的C语言表达式是 D

A.a > =10 or a

B.a > =0||a

C.a > =10 &&a

D.a =10

5、下列程序的输出结果是 C

main() {

double d=3.2;

int x,y;

x=1.2; y=(x+3.8)/5.0;

printf(\"%d \\n\", d*y);

} A.3

B.3.2 C.0

D.3.07

二、填空题:

1、从键盘输入一个大写字母,要求改用小写字母输出,程序如下办 #inc

lude

main( )

{ char c1,c2;

(1)___scanf(“%c”,&c1);______;

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

(2)___c2=c1+32;__________;

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

2、以下程序不用第三个变量,实现将两个数进行对调操作:

#include

main()

{ int a , b ;

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

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

a=(_a+b_________); b=(_a-b_______); a=(____a-b_____);

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

3、写出该程序运行的结果。 K,5

main( )

char st=\'A\';

int i=10;

st=st+i;

i=st%i;

printf(\"%c,%d\\n\",st,i);}

(已知字母A的ASCII码为65)

四、程序设计题:

1、用scanf函数输入一个年份year,然后用一个赋值语句计算这一年中2月份的天数datesum,最后用格式输出函数printf输出datesum值。

具体要求如下:(1)所有变量为整型

(2)输入前要有提示 (3)输出结果时要有必要的文字说明

#include

void main( )

{ int year,datesum;

clrscr();

Printf(“请任意输入一个年份值:”);

Scanf(“%d”,&year);

Datesum=((year%400= =0)||((year%4= =0)&&(year%100!=0)))?29:28;

Printf(“\\n%d二月份的天数为:%d”,year,datesum); }

2、由键盘输入一个小于256的十进制整数,然后将该数转换成八位的二进制形式输出。

具体要求如下:

(1)输入前要有提示

(2)若转换成的二进制数不够八位,则在前面添“0”补足八位。例如:十进制数79转换成的二进制数为1001111,但应输出01001111

(3)分别输入十进制数54,96,175,233,255来运行这个程序。

#include

#include

void main( )

{ int number,b,i,n=0;

long result=0,p;

clrscr(); printf(“请输入一个大于0小于256的整数”);

scanf(“%d”,&number); p=1;

Printf(“\\n%d=”,number); do

{ b=number%2;

result=result+p*b;

p=p*10; n++;

number=number/2; }

While(number!=0)

For(i=8;i>n;i--)

Printf(“0”);

Printf(“%ld B”,result); }

第5 章 选择结构程序设计

一、单选题:

1、以下程序的输出结果是 C

main()

{ int a= -1,b=1;

if((++a

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

else

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

}

A.-1 1

B.0 1

C.1 0

D.0 0

2、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是___A_

main() {

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

3、若执行下面的程序从键盘输入3和4,则输出是____B___

main()

{ int a,b,s;

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

s=a;

if (a

s=s*s;

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

A.14

B.16

C.18

D.20

4、下面的程序是__D____

main() { in

t x=3,y=0,z=0;

if (x==y+z) printf(\"****\");

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

A.有语法错误不能过通过编译

B.输出****

C.可能通过编译,但是不能通过连接,因而不能运行

D.输出####

5、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系

的表达式为____D____。

A.a 0

B.!a

C.a=0

D.a!=0

6、在C语言中的if语句中,用作判断的表达式为(D)

A.关系表达式

B.逻辑表达式

C.算数表达式

D.任意表达式

7、以下程序输出结果是 B

main ( )

{ int m=5;

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

else printf (\"%d\\n\",m--); } A.7 B.6 C.5

D.4

8、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 A

main( )

{ 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

9、为避免嵌套的条件分支语句if„else的二义性,C语言规定,C程序中的

else总是与__A__组成配对关系。

A.其上面距它最近的,并且没有其他else与其配对的if相配对

B.在同一行上的if

C.缩排位置相同的if

D.在其之前未配对的if

10、若变量都已经说明,则以下程序段输出为( B)

a=10;b=50;c=30;

if (a > b) a=b; b=c;c=a;

printf(\"a=%db=%dc=%d\\n\",a,b,c);

A.a=10 b=50 c=10

B.a=10 b=30 c=10

C.a=50 b=30 c=10

D.a=50 b=30 c=50

11、在执行以下程序时,为了使输出结果为t=4,

则给a和b输入的值应满足的条件是 D

main( )

{ int s,t,a,b;

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

s=1;

t=1;

if(a

if(a > b)t=s+1;

else if(a= =b)t=5;

else t=2*s;

printf(\"t=%d\\n\",t); }

A.0 > a > b

B.a=0

C.a=b

D.a

12、若变量都已经说明,则以下程序段输出为( B)

a=10;b=50;c=30;

if (a > b) a=b; b=c;c=a;

printf(\"a=%db=%dc=%d\\n\",a,b,c);

A.a=10 b=50 c=10

B.a=10 b=30 c=10

C.a=50 b=30 c=10

D.a=50 b=30 c=50

13、执行下面语句后的输出为( D)

int i= -1;

if (i

else printf(\"%%%%\\n\")

A.****

B.%%%%

C.%%%%C

D.有语法错,不能执行

14、下列语句正确的是(B )

A.if(a > b > c) temp=a

B.if((a=b) > 0) temp=a

C.int a=b=c=4

D.int a;scanf(%d,a)

15、若有定义: float w; int a, b; 则合法的switch语句是(c ) A.switch(w) { case1.0: printf(\"*\\n\"); case2.0: printf(\"**\\n\"); }

B.switch(a); { case 1 printf(\"*\\n\"); case 2 printf(\"*\\n\"); }

C.switch(b) { case 1: printf(\"*\\n\"); case 2: printf(\"*\\n\"); } D.switch(a+b); { case 1: printf(\"*\\n\"); default: printf(\"\\n\"); case 2 }

16、判断两个字符串S1 和 S2 相等的正确语句是__D__

A.if (S1=S2)

B.if (S1==S2)

C.if

(strcpy(S1,S2))

D.if (strcmp(S1,S2)==0)

17、以下不正确的if语句形式是 D是不是没写完啊

A.if(x>y&&x!=y)t=x++;

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

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

D.if(x

18、已知 int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B

if(x>y)

z=x;x=y;y=z;

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

19、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 B

if(a

if(c

else

if(a

if(b

else x=3;

else x=6;

else x=7; A.1 B.2 C.3

D.6

20、若运行以下程序时,从键盘输入 ADescriptor ( 表示回车),则下面程序的运行结果是 D

#include

main()

{char c;

int v0=0,v1=0,v2=0; do{ switch(c=getchar())

{case \'a\':case \'A\':

case \'e\':case \'E\':

case \'i\':case \'I\':

case \'o\':case \'O\':

case \'u\':case \'U\':v1+=1;

default:v0+=1;v2+=1; }

}while(c!=\'\\n\');

printf(\"v0=%d,v1=%d,v2=%d\\n\",v0,v1,v2); }

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=12,v1=4,v2=12

21、阅读以下程序:

main()

{ int x;

scanf(\"%d\",&x);

if(x--

else printf(\"%d\"\'x++); } 程序运行后,如果从键盘上输人5,则输出结果是 B A.3 B.4 C.5

D.6

22、若执行以下程序时从键盘上输入9,则输出结果是 B

main()

{ int n;

scanf(\"%d\",&n);

if(n++

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

A.11

B.10 C.9

D.8

23、若a、b、c

1、c

2、x、y、均是整型变量,正确的switch语句是 B

A.switch(a+b); {case 1:y=a+b;break; case 0:y=a-b;break; case 3:y=b-a,break; }

B.switch(a*a+b*b) {case 3: case 1:y=a+b;break; }

C.switch a {case c1:y=a-b;break; case c2:y=a*d;break; default:x=a+b; }

D.switch(a-b) {default:y=a*b;break; case 4:x=a+b;break; case 10:y=a-b;break; }

24、有如下程序

main()

{ int a=2,b=-1,c=2;

if(a

if(b

else c++ ;

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

}

该程序的输出结果是 C A.0 B.1 C.2

D.3

25、若有定义: float w; int a, b; 则合法的switch语句是 D A.switch(w) {case1.0: printf(\"*\\n\"); case2.0: printf(\"**\\n\"); }

B.switch(a); { case 1 printf(\"*\\n\"); case 2 printf(\"**\\n\"); }

C.switch(b) { case a: printf(\"*\\n\"); default: printf(\"\\n\"); case b: printf(\"**\\n\"); }

D.switch(a+b) { case 1: printf(\"*\\n\"); case 2: printf(\"**\\n\"); default: printf(\"\\n\"); }

二、填空题:

1、#include

main( )

{int i=0,j=0,a=6;

if ((++i > 0) || (j++ > 0)) a++;

printf(\"i=%d,j=%d,a=%d\\n\",i,j,a);}

结果:_i=1,j=0,a=7____

2、若从键盘输入58,则以下程序输出的结果是 _585858_______ 。

main()

{ int a;

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

if(a>50) printf(\"%d\",a);

if(a>40) printf(\"%d\",a);

if(a>30) printf(\"%d\",a); }

3、下列程序段的输出结果是 _pawarm___________ 。

int n=\'c\';

switch(n++)

{ default: printf(\"error\");break;

case \'a\':case \'A\':case \'B\':printf(\"good\");break;

\'b\':case

case \'c\':case \'C\':printf(\"pa\");

case \'d\':case \'D\':printf(\"warm\");

}

三、程序设计题:

1、编写程序,从键盘输入年号和月号,计算这一年的这一月共有几天.

#include

Void main( )

{ int year,m,sumdate;

Clrscr( );

Printf(“请输入年号和月号:”);

Scanf(“%d%d”,&year,&m);

if (m==1||m==3||m==5||m==7||m==8||m=10||m==12) sumdate=31;

else if(m==4||m==6||m==9||m==11) sumdate=30;

else if((m==2)&&((year%400==0)||((year%4==0)&&(year%100!=0))) sumdate=29

else sumdate=28;

printf(“\\n%d.%d的天数为:%d”,year,m,sumdate); }

2、编写程序,从键盘输入x的值,计算并打印下列分段函数的值。(这个题目太容易,自己写吧)

y=0(x

y=2(70

y=3(80

y=4(x>=90)

3、编写程序,输入三个整数x,y,z,请把这三个数由小到大输出。(这个上课讲过)

[程序分析]

我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

4、编写程序,输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

#include

Void main()

{ long date;

int a,b,c,d;

clrscr();

printf(“请任意输入一个五位的整数:”)

a=date/10000;

b=(date/1000)%10;

c=(date%100)/10;

d=date%10;

if(a==d&&b==c)

printf(“\\n%d是一个回文数”,date); else

printf(“\\n%d不是一个回文数”,date); }

5、编写程序,将一个不大于256的十进制正整数转化为8位的二进制数,若不足8位,则在前面补0,例如十进制数2转化位8位二进制数后是00000010,37转化后是00100101。

试求出十进制数

5、

23、189转化位8位二进制分别是多少?(要求必须使用循环语句实现)

(这个题目上一章做过了)

第6章 循环结构程序设计

一、单选题:

1、以下程序运行后,输出结果是

main ()

{ int y=18,i=0,j,a[8]; do

{ a[i]=y%2;i++;

y=y/2;

} while(y > =1);

for(j=i;j > 0;j--)printf(\"%d\\n\",a[j]);

printf(\"\\n\"); }

A.1000

B.11010

C.01001

D.10100

2、以下程序的输出结果是

main( )

{ int x=10,y=10,i;

for(i=0;x > 8;y=++i)

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

}

A.10 1 9 2

B.9 8 7 6

C.10 9 9 0

D.10 10 9 1

3、以下程序的输出结果是

main( ) {

int n=4;

while(n--)printf(\"%d \",--n);

}

A.2 0

B.3 1

C.3 2 1

D.2 1 0

4、假定a和b为int型变量,则执行以下语句后b的值为

a=1; b=10; do

{ b=b-a; a++; }

while (b-- > 0);

A.-3

B.-2

C.-1

D.-4

5、下面程序的输出是____

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); }

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

6、定义如下变量:

int n=10

则下列循环的输出结果是______

while (n > 7) {

n--;

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

A.10 9 8

B.9 8 7

C.10 9 8 7

D.9 8 7 6

7、以下程序段的输出结果是_____

int x=3; do

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

while (!(--x)); A.1

B.3 0 C.1 -2

D.死循环

8、以下程序的输出结果是

main()

{ int i,k,a[10],p[3];

k=5;

for (i=0;i

for (i=0;i

for (i=0;i

printf(\"%d\\n\",k); }

A.20

B.21

C.22

D.23

9、有以下程序

main()

{ int x,i;

for(i=1;i

{ x=i;

if(x%2==0)

if(x%3==0) if(x%7==0)

printf(\"%d\",i); } }

输出结果是

A.28

B.27

C.42

D.41

10、下面程序的输出是

main() {

int y=9;

for(;y > 0;y--) {

if(y%3==0)

{printf(\"%d\",--y);continue;} } }

A.741

B.852

C.963

D.875421

11、若X是int型变量,且有下面的程序片段:

for (X=3;X

printf((X%2)?(\"**%d\"):(\"##%d\\n\"),X);

上面程序片段的输出结果是

A.**3

B.##3

C.##3

D.**3##4 **5

12、执行下面的程序后,a的值为

main()

{ int a,b;

for (a=1,b=1;a

{ if(b > = 20) break;

if(b%3==1) {

b-=2;

continue; }

b+=5; } }

A.11

B.15

C.12

D.13

13、有以下程序

main()

{ int x,i;

for(i=1;i

{ x=i;

if(x%2==0)

if(x%3==0)

if(x%7==0)

printf(\"%d\",i); } }

输出结果是

A.28

B.27

C.42

D.41

14、以下程序的输出结果是

main( )

{ int i;

for(i=\'A\';i

printf(\" \\n\");

}

A.编译不通过,无输出

B.aceg

C.acegi

D.abcdefghi

15、执行以下程序后,输出的结果是

main( )

{ int y=10;

do{y--;} while(--y);

printf(\"%d\\n\",y--); }

A.-1 B.1 C.8

D.0

16、如果输入为:ABCdef 执行下面一段程序后,则输出为:

main( )

{char ch;

while((ch=getchar( ))!=\'\\n\')

{ if(ch > = \'A\' && ch

else if(ch > = \'a\' && ch

printf(\"%c\",ch); }

printf(\"\\n\"); }

A.ABCdef

B.abcDEF

C.abc

D.DEF

17、请读程序:

#include

main()

{ int num=0;

while(num

{ num++; printf(\"%d\\n\",num);} }

上面程序的输出结果是

A.1 2 3 4

B.1 2

C.1 2 3

D.1

18、设有程序段:

t=0;

while(printf(\"*\"))

{t++;

if(t

下面描述正确的是

A.其中循环控制表达式与0等价

B.其中循环控制表达式与\'0\'等价

C.其中循环控制表达式是不合法的

D.以上说法都不对

19、以下程序段______

x=-1; do

{x=x*x;}

while(!x);

A.是死循环

B.循环执行二次

C.循环执行一次

D.有语法错误

20、下面程序的运行结果是

#include

main()

{int y=10;

do{y--;}while(--y);

printf(\"%d\\n\",y--); }

A.-1 B.1 C.8

D.0

21、对 for(表达式1; ;表达式3) 可理解为

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

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

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

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

22、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。

#include

main()

{int i;

for(i=100;i

if((i-2)%4==0)

if(!((i-3)%7))

if( ______ )

printf(\"%d\",i); }

A.i%9=5

B.i%9!=5

C.(i-5)%9!=0

D.i%9==5

23、t为int类型,进人下面的循环之前,t的值为0

while( t=l )

{ „„}

则以下叙述中正确的是

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

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

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

D.以上说法都不对

24、以下程序执行后sum的值是

main()

{ int i , sum;

for(i=1;i

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

}

A.15

B.14

C.不确定

D.0

25、以下程序的输出结果是

main()

{ int i, k, a[10], p[3];

k=5;

for (i=0;i

for (i=0;i

for (i=0;i

printf(\"%d\\n\",k); }

A.20

B.21

C.22

D.23

26、有如下程序

main()

{ int i,sum;

for(i=1;i

printf(\"%d\\n\",sum); }

该程序的执行结果是

A.6 B.3

C.死循环

D.0

27、有如下程序

main()

{ int n[5]={0,0,0},i,k=2;

for(i=0;i

printf(\"%d\\n\",n[k]);

}

该程序的输出结果是 A.不确定的值

B.2 C.1

D.0

28、有如下程序

main()

{ char ch[2][5]={\"6937\",\"8254\"},*p[2];

int i,j,s=0;

for(i=0;i

for(i=0;i

for(j=0;p[i][j] > \'\\0\';j+=2)

s=10*s+p[i][j]-\'0\';

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

}

该程序的输出结果是

A.69825

c语言程序设计基础

c语言基础总结

c语言试题 判断题

C语言入门基础教案

C语言程序设计试题题库

大一C语言期末考试试题

C语言机试试题

c语言期末复习试题

c语言大一期末试题

C语言程序设计试题 库

C语言基础试题
《C语言基础试题.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档