C语言练习题(12月3日讲解)

C语言练习题(12月3日讲解)
C语言练习题(12月3日讲解)

C语言单元练习题

第一单元数据类型、表达式及顺序结构练习题

一、选择题:

1. 不合法的C语言整型常量是 D 。

A. –012

B. 0x35

C. 123L

D. 8E2

2. 不合法的C语言实型常量是 A 。

A. E3

B. .123

C. –6.2E4

D. 5.0

3. 不合法的C字符常量是 D 。

A. ′2′

B. ′\101′

C. ′AB′

D. ′\n′

4.下列四组选项中,均是不合法的用户标识符的选项是 B 。

A. W P_0 do

B. b-a goto int

C. float la0 _A

D. -123 abc TEMP

5.下列四组选项中,均是合法转义字符的选项是 A 。

A. ‘\”’‘\\’‘\n’

B. ‘\’‘\017’‘\”’

C. ‘\018’‘\f’‘xab’

D. ‘\\0’‘\101’‘xlf’

6. 定义三个变量a、b、c,并分别赋初值为5。能实现该功能的语句是 C 。

A. int a=b=c=5;

B. int a,b,c=5;

C. int a=5,b=5,c=5;

D. int a=5;b=5;c=5;

7. 若x,y,t均为int类型,则执行语句x=y=3;t=++x||++y;后,y的值是 B 。

A. 不定值

B. 4

C. 1

D. 3

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

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

A. 4

B. 16

C. 32

D. 52

9.设有说明:char w;int x; float y;double z;则表达式w*x+z-y值的数据类型为 D 。

A. float

B. char

C. int

D. double

10.设以下变量均为int类型,则值不等于7的表达式是 C 。

A. (x=y=6,x+y,x+1)

B. (x=y=6,x+y,y+1)

C. (x=6,x+1,y=6,x+y)

D. (y=6,y+1,x=y,x+1)

11、以下选项中不能用作C程序合法常量的是( D )。

A. 1.234

B. '123'

C.123

D."\x7G"

12、以下选项中可用作C程序合法实数的是( A )

A. .1e0

B.3.0e0.2

C.E9

D.9.12E

13、阅读以下程序

#include

main()

{ int case; float printF;

printf(“请输入2个数:”);

scanf(“%d %f”,&case,&pjrintF);

printf(“%d %f\n”,case,printF);

}

该程序编译时产生错误,其出错原因是( A )

A.定义语句出错,case是关键字,不能用作用户自定义标识符

B.定义语句出错,printF 不能用作用户自定义标识符

C.定义语句无错,scanf不能作为输入函数使用

D.定义语句无错,printf不能输出case的值

14、下列标识符中,不合法的用户标识符为( D )。

A. Pad

B. CHAR

C. a_10

D. a≠b

15、以下选项中能表示合法常量的是( D )。

A.整数:1,200

B.实数:1.5E2.0

C.字符斜杠:‘\’

D.字符串:"\007"

16、以下选项中,能用作数据常量的是( D )。

A.o115

B. 0118

C.1.5e1.5

D. 115L

17、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( A )。

A.1

B.0

C.2

D.3

18、若有定义语句:int x=10;,则表达式x-=x+x的值为( B )

A.-20

B.-10

C.0

D.10

19、表达式:(int)((double)9/2)-(9)%2的值是( B )。

A.0

B.3

C.4

D.5

20、若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( D )。

A.a=a++,i++;

B.i=(a+k)<=(i+k);

C.i=a;

D.i=!a;

21、表达式a+=a-=a=9的值是( D )。

A.9

B._9

C.18

D.0

22.int x=5, y=14; 则表达式x+7/y+0.6 值为( B )。

A.7.1

B.5.6

C.6.6

D.6.1

23、有以下程序执行后的输出结果是( D )。

main( )

{ int i,s=0;

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

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

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

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

24、C语言中运算对象必需是整型的运算符是( B )。

A./ B. % C.* D.+

25、若有表达式(w)?(--x):(++y),则其中与w 等价的表达式是( A)。

A.w==l

B.w==0

C.w!=l

D.w!=0

26、希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”,则以下不能满足的表达式是( C )。

A. num%2==1

B. !(num%2==0)

C. !(num%2)

D. num%2

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

char w; int x; float y; double z; 则表达式 w*x+z-y的结果为( D )类型.A.float B.char C.int D.double

28、表达式3.6-5/2+1.2+5%2的值是( D )。

A.4.3 B. 4.8 C. 3.3 D.3.8

29、若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++): (y++)中的条件表达式(x-y)等价的是( A )。

A.(x-y)>0 B (x-y<0) C.(x-y<0║x-y>0) D.(x-y)==0

30、能正确表示逻辑关系:"a≥8或a≤5"的C语言表达式是( D )。

A.a>=8 or a<=5 B.a>=5 | a<=8 C.a>=8 && a<=5 D.a>=8 || a<=5

31、C语言中,数字029 是一个(C )。

A.不合法数字 B.十进制数 C.八进制数 D.十六进制数

32 、已定义变量如下: int a=5, b=7,c; 则执行语句a>b?(c= (a++)-(++b)): (c=a+++8); 后c的值为(B )

A.15

B.14

C.13

D.12

33、设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( D )。

A.k++

B.k+=1

C.++k

D.k+1

34、以下选项中,合法的C语言数值常量是( A )。

A.028

B.'\12A'

