main()
{
chars[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
}
程序运行后的输出结果是A
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);
}
该函数的功能是D
A)计算a和b所指字符串的长度之差
B)将b所指字符串复制到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
(44)有以下程序
main()
{
intnum[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=1;j<=i;j++)printf("%c",'');
for(j=j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是B
A)i-1
B)i
C)i+1
D)4-i
(45)有以下程序
point(char*p)
{
p+=3;
}
main()
{charb[4]={'a','b','c','d'},*p=b;
point(p);printf("%c\n",*p);
}
程序运行后的输出结果是A
A)a
B)b
C)c
D)d
(46)程序中若有如下的说明和定义语句
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下选项中对函数fun的正确调用语句是A
A)(*f1)(a);
B)*f1(*s);
C)fun(&a);
D)ch=*f1(s)
(47)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。
structnode
{
intdata;
structnode*next;
}*p,*q,*r;
现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是D
A)p->next=q->next;
B)p->next=p->next->next;
C)p->next=r;
D)p=q->next;
(48)以下对结构体类型变量td的定义中,错误的是C
A)typedefstructaa
{
intn;
floatm;
}AA;
AAtd;
B)structaa
{
intn;
floatm;
}td;
structaatd;
C)struct
{
intn;
floatm;
}aa;
structaatd;
D)struct
{
intn;
floatm;
}td;
(49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是D
A)feof(fp)
B)ftell(fp)
C)fgetc(fp)
D)rewind(fp)