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

C语言习题

C语言习题
C语言习题

二级C语言习题

第一章程序设计基本概念

1.能将高级语言编写的源程序转换成目标程序的是_____。

A.编辑程序

B.编译程序

C.驱动程序

D.连接程序

2.下列4条程序中,正确的一条是_____。

A.计算机语言中,只有机器语言属于低级语言。

B.高级语言源程序可以被计算机直接执行。

C.C语言属于高级语言。

D.机器语言是与所用机器无关的。

3.算法具有5个特性,以下选项中不属于算法特性的是_____。

A.有零个或多个输入

B.可行性

C.有穷性

D.通用性

4.while、do-while 语句是用于_____基本结构。

A.顺序

B.选择

C.循环

D.转移

5.用C语言编写的代码_____。

A.可立即执行

B.是一个源程序

C.经过编译即可执行

D.经过编译解释才能执行

6.C语言中的赋值、输入输出语句可以构成_____基本结构。

A.分支

B.顺序

C.循环

D.选择

7.在循环结构中,_____可以使得同一组语句一次也不执行。

A.当型循环

B.直到型循环

C.都不能实现

D.do-while 语句

第二章C程序设计的初步知识

一、选择题

1.请选出可以作为C语言用户标识符的一组标识符_____。

A.void define WORD

B.a3_b3 _123 IF

C.for -abc case

D.2a D0 sizeof

2.以下对C语言的描述中正确的是_____。

A.C语言源程序中可以有重名的函数。

B.C语言源程序中要求每行只能书写一条语句。

C.注释可以出现在C语言源程序中的任何位置。

D.最小的C语言源程序中没有任何内容。

3.以下选项中,哪一个是C语言中合法的常量_____。

A.±234.34

B.1/8

C.'0'

D."a"'b'

4.TUBROC中int变量所表示的数据范围是_____。

A.-32768~32767

B.0~65535

C.-32768~32768

D.0~65536

5.若有以下程序段:“int c1=1,c2=2,c3;c3=1.0/c2*c1;”,则执行后,c3中的值是_____。

A.0

B.0.5

C.1

D.2

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

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.设已定义整型变量k和g,则下面的程序输出为_____。

k=017; g=111;

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

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

A.15 6f

B.16 70

C.15 71

D.16 6f

8.定义a为整型变量,且设其初始值为10,则表达式a+=a-=a*=a的值为_____。

A.10

B.0

C.100

D.-10

9.若a为整型变量,则以下语句_____。

a=-2L;printf("%d\n",a);

A.赋值不合法

B.输出值为-2

C.输出为不确定值

D.输出值为2

10.设有定义:“float a=2,b=4,h=3;”,以下C语言表达式中与代数式?(a+b)h计算结果不相符的是_____。

A.(a+b)*h/2

B.(1/2)*(a+b)*h

C.(a+b)*h*1/2

D.h/2*(a+b)

11.数字字符0的ASCII值为48,若有以下程序:

main()

{ char a='1',b='2';

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

printf("%d\n",b-2);

}

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

A.3,2

B.3,1

C.2,1

D.2,2

12.设有“int x=11;”,则表达式(x++*1/3)的值是_____。

A.3

B.4

C.11

D.12

13.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为_____。

A.4

B.16

C.32

D.52

二、填空题

1.C语言提供的基本数据类型包括:__1__、__2__、__3__、__4__和__5__。

2.C语言的标识符只能由3种字符组成,它们是:__6__、__7__和__8__。

3.若x、y、z均是整型变量,则执行表达式x=(y=4)+(z=2)后,x的值为__9__,y的值为__10__。

4.假设所有的变量都为整型,则表达式(a=2,b=a++,b++,a+b)的值为__11__。

5.设x为int型变量,请写出描述“x是奇数”的表达式__12__。

6.已知整型数据a=3,b=-4,c=5,则表达式a++-b+(++c)的值为__13__。

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

8.若有定义:“int a=10,b=9,c=8;”,接着顺序执行下列语句,变量b中的值为__15__。

c=(a-=(b-5));

c=(a%11)+(b=3);

9.十进制数-5的补码表示为__16__。

第三章

一.选择题

1.若变量a,i已正确定义,且i已正确赋值,合法的语句是

A.a==1

B.++i

C.a=a++=5

D.a=int(i)

2.以下合法的C语言赋值语句是

A.a=b=58

B.k=int(a+b)

C.a=58,b=58

D.--i;3

3.有以下程序:

main()

{ int m=0256,n=256;

pringtf("%o %o\n",m,n);

}

程序运行后的输出结果是

A.0256 0400

B.0256 256

C.256 400

D.400 400

4.下列程序运行的结果是

main()

{ int a=2,c=5;

pringtf("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

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

main()

{ int k=17;

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

}

A.17,021,0x11

B.17,17,17

C.17,0x11,021

D.17,21,11

6.以下叙述中正确的是

A.输入项可以是实型常量,比如:“scanf("%f",3.5);”

B.只有格式控制,没有输入项,能正确输入数据到内存,例如:“scanf("a=%d,b=%d");”

C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:“scanf("%4.2f",&f);”

D.当输入数据时,必须指明变量地址,例如:“scanf("%f",&f);”

7.有以下程序:

main()

{ int m,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

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

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是

A.m=123n=456p=789

B.m=123 n=456 p=789

C.m=123,n=456,p=789

D.123 456 789

8.以下说法中正确的是

A.#define 和pringtf都是C语句

B.#define 是C语句,而printf不是

C.printf 是C语句,但#define不是

D.#define 和 printf都不是C语句

9.下列关于复合语句及空语句中正确的是

A.复合语句中的最后一个语句的最后一个分号可以省略

B.复合语句不可嵌套

C.空语句在执行时没有动作,因此没有用途

D.空语句可以做“延时”使用

10.若变量已正确说明float类型,要通过语句“scanf("%f%f%f",&a,&b,&c);”给a赋值

10.0,b赋值22.0,c赋值33.0,不正确的输入形式是

A.10<回车>

B.10.0,22.0,33.0<回车>

22<回车>

33<回车>

C.10.0<回车>

D.10.22<回车>

22.0 33.0<回车> 33<回车>

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.有以下程序:

main()

{ int x=102,y=012;

printf("$2d,$2d\n",x,y);

}

执行后输出结果是

A.10,01

B.02,12

C.102,10

D.02,10

13.有以下语句:“int b;char c[10];”,则正确的输入语句是

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b.c);

D.scanf("%d%s",b,&c);

二.填空题

1.以下程序运行后的输出结果是()

main()

{ int a,b,c;

a=25;

b=025;

c=0x25;

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

}

2.有以下程序:

main()

{ char a,b,c,d;

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

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

}

若运行时从键盘上输入:6.5.65.66<回车>,则输出结果是()

3.以下程序执行结果是()

main()

{ float 1=13.8; int b=5;b=((int)a) %3;

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

}

4.若想通过以下输入语句使a=

5.0,b=5,c=3,则输入数据的形式应该是()int b,c; float a;

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

5.以下程序执行结果是()

main()

{ int a,b,c; c=(a=3,b=a--);

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

}

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

main()

{ int a=1,b=2;

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

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

}

7.对如下程序进行编译和运行,其结果是()

main()

{ int a;

a=1234;

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

}

第四章

一.选择题

1.能正确表示a和b同时为正或同时为负的逻辑表达式是

A.(a>=0||b>=0)&&(a<0||b<0)

B.(a>=0&&b>=0)&&(a<0&&b<0)

C.(a+b>0)&&(a+b<=0)

D.a*b>0

2.设有如下定义:“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.0

3.有以下程序:

main()

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

if(a>b)

printf("%d",d++ +1);

else

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

}

程序运行后的输出结果是

A.2

B.3

C.43

D.44

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

A.无输出

B.结果不确定

C.-1

D.1

5.有以下程序:

main()

{ int i=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3))

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

}

程序运行后的输出结果是

A.1 2 3

B.2 3 4

C.2 2 3

D.2 3 3