C.'\177’

D. N

35、C语言中运算符优先级最低的是(B )。

A.++

B. ,

C.-

D.!=

36、以下程序运行后的输出结果是( 2 )。

void fun(int p)

{ int d=2; p=d++; printf(“%d”,p);}

37、有以下程序运行时,输入的值在哪个范围才会有输出结果( B )。

main(){

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

if(x<=3) ;

else if(x!=10) printf("%d\n",x); }

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

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

38.有以下程序

#include

main()

{ int x=011; 1+1*8=9

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

}

程序运行后的输出结果是(C)

A.12

B.11

C.10

D.9

39.以下选项中可用作C程序合法实数的是(A)

A.1e0 B3.0e0.2 C.E9 D..12E

40.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是(A)

A.a=(b=4)=3;

B.a=b=c+1;

C.a=(b=4)+c;

D.a=1+(b=c=4);

二、填空题:

1.若有定义int m=5,y=2;,则计算表达式y+=y-=m*=y后的y值是 -16 。2.若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为 1 。

3. 若a是int型变量,则表达式(a=4*5,a*2),a+6的值为 26 。

4.若x和a均是int型变量,则计算表达式x=(a=4,6*2)后的x值为 12 ,

计算表达式x=a=4,6*2后的x 值为 4 。

5. 若a是int型变量,则计算表达式a=25/3%3后a的值为 2 。

6.若x和n均是int型变量,且x和n的初值均为5,

则计算表达式x+=n++后x的值为 10 ,n的值为 6 。

7. 若有定义:char c=‘\010’;则变量c中包含的字符个数为 1 。8.若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为 1 (x+y)%2+(int)a/(int)b

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

则表达式ch=‘a’+‘8’-‘3’的值为 f 。

三、程序阅读题:(写出程序运行结果)

1. 以下程序的输出结果是 a,98 。

#include

main()

{ int x=97; char y=’b’;

printf(“%c,%d”, x, y);

}

2. 以下程序的输出结果是 x=-60 。

#include

main()

{ int x=6;

x+=x-=x*x;

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

}

3. 以下程序的输出结果是 x=20 。

#include

main()

{ int x;

(x=4*5,x*5),x+25;

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

}

4. 以下程序的输出结果是 -1 。

#include

main()

{ int i=1,j;

j= -i++;

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

}

5. 有以下程序,运行后的输出结果是 b,b 。

main( )

{ char a='a',b;

printf("%c,",++a);

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

6.以下程序的输出结果是 1,0,7 。

main( )

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

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

a++;

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

四、编程题:(顺序结构编程)

1. 输入华氏温度,输出摄氏温度。C=5/9*(F-32)

/*由华氏温度转化为摄氏温度*/

2. 输入底面半径r和高度h,计算并输出圆柱体的体积v。

v=πr2h(π取3.14,v计算结果保留到小数点后两位)

3.从键盘输入一扇形的半径和角度,求扇形的面积和周长。

4. 从键盘输入学生的三门考试成绩,计算并输出平均成绩。

第二单元选择结构练习题

一、选择题:

1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。

A.1

B.0

C.2

D.3

2、 if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()。

A.必须是逻辑值

B.必须是整数值

C.必须是正数

D.可以是任意合法的数值

3、有以下程序运行时,输入的值在哪个范围才会有输出结果()。

main(){

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

if(x<=3) ;

else if(x!=10) printf("%d\n",x); }

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

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

4、在嵌套使用if语句时,C语言规定else总是()。

A.和之前与其具有相同缩进位置的if配对 B.和之前与其最近的if配对

C.和之前与其最近的且不带else的if配对 D.和之前的第一个if配对

5、若有表达式(w)?(--x):(++y),则其中与w 等价的表达式是( )。

A.w==l

B.w==0

C.w!=l

D.w!=0

6、希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”,则以下不能满足的表达式是()。

A. num%2==1

B. !(num%2==0)

C. !(num%2)

D. num%2

7、设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是()。

A.if(a>b) c=a,a=b,b=c;

B.if(a>b) {c=a,a=b,b=c;}

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

D.if(a>b) {c=a;a=b;b=c;}

8、若有表达式(w)?(--x):(++y),则其中与w 等价的表达式是( )。

A.w==l

B.w==0

C.w!=l

D.w!=0

9、有以下程序运行时,输入的值在哪个范围才会有输出结果()。

main(){

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

if(x<=3) ;

else if(x!=10) printf("%d\n",x); }

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

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

10、若变量已正确定义,在if (W)printf(“%d\n,k”);中,以下不可替代W的是

A.a<>b+c

B.ch=getchar()

C.a==b+c

D.a++

11.逻辑运算符两侧运算对象的数据类型。

A)只能是0或1 B)只能是0或非0正数

C)只能是整型或字符型数据 D)可以是任何基本数据类型的数据

12.下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。

A)x%2==0 B)!x%2!=0 C)(x/2*2-x)==0 D)!(x%2)

13.以下程序片段。

int x=2,y=3;

printf( );

A)什么都不输出 B)输出为:***x=2

C)输出为:###y=2 D)输出为:###y=3

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

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)

15.C语言对嵌套if语句的规定是:else总是与。

A)其之前最近的if配对 B)第一个if配对

C)缩进位置相同的if配对 D)其之前最近的且尚未配对的if配对

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

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

17.下面是错误的if语句(设int x,a,b;)

