本文提供2005年高级语言程序设计考研真题答案及解析,以下为具体内容
1、C语言中要求对变量做强制定义的主要理由是()。
A、便于移植
B、便于写文件
C、便于编译预处理程序处理
D、便于确定类型和分配空间
2、以下程序的输出结果是()。main(){ char *s="121"; int k=0,a=0,b=0; do{ k++; if(k%2==0){ a=a+s[k]-'0'; continue; } b=b+s[k]-'0'; a=a+s[k]-'0'; }while (s[k+1]); printf("k=%d,a=%d,b=%d",k,a,b);}
A、k=3,a=2,b=3
B、k=3,a=3,b=2
C、k=2,a=3,b=2
D、k=2,a=2,b=3
3、下列关于c语言的局部变量和全局变量所采用的存储类别的描述中,错误的是()。
A、动态局部变量一旦离开函数,其值就消失
B、静态局部变量离开函数,其值仍保留
C、寄存器变量一旦离开函数,其值就消失
D、静态外部变量既可以在本文件引用,也可以在其他文件中引用
4、已知函数原型为:struct tree *f(int x1,int *x2,struct tree x3,struct tree *x4)其中tree为已定义过的结构,且有下列变量定义: struct tree pt,*p; int m;则正确的函数调用语句()。
A、&pt=f(10,&m,pt,p);
B、f(m+1,&m,p,p);
C、p=(m+1,&(m+2),*p,p);
D、p=f(m++,(int*)p,pt,&pt);
5、C语言的函数调用过程中,如果函数a调用了函数b,函数b又调用了函数a,则()。
A、称为函数的直接递归
B、称为函数的间接递归
C、称为函数的递归定义
D、C语言不允许这样的递归形式
6、说明语句int *(*p)();的含义是()。
A、p是一个指向int型数组的指针
B、p是指针变量,指向一个整型数据
C、p是一个指向函数的指针,该函数的返回值是一个整型
D、p是一个指向函数的指针,该函数的返回值是一个指向整型的指针
7、以下程序的输出结果是()。main(){ static char a[]="language",b[]="program"; char *p1=a,*p2=b; int k; for(k=0;k<7;k++) if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k));}
A、gae
B、ga
C、language
D、有语法错误
8、设有以下语句:struct st{ int n; struct st *next;};static struct st a[3]={5,&a[1],7,&a[2],9,NULL},*p;p=&a[0];
A、p++->n
B、p->n++
C、(*p).n++
D、++p->n
9、阅读以下程序以及对程序功能的描述,其中正确的是()。main(){ FILE *in,*out; char ch,infile[10],outfile[10]; scanf("%s",infile); scanf("%s",outfile); if((in=fopen(infile,"r"))==NULL) exit(0); if((out=fopen(outfile,"w"))==NULL) exit(0); while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out);}
A、程序完成将磁盘文件的信息在屏幕上显示的功能
B、程序完成将两个磁盘文件合二为一的功能
C、程序完成将一个磁盘文件复制到另一个磁盘文件中
D、程序完成将两个磁盘文件合并,并且在屏幕上显示
10、以下程序的输出结果是()。main(){ int x; x=try(5); printf("%d\n",x); return 0;}try(int n){ if(n>0) return (n*try(n-2)); else return (1);}
A、15
B、120
C、1
D、前面答案均是错误的