程序在执行了c=&b;b=&a;语句后,表达式:**c的值是
A)变量a的地址
B)变量b中的值
C)变量a中的值
D)变量b的地址
(44)有以下程序
#include
main()
{ c har str[][20]={"Hello","Beijing"},*p=str;
printf("%dn",strlen(p+20));
}
程序运行后的输出结果是
A)0
B)5
C)7
D)20
(45)已定义以下函数
fun(char *p2, char *p1)
{ while((*p2=*p1)!=’0’){ p1++;p2++; } }
函数的功能是
A)将p1所指字符串复制到p2所指内存空间
B)将p1所指字符串的地址赋给指针p2
C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有’0’
(46)有以下程序
main()
{ int x=3, y=2, z=1;
printf("%dn",x/y&~z);
}
程序运行后的输出结果是
A)3
B)2
C)1
D)0
(47)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为
A)0
B)1
C)-1
D)一个非0值
(48)下列关于C语言数据文件的叙述中正确的是
A)文件由ASCII码字符序列组成,C语言只能读写文本文件
B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
(49)有以下程序
main()
{ int a,*p,i;
p=&a[0][0];
for(i=0;i<9;i++) p[i]=i+1;
printf("%d n",a[1]);
}
程序运行后的输出结果是
A)3
B)6
C)9
D)2
(50)有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。
struct node
{ int data;
struct node *next;
} *p, *q, *r;
_______________________________
| data next data next data next |
| →□□ → □□ → □□→ |
| ↑p ↑q ↑r |
|______________________________|
现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是
A)r->next=q; q->next=r->next; p->next=r;
B)q->next=r->next; p->next=r; r->next=q;
C)p->next=r; q->next=r->next; r->next=q;
(资料东方教育网 http://www.eastedu.com.cn)
D)q->next=r->next; r->next=q; p->next=r;
二、填空题(每空2分,共40分)
(1)计算机软件分为系统软件与应用软件,UNIX属于 〖1〗 。
(2)假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。若使用TYPE命令,则完整的命令为 〖2〗 。
(3)Internet的信息服务方式分为基本服务和扩展服务,电子邮件属于 〖3〗 。
(4)在Windows环境下,利用菜单命令删除固定硬盘上的文件与文件夹,实际上是将需要删除的文件与文件夹移动到 〖4〗 文件夹中。
(5)在Windows环境下,为了进行"添加/删除程序"操作,首先打开 〖5〗 ,然后双击其中的相应图标。
(6)以下程序运行后的输出结果是 〖6〗 。
main()
{ int p=30;
printf("%dn",(p/3>0 ? p/10 : p%3));
}
(7)以下程序运行后的输出结果是 〖7〗 。
main()
{ char m;
m=’B’+32; printf("%cn",m);
}
(8)以下程序运行后的输出结果是 〖8〗 。
main()
{ int a=1,b=3,c=5;
if (c=a+b) printf("yesn");
else printf("non");
}
(9)以下程序运行后的输出结果是 〖9〗 。
main()
{ int i,m=0,n=0,k=0;
for(i=9; i<=11;i++)
switch(i/10)
{ case 0: m++;n++;break;
case 10: n++; break;
default: k++;n++;
}
printf("%d %d %dn",m,n,k);
}
(10 )执行以下程序后,输出’#’号的个数是 〖10〗 。
#include
main()
{ int i,j;
for(i=1; i<5; i++)
for(j=2; j<=i; j++) putchar(’#’);
}
(11)以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
int fun( int n)
{ int m=0,f=1,i;
for(i=1; i<=n; i++)
{ m+=i*f;
f= 〖11〗 ;
}
return m;
}
main()
{ printf("m=%dn", 〖12〗 ); }
(12)以下程序运行后的输出结果是 〖13〗
main()
{ int i,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{ n[i]=n[i-1]*2+1;
printf("%d ",n[i]);
}
}
(13)以下程序运行后的输出结果是 〖14〗
main()
{ int i,j,a[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++) a[j][i]=0;
for(i=0;i<3;i++)
{ for(j=0;j<3;j++) printf("%d ",a[i][j]);
printf("n");
}
}
(14)以下程序运行后的输出结果是 〖15〗
int a=5;
fun(int b)
{ static int a=10;
a+=b++;
printf("%d ",a);
}
main()
{ int c=20;
fun(c);
a+=c++;
printf("%dn",a);
}