1、2022年电大考试C语言程序设计的试题及答案大家在考程序员时,C语言程序设计大家有了解吗?下面瑞文网小编为大家分享了C语言程序设计的试题及答案,供大家参考。第一章 基础知识一、填空1. 每个 C 程序都必须有且仅有一个_ 函数。2. C 语言程序开发到执行通常要经过 6 个阶段即编辑、预处理、_、 链接 、加载 和执行。3. 软件是程序,以及_、使用和维护所需要的所有文档。4. 国标中规定: “计算机程序是按照具体要求产生的适合于计算机处理的_”。5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和_两大类 。6. C 语言是由_组成的。7. C 语言的函数可分为主函数 mai
2、n、标准库函数和_。8. 一个函数是由两部分组成的,即:_和 函数体。9. 编译是将 C 语言所编写的源程序_成机器代码, 也称为建立目标代码程序的过程。10. 程序是由某种程序设计语言编制出来, 体现了编程者的控制思想和对计算机执行操 作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作 ,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动 化(OA) 、管理信息系统(MIS) 、人工智能、电子商务、网络互联等等应用而开发的软件程 序,统称为_。11. 机器语言是以_形式表示的机器基本指令的集合, 是计算机系统唯一不需要翻 译可以直
3、接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_来表示指令的操作码和操作 对 象,也可以用标号和符号来代替地址、常量和变量。13. 在编译程序之前,凡以_开头的代码行都先由预处理程序预处理。14. C 程序的执行均是由执行_开始。 15. 函数体即为包含在 内的部分。它分为_和为完成功能任务由若干个 C 语句 组成的执行部分。16. C 语言程序中一条简单语句是以_字符作为结束符的。17. C 语言是结构化、_的程序设计语言。18. 由于计算机硬件不能直接识别高级语言中的语句, 因此, 必须经过 “_程序” , 将用高级语言编写的程序翻译成计算机硬件所能识别
4、的机器语言程序方可执行。19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。 所 以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_没有低级语言高。20. 第一个系统体现结构化程序设计思想的教学工具语言是_语言。解答: 1. main() 2. 编译 3. 开发 4. 指令序列 5. 高级语言 6. 函数 7. 自定义函数 8. 函数首部 9. 翻译 10. 应用软件 11. 二进制代码 12. 助记符 13. # 14. main 函数 15. 声明部分 16. ;(或分号) 17. 模块化 18. 翻译 19. 执行速度20. PASCAL 二.阅读程序
5、写结果 解答: 三.补充程序 解答: 四.改错题 解答: 五.编程一 解答: 六.编程二 解答: 第二章 常量、变量和表达式 一.填空 1. 以 16 位计算机为例,若定义 long int a; 则变量 a 占_个字节的内存空间。 2. 以 16 位计算机为例,若定义 double a; 则变量 a 占_ 个字节的内存空间。3. 以 16 位计算机为例,若定义 long double; 则变量 a 占 _ 个字节的内存空间。 4. 在_ 位机,int 型占 4 个字节。 、空类型5. C 语言的数据类型有:基本数据类型、构造数据类型、枚举类型、_ 。6. 在 C 语言中,基本数据类型有:_
6、7. 整型常量 046 转换为十进制数等于_ 8. 整型常量 054 转换为十进制数等于_ 。 。9. 整型常量 0x125 转换为十进制数等于 _。 10. 整型常量 0x7C 转换为十进制数等于 11. 整型常量 39 转换为八进制等于 _。 _。 _。12. 实数 473.468 写成规范化指数形式,则应为13. 实数 0.0453 写成规范化指数形式,则应为 _。14. 将 0x123 转换为二进制等于_。15. 字符A表示成十六进制等于 _。 16. 在 C 语言中,称代表常量的标识符为 _。 17. C语言中是用编译预处理命令_ 来定义符号常量 ,18. 在 C 语言中,以反斜杠符
7、()开头,后跟字符的字符序列,称之为 _ 主 要用来表示控制及不可见的字符或者一些图形符号 19. 语句 printf(106)执行的结果输出是 _。 20. 语句 printf(“b”)执行的结果输出是_。 21. 语句 printf(“b”)执行的结果输出是 _。 22. 语句 printf(102)执行的结果输出是 _。 23. 若有 char ch1; ch1=a+4; 则语句 printf(%c,x)的输出结果为 _。 24. 字符串常量“Hello, everyone! ”占据的内存空间为_ 25. 字符串常量“Hello,Bob!”占据的内存空间为 _ 26. 十进制整型常量由
8、09 个数据组成,但不能以_ 27. 十六进制常量由 09 和_ 28. unsigned long 类型常量通常以_ 29. 实型常量通常有小数形式和_ 30. C语言中是用编译预处理命令_ 组成 为后缀 两种表达方式 来包含其他源文件 个字节 个字节 开始,没有小数部分31. 为了表示字符串的结束,系统自动在字符串的最后加一个_,但不被输出32. C 语言中,其值可被改变的量称为变量,它具有三个基本要素:变量名、_ 和变量值 33. C 语言规定,变量的标识符只能由字母、数字和下划线组成,且不能以_ 头。 开34. 在 16 位机中,sizeof(“hellon”)等于 _。 35. 在
9、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); 则输出为 _。 40. 若有定义 char ch1=A,ch2,ch3; 执行 ch2=ch1+; ch3=+ch1; printf(ch2=%c, ch3=%
10、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 后,则 x 的值为_。 46. 若定义 int y; char c=A; 执行 y=c 后,则 y 的值为 47. 若定义 int a=8
11、; 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*=a/=a-b 后,a 的值为 _。 53. int a=2; !a+的值为 _。 _。54. int
12、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”,M ax(a,b)的值为 _。 58. 在 32 位机中,int a=4,b=7; printf(“%0x”,a-b)的值为:_。 59. int x,y,z; x=y=2;z=3;y=
13、x+-1;printf(“%d,%d”,x,y)的值为: _。60. int i=2,j; printf(“%d”,j=i1)的值为:_ 解答: 1. 0 2. 4 3. 10 4. 32 5. 指针类型 6. int、float、double、char 7. 38 8. 44 9. 293 10. 124 11. 047 12. 4.734680e+002 13. 4.530000e-002 14. 10010001115. x41/41H 16. 符号常量 17. #define 18. 转义字符常量 19. F 20. b 21. b 22. B 23. e 24. 16 25. 11
14、26. 0 27. AF 28. U 29. 指数形式 30. #include 31. “0” 32. 变量类型 33. 数字 34. 7 35. “hello” 36. 137. 4 38. 7 39. ch1=C, ch2=A 40. ch2=A, ch3=C 41. i=3, j=5 42. 4 43. 4.800000 44. 7.000000 45. 5 46. 65 47. 4 48. 20 49. 1 50. 1 51. 2 52. 4 53. 0 54. 0 55. 4 56. 2.500000 57. 2 58. fffffffd59. 3,1 60. 0二.阅读程序写结果
15、 解答:三.补充程序 解答:四.改错题 解答:五.编程一 解答:六.编程二 解答:第三章 顺序结构一、填空1. C 语言的语句可分为 5 类,它们是:控制语句、_、函数语句、符合语句和空 语句。2. 常用于字符输入的函数为:_ 。3. 常用于字符输出的函数为:_。4. 常用于字符串输入的函数为:_。5. 常用于字符串输出的函数为:_。 6. 格式输入函数的一般形式为:_ 。 7. 格式输出函数的一般形式为:_ 。 8. printf 和 scanf 是标准的库函数,它们的函数原型在头文件_中。 9. 有 char ch,则从键盘给 ch 赋值的格式输入语句为:_。 10. 如果要输出字符串常量
16、“HelloWord! ” ,则格式输出语句为:_。 11. 设有定义: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,请写出正确的输入语句_
17、 。 15. 有 int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn,m,n,p); 若想 从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456,p 中的值为 789,则正确的输入是 _ _。 16. 有 int a; float b, c; %fn, a, b, c); scanf(%2d%3f%4f,&a,&b,&c); printf(na=%d, b=%f, c=, 若 运 行 时 从 键 盘 上 输 入 9876543210 , 则 程 序 的 输 出 结 果 是 _ _。 17. 有 int m=0256,n
18、=256; 则 printf(%o %on,m,n); 的输出结果是_ _ 。 18. 有 int x=102,y=012; , 则 printf(“%2d,%2dn”,x,y); 的输出结果是_ _ 。 19. 有定义和语句:int a; 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
19、 m=32,n=032; ,则 printf(%d,%xn,m,n); 执行后输出结果是_ _ 。 22. 若有 int a=1234; ,则 printf(%2dn,a); 的输出结果是_ 。 23. 若变量已正确说明为 float 类型,要通过语句 scanf(“%f %f %f ”,&a,&b,&c);给 a 赋于 1 0.0,b 赋予 22.0,c 赋予 33.0,不正确的输入形式是_ 。 A) 10 2233 B) 10.0,22.0,33.0 C) 10.0 22.0 33.0 D) 10 22 3324. 若有 int x=3,y=1; 则 printf(%d %dn,x+,y+
20、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) #define 和 printf 都是 C 语句 B) #define 是 C 语句,而 printf 不是 C) printf 是 C 语句,但#define 不是 D) #define 和 printf 都不是 C 语句 27. 若有 int k=17; ,则 printf(%d,%o,%x
21、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=0x10,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
22、.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 %f n,n,x); 的输出结果是_。 33. 有 int 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
23、,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=20 36. 若有语句 int i=-19,j=i%4; 则 printf(%dn,j);的输出结果是_。 37. 有 int a=0; a+=(a=8); 则 printf(%dn,a);的输出结果是_。 38. 有 int a=1, b=2; a=a+b; b=a-b; a=a-b;
24、则 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(“格式控制字符串” ,输出表列); 8. stdio.h 9. scanf (“%c” ,&ch); 10. printf (
25、“%s” ,HelloWord!); 或者:printf (“HelloWord!”); 11. printf(“x=%1dn”,x); 12. 1 2 或者 1 2 13. i=10,j=20 14. scanf(“%d,%d,%d”,&i,&j,&k); 15. m=123n=456p=78916. a=98, b=765.000000, c=4321.000000 17. 256 400 18. 102,10 19. 1 65 1.5 6.5 20. 0 21. 32,1a 22. 1234 23. B 24. 3 3 25. 6 6 6.0 6.0 26. D 27. 17,21,11
26、 28. C 29. 8,16,10 30. 13.700000 31. a=%d,b=%d 32. 2 20.000000 33. 10300 34. 25 21 37 35. n1=%dnn2=%d 36. -3 37. 1638. 2,1 39. 0 40. B89 二.阅读程序写结果 解答: 三.补充程序 解答: 四.改错题 解答: 五.编程一 解答: 六.编程二 解答: 第四章 选择结构 一.填空 1. 在 if, while, case, do, else 等关键字中,用于选择结构的有( ). 2. 已知 a = 1; 那么 if ( a = 2) printf(%d, 2); e
27、lse 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( 7. 设有程序段: t=6;a=7;b=8; if(a=b) t=a;,这段程序执行后,t 的结果是( 。 8. 设 a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d 的结果为
28、( 9. 表达式 98 & 8 & 31 & (98 - a)的值为( 10. 若 int a = 3; 则表达式 (a 2)& ! (D 69) 的值为( )。 )。 ) 。 )语句和( )。 ) 语句= 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 integer
29、s:); scanf(%d%d%d,&a,&b,&c); if(ach2) if(ch2ch3) else -ch3; printf(ch3=%cn,ch3); return 0; ch3+;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(y=%fn,y);break; default: printf(No
30、definition.n); return 0; 输入:15.3 8. #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 (score0) case 1: switch (b12 ? x + 10 :
31、 x - 12; return 0; 输入:12 17. #include int main() float x, y; char op; double r; scanf(%c%f%f,&op,&x,&y); switch(op) case +: r = x + y; break; case -: r = x - y; break; case *: r = x * y; break; case /: r = x / y; break; printf(%.1f, r); return 0; 输入:3.5 18. #include stdio.h void main( ) int a=7; if(
32、a9 | a10) a=a%3; printf(a=%d, a); printf(%dn, y);a=a/3;else19. #include void main() int a=20; switch(a%3) case 0: printf(0); case 1: printf(1); case 2: printf(2); default: printf(3); printf(4); 20. #include void main() int a=2,b=5,c=8,t; if ( a b ) t = a; a = b; b = t; if ( b c ) t = b; b = c; c = t
33、; if ( a b ) t = a; a = b; b = t; printf( %d,%dn, a+, -c ); 解答: 1. 运行结果: 9,7 2. a=1,b=3 3. ch1= F 4. 3,5 5. m=21 6. ch3=D 7. y=31.600000 8. Good! Best! 9. A BC 10. * 11. q=35 12. *0*2* 13. *& 14. d=20 15. *1* 16. 0 17. 0.6 18. a=2 19. 234 20. 8,1 三.补充程序 1. 根据输入字符的 ASCII 码来判别字符的类别。由 ASCII 码表可知 ASCII
34、值小于 32 的为控制 字 符。 在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母, 在“a”和“z”之 间为小写字母,其余则为其它字符。 #includestdio.h #includestring.h int main() char c; printf(input a character: ); _ if(c=a&cb) _ _ else max=b;min=a; _ max=c; if(minc)_ printf(max=%dnmin=%d,max,min); return 0; 4. #includestdio.h int main() int a; printf(input integer number: ); scanf(%d,&a); _