0 引言
1历年川大考研真题讲评
1.1 四川大学2000年攻读硕士学位研究生入学考试试题 及 答案
C语言部分
一、选择题(每小题2分,共10分)
(下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。
1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D,E )
A、*(a+1)为元素6的地址
这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。
B、*(a[1]+1)的值为2
为8,故B不正确
C、**(a+1)+2的值为8
这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确;
D、a[0]与a相同
因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。
E、a[1][2]的值为10
它是指第二行的第三个元素,为10,正确
2、对函数的正确使用方法描述( A,C,D )。
A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组
B、实参数组元素和形参数组元素类型可以不一致
C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度
E、数组名做参数属于值传递
3、对静态变量的正确描述( A,B,D,E )
A、静态局部变量在静态存储区内分配单元( )
B、静态外部变量可以赋初值,也可以不赋初值
C、静态外部变量的作用与外部变量相同
D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。
E、静态局部变量只赋一次初值
4、下列描述正确的是( A ,C)。
A、由main 函数及其参数argc和* argv[]可以实现命令行方式
B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中
//先写缓冲区数据到文件中,再释放文件指针
C、字符数组并不要求它的最后一个字符是‘\0’
//是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。
D、‘A’和“A”都是字符串常量
E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7
5、在缓冲文件系统中用于读写的函数有( A,B,D )
A、putchar () B、fread() C、rewind () D、purw() E、fseek()
二、程序阅读,并给出运行结果(共10分,每题5分)。
(1)main()
{ unsigned a,b,x
int n;
a=0x763 输出结果:
n=6;
b=a<<(12-n);
x=(a>>n-2)^b; //+,-,的优先级比<<,>>高。
printf(“\nb=%x,\nx=%x”,b,x);
}
在用2个字节表示整数的系统中
结果为
d8c0
d8b6
在用4个字节表示整数的系统中
结果为
1d8c0
1d8b6
故以上两种结果都正确。
(2) #include 〈stdin.h〉
struct m {int x;
int *y;
} *p;
int a [4]={12,33,-40,100};
struct m b [4]={10,&a[2],9,&a[3],8,&a[0],7,&a[1]}'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论