A)if (a=b) x++; B)if (a=

C)if (a-b) x++; D)if ( x ) x++;

18.以下程序片段。

main ( )

{ int x=0,y=0,z=0;

if (x=y+z) printf(“***”);

else printf(“###”); }

A)有语法错误,不能通过编译 B)输出:***

C)可以编译,但不能通过连接,所以不能运行 D)输出:###

19.对下述程序,是正确的判断。

main ( )

{ int x,y;

scanf(“%d,%d”,&x,&y);

if (x>y) x=y;y=x;

else x++;y++;

printf(“%d,%d”,x,y); }

A)有语法错误,不能通过编译 B)若输入3和4,则输出4和5

C)若输入4和3,则输出3和4 D)若输入4和3,则输出4和5

20.若w=1,x=2,y=3,z=4,则条件表达式w

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

21.下述表达式中,可以正确表示x≤0或x≥1的关系。

A)(x>=1) | | (x<=0) B)x>=1 | x<=0

C)x>=1 && x<=0 D)(x>=1) && (x<=0)

22.下述程序的输出结果是。

main ( )

{ int a=0,b=0,c=0;

if (++a>0 || ++b>0) ++c;

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

}

A)0,0,0 B)1,1,1 C)1,0,1 D)0,1,1

23.下述程序的输出结果是。

main ( )

{ int x=-1,y=4,k;

k=x++<=0 && !(y--<=0);

printf(“%d,%d,%d”,k,x,y);}

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

24.以下程序输出结果是。

main ( )

{ int x=1,y=0,a=0,b=0;

switch(x) {

case 1:switch (y) {

case 0 : a++ ; break ;

case 1 : b++ ; break ;

}

case 2:a++; b++; break;

case 3:a++; b++;

}

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

}

A)a=1,b=0 B)a=2,b=1 C)a=1,b=1 D)a=2,b=2

25.下述程序的输出结果是。

main ( )

{ int a,b,c;

int x=5,y=10;

a=(--y=x++)?–y : ++x ;

b=y++ ; c=x ;

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

}

-5,5,6

A)6,9,7 B)6,9,6 C)7,9,6 D )7,9,7

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

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)4

27.在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功能上与其他三个语句不等价。

A)if (a) S1; else S2; B)if (a==0) S2; else S1;

C)if (a!=0) S1; else S2; D)if (a==0) S1; else S2;

28.若int i=0;执行下列程序后,变量i的正确结果是。

switch (i) {

case 9: i+=1 ;

case 10: i+=1 ;

case 11: i+=1 ;

default : i+=1 ;

}

1

A)10 B)11 C)12 D)13

29.若有说明语句int i=5,j=4,k=6;float f;则执行f=(i

A)4.0 B)5.0 C)6.0 D)7.0

30.若有定义:int a=3,b=2,c=1;并有表达式:①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是。

A)①和②B)②和③C)①和③D)③和④

填空题:

1.C语言提供6种关系运算符,按优先级高低它们分别是________,________,________,________,________,________等。

2.C语言提供三种逻辑运算符,按优先级高低它们分别是________,________,________。

3.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式________。

4.设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式:x*y*z>0&&(x<0||y<0||z<0)________。

5.已知A=7.5,B=2,C=3.6,表达式A>B && C>A || AB的值是________。

6.有int x=3,y=-4,z=5;则表达式(x&&y)==(x||z)的值为________。

7.若有x=1,y=2,z=3,则表达式(x

8.执行以下程序段后,a=________,b=________,c=________。

int x=10,y=9, a,b,c ;

a = (x--=y++) ? x-- : y++ ;

b = x++ ;

c = y ;

读程题:

1.以下程序的输出结果是 0\n 。

main()

{int a=1,b=0;

if(a==0) b++;

else if(a==0)

if(a)b+=2;

else b+=3;

printf(”%d\n”,b);

2.以下程序的输出结果是 0 。

main()

{ int x=1,y=0;

if(!x) y++;

else if(x==0)

if (x) y+=2;

else y+=3;

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

}

3. 以下程序的输出结果是 1 。

main( )

{ int a=100;

if(a>100) printf("%d\n",a<=100);

else printf("%d\n",a<=100);

}

4、以下程序的输出结果是 011122 。

main()

{ int i;

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

{switch(i)

{ case 1: printf("%d",i);

case 2: printf("%d",i);

default: printf("%d",i);}}}

5、以下程序的输出结果是 1,0,7 。

main( )

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

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

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

6.若运行时输入100↙,写出以下程序的运行结果。YES

main ( )

{ int a ;

scanf(“%d”,&a);

printf(“%s”,(a%2!=0)?”No”:”Yes”);

}

7.写出以下程序的运行结果。

main ( )

{ int a=2,b=7,c=5;

switch (a>0) {

case 1: switch (b<0) {

case 1: printf(“@”); break ;

case 2: printf(“!”); break ;

}

case 0: switch (c==5) {

case 1: pritnf(“*”) ; break ;

case 2: prin tf(“#”) ; break ;

default : printf(“#”) ; break ;

}

default : printf(“&”);

}

printf(“\n”);}

编程题:

1.有三个整数a,b,c,由键盘输入,输出其中最大的数。

2.编程输入整数a和b,若大于100,则输出百位以上的数字,否则输出两数之和。

3.给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。

4.提高题:给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数是321,应输出123。

第三单元循环结构练习题

选择题:

1、有以下程序执行后的输出结果是()。

main( )

{ int i,s=0;

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

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

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

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

2、以下关于for语句的说法不正确的是()。

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

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

C. for循环中,可以用break跳出循环体

D. for循环体语句中,可以保含多条语句,但要用花括号括起来

3、若i和k都是int类型变量,有以下for语句

for(i=0,k=-1;k=1;k++) printf("*****\n");

下面关于语句执行情况的叙述中正确的是()。

A.循环体执行两次

B.循环体执行一次

C.循环体一次也不执行

D.构成无限循环

4、以下程序程序的执行后的输出结果是()。

main()

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

for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);}

A.7 5 3

B. 3 5 7

C.3 6 9

D.7 5 1

5、以下程序运行后的输出结果是()。

void fun(char*s)

{ while(*s)

{ if(*s%2==0) printf(“%c”,*s); s++;}

}

main()

{ char a[]={“good”};fun(a);printf(“\n”);}

注意:字母a的ASCⅡ码值为97

A.d

B.go

C.god

D.good

6、已知 int t=0; while(t=1){...} 则以下叙述正确的是()。

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

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

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

D)以上说法都不对

7、设有以下程序段

int x=0,s=0;

while(!x!=0)s+=++x;

printf("%d",s); 则

A)运行程序段后输出0

B)运行程序段后输出1

