99年计算机等级二级笔试C语言真题
(29)以下程序的输出结果是
A)2 0 B)3 1 C)3 2 1 D)2 1 0
main( )
{ int n=4;
while(n--)printf("%d ",--n);
}
(30)若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是
A)p+1 B)a+1 C)a++ D)++p
(31)以下程序的输出结果是
A)17,021,0x11 B)17,17,17
B)17,0x11,021 D)17,21,11
main( )
{ int k=17;
printf("%d,%o,%x \n",k,k,k);
}
(32)以下程序的输出结果是
A)-1 1 B)0 1 C)1 0 D)0 0
main( )
{ int a= -1,b=1,k;
if((++a<0)&& ! (b-- <=0)) printf("%d %d\n",a,b); else printf("%d %d\n",b,a); } (33)若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是 a)*p=&a; scanf("%ld",p); b)p=(long *)malloc(8); scanf("%ld",p); c)scanf("%ld",p=&a); d)scanf("%ld",&a); (34)以下选项中,能定义s为合法的结构体变量的是 a)typedef struct abc b)struct { double a; { double a; char b[10]; char b[10]; } s; } s; c)struct abc d)typedef abc { double a; { double a; char b[10]; char b[10]; } } abc s; abc s; (35)若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是 a)t[2][0] b)t[2][2] c)t[l][2] d)t[2][l] int t[3][3], *pt([3], k; for (k=0;k<3;k++) pt[k]=&t[k][0]; (36)下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是 a)p>a B)*p>a[0] C)*p>*a[0] D)*p[0]> *a[0]
main( )
{ int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I;
for(i=o;i<10;i++,p++) if(________) *a=*p; printf("%d",*a); } (37)以下程序的输出结果是 a)ihgfedcba b)abcdefghi c)abcdedeba d)ihgfefghi #include main( ) { char *a="abcdefghi" ; int k; fun(a); puts(a); } fun(char *s) { int x,y; char c; for(x=0,y=strlen(s)-1;x0) fun(k-1); printf("%d",k); } (42)以下程序的输出结果是 a)6 9 9 b)6 6 9 c)6 15 15 d)6 6 15 int d=1; fun(int p) { static int d=5; d+=p; printf("%d ",d); return(d); } main( ) { int a=3; printf("%d \n",fun(a+fun(d))); } (43)以下程序的输出结果是 a)123456780 b)123 456 780 c)12345678 d)147 main( ) { char ch[3][4]={"123","456","78"}, *p[3]; int i; for(i=0;i<3;i++) p[i]=ch[i]; for(i=0;i<3;i++) printf("%s",p[i]); } (44)以下程序的输出结果是 a)1 b)4 c)7 d)5 #include int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main( ) { p=(int*)malloc(sizeof(int)); f(p,a); printf("%d \n",*p); } f(int *s, int p[][3]) { *s=p[1][1]; } (45)以下程序的输出结果是 a)9 b)6 c)36 d)18 #define f(x) x*x main( ) { int a=6,b=2,c; c=f(a) / f(b); printf("%d \n",c); } (46)以下程序的输出结果是 a)4 2 1 1 b)0 0 0 8 c)4 6 7 8 d)8 8 8 8 main( ) { char *s="12134211" ; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; } v[i]++; } for(k=0;k<4;k++) printf("%d ",v[k]); } (47)以下程序的输出结果是 a)afghdefg b)abfhd c)afghd d)afgd #include main( ) { char *p1,*p2,str[50]="ABCDEFG" ; p1="abcd" ; p2="efgh" ; strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf("%s",str); } (48)以下程序的输出结果是 a)#*#*# b)##### c)***** d)*#*#* main( ) { int i; for(i=1;i<6;i++) { if(i%2){printf("#");continue;} printf("*"); } printf("\n"); } (49)若有以下定义和语句: double r=99, *p=&r; *p=r; 则以下正确的叙述是 a)以下两处的*p含义相同,都说明给指针变量p赋值 b)在"double r=99, *p=&r;"中,把r的地址赋值给了p所指的存储单元 c)语句"*p=r;"把变量r的值赋给指针变量p d)语句"*p=r;"取变量r的值放回r中 (50)以下程序的输出结果是 a)编译不通过,无输出 b)aceg c)acegi d)abcdefghi main( ) { int i; for(i='A' ;i<'i';i++,i++) printf("%c",i+32); printf(" \n"); } 二、填空题(每空2分,共40分) 请将每空的正确答案写在答题卡____1_____至___20_____序号的横线上, 答在试卷上不得分。 (1)dos命令分为内部命令与外部命令,path命令是____1____命令。 (2)设当前盘为a盘,当前目录为\x\y,a盘上的一个文件qr.c 在当前目录下的子目录w中。现已将a盘的当前目录改为\D\XY,当前盘改为C盘,如果需指定A盘上的该文件应写成____2____。
酷影网(ky530.com)转载请注明出处,http://www.ky530.com/ncre/02/99-NianJiSuanJiDengJiErJiBiShi-C-YuYanZhenDi-dpl1024.html
关键词: