2024年4月27日发(作者:)

计算机程序设计基础

2018-2019学年 第二学期

一.选择题:(共30分,每题1分)

1. 关于C语言中的变量,以下说法正确的是______。

A)变量的类型可以根据需要随时改变

C)变量可以没有数据类型

A)double A,a;

A)''

B)变量的类型是在定义的时候确定的

D)变量的取值范围与其类型没有关系

D)int n=6,G[n];

D)0L

D)double x;

D)double d[3];

D)有语法错误

D)0

2. 以下数据定义中,有语法错误的是______。

B)float _0,*q[7]; C)char For;

B)6.18e-5 C)0x5G

3. 以下选项中,非法的C语言常量是______。

4. 如果要使x=3.1415926正确赋值,则x应定义为______。

A)int x; B)long x; C)float x;

C)float c[4];

C)14

C)15

5. 下面定义的数组中,占用内存空间最大的是______。

A)char a[20]; B)int b[5];

A)12

A)5

B)13

B)10

6. 若有定义:int x=5, y=7;, 则表达式++(x+y)的值是______。

7.

若有定义:int x=18; 则执行语句x=5/9*x+5;后,变量s的值是______。

8. 若有定义:int x;,能使表达式 5

A)6,7,8,9

C)所有的整数

A)m||n

A)&&

B)大于5的所有整数

D)小于10的所有整数

C)m==n

C)/

D)m>n && n>0

D)=

9. 若有定义:int m=3.8, n=3; ,则以下表达式值为0的是______。

B)m/n

B)>=

10. 下面的C语言运算符中,优先级高于“!=”但低于“+”的运算符是____。

11. 若int x=5, y=6, p=0 ; 则执行以下语句后p值是______。

if ( x++==y ) p=2 ; else p=3 ;

A

)0

B)2

C)3

D)有语法错误

D)6和8

12. 设int m=2,n=5; 求解表达式(m=6)||(n=8)后m和n的值分别为____。

A)2和5 B)6和5

C)2和8

13. 下列关于选择语句的叙述中错误的是_____。

A)if必须与else配合使用

C)if也能实现多分支结构

A)-1

B)switch通常与break配合使用

D)switch常用来实现多分支结构

C)5 D)9

14. 执行语句for ( n=0,k=9; k>0; k=k-2 ) n++ ;后变量k的值是______。

B)0

15. 若有定义:int n=0;下面的循环语句执行后,变量n的值为______。

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

for( j=0 ; j<=5 ; j++ ) n++;

A)45

B)50

C)54

C)7

C)12

D)60

D)8

D)42

D)40

16. 若有定义int a[10]={ 2,4,6,8,10,12 };则数组元素a[a[3]-1]的值为______。。

A)0

A)6

A)9

B)6

B)7

B)10

17. 若有定义long f[][6]={ 1,2,3,4,5,6,7 };则数组f中数组元素的个数为______。

18. 若有说明:char s[40]= "GoodByen";则strlen(s)的值是______。

C)11

19. 关于字符串与字符数组,下面说法错误的是_____。

A)字符串其实就是字符数组 B)字符数组其实就是字符串

D)字符串长度可以为0

B)函数定义可以相互重叠

D

)main函数定义必须在最前面

C)char D)void

C)字符数组可以用来存放字符串

A)函数可以嵌套定义

C)函数必须独立定义

A)int

20. 关于函数定义,下面说法正确的是_____。

21. 若某函数的功能是求两数的最大公约数,则函数类型应定义为_____。

B)float

22. 关于函数的参数,下面说法正确的是_____。

A)形参就是函数的局部变量

C)实参不能是变量

B)实参只能是变量或表达式

D)函数调用不能做实参

B)数组元素a[0]的地址

D)数组元素a[1]的地址

C)p=&x

C)p=z

C)p++==--q

C)p[0]

D)q=&x

D)p=&y

D)p-q>=0

D)*(wh+1)

23. 若有定义:int a[10]; 则数组名a做函数实参时,传递给形参的是_____。

A)数组a中的所有元素的值

C)数组元素a[0]的值

A)p=x

A)p=x

A)p++

A)*wh

为_____。

A)f(x,10);

A)char p;

B)f(p,10); C)f(p+1,9)

C)char *p;

D)f(x[0],10)

D)char **p;

29. 若要使p="Computer";,则p应定义为______。

B)char p[40];

30. 设有定义:int (*q)( );则q可以用来保存______。

A)一个int型无参函数的入口地址

C)一个int型二维数组的首地址

B)任何一个无参函数的入口地址

D)一个int型指针变量的地址

24. 设有定义:int x,*p;char *q;,则下列表达式能正确赋值的是_____。

B)p=q

B)p=y

B)q>=x+4

B)*p

25. 设有定义:float x,y[10],z[3][4],*p;,则下列表达式能正确赋值的是_____。

26. 若有定义:int x[6]={1,2,3,4,5,6},*p=x+3,*q=&x[4];

,则下列表达式值为0的是_____。

27. 若有:int wh[8]={1,3,5,7,9,11,13,15},*p=wh;,则表达式的值不为1的是_____。

28. 设某函数首部为void f(int a[],int n),若有定义:int x[10],*p=x;,则调用f函数不正确的形式

二.填空题:(共40分,每题4分)

1. 下面程序的输出结果为_____。

void main( )

{

}

int a=256, x=0;

if ( a>=60 || a<=120 )

if ( a<=120 ) x = 6;

else if( a>=60 ) x = 3;

else if( a>=120 ) x = 9;

printf( "%d", x );

2. 下面程序的输出结果为_____。

void main( )

{ int i, f=1;

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

{ f=2*f+1; }

printf( "%d", f );

}

3. 下面程序的输出结果为_____。

void main( )

{ int k, x=50;

for( k=x ; k>0 ; k-- )

{ if (k%3==0 && k%4!=0)

break;

}

printf( "%d", k );

}

4. 下面程序的输出结果为_____。

void main( )

{ int k=0, i, n=0, a[5];

while( k<5 )

{ n=n+10;

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

{ if(i%3==0) { break; }

}

a[k]=i; k++;

}

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

}

5. 下面程序的输出结果为_____。

void main( )

{ int i,u=0;

char s[5][20]={"China","Russian","American","Britain","France"};

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

u = u + strlen(s[i]);

printf( "%d", u );

}