C)程序段中的控制表达式是非法的

D)程序段执行无限次

8、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为()。for(i=0, j=10; i<=j; i++, j- -)k=i+j;

A.6

B.9

C.10

D.11

9、C语言中,break; 语句可以用于循环语句和( )语句中。

A.if

B.switch

C.for

D.while

10、for(i=0; i<=15; i++) printf("%d", i ); 循环结束后,i 的值为()。

A.14

B.15

C.16

D.17

11.有以下程序

main()

{ char b,c; int i; b='a'; c='A';

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

{ if(i%2) putchar(i+b);

else putchar(i+c);

} printf("\n");}

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

A. ABCDEF

B. AbCdEf

C. aBcDeF

D. abcdef

12、与语句“while(!x)”等价的语句是()。

A. while(x==0)

B. while(x!=0)

C. while(x==1)

D. while(x!=1)

13、下述程序段中,while循环执行次数是()。

int k=0;

while(k=1) k++;

A.无限次

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

C.一次也不执行

D. 执行一次

14、以下程序中,while循环的次数是()。

#include

void main( )

{int i=0;

while(i<10) { if(i<1) continue; if(i= =5)break; i++;}}

A. 1

B. 死循环,不能确定次数

C. 6

D. 10

15.下面程序段

int k=2;

while (k=0) {printf(“%d”,k);k--;}

则下面描述中正确的是。

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

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

16.以下程序段的循环次数是。

for (i=2; i==0; ) printf(“%d” , i--) ;

A)无限次 B)0次 C)1次 D)2次

17.下面程序的输出结果是。

main ( )

{ char c='A’;

int k=0;

do {

switch (c++) {

case ‘A’ : k++ ; break ;

case ‘B’ : k-- ;

case ‘C’ : k+=2 ; break ;

case ‘D’ : k%=2 ; continue ;

case ‘E’ : k*=10 ; break ;

default : k/=3 ;

}

k++;

} while (c<’G’) ;

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

}

A)k=3 B)k=4 C)k=2 D)k=0

19.下面程序的输出结果是。

main ( )

{ int x=9;

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

if (x%3==0) {

printf(“%d”,--x);

continue ;

} } }

A)741 B)852 C)963 D)875421

20. int i=100;以下不是死循环的程序段是。

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

C) int k=0; do { ++k; } while (k>=0); D)int s=36;while(s) ;--s ; 21.下述程序段的运行结果是。

int a=1,b=2, c=3, t;

while (a

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

22.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择填空。

main ( )

{ int m=0,n=0;

char c;

while ((【】) ! ’\n’)

{

if (c>=’A’ && c<=’Z’) m++;

if (c>=’a’ && c<=’z’) n++;

} }

A)c=getchar( ) B)getchar( ) C)c==getchar( ) D)scanf(“%c”,&c) 23.下述语句执行后,变量k的值是。

int k=1;

while (k++<10);

A)10 B)11 C)9 D)无限循环,值不定

24.下面程序的输出结果是。

main ( )

{ int k=0,m=0,i,j;

for (i=0; i<2; i++) {

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

k++ ;

k-=j ;

}

m = i+j ;

printf(“k=%d,m=%d”,k,m) ;

}

A)k=0,m=3 B)k=0,m=5 C)k=1,m=3 D)k=1,m=5

25.下面for循环语句。

int i,k;

for (i=0, k=-1; k=1; i++, k++)

printf(“***”);

A)判断循环结束的条件非法 B)是无限循环

C)只循环一次 D)一次也不循环

26.语句while (!E); 括号中的表达式!E等价于。

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

27.以下是死循环的程序段是。

A) for (i=1; ; ) {

if (i++%2==0) continue ;

if (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--);

28.执行语句for (i=1;i++<4;) ; 后变量i的值是。

A)3 B)4 C)5 D)不定

29.以下程序段。

x=-1;

do

{ x=x*x; }

while (!x);

A)是死循环 B)循环执行2次 C)循环执行1次 D)有语法错误

30.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择填空。main ( )

