1、一、填空1. break 语句通常用于 switch / 循环 中。2. C 语言对数组下标的引用一般从 0 开始。3. C 语言中,一个函数一般由两个部分组成,它们是 函数首部 和 函数体 。4. C 标准库函数中,字符串的处理函数包含在 string.h 头文件中,数学函数包含在math.h 头文件中。5. C 程序的运行需要经过 编译 和 链接 两步进行。6. C 程序中用 /*/ 括起来的内容是程序的注释语句。7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括 函数类型 、 函数名 和 函数参数 。8. C 语言提供的三种逻辑运算符是 & ,/ ,! 。9. C 语言
2、源程序经过编译后,生成文件的后缀名是 .c 。10. C 语言源程序经过连接后,生成文件的后缀名是 .exe 。11. C 语言中,关系表达式和逻辑表达式的值是 1/0 。12. C 语言中的标识符只能由三种字符组成,他们是 字母,数字,下划线 。13. C 语言中的每条基本语句以 ; 作为结束符,每条复合语句以 作为结束符。14. C 语言中函数返回值的类型是由 函数类型 决定的。15. C 源程序的基本单位是 函数 。16. int a = 2, b = 3; 表达式 a b ? a + : + b 的值为 4 。17. int x=1,y=1,z=1; x+=y+=z; 则表达式 xbc
3、 的值是 0 。19. 定义一个指针 p,它指向一个有 6 个整型元素的一维数组, 定义语句为 int *p=a6 ; 。20. 定义一个指针数组 p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为 int*p4; 。21. 赋值语句是由 = 加上一个分号构成。22. 构成数组的各个元素必须具有相同的 类型 。23. 关系表达式 x+y5 的相反表达式为 x+y !5 。24. 函数 strlen(12340xy) 的值为: 9 。25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。26. 函数体用 开始,用 结束。27. 结构化设计中的三种基本结构是 顺序,选
4、择,循环 。28. 如果一个函数无返回值,定义它时函数类型应是 void 。29. 若 x、y、z 均为 int 型变量,则描述“ x 或 y 中有一个小于 z”的表达式是 (x|y)=10 or a=0|a=10&a=10|a=A & ch=Z)?ch+32:ch 的值是 BA) Z B) a C) z D) A31 、表示关系 X =Y =Z 的 C 语言表达式为 AA. (X =Y)&(Y =Z) B. (X =Y)AND(Y =Z)C. (X =Y =Z) D. (X =Y)&(Y =Z)32 、如果 a=4,b=3,c=2,d=1, 则条件表达式 a b?a:c d?c:d 的值是
5、AA) 1 B) 2 C) 3 D) 433 、语句 printf(%d n,12&12) ;的输出结果是 BA. 12 B. 1 C. 24 D. 034 、若有条件表达式 (exp)?a+:b- ,则以下表达式中能完全等价于表达式 (exp) 的是 BA. (exp=0) B. (exp!=0) C. (exp=1) D. (exp!=1)35 、若要求在 if 后一对圆括号中表示 a 不等于 0 的关系 ,则能正确表示这一关系的表达式 DA) a0 B) !a C) a=0 D) a36 、设 x 、y 、z 、t 均为 int 型变量 ,则执行以下语句后 ,t 的值为 Cx=y=z=1
6、;t=+x | +y & +z;A) 不定值 B) 4 C) 1 D) 037 、对表达式 for( 表达式 1; ; 表达式 3) 可理解为 BA.)for( 表达式 1;0; 表达式 3) B)for( 表达式 1;1; 表达式 3)C)for( 表达式 1; 表达式 1; 表达式 3) D)for( 表达式 1; 表达式 3; 表达式 3)38 、语句 while(!e); 中的条件 !e 等价于 AA) e=0 B) e!=1 C) e!=0 D) e39 、下面程序段的运行结果是 Dfor(i=1;i=5;)printf(%d,i);i+;A) 12345 B) 1234 C) 15
7、 D) 无限循环40 、设执行变量 y 值为 3 ,执行下列循环语句后,变量 y 的值是 Cdo y+; while(y+4);(A)3 (B)4 (C)5 (D)641 、执行语句: for(i=1;i9; i+) 后; 变量 i 的值是 B(A)10 (B)9 (C)不定 (D)1142 、执行语句: for(i=1;i=9; i+); 后变量 i 的值是 AA. 10 B. 9 C. 不定 D. 1143 、在定义一个一维数组时,不能用来表示数组长度的是 DA) 常量 B) 符号常量 C) 常量表达式 D) 已被赋值的变量44 、判断字符串是否相等,应当使用 D(A)if(a=b) (B
8、)if(a=b) (C)if(strcpy(a,b) (D)if(!strcmp(a,b)45 、执行程序段 char str20=a,b,c,0; int len=strlen(str); 变量 len 的值 CA. 20 B. 4 C. 3 D. 3 或 4 或 2046 、若有说明 :char c10=E,a,s,t,0; ,则下述说法中正确的是 DA) c7 不可引用 B) c6 可引用,但值不确定C) c4 不可引用 D) c4 可引用,其值为空字符47 、运行下面程序段的输出结果是 Achar s110=S,e,t,0,u,p,0;printf(%s,s1);A) Set B) S
9、etup C) Set up D) Set48 、以下程序段的输出结果是 Bchar s =an apple;printf(%dn,strlen(s);A) 7 B) 8 C) 9 D) 1049 、下列一维数组初始化语句中,正确且与语句 float a =0,3,8,0,9; 等价的是 DA) float a6=0,3,8,0,9; B) float a4=0,3,8,0,9;C) float a7=0,3,8,0,9; D) float a5=0,3,8,0,9;50 、如有定义语句 int a=1,8,2,8,3,8,4,8,5,8; ,则数组 a 的大小是 AA) 10 B) 11 C
10、) 8 D) 不定51 、若二维数组 a 有 m 列,则在 aij 前面的元素个数为 BA. j*m+i B. i*m+j C. i*m+j-1 D. i*m+j+152 、在定义 int a56; 后,数组 a 中的第 10 个元素是 CA) a25 B) a24 C) a13 D) a1553 、以下二维数组 a 的正确说明是 CA) int a1,1; B) float a(3,4); C) double a14; D) float a(3)(4);54 、在定义 int a54; 之后,对 a 的引用正确的是 CA) a24 B) a1,3 C) a43 D) a5055 、若有说明:
11、 int a34; 则对 a 数组元素的正确引用是 C(A)a24 (B)a1, 3 (C)a1+10 (D)a(2)(1)56 、以下对二维数组 a 的正确说明是 CA. int a3 B. float a(3,4) C. double a14 D. float a(3)(4)57 、若有定义: int b3; 则数组元素的不合法引用是 D(A) b1 (B) b0 (C)b2 (D) b358 、对以下说明语句 int a10=6,7,8,9,10; 的正确理解是 BA) 将 5 个初值依次赋给 a1 至 a5 B) 将 5 个初值依次赋给 a0 至 a4C) 将 5 个初值依次赋给 a6
12、 至 a10 D) 因为数组长度与初值的个数不相同 , 所以此语句不正确59 、设已定义: int x24=1,2,3,4,5,6,7,8 ; 则元素 x11 的正确初值是 AA. 6 B. 5 C. 7 D. 160 、在 int a 3=1,3,2,4,5,6,0 中 a11 的值是 DA、0 B、6 C、5 D、 261 、设已定义: int x24=1,2,3,4,5,6,7,8 ; 则元素 6 对应的是 AA. x11 B. x12 C. x21 D. x2262 、以下正确的函数定义形式是 AA. double fun(int x, int y) B. double fun(int
13、 x ;int y)C. double fun(int x, int y); D. double fun(int x,y);63 、有如下函数调用语句 func(rec1,rec2+rec3,rec4,rec5); 该函数调用语句中 ,含有的实参个数是 BA) 3 B) 4 C) 5 D) 有语法错误64 、在 C 语言中 ,全局变量的存储类别是 AA) static B) extern C) void D) register65 、在 C 语言中,以下说法中正确的是 AA. 实参与其对应的形参各占用独立的存储单元B. 实参与其对应的形参占用同一个存储单元C. 只有当实参与形参同名时才占用同一
14、个存储单元D. 实参占用存储单元,但形参是虚拟的,不占用存储单元66 、C 语言中,简单变量做实参时,它和对应的形参之间的数据传递方式是 B(A)地址传递 (B)单向值传递(C)由实参传给形参,再由形参传递给实参(D)同用户指定传递方式67 、在一个源文件中定义的全局变量的作用域为 BA. 本文件的全部范围 B. 从定义该变量开始至本文件结束C. 本函数的全部范围 D. 本程序的全部范围68 、如果一个函数位于 C 程序文件的上部, 在该函数体内说明语句后的复合语句中定义了一个变量,则该变量 CA) 为全局变量,在本程序文件范围内有效B) 为局部变量,只在该函数内有效C) 为局部变量,只在该复
15、合语句中有效D) 定义无效,为非法变量69 、调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是 DA) 实参将其地址传递给形参,并释放原先占用的存储单元B) 实参将其地址传递给形参,调用结束时形参再将其地址回传给实参C) 实参将其值传递给形参,调用结束时形参再将其值回传给实参D) 实参将其值传递给形参,调用结束时形参并不将其值回传给实参70 、以下叙述中,不正确的是 BA) 在同一 C 程序文件中,不同函数中可以使用同名变量B) 在 main 函数体内定义的变量是全局变量C) 形参是局部变量,函数调用完成即失去意义D) 若同一文件中全局变量和局部变量同名,则全局变量在局部变量作
16、用范围内不起作用71 、对于 C 语言的函数,下列叙述中正确的是 AA) 函数的定义不能嵌套,但函数调用可以嵌套B) 函数的定义可以嵌套,但函数调用不能嵌套C) 函数的定义和调用都不能嵌套D) 函数的定义和调用都可以嵌套72 、数组定义为: int a45; 引用“ a1+3 ”表示的是 A(A)a 数组第 2 行第 4 列元素的地址(B)a 数组第 2 行第 4 列元素的值(C)a 数组第 4 行的首地址(D)a 数组第 1 行第 3 个元素的地址73 、若定义: int a=511,*b=&a; 则 printf(%dn,*b); 的输出结果为 DA. 确定值 B) a 的地址 C) 51
17、2 D) 51174 、若有 int a10=1,2,3,4,5,6,7,8,9,10;int *p=a; 则值为 9 的表达式是 BA. *p+9 B. *(p+8) C. *p+=9 D. p+875 、若有说明语句: int a,b,c,*d=&c ;,则能正确从键盘读入三个整数分别赋给变量 a 、b 、c的语句是 A。A) scanf(%d%d%d,&a,&b,d); B) scanf(%d%d%d,&a,&b,&d);C) scanf(%d%d%d,a,b,d); D) scanf(%d%d%d,a,b,*d);76 、设有语句 ”int a=1,3,5,7,9,*p=&a0; ”则
18、值为 7 的表达式是 CA. *p+3 B. *p+4 C. *(p+3) D. *(p+4)77 、已知赋值语句 wang.year=2004; 则 wang 的变量类型是 CA. 字符或文件 B. 整型或实型 C. 共用或结构 D. 实型或指针78 、设有以下说明语句:struct stu int a; float b; stutype;则下面的叙述不正确的是 CAstruct 是结构体类型的关键字Bstruct stu 是用户定义的结构体类型名Cstutype 是用户定义的结构体类型名D. a 和 b 都是结构体成员名79 、下列关于结构的语法错误的是 DA结构是由用户自定义的一种数据类
19、型B结构中可设定若干个不同数据类型的成员C结构中成员的数据类型可以是另一个已定义的结构D在定义结构时,可以为成员设置默认值80 、说明一个结构体变量时,系统分配给它的内存是 AA各成员所需内存量的总和B结构中第一个成员所需内存量C成员中占内存量最大者所需的容量D结构中最后一个成员所需内存量三、程序理解1 以下程序运行结果是#include int main()int a,b,c,d;a=b=5;c=(a+)+(a-)-(a+);d=(b+)-(+b)+(-a);printf(a=%d,b=%dn,a,b);printf(c=%d,d=%dn,c,d);return 0;2 以下程序运行结果是#
20、include int main()int x=1,a=0,b=0;switch(x)case 0: b+;case 1: b=+a;case 2: a+;b+;break;case 3: +a;+b;printf(a=%d,b=%dn,a,b);return 0;3 以下程序运行结果是#include int main()int a,b,c=246;a=c/100%9;b=(1)&(-1)|0;printf(%d,%dn,a,b);return 0;4 以下程序运行结果是#include int main()int a=-1, b=4, k;k=(+a=0)&(b-=0);printf(%d
21、,%d,%dn,k,a,b);return 0;5 以下程序运行结果是#include int main()int a=5,b=60,c;if (ab)c=a*b;printf(%d*%d=%dn,b,a,c);elsec=b/a;printf(%d/%d=%dn,b,a,c);return 0;6 以下程序运行结果是#include int main()int a=60,b=5,c;if (ab)c=a*b;printf(%d*%d=%dn,b,a,c);elsec=b/a;printf(%d/%d=%dn,b,a,c);return 0;7 以下程序运行结果是#include int ma
22、in()int a=1,b=10;do b-=a;a+; while(b-0);printf(%d,%dn,a,b);return 0;8 以下程序运行结果是#include int main()int x;for(x=10;x3;x-) if(x%3) x-;-x; -x;printf(%d ,x);return 0;9 以下程序运行结果是#include int main()int i;for(i=1;i6;i+) if (i%2!=0) printf(A);continue;printf(B); printf(n);return 0;10 以下程序运行结果是#include int ma
23、in()int i;for(i=1;i6;i+) if (i%2=0) printf(A);break;printf(B); printf(n);return 0;11 以下程序运行结果是#include int main()int i,x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)printf(%d ,xii);printf(n);return 0;12 以下程序运行结果是#include int main()int i,n=0,0,0,0,0;for(i=1;i=4;i+)ni=ni-1*2+1;printf(%d ,ni);return 0;13 以下程序运行结
24、果是#include int main()int a =5,4,3,2,1,i,j;long s=0;for(i=0;i5;i+) s=s*10+ai;printf(s=%ldn,s);return 0;14 以下程序运行结果是#include int main()char s=abcdef;s3=0;printf(%sn,s);return 0;15 以下程序运行结果是#include #include int main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=0;i3;i+)for(j=0;ji;j+)s+=aij;printf(%dn,s);return 0
25、;16 以下程序运行结果是#include #include int main()char p110=abc, p210=ABC, str50=xyz;strcpy(str+2,strcat(p1,p2);printf(%sn,str);return 0;52. 以下程序运行结果是 _ _#include int fun(int x,int y,int z) z=x*x+y*y;int main() int a=31;fun(5,2,a);printf(%dn,a);return 0; 53. 以下程序运行结果是 _#include int fun(int x,int y,int z) z=x
26、*x+y*y;return z;int main() int a=31;a=fun(5,2,a);printf(%dn,a);return 0; 54. 以下程序运行结果是 _#include f(int b , int n) int i, r=0;for(i=0; i=n; i+) r=r+bi;return r;int main()int x, a= 2,3,4,5,6,7,8,9;x=f(a, 3);printf(%dn,x);return;55. 以下程序运行结果是 _ _#include f(int b , int n) int i, r=1;for(i=0; i=n; i+) r=
27、r*bi;return r;int main()int x, a= 2,3,4,5,6,7,8,9;x=f(a, 3);printf(%dn,x);return;56. 以下程序运行结果是 _int func(int a,int b) return(a+b); int main() int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(%dn,r);return 0;57. 以下程序运行结果是 _#includeint f(char s ) int i,j;i=0;j=0;while( sj!= 0) j+;return (j-i); int main()p
28、rintf(%dn,f(ABCDEF);return 0;58. 以下程序运行结果是 _#include int f(int a) int b=0,c;c=3;b+ ; c+;return (a+b+c); int main() int i;for(i=0;i3;i+)printf(%dn,f(i);return 0;59. 以下程序运行结果是 _#include int f(int a) int b=0;static c=3;b+ ; c+;return (a+b+c); int main() int i;for(i=0;i3;i+)printf(%dn,f(i);return 0;60.
29、以下程序运行结果是 _#include int fun3(int x)static int a=3;a+=x;return(a); void main()int k=2,m=1,n;n=fun3(k);n=fun3(m);printf(%dn,n); 61. 以下程序运行结果是 _ _#include int m=13;int fun2(int x, int y) int m=3;return(x*y-m);int main() int a=7, b=5;printf(%dn,fun2(a,b)/m);return 0;62. 以下程序运行结果是#include int main() int
30、a=100,b=10;int *pointer_1, *pointer_2;pointer_1=&a;pointer_2=&b;printf(a=%d,b=%dn,a,b);printf(*pointer_1=%d,*pointer_2=%dn,*pointer_1,*pointer_2);return 0;63. 以下程序运行结果是#include int main() int *p1,*p2,*p,a,b;a=11,b=121;p1=&a;p2=&b;if(ab)p=p1;p1=p2;p2=p;printf(a=%d,b=%dn,a,b);printf(max=%d,min=%dn,*p1
31、,*p2);return 0;64. 以下程序运行结果是#includevoid main()int i,j,(*p)2;int b32 = 1, 2, 3, 4, 5, 6;p = b;for(i=0; i3; i+)for(j=0; j2; j+)printf(%d ,pij);printf(n);65. 以下程序运行结果是#includevoid main()int i,*p2;int a3 = 1, -2, 9;int b4 = 4, 7, 0, 10;p0=a;p1=b;for(i = 0; i 3; i+)printf(%dt, *(p0+i);printf(n);for(i = 0; i 4; i+)printf(%dt, *(p1+i);printf(n);66. 以下程序运行结果是#include