for(i=m:i>n:i-)a[i+1]=a[i] 2 main() {inti,a[N=1,2,3,4,5,6,7,8,9,10: fun(a,2,9): for(i=0:i<5:i++) printf("%d",a[i]): A)10234 B)12344 C)1233 D)12234 (32)运行下列程序时,输入123(CR>的输出结果为(), main() {inta[3][2]={0,(*ptr)[2],i,j: for(i=0:i(2:i++) (ptr=ati:scanf("%d",ptr):ptr++ for(i=0:i<3:i++) {for(j=0:j2:j++) printf(%2d,a[i][jJ) printf("\n): A)产生错误信息 B)10 20 00 C)12 D)10 30 20 00 30 (33)下列程序的输出结果是()。 prt(int *m,int n) int i; for(i=0:i<n:i++)m[i]++:} main() {inta[]-1,2,3,4,5l,i: prt (a.5) for(i-0:i<5:i++) printf("%d,",a[i]) A)1,2,3,4,5 B)2,3.4,5,6 C)3.4.5.6.7 D)2.3.4.5.1 (34)下列程序的输出结果是()。 main() {inta[]={1,2,3,4,5,6,7,8,9,0,p for(p=a:p<a+10;p++) printf("%d,"*p):
18 for(i=m;i>n;i-)a[i+1]=a[i] } main( ) { int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf("%d",a[i]); } A)10234 B)12344 C)12334 D)12234 (32)运行下列程序时,输入 1 2 3<CR>的输出结果为()。 main( ) { int a[3][2]={0},(*ptr)[2],i,j; for(i=0;i<2;i++) { ptr=a+i; scanf("%d",ptr); ptr++; } for(i=0;i<3;i++) { for(j=0;j<2;j++) printf("%2d",a[i][j]); printf("\n"); } } A)产生错误信息 B)1 0 2 0 0 0 C)1 2 D)1 0 3 0 2 0 0 0 3 0 (33)下列程序的输出结果是()。 prt(int *m,int n) { int i; for(i=0;i<n;i++)m[i]++; } main( ) { int a[ ]={1,2,3,4,5},i; prt(a,5) for(i=0;i<5;i++) printf("%d,",a[i]); } A)1,2,3,4,5 B)2,3,4,5,6 C)3,4,5,6,7 D)2,3,4,5,1 (34)下列程序的输出结果是()。 main( ) { int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; for(p=a;p<a+10;p++) printf("%d,",*p);
1 A)1.2.3.4.5.6.7.8.9.0 B)2.3.4.5.6.7.8.9.10.1 )0,1,2,3,4,5 D)1,1,1,1,1,1,1,1,1,1 (35 下列程序的输 #define P 3 void F(int x){return(P*x*x):} main() printf("%d\n",F(3+5)):} A) B)29 C)25 D)编译出错 (36)下列程序的输出结果是( main() int c=35;printf("%d\n",c&c): A30 B)70 C)35 D)1 (37)下列叙述中正确的是()。 A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间 (38)若有下列说明和定义。 union dt {int a:char b:double c:}data; 下列叙述中错误的是(), A)data的每个成员起始地址都相同 B)变量data所占内存字节数与成员c所占字节数相等 C)程序段: data.a= :printf(%f\n“,data.c):输出结果为5.000000 D)data可以作为函数的实参 (39)下列语句或语句组中,能正确进行字符串赋值的是()。 A)char*sp;*sp=“right!“: B)char s[10]:s="right!"; C)char s[10们:*s="right" D)char *sp="right!": (40)设有如下说明: typedef struct ST long a:int b:char c[2]:NEW: 则下列叙述中正确的是()。 A)以上的说明形式非法 B)ST是一个结构体类型 C)NE是一个结构体类型名D)NEW是一个结构体变量 41)下列程序的输出结果是(). main() int a=1.b: forb=1:b<=10:b+) if(a>=8)break if(a2==1) (at =5:continue:) a=3:
19 } A)1,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1, C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,1, (35)下列程序的输出结果是()。 #define P 3 void F(int x){ return(P*x*x); } main( ) { printf("%d\n",F(3+5)); } A)192 B)29 C)25 D)编译出错 (36)下列程序的输出结果是()。 main( ) { int c=35; printf("%d\n",c&c);} A)0 B)70 C)35 D)1 (37)下列叙述中正确的是()。 A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间 (38)若有下列说明和定义。 union dt { int a; char b; double c;}data; 下列叙述中错误的是()。 A)data 的每个成员起始地址都相同 B)变量 data 所占内存字节数与成员 c 所占字节数相等 C)程序段:data.a=5;printf("%f\n",data.c);输出结果为 5.000000 D)data 可以作为函数的实参 (39)下列语句或语句组中,能正确进行字符串赋值的是()。 A)char *sp; *sp="right!"; B)char s[10]; s="right!"; C)char s[10]; *s="right"; D)char *sp="right!"; (40)设有如下说明: typedef struct ST { long a; int b; char c[2]; } NEW; 则下列叙述中正确的是()。 A)以上的说明形式非法 B)ST 是一个结构体类型 C)NEW 是一个结构体类型名 D)NEW 是一个结构体变量 (41)下列程序的输出结果是()。 main( ) { int a=1,b; for(b=1;b<=10;b++) { if(a>=8) break; if(a%2= =1) {a+ =5; continue;} a=3; }
printf(%dn”,b): A)3 B)4 )5 D)6 (42)下列程序的输出结果是() main() {char s[]="159°,知: D=s. printf(%c“,pt+): printf("c”,*p+) A)15 B)16 C)12 D)59 (43)有下列函数: fun(char a,char) while(*a! 0')&(*b!=10)&(*a==b)】 ta++:b+:} return (*a-*b): 1 该函数的功能是() 计算a和b所指字符串的长度之 C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小 (44)有下列程序 main() int num[4[4={1,2,3,4,5,6,7,8,9,10,11,12,{13,14,15,16,i,j: for(i=0:i(4:i++)】 for(i=0:i<i:i++) printf("%4c",’') for(j :jK4:j+) printf(%4d",num[i][j]) printf("\n"); 若要按下列形式输出数组右上半三角 1234 67 1112 16 则在程序下划线处应填入的是()。 A)1-1 B)i C)i+1 D)4-i (45)下列程序的输出结果是()。 point (char*p){p+=3: main( {char b[4]=ra','b','c','d,*p=b:
20 printf("%d\n",b); } A)3 B)4 C)5 D)6 (42)下列程序的输出结果是()。 main( ) { char s[ ]="159",*p; p=s; printf("%c",*p++); printf("%c",*p++); } A)15 B)16 C)12 D)59 (43)有下列函数: fun(char *a,char *b) { while(*a! ='\0')&&(*b! = '\0')&&(*a= =*b)} { a++; b++;} return(*a-*b); } 该函数的功能是()。 A)计算 a 和 b 所指字符串的长度之差 B)将 b 所指字符串复制到 a 所指字符串中 C)将 b 所指字符串连接到 a 所指字符串后面 D)比较 a 和 b 所指字符串的大小 (44)有下列程序: main( ) { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=0;j<i;j++) printf("%4c",' '); for(j= ;j<4;j++) printf("%4d",num[i][j]); printf("\n"); } } 若要按下列形式输出数组右上半三角。 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是()。 A)i-1 B)i C)i+1 D)4-i (45)下列程序的输出结果是()。 point(char*p){ p+ =3; } main( ) { char b[4]={'a','b','c','d'},*p=b;
point(p);printf("%c\n",*p) 1 A) B)h C) D)d (46)程序中若有下列说明和定义语句 char fun(char *) main() char *s="one".a[5]=101.(*fl)()=fun.ch: 下列选项中对fun0函数的正确调用语句是(), A)(*f1)(a): B)*fl(*s):C)fun(&a):D)ch=*fl(s): (④7)有下列结构体说明和变量定义,如图所示,指针D、q、r分别指向此链表中的三个连 续结点。 data next data next data next 十 Tp Ta struct node int data; struct nodeext: 了*D0,T 现要将q所指结点从链表中删除,同时要保持链表的连续,下列不能完成指定操作的语句是 ()。 A)p->next=q->next: B)p-next=p->next->next c)p->next=r D)D=q-> nxt (48)下列对结构体类型变量td的定义中,错误的是(). A)typedef struct aa B)struct aa f int n: int n; float m: float m: )td; AA td: struct aa td: C)struct D)struet int n: int n: float m: float m: }td: struct aa td (49)下列与函数fseek(fp,0L,SEEK_SET)有相同作用的是()。 A)feof(fp) B)ftell(fp) C)fgete(fp) D)rewind(fp) (50)有下列程序 #include <stdio.h> void WriteStr(char *fchar *str) FILE *fp: fp=fopen(fn,"w):fputs(str,fp):fclose(fp):
21 point(p); printf("%c\n",*p); } A)a B)b C)c D)d (46)程序中若有下列说明和定义语句: char fun(char *); main( ) { char *s="one",a[5]={0},(*f1)( )=fun,ch; . } 下列选项中对 fun()函数的正确调用语句是()。 A)(*fl)(a); B)*fl(*s); C)fun(&a); D)ch=*fl(s); (47)有下列结构体说明和变量定义,如图所示,指针 p、q、r 分别指向此链表中的三个连 续结点。 struct node { int data; struct node *next; }*p,*q,*r; 现要将 q 所指结点从链表中删除,同时要保持链表的连续,下列不能完成指定操作的语句是 ()。 A)p->next=q->next; B)p-next=p->next->next; C)p->next=r; D)p=q->enxt; (48)下列对结构体类型变量 td 的定义中,错误的是()。 A)typedef struct aa B)struct aa { int n; { int n; float m; float m; }AA; }td; AA td; struct aa td; C)struct D)struct { int n; { int n; float m; float m; }aa; }td; struct aa td; (49)下列与函数 fseek(fp,0L,SEEK_SET)有相同作用的是()。 A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp) (50)有下列程序: #include <stdio.h> void WriteStr(char *fn,char *str) { FILE *fp; fp=fopen(fn,"w"); fputs(str,fp); fclose(fp); }
main() WriteStr("tl.dat","start"): WriteStr("t1.dat","end): 程序运行后,文件t1.dat中的内容是() A)start B)end C)startend D)endrt 二、填空题(每空2分,共40分) (1)某二叉树中度为2的结点有18个,则该二叉树中有【1】 个叶子结点。 (2)在面向对象方法中。 类的买例称为【2】 (3)诊断和改正程序中错误的工作通常称为【3】 (4)在关系数据库中,把数据表示成二维表,每一个二维表称为【4】一。 (5)间题处理方案正确而完整的描述称为【5】 (6)下列程序运行时若从键盘输入:102030<C>。输出结果是【6】 #include (stdio.h> main() {inti=0,j0,k=0: scanf ("d%d%d",&i,&j,&k): printf("dddn"i.j.k): (7)下列程序运行后的输出结果是【☑】 #define S(x)4*x*x+l main(】 int i=6.i=8: printf("%dn",S(i+j)) (8)下列程序运行后的输出结果是【8】 main() {inta=3.b=4.c=5.t=99: ifh《a&&a(e)t=a±a=c·e=t: if (a<c&&b<c)t=b,b=a,a=t: printf("dn"ab,c) (9)下列程序运行后的输出结果是【9】 main() int a,b,c; a=10: b=20: c=(ab<1)1|(a/b>1): printf("%d %d %d\n"a.b.c): (10)下列程序运行后的输出结果是【10】 main() char cl,c2; for(c1='0',c2='g':c1<c2:c1+,c2-)
22 main( ) { WriteStr("t1.dat","start"); WriteStr("t1.dat","end"); } 程序运行后,文件 t1.dat 中的内容是()。 A)start B)end C)startend D)endrt 二、填空题(每空 2 分,共 40 分) (1)某二叉树中度为 2 的结点有 18 个,则该二叉树中有【1】 个叶子结点。 (2)在面向对象方法中,类的实例称为【2】 。 (3)诊断和改正程序中错误的工作通常称为【3】 。 (4)在关系数据库中,把数据表示成二维表,每一个二维表称为【4】 。 (5)问题处理方案正确而完整的᧿述称为【5】 。 (6)下列程序运行时若从键盘输入:10 20 30<CR>。输出结果是【6】 。 #include <stdio.h> main( ) { int i=0, j=0, k=0; scanf("%d%*d%d",&i,&j,&k); printf("%d%d%d\n",i,j,k); } (7)下列程序运行后的输出结果是【7】 。 #define S(x) 4*x*x+1 main( ) { int i=6, j=8; printf("%d\n",S(i+j)); } (8)下列程序运行后的输出结果是【8】 。 main( ) { int a=3,b=4,c=5,t=99; if(b<a&&a<c)t=a;a=c;c=t; if(a<c&&b<c)t=b,b=a,a=t; printf("%d%d%d\n",a,b,c); } (9)下列程序运行后的输出结果是【9】 。 main( ) { int a, b,c; a=10; b=20; c=(a%b<1)||(a/b>1); printf("%d %d %d\n",a,b,c); } (10)下列程序运行后的输出结果是【10】 。 main( ) { char c1,c2; for(c1='0',c2='9';c1<c2;c1++,c2-)