文档库 最新最全的文档下载
当前位置:文档库 › c语言习题

c语言习题

c语言习题
c语言习题

第一章

一、选择

1.以下选项中不合法的用户标识符是( A )。

A)st.n

B)file

C)Main

D)GO

2.以下选项中合法的用户标识符是(D )。

A)int

B)a#

C)5mem

D)_243

3.C语言中的简单数据类型有(C)。

A)整型、实型、逻辑型

B)整型、字符型、逻辑型

C)整型、实型、字符型

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

4.以下选项中正确的整型常量是(A)。

A)-37

B)32,758

C)3 2 6

D)6.

5.以下选项中合法的C语言字符常量是(A)。

A)′\t′

B)"A"

C)67

D) A

6.以下选项中不正确的实型常量是(A)。

A).123

B)1e4

C)3.640E-1

D)0.35

7.以下选项中合法的C语言赋值语句是(D)。

A)a=b=34

B)a=34,b=34

C)--i;

D)m=(int)(x+y);

8.不合法的十六进制数是(C)。

A)0xff

B)0X11

C)0x1g

D)0Xabc

9.下述标识符中,(B)是合法的用户标识符。

A)A#F

B)getch

C)void

D)mb*

10.(A)是构成C语言程序的基本单位。A)函数

B)变量

C)子程序

D)语句

11.在C语言中,char 型数据在内存中是以(C)形式存储的。

A)原码

B)补码

C)ASCII码

D)反码

12.在C语言中,int,char和short 三种类型数据所占用的内存(C)。

A)均为两个字节

B)由用户自己定义

C)由所用机器的字长决定

D)是任意的

13.设int类型的数据长度为两个字节,则unsigned int 类型数据的取值范围是(B )。

A)0~255

B)0~65535

C)-32768~32767

D)-256~255

14.以下(C )是不正确的转义字符。

A)′\\′

B)′\′′

C)′020′

D)′\0′

15.一个C语言程序总是从(B)开始执行。

A)主过程

B)主函数

C)子程序

D)主程序

16.以下叙述不正确的是(D)。

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

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

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

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

17.C语言规定:在一个源程序中,main( )函数的位置( C)。

A)必须在最开始

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

C)可以任意

D)必须在最后

18.一个C程序的执行是从( )。

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

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

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

D)本程序文件的第一个函数开始,到本程序main( )函数结束 19.以下叙述正确的是(C)。 A)在C 程序中,main( )函数必须位于程序的最前面 B)C 程序的每行中只能写一条语句 C)C 语言本身没有输入输出语句 D)在对一个C 程序进行编译的过程中,可发现注释中

20.C 语言并不是非常严格的算法语言,在以下关于C 语言的不严格的叙述中,错误的说法是(A)。 A)大写字母和小写字母的意义相同 B)有些不同类型的变量可以在一个表达式中运算 C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型 D)同一个运算符号在不同的场合可以有不同的含义 二、填空

1.C 源程序的基本单位是 。函数

2.一个C 源程序中至少应包括一个______。 主函数

3.在一个C 源程序中,注释部分两侧分界符分别为_______和______。 /* */

4.在C 语言中,输入操作是由库函数______完成的,输出操作是由库函数______完成的。 Scanf ()printf()

5.C 程序执行过程生成的3种文件及扩展名为_______、_____和______。 C , obj , exe

6.C 语言中用______来定义短整型变量,用______来定义长整型变量。Short,int long int

7.while 语句实现循环结构______,do----while 语句实现循环结构______。 当型,直到型

8.在TURBO C 环境中用RUN 命令运行一个C 程序时,所运行的程序扩展名是______。 .exe 9.用字符串的形式表示china 是______。 “china ”

10.已知unsigned int x=65535;则执行printf("%d\n",x%=(y%=2))语句后的输出结果为______。 无定值 11.字符串“ab\034\\\x79”的长度为______。5

12.在C 语言中(以16位PC 机为例),一个float 型数据在内存中所占的字节数为______;一个double 型数据在内存中所占的字节数为______。 4,8

13.设C 语言中,一个int 型数据在内存中占两个字节,则int 型数据的取值范围为______。-32768~~~~~+32767 14.若s 是int 型变量,且s=6,则s%2+(s+1)%2表达式的值为______。1 15.若a ,b 和c 均是int 型变量,则计算表达式a=(b=4)+(c =2)后,a 值为______,b 值为______,c 值为______。6,4,2 16.若有定义:char c=′\010′;则变量c 中包含的字符个数为______。1个

17.C 语言中的标识符只能由3种字符组成,它们是______、______和______。字母、数字、下划线 18.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为______。整型

第二章

1.若有定义:int a=2,b=3 ; float x=3.5,y=

2.5; 则下面表达式的值为( )。

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

A)3.5

B)35

C)3.500000

D)35.00000

2.若有定义:int x=3 ,y=2; float a=2.5 ,b=

3.5; 则下面表达式的值为( )。

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

A)1.0

B)1

C)2.0

D)2

3.若x和n均是int 型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( )。

x%=(n%=2)

A)0

B)1

C)2

D)3

4.假设所有变量均为整型,则表达式

(a=2,b=5,a++,b++,a+b)的值为( )。

A)7

B)8

C)9

D)10

