




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
n更多企业学院: 中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+ 324份资料员工管理企业学院67套讲座+ 8720份资料工厂生产管理学院52套讲座+ 13920份资料财务管理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料选择题l 综合以下关于C源程序的叙述中正确的是 (21) 。C(10年秋21)A. 注释只能出现在程序的开始位置或语句后面B. 一行中不能写多条语句C. 一条语句可以分写在多行中D. 一个源程序只能保存在一个文件中以下定义和声明中,语法均有错误的是_。(09年春21)int _f(int x) int f(int f) int 2x=1; struct forint x;A B C Dl 数据类型、运算符与表达式已有声明“int x=5,y;float z=2;”,以下表达式语法正确的是 (24) 。D (10年秋24)A. y=x%zB. x0?y=x:y=-xC. y=x/2=zD. y=x=z/2已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码。若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是 (25) 。D (10年秋25)A. c=tolower(c)B. c=c+32C. c=c-A+aD. c=(c+A)%26-a以下选项中,()是C语言的关键字(10年春 22)A.printf B.include C.fun D.default已知有声明“int a=3,b=4,c;”,则执行语句“c=1/2*(a+b);”后,c的值为()(10年春23)A.0 B.3 C.3.5 D.4已知有声明“int a=3,b=4;”,下列表达式中合法的是()(10年春 25)A.a+b=7 B.a=b C.a=b=0 D.(a+)+已知有声明“int n;float x,y;”,则执行语句“y=n=x=3.89;”后,y的值为()(10年春 28)A.3 B.3.0 C.3.89 D.4.0以下选项中,不能用作C语言标识符的是( )(09年秋22)Aprint BFOR C&a D_00已知有声明”long x,y;”且x中整数的十进制表示有n位数字(4n0,以下选项中能正确表示该条件的C语言表达式 (26) 。C (10年秋 26)A. a!=0,b*b-4*a*c0B. a!=0|b*b-4*a*c0C. a&b*b-4*a*c0D. !a&b*b-4*a*c0已知有声明”int a=3,b=4,c=5;”,以下表达式中值为0的是( )(09年秋24)A a&b Ba=0)y=1;else y=-1; By=x=0? 1:-1;Cswitch() Dswitch(x-abs(x) case x=0:y=1; break; case 0:y=1; break; default: y=-1; default: y=-1; 1 x0 以下选项中,不能表示函数sign(x)= 0 x=0 功能的表达式是_。(09年春23) -1 x0)?1:(x0)?-1:0 Bs= x0? 1:0)Cs= x0?1: x=0? 0: -1 l 循环结构以下关于break和continue语句的叙述中正确的是 (27) 。B (10年秋27)A. break和continue语句都可以出现在switch语句中B. break和continue语句都可以出现在循环语句的循环体中C. 在循环语句和switch语句之外允许出现break和continue语句D. 执行循环语句中的break和continue语句都将立即终止循环l 数组已知有声明“char s20=”hello”;”,在程序运行过程中,若要想使数组s中的内容修改为”ood”,则以下语句中能够实现此功能的是() (10年春 26)A.s=”Good; B.s20=”Good”;C.strcat(s,”Good”); D.strcpy(s,”Good”);已知有声明”int m=5,4,3,2,1, i=0;”,下列对m数组元素的引用中,错误的是( )(09年秋27)Am+i Bm5 Cm2*2 Dmm4已知有声明”char s80;”,若需要将键盘输入的一个不含空格的字符串保存到s数组中,则下列语句中正确的是( )(09年秋28)Ascanf(“%s”,s); Bscanf(“%s”, s0); Cs=gets(); Ds=getchar();设有声明“int p10=1,2,i=0;”,以下语句中与“pi=pi+1,i+;”等价的是_。(09年春27)Api=pi+; Bp+i=pi; Cp+i=pi+1; Di+, pi-1=pi; l 函数C语言规定,在一个源程序中main函数的位置()(10年春21)A.必须在最开始 B.必须在在最后C.必须在预处理命令的后面 D.可以在其他函数之前或之后以下叙述中正确的是( )(09年秋21)A C语言系统以函数为单位编译源程序B main函数必须放在程序开始C 用户定义的函数可以被一个或多个函数调用任意多次D 在一个函数体内可以定义另外一个函数若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是( )(09年秋29)A 实参和其对应的形参占用同一个存储单元B 形参不占用存储单元C 同名的实参和形参占用同一存储单元D 形参和实参占用不同的存储单元以下函数定义中正确的是_。(09年春25)Adouble fun(double x, double y) Bdouble fun(double x; double y) Cdouble fun(double x, double y); Ddouble fun(double x, y) 若需要通过调用f函数得到一个数的平方值,以下f函数定义中不能实现该功能的是_。(09年春26)Avoid f(double *a)*a=(*a)*(*a);Bvoid f(double a, double *b)*b=a*a; Cvoid f(double a, double b)b=a*a; Ddouble f(double a)return a*a; l 递归l 预处理C源程序中的命令#include与#define是在 (22) 阶段被处理的。A(10年秋22)A. 预处理 B. 编译C. 连接D. 执行设有定义和声明如下:(09年春22) #define d 2 int x=5; float y=3.83; char c=d; 以下表达式中有语法错误的是_。Ax+ By+ Cc+ Dd+ l 指针设指针变量占2个字节的内存空间,若有声明“char *p=”123”;int c;”,则执行语句“c=sizeof(p);”后,c的值为()(10年春24)A.1 B.2 C.3 D.4l 指针数组已知有声明“char a=”program”,*p=a+1;”则执行以下语句不会输出字符a的是(29)。A(10年秋29)A. putchar(*p+4)B. putchar(*(p+4);C. putchar(asizeof(a)-3);D. putchar(*(a+5);已知有声明“int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;”,若需要引用值为12的数组元素,则下列选项中错误的是() (10年春27)A.*(a+2)+3 B.*(*(a+2)+3) C.*(a2+3) D.a23已知有声明”int i, a10, *p=a;”,现需要将110保存到a0a9中,以下程序段中不能实现这一功能的是( )(09年秋30)Afor (i=0;i10;i+) ai=i+1; Bfor(i=0;i10;i+) pi=i+1;Ci=1; while(pa+10) *p+=i+; Di=1; while(pprice=10; D(*y)-price=10; l 位运算l 文件下列叙述中,正确的是() (10年春30)A.C语言中的文件是流式文件,因此只能顺序存取文件中的数据。B.调用fopen函数时若用“r”或“r+”模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在。C.当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据。D.无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖。填空题l 数据类型、运算符与表达式若有声明“double n;”则数学公式“n(4n2-1)”对应的C语言表达式正确形式是 (1) 。(10年秋1) 1.0/3*n*(4*n*n-1) 数学式所对应的C语言表达式为pow(x, (1) )。1.0/3 (10年春 1)已知有声明“char ch=g;”,则表达式ch=ch-a+A的值为字符 (2) 的编码。G(10年春 2)在C语言系统中,如果一个变量能正确存储的数据范围为整数-3276832767,则该变量在内存中占 (3) 个字节。2(10年春 3)数学表达式所对应的C语言表达式为 。(09年秋3)sqrt(abs(x)!=(4*a)/(b*c)若有声明“int x;”且sizeof(x)的值为2,则当x值为_时“x+1x”为假。32767 (09年春2)若有声明“float y=3.14619; int x;”,则计算表达式“x=y*100+0.5, y=x/100.0”后y的值是_。3.15 (09年春3)l 顺序结构已知有声明“char ch;int a;”,执行语句“scanf(“%c%d”,&ch,&a);”时如果从键盘输入的数据是“123”,则变量a得到的值是 (2) 。(10年秋2)23已知有声明和语句“int a;scanf(“a=%d”,&a);”,欲从键盘上输入数据使a中的值为3,则正确的输入应是 (5) 。a=2 (10年春 5)以下程序运行时输出到屏幕的结果是 (7) 。2,1 (10年春 7)#includevoid main() int a=1,b=2; a+=b; b=a-b; a-=b; printf(“%d,%dn”,a,b);若有声明”int r=2;”,则执行语句”printf(“%d”, sizeof(2*3.14*r);”时输出 。8(09年秋2)l 选择结构若有声明“int a=0,b=1,c=2;”,执行语句“if(a0&+b0)c+;else c- -;”,变量a、b、c的值分别是 (3) 。0 1 1 (10年秋3)C语言中有!、&、|三个逻辑运算符,其中优先级高于算术运算符的是 。!(09年秋1)以下程序运算时输出到屏幕的结果是 。2 (09年秋7) #include void main() int i=1,m=0; switch(i) case 1: case 2: m+; case 3: m+; printf(“%d”, m); 解析:本题switch中没有break,所以当i=1,case1,2,3依次执行,m初值为0,自增两次,值为2以下程序运行时输出结果是_。2 3 5 6 (09年春6) #include void main() int k=5,n=0; while(k0) switch(k) case 1: case 3: n+=1;k-;break; default: n=0;k-; case 2: case 4: n+=2;k-;break; printf(%3d,n); l 循环结构以下程序运算时输出到屏幕的结果中第一行是 ,第二行是 。(09年秋12) #include void main() int a33=3,8,12,4,7,10,2,5,11,i,j,k,t; for(j=0;j3;j+) for(k=0;k2;k+) for(i=0;iai+1j) t=aij,aij=ai+1j,ai+1j=t; for(i=0;i3;i+) for(j=0;j3;j+) printf(“%3d”,aij); printf(“n”); 2 5 10 4 8 12l 数组以下程序运行时输出到屏幕的结果为 (6) 。our (10年秋6)#includeenumA,B,C,Dx;void main()char s=your; for(x=B;x=D;x+) putchar(sx);以下程序运行时输出到屏幕的结果为 (7) 。4332 (10年秋7)#includevoid main()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i,j; for(i=0;i12;i+) j=si; cj+; for(i=1;i5;i+) printf(%d,ci);以下程序运行时输出到屏幕的结果第二行是 (13) 1 1 ,第四行是 (14) 1 3 3 1 。(10年春 11)#include#define N 6void main() int i,j,aN+1N+1; for (i=1;i=N;i+) aii=1;ai1=1; for(i=3;i=N;i+)for (j=2;ji;j+) aij=ai-1j-1+ai-1j; for(i=1;i=N;i+) for(j=1;j=i;j+) printf(“%4d”,aij); printf(“n”); 以下程序运行时输出到屏幕的结果中第一行是 (14) ,第二行是 (15) ,第三行是 (16) 。算法提示:将Fibonacci数列(1,1,2,3,5,8,13,.)前6个数填入a数组。 (10年秋12)#include#define N 3void main()int i,j,aNN=1,f1=0,f2=1,temp;for(i=1;iN;i+) for(j=0;j=i;j+)if(j=i) aij=f1+f2; temp=f1; f1=f2; f2=f1+temp; for(i=0;iN;i+)for(j=0;jN;j+) printf(%5d,aij); printf(n);1 0 01 2 03 5 8 以下程序运行时输出结果中第一行是_,第三行是_。(09年春9)第一行 33333 第三行 3 3 #include #define N 5 void main() static char aNN; int i,j,t,start=0,end=N-1; char str=123,ch; for(t=0;t=N/2;t+) ch=strt; for(i=j=start;iend;i+)aij=ch; for(j=start;jstart;i-)aij=ch; for(j=end;jstart;j-)aij=ch; if(start=end) astartend=ch; for(i=0;iN;i+) for(j=0;jN;j+) printf(%c,aij); printf(n); 以下程序中函数float fun(int m)的功能是计算s=s1+s2+s3+s4的值,其中s1、s2、s3、s4用下列公式计算。请完善程序以达到要求的功能。(10年秋14)S1=1+. . .+S2=1+. . . S3=1+. . .+ S4=1+. . .+ 算法提示:S=1+1+1+1+ +. . . +#includefloat fun(int m ) int i,n; float s=0,t; for(n=1;n=m;n+) t= (19) ; 1.0 for(i=1;i5;i+) t= (20) ; t/n s+=t; return s;main()printf(%f,fun(50);l 函数声明局部变量时若缺省存储类别,该变量的存储类别是 。auto(09年秋5)在一个C语言源程序中,必不可少的是_。 主函数 (09年春1)以下程序运行时输出到屏幕的结果为 (8) 。13 11 12(10年 春8)#includevoid swap(int a,int b) int t; if (ab) t=a,a=b,b=t;void main() int x=13,y=11,z=12; if(xy) swap(x,y); if(xz) swap(x,z); if(yz) swap(y,z); printf(“%dt%dt%dn”,x,y,z);以下程序运行时输出到屏幕的结果第一行是 (9) 5 ,第二行是 (10) 7 ,第三行是 (11) 8 。 (10年春9)#includeint g(int x,int y) return x+y;int f(int x,int y) static int x=2; if (y2) x=x*x; y=x; else y=x+1;return x+y;void main() int a=3; printf(“%dn”,g(a,2); printf(“%dn”,f(a,3); printf(“%dn”,f(a,2);以下程序运行时输出结果是_。7 (09年春8) #include int f(int x ,int y) return x+y ; void main() double a=5.5,b=2.5; printf(%d, f(a,b); 以下程序运算时输出到屏幕的结果是 。(09年秋10)#includelong f(int n) static long s; if(n=1) return s=2; else return +s;void main() long i,sum=0; for(i=1;i4;i+) sum+=f(i); printf(“%ld”, sum);解析:本题考点static,s为静态局部变量,函数调用结束后不消失保留原值,第一次f(1),s值为2,第二次f(2),s=3,第三次f(3),s=3,sum=2+3+4=9以下程序运行时输出到屏幕的结果为 (8) 。 13 (10年秋8)#includeint fun(int x)static int c,y;if(c=0)y=1; else y=y+x;c+;return y;void main()int i; for(i=0;i2;i+) printf(%d,fun(2);以下程序将同时出现在数组a和b中的数据复制到数组c中。例如,如果数组a中的数据是8,5,7,1,6,4,9,数组b中的数据是2,9,3,7,4,5,10,则数组c中的结果数据位5,7,4,9。以下程序中,in函数判断x中存储的整数是否在a指向的数组前n个元素中出现,如果出现则函数返回1,否则返回0。请完善程序以达到要求的功能。 (10年秋15)#includeint in(int a,int n,int x)int i; for(i=0;in;i+) if( (21) ) return 1; x=ai return 0;void main()int a7=8,5,7,1,6,4,9,b7=2,9,3,7,4,5,10,c7=0,i,j=0; for(i=0;i7;i+) if( (22) ) in(b,6,ai) cj+=ai; for(i=0; (23) ;i+) ij printf(%dt,ci);l 递归以下程序运行时输出到屏幕的结果为 (11) 。 6 (10年秋10)#includeint f(int x)if(x=0|x=1) return 3; return x*x-f(x-2);void main() printf(%dn,f(3);以下程序运行时输出到屏幕的结果是 (12) 。2 2 1 (10年春10)#includevoid fun(int m,int n) if (mn) printf(“%d”,m); else fun(m+1,n); printf(“%d”,m);void main() fun(1,2); 以下程序运算时输出到屏幕的结果是 。(09年秋9)#includeint fun(int *x,int n) if(n=0) return x0; else return x0+fun(x+1,n-1);void main() int a=1,2,3,4,5,6,7; printf(“%dn”,fun(a,2);解析:本题为递归,解决递归分两步递推+回推 递推: fun(a,2) a0+fun(a+1,1) a1+fun(a+1+1,0) 注意此时指针的地址不a,而是a+1,返回的是a1+fun(a+1+1,0)而不是a0+fun(a+1+1,0) ,当n=0时fun(a+1+1,0)值为a2,再依次回推 a2+a1+a0=6以下程序在350范围内验证:大于等于3的两个相邻素数的平方之间至少有4个素数。例如,3和5是相邻素数,3252之间有素数11、13、17、19、23。试完善程序以达到要求的功能。(09年秋16)#include#include#includeint prime(int n) int i; for(i=2;i=sqrt(n);i+) if( n%i=0 )return 0; return 1;void main() int i,j,k=0,m,n,c,a30=0; for(i=3;i50;i+) if(prime(i) ak+=i ; for(i=0;ik-1;i+) m=ai*ai; n=ai+1*ai+1; c= 0 ; for(j=m+1;j=4) printf(“n %d*%d-%d*%d: %d”,ai,ai,ai+1,ai+1,c); else printf(“Error”);exit(0); l 预处理若有以下宏定义:#define M(a,b) -a/b则执行语句“printf(%d”,M(4+3,2+1);”后输出结果为 (4) 。-2 (10年秋4)以下程序运行时输出到屏幕的结果为 (6) 。10(10年春6)#include#define MAX(A,B) AB?2*A:2*Bvoid main() int a=1,b=2,c=3,d=4,t; t=MAX(a+b,c+d); printf(“%dn”,t);以下程序运算时输出到屏幕的结果中第一行是 ,第二行是 。(09年秋11) #include #define f(x,y) y=x*x void g(int x, int y) y=x*x; void main() int a=2,b=0,c=2,d=0; f(a,b); g(c,d); printf(“%dn%d”,b,d); 4 0 解析:f(a,b)为宏替换,b值为4,g(c,d)为函数调用,但是函数中没有返回值,所以d保持原值0执行以下程序段中的语句“k=M*M+1;”后 k的值是_。6 (09年春4) #define N 2 #define M N+1 k=M*M+1;l 指针若有以下声明:(09年秋4) char *p=”%d,%dn”; int a=1,b=2; 则执行语句”printf(p,a,b);”时输出 。1,2l 指针数组已知有声明“int a32=1,2,3,4,5,6,*p=a0;”,则执行语句“printf(“%dn”,*(p+4);”后的输出结果为 (4) 。5 (10年春4)以下程序运算时输出到屏幕的结果是 。(09年秋13)#include#includevoid main() int i=0,n=0;char s80,*p; strcpy(s,”It is a book.”); for(p=s;*p!=0;p+) if(*p= ) i=0; else if(i=0) n+;i=1; printf(“%dn”,n); 4 解析:本题功能是求一句英文中单词的个数。当i=0,表示新单词开始,同时i变为1,n来统计单词个数,遇到空格表示单词结束,又表示下一个单词的开始,i置0。l 指针函数以下程序运行时输出到屏幕的结果中第一行是 (9) 6 ,第二行是 (10) 3 。(10年秋9)#includevoid fun(int *a,int b)while(b0) *a+=b; b-;void main()int x=0,y=3; fun(&x,y); printf(%dn%dn,x,y);以下程序运行时输出到屏幕的结果中第一行是 (12) 1,第二行是 (13) 19。 (10年秋11)#include#includevoid compute(char *s)int t,r;char op;for(r=0;isdigit(*s);s+)/*isdigit(*s)判断s指向的字符是否为数字字符*/ r=r*10+*s-0;while(*s)op=*s+; for(t=0;isdigit(*s);s+) t=t*10+*s-0; switch(op) case +: r=r+t;break; case -: r=r-t;break;case *: r=r*t;break; case /: if(t) r=r/t ;elseputs(devide error);return; printf(%dn,r);void main()compute(12+6-19+2); compute(12/6*19/2);以下程序运行时输出结果是_。x=18,y=27,z=18 (09年春7) #include void change(int x,int y,int *z) int t; t=x; x=y; y=*z; *z=t; void main() int x=18,y=27,z=63; change(x,y,&z); printf(x=%d,y=%d,z=%dn,x,y,z); 以下程序运行时输出到屏幕的结果第一行是 (15) 3 2 1 ,第二行是 (16) 1 4 3 2 5 ,(10年春12)#includevoid fun(char *p1,char *p2);void main() int i; char a=”54321”; puts(a+2); fun(a,a+4); puts(a);void fun(char *p1,char *p2) char t; while(p1p2) t=*p1;*p1=*p2;*p2=t;p1+=2,p2-=2; 以下程序运行时输出结果中第一行是_,第二行是_。(09年春10)第一行 1 3 9 第二行 3 #include void fun(int x,int p,int *n) int i,j=0; for(i=1;ix/2;i+) if(x%i=0)pj+=i; *n=j; void main() int x,a10,n,i; fun(27,a,&n); for(i=0;in;i+) printf(%5d,ai); printf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汉字诵读课件
- 汉字易错字课件
- Unit 2 Home Sweet Home 单元测试 2025-2026学年人教版(2024)八年级英语上册
- 3S技术及其应用进展 知到智慧树答案
- 《红楼梦》赏析知到智慧树答案
- 金融科技在小微企业融资中的作用
- 汉字书法课件模板楷书面
- 2025汽车销售的中介合同样本
- DBJ41-T 137-2014 防渗墙质量无损检测技术规程
- 求诸己课件教学课件
- 教育家精神引领下职业院校师德师风建设研究
- 2024年“泰山杯”山东省网络安全职业技能竞赛理论试题库(含答案)
- 教师资格考试初中物理学科知识与教学能力2024年下半年试题及答案解析
- 工地受伤赔偿协议书
- NB-T10859-2021水电工程金属结构设备状态在线监测系统技术条件
- 呼吸系统疾病所致精神障碍
- 磁悬浮型与普通型离心冷水机组的性能及能耗比较
- 青光眼小梁切除手术
- 口腔种植一期手术
- 严重精神障碍社区随访经验
- 员工团队意识培训课件
评论
0/150
提交评论