《C语言程序设计》综合练习题与答案一、简要问答下列问题1.什么是源程序?2.C语言源程序的编译过程是怎样的?3.简述C语言的特点4.C/C++程序都是由函数组成的,其中最主要的、不可缺少的函数是哪一个?举例说明该函数的结构。
5.函数的返回值是通过什么语句来实现的,它的格式是什么?6.在编写C程序时,为什么要把库函数的头文件包含到用户源程序中?如何把用户的头文件包含到用户源程序?7.在计算机中,存储的数据为什么要分成多种不同的数据类型?8.什么是常量?什么是变量?9.C语言的五种基本数据类型有哪些?它们的关键字和所占的字节数分别是什么?10.判断标识符是否合法的三条规则是什么?11.什么是C语言的关键字?关键字对标示符有何影响?12.全局变量和局部变量有什么区别?13.什么是空语句,什么是语句块?14.结构化程序设计的三种基本结构是什么?15.三种循环语句各有什么特点?16.什么叫多重循环结构?17.Continue语句与break语句有什么区别?18.字符与字符串有什么区别?‘b’与“b”相同吗?19.什么是数组?一维数组的定义形式是怎样的?20.字符串的结束标记是什么?21.什么是按位操作?C语言对按位操作有哪些要求?22.什么是指针?指针的两个操作符表示什么意义?23.指针和数组有什么关系?24.指针有那几种算术运算?说明指针变量的算术运算与一般变量的算术运算有何区别?25.函数是由哪三部分组成的?函数定义的一般形式是什么?26.函数原型是什么情况下使用?有什么作用?27.形参和实参有什么关系,函数的两种调用方式是什么?28.什么是函数的递归调用?29.什么是函数指针?说明定义函数指针的一般形式。
30.什么是内部函数?什么是外部函数?31.C语言的四种用户定义数据类型是什么?32.C系统提供的三种主要预处理功能是什么?33.什么是文件包含?34.什么是文件?什么是流?二、写出下列程序段的输出结果(1) int a,b,c=1;for (a=0;a<3;a++)for (b=0;b<=3;b++)c=c+1;printf(“a=%d,b=%d,c=%d\n”,a,b,c);(2) int i=1;do{if (i%10){i=i+1;continue;}printf(“%5d”,i);i++;} While(i<=50);(3) int x=2;there: x=x+1;if (x<6) goto there;printf("x=%d",x);printf("End of program.");(4) int x=1, y=1;while (y<6){x=x*y;y=y+1;}printf("x=%d\n",x);(5) int i,j,x[2][2];for (i=0;i<2;i++) {for (j=0;j<2;j++) {x[i][j]=i十j;printf ("x[%d][%d]=%d",i,j,x[i][j]);}printf("\n");}(6) i nt a[5]={5,4,3,2,1},i=0,x=0;whi1e (i<5){x=a[i]十x;i++;}printf("x=%d\n",x);}(7) m ain( ){int x=10,y=20;printf("result=%d\n",abc(x,y));return 0;}abc(int a,int b){int c;if (b){c=a/b+a;return c;}e1sereturn 0;}(8) m ain( ){int x=10;int i;for (i=0;i<3;i++)printf(“%d”,fun(x));return 0;}fun (int x){static int Z=3;Z=Z+x;return Z;}(9) main( ){int a,b;a=50;b=90;printf("%d\n",(a,b));return 0;}(10) main( ){int a[10]={19,23,44,17,37,28,49,36},*P;P=a;printf("%d\n",(P+=3)[3]);return 0;}(11) main( ){int i=3,j=2;char *a="DCBA";printf("%c%c\n",a[i],a[j])";return 0;}(12) #include <stdio.h>fun(int x){int k;if (x == 0 || x == 1) return(3);k=x-fun(x-2);return k;}main( ){printf("%d\n",fun(9));return 0;}(13) #include <iostream.h>void myFunc( );void rnain( ){int X=5;cout<<"\n In main X is : "<<X;myFunc( );cout<<"\n Back in main, X is :"<<X;}void myFunc( ){int X=8;cout<<"\n In myFunc, local X: "<<X;{cout<<"\n In block in myFunc , X is:"<<X;int X=9;cout<<"\n Very local, X: ”<<X;}cout<<"\n Out of block, in myFunc, X is: "<<X;}(14) #include <stdio.h>f(int a[]){int i=0;while (a[i]<=10){printf("%d ",a[i]);i++;}}main(){int a[]={1,5,10,9,11,7};f(a+1);}(15) #include <stdio.h>swap(int *p1,int *p2){int p;p=*p1;*p1=*p2;*p2=p;}main(){int a=5,b=7,*ptr1,*ptr2;prt1=&a; ptr2=&b;swap(ptr1,ptr2)printf("*ptr1=%d,*ptr2=%d\n",*ptr1,*ptr2);printf("*ptr1=%d,*ptr2=%d\n",a,b);}(16) #include <stdio.h>void main(void){int x,y=-2,z=0;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("\t%d\t%d\n",x,z);if (z=(y==0))x=5;x=4;printf("\t%d\t%d\n",x,z);if (x=z=y) x=4;printf("\t%d\t%d\n",x,z);}(17) #include <stdio.h>int fac(int n){static int f=1;f=f*n;return(f);}main(){int i;for (i=1;i<=5;i++)printf("%d!=%d\n",i,fac(i));return;}(18) #include <stdio.h>int fac(int n){int f=1;f=f*n;return(f);}main(){int i;for (i=1;i<=5;i++)printf("%d!=%d\n",i,fac(i));return;}三、单项选择题1.一个C程序的执行是从_______。
(A)本程序的main函数开始,到main函数结束(B)本程序的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束2.一个C语言程序是由__________。
(A)一个主程序和若干个子程序组成(B)函数组成(C)若干个过程组成(D)若干个子程序组成3.下面选项中,均是不合法的用户标示法的选项是________。
(A)A P_0 do(B)float la0 _A(C)b-a goto int(D)_123 temp INT4.以下叙述正确的是_________。
(A)在C程序中,每行中只能写一条语句(B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整数(C)在C程序中,如论是整数还是实数,都能被准确无误地表示(D)在C程序中,%是只能用于整数运算的运算符5.以下C程序的正确的运行结果是___________。
(注:表示空格)main(){long y=-43456;printf("y=%-8ld\n",y);printf("y=%-08ld\n",y);printf("y=%08ld\n",y);printf("y=%+8ld\n",y);}(A)y=-43456 (B)y=-43456y=-43456 y=-43456y=-0043456 y=-0043456y=-43456 y=+-43456(C)y=-43456 (D)y=-43456y=-43456 y=-0043456y=-0043456 y=00043456y=-43456 y=+434566.设x,y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是___。
(A)'x'&&'y' (B)x<=y(C)x||y+z&&y-z (D)!((x<y)&&!z||1)7.以下运算符中优先级最低的是_______。