文档库 最新最全的文档下载
当前位置:文档库 › 练习

练习

一、选择题(20分)

1、下述标识符中,()是合法的用户标识符。

A. float

B. china

C. for

D. k*l

2、以下不属于C的类型是()。

A. signed short int

B. unsigned long int

C.unsigned int

D.long short

3、已定义c为字符型变量,则下列语句中正确的是()。

A. c=’65’;

B. c=’A’;

C. c=”A”;

D. c=”65”;

4、以下运算符中优先级最高的算符为()。

A. ||

B. ,

C. ?:

D.!=

5、有以下程序段

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

k=ac?c:k

执行该程序侯,k的值是()。

A. 3

B. 2

C. 3

D. 4

6、有以下程序

main()

{

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

if (a>b>c)

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

else if ((c-1>=d)= =1)

printf( “%d\n”d+1);

else

printf(“%d\n”d+2);

}

执行后输出结果是()

A. 2

B. 3

C.4

D.编译时有错,无结果

7、下面程序输出结果为()。

main( )

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

while(z-->0 && ++x<5) y=y-1;

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

}

A. 2,-2,-1

B. 2,-2,-2

C.2,-1,-1

D.3,-2,-1

8、以下循环的执行次数是()

main( )

{ int i,j;

for (i=0,j=1; i

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

}

A. 3

B. 2

C.1

D. 0

9、有以下程序

#include

main( )

{ char s1[30]="shanxi \0 and taiyuan",s2[30]="china";

printf("%s",strcat(s1,s2));

}

执行后输出结果是()

A. china

B. shanxi \0 and taiyuan

C. shanxi china

D. shanxi \0 and taiyuanchina

二、程序填空题(共20分)。

1、以下程序的功能是打印100以内个位数为6且能被3整除的所有数。

#include “stdio.h”

main()

{

int i,j;

for(i=0; _________;i++)

{ j=i*10+6;

if(_________) continue;

printf(“%8d”,j);

}

printf(“\n”);

}

2、下面程序的功能是从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有

白球,输出所有可能的方案。

#include “stdio.h”

main()

{

int i,j,k;

printf(“\n hong bai hei \n”);

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

for(_________;j<=5;j++)

{

k=8-i-j;

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

}

}

下面程序的功能是从3个红球、5个白球中任意取出4个球,且其中必须有白球,输出所有可能的方案。

回顾起求完全数、1到100偶数等题目,对所有可能的数据根据条件进行判断。

假设从红球中取 x ,白球中取y个,找到 x+y=8且y>=1的所有x,y

3、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z-y)/(z+y)的值,请填空。

#include “stdio.h”

#include “math.h”

float f(float x, float y)

{ float value;

value=x+y;

return( value);

}

main()

{

float x,y,z,sum;

scanf(“%f,%f,%f”,&x,&y,&z);

sum=f(________)/f(________)+f(________)/f(________);

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

}

4、设数组a包括10个元素。下面程序的功能是求a中各相邻两个元素的和,并将这些和

存在数组b中,按每行3个元素的形式输出。

main()

{ int a[10],b[10],i;

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

scanf(“%d”,&a[i]);

for(__________;i<10;i++)

____________

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

{printf(“%3d”, b[i]);

if(i%3==0) printf(“\n”);

}

}

三、读程序题。(共15分)

1、设下述程序执行时输入为“ 2.4 ,1.1 ”

main( )

{ float a,b,t;

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

if(a>b)

{ t=a;

a=b;

b=t;

}

printf("%.2f,%.2f\n",a,b);

}

则输出为。

该程序的功能是

2、设下述程序执行时输入为“ 2 ”

main( )

{ int jibie, jiangjin;

int biaoshi=1;

scanf("%d",&jibie);

switch (jibie)

{

case 1: jiangjin=1000; break;

case 2:

case 3: jiangjin=750; break;

case 4:

case 5: jiangjin=500;break;

defalut:biaoshi=0;printf("wrong jibie input!\n");

}

if (biaoshi!=0)

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

}

则输出为。

该程序的功能是

3、执行下述程序

main()

{

int i,j,k;

int a[5]={5,17,2,3,12},s;

for(i=1,j=0,k=0;i<5;i++)

{ if (a[i]>a[j])

else if (a[i]

k=i;

}

s=a[j];

a[j]=a[k];

a[k]=s;

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

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

printf("\n");

}

则输出为。

该程序的功能是

5. 下列程序的输出结果是___________。

int ast(int x,int y,int * cp,int * dp)

{ *cp=x+y;

*dp=x-y;

}

main()

{

int a,b,c,d;

a=4;b=3;

ast(a,b,&c,&d);

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

}

5.void swap(int *p1,int *p2) main()

{int *ls; {int x=34,y=99;

ls=p1; printf("The old number is:%d,%d\n",x,y);

p1=p2; swap(&x,&y);

p2=ls; printf("The new number is:%d,%d\n",x,y);

}

四、编程题(共45分,每题15分,要求每题画出N~S 流程图)。

1、有一个函数:

x x<1

y= 2x-1 1≤x<10

3x-11 x≥10

写一段程序,输入x,输出y。(15分)

2、输出100到1000之内的所有素数。(15分)

3、有一分数序列1/2,2/3,3/5,5/8,8/13,13/21………求出这个数列的前20项之和。(15分)

相关文档