{ int a,max=0;

scanf(“%d”,&a);

while (【】) { if (max

printf(“%d”,max);}

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

31.以下不是死循环的语句是。

A)for (y=9,x=1;x>++y;x=i++) i=x ;

B)for ( ; ; x++=i ) ;

C)while (1) { x++ ; }

D)for (i=10 ; ; i--) sum+=i ;

32.下面程序段的运行结果是。

x=y=0;

while (x<15) y++,x+=++y ;

printf(“%d,%d”,y,x);

A)20,7 B)6,12 C)20,8 D)8,20

33.以下for循环的执行次数是。

for (x=0,y=0; (y=123) && (x<4) ; x++) ;

A)无限循环 B)循环次数不定 C)4次 D)3次

34.若运行以下程序时,输入2473↙,则程序的运行结果是。

main ( )

{ int c;

while ((c=getchar( )) ! =’\n’)

switch (c-‘2’) {

case 0 :

case 1 : putchar (c+4) ;

case 2 : putchar (c+4) ; break ;

case 3 : putchar (c+3) ;

default : putchar (c+2) ; break ;

}

printf(“\n”);

}

A)668977 B)668966 C)66778777 D)6688766

读程题:

1.以下程序的输出结果是。

main( )

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

for(i=0; i<3; i++) printf("%d ",x[i][2-i]);

}

2.以下程序的输出结果是。

main()

{int n[2],i,j;

for(i=0;i<2;i++)n[i]=0;

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

for(j=0;j<2;j++)n[j]=n「i」+1;

printf(”%d\n”,n[1]);}

3.以下程序的输出结果;答案 3 5 7 。

main()

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

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

printf("%d ", a[i]);

}

4.以下程序的输出结果是。

main()

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

for(i=0;i<3;i++) 答案7 8 0 0

{ for(j=i;j<4;j++) 4 5 6

printf("%5d", a[2-i][j]); 2 0

printf("\n"); }

}

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

main()

{ char s[ ]="012xy\08s34f4w2";

int i,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>='0'&&s[i]<='9') n++;

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

6.写出下面程序运行的结果。

main ( )

{ int x,i ;

for (i=1 ; i<=100 ; i++) {

x=i;

if (++x%2==0)

if (++x%3==0)

if(++x%7==0)

printf(“%d ”,x) ; }} 答案 28 70 7.写出下面程序运行的结果。

main ( )

{ int i,b,k=0 ;

for (i=1; i<=5 ; i++) { b=i%2; while (b--=0) k++ ; }

printf(“%d,%d”,k,b);}

8.写出下面程序运行的结果。答案8

main ( )

