2009年c语言试卷 下载本文

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 int x, y, z, w; void p(int *y, int x) {

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 #include int main() {

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