1、第一单元 程序设计与语言一、 选择题1 C语言得基本构成单位就是: A 。A、 函数B、 函数与过程C、 超文本过程D、 子程序2 一个C语言程序总就是从 B 开始执行。A、 主过程 B、 主函数 C、 子程序 D、主程序 3 C语言得程序一行写不下时,可以 。A、 用逗号换行B、 用分号换行C、 在任意一空格处换行D、 用回车符换行4 以下叙述不正确得就是: C 。A、 在C程序中,语句之间必须要用分号;分隔B、 若a就是实型变量,C程序中a=10就是正确得,因为实型变量中允许存放整型数C、 在C程序中,无论就是整数还就是实数都能正确无误地表示D、 在C程序中,%就是只能用于整数运算得运算符
2、5 以下不正确得C语言标识符就是 D 。A、 ABC B、 abc C、 a_bc D、 ab、c6 下列字符串就是标识符得就是: A 。A、 _HJB、 9_studentC、 longD、 LINE 17 以下说法中正确得就是: C 。A、 C语言程序总就是从第一个定义得函数开始执行B、 在C语言程序中,要调用得函数必须放在main函数中定义C、 C语言程序总就是从main函数开始执行D、 C语言程序中得main函数必须放在程序得开始部分8 不合法得常量就是: D 。A、 2B、 C、 3D、 4839 已知各变量得类型说明如下,则以下不符合C语言语法得表达式就是: A 。int k,a,
3、b;unsigned long w=5;double x=1、422;A、 x%(3)B、 w+=2C、 k=(a=2,b=3,a+b)D、 a+=a=+(b=4)*(a=3)10 在C语言中,字符型数据在内存中以 D 形式存放。A、 原码 B、 BCD码 C、 反码 D、 ASCII码11 若有定义:int a=7; float x=2、5; y=4、7;则表达式x+a%3*(int)(x+y)%2/4得值就是: A 。A、 2、500000B、 2、750000C、 3、500000D、 0、00000012 设有说明:char w; int x; float y; double z;则表
4、达式w*x+zy值得数据类型为: D 。A、 floatB、 charC、 intD、 double13 以下 BC 就是不正确得转义字符。 A、 B、 C、 081 D、 014 若x为int型变量,则执行以下语句后,x得值为 B 。 x=6; x+=x=x*x; A、 36 B、 60 C、 60 D、 2415 字符串ABC得长度就是 B 。A、 11 B、 7 C、 5 D、 3二、 填空题1 一个函数由两部分组成,它们就是 与 。2 一个C源程序至少包含一个 ,即 。3 设int a=12; 则表达式a/=a+a得值就是 。4 表达式x=(a=3,6*a)与表达式x=a=3,6*a分
5、别就是 表达式与 表达式,两个表达式执行完得结果分别就是 与 ,x值分别就是 与 。5 在C语言中,实数有两种表示形式,即 与 。6 在C语言中,运算符得优先级最小得就是 运算符。7 在C语言中,变量在使用前应先 , 再 。 第一单元 程序设计与C语言一、 选择题1、 A 2、 B 3、 C 4、 C 5、 D 6、 A 7、 C 8、 D 9、 A 10、 D 11、 A12、 D 13、 BC 14、 B 15、 B二、 填空1 函数首部、函数体2 主函数、main函数3 04 赋值、逗号、18、18、18、35 浮点型、指数型6 赋值7 定义,使用第二单元 顺序程序设计一、 选择题1 若
6、m为float型变量,则执行以下语句后得输出为 C 。 m=1234、123; printf(%8、3fn,m); printf(%10、3fn,m); A、 1234、123 B、 1234、123 C、 1234、123 D、 1234、123 1234、123 1234、123 1234、123 001234、1232 若x,y,z均为int型变量,则执行以下语句后得输出为 A 。 x=(y=(z=10)+5)5; printf(x=%d,y=%d,z=%dn,x,y,z); y=(z=x=0,x+10); printf(x=%d,y=%d,z=%dn,x,y,z); A、 X=10,Y
7、=15,Z=10B、 X=10,Y=10,Z=10 X=0,Y=10,Z=0 X=0,Y=10,Z=10 C、 X=10,Y=15,Z=10D、 X=10,Y=10,Z=10X=10,Y=10,Z=0 X=0,Y=10,Z=03 若x就是int型变量,y就是float型变量,所用得scanf调用语句格式为: scanf(x=%d,y=%f,&x,&y); 则为了将数据10与66、6分别赋给x与y,正确得输入应就是: A 。 A、 x=10,y=66、6 B、 10 66、6C、 1066、6 D、 x=10y=66、64 已知有变量定义:int a;char c;用scanf(“%d%c”,&
8、a,&c);语句给a与c输入数据,使30存入a,字符b存入c,则正确得输入就是: D 。A、 30b B、 30 bC、 30b D、 30b5 已知有变量定义:double x;long a; 要给a与x输入数据,正确得输入语句就是 。若要输出a与x得值,正确得输出C。 A、 scanf(“%d%f”,&a,&x); B、 scanf(“%ld%f”,&a,&x); printf(“%d,%f”,a,x); printf(“%ld,%f”,a,x);C、 scanf(“%ld%lf”,&a,&x); D、 scanf(“%ld%lf”,&a,&x); printf(“%ld,%lf”,a,x
9、); printf(“%ld,%f”,a,x);6 若有定义double x=1,y;则以下得语句执行得结果就是 C 。y=x+3/2; printf(“%f”,y); A、2、500000 B、2、5 C、2、000000 D、2 7 若a为整型变量,则以下语句 C 。a=2L; printf(%dn,a);A、 赋值不合法B、 输出为不确定得值C、 输出值为2D、 输出值为2二、 读程序写结果1 main int x,y; scanf(%2d%*2d%ld,&x,&y); printf(%dn,x+y); 执行时输入:12345672 main int x=4,y=0,z; x*=3+2;
10、 printf(%d,x);x*=y=z=4; printf(%d,x); 3 main float x; int i; x=3、6; i=(int)x; printf(x=%f,i=%d,x,i);4 main int a=2; a%=41; printf(%d, ,a); a+=a*=a=a*=3; printf(%d,a);5 main int x=02,y=3; printf(x=%d,y=%d,x,y);6 main char c1=6,c2=0; printf(%c,%c,%d,%dn,c1,c2,c1c2,c1+c2);7 main int x,y,z; x=y=1; z=+x1
11、; printf(%d,%dn,x,z); z+=y+; printf(%d,%dn,y,z); 三、 填空题1 在C语言中,字符型数据与整型数据之间可以通用,一个字符数据既能以 输出,也能以 输出。2 %ms表示如果串长小于m,则在m列范围内,字符串向 靠, 补空格。3 printf函数得“格式控制”包括两部分,它们就是 与 。4 函数得递归调用就是指 。函数得返回值通过函数中得 语句获得。5 Break语句只能用于 语句与 语句中。6 Strlen(“hello”)= 。第二单元 顺序程序设计一、 选择题1. CA A D C CC二、 读程序写结果1 172 20803 X=3、6000
12、00,i=34 2,05 X=2,y=%d6 6,0,6,1027 2,12,2三、 填空1 字符 整数2 左 右3 格式说明 普通字符4 在函数中直接或间接得调用自己 , return5 Switch , 循环6 5第三单元 分支程序设计一、 选择题1 若x=0,y=3,z=3,以下表达式值为0得就是 。 A、 !x B、xy? 1:0 C、 x%2&y=z D、 y=x|z/32 以下运算符中优先级最低得运算符为 ,优先级最高得为 。 A、 & B、 ! C、 != D、 | E、 ?: F、 =3 若w=1,x=2,y=3,z=4,则条件表达式wx?w:y10?x+100:x10); p
13、rintf(%dn,w+|z+); printf(%dn,!wz); printf(%dn,w&z); A、 0 B、 1 C、 0 D、 0 1 1 1 1 1 1 0 0 1 1 1 05 分析以下程序, 下列说法正确得就是 。main int x=5,a=0,b=0;if(x=a+b) printf(* * * *n);else printf(# # # #n); A、 有语法错,不能通过编译 B、 通过编译,但不能连接C、 输出* * * * D、 输出# # # #6 分析以下程序, 下列说法正确得就是 。main int x=5,a=0,b=3;if(x=a+b) printf(*
14、 * * *n);else printf(# # # #n); A、 有语法错,不能通过编译 B、 通过编译,但不能连接C、 输出* * * * D、 输出# # # #7 分析以下程序, 下列说法正确得就是 。main int x=0,a=0,b=0;if(x=a+b) printf(* * * *n);else printf(# # # #n); A、 有语法错,不能通过编译 B、 通过编译,但不能连接C、 输出* * * * D、 输出# # # #8 分析以下程序, 下列说法正确得就是 。main int x=0,a=0,b=0;if(x=a+b) printf(* * * *n);e
15、lse printf(# # # #n); A、 有语法错,不能通过编译 B、 通过编译,但不能连接C、 输出* * * * D、 输出# # # #二、 读程序写结果1 include main int a=1,b=4,k;k=(a+=0)&(!(b=z=x)?1:0); printf(%d,z=y & y=x);4 main int x=1,y=1,z=10; if(z0) x=3;else x=5;printf(%dt,x);if(z=y0) x=3;else if(y=0) x=5;else x=7;printf(%dt,x);printf(%dt,z); 5 main char x=
16、B; switch(x) case A: printf(“It is A、”); case B: printf(“It is B、”); case C: printf(“It is C、”); default: printf(“other、”); 6 main int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+;break; case 1: b+;break; case 2: a+;b+;break; case 3: a+;b+; printf(a=%d,b=%dn,a,b); 第三单元 分支程序设计一、选择题1、C、EB、D
17、、C 、D 、C、D、C二、读程序写结果1.1,0,32.2003.014.1705.It is B、 It is C、other、6.a=2,b=1第四单元 循环程序设计一、 选择题1 程序段如下:则以下说法中正确得就是: 。int k=5;do k;while(k=0);A、 循环执行5次 B、 循环就是无限循环C、 循环体语句一次也不执行 D、 循环体语句执行一次2 设i与x都就是int类型,则for循环语句 。for(i=0,x=0;i=9&x!=876;i+) scanf(%d,&x);A、 最多执行10次 B、 最多执行9次C、 就是无限循环 D、 循环体一次也不执行3 下述for
18、循环语句 。int i,k;for(i=0,k=1;k=1;i+,k+) printf(* * * *);A、 判断循环结束得条件非法 B、 就是无限循环C、 只循环一次 D、 一次也不循环4 程序段如下:则以下说法中正确得就是: 。int k=20;while(k=0) k=k+1;A、 while循环执行20次 B、 循环就是无限循环C、 循环体语句一次也不执行 D、 循环体语句执行一次5 下列程序段执行后k值为 。int k=0,i,j;for(i=0;i5;i+)for(j=0;j3;j+) k=k+1 ;A、 15 B、 3 C、 5 D、 86 程序段如下:则以下说法中不正确得就是
19、: 。#include mainint k=2,;while(k7) if(k%2) k=k+3; printf(“k=%dn”,k);continue;k=k+1;printf(“k=%dn”,k);A、 k=k+3;执行一次 B、 k=k+1;执行2次C、 执行后k值为7 D、 循环体只执行一次二、 读程序写结果1 main int num=0; while(num=2) num+; printf(%dn,num); 2 main int i=0,s=0; do s+=i*2+1; printf(i=%d,s=%dn,i,s); i+;while(s10); 3 #include main
20、 int i,m=1; for(i=5;i=1;i) m=(m+1)*2;printf(m=%dn,m); 4 指出下面三个程序得功能,当输入为:quert?时,它们得执行结果就是什么? #include main char c; c=getchar; while (c!=?) putchar(c); c=getchar; #include main char c; while (c=getchar)!=?) putchar(+c); #include main while (putchar(getchar)!=?); 5、main printf(“%dn”,sub(6);sub(int n)
21、 if(n= =1 | n= =2) return 1;else return sub(n1) + sub(n2); 第四单元 循环程序设计一、选择题1.D 2.A 、 3.B 、 4.C5.A6.D二、读程序写结果1.1 2 32.i=0,s=1 i=1,s=4 i=2,s=9 i=3,s=163.m=4 m=10 m=22 m=46 m=944.(1) quert (2) rvfsu (3) quert?5、 8第五单元 数 组一、 选择题1 以下关于数组得描述正确得就是 。A、 数组得大小就是固定得,但可以有不同得类型得数组元素。B、 数组得大小就是可变得,但所有数组元素得类型必须相同。
22、C、 数组得大小就是固定得,但所有数组元素得类型必须相同。D、 数组得大小就是可变得,但可以有不同得类型得数组元素。2 在定义int a10;之后,对a得引用正确得就是 。A、 a10 B、 a6、3 C、 a(6) D、 a10103 以下能正确定义数组并正确赋初值得语句就是 。A、 int n=5,bnn; B、 int a12=1,3;C、 int c2=1,2,3,4 D、 int a32=1,2,3,44 以下不能正确赋值得就是 。A、 char s110;s1=test; B、 char s2=t,e,s,tC、 char s320= test; D、 char s44= t,e,
23、s,t5 下面程序段运行时输出结果就是 。char s18= a book! ;printf(%、4s,s);A、 a book! B、 a book! C、 a bo D、 格式描述不正确,没有确定输出6 下面程序段运行时输出结果就是 。char s12= A book;printf(%dn,strlen(s);A、 12 B、 8 C、 7 D、 67 在执行int a3=1,2,3,4,5,6;语句后,a10得值就是 。A、 4 B、 1 C、 2 D、 5、 8、合法得数组定义就是( )A) int a=string; B) int a5=0,1,2,3,4,5; C) char a=
24、string; D) char a=0,1,2,3,4,5;二、 读程序写结果1 #include void mainint a8=1,0,1,0,1,0,1,0,i;for(i=2;i8;i+)ai+= ai1 + ai2;for(i=0;i8;i+)printf(“%5d”,ai);2 #include void mainfloat b6=1、1,2、2,3、3,4、4,5、5,6、6,t;int i;t=b0;for(i=0;i5;i+)bi=bi+1;b5=t;for(i=0;i6;i+)printf(“%6、2f”,bi); 3 #include void main int p7=1
25、1,13,14,15,16,17,18,i=0,k=0;while(i7 & pi%2) k=k+pi; i+;printf(k=%dn,k); 4 void main int a33=1,3,5,7,9,11,13,15,17; int sum=0,i,j; for (i=0;i3;i+) for (j=0;j3;j+) aij=i+j; if (i=j) sum=sum+aij; printf(sum=%d,sum); 5 void main int a44,i,j,k; for (i=0;i4;i+) for (j=0;j4;j+) aij=ij; for (i=0;i4;i+) for
26、 (j=0;j=i;j+) printf(%4d,aij); printf(n); 6 #include main int i,s; char s1100,s2100; printf(input string1:n); gets(s1); printf(input string2:n); gets(s2); i=0; while (s1i=s2i)&(s1i!=0) i+; if (s1i=0)&(s2i=0) s=0; else s=s1is2i; printf(%dn,s); 输入数据 aidand7 void mainchar ch35= AAAA,BBB,CC;printf(%sn,c
27、h1); 8 #inlcude #include void mainchar str1080,c80;int i;for(i=0;i10;i+)gets(stri);strcpy(c,str0);for(i=1;i10;i+)if(strlen(c)strlen(stri)strcpy(c,stri);puts(c);9、下列程序得执行结果就是 main int x=1,y=2,z=3;x+=y+=z;printf(%d,(xy?x+:y+);第五单元 数组一、 选择题1、 C 2、 D 3、 D 4、 A 5、 C 6、 D 7、 A 8、B二、 读程序写结果1 1 0 2 2 5 7 13
28、 202 2、20 3、30 4、40 5、50 6、60 1、103 k=244 sum=65 0 1 0 2 1 0 3 2 1 06 57 “BBB”8 没有输入数据9 5第六单元 函 数一、 选择题1 在C语言中,当函数调用时 。A、 实参与形参各占一个独立得存储单元B、 实参与形参共用存储单元C、 可以由用户指定实参与形参就是否共用存储单元D、 由系统自动确定实参与形参就是否共用存储单元2 以下函数调用语句中实参得个数为 。exce(v1,v2),(v3,v4,v5),v6);A、 3B、 4C、 5D、 63 如果在一个函数得复合语句中定义了一个变量,则该变量 。A、 只在该符合语
29、句中有效,在该符合语句外无效B、 在该函数中任何位置都有效C、 在本程序得原文件范围内均有效D、 此定义方法错误,其变量为非法变量4 C语言允许函数值类型缺省定义,此时该函数值隐含得类型就是 。A、 float型 B、 int型 C、 long型 D、 double型5 C语言规定,函数返回值得类型就是由 。A、 return语句中得表达式类型所决定B、 调用该函数时得主调函数类型所决定C、 调用该函数时系统临时决定D、 在定义该函数时所指定得函数类型决定6 在C语言程序中,以下描述正确得就是 。A、 函数得定义可以嵌套,但函数得调用不可以嵌套B、 函数得定义不可以嵌套,但函数得调用可以嵌套C
30、、 函数得定义与函数得调用均不可以嵌套D、 函数得定义与函数得调用均可以嵌套7 以下叙述中正确得就是 。A、 全局变量得作用域一定比局部变量得作用域范围大B、 静态(static)类别变量得生存期贯穿于整个程序得运行期间C、 函数得形参都属于全局变量D、 未在定义语句中赋初值得auto变量与static变量得初值都就是随机值8、 以下程序得运行结果就是:#includevoid sub(int s,int y) static int t=3;y=st;t;main int a=1,2,3,4,i,x=0;for(i=0;iO) fun(k1);printf( %d,k);A)5 4 3 2 l
31、 B)0 1 2 3 4 5C)1 2 3 4 5 D)5 4 3 2 1 010、 以下所列得各函数首部中,正确得就是_。A)void play(vat a:Integer,var b:Integer)B)void play(int a,b)C)void play(int a,int b)D)Sub play(a as integer,b as integer)11、 当调用函数时,实参就是一个数组名,则向函数传送得就是_。A)数组得长度 B)数组得首地址C)数组每一个元素得地址 D)数组每个元素中得值12、 在调用函数时,如果实参就是简单变量,它与对应形参之间得数据传递方式就是_。A)地址传递 B)单向值传递C)由实参传给形,再由形参传回实参 D)传递方式由用户指定13、 以下函数值得类型就是_。fun(float x) float y;y=3*x4;return y;A)int B)不确定 C)void D)float二、 读程序写结果1 fun1(int a,int b) int c; a+=a; b+=b; c=fun2(a,b); return c*c;