《C语言学习知识程序设计试题.集及其规范标准答案.doc》由会员分享,可在线阅读,更多相关《C语言学习知识程序设计试题.集及其规范标准答案.doc(177页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章 基础知识一.填空1. 每个C程序都必须有且仅有一个_ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、_、 链接 、加载和执行。3. 软件是程序,以及_、使用和维护所需要的所有文档。4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_”。5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和_两大类。6. C语言是由_组成的。7. C语言的函数可分为主函数main、标准库函数和_。8. 一个函数是由两部分组成的,即:_和 函数体。9. 编译是将C语言所编写的源程序_成机器代码,也称为建立目标代码程序的过程。10. 程序是由某种程序设计
2、语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_。 11. 机器语言是以_形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。12. 与机器语言相比,使用汇编语言来编写程序可以用_来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。13. 在编译程序之前,凡以_开头的代码行都先
3、由预处理程序预处理。 14. C程序的执行均是由执行_开始。15. 函数体即为包含在 内的部分。它分为_和为完成功能任务由若干个C语句组成的执行部分。 16. C语言程序中一条简单语句是以_字符作为结束符的。 17. C语言是结构化、_的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_没有低级语言高。 20. 第一个系统体现结构化程序设计思想
4、的教学工具语言是_语言。 解答:1. main()2. 编译3. 开发4. 指令序列5. 高级语言6. 函数7. 自定义函数8. 函数首部9. 翻译10. 应用软件11. 二进制代码12. 助记符13. #14. main函数15. 声明部分16. ;(或分号)17. 模块化18. 翻译19. 执行速度20. PASCAL二.阅读程序写结果解答:三.补充程序解答:四.改错题解答:五.编程一解答:六.编程二解答:第二章 常量、变量和表达式一.填空1. 以16位计算机为例,若定义long int a; 则变量a占_个字节的内存空间。2. 以16位计算机为例,若定义double a; 则变量a占_
5、个字节的内存空间。3. 以16位计算机为例,若定义long double; 则变量a占 _ 个字节的内存空间。4. 在_ 位机,int型占4个字节。5. C语言的数据类型有:基本数据类型、构造数据类型、枚举类型、_ 、空类型。 6. 在C语言中,基本数据类型有:_ 。 7. 整型常量046转换为十进制数等于_ 。 8. 整型常量054转换为十进制数等于_ 。9. 整型常量0x125转换为十进制数等于 _。 10. 整型常量0x7C转换为十进制数等于 _。 11. 整型常量39转换为八进制等于 _。12. 实数473.468写成规范化指数形式,则应为 _。 13. 实数0.0453写成规范化指数
6、形式,则应为 _。 14. 将0x123转换为二进制等于 _。 15. 字符A表示成十六进制等于 _。 16. 在C语言中,称代表常量的标识符为 _。 17. 语言中是用编译预处理命令_ 来定义符号常量18. 在C语言中,以反斜杠符()开头,后跟字符的字符序列,称之为 _ ,主要用来表示控制及不可见的字符或者一些图形符号19. 语句printf(106)执行的结果输出是 _。 20. 语句printf(“b”)执行的结果输出是_。 21. 语句printf(“b”)执行的结果输出是 _。 22. 语句printf(102)执行的结果输出是 _。 23. 若有char ch1; ch1=a+4;
7、 则语句printf(%c,x)的输出结果为 _。 24. 字符串常量“Hello, everyone!”占据的内存空间为_ 个字节25. 字符串常量“Hello,Bob!”占据的内存空间为 _ 个字节26. 十进制整型常量由09个数据组成,但不能以_ 开始,没有小数部分27. 十六进制常量由09和_ 组成28. unsigned long类型常量通常以_ 为后缀29. 实型常量通常有小数形式和_ 两种表达方式30. 语言中是用编译预处理命令_ 来包含其他源文件31. 为了表示字符串的结束,系统自动在字符串的最后加一个_ ,但不被输出32. C语言中,其值可被改变的量称为变量,它具有三个基本要
8、素:变量名、_ 和变量值33. C语言规定,变量的标识符只能由字母、数字和下划线组成,且不能以_ 开头。34. 在16位机中,sizeof(“hellon”)等于 _。 35. 在16位机中,printf(“hello”)等于 _。 36. 字符变量在内存中占用_ 个字节的存储空间。37. 若有定义int x=27, y=6; 则表达式 x/y的值为 _。38. 若有定义int x=47, y=8; 则表达式 x%y的值为 _。39. 若有定义char ch1=A,ch2,ch3; 执行ch2=ch1+; ch3=+ch1; printf(ch1=%c, ch2=%c,ch1,ch2); 则输
9、出为 _。 40. 若有定义char ch1=A,ch2,ch3; 执行ch2=ch1+; ch3=+ch1; printf(ch2=%c, ch3=%c,ch2,ch3); 则输出为 _。 41. 若有定义int i=5, j, k; 执行j=i-; k=-i; printf(i=%d, j=%dn, i, j); 则输出为 _。 42. 表达式 (int)(13.7+25.6)/4%5 的值是 _。 43. 表达式 3.6-5/2+1.2+5%3 的值是_。 44. 表达式54%10/2+4.0*(8/5) 的值是 _。 45. 若定义int x; double b=5.45; 执行x=b
10、后,则x的值为_。 46. 若定义int y; char c=A; 执行y=c后,则y的值为 _。 47. 若定义 int a=8; float b=2.5; 则a/(int)(b)的值为 _。 48. 若a=5,则执行a*=7-3语句后,a的值是 _。 49. 若int a=1,b=0,c=4,d=2; 则表达式(ab ? a:b)&(c-d)的值为_。 50. 已知a = 0 ,表达式 a = 1?b = 1:b = 0; 执行后,b的值是 _。 51. 若定义int m=7,n=12; 则表达式n%=m-m%5的值是 _。 52. 若定义int a=8; float b=4.5;执行a*
11、=a/=a-b后,a的值为 _。 53. int a=2; !a+的值为 _。 54. int a=0; !a+&+a的值为 _。 55. int a=7;float b=4.5;则printf(“%d”,a*=a/=a-b)的值为 _。 56. int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值为 _。 57. #define Max(a,b) (a)-(b)&0x80000000)?(a):(b),int a=2,b=6;printf(“%dn”,Max(a,b)的值为_。 58. 在32位机中,int a=4,b=7; printf(
12、“%0x”,a-b)的值为:_。 59. int x,y,z; x=y=2;z=3;y=x+-1;printf(“%d,%d”,x,y)的值为: _。 60. int i=2,j; printf(“%d”,j=i1)的值为:_ 解答:1. 02. 43. 104. 325. 指针类型6. int、float、double、char7. 388. 449. 29310. 12411. 04712. 4.734680e+00213. 4.530000e-00214. 10010001115. x41/41H16. 符号常量17. define18. 转义字符常量19. F20. b21. b22.
13、 B23. e24. 1625. 1126. 027. AF28. U29. 指数形式30. #include31. “0”32. 变量类型33. 数字34. 735. “hello”36. 137. 438. 739. ch1=C, ch2=A40. ch2=A, ch3=C41. i=3, j=542. 443. 4.80000044. 7.00000045. 546. 6547. 448. 2049. 150. 151. 252. 453. 054. 055. 456. 2.50000057. 258. fffffffd59. 3,160. 0二.阅读程序写结果解答:三.补充程序解答:四
14、.改错题解答:五.编程一解答:六.编程二解答:第三章 顺序结构一.填空1. C语言的语句可分为5类,它们是:控制语句、_、函数语句、符合语句和空语句。2. 常用于字符输入的函数为:_ 。3. 常用于字符输出的函数为:_。4. 常用于字符串输入的函数为:_。5. 常用于字符串输出的函数为:_。6. 格式输入函数的一般形式为:_ 。7. 格式输出函数的一般形式为:_ 。8. printf和scanf是标准的库函数,它们的函数原型在头文件_中。9. 有char ch,则从键盘给ch赋值的格式输入语句为:_。10. 如果要输出字符串常量“HelloWord!”,则格式输出语句为:_。11. 设有定义:
15、long x=-123456L;,请写出能够正确输出变量x值的语句_ 。12. 若有int a,b; ,想通过scanf(%d%d,&a,&b);输入语句给a赋于1,给b赋于2,则从键盘输入数据的形式是_。13. 若有int i,j; scanf(i=%d,j=%d;&i,&j); ,要求给i赋10,给j赋20,则应该从键盘输入_。14. 已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,请写出正确的输入语句_ 。15. 有int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn,m,n,p);
16、若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是_。16. 有 int a; float b, c; scanf(%2d%3f%4f,&a,&b,&c); printf(na=%d, b=%f, c=%fn, a, b, c);,若运行时从键盘上输入9876543210,则程序的输出结果是_。17. 有 int m=0256,n=256; 则 printf(%o %on,m,n); 的输出结果是_ 。18. 有int x=102,y=012; , 则printf(“%2d,%2dn”,x,y); 的输出结果是_ 。19. 有定义和语句:int a
17、; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); , 则printf(%d %d %3.1f %3.1fn,a,c,f,x); 的输出结果是_ 。20. 若有定义和语句:int m=0xabc,n=0xabc; m-=n; 则printf(%on,m);的输出结果是_。21. 若有int m=32,n=032; ,则printf(%d,%xn,m,n); 执行后输出结果是_ 。22. 若有 int a=1234; ,则 printf(%2dn,a); 的输出结果是_ 。23. 若变量已正确说明为float类型,要通过语句scanf(“
18、%f %f %f ”,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是_ 。A) 10 2233 B) 10.0,22.0,33.0C) 10.0 22.0 33.0 D) 10 22 3324. 若有 int x=3,y=1; 则printf(%d %dn,x+,y+2); 的输出结果是_ 。25. 若有定义和语句:double d; float f; long l; int i; i=f=l=d=20/3; 则 printf(%d %ld %f %f n, i,l,f,d);的输出结果是(小数点后只写一位) _。26. 以下说法中正确的是 _。A)
19、#define和printf都是C语句B) #define是C语句,而printf不是C) printf是C语句,但#define不是D) #define和printf都不是C语句27. 若有 int k=17; ,则 printf(%d,%o,%x n,k,k,k);的输出结果是_ 。28. 以下叙述中正确的是_ 。A) 输入项可以是一个实型常量,如:scanf(%f,3.5);B) 只有格式控制,没有输入项,也能正确输入数据到内存,例如:scakf(a=%d,b=%d);C) 当输入数据时,必须指明变量地址,例如:scanf(%f,&f);29. 若有定义和语句:int u=010,v=0
20、x10,w=10;则printf(%d,%d,%dn,u,v,w); 输出结果是_。30. 若有int a=1,b=4,c=2; float x=10.5, y=4.0, z; z=(a+b)/c+sqrt(double)y)*1.2/c+x; ,则printf(%fn,z); 的输出结果是_ 。31. 若有int a=2,c=5; ,则printf(a=%d,b=%dn,a,c);的输出结果是_ 。32. 有char c; int n=100; float f=10; double x; x=f*=n/=(c=50); 则printf(%d %fn,n,x); 的输出结果是_。33. 有in
21、t i=0,j=0,k=0; scanf(%d%*d%d,&i,&j,&k); printf(%d%d%dn,i,j,k); 若从键盘输入:10 20 30。输出结果是_。34. 若有int a,b,c; a=25; b=025; c=0x25;,则printf(%d %d %dn,a,b,c); 的输出结果是_。35. 有以下语句段int n1=10,n2=20; printf(“_”,n1,n2); 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。n1=10 n2=2036. 若有语句int i=-19,j=i%4; 则printf(%dn,j);的输出结果是_。37.
22、有int a=0; a+=(a=8); 则printf(%dn,a);的输出结果是_。38. 有int a=1, b=2; a=a+b; b=a-b; a=a-b;则printf(“%d,%dn”, a, b );的输出结果是_。39. 有unsigned short a=65536; int b;,则printf(“%dn”,b=a);的输出结果是_。40. 语句printf(10289n);的数据结果为:_ 。解答:1. 表达式语句2. getchar( )3. putchar( )4. gets( )5. puts( )6. scanf(“格式控制字符串”,地址表列);7. printf
23、(“格式控制字符串”,输出表列);8. stdio.h9. scanf (“%c”,&ch);10. printf (“%s”,HelloWord!);或者:printf (“HelloWord!”);11. printf(“x=%1dn”,x);12. 1 2 或者 1 213. i=10,j=2014. scanf(“%d,%d,%d”,&i,&j,&k);15. m=123n=456p=78916. a=98, b=765.000000, c=4321.00000017. 256 40018. 102,1019. 1 65 1.5 6.520. 021. 32,1a22. 123423.
24、 B24. 3 325. 6 6 6.0 6.026. D27. 17,21,1128. C29. 8,16,1030. 13.70000031. a=%d,b=%d32. 2 20.00000033. 1030034. 25 21 3735. n1=%dnn2=%d36. -337. 1638. 2,139. 040. B89二.阅读程序写结果解答:三.补充程序解答:四.改错题解答:五.编程一解答:六.编程二解答:第四章 选择结构一.填空1. 在if, while, case, do, else 等关键字中,用于选择结构的有( ).2. 已知 a = 1; 那么 if ( a = 2) pr
25、intf(%d, 2); else printf(%d, 1); 的输出结果是( ).3. 已知 char a = A; 那么 if ( a 65) printf(%s, bigger); else printf(%s, smaller); 的输出结果是( ).4. 表示“x y z”的C语言表达式是 ( )。5. 在C语言中,用于实现选择结构的语句有( )语句和( ) 语句。6. 判断两个浮点型变量x和y是否相等一般用:if( b?a:cd?a:d的结果为( ) 。9. 表达式98 & 8 & 31 & (98 - a)的值为( )。10. 若int a = 3; 则表达式 (a 2)& !
26、 (D 69) 的值为( )。解答:1.2.3.4.5.6.7.8.9.10.二.阅读程序写结果1. #include void main( ) int x,y,t; x=7;y=9; if(xy) t=x;x=y;y=t; printf(%d,%dn , x,y ); 2. #include void main( ) int x=1,a=2,b=3; switch(x) case 1: a-; break; case 2: b+; break; case 3: a+;b+; printf(na=%d,b=%dn,a,b); 3. #include void main( ) char ch1
27、= E; if(ch1 = A) ch1+; else ch1+=32; printf(ch1 = %cn, ch1); 4. #include void main( ) int x,y,t; x=5;y=3; if(xy) t=x;x=y;y=t; printf(%d,%dn , x,y ); 5. #include int main() int a,b,c,m; printf(Enter three integers:); scanf(%d%d%d,&a,&b,&c); if(a=b) m=a; else m=b; if(cm) m=c; printf(m=%dn,m); return 0
28、; 输入:21 22 23 6. #include int main() char ch1=a,ch2=B,ch3=E; if(ch1ch2) if(ch2ch3) ch3+; else -ch3; printf(ch3=%cn,ch3); return 0; 7. #include int main() float x,y; scanf(%f,&x); switch(int)x/10) case 0: y=1.0; printf(y=%fn,y);break; case 1: y=2*x+1; printf(y=%fn,y);break; case 2: y=3*x*x+2; printf(
29、y=%fn,y);break; default: printf(No definition.n); return 0; 输入:15.38. #include int main() char ch1=A,ch2=B; switch(ch1) case A: switch(ch2) case B: printf(Good!n);break; case A: printf(Better!n);break; case B: printf(Best!n); break; return 0; 9. #include void main() float score; score = 100; if (sco
30、re60) printf(En); else switch( ( int ) score / 10 ) case 10: case 9: printf(An); case 8: printf(Bn); case 7: printf(Cn); break; case 6: printf(Dn); break; default: printf(Errorn); 10. #include void main() int i=0,a=2; if(i=0) printf(“*”); else printf(“$”); printf(“*”); 11. #includevoid main() int m=
31、10,n=0,p=4,q=20; if (m) if (n) q=15-m; else q=25+m; else if (p) q=q+p; printf(“q=%dn”,q); 12. #includevoid main() int a=1,b=0; switch(a) case 1: switch (b) case 0: printf(*0*); break; case 1:printf(*1*);break; case 2: printf(*2*);break; 13. #includeint main( ) int a=2,b=7,c=5; switch (a0) case 1: switch (b0) case 1: printf(); break ; case 2: printf(!); break ; case 0: switch (c=5) case 1: printf(*) ; break ; default : printf(#) ; break ; default : printf(&); printf(n); return 0; 14. #includeint main() int a=0,b=1,c=0,d=20; if(a) d=d-10; el
限制150内