6.在C语言的if语句中,用作判断的表达式为

A.关系表达式

B.逻辑表达式

C.算数表达式

D.任意表达式

7.有以下程序:

int f1(int x,int y){return x>y?x:y;}

int f2(int x,int y){return x>y?y:x;}

main()

{ int a=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

printf("%d,%d,%d\n",e,f,g);

}

程序运行后的输出结果是

A.4,3,7

B.3,4,7

C.5,2,7

D.2,5,7

8.以下不正确的if语句形式是

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

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

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

D.if(x

9.有如下程序:

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

10.一直“int x=10,y-20,z=30;”,以下语句执行后的值是

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=30

11.当a=1,b=3,c=6,d=4时,执行下面一段程序后,x的值为

if(a

if(c>d) x=1;

else if(a

if(b>d) x=2;

else x=3;

else x=6;

else x=7;

A.1

B.2

C.3

D.4

12.有以下程序:

main()

{ int i;

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

switch(i)

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

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

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

}

}

程序运行后的输出结果是

A.022111

B.021021

C.000122

D.012

二.填空题

1.设a,b,c均为整型变量,请描述出“a或b中有一个小c”的表达式()

2.已知x=7.5,y=2,z=

3.6,则表达式x>y&&z>xy的值是()

3.已知x=1,y=4,z=3,则表达式!(x

4.以下程序运行后的输出结果是()

main()

{ int a=3,b=4,c=5,t=99;

if(b

if(a

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

}

5.下面的if语句与“y=(x>=10)?*x-11:(x<1)?x:2*-1;”的功能相同,请补充完整。if(___(5)___)

if(___(6)___)y=2*x-1;

else y=x;

else y=3*x-11;

6.以下程序运行后的结果是()

main()

{ int a,b,c;

a=10;b=20;c=(a%b<1)||(a/b>1);

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

}

7.以下程序运行后的输出结果是()

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("%d %d\n",a,b);

}

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

main()

{ char*s="12134211"; int v[4]={0,0,0,0},k,i;

for(k=0;s[k])

{ switch{s[k]}

{ case'1':i=0;

case'2':i=1;

case'3':i=2;

case'4':i=3;

}

v[i]++;

}

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

printf("%d",v[k]);

}

第五章

一、选择题

1.在C语言中while和do-while循环的主要区别是()

A.do-while 的循环体至少无条件执行一次

B.do-while 允许从外部转到循环体内

C.while 的循环控制条件比do-while 的循环控制条件严格

D.do-while 的循环体不能是复合语句

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

main()

{ int x=3;

while(!(--x))

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

}

A.不执行循环体

B.1

C.0

D.是死循环

3.运行一下程序后,如果从键盘上输入65 14< 回车>,则结果为()Main()

{ int m, n;

printf(“enter m,n:”);

scanf(“%d%d”,&m,&n);

while(m!=n)

{ while(m>n)m-=n;

While(n>m)n-=m;

}

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

}

A.m=3

B.m=2

C.m=1

D.m=0

4.以下程序运行后的输出结果是()

#include

main()

{ int i=0,a=0;

while(i<20)

{for(; ; )

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

break;

else i--;}

i+=11; a+=i

}

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

}

A.21

B.32

C.33

D.11

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

main()

{ int x=2;

Do

{ printf(“3d”,!x-2);

}while(--x);

}

A.0 -1

B. 0 0

C. -2 -2

D.死循环

6.以下程序运行后输出结果是()

main()

{ char c1, c2;

for(c1=?0?,c2=?9?;c1

printf(“%c%c”,c1,c2);

printf(“\n”);

}

A.0918245765

B.089347654

C.0786584763

D.0918273645

7.下面程序的功能是:计算1~10之间奇数之和以及偶数之和,空白处应填()main()

{ int a,b,c,i;

A=c=0;

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

{ a+=I;_____;}

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

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

}

A.c+=i

B.c+=i+1

C.b+=I

D. b+=i+1

8.设有以下程序段:

int x=0,s=0;

while(!x!=0)

{ s+=++x; ++x}

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

则()

A.运行程序后输出为0

B.运行程序后输出为1,2

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

D.循环体语句执行一次

9.设x和y均为整型变量,则执行下面循环后,y的值为()

for(y=1,x=1;y<=50;y++)

{ if(x>=10) break;

if(x%2==1) {x+=5;continue;}

}

A.2

B.4

C.6

D.8

10.以下程序运行后的输出结果为()

Main()

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

Do

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

}while(y>=1);

for(j=i-1;j>=0;j--)

printf(“%d”,a[j]);

printf(“\n”);

}

A.10000

B.10010

C.00110

D.10100

11.以下程序运行后的输出结果是()

main()

{ int I,j,x=0;

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

{ x++;

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

{ if(j%2)continue;x++

}

x++;

}

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

}

A.x=4

B.x=8

C.x=6 Dx=12

12.有以下程序:

main()

{ int a=1,b;

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

{ if(a>=8) break;

if(a%2==1){a+=5;continue;}

a-=3;

}

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

}

运行后结果是()

A.3

B.4

C.5

D.6

13.有以下程序:

main()

{ char k; int I;

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

{ scanf(“%c”,&k);

switch(k)

{ case …0?: printf(“another\n”);

case …1?: printf(“number\n”);

}

}

程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()

A.another

B. another C another D. number

number number numberr number

another number

二、填空题

1.执行下面程序段的结果是________

int x=234;

do

{ printf(“%3d\n”,x--);

}while(!x);

2.以下程序是利用公式π=4*(1-1/3+1/5-1/7+….)来计算π的值,其中,变量k表示当前符号项,t表示当前项,您表示当前的序号,要求精度控制在0.00001以内。是分析程序并填空。

#include

main()

{ float pi ,t,n,k;

pi=0.0;n=k=t=1.0;

while(__________________________)

{ pi+=t;k=-k; t=______________;n++; }

pi=__________________;

printf(“pi=%f\n”,pi);

}

3.以下程序的执行结果是()

main()

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

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

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

if(j>=i) m=1; n++;

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

}

}

4.下面程序输出的结果是____________

# include

main()

{int x,y;

for(x=1,y=1;x<100;x++)

{if(y>=20) break;

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

y=y-5;

}

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

5.有如下程序:

main()

{ int x=23;

do{printf(“%d”,x--);}while(!x);

}

该程序的执行结果是__________

6.设j为int型变量,这下面for循环语句的执行结果____________

for(j=10;j>3;j--)

{if(j%3) j--;

--j;--j;

printf(“%d”,j);

}

7.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是____________

For(i=5;i;j--)

For(j=0;j<4;j++){···}

8.执行下面程序后,x和y的值为________

main ()

{int x=1,y=1;

for (;x<=10;x++)

{if (y>=2) break;

if (y%2==1)

{ y+=3; comtinue;

}

Eese y-=5;

}

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

}

第六章

一、选择题

1.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,泽输出结果是()

#include

{ char a,b;

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

a=a-…A?+?0?; b=b*2;

printf(“%c %c\n”,a,b);

}

A.2 B

B.1 B

C.3 B

D.4 B

2.设有说明语句:“char a=?\72?;”,则变量a____________.

A.包含1个字符

B.包含两个字符

C.包含三个字符

D.说明不合法

3.有以下程序:

Main()

{ int c=35;

printf(“%d\n”,c&c);

}

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

A.0

B.70

C.35

D.1

4.有如下程序段:

Int a=14,b=15,x;

Char c=?A?;

X=(a&&b)&&(c

执行该程序段后,x的值为()

A.ture

B.false

C.0

D.1

5.putchar()函数可以向终端输出一个()

A.整型变量表达式

B. 实型变量值

C.字符串

D.字符或字符型变量值

6.getchar()函数可以接收一个()

A. 整型变量表达式B实型变量值. C. 字符串 D.字符

7.运行一下程序后,如果从键盘上输入china#<回车>,则输出结果是()

#include

main()

{ int v1=0,v2=0;

char ch;

while((ch=getchar())!=?#?)

switch(ch)

{ case …a?:

case?h?:

default:v1++;

case?0?:v2++;

}

printf(“%d,%d”,v1,v2);

}

A.2,0

B. 5,0

C.5,5

D.2, 5

8.已定义c位字符型变量,则下列语句中正确的是()

A.c=??98;

B.c=”98”;

C.c=98;

D.c=”c”;

9.在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为()

A. ABCdef

B.abcDEF

C.abc

D.DEF

main()

{ char ch;

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

{ if(ch>=?A?&&ch<=?Z?)ch=ch+32;

else if(ch>=?a?&&ch<=?z?)ch=ch-32;

}

printf(“\n”);

}

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

main()

{ int i;

for(i=?A?: i

printf(“\n”);

}

A.acfg

B.bcfg

C.acef

D.aceg

二、填空题

1.有以下程序:

#include

main ()

{char c;

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

}

程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果是_________________ 2.在执行完下面的语句段之后,则B的值是_________

int x=241,y=15;

char z=?A?;int B;

B=((241&15)&&(z

3.输入字符串:abcde<回车>,则下面while循环体将执行_____________次while ((ch=getchar())==?e?)printf(“*”);

4.已知字符‘A’的ASCII码值为65,以下语句输出结果是________________ char ch=?B?;

printf (“%c,%d\n”,ch,ch);

5.若有以下程序:

main ()

{ char a;

a=?H?-?A?+?0?;

Printf (“%c\n”,a);

}

执行输出结果是___________

6.以下程序是利用getchar函数与putchar函数显示有键盘输入的一个字符:

#include

main()

{char c1;

c1=getchar();

putchar (c1);

}

上述程序的第4~6行可以简化为一条语句为________________

第七章函数

一.选择题

1. sizeof(float)是____。

A 一个双精度型表达式

B 一个整型表达式

C 一种函数调用

D 一个不合法的表达式

2以下不正确的说法是____。

A 在不同函数中可以使用相同名字的变量

B 形式参数是局部变量

C 在函数内定义的变量只在本函数范围内有效

D 在函数内的复合语句中定义的变量在本函数范围内有效

3有如下程序:

Int func (int a,int b)

{ return(a+b);

}

Main()

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z)

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

}

该程序的输出的结果是____。

A 12 B13 C14 D15

4程序中对fun 函数有如下说明:

void (*fun) () ;

此说明的含义是____。

A fun函数无返回值

B fun函数的返回值可以使任意的数据类型

C fun函数的返回值是无值型的指针类型

D 指针fun指向一个函数,该函数无返回值

5 C语言中规定,简单变量做实参时,它和对应形参之间的数据传递方式是____。

A 有实参传给形参,再由形参传给实参

B 地址传递

C 单向值传递

D 由用户指定传递方式

6以下正确的说法是___。

A定义函数时,形参的说明可以放在了、括号里,函数头后应加”;”

B 没有return语句的函数将不返回值

C 如果函数类型是void ,则函数中不能有return 语句

D 对定义在主调函数后面的非整型和字符型的函数应进行函数说明

7 若有以下函数调用语句:“fun(a+b,(x,y),fun(n+k,d,(a,b)));”,在此函数调用语句中实参的个数是___。

A 3

B 4

C 5

D 6

8设c1,c2均是字符型变量,则以下不正确的函数调用为_____。

A scanf(“c1=%cc2=%c”,&c1,&c2);

B c1=getchar();

C putchar(c2);

D putchar(c1,c2);

9 以下正确的函数定义形式是_____。

A double fun(int x,inty);

B double fun(int x;inty)

C double fun(int x,inty)

D double fun(int x,y)

10 C 语言规定,函数返回值的类型是由_____。

A return 语句中的表达式类型所决定

B 调用该函数时的主调函数类型决定

C 调用该函数时系统临时决定

D 定义该函数时所指定的函数类型所决定

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

Int abc(int u, int v);

Main()

{ int a=24 , b=16 ,c;

C=abc(a,b);

Printf(“%d\n”,c);

}

Int w;

While(v)

{ w=u%v; u=v; v=w;

}

Return u;

}

A 6

B 7

C 8

D 9

二.填空题

1 以下程序通过函数SunFun 求ΣF(x).这里F(x)=x^2+1,请填空。

main()

{ printf(“The sum=%d\n”,SunFun(10) );

}

SunFun( int n )

{ int x ,s=0;

For (x=0;x<=n;x++) s+=F( (1) );

Return s;

}

F( int x)

{ return __(__2__)__

}

2 下面pi()函数的功能是根据以下公式,返回满足精度e要求的π值。请填空。π=(1+1/3+2/(3*5)+(3*2/(3*5*7))+(4*3*2)/(3*5*7*9)+……..)

double pi(double eps)

{ double s=0.0, t=1.0;

Int n;

for (______; t>eps; n++)

{ s+=t; t=n*t/(2*n+1);

}

Return (______);

}

main()

{ float e,pai;

scanf(“%f,&e”); //输入精度要求

pai=pi(e);

printf(“%f\n”,pai);

}

3 以下程序运行后的输出结果是______ void fun(int x, int y)

{ x=x+y;y=x-y;x=x-y;

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

}

main()

{ int x=2,y=3;

fun(x,y);

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

}

4有以下程序:

char fun(char x, char y)

{ if(x

return y;

}

main()

{ int a=?9?, b=?8?,c=?7?;

printf(“%c\n”,fun(fun(a,b),fun(b,c))); }

执行结果是_____。

5以下程序运行后的输出结果是______ viod swap (int x, int y)

{ int t;

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

main()

{ int a=3,b=4;

swap(a,b);

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

}

6以下程序运行后的输出结果是______ fun(int a)

{ int b=0; static int=3;

b++;c++;

return(a+b+c);

}

main()

{ int I ,a=5;

for (i=0;i<3;i++) printf(“%d %d”,I,fun(a) );

printf(“\n”);

}

7函数fun的功能是计算x^n,代码如下:

double fun(double x,int n)

{ int I; double y=1;

for(i;=1;i<=n;i++)y=y*x;

return y;

}

主函数中以正确定义m,a,b变量并赋值,调用fun函数计算:m=a^4+b^4-(a+b)^3。实现这一计算的函数调用语句为___________。

第八章指针

一.选择题

1 若有以下定义和语句:

double r=99,*p=&r;

*p=r;

则以下正确的叙述是____。

A以上两处*p含义相同,都说明给指针变量p赋值

B在“double r=99,*p=&r;”中,把r的地址赋给了p所指的储存单元

C语句“*p=r;”把变量r的值赋给指针变量p

D语句“*p=r;”取变量r的值放回r中

2 若有说明:“long*p,a;”,则不能通过scanf语句正确给输入项读入数据的程序师_____。

A *P=&a;scanf(“%ld”,p);

B p=(long*)malloc(8); scanf(“%ld”,p);

C scanf(“%ld”,p=&a);

D scanf(“%ld”,&a);

3若有如下定义和语句,则输出结果是______。

int **pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;

printf(“%d,%d\n”,*p,**p);

A 10,20

B 10,10

C 20,10

D 20,20

4若有说明语句:“double*p,a;”,则能通过scanf语句正确给输入项读入数据的程序是____。

A *p&a;scanf(“%lf”,p);

B p=(double*)malloc(8); scanf(“%lf”,p);

C p=&a;scanf(“%lf”,a);

D p=&a; scanf(“%le”,p);

5若有说明:“int I,j=7,*p=&I;”,则与“i=j;”等价的语句是_____。

A i=*p

B *p=*&j

C i=*&j

D i=**p

6若x是整型变量,pb是基类型为整型的组织变量,则正确的赋值表达式是_____。

A pb=&x;

B pb=x;

C *pb=&x; D*pb=*x;

7以下程序执行后a的值是_____。

main()

{ int a ,k=4, m=6, *p1=&k,*p2=&m;

a=p1= =&m;

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

}

A 4

B 1

C 0

D 运行时报错,a无定值

8设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是______。

A k=*p1+*p2;

B p2=k;

C p1=p2;

D k=*p1*(*P2);

9下面程序的输出是_________。

void prtv(int *x)

{ printf(“%d\n”,++*x);

}

main()

{ int a=25;

prtv(&a);

}

A 23

B 24

C 25

D 26

10下面程序的输出是_________。

main()

{ int * *k, *j,i=100;

j=&I; k=&j;

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

}

A 运行错误

B 100

C I 的地址

D j的地址

11已有定义:“int i,a[10],*p;”,则合法的赋值语句是_____。

A p=100;

B p=a[5]; Cp=a[2]+2; D p=a+2;

12以下正确的程序段是_____。

A int*p;scanf(“%d,p”);

B int *s ,k; *s=100;

C int *s,k; char *p,c; s=&k; p=&c; *p=?a?; *s=1;

D int *s,k; char*p,c; s=&k; p=&c; s=p;

13有以下程序:

main()

{ int a=7 , b=8 , *p,*q , *r ;

p=&a ; q=&b ;

r=p ; p=q ; q=r ;

printf(“%d,%d,%d,%d\n”,*p,*q,a,b);

}

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

A 8,7,8,7

B 7,8,7,8

C 8,7,7,8 D7,8,8,7

二填空题

1 fun1函数的调用语句为:“fun1(&a,&b,&c);”,它将3个整数由大到小的调整后依次放入a,b,c 共3个变量中,a中放最大数,请填空。

void fun2(int *x ,int*y)

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语言习题集

1、将一元二次方程的求根公式(-b+判断式的平方根)/(2a)转换为C语言的表达式,转换以后的语句写在函数fun的花括号,fun 函数的其他语句请不要修改,main函数供你调试程序使用也可以任意修改。 #include #include double fun(double a,double b,double c) { double x1=0.0; //--ksstart (注释不能删除)— //考生代码从此开始编写 x1 = (-b+sqrt(b*b-4*a*c))/(2*a); //--ksend--- return x1; } main() { //求一个根 double a=0.0,b=0.0,c=0.0,x1=0.0; int n=0; printf("The a,b,c:"); scanf("%lf %lf %lf",&a,&b,&c); x1=fun(a,b,c); printf("The x1=%lf:\n",x1); } 2、函数 fun 的功能是: 将两个两位数的正整数 a、b 合并形成一个整数放在 c 中。合并的方式是: 将 a 数的十位和个位数依次放在 c 数的个位和百位上, b 数的十位和个位数依次放在 c 数的十位和千位上。 例如, 当 a=45, b=12, 调用该函数后, c=2514 。 注意: 部分源程序存在文件 PROG1.C 中。数据文件 bc.in 中的数据不得修改。请勿改动主函数main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #include #include long fun(int a, int b) { long c=0; //--ksstart(注释不能删除)— //考生代码从此开始编写 int c1,c2,c3,c4; c1 = b%10; c2 = a%10; c3 = b/10;

大学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语言练习题(带答案)

一、单项选择题 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 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。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

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语言经典编程

猴子吃桃 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

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语言习题集及答案..

目录 第一单元程序设计和C语言 (1) 第二单元顺序程序设计 (3) 第三单元分支程序设计 (7) 第四单元循环程序设计 (14) 第五单元数组..................................................................... 错误!未定义书签。第六单元函数 (23) 第七单元指针..................................................................... 错误!未定义书签。第八单元结构体和共用体..................................................... 错误!未定义书签。第九单元文件..................................................................... 错误!未定义书签。附加题......................................................................................... 错误!未定义书签。模拟试卷一................................................................................. 错误!未定义书签。模拟试卷二................................................................................. 错误!未定义书签。模拟试卷三................................................................................. 错误!未定义书签。

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语言函数题库及答案 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.(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 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。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

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语言的基本构成单位是:。 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语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学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语言试题及答案

大学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语言练习题(带答案)-绝对经典题目不看后悔

1单选题 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语言考试题库及答案

C语言理论上机考试选择题部分(共200题,仅针对11级定向专业) 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); }

相关文档