|
[机械自动化专业] [本卷考试时间150分钟]
一、改错题(每题中只有一个错误,在错误处下划一条线,并改正之。每小题2分,共20分)
1.main() { x=8; printf("x=%d",x); }
2.#define N 2; main() {float x,y; x=5; y=x*N+5*N+2; printf("y=%f\n",y); }
3.main() {double x,y,z; x=5; y=6.8; x+y=z; printf("%lf",z); }
4.main() {int n1,n2; scanf("%d%d",&n1,&n2); switch(n1-n2); {case 1: printf("n1-n2=1"); break; case -1: printf("n1-n2=-1"); break; default: printf("n1-n2=0"); } }
5.main() {int i=1,s=0; do{s=s+i; i++; }while(i<10) printf("s=%d\n",s); }
6.#include "stdio.h" main() {char a[80]; scanf("%s",a); putchar(a); }
7.main() {float x; scanf("%f",&x); x=sqrt(x); printf("x=%f*%f\n",x,x); }
8.main() {char p[2]={"First","Second"}; int i; for(i=0;i<2;i++) printf("%s\n",p[i]); }
9.struct wk {int num; char name[20]; }; main() {struct wk w1[2]={21,"LI",32,"ZHANG"}; int i; for(i=0;i<2;i++) printf("%d %s\n",w1[i]); }
10.#include "stdio.h" main() {file *fp; char ch; fp=fopen("a:test.txt","r"); ch=fgetc(fp); fclose(fp); printf("%c\n",ch); }
二、单项选择题(在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。每小题1分,共20分)
1.main() {int x=125; printf("%x \n",x); } A.7d B.x C.0125 D.%x ( )
2.整型量-6的补码为: A.0000 B.8006 C.fffa D.fff9 ( )
3.以下哪一个不是结构化程序的基本结构 A.顺序结构 B.选择结构 C.单一结构 D.循环结构 ( )
4.#define S1 6 #define S2 8 main() {printf("%d\n",S1+S2);} A.S1+S2 B.14 C.8 D.6 ( )
5.main() {char c1='A'; printf("%d\n",c1); } A.65 B.c1 C.'A' D.%d ( )
6.main() {int t=3,h; h=t++; printf("%d %d",t,h); } A.3 3 B.3 4 C.4 3 D.4 4 ( )
7.表达式 7*(int)(3/5+7/(float)2) 的值为: A.28.7 B.28 C.24.5 D.21 ( )
8.main() {int a,b,c; a=(b=4)+(c=6); printf("%d\n",a); } A.0 B.(b=4)+(c=6) C.a D.10 ( )
9.main() {int a=35; printf("%04o\n",a); } A.35 B.0035 C.043 D.0043 ( )
10.假定a=2,b=3,c=3 表达式 a<=b<=c的值为: A.0 B.1 C.2 D.3 ( )
11.假定a=-1,b=0,c=1,d=2 表达式 b>=a&&d>=c的值为: A.-1 B.0 C.1 D.2 ( )
12.main() {int s=0,i; for(i=1;i<6;i++) {if(i==4) continue; s+=i; } printf("%d\n",s); } A.0 B.4 C.11 D.15 ( )
13.main() {float x[5]={1.1,2.2,3.3,4.4,5.5}; printf("%3.1f %3.1f\n",x[2],x[3]); } A.1.1 2.2 B.2.2 3.3 C.3.3 4.4 D.4.4 5.5 ( )
14.main() {char a[3][5]={"THIS","BLUE","BOOK"}; printf("%c %c\n",a[1][2],a[2][3]); } A.U K B.H U C.I E D.L O ( )
15.int f(int n) {if(n>0) return n+f(n-1); else return 0; } main() {printf("%d",f(10)); } A.55 B.45 C.10 D.0 ( )
16.main() {int x=1,*p=&x; printf("%d\n",*p); } A.1 B.*p C.&x D.无输出 ( )
17.main() {int a[5]={1,2,3,4,5},*p; p=a+2; printf("%d %d\n",*(a+2),*(p+2)); } A.2 2 B.3 3 C.3 5 D.5 5 ( )
18.main() {char *c[3]={"ABC","DEF","GHI"}; char **p; p=c+1; printf("%c\n",*(*p+1)); } A.B B.C C.D D.E ( )
19.Union {unsigned long a; unsigned int b[2]; }u; main() {u.a=0x22224444l; printf("%x %x\n",u.b[0],u.b[1]); } A.2222 4444 B.4444 2222 C.2244 4422 D.4422 2244 ( )
20.已知文本文件中依次存放A到Z 26个字母。 #include "stdio.h" main() {FILE *fp; char c1; fp=fopen("file1.dat","r"); fseek(fp,2,0); c1=fgetc(fp); fclose(fp); printf("%c\n",c1); } 执行上述程序后输出结果为: A.Z B.A C.B D.C ( )
三、读程题(每小题6分,共24分)
1.main() {char a[26],c; int i; for(i=0;i<26;i++) a[i]='A'+i; for(i=0;i<26;i++) {if(i>12) break; if(i%5==0) printf("\n"); printf("%2c",*(a+i)); } } 运行结果:
2.main() {char c[20]="I AM A CHINESE."; int i=0; while(c[i]!='') i++; printf("%d\n",i); } 运行结果:
3.#include "stdlib.h" main() {int i; char c,*b1,*b2; b1=(char *)malloc(10); b2=b1; for(i=0;i<10;i++) *b1++='a'+i; b1=b2; for(i=0;i<10;i++) printf("%c ",*(b1+i)); } 运行结果:
4.main() {int b[7],i,*pb; char c[8],*pc; pb=b; pc=c; for(i=0;i<7;i++) {*(pb+i)=i; *(pc+i)='A'+i; } for(i=0;i<3;i++) pb++; pc++; printf("%d %c\n",*--pb,*++pc); } 运行结果:
四、完善程序题(在程序指定处只准写入一个表达式或语句。1、2题各3分,3、4、5题各4分,共18分)
1.分段函数为 ì x2+2 x>=5 y=? 6x-2 5>x>=0 ? -2 x<0 键盘输入X值,屏幕显示Y值。 main() {float x,y; scanf("%f",&x); if(x>=5) y=x*x+2; else if( 1 ) y=6*x-2; else 2 printf("y=%f\n",y); } 1: 2:
2.用公式p/4=1-1/3+1/5-1/7+...求p的近似值,直到最末一项的绝对值小于10-5为止。 main() {float t=1,sum=0; int n=1,f=1; while( 1 ) {t=1.0/(2*n-1); n++; sum=sum+f*t; 2 } printf("sum=%f\n",4*sum); } 1: 2:
3.打印杨辉三角形的前8行。 main() {int a[8][8],i,j; for(i=0;i<8;i++) {a[i][i]=1; 1 } for(i=2;i<8;i++) for(j=1;j 推荐给我的朋友
|