{ int a,b;

for (a=1,b=1 ; a<=100 ; a++) {

if (b>=20) break;

if (b%3==1) { b+=3 ; continue ; }

b-=5;

}

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

9.写出下面程序运行的结果。答案36

main ( )

{ int k=1,n=263 ;

do { k*= n%10 ; n/=10 ; } while (n) ;

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

10.写出下面程序运行的结果。答案31-1

main ( )

{ int i=5 ;

do {

switch (i%2) {

case 4 : i-- ; break ;

case 6 : i-- ; continue ;

}

i-- ; i-- ;

printf(“%d”,i);

}while (i>0) ;

}

11.写出下面程序运行的结果。答案3,1,-1,3,1,-1 main ( )

{ int i,j;

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

for (j=4 ; j>=0; j--) {

if ((j+i)%2) {

j-- ;

printf(“%d,”,j);

continue ;

}

--i ; j-- ;

printf(“%d,”,j) ; }}}

12.写出下面程序运行的结果。

main ( )

{ do {

a+=2 ; y+=a ;

if (y>50) break ;

} while (a=14) ;

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

} int a=10,y=0 ;

13.写出下面程序运行的结果。I=6,k=4

main ( )

{ int i,j,k=19;

while (i=k-1) {

k-=3 ;

if (k%5==0) { i++ ; continue ; }

else if (k<5) break ;

i++;

}

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

}

14.写出下面程序运行的结果。1,-2

main ( )

{ int y=2,a=1;

while (y--!=-1)

do {

a*=y ;

a++ ;

} while (y--) ;

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

}

15.写出下面程序运行的结果。答案2,3

main ( )

{ int i,k=0;

for (i=1; ; i++) {

k++ ;

while (k

k++ ;

if (k%3==0) goto loop ;

}

}

loop:

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

}

编程题:

1.输入两个正整数m和n,求其最大公约数和最小公倍数。

2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。

3.求(即求1!+2!+3!+…+19!+20!)。

4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。

5.编写程序,求s=1+2+3+……+n,直到累加和大于或等于5000为止,输出s及n的值。

6.编写程序输出如下图形。

*

**

***

****

*****

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

C语言习题全集+答案

第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是:。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是:。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是。 A. ABC B. abc C. a_bc D. 6.下列字符串是标识符的是:。 A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是:。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是:。 A. ‘\2’ B. " " C. ‘3’ D. ‘\483’ 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。 int k,a,b; unsigned long w=5; double x=; A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码 11.若有定义:int a=7; float x=; y=;

c语言编程例题与答案解析

实验报告三 (四学时) 2.1 实验目的 (1)掌握函数的定义和调用; (2)了解函数间的参数传送; 2.2 基础实验 【题目3-1】编写函数实现将输入的字母转换成大写字母(若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母”)。 算法分析: 1、输入:通过键盘接收一个字符; 2、条件判断:调用判别函数 3、函数功能为:蒋所输入字符进行判别处理,若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母” 4、程序结束。 【实验3-1】代码及运行结果:

【题目3-2】从键盘输入若干个同学计算机课程期末考试成绩(学生人数可由用户输入),求该课程的期末成绩的平均分并输出。 函数功能要求:实现若干(例如5名)同学的的期末成绩输入,并统计出平均分。 算法分析: 1、输入:通过键盘接收同学个数; 2、调用求平均分函数 3、输出平均成绩 4、程序结束。

【实验3-2】代码及运行结果:

【题目3-3】请用函数编写程序实现:计算3 到100 之间所有素数的平方根之和,并输出。s=148.874270。 算法分析: 1、编写函素数判别函数,确定返回标记,如果是素数返回1,否则返回0 2、编写主函数,用一重循环遍历100以内所有数据 2.1、通过素数判别函数对循环的数据进行是否为素数的判别 2.2、返回判别为真的整数,并输出 3、程序结束。 【实验3-3】代码及运行结果: #include #include int Prime(int x) { int i ; if(x<=1) return 0; for(i=2;i<=x-1;i++) { if(x%i==0) { return 0;

C语言练习题附解析

C语言练习题 例1.已知圆柱体的底半径为radius ,高为high ,求其体积。 #include main() { float radius,high,vol,pi=3.1415926; printf("Please input radius & high: "); scanf("%f%f",&radius,&high); /* 从键盘输入两个实数赋给变量r,h*/ vol=pi*radius*radius*high; printf("radius=%7.2f, high=%7.2f, vol=%7.2f\n",radius,high,vol); } 程序运行结果如下: Please input radius & high: 2.5 □ 2.0 8 radius= □□□ 2.50,high= □□□ 2.00,vol= □□ 39.27 /* 例2 试编写求梯形面积的程序,数据由键盘输入。 分析:设梯形上底为A,下底为B,高为H面职为S,则S=(A+B)*H÷2 */ #include void main() { float a,b,h,s; printf("please input a,b,h:"); scanf("%f%f%f",&a,&b,&h); s=0.5*(a+b)*h; printf("a=%6.3f b=%6.3f h=%6.3f\n",a,b,h); printf("s=%8.4f\n",s); } /*例3-1 输入一组学生成绩,评定其等级。方法是:90~100分为"A",80~89分为"B",70~79分为"C",60~69分为"D",60分以下为"E"。 使用if语句实现的程序段如下:*/ #include void main() { int x; scanf("%d",&x); if (x>=90) printf("A"); else if (x>=80) printf("B"); else if (x>=70) printf("C"); else if (x>=60) printf("D"); else printf("E");

C语言函数习题及答案

第6章函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元

C语言练习题集(带答案解析)

精品文档 1. ( A )是构成C 语言程序的基本单位。 A 、函数 B 、过程 C 、子程序 D 、子例程 2. C 语言程序从 ____ C ________ 开始执行。 A ) 程序中第一条可执行语句 B )程序中第一个函数 C )程序中的main 函数 D )包含文件中的第一个函数 3、以下说法中正确的是( C )。 A 、 C 语言程序总是从第一个定义的函数开始执行 B 、 在 C 语言程序中,要调用的函数必须在 main ()函数中定义 C 、 C 语言程序总是从 main ()函数开始执行 D 、 C 语言程序中的 main ()函数必须放在程序的开始部分 4. 下列关于C 语言 的说法错误的是( B ) 。 A ) C 程序的工作过程是编辑、编译、连接、运行 B ) C 语言不区分大小写。 C ) C 程序的三种基本结构是顺序、选择、循环 D ) C 程序从main 函数开始执行 5. 下列正确的标识符是(C )。 A. -a1 B.a[i] C.a2_i 6. 下列C 语言用户标识符中合法的是( B )。 A) 3ax B)x C)case D)-e2 E)u nion 7. 下列四组选项中,正确的 C 语言标识符是 (C )。 A ) %x B ) a+b C ) a123 D ) 8、 下列四组字符串中都可以用作 A 、print _3d db8 aBc B C 、str_1 Cpp pow while D 9. C 语言中的简单数据类型包括( A 、整型、实型、逻辑型 C 、整型、字符型、逻辑型 C 语言程序中的标识符的是( A ) 、I\am one_half start$it 3pai 、Pxq My->book line# His.age D )。 B 、整型、实型、逻辑型、字符型 D 、整型、实型、字符型 10. 在C 语言程序中,表达式 5%2的结果是—C_ A)2.5 B)2 C)1 D)3 11. 如果int a=3,b=4 ;则条件表达式"a

大学C语言期末考试练习题(带详解答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

c语言练习题带详解答案

一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; printf("please input a,b:\n"); scanf("%d%d”,&a,&b); s=a*a+b*b; printf("the result is %d\n",s); return 0; } 2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。 #include #define PI 3.14 int main(void)

{ double r ,area , girth; printf("please input r:\n"); scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ; printf("the area is %.2f\n", area); printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3、已知函数y=f(x),编程实现输入一个x值,输出y值。 2x+1 (x<0) y= 0 (x=0)

2x-1 (x>0) #include void main() { int x,y; scanf(“%d”,&x); if(x<0) y=2*x+1; else if(x>0) y=2*x-1; else y=0; printf(“%d”,y); } 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include void main(){ int data;

C语言综合习题及答案

C语言综合习题及答案 Prepared on 24 November 2020

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C) D) 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】

C语言第二章习题及详解

二、第二章 1、设整型变量a的值为2,下列表达式值为1的是__。(A) A)a%3B)a/3=0C)--a D)a++ 2.设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是__。(B) A)a=5++操作数只能是变量B)a=b=c++C)a=%2D)b=a+1=2左边只能是单个变量,即变量1=变量2=。。。 3.下列式中,最终运算结果的数据类型不是单精度的表达式是__。(A) A)(int)(3+3.0)B)1e-3fen:n必须为整数C)(float)(3)D)(int)3.0+3.0 4.字符串”ab\x41\\34cd\102y”的长度是_A_。\xhh表示ASCII码:例\x41,41是16进制的。字符串含有’\0’。’\102’也表示ASCII码,但102是8进制的,长度为10,储存空间占11个字节。 A)10B)12C)14D)18 5、变量是在程序运行过程中可改变的它的三要素是类型、名称、数值 6.以下选项中合法的常量是?D A)’Internet’B)E_3变量C)02x D)0xfeL 7.以下选项中合法的赋值表达式是?C A)d=8+a+f=d+6同2D B)d=(a+8)++同2A C)d=(8+e,e++,d+9)D)d=7+e++=d+7

