C语言基础试题_c语言基础试题

其他范文 时间:2020-02-27 04:07:37 收藏本文下载本文
【www.daodoc.com - 其他范文】

C语言基础试题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言基础试题”。

一、单选题:

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,%cn″,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=%fn”,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,%2dn``,i,j);1 0

k=!i==++j;

printf(”%2d, %2d, %2dn“, i, j, k);} 1 1 0

5、main()

{char st='A';

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

printf(”%C,%dn“,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(”摄氏温度是:%fn“,c);}

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

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

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

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

main()

{

int a=12,b=12;

printf(”%d %dn“,--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 %dn“,(++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,%dn“,c1,c1);

(2)___c2=c1+32;__________;

printf(”%c,%dn“,c2,c2);}

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

#include

main()

{ int a , b;

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

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

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

printf(”a=%d b=%dn“,a,b);}

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

main()

char st='A';

int i=10;

st=st+i;

i=st%i;

printf(”%c,%dn“,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 %dn“,a,b);

else

printf(”%d %dn“,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(”%dn“,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(”%dn“,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(”%dn“,m);

else printf(”%dn“,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(”%dn“,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=%dn“,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=%dn“,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=%dn“,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=%dn“,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(”%dn“,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(”%dn“,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=%dn“,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(”%dn“,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=%dn“,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(”%dn“,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(”%dn“,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“):(”##%dn“),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(”%dn“,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(”%dn“,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(”%dn“,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(”%dn“,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(”%dn“,k);}

A.20

B.21

C.22

D.23

26、有如下程序

main()

{ int i,sum;

for(i=1;i

printf(”%dn“,sum);}

该程序的执行结果是

A.6 B.3

C.死循环

D.0

27、有如下程序

main()

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

for(i=0;i

printf(”%dn“,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] > '';j+=2)

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

printf(”%dn",s);

}

该程序的输出结果是

A.69825

下载C语言基础试题word格式文档
下载C语言基础试题.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文