5.设有int x=11; 则表达式(x++*1/3)的值是( )。

A)3

B)4

C)11

D)12

6.下列程序的输出结果是( )。

#include

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

7.下列程序执行后的输出结果是(小数点后只写一位)( )。

#include

main( )

{double d; float f; long l; int i; i=f=l=d=20/3;

printf("%d %ld %f %f\n", i,l,f,d);

}

A)6 6 6.0 6.0

B)6 6 6.7 6.7

C)6 6 6.0 6.7

D)6 6 6.7 6.0

8.下列变量定义中合法的是( )。

A)short _a=1-.le-1;

B)double b=1+5e2.5;

C)long do=0xfdaL;

D)float 2_and=1-e-3;

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

A)0

B)1

C)2

D)-1

10.若已定义x和y为double类型,则表达式x=1,

y=x+3/2 的值是( )。

A)1

B)2

C)2.0

D)2.5

11.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( )。

A)i=int(a)

B)++i;

C)a=a++=5;

D)a=int(i);

12.若执行以下程序段后,c3的值为( )。

int c1=1,c2=2,c3;

c3=1.0/c2*c1;

A)0

B)0.5

C)1

D)2

13.如下程序的运行结果是( )。

#include

main( )

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

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

}

A)3 4

B)4 2

C)4 3

D)3 3

14.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( )。

A)a>=10 or a<=0

B)a>=0|a<=10

C)a>=10 && a<=0

D)a>=10||a<=0

15.若变量x,y,z均为double类型且已正确赋值,不

能正确表示x/y/z的C语言表达式是( )。

A)x/y*z

B)x*(1/(y*z))

C)x/y*1/z

D)x/y/z

16.设x,y,t均为int型变量,则执行语句:

x=y=3;t=++x||++y;后,y的值为( )。

A)不定值

B)4

C)3

D)1

17.以下程序的输出结果是( )。

#include

main( )

{int a=3;

printf("%d\n",(a+=a-=a*a));

}

A)-6

B)12

C)0

D)-12

18.设a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为( )。

A)0

B)1

C)2

D)3

19.假定w,x,y,z,m均为int型变量,有如下程序段:

w=1; x=2; y=3; z=4;

m=(w

则该程序运行后,m的值是( )。

A)4

B)3

C)2

D)1

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

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

B)x>1||x<=0

C)x>=1 OR x<=0

D)x>=1||x<=0

二、填空:

1.若a,b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后,a值为______,b值为______,c值为______。6,4,2

2.若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为______。-60

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

4.若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为______,n的值为______。10,6

5.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为______。8.000000

6.若有定义: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.700000

7.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为______。int型

8.表达式pow(2.8,sqrt(double(x)))值的数据类型为______。double型

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

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

11.若有以下定义,则执行表达式y+=y-=m*=y后y的值是______。-16

int m=5,y=2;

12.已知int y;float x=-3;,执行语句y=x%2;后,变量y的值为______。语句错误

13.若int w=1,x=2,y=3,z=4;则条件表达式w>x?w:y

14.已知int a=15,b=240;则表达式(a&b)&b||b的结果为______。1

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

#include

main( )

{ int x=10,y=10;

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

}

10 9

16.表达式8.0*(1/2)的值为______。0.0

17.表达式3&4的值为______。表达式3|4的值为______。表达式3&&4的值为______。0 7 1

第三章

1.下面程序的输出结果是( )。

#include

main( )

{

int x=5,y=3;

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

}

A)0

B)1

C)3

D)不确定的值

2.若变量已正确定义,下面程序段的输出结果是( )。

x=5.238794;

printf("%f\n",(int)(x*1000+05)/(float)1000);

A)5.239000

B)输出格式说明与输出项不匹配,输出无定值

C)5.238000

D)5.24

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

#include

main( )

{

int a=4;

float b=9;

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

}

A)a=4,b=9.000000

B)a=%4,b=%9.000000

C)a=%%d,b=%%f

D)a=%d,b=%f

4.下面语句:

printf("|%8.5f|\n",3461.45);

的输出结果是( )。

A)|61.45000|

B)|3461.450|

C)|3461.45000|

D)|3461.4500|

5.( )是不正确的C语言赋值语句。

A)x=1,y=2;

B)x++;

C)x=y=5;

D)y=int(x);

6.与数学公式|cos(x)|等价的C语言表达式是( ),假定其中的x的单位是度数且不考虑π值的精度。A)sqrt(cos(x))

B)sqrt(abs(cos(x*3.14/180)))

C)sqrt(abs(cos(x*(/180)))

D)sqrt(fabs(cos(x*3.14/180)))

7.下面的程序( )。

#include

main( )

{

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

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

else printf("# # # #");

}

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

B)输出* * * *

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

D)输出# # # #

8.执行下面程序中的输出语句后,a的值是( )。

#include

main( )

{

int a;

printf("%d\n",(a=3*5,a*4,a+5));

}

A)65

B)20

C)15

D)10

9.若执行下面的程序时,从键盘上输入3和4,则输出结果是( )。

#include

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

10.以下程序不用第三个变量,实现将两个数进行对调的操作。请填空( )。

#include

main( )

{

int a,b;

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

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

a=a+b;b=a-b;a=;

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

}

A)a+b

B)a-b

C)b*a

D)a/b

