admin 管理员组

文章数量: 887021


2023年12月16日发(作者:xml文件如何手机改表格)

2008春季学期计算机技术基础C语言试题(A)卷

(考试时间:120分钟)

一、选择题(每题1分,共40分)

1、 在C语言中,合法的长整型常数是

A) 0L B) 4962710 C) 324562& D) 216D

2、 以下有4组用户标识符,其中合法的一组是

A) For B) 4d C) f2_G3 D) WORD

sub DO IF void

Case Size abc define

3、 以下选项中合法的字符常量是

A) "B" B) '010' C) 68 D) D

4、 假定x和y为double型,则表达式x=2,y=x+3/2的值是

A) 3.500000 B) 3

5、 以下合法的赋值语句是

C) 2.000000 D) 3.000000

A) d-- B) x=y=100; C) x+y; D) c=int(a+b);

6、 设正x、y均为整型变量,且x=10 ,y=3,则printf("%d,%dn",x--,--y);语句的输出结果是

A) 10,3 B) 9,3 C) 9,2 D)10,2

7、 x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是

A) INPUT x、y、z; B) scanf("%d%d%d",&x,&y,&z); C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);

8、 以下程序的输出结果是

main()

{ int a=3;

printf("%dn",(a-=a*a) ); }

A) -12 B)12 C) 0 D) -6

9、 设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

10、 阅读以下程序:

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

11、 t为int类型,进人下面的循环之前,t的值为0

while( t=l )

{ ……}

则以下叙述中正确的是

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

12、 以下程序的输出结果是

main()

{ int num= 0;

while(num<=2)

{ num++; printf("%dn",num); }

A) 1 B) 1 C)1 D) l

2 2 2

3 3

4

13、 以下各选项企图说明一种新的类型名,其中正确的是

A) type def v1 int; B) type def v2=int; C) type def v1 int v3; D) type def v4: int;

14、 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是

A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定

1

C) 循环控制表达式不合法 D) 以上说法都不对

15、 以下函数值的类型是

fun ( float x )

{ float y;

y= 3*x-4;

return y; }

A) int B) 不确定

16、 以下程序的输出结果是

main()

{ char c='z';

printf("%c",c-25); }

A) a B) Z C) z-25

17、 以下选项中,非法的字符常量是

A) 't' B) '17' C)"n"

18、 以下定义语句中,错误的是

D) y

D) 'xaa'

C) void D) float

A) int a[]={1,2}; B) char *a[3]; C) char s[10]="test"; D) int n=5,a[n];

19、 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是

A) 3 B) 6 C) 10 D) 20

20、 以下程序的输出结果是

main()

{ int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf("%d%d%d",a[2],a[5],a[8]); }

A) 258 B) 741 C) 852

21、 以下数组定义中不正确的是

A) int a[2][3]; B) int b[][3]={0,1,2,3};

22、 以下程序的输出结果是

D) 369

D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; C) int c[100][100]={0};

main()

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

printf("%d%d%d%dn",a[0][3],a[1][2],a[2][1],a[3][0]; }

A) 0650 B) 1470 C) 5430

23、 以下选项中,不能正确赋值的是

A) char s1[10];s1="Ctest";

24、 以下程序的输出结果是

main()

{ int a, b;

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

{ if(b>=10) break;

if (b%3= =1)

{ b+=3; continue; } }

printf("%dn",a); }

A) 101 B) 6

25、 以下程序的输出结果是

int a, b;

void fun()

{ a=100; b=200; }

main()

{ int a=5, b=7;

fun();

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

A) 100200 B) 57 C) 200100 D) 75

26、 int x=0,y=1; 则以下选项中,结果为零的表达式是

A) x || y B) x + y C) x && y D) ! x

27、 以下叙述中正确的是()

A)C语言的源程序不必通过编译就可以直接运行

D) 输出值不定

C) char s3[20]="Ctest"; D) char *s4="Ctestn" B) char s2[]={'C', 't', 'e', 's', 't'};

C) 5 D) 4

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令

2

C)C源程序经编译形成的二进制代码可以直接运行

28、 以下符合C语言语法的实型常量是()

D)C语言中的函数不可以单独进行编译

A)1.2E0.5 B)3.14.159E C).5E-3 D)E15

29、若以下选项中的变量已正确定义,则正确的赋值语句是()

A)x1==26.8%3

30、设有以下定义

int a=0;

double b=1.25;

char c=’A’;

#define d 2

则下面语句中错误的是()

A)a++; B)b++ C)c++; D)d++;

31、 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是()

A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)

32、以下4个选项中,不能看作一条语句的是()

A){;}

33、有以下程序

main( )

{ int i,s=0;

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

printf(“%dn”,s);}

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

A)自然数1~9的累加和 B)自然数1~10的累加和 C)自然数1~9中的奇数之和 D)自然数1~10中的偶数之和

34、 以下叙述中正确的是()

A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数

C) main()函数必须放在其它函数之前 D) 所有被调用的函数一定要在调用之前进行定义

35、以下非法的赋值语句是()

A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0;

36、设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是

A)printf(“x=%dn”,x); B) printf(“x=%1dn”,x);C)printf(“x=%8dLn”,x); D)printf(“x=%LDn”,x);

37、若有以下程序:

main()