8.main() {int x=5,y=3; float f; f=x/y;表示为整形 printf(“f=%f\n”,f); } 则程序的输出结果是?f=1.000000 9.设整型变量x,y,z均为2,表达式(x++)+(y++)+(z++)的值是_A先使用值再加 加_。 A)6B)7C)8D)9 10.设int a=3,b=5;float x=7.5,y=3.5;则表达式(float)a+b/2+(int)x%(int)y; 的值是6.0__。 *11.执行语句:int a;a=‘1’+1.5;后,正确的叙述是_D_。 A)a的值是字符‘3’B)a的值是浮点型 C)不允许字符型和浮点型相加 D)a的值是字符’1’的ASCII码值加上1 12.设int类型的数据长度为2个字节,则unsigned int类型数据的取 值范围是_B_。 A)均为2个字节TC与VC不一样B)0~65535 C)-32768~32767D)-256至255

c语言习题及答案

第一章1.1 题目内容: 使用printf()在屏幕上输出hello world! 提示: #include int main() { printf("hello world!\n"); return 0; } 输入格式: 无 输出格式: 输出提示信息:"hello world!\n" 输入样例: 输出样例: hello world! #include int main() { printf("hello world!\n"); return 0; } 1.2 在屏幕上输出多行信息(3分) 题目内容: 使用printf()函数在屏幕上输出以下多行信息: hello world! hello hit! hello everyone! 提示: 在printf()函数中转义字符‘\n’表示换行。

输入格式: 输出格式: 输出提示信息: "hello world!\n" "hello hit!\n" "hello everyone!\n" 输入样例: 输出样例: hello world! hello hit! hello everyone! #include int main() { printf("hello world!\n"); printf("hello hit!\n"); printf("hello everyone!\n"); return 0; } 1.3 计算半圆弧的周长及半圆面积(3分) 题目内容: 编程并输出半径r=5.3的半圆弧的周长及该半圆的面积,的取值为3.14159。要求半径r和必须利用宏常量表示。输入格式: 无 输出格式: 半圆的面积输出格式: "Area=%f\n" 半圆弧的周长输出格式: "circumference=%f\n" 输入样例: 输出样例: Area=44.123632 circumference=16.650427 #include #define PI 3.14159 #define R 5.3 int main() { printf("Area=%f\n", R*R*PI/2); printf("circumference=%f\n", 2*R*PI/2); return 0; }

【大学C语言期末考试练习题】详解答案及过程讲解 编程题

2020届大学c语言期末考试习题讲解 编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; printf("please input a,b:\n"); scanf("%d%d”,&a,&b); s=a*a+b*b; printf("the result is %d\n",s); return 0; } 2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。 #include #define PI 3.14 int main(void) { double r ,area , girth; printf("please input r:\n"); scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ; printf("the area is %.2f\n", area); printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3、已知函数y=f(x),编程实现输入一个x值,输出y值。 2x+1 (x<0) y= 0 (x=0) 2x-1 (x>0) #include void main() { int x,y; scanf(“%d”,&x); if(x<0) y=2*x+1;

else if(x>0) y=2*x-1; else y=0; printf(“%d”,y); } 4.从键盘上输入一个百分制成绩score ,按下列原则输出其等级:score≥90,等级为A ;80≤score<90,等级为B ;70≤score<80,等级为C ;60≤score<70,等级为D ;score<60,等级为E 。 #include void main(){ int data; char grade; printf("Please enter the score:"); scanf("%d”, &data); switch(data/10) { case 10: case 9 : grade=’A’; break; case 8: grade=’B’; break; case 7: g rade=’C’; break; case 6: grade=’D’; break; default: grade=’E’; } printf("the grade is %c”,grade); } 5. 编一程序每个月根据每个月上网时间计算上网费用,计算方法如下: ?????≥-≤=小时 小时小时元每小时元 每小时元费用505010105.2330 要求当输入每月上网小时数,显示该月总的上网费用(6分) #include void main() { int hour; float fee; printf(“please input hour:\n”); scanf(“%d”,&hour); if(hour<=10) fee=30; else if(hour>=10&&hour<=50) fee=3*hour; else fee=hour*2.5; printf(“The total fee is %f”,fee); }