11.以下程序的输出结果为( )。

#include

main( )

{

int m=7,n=4;

float a=38.4, b=6.4,x;

x=m/2+n*a/b+1/2;

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

}

A)27.000000

B)27.500000

C)28.000000

D)28.500000

12.若变量都已正确说明,则以下程序段:

a=2;

b=3;

printf(a>b? "* * *a=%d"; "# # #b=%d",a,b);

A)没有正确的输出格式控制

B)输出为:* * * a=2

C)输出为:# # # b=2

D)输出为:* * * a=2 # # # b=2

13.若已定义int a=256;,执行语句printf("%x",a); 的结果是( )。

A)100

B)256

C)ffe

D)ff

14.执行下列程序的结果是( )。

#include

main( )

{

float x=3,y;

y=++x * x++;

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

}

A)9.000000

B)16.000000

C)1.000000

D)程序有错误

15.执行下列程序时输入1234567,程序的运行结果为( )。

#include main( )

{

int x,y;

scanf("%2d%2ld",&x,&y);

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

}

A)17

B)46

C)15

D)9

16.已知char a;int b;float c;double d;则表达式a*b+c-d 结果为( )型。

A)double

B)int

C)float

D)char

17.若有以下程序段:

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

c=(a++),(b=a+4,a+b);

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

其输出结果是( )。

A)2,6,8

B)2,6,1

C)1,5,6

D)1,5,1

18.已知int a,b;用语句scanf("%d%d",&a,&b);输入a,b的值时,不能作为输入数据分隔符的是( )。

A),

B)空格

C)回车

D)Tab键

19.语句printf("%d",(a=2)&&(b=-2));的输出结果是( )。

A)无输出

B)结果不确定

C)-1

D)1

20.下述程序的输出结果是( )。

#include

main( )

{ printf("%f",2.5+1*7%2/4);

}

A)2.50000

B)2.750000

C)3.375000

D)3.000000

二、填空

1.有如下程序片段:

int a,b,c;

printf("input a,b,c:");

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

欲输入a=1,b=2,c=3,正确的输入形式为:______。1,2,3

2.下面程序的输出是______。-200,25i=-200,j=25

i=-200

j=25

#include

main( )

{

int i=-200,j=25;

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

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

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

}

3.以下程序段的输出结果是______。156,156 ,*156,*000156,%06d #include

main( )

{

int a=0234;

printf("%-3d,%-6d,*%-06d,*%06d,%%06d\n",a,a,a,a,a);

}

4.以下程序的输出结果是______。156, 156, 234, 9c, 156 #include

main( )

{

int a=0234;

printf("%3d,%6d,%6o,%6x,%6u\n",a,a,a,a,a);

}

5.以下程序的输出结果是______。123.123789, 123.124, 123.12378900 #include

void main( )

{

double a=123.123789;

printf("%8.6f,%8.3f,%14.8f\n",a,a,a);

}

6.使用强制转换方法将正整数转换成字符。本题程序如下:

#include

main( )

{

char c;int i;

printf("输入一个正整数(小于255):");

scanf("%d",&i);

c=(char)i;

printf("%c的ASCII码为%d\n",c,i);

}

本程序的执行结果为______。

97<按回车>

A的ASCII码为97

7.直接使用printf( )的格式符输出八进制数和十六进制数。本题程序如下:#include

main( )

{

int i;

printf("输入一个整数:");

scanf("%d",&i);

printf("%d(10)<=>%o(8)\n",i,i);

printf("%d(10)<=>%x(16)\n",i,i);

}

输入100的执行结果为______和______。

100(10)<=>144(8)

100(10)<=>64(16)

8.本题程序如下:

#include

main( )

{

int i=560,h,m;

h=i/60;/*计算小时数*/

m=i-60*h;/*计算余下的分钟*/

printf("%d分钟<=>%d小时%d分钟\n",i,h,m);

}

本程序的执行结果为______。

560分钟<=>9小时20分钟

9.以下程序的输出结果为______。

#include

main( )

{ printf("*%f,%4.3f*\n",3.14,3.1415);}

*3.140000,3.142*

10.已有定义int d=-2;执行以下语句后的输出结果是______。

printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);

printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d);

*d(1)=-2*d(2)= -2*d(3)=-2 *

*d(4)=fffe*d(5)= fffe*d(6)=fffe *

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

#include

main( )

{ int x=10; float pi=3.1416;

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

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

printf ("(3)%f\n",56.1);

printf ("(4)%14f\n",pi);

printf ("(5)%e\n",568.1);

printf ("(6)%14e\n",pi);

printf ("(7)%g\n",pi);

printf ("(8)%12g\n",pi);

}

12.以下printf语句中的“-”的作用是,该程序的输出结果是______。

#include

main( )

{ int x=12;double a=3.1415926;

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

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

printf("%14.10lf##\n",a);

printf("%-14.10lf##\n",a);

}

13.以下程序段的输出结果是______。

int x=7281;

printf("(1)x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n",x,x,x,x,x);

printf("(2)x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n",x,x,x,x,x);

printf("(3)x=%+3d,x=%+6d,x=%+08d\n",x,x,x);

printf("(4)x=%o,x=%#o\n",x,x);

printf("(5)x=%x,x=%#x\n",x,x);

