07年4月等级考试二级C语言模拟练习一[3]

文章作者 100test 发表时间 2007:04:06 21:22:20
来源 100Test.Com百考试题网


计算机等级考试训练软件《百宝箱》

(35)在C语言中,形参的缺省存储类是
A)auto
B)register
C)static
D)extern
【答案】A
【解析】本题考核的知识点是定义函数时形参的缺省存储类。在C语言中,形参的缺省存储类为auto。

(36)若指针p已正确定义,要使p指向两个连续的整型动态存储单位,不正确的语句是
A)p=2*(int *)malloc(sizeof(int)).
B)p=(int *)malloc(2*sizeof(int)).
C)p=(int *)malloc(2*2).
D)p=(int *)malloc(2,sizeof(int)).
【答案】A
【解析】malloc()函数的调用格式是“malloc(n)”,作用是申请n个字符的存储单元并把该存储区的首地址作为返回值,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址。选项D多了一个参数,不符合malloc()函数的调用格式;整型变量在有的计算机系统里占4个字节,并不一定在所有的计算机系统里都是两个字节;选项A中是申请一个整型的存储空间并把该存储空间的首地址乘以2,这样的做法是不正确的,其存储空间为没乘以2之前的存储空间的2倍的连续存储空间的地址。

(37)以下程序的输出结果是
main()
{ char x=040.
printf("%o\n",x<<1).
}
A)100
B)80
C)64
D)32
【答案】A
【解析】首先将八进制040转换成二进制数000100000,再将此二进制数左移一位为001000000,输出时转换成八进制数100。

(38)若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A)fopen("A:\user\abc.txt", "r")
B)fopen("A:\\user\\abc.txt", "r ")
C)fopen("A:\user\abc.txt", "rb")
D)fopen("A:\\user\\abc.txt","w")
【答案】B
【解析】本题考核的知识点是文件名的表示法以及文件的读写模式。由于“\”是转义字符,所以在文件名中的“\”用“\\”来表示。要打开文本文件进行读写,应使用读写模式“r ”。

(39)以下不能正确进行字符串赋初值的语句是
A)char str[5]="good! ".
B)char str[]="good! ".
C)char *str="good! ".
D)char str[5]={g, o, o, d}.
【答案】A
【解析】选项A定义了一个字符数组str,具有5个元素,但赋初值的时候,初值个数却是6个(有一个\0,);选项B定义了一个字符数组str并给它赋初值,由于省去了长度定义,长度由初值个数确定,相当于str[6];选项C定义了一个字符型指针变量并用一个字符串给它赋初值,使该字符型指针指向了该字符串;选项D是对字符型数组中单个元素依次赋初值。

(40)若有下面的说明和定义:
struct test
{ int ml.char m2.float m3.
union uu{char ul[5].int u2[2].} ua.
} myaa.
则 sizeof(struct test)的值是
A)12
B)16
C)14
D)9
【答案】A
【解析】结构体所占用的存储空间是其所有成员占用的存储空间之和,而共用体所占用的存储空间是成员中占用存储空间最大者的空间,共用体类型uu是结构体的成员,它所占的内存长度为最大成员的长度,即字符型数组u1的长度,即1×5=5。每个整型数据占用2个字节,每个字符型数据占用一个字节,单精度型数据占4个字节,myaa为结构体变量,它所占的存储空间为各个成员所占存储空间之和,即2 1 4 5=12。

(41)若有定义:int aa[8];。则以下表达式中不能代表数组元素aa[1]的地址是
A)&.aa[0] 1
B)&.aa[1]
C)&.aa[0]
D)aa 1
【答案】C
【解析】在C语言中,数组的地址和数组中的第一个元素的地址相同。数组中第一个元素地址的表示方法为&.aa[0],与其等价的有&.aa[0] ;选项A为数组的第1个元素的地址下移一位即是第二个元素aa[l]的地址;B也为数组的第二个元素的地址,选项D中aa表示数组的地址,加1表示数组首地址后移一位,即代表数组元素中的第二个元素aa[1]的地址。

(42)以下程序的输出结果是
f(int b[],int m,int n)
{ int i,s=0.
for (i=m.i<n.i=i 2)s=s b[i].
return s.
}
main()
{ int x,a[]={1,2,3,4,5,6,7,8,9}.
x=f(a,3,7).
printf("%d\n",x).
}
A)10
B)18
C)8
D)15
【答案】A
【解析】在main()函数中定义了一个变量x,以及一个有9个元素的数组a,并且每个元素分别赋初值为1、2、3、4、5、6、7、8和9。执行函数调用f(a,3,7),把a的首地址赋给形参b,把3和7分别赋给形参m和n。在f()函数中,for循环执行了2次:第一次,i的值为3,相当于执行了语句“s=s b[3]”,b[3]的值就是a[3]的值4,故s的值变为4;第二次,i值为5,相当于执行了语句“s=s b[5];”,b[5]的值为6,故s的值变为10。把s作为函数值返回并赋值给x。

相关文章


07年4月等级考试二级C语言模拟练习一[4]
07年4月等级考试二级C语言模拟练习一[3]
07年4月等级考试二级C语言模拟练习一[1]
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