c语言实验习题及答案详解

1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum);

} c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30;

C语言图形输出习题解析

【】输入n值,输出如图所示矩形。 【】输入n值,输出如图所示平行四边形。 【】输入n值,输出如图所示高为n的等腰三角形。 【】输入n值,输出如图所示高为n的等腰三角形。 ? 【】输入n值,输出如图所示高和上底均为n的等腰梯形。

【】输入n值,输出如图所示高和上底均为n的等腰空心梯形。 【】输入n值,输出如图所示边长为n的空心正六边型。 【】输入n值,输出如图所示图形。 《 【】输入n值,输出如图所示图形。

【】输入n值,输出如图所示图形。 【】输入n值,输出如图所示图形。 【】输入n值,输出如图所示图形。 # 【】输入n值,输出如图所示图形。(例为n=6时) 【】编写程序,输出如图所示sin(x) 函数0到2π的图形。

【】编写程序,在屏幕上输出一个由*号围成的空心圆。 【】编写程序,在屏幕上绘制如图余弦曲线和直线。若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。

, 【】编写程序,输出如图所示高度为n的图形。 【】编写程序,输出如图所示高度为n的图形。 【】输入n值,输出如图所示图形。

{ 【】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 图 n=5时的螺旋方阵 【】输入n值,输出如图所示回型方阵。 【】输出如图所示的数字金字塔

C语言练习题及答案解析三

一、单项选择题 1.下面不属于C语言的数据类型是【】。 A) 整型B) 实型C) 逻辑型D) 双精度实型 分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。 本题正确答案为C。 语言中,下列属于构造类型的是【】。 A) 整型B) 实型C) 指针类型D) 结构体类型 分析:C语言中构造类型的数据有三种:数组、结构体和共用体,数组是同类型数据的集合,结构体是不同类型的数据集合。 本题正确答案为D。 3.下列字符串不符合标识符规定的是【】。 A) SUM B) sum C) 3cd D) end 分析:标识符规定只能由26个英文字母(大小写均可),数字0~9和下划线组成,且不能以数字开头,题中的3cd不符合规定。 本题正确答案为C。 4.下面能正确表示八进制数的是【】。 A) 0x16 B) 029 C) -114 D) 033 分析:选项A)以0x开头是十六进制数,选项B)虽然是0开头,但出现了数字9,选项C)是十进制数。 本题正确答案为D。 5.下面四个选项中,均是合法实数的选项是【】。 A) B) C) D)-e5 分析:实数有两种表示形式:小数形式和指数形式,小数形式必须有小数点,指数形式中,字母e 之前必须有数字,e之后必须是整数。选项A)中的"",选项C)中的"",选项D)中的"-e5"均是不合法的。 本题正确答案为B。 语言中,字符型数据在内存中存储形式是【】。 A) 原码B) 反码C) 补码D) ASCII码 分析:C语言中int型数据是以补码形式存放的,字符型数据是以ASCII码形式存放的。 本题正确答案为D。 7.下列正确的字符型常量是【】。 A) "a" B) ′\\\\′ C) "\\r" D) 277 分析:字符常量的定义是用单引号括起来的一个字符,A和C的定界符不对,D超过了char型数据的表示范围,′\\\\′是转义字符。 本题正确答案为B。 8.若有说明语句char ch1=′\\x41′;则ch1【】。 A) 包含4个字符B) 包含3个字符C) 包含2个字符D) 包含1个字符 分析:"\\x41"中的"41"是十六进制数,即十进制的65,题中ch1存放的65是字母"A"的ASCII码。 本题正确答案为D。 9.下列程序段输出的字符串长度为【】。 printf("\\\\aaa\\′ccc\\bddd\\""); A) 11 B) 12 C) 13 D) 17 分析:\\\\、\\′、\\b和\\"为转义字符,程序输出结果为:\\aaa′ccddd"。 本题正确答案为A。 10.下列运算符中,要求运算对象必须是整数的是【】。 A) / B) * C) % D) ! 分析:题目中"/"、"*"、"!"的运算对象既可以整数,也可以是实数,只有取余数运算符"%"要求运算对象必须是整数。 本题正确答案为C。 11.下面合法的赋值语句是【】。 A) x+y=2002; B) ch="green"; C) x=(a+b)++; D) x=y=0316; 分析:赋值号左端不能为表达式,选项A)是错的;赋值号不能将字符串赋给某个变量,选项B)也是错的;增量运算符“++”不能用于表达式,选项C)也是错的。 本题正确答案为D。 12.已知a为int型,b为double型,c为float型,d为char型,则表达式a+b*c-d/a结果的类型为

C语言试题库(带详细讲解答案)

一单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D 中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 详见教材P52~53. %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1; /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2 11.如果int a=3,b=4;则条件表达式"a

c语言程序设计第五版习题答案解析

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。 #include

main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); } 第2章数据类型及其运算 一.简答题 1.C语言中的数据类型主要有哪几类? 【解答】短整型(short int ) 整型整型(int) 长整型(long int ) 基本类型字符型 (char) 单精度(float) 实型(浮点型) 双精度(double) 枚举类型(enum)

C语言基础练习题(含答案)

目录

第1-3章 C语言基础知识习题 1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行 B.语句 C.函数 D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行