{ int k=2,i=2,m;

m=(k+=i*=k);printf(“%d,%dn”,m,i);}

执行后的输出结果是()

A) 8,6 B) 8,3 C) 6,4 D) 7,4

38、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是

A) 6 B) 0 C) 2 D) 1

39、以下选项中,与k=n++完全等价的表达式是()

A) k=n,n=n+1

40、 有以下程序段

B) n=n+1,k=n C) k=++n D) k+=n+1

B)a=0,b=0,c=0; C)if(a>0); D)if(b==0) m=1;n=2;

B)1+2=x2 C)x3=0x12 D)x4=1+2=3;

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

二、填空题(每题1分,共10分)

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

C语言中的逻辑值"真"是用__{2}__表示的,逻辑值"假"是用_(3)__表示的。逻辑表达式值为"真"是用__(4)__表示的,逻辑表达式值为"假"是用__(5)__表示的。

2、以下程序实现输出x,y,z三个数中的最大者。请在( )内填入正确内容。

main ()

{int x=4,y=6,z=7;

int (6);

3

if(x>y) u=x;

else u=y;

if ( (7) ) v=u;

else v=z;

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

}

3、以下程序实现:输入三个数,按从大到小的顺序进行输出。请在( )内填入正确内容。

main ()

{ int x,y,z,c;

scanf("%d %d %d",&x,&y,&z);

if ( (8) )

{c=y;y=z;z=c;}

if ( (9) )

{c=x; x=z;z=c;}

if ( (10) )

{c=x;x=y;y=c;}

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

}

三、分析程序给出运行结果(每题1分,共10分)

1、阅读以下程序后,写出运行结果。

#include

main()

{int m,s=0;

for(m=3;m<10;m=m+2)

if(prime(m)) s+=m;

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

}

int prime(int m)

{int k,j;

k=sqrt(m);

for(j=2; j<=k;j++)

if(m % j==0)return 0;

return 1;

}

2、阅读以下程序后,写出运行结果。

void f (int c)

{int a=0;

static int b=0;

a++; b++;

printf("%d:a=%d,b=%dn",c,a,b);

}

3、 main()

{ int x=100,a=20,b=l0,c=5,d=0;

if (a

if (b!=15)

x=15;

else

if (d)

x=100;

x=-10;

printf("%d",x);

}

4、输入3个数5,6,2输出结果是什么。

4

main()

{ float a,b,c,t;

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

if(a>b) {t=a;a=b;b=t;}

if(a>c) {t=a;a=c;c=t;}

if(b>c) {t=b;b=c;c=t;}

printf("%4.1f%4.1f%4.1fn",a,b,c);

}

5、程序运行输入3值,输出输出结果是什么。

main()

{ int x,y;

scanf("%d",&x);

if(x<0) y= -1;

else if(x= =0) y=0;

else y=1;

printf("x=%d,y=%dn",x,y);

}

6、程序运行输入3值,输出结果是什么。

main()

{ int a;

printf("input integer number: ");

scanf("%d",&a);

switch (a)

{ case 1:printf("Mondayn");break;

case 2:printf("Tuesdayn"); break;

case 3:printf("Wednesdayn");break;

case 4:printf("Thursdayn");break;

case 5:printf("Fridayn");break;

case 6:printf("Saturdayn");break;

case 7:printf("Sundayn");break;

default:printf("errorn");

}

}

7、由键盘输入三个整数2,-6,4分别给变量a、b、c,输出结果是什么。

#include

#include

main()

{ int a,b,c,max;

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

max=a;

if(abs(max)

if(abs(max)

printf("max=%dn",max);

}

}

}

8、 阅读以下程序后,写出运行结果。

#include

main()

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

switch(x)

{ case 1:

switch(y)

{ case 0:a++;break;

5

case 1:b++;break;

}

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

}

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

}

9、输入5个数3,4,6,7,8.程序运行,输出结果是什么。

main()

{ int sum,x,i;

sum=0;

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

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

sum=sum+x; }

printf("sum=%dn",sum);

}

10、程序运行,输出结果是什么。

main()

{ int k,f[10]={1,1};

for(k=2;k<10;k++)

f[k]=f[k-1]+f[k-2];

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

{ if(k%5==0)printf(“n”);

Printf(“%6d”,f[k]);}}

四、阅读程序,回答相应问题(每题2分,共10分)

1、#define N 6

main()

{int i,j,t,a[N+1];

printf("Input N numbers:n");

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

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

printf("n");

for(i=1;i<=N-1;i++)

for(j=i+1; j<=N; j++)

if(a[i]

{t=a[i];a[i]=a[j];a[j]=t;}

printf("the sorted numbers:n");

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

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

}

问题:(1) 、该程序功能是什么?

(2) 、将if语句中a[i]a[j], 该程序功能是什么?

(3) 、 {t=a[i];a[i]=a[j];a[j]=t;} 功能是什么?

2、#include

main()

{int m,s=0;

for(m=9;m<20;m=m+2)

if(prime(m)) s+=m;

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

}

int prime(int m)

{int k,j;

k=sqrt(m);

for(j=2; j<=k;j++)

6

if(m % j==0)return 0;

return 1;

问题:(4) 、函数功能是什么?

(5)、s的值是什么?

7


本文标签: 结果 输出 表达式 程序