C语言程序设计试题集.doc
. .一填空根底知识1. 每个C程序都必须有且仅有一个_ 函数。2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、_、 、加载和执行。3. 软件是程序,以及_、使用和维护所需要的所有文档。4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_。5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和_两大类。6. C语言是由_组成的。7. C语言的函数可分为主函数main、标准库函数和_。8. 一个函数是由两局部组成的,即:_和 函数体。9. 编译是将C语言所编写的源程序_成机器代码,也称为建立目标代码程序的过程。10.程序是由某种程序设计语言编制出来,表达了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化OA、管理信息系统MIS、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_。11. 机器语言是以_形式表示的机器根本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。12. 与机器语言相比,使用汇编语言来编写程序可以用_来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。13.在编译程序之前,凡以_开头的代码行都先由预处理程序预处理。14. C程序的执行均是由执行_开场。15.函数体即为包含在 内的局部。它分为_和为完成功能任务由假设干个C语句组成的执行局部。16. C语言程序中一条简单语句是以_字符作为完毕符的。17.C语言是构造化、_的程序设计语言。18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_程序,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。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常量、变量和表达式1. 以16位计算机为例,假设定义long int a; 那么变量a占_个字节的内存空间。2. 以16位计算机为例,假设定义double a; 那么变量a占_ 个字节的内存空间。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写成规X化指数形式,那么应为 _。 13. 实数0.0453写成规X化指数形式,那么应为 _。 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; 那么语句printf("%c",x)的输出结果为 _。 24. 字符串常量“Hello, everyone!占据的内存空间为_ 个字节25. 字符串常量“Hello,Bob!占据的内存空间为 _ 个字节26. 十进制整型常量由09个数据组成,但不能以_ 开场,没有小数局部27. 十六进制常量由09和_ 组成28. unsigned long类型常量通常以_ 为后缀29. 实型常量通常有小数形式和_ 两种表达方式30. 语言中是用编译预处理命令_ 来包含其他源文件31. 为了表示字符串的完毕,系统自动在字符串的最后加一个_ ,但不被输出32. C语言中,其值可被改变的量称为变量,它具有三个根本要素:变量名、_ 和变量值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); 那么输出为 _。 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后,那么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; 那么表达式(a>b ? 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 a=0; !+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 MM(a,b) (a-b)?a:b int a=2,b=6;printf(“%dn,MM(a,b)的值为_。 58. 在32位机中,int a=4,b=7; printf(“%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=i<1)的值为:_ 解答:1. 42. 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. B23. e24. 1625. 1126. 027. AF28. U29. 指数形式30. #include31. “032. 变量类型33. 数字34. 735. “hello36. 137. 438. 739. ch1=C, ch2=A40. ch2=A, ch3=C41. i=3, j=542. 443. 4.80000044. 6.00000045. 546. 6547. 448. 2049. 150. 151. 252. 453. 054. 055. 456. 2.50000057. 258. fffffffd59. 3,160. 0顺序构造1. C语言的语句可分为5类,它们是:控制语句、_、函数语句、符合语句和空语句。2. 常用于字符输入的函数为:_ 。3. 常用于字符输出的函数为:_。4. 常用于字符串输入的函数为:_。5. 常用于字符串输出的函数为:_。6. 格式输入函数的一般形式为:_ 。7. 格式输出函数的一般形式为:_ 。8. printf和scanf是标准的库函数,它们的函数原型在头文件_中。9. 有char ch,那么从键盘给ch赋值的格式输入语句为:_。10. 如果要输出字符串常量“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,请写出正确的输入语句_ 。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; 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; 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(“%f %f %f ,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是_ 。A) 10 <回车>22<回车>33<回车> B) 10.0,22.0,33.0<回车>C) 10.0<回车> 22.0 33.0<回车> D) 10 22<回车> 33<回车>24. 假设有 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) #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=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.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. 有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,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. 有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(“格式控制字符串,输出表列);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. 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) printf("%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 <1e-6 。7. 设有程序段: t=6;a=7;b=8; if(a=b) t=a;,这段程序执行后,t的结果是( )。8. 设a=1,b=2,c=3,d=4,那么表达式:a>b?a:c>d?a:d的结果为( ) 。9. 表达式98 && 8 && 31 && (98 - 'a')的值为( )。10. 假设int a = 3; 那么表达式 a > 2&& ! ('D'> 69) 的值为( )。解答:1.2.3.4.5.6.7.8.9.10.循环构造1. C语言中提供了三种循环控制语句,它们是:( )、do-while语句、( ) 。2. break语句在C程序中只能出现在两种场合:一是用于( )语句中,二是用于 ( )语句中。3. 以下程序段中的语句printf(“*)要执行5次,请在空白处填入适宜的数 。for( i=1;i<=( );i=i+2 ) printf(“*);4. 定义int k=10;执行语句 while(k<20) k += 1 ; 后,k的值为( )。5. 在循环控制构造中break语句的作用是( )。6. 在循环控制构造中continue语句的作用是:( )。7. 假设int a55; 并在运行过程中a数组已经赋值;要打印次对角线元素,在空白处填入适宜的值/表达式;for (i = 0; i<5; i+) for (j = ; j >=0; j-) printf("%5d", aij);8. 执行完语句sum = 0; for (i = 0; i < 10; i+) if (i % 5 = = 0) sum += i;sum = 。9. 在使用while 语句中需要注意,为了防止“死循环的发生,在循环体中一定要有( )语句。10. do-while 语句中,判断循环条件在( ),执行循环体在 ( ) 。填“先“后解答:1.2.3.4.5.6.7.8.9.10.函数1. 函数中的形参和调用时的实参都是数组名时,传递方式为 ;形参实参都是变量时,传递方式为 。2. 一个函数在它的函数体内调用它自身称为 调用。3. 函数体包括函数的说明局部和 。4. 定义在一个程序块函数中的变量,称为 变量,它的作用X围只是定义它的程序块。5. 在函数原型声明中,必须声明函数参数的类型,但可以省略 。6. C语言源程序中主函数名由系统规定为 ,程序员是不能改变的。7. 函数首部定义为:int stat(int a , float *p) 那么此函数的两个参数类型分别是 、 。8. 在c语言中,进展函数调用是,实参和实参之间有严格的规定,主要有三种要求分别是: 相等, 一致,并 对应。9. 假设自定义的函数要求返回一个值,那么应在该函数中有一条 语句。10. 假设函数头部定义为 int foo(), 那么该函数中return 语句返回的数据类型是 。11. 假设函数头部定义为 struct stu * foo(), 那么该函数中return 语句返回的数据类型是 。12. 假设函数头部定义为 int * foo(), 那么该函数中return 语句返回的数据类型是 。13. 假设函数头部定义为 float foo(), 那么该函数中return 语句返回的数据类型是 。14. 假设函数头部定义为 char foo(), 那么该函数中return 语句返回的数据类型是 。15. 假设函数头部定义为 char * foo(), 那么该函数中return 语句返回的数据类型是 。16. 假设函数头部定义为 void foo(int a),在主程序中有如下语句:int a5 = 1; foo(a5); 这句函数调用的语句是 。 填“正确“错误17. 假设函数头部定义为 void foo(int *a),在主程序中有如下语句:int array5 = 1; foo(array); 这样的语句是 。 填“正确“错误18. 假设函数头部定位为 void foo (char * str), 在主程序中有如下语句:char array5 = "good"; foo(array); 这样的语句是 。 填“正确“错误19. 假设一个函数中的主要语句是这样的,int a = 3; if (a > 3) return -1; return 0; 那么这个函数的返回值是 。20. 假设函数头部定义为void foo (int * a), 主程序中定义 int array10, 现在要将array 数据传进数组进展处理,正确函数调用语句是 。解答:1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.数组一.填空1. 数组是由固定数目的 的变量按一定顺序排列而构成的。2. 设有数组定义:char array=“China;那么数组所占的存储空间为 个字节。3. 一个二维字符数组a1020能够存储 个字符串。4. 假定在一维数组b10中,元素b5的指针为p,那么p+4所指向的元素为 。5. 一维数组的下标从( )开场。6. 设有数组a10;那么首地址可以写成 ( )。7. 设有数组int a10, 数组元素a5用指针表示的形式是 。8. 设有数组int a1015, 数组元素a53用指针表示的形式是 。9. 定义3行4列的整型二维数组a的语句是 。10. 定义 int b =5,6,7,8, y, *p=b; 执行 y=*p+ 以后, y 的值为( )。11. 按下面的语句定义数组a 后,a 20 的值为( )。 int a32=2,4,6,8,10;12. 假设要把“student!存入一个字符数组,那么该数组长度应该至少为( )。13. 在C语言中,如果采用语句 int a23 = 1,2,3,4,5 完成一个二维数组的定义和初始化,那么a01 的值为 。14. 在C语言中,如果采用语句 int a23 = 1,2,3,4,5 完成一个二维数组的定义和初始化,再定义 int *b = a0,那么 *(b+2) 的值为 .15. 假设int a 3=1,2,3,4,5,6,7,8,9;那么*(*a+1)的值是 。16. 按下面的语句定义数组b后,b21的值为 。int b2=2,1,4,3,5,6。17. 设int a=0,1,2,3,4,5,6,7,8,9,*p=a,那么*p+4= 。18. 定义2行3列5层的整型三维维数组a的语句是 。19. 假设有int a3=10,12,30;那么*(a+2)+3= 。20. 假设有int a3=10,12,30;那么a+1是 的地址。21. 假设int型变量占两个字节的存储单元,假设有定义:int x10=0,2,4; 那么数组x在内存中所占字节数为 。22. 假设有定义int a3=1,2,3,4,5,6,7;,那么a数组第一维的大小是 。23. 数组 int a33;共定义了 个数组元素。24. C语言中,二维数组的存放方式为按 存放。填“行或“列25. 定义int a10=11,12,13,14,15, *p=&a5; 假设&a0和&a1的值分别是0x2000和0x2004,那么p的值是 。26. 定义int a10=11,12,13,14,15, *p=&a3; 假设&a0和&a1的值分别是0x2000和0x20