(1)x=7281,x= 7281,x= 16161,x= 1c71,x= 7281

(2)x=7281,x=7281 ,x=$7281 ,x=$007281,x=%06d

(3)x=+7281,x=?7281,x=+0007281

(4)x=16161,x=016161

(5)x=1c71x,x=0x1c71

14.当输入以下数据时:10цц20цц30цц40<回车>(此处ц代表空格),下面语句的执行结果是______。int a1,a2,a3;

scanf("%d%*d%d%d",&a1,&a2,&a3);

printf("%d %d %d",a1,a2,a3);

103040

15.执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c1=′A′,c2=′a′,正确的数据输入形式是______。

#include

main( )

{ int a,b;float x,y; char c1,c2;

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

scanf("x=%f y=%f",&x,&y);

scanf("c1=%c c2=%c",&c1,&c2);

printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c",a,b,x,y,c1,c2);

}

a=3,b=7,x=8.5,y=71.82,c1=A,c2=a<回车>

第四章

1.下列程序的运行结果是( )。

#include

main( )

{int a=2,c=5;

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

}

A)a=%2,b=%5

B)a=2,b=5

C)a=d, b=d

D)a=%d,b=%d

2.若有定义: float w; int a, b; 则合法的switch语句是( )。

A)switch(w)

{case 1.0: printf("*\n");

case 2.0: printf("**\n");

}

B)switch(a);

{case 1 printf("*\n");

case 2 printf("**\n");

}

C)switch(w)

{case 1: printf("*\n");

default: printf("\n");

case 1+2: printf("**\n")

}

D)switch(a+b)

{case 1: printf("*\n");

case 2: printf("**\n");

default: printf("\n");

}

3.语句printf("a\bre\′hi\′y\\\\bou\n");的输出结果是( )。

A)a\bre\′hi\′y\\\bou

B)a\bre\′hi\′y\bou

C)re′hi′you

D)abre′hi′y\bou

4.如下程序的输出结果是( )。

#include

main( )

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

switch(x){

case 0: b++;

case 1: a++;

case 2: a++;b++;

}

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

}

A)a=2,b=1

B)a=1,b=1 C)a=1,b=0

D)a=2,b=2

5.如下程序的输出结果是( )。

#include

main( )

{float x=2.0,y;

if(x<0.0)y=0.0;

else if(x<10.0)y=1.0/x;

else y=1.0;

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

}

A)0.000000

B)0.250000

C)0.500000

D)1.000000

6.如下程序的输出结果是( )。

#include

main( )

{

int a=12,b=5,c=-3;

if(a>b)

if(b<0) c=0;

else c++;

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

}

A)0

B)1

C)-2

D)-3

7.若执行以下程序时从键盘上输入9,则输出结果是( )。

#include

main( )

{int n;

scanf("%d",&n);

if(n++<10)printf("%d\n",n);

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

}

A)11

B)10

C)9

D)8

8.若a,b,c1,c2,x,y均是整型变量,正确的switch 语句是( )。

A)swich(a+b);

{case 1:y=a+b; break;

case 0:y=a-b; break;

}

B)switch(a*a+b*b)

{case 3:

case 1:y=a+b;break;

case 3:y=b-a,break;

}

C)switch a

{case c1 :y=a-b; break;

case c2: x=a*d; break;

default:x=a+b;

}

D)switch(a-b)

{default:y=a*b;break;

case 3:case 4:x=a+b;break;

case 10:case 11:y=a-b;break

}

9.阅读以下程序:

#include

main( )

{int x;

scanf("%d",&x);

if(x--<5)printf("%d",x);

else printf("%d",x++);

}

程序运行后,如果从键盘输入5,则输出结果是( )。

A)3

B)4

C)5

D)6

10.以下程序的输出结果是( )。

#include

main( )

{int a=4,b=5,c=0,d;

d=!a&&!b||!c;

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

}

A)1

B)0

C)非0的数

D)-1

11.以下程序的输出结果是( )。

#include

main( )

{int a=15,b=21,m=0;

switch(a%3)

{ case 0:m++;break;

case 1:m++;

switch(b%2)

{ default:m++;

case 0:m++;break;

}

}

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

}

A)1

B)2

C)3

D)4

12.请阅读以下程序:

#include 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;

}

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

}

上面程序的输出结果是( )。

A)a=2, b=1

B)a=1, b=1

C)a=1, b=0

D)a=2, b=2

13.下面的程序( )。

#include

main( )

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

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

elseprintf("# # # #");

}

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

B)输出* * * *

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

D)输出# # # #

14.下面程序的输出是( )。

#include

main( )

{int x=100, a=10, b=20, ok1=5, ok2=0;

if(a

if(b!=15)

if(! ok1)

x=1;

else

if(ok2)x=10;

x=-1;

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

}

A)-1

B)0

C)1

D)不确定的值

15.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( )。

#include

main( )

{int x;

scanf("%d",&x);

if(x++ >5)printf("%d",x); elseprintf("%d\n",x--);} A)7和5 B)6和3 C)7和4 D)6和4

16.以下程序的输出结果是( )。 #include main( )

{int a=-1,b=4,k;

k=(++a<0)&&!(b--<=0); printf("%d%d%d\n",k,a,b);} A)104 B)103 C)003 D)004

17.能正确表示a ≥10或a ≤0的关系表达式是( )。 A)a>=10 or a<=0 B)a>=10|a<=0 C)a>=10&&a<=0 D)a>=10 ||a<=0

18.假定所有变量均已正确说明,下列程序段运行后x 的值是( )。 a=b=c=0;x=35;

else if(b); if(c) x=3; else x=4; A)34 B)4 C)35 D)3

19.表示关系X ≤Y ≤Z 的C 语言表达式为( )。 A)(X<=Y)&&(Y<=Z) B)(X<=Y)AND(Y<=Z) C)(X<=Y<=Z)

D)(X<=Y)&(Y<=Z)

20.如下程序的输出结果为( )。 #include main( ) {int a,b,c=246; a=c/100%9; b=(-1)&&(-1);

printf("%d,%d\n",a,b); } A)2,1 B)3,2 C)4,3 D)2,-1

二、填空

1.若有定义:int a=10,b=9,c=8;,接着顺序执行下列语句后,变量b 中的值是______。 c=(a-=(b-5)); c=(a%11)+(b=3);

3

2.表示“整数x 的绝对值大于5”时值为“真”的C 语言表达式是______。X>5||x<-5

3.下列程序的输出结果是16.00,请填空。 #include main( ) {

int a=9, b=2;

float x=______, y=11,z; z=a/2+b*x/y+1/2;

printf("%52f\n", z ); } 6.6

4.下列程序段的输出结果是______。 int n=′c ′; switch(n++) {

default: printf("error");break;

case ′a ′:case ′A ′:case ′b ′:case ′B ′:printf("good");break;

case ′c′:case ′C′:printf("pass");

case ′d′:case ′D′:printf("warm");

}

passwarm

5.若从键盘输入58,则以下程序输出的结果是______。

#include

main( )

{int a;

scanf("%d",&a);

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

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

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

}585858

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

#include

main( )

{int a=0;

a+=(a=8);

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

} 16

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

#include

main( )

{int a=5,b=4,c=3,d;

d=(a>b>c);

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

}0

8.以下程序运行后的输出结果是______。

#include

main( )

{int x=10,y=20,t=0;

if(x= =y)t=x;x=y;y=t;

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

}20,0

9.设a,b,c为整型数,且a=2,b=3,c=4,则执行完语句a*=16+(b++)-(++c);后,a的值是______。

28

10.20

11.若int i=10;,则执行下列程序后,变量i的正确结果是______。

switch (i)

{ case 9:i+=1;

case 10:i+=1;

case 11:i+=1;

default:i+=1;

}

13

12.下面程序的运行结果是______。3

#include

main( )

{ int a,b,c;

a=1;b=2;c=3;

if(a>b)

if(a>c)

printf("%d",a);

else printf("%d",b);

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

}

13.有以下程序段:

#include

main( )

{ char ch;

ch=getchar( );

switch(ch)

{ case 65:

printf("%c",′A′);

case 66:

printf("%c",′B′);

default:

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

}

}

如果从键盘输入字母A,输出结果为______。Abother

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

#include

main( )

{ int x=2,y=-1,z=2;

if(x

if(y<0) z=0;

else z+=1;

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

}

15.若运行时输入12,则以下程序的运行结果是______。0

#include

main( )

{ int x,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

}

16.设x,y,z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。x

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

第五章

1.以下循环体的执行次数是( )。

#include

main( )

{int i,j;

for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d\n",i); }

A)3

B)2

C)1

D)0

2.有如下程序

#include

main( )

{int n=9;

while(n>6){n--;printf("%d",n);}

}

该程序段的输出结果是( )。

A)987

B)876

C)8765

D)98763.有以下程序段

int k=0;

while(k=1)k++;

while 循环执行的次数是( )。

A)无限次

B)有语法错,不能执行

C)一次也不执行

D)执行一次

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

#include

main( )

{int num= 0;

while(num<=2)

{

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

}

}

A)1

2

3

4

B)1

2

3

C)1

2

D)1

5.以下程序中,while循环的循环次数是( )。#include

main( )

{int i=0;

while(i<10)

{if(i<1)continue;

if(i= =5)break;

i++;

}

}

A)1

B)10

C)6

D)死循环,不能确定次数

6.以下程序的输出结果是( )。

#include

main( )

{int a=0,i;

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

{switch(i)

{case 0:

case 3:a+=2;

case 1:

case 2:a+=3;

default:a+=5;

}

}

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

}

A)31

B)13

C)10

D)20

7.以下程序的输出结果是( )。

#include

main( )

{int i=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;

}

i+=11;a+=i;

}

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

}

A)21

B)32

C)33

D)11

8.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:#include

main( )

{int n,k;

float score ,sum,ave;

sum=0.0;

for(n=1;n<=10;n++)

{

for(k=1;k<=4;k++)

{

scanf("%f",&score);

sum+=score;

}

ave=sum/4.0;

printf("NO%d:%f\n",n,ave);

}

}

上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。

A)sum=0.0;

B)sum+=score;

C)ave=sun/4.0;

D)printf("NO%d:%f\n",n,ave);

9.有以下程序段:

int n=0,p;

do

{

scanf("%d",&p);

n++;

}while(p!=12345 && n<3);

此处do…while循环的结束条件是( )。

