首页>计算机等级考试>历年真题>正文
2010年9月计算机等级考试真题及答案:二级C模拟

www.zige365.com 2011-12-14 14:20:04 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

选项D),在未调用函数时,函数的形参不占内存的存储单元,只有调用时才动态分配存储空间,所以形参不能说明为静态存储,而局部变量可以说明为静态存储。

(32)答案:(A)解析: 在解答本题时应该考虑两个问题:结构体变量的长度及sizeof()求字节数的运算符。结构体变量的长度是其内部成员总长度之和,本题中,struct date中包含year,month,day三个整型变量。一个整型变量所占的字节数为2。

(33)答案:(B)解析: 本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于s=s*s。

(34)答案:(D) 解析:在C语言中,逻辑运算符有4个,它们分别是!(逻辑非)、||(逻辑或)、&&(逻辑与)、^(异或)。在位运算里面还有&(位与)、|(位或)的运算。本题考查逻辑与运算符的用法,在表达式x=(a&&b)&&(c《′B′);中,先判断a&&b条件,逻辑与条件的两边都要保证为1,即a和b都成立,当然c《′B′是成立的,显然,该表达式的值为1。

(35)答案:(C) 解析: *p[3]是一个指针数组,它的3个元素都是指向整型数的指针。p[0]存放的是a[1][0]的地址,则p[0]+1存放的是a[1][1]的地址,所以*(p[0]+1)代表的元素是a[1][1]。

(36)答案:(D) 解析: 带参数的宏定义如下:#define 宏名(参数)字符串。本题中,宏定义的作用是指定用标识符PI来代替“3.1415926”这个字符串,但宏定义不是C语句,不必在行末加分号。

(37)答案:(D) 解析:本题中需要填空的是for循环的第3个条件,即“若分成9个零件一组,则多5个零件”,当总零件数零减去5后,并与9取余为0即可满足本题的条件。

(38)答案:(D) 解析:运算符“%”的两侧都应该是整型数。另外,本题需要掌握的知识点是:x%=k,等价于x=x%k。

(39)答案:(D )解析: 这是一个给结构体数组赋初值的问题。它的赋初值过程与上述二维数组赋初值很相似。只是这里的大括号中的初始值没有按行给出(即没有用大括号分开),在这种情况下,初始值将按数组的各个元素在内存中的存放次序逐个逐个地赋给各元素。现在结构体数组的各个元素在内存中的存放次序是这样的:class[0].name,class[0].age,class[1].name,class[1].age.。.,由此可以知道,包含字母′M′的字符串“Mary”赋值给了元素class[2].name,则与字符′M′先对应的表达式是class[2].name[0]。

(40)答案:(A) 解析: 函数strcpy的功能是字符串拷贝,用法char *strcpy(char *str1,char *str2),作用是将字符串2复制到字符串1中去。二维数组可以看做是一种特殊的一维数组,它的元素又是一个一维数组。本题把 arr看做是一个一维数组,它有两个元素:arr[0],arr[1],每个元素又是一个包含4个元素的一维数组。

(41)答案:(B) 解析: 在main函数中,对f(1)和f(2)的值进行了累加。

f(1)=1

f(2)=f(1)+1=2

最后,j的值为1+2=3

(42)答案:(A) 解析: 程序实现的功能是对数组x的前四个元素按从大到小的顺序排列,后四个元素按从小到大的顺序排列,最后将数组x输出。

(43)答案:(B) 解析:函数的调用其形参可以是指针。

(44)答案:(C)解析: C语言规定,在一个函数中调用另一个函数(即被调用函数)需要具备的条件有:①首先被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。②如果使用库函数,一般还应该在本文件开头用#include命令将函数调用有关库函数时所需要到的信息“包含”到本文件中来。③如果使用自定义函数,而且该函数与调用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数作声明,即向编译系统声明将要调用此函数,并将有关信息通知编译系统。

(45)答案: (C)解析: 使用fprintf函数输出字符串到文件fp1时,将覆盖原文件中的内容。

(46)答案:(B)解析: 该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2*(N+1)+1,这就是宏名和变量名之间的区别),再将N代进去,得到NUM的值为6。

(47)答案:(B)解析: 本题考查两个知识点:自加自减运算符和do-while循环语句。题中b-=a等价于b=b-a;a++的含义是在使用a之后,使a的值加1;b--的含义是在使用b之后,使b的值减1。

(48)答案:(B) 解析:该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2*(N+1)+1,这就是宏名和变量名之间的区别),在将N代进去,得到NUM的值为6。

(49)答案:(B)解析: 在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式相类似。C语言使字符型数据和整型数据之间可以通用。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。

(50)答案:(D) 解析:该题中考查的是简单的单链表,下图就是赋完值后的示意图:容易看到p-》num=10,而q-》next就是r,所以q-》next-》num=30,故答案为40。

pqr

10 next

20

30

本新闻共6页,当前在第4页  1  2  3  4  5  6  

我要投稿 新闻来源: 编辑: 作者:
相关新闻