12. 下列程序段输出_______。 int a=1;int b=2; void change(int *p) {
int *temp=&b; p=temp; *p=3; } int main() {
int *p=&a; change(p); printf(\}
13. 用 typedef 写出类型定义 ,使得NEWSTR表示含有20个元素的字符数组类型。
14. 有定义:int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*q[4],k;则下列程序段的输出是_______。
for(k=0;k<4;k++) q[k]=&a[k*3]; printf(\
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 5 / 8
15. 下列程序段执行后,z的值是_______。 static struct {
int x, y[3];
} a[3] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p=&a[-1]; int z;
z=*((int *)(++p+1)-1);
试题三、程序阅读题(每小题5分,共30分) 1. 下列程序的输出是_______。 #include
static int w;
*y++; x++; w = x+*--y;
printf(\}
int main(void) {
int x, y, z, w;
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 6 / 8
x=y=z=w=1; do{
static int x; p(&x, y);
printf(\ } while(0); return 0; }
2. 下列程序的输出是_______。 #include
char a[20]=\
char *s=\ int i, j;
for(p=s; *p; p++) { j=0;
while (*p>=a[j] && a[j]!='\\0') j++;
for(i=strlen(a); i>=j; i--) a[i+1] = a[i];
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 7 / 8
a[j]=*p; }
puts(a); return 0; }
3. 有一单向链表h如下图所示,表示整数序列(1,1,2,4,4,3,5,5,5,4)。 h
有关变量定义: struct node {
int info;
1 1 2 5 4 struct node *next; } *h, *p, *q;
现执行以下程序段,则输出的结果是:_______。 q=h;
if (h && h->next!=NULL) p=h->next; else return 0; while (p!=NULL) { if (q->info!=p->info) {
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 8 / 8