A)p的值不等于12345并且n的值小于3

B)p的值等于12345并且n的值大于等于3

C)p的值不等于12345或者n的值小于3

D)p的值等于12345或者n的值大于等于3

10.有以下程序:

#include

int a=3;

main( )

{

int s=0;

{

int a=5;

s+=a++;

}

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

}

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

A)8

B)10

C)7

D)11

11.语句while(!E);中的条件!E等价于( )。

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

C)E!=0

D)~E

12.以下的for循环( )。

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

A)是无限循环

B)循环次数不定

C)循环执行4次

D)循环执行3次

13.有以下程序:

# include

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

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

}

}

printf("\n");

}

从第一列开始输入以下数据,代表一个回车符。2743

程序的输出结果是( )。

A)66877

B)668966

C)6677877

D)6688766

14.执行下面程序片段的结果是( )。

int x=23;

do

{

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

}while(!x);

A)打印出321

B)打印出23

C)不打印任何内容

D)陷入死循环

15.请阅读以下程序:

#include

main( )

{float x,y;

scanf("%f",&x);

if(x<0.0)y=0.0;

else if((x<5.0)&&(x!=2.0))

y=1.0/(x+2.0);

else if (x<10.0)y=1.0/x;

else y=10.0;

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

}

若运行时从键盘上输入20(表示回车),则上面程序的输出结果是( )。 A)0.000000 B)0.250000 C)0.500000 D)1.000000

16.以下4个关于C 语言的结论中,只有一个是错误的,它是( )。

A)可以用while 语句实现的循环一定可以用for 语句实现

B)可以用for 语句实现的循环一定可以用while 语句实现

C)可以用do …while 语句实现的循环一定可以用while 语句实现

D)do …while 语句与while 语句的区别仅是关键字“while ”出现的位置不同

17.下面的for 语句的循环次数为( )。 for (x=1,y=0;(y!=123)&&(x<4);x++); A)是无限循环 B)循环次数不定 C)循环执行4次 D)循环执行3次

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

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

19.以下错误的描述是( )。

A)使用while 和do …while 循环时,循环变量初始化的操作应在循环语句之前完成

B)while 循环是先判断表达式,后执行循环体语句 C)do …while 和for 循环均是先执行循环体语句,后判断表达式

D)for,while 和do …while 循环中的循环体均可以由空语句构成

20.下面程序的输出结果是( )。

#include main( ) { int k,j,m;

for (k=5;k>=1;k--) { m=0;

for (j=k;j<=5;j++) m=m+k*j; }

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

A)124 B)25 C)36 D)15

1.下面程序的功能是:计算1~10之间的奇数之和与偶

数之和,请填空。

#include

main( )

{int a, b, c, i;

a=c=0;

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

{

a+=i;

______;

c+=b;

}

printf("偶数之和=%d\n",a);

printf("奇数之和=%d\n",c-11);

}

b=i+1

2.下面程序的功能是:输出100以内能被3整除且个位

数为6的所有整数,请填空。 #include main( ) {int i, j; for(i=0; ______ ; i++) {j=i*10+6; if(______)continue; printf("%d",j); } } I<10 j%3!=0 3.以下程序的输出结果是______。 #include main( ) {int i=10, j=0; do { j=j+i; i--;

}while(i>2);

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

}

52 4.设有以下程序: #include main( ) {intn1,n2;

scanf("%d",&n2);

while(n2!=0)

{n1=n2%10;

n2=n2/10;

printf("%d",n1);

}

}

程序运行后,如果从键盘上输入1298;则输出结果为______。

8921

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

#include

main( )

{int x=15;

while(x>10 && x<50)

{x++;

if(x/3){x++;break;}

else continue;

}

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

}

17

6.有以下程序:

#include

main( )

{char c;

while((c=getchar( ))!=′?′)putchar(--c);

}

X

7.输入right?<回车>,则下面程序段的执行结果是

______。

#include

main( )

{ char c;

while ((c=getchar( ))!=′?′)

putchar(c);

}

right

8.下面程序的运行结果是______。

#include

main( )

{ int a,s,n,count;

a=2;s=0;n=1;count=1;

while (count<=7){n=n*a;s=s+n;++count;}

printf("s=%d",s);

}

s=254

9.下面程序段中循环体的执行次数是______。

a=10;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

3

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

x=2; do {printf("*");x--;} while (x);

**

11.当运行以下程序时,从键盘输入1 2 3 4

5-1(表示回车),则下面程序的运行结果是______。

#include

main( )

{ int k=0,n;

do {scanf ("%d",&n); k+=n;} while(n!=-1);

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

}

k=14 n=-1

12.当运行以下程序时,从键盘输入-1 0(表示回车),则下面程序的运行结果是______。

#include

main( )

{ int a,b,m,n;

m=n=1;

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

do{if(a>0) {m=2*n;b++;}

else {n=m+n; a+=2; b++;}

} while (a==b);

printf ("m=%d n=%d",m,n);

}

m=4 n=2

13.下面程序的运行结果是______。

#include

main( )

{ int y,a;

y=2;a=1;

while (y--!=-1)

{do {a*=y; a++; } while (y--);}

printf ("%d,%d",a,y);

}

1 -2

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

i=1;s=3;

do {s+=i++;

if (s%7==0) continue;

else++i;

}while (s<15);

printf ("%d",i);

8

第六章

1.设有数组定义: char array[]="China"; 则数组array所占的空间为( )。

A)4个字节

B)5个字节

C)6个字节

D)7个字节

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

#include

main ( )

{ char arr[2][4];

strcpy(arr,"you"); strcpy(arr[1],"me");

arr[0][3]=′&′;

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

}

A)you&me

B)you

C)me

D)err

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

#include

void func1(int i);

void func2(int i);

char st[]="hello,friend!";

void func1(int i)

{printf("%c",st[i]);

if(i<3){i+=2;func2(i);}

}

void func2(int i)

{printf("%c",st[i]);

if(i<3){i+=2;func1(i);}

}

main( )

{ int i=0; func1(i); printf("\n");}

A)hello

B)hel

C)hlo

D)hlm

4.执行下列程序时输入123<空格>456<空格>789<回车>,输出结果是( )。

#include

main( )

{char s[100]; int c, i;

scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s\n",c,i,s);

}

A)123,456,789 B)1,456,789

C)1,23,456,789

D)1,23,456

5.有如下程序:

#include

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

6.如下程序的输出结果是( )。

#include

main( )

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

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

for(j=0;j

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

}

A)14

B)19

C)20

D)21

7.当执行下面的程序时,如果输入ABC,则输出结果是( )。

#include

#include

main( )

{ char ss[10]="1,2,3,4,5";

gets(ss); strcat(ss, "6789"); printf("%s\n",ss);

}

A)ABC6789

B)ABC67

C)12345ABC6

D)ABC456789

8.以下程序的输出结果是( )。

#include

f(int b[],int m,int n)

{ int i,s=0;

for(i=m;i

return s;

}

main( )

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

x=f(a,3,7);

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

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 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 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

计算机C语言趣味的程序设计——题目百例

Contest - 2011级C语言课程大作业 Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public

写在最前: 本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了……………….. 由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的…. 呵呵……..有一两个….偷了下懒哦……… 提供原题目还有本人自己的解答的源代码。感谢大家的。。。。建议……………. 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。

样例输入 10 8 15 样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++;

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

c语言趣味编程实例

1、编程序求5X+2Y+Z=50 的所有非负整数解。 #include int main() { int x, y, z; int count = 0; for (x = 0; 5 * x <= 50;x++) for (y = 0; 2 * y <= 50; y++) for (z = 0; z <= 50; z++) { if (5 * x + 2 * y + z == 50) { count++; printf("%d :", count); printf("x=%d,y=%d,z=%d", x, y, z); printf("\n"); } } return 0; } 2、把25个字母A、B、C、···、X、Y按如下要求打印出来:从最中间的字母M 开始打印,然后一左一右依次打印出其它字母,即M,L,N,K,O,...。 要求:初始化时按字母表顺序赋值。 #include int main() { char x[] = "ABCDEFGHIJKLMNPQRST"; int k; int n = 0; while (x[n]) { n++; if (x[n] == 'M') { k = n;break; } } printf("%c,",x[k]); for (int i = 1; i <= 12; i++) if (i <= 11) printf("%c,%c,", (x[k] - i), (x[k] + i)); else printf("%c,%c。", (x[k] - i), (x[k] + i)); printf("\n");

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

C语言经典编程

猴子吃桃 1、题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思维的方法,从后往前推断。 2.程序源代码: main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1; day--; } printf("the total is %d\n",x1); } 回文数问题 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法) 2.程序源代码: main( ) { long a,b,c,d,e,x; scanf("%ld",&x); a=x/10000;/*分解出万位*/ b=x%10000/1000;/*分解出千位*/ c=x%1000/100;/*分解出百位*/ d=x%100/10;/*分解出十位*/ e=x%10;/*分解出个位*/ if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); else if (d!=0) printf("there are 2, %ld %ld\n",e,d); else if (e!=0) printf(" there are 1,%ld\n",e); } 杨辉三角 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: 1 1 1

C语言习题及参考答案

C语言习题集 习题一 一.填空题 1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)。因此,( 函数) 是C程序的基本单位。 2.C程序注释是由( /*) 和( */ ) 所界定的文字信息组成的。3.函数体一般包括( 变量声明) 和( 语句) 。 二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。【错】 2.main函数必须写在一个C程序的最前面。【错】 3.一个C程序可以包含若干的函数。【对】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【对】 5.C程序的注释只能是一行。【错】 6.C程序的注释不能是中文文字信息。【错】 8.可以使用Visual C++ 6.来编译和连接一个C程序。【对】 9.可以使用Visual C++ 6.来运行一个C程序。【对】 10.可以使用Visual C++ 6.来实时调试(即动态调试)一个C程序。【对】三.简答题 1.写出一个C程序的基本结构。 2.简要叙述使用Visual C++ 6.0编译和运行一个程序的步骤。 四.编程题 1.提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示:使用键盘上的一些符号)。 2.提高题:试编写一个C程序,输出如下信息。 ********************** *** @ @ *** *** @ *** ********************** 试试看,可以输出其他组合图案吗?

