厦门理工学院c语言复习题,答案仅供参考(强烈推荐)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;