厦门理工学院c语言复习题,答案仅供参考(强烈推荐)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C程序设计期末复习思考题

一、选择题:

1 一个C语言程序是由_________。

A)一个主程序和若干个程序组成B)函数组成

C)若干过程组成D)若干子程序组成

2已知各变量的类型说明如下:

int i=8,k,a,b;

unsigned long w=5;

double x=1.42,y=5.2;

则以下符合C语言语法的表达式是__________。

A)a+=a-=(b=4)*(a=3) B) a=a*3=2

C) x%(-3) D) y=float(i)

3以下不正确的语句为___________。

A) if (x > y); B) if (x = = y) && (x != 0) x + = y;

C) if (x < y) { x ++; y++;} D) if (x != y) scanf(“ %d ”,&x); else scanf(“ %d ”,&y);)

4C语言中while 和do —whiloe循环的主要区别是___________。

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

B)while 的循环控制条件比do—while 的循环控制条件严格

C)do —while 允许从外部转到循环体内

D)do —while 的循环体不能是复合语句

5 下面程序应该是________ (程序行左边的数字表示行号)

1main( ) 5 for( i=0;i<3;i++) scanf( “%d”,&a[i]);

2{ 6 for(i=1;i<4;i++) a[0] = a[0] + a[i];

3int a[3]={0}; 7 printf(“%d\n”, a[0]);

4int i; 8 }

A)没有错误B)第3 行有错误

C)第5 行有错误D)第6 行有错误

6 以下程序有语法性错误,有关错误原因的正确说法是____________。

main( )

{ int G=5,k;

void prt_char( );

……

k=ptr_char(G);

……}

A)语句void ptr_char( ); 有错,它是函数调用语句,不能用void 说明

B)变量名不能使用大写字母

C)函数说明和函数调用语句之间有矛盾

D)函数名不能使用下划线

7 若有以下定义,则对a数组元素正确引用的是____________。

int a[5], *p=a;

A) *&a[5] B) a+2 C) *(p+5) D) *(p+2)

8在执行下面程序时,如果从键盘上输入:ABCdef〈回车>,则输出为

______________。

#include <Stdio.h>

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("%c",ch);}

printf("\n");}

A)ABCdef B)abcDEF C)abc D)DEF 9 以下叙述正确的是____________。

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行中只能写一条语句

C)C语言本身没有输入输出语句

D)C程序的基本组成单位是语句

10 已知程序中有声明“int a=3,b=4,c;”,则执行语句“c=1/2*(a+b);”后,c的值为

____________。

A)4 B)3.5 C)7 D)0

11下列说法正确的是____________。

A、定义函数时,形参的说明可以放在函数体内

B、return后面不能为表达式

C、如果函数值的类型和返回值类型不一致,则以函数值为准

D、如果形参和实参的类型不一致,则以实参类型为准

12运行下面程序段时,编译提示第2行出错,其原因是____________。

void main( )

{ char c1 = 'a' , c2 = '123' ;

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

}

A、字符常量要写成"a" 。

B、'123'只能赋值给字符串。

C、字符常量'123'长度太大。

D、字符变量c1,c2,不能在同一行中定义。

二、分析题(分析下列程序的运行结果并写在程序右边的空白处)

1、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” ,a ,b);

} ____________________________

2、main ( )

{ int i,j,k;

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

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

printf (“ ”);

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

printf (“*”);

printf (“\n”);

}

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

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

printf (“ ”);

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

printf (“#”)

printf (“\n”);

}

} ___________________________

3、main ( )

{ int i, j, a=0;

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

{ a ++;

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

{ if (j%2) break;

a ++ ;

}

a ++;

}

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

}

4、int Max = 0,Min = 0;

float average ( int array[ ],int n)

{ int i;

float aver, sum=array[0];

Max=Min=array[0];

for ( i=1; i

{ if (array[i] > Max) Max = array[i];

if( array[i] < Min) Min = array[i];

sum = sum + array[i];

}

aver = sum/n;

相关文档
最新文档