习题二 一.选择题 1、合法的字符常量是(ACD)。 A)…\t?B) “A” C)…a?D)?\x32? 2、合法的字符常量是( D) 。 A)…\084?B) …\84? C)…ab?D)?\x43? 3、(B)是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 4、在以下各组标识符中,合法的标识符是((4))。 (1)A)B01 B)table_1 C)0_t D)k% (2)A)Fast_ B)void C)pbl D) (3)A)xy_ B)longdouble C)*p D)CHAR ( 4 ) A) sj B) Int C)_xy D)w_y23 5、属于合法的C语言长整型常量的是(BD)。 A)5876273 B)0L C)2E10 D)(long)5876273 6、下面选项中,不是合法整型常量的是(B )。 A)160 B)-0xcdg C)-01 D)-0x48a 7、判断int x = 0xaffbc;x的结果是(D)。 A)赋值非法B)溢出C)为affb D)为affbc 8、下面选项中,均是合法浮点数的是(B)。 A)+1e+1 B)-.60 C)123e D)-e3 A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4 A)03e2 B)-8e5 C)+2e-1 D)5.e-0 9、在C语言中,要求参加运算的数必须时整数的运算符是(C)。 A)/ B)* C)% D) = 10、在C语言中,字符型数据在内存中以(D)形式存放。 A)原码B)BCD码C)反码D)ASCII码 11、下列语句中,符合语法的赋值语句是(C)。 A)a=7+b+c=a+7;B)a=7+b++=a+7; C)a=(7+b,b++,a+7);D)a=7+b,c=a+7; 12、是非法的C语言转义字符(B )。 A)…\b?B)…\0xf? C)…\037? D)… \?? 13、对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,( B )是正确的。A)语法错误B)f为5.0 C)f为0.0 D)f为2.0 14、与代数式(x*y)/(u*v) 不等价的C语言表达式是(A )。 A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 15、在C语言中,数字029是一个(D)。

CC语言趣味程序设计编程百例精解

C-C++语言趣味程序设计编程百例精解() ?81.角谷猜想 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include<stdio.h> int main() { int n,count=0; printf("Please enter number:"); scanf("%d",&n); /*输入任一整数*/ do{ if(n%2)

n=n*3+1; /*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2; /*若为偶数n除以2*/ printf("[%d]: %d/2=%d\n",++count,2*n,n); } }while(n!=1); /*n不等于1则继续以上过程*/ } 82.四方定理 数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。 请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 *程序说明与注释 #include<stdio.h> #include<stdlib.h> int main()

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

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语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

c语言习题答案

实验一 (1)编程求37+29的值,实习VC环境。 #include void main() { int a,b,sum; a=37; b=29; sum=a+b; printf("sum=%d",sum); } (2)从键盘输入三个整数,求出最大数并输出。 #include void main() { int a,b,c,y; int max(int x,int y); printf("input a,b,and c:"); scanf("%d,%d,%d",&a,&b,&c); y=max(a,b); y=max(y,c); printf("\nmax=%d\n",y); } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(z); } (3)通过上机实践,运行下列程序并分析输出结果。 A 程序代码 #include void main() { char ch='a'; printf("%c对应的ASCII码是:%d\n",ch,ch); } 程序输出结果:a对应的ASC||码是:97

B 程序代码 #include void main() { int a=168; float b=123.456; float x=35.567,y; printf("a=%5d\n",a); printf("a=%-5d\n",a); printf("b=%6.2f\n",b); printf("b=%e\n",b); y=(int)(x*100+0.5)/100.0; printf("x=f,y=%f\n",x,y); } 程序输出结果: a=168 a=168 b=123.46b=1.234560e+002 x=f,y=35.567001 C程序代码 #include void main() { int a=168; printf("十进制数%d对应的八进制数是%o\n",a,a); printf("十进制数%d对应的十六进制数是%x\n",a,a); } 程序输出结果: 十进制数168对应的八进制数是250 十进制数168对应的十六进制数是a8

2019二级C语言题库参考答案解析

2019年C语言考题答案 1、程序填空题 给定的程序的功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat 的二进制中。 填空:( 1) STYPE(2)FILE(3)fp 改错:(1) for(i=0;i<=sl;i++)(2)t[2*sl]= 0“ 或t[sl+sl]= 0“ 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10); 2、程序填空题给定程序的功能是:从键盘输入若干文本 (每行不超过80 个字符),写到文件myfile4.txt 中,用-1 作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext 实现。 填空:(1)*fw(2)str (3) str 改错:(1)voidfun(longs,long*t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i

else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun 的功能是:讲自 然数1~10 以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。 填空:( 1) fp( 2)fclose(fp)(3)myfile3.txt 改错:( 1)for(i=j+1;i

趣味c语言编程100例

趣味 c 语言编程100 例 【程序 1】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、 2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) / *以下为三重循环 */ for( j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /* 确保 i 、 j、 k 三位互不相同 */ printf("%d,%d,%d\n",i,j,k); } } 程序 2】 题目:企业发放的奖金根据利润提成。利润 (I) 低于或等于 10 万元时,奖金可提 10% ;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可可提成 7.5% ; 20 万到 40 万之间时,高于 20 万元的部分,可提成 5% ; 40 万到 60 万之间时高于

40 万元的部分,可提成 3% ;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5% ,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总 数? 1. 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2. 程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03;

大学C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 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 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

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语言试题及答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

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

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

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

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

相关文档