




免费预览已结束,剩余27页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品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;a3;a+) for (b=0;b=3;b+) c=c+1; printf(“a=%d,b=%d,c=%dn”,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 (x6) goto there; printf(x=%d,x); printf(End of program.); (4) int x=1, y=1; while (y6) x=x*y; y=y+1; printf(x=%dn,x); (5) int i,j,x22; for (i=0;i2;i+) for (j=0;j2;j+) xij=i十j; printf (xdd=d,i,j,xij); printf(n); (6) int a5=5,4,3,2,1,i=0,x=0; whi1e (i5) x=ai十x; i+; printf(x=dn,x); (7) main( ) int x=10,y=20; printf(result=dn,abc(x,y); return 0; abc(int a,int b) int c; if (b) c=a/b+a; return c; e1se return 0; (8) main( ) int x=10; int i; for (i=0;i3;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(dn,(a,b); return 0; (10) main( ) int a10=19,23,44,17,37,28,49,36,*P; P=a; printf(%dn,(P+=3)3); return 0; (11) main( ) int i=3,j=2; char *a=DCBA; printf(%c%cn,ai,aj); return 0; (12) #include fun(int x) int k; if (x = 0 | x = 1) return(3); k=x-fun(x-2); return k; main( ) printf(%dn,fun(9); return 0; (13) #include void myFunc( ); void rnain( ) int X=5; coutn In main X is : X; myFunc( ); coutn Back in main, X is :X; void myFunc( ) int X=8; coutn In myFunc, local X: X; coutn In block in myFunc , X is:X; int X=9; coutn Very local, X: ”X; coutn Out of block, in myFunc, X is: X; (14) #includef(int a)int i=0;while (ai=10)printf(%d ,ai);i+;main()int a=1,5,10,9,11,7;f(a+1);(15) #includeswap(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=%dn,*ptr1,*ptr2);printf(*ptr1=%d,*ptr2=%dn,a,b);(16) #includevoid 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%dt%dn,x,z);if (z=(y=0)x=5;x=4;printf(t%dt%dn,x,z);if (x=z=y) x=4;printf(t%dt%dn,x,z);(17) #includeint fac(int n)static int f=1;f=f*n;return(f);main()int i;for (i=1;i=5;i+)printf(%d!=%dn,i,fac(i);return;(18) #includeint fac(int n)int f=1;f=f*n;return(f);main()int i;for (i=1;i=5;i+)printf(%d!=%dn,i,fac(i);return;三、单项选择题1 一个C程序的执行是从_。(A) 本程序的main函数开始,到main函数结束(B) 本程序的第一个函数开始,到本程序文件的最后一个函数结束(C) 本程序的main函数开始,到本程序文件的最后一个函数结束(D) 本程序文件的第一个函数开始,到本程序main函数结束2 一个C语言程序是由_。(A) 一个主程序和若干个子程序组成(B) 函数组成(C) 若干个过程组成(D) 若干个子程序组成3 下面选项中,均是不合法的用户标示法的选项是_。(A)AP_0do(B)floatla0_A(C)b-agotoint(D)_123tempINT4 以下叙述正确的是_。(A) 在C程序中,每行中只能写一条语句(B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整数(C) 在C程序中,如论是整数还是实数,都能被准确无误地表示(D) 在C程序中,%是只能用于整数运算的运算符5 以下C程序的正确的运行结果是_。(注:表示空格)main()long y=-43456;printf(y=%-8ldn,y);printf(y=%-08ldn,y);printf(y=%08ldn,y);printf(y=%+8ldn,y);(A) y=-43456(B)y=-43456y=-43456y=-43456y=-0043456y=-0043456y=-43456y=+-43456(C) y=-43456(D)y=-43456y=-43456y=-0043456y=-0043456y=00043456y=-43456y=+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)!(x0)printf(%f,x)else printf(%f,-x);(B) if (x0) x=x+y;printf(%f,x); else printf(%f,-x);(C) if (x0) x=x+y;printf(%f,x);else printf(%f,-x);(D) if (x0) x=x+y;printf(%f,x);else printf(%f,-x);9 以下程序段_。x=-1;do x=x*x; while (!x);(A) 是死循环(B) 循环执行二次(C) 循环执行一次(D) 有语法错误10 执行语句for (i=1;i+4;);变量的值是_。(A)3(B)4(C)5(D)不确定11 对以下说明语句的正确理解是_。int a10=6,7,8,9,10;(A) 将5个初值一次赋给a1至a5(B) 将5个初值一次赋给a0至a4(C) 将5个初值一次赋给a6至a10(D) 因为数组长度与初值的个数不相同,所以语句不正确12 下面程序段的运行结果是_。char a=a,b,0,c,0printf(%s,c);(A)ab(B)ab(C)abc(D)abc13 在C语言中,以下正确的说法是_(A) 实参和与其对应的形参各占独立的存储单元(B) 实参和与其对应的形参占用同一个存储单元(C) 只有当实参和与其对应的形参同名时才占用同一个存储单元(D) 形参是虚拟的,不占用存储单元14 用数组名作为函数调用的实参,传递给形参的是_。(A) 数组的首地址(B) 数组第一个元素的值(C) 数组中全部元素的值(D) 数组元素的个数15 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为_。(A)自动(auto)(B)静态(static)(C)外部(extern)(D)寄存器(register)16 以下叙述中正确的是_。(A) 在程序的一行上可以出现多个有效的预处理命令行(B) 使用带参的宏时,参数的类型应与宏定义时一致(C) 宏替换不占用运行时间,只占编译时间(D) 以下定义中C R 是称为“宏名”的标示符#define C R 04517 若有以下宏定义:#define N 2#defin Y(n) (N+1)*N)则执行语句z=2*(N+Y(5);后的结果是_。(A)语句有错误(B)z=34(C)z=70(D)z无定值18 下面程序应能对两个整型变量的值进行交换。以下正确的说法是_。main()int a= 10,b=20;printf(1) a=%d,b=%dn,a,b);swap(&a,&b);printf(2) a=%d,b=%dn,a,b);swap(int p,int q)int t;t=p;p=q;q=t;(A) 该程序完全正确(B) 该程序有错,只要将语句swap(&a,&b);中的参数该为a,b即可(C) 该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可(D) 以上说法都不正确19 若有定义int a=5;下面对(1)和(2)两个语句的正确解释是_。(1)int *p=&a;(2)*p=a;(A) 语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值。(B) (1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p(C) 语句(1)在对p进行说明的同时进行初始化,使p指向a语句(2)将变量a的值赋给指针变量p(D) 语句(1)在对p进行说明的同时进行初始化,使p指向a语句(2)将变量a的值赋给*p20 若已定义char s10; 则在下面表达式中不表示s1的地址的是_。(A)s+1(B)s+(C)&s0+1(D)&s121 编译执行下列程序,结果是:_。 #inclucle main( ) int i=6;y=4;z=2; printf(%dn,i/y%z); return0; (A) 显示出错信息,不能执行。 (B) 0 (C) 1 (D) 222 以下程序的输出结果是:_。 #inclucle main( ) int x=10,y=10; printf(%d%dn,x-,-y); retum 0; (A) 10 10 (B) 9 9 (C) 9 10 (D) 10 923 以下程序的输出结果为:_。 #inclucle main( ) int x=023; printf(%dn,-x); return 0; (A) 18 (B) 22 (C) 23 (D) 19 24 不能进行+和-运算的数据类型是:_。 (A) 指针 (B) double (C) int (D) long25 下列字符序列中,不可用作C语言标识符的是:_ (A) $4568 : (B) sum (C) STUD_name (D) basic_1226 设X的值为3,则表达式(X+)+(X+)+(X+)的值是_。 (A) 10 (B) 6 (C) 12 (D) 927 设a=12,b=12345,执行语句printf(%4d,%4d,a,b)的输出结果为:_ (A) 12,123 (B) 12,12345 (C) 12,1234 (D) 12,12345628 以下程序的输出结果是:_。 main( ) int i=1,sum=0; while (i10) sum=sum+1; i+; printf(i=%d,sum=%d,i,sum);return 0; (A) i=10, sum=9 (B) i=9,sum=9 (C) i=2,sum=1 (D) 运行出现错误29 以下程序的的输出结果为:_。 #inclucle main( ) int a,b,c,x,y,z; a=10;b=2; c=!(a%b);x=!(ab); y=(a=0); z=(a=0); printf(c=%d,x=%d,y=%d,z=%dn,c,x,y,z); return 0; (A)c=0,x=1,y=l,z=0 (B) c=5,x=0,y=l,z=0 (C)c=1,x=0,y=0,z=1 (D) c=10,x=2,y=0,z=130 执行下列程序段后,xy的值是:_。 int *pt,xy; xy=270; pt=&xy; xy=*pt+30; (A) 270 (B) 240 (C) 330 (D) 30031 用scanf(%d,%d,&a,&b)输人数据时,下面输入法正确的是:_ (A) 123,4 (B) 123 4 (C) 123;4 (D) 123:4 32 以下程序的输出结果是:_。 point(char *pt); main( ) char b4=a,c,s,f, *pt=b; point(pt); printf(%cn,*pt); return 0; point(char *P) P+=3; (A) s (B) c (C) f (D) a33 标有* *的语句的执行次数是:_。 int y,i; for(i=0;i20;i+) if (i%2=0) continue; y=y+i;/* */ (A) 20 (B) 19 (C) 10 (D) 9 34 以下程序的输出结果是:_。 #inclucle sub(x,y,z) int x,y,*z; *z=y-x; main( ) int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(%d,%d,%dn,a,b,c); return 0; (A) -5,-12,-17 (B) -5,-3,-2 (C) -5,-12,-7 (D) -5,-2,-735 以下程序的输出结果为:_。 main( ) char cl=a,c2=b,c3=c;printf(a%cb%ctc%cn,c1,c2,c3); return 0; (A) abc abc abc (B) aabb cc (C)a b c (D) aaaa bb36 经过以下语句定义后,表达式z+=xy?+x:+y的值是:_。 int x=1,y=2,z=3; (A) 2 (B) 3 (C) 6 (D) 5 37 在下列各m的值中,能使m%3=2m%5=3&m%7=2为真的是:_ (A) 8 (B) 23 (C) 17 (D) 638 下列语句执行后的结果是:_。 y=5; P=y; x=*P+; (A) x=5,y=5 (B) x=5,y=6 (C) x=6,y=5 (D) x=6,y=639 以下程序的输出结果是:_。 #inclucle int a=1,3,5,7; main( ) int n; int *P=a; for (n=0;nname,P-sex,P-age); return 0; (A) WangMin,F,20 (B) ZhangFun,M,19 (C) LiLin,F,19 (D) LiLin,M,18 41 以下叙述中不正确的是:_。 (A) 一个好的程序应该有详尽的注释 (B) C程序中的#include和#define均不是C语句 (C) 在C程序中,赋值运算符的优先级最低 (D) 在C程序中,j+;是一条赋值语句。42 以下各选项中,合法的C语言关键字是:_。 (A) integer (B) Char (C) short (D) Long43 设i和x都是int类型,则for循环语句for (i=0,x=0;ic);b=a;a=c;c=b; (A) 1 2 3 (B) 3 2 1 (C) 1 3 3 (D) 1 3 245 下面的程序中循环语句能执行多少次循环? int x=10; do x=x-1; while(x=8); (A) 1次 (B) 3次 (C) 2次 (D) 4次46 组成C语言程序的是:_。 (A) 子程序 (B) 过程 (C) 函数 (D) 主程序和子程序47 若有代数式ae/bc,则错误的c语言表达式是:_ (A) abc*e (B) a*eb*c (C) a*ebc (D) a*ecb ,48 若有以下定义,则对数组元素的正确引用是:_。 int a5,*P=a (A) *(P+5) (B) *P+2 (C) *(a+2) (D) *&a5四、判断对错1. 所有的预处理命令都是以符号#开头的,必须放在程序的开头部分.()2. 所有的C语言程序都必须有一个名为main的主函数。()3. 函数调用自己本身称为递归调用,或者说,自己定义自己。 ()4. Int,a15,char都是合法的标识符。()5. b和b是等同的。()6. C语言本身没有输入输出语句。()7. 当说明一个结构体变量时,系统分配给它的内存是成员中占内存量最大者所需的容量()8. C语言共用体类型变量在程序运行期间所有成员一直驻留在内存中。()9. 系统的标准输入文件是指硬盘。()10. 在C语言中,如果被调用的函数的定义出现在主调用函数之前,在函数原型可以省略。()五、求下列表达式或变量的值(其中变量都为int型) 153&!(74) 值= 21020)|14!=16 值= 3x=5; x+=7; 求x的值。 x= 4x=6; x2; 求x的值。 x= 55&7|6 值= 65*32%4 值= 7x=4; y=x6? 5:8 求y的值。 y= 8x=5; y=(x-,z=x+1,x*z); 求y的值。 y= 9x=3; y=+x; 求x和y的值。 x= y= 10x=7; y=x-; 求x和y的值。 x= y=六、填空题1. 若x和a均是int 型变量,则计算表达式(1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年2月养老护理员初级模考试题+答案
- 2025年全国叉车操作A证考试题库(含答案)
- 蒲江保洁服务知识培训班课件
- 蒲城县医院急救知识培训课件
- 葡萄酒知识培训课程课件
- 常用日语考试招生简章及答案
- 常德社工考试真题试卷及答案
- 叉车培训理论考试题库及答案
- 线性运算题目及答案
- 2025年餐厅食品供应商合同标准版模板
- 热控专业培训课件
- 人教版九年级化学下册全册教案
- CRH380B型动车组制动系统
- 植入式静脉给药装置(输液港)-中华护理学会团体标准2023
- SH石油化工金属管道布置设计规范
- 外国文学史第二版马工程课件 第四章 17世纪文学
- 皮肤的结构与生理功能
- 院感培训试题及
- 开发区财政管理改革研究
- 三维数字城市建模及数据获取课件
- 电气照明系统课件
评论
0/150
提交评论