中大网校引领成功职业人生
未入栈,栈顶元素可以出栈,但A不可能比B先出栈,所以c选项错误。 (21) :B
本题考查的是指向函数的指针。语句“int(*f)(int);”是对一个函数的声明,其中f是指向该函数的指针,该函数有一个整型的参数,函数返回值类型为整型。故答案选B)。
(22) :B
本题主要考查了一维数组指针的赋值和用指针引用数组元素进行运算。选项B)中p2为指向int型变量的指针,而k为int型变量,不能将int型变量直接赋值给指向int型变量的指针,所以选项B)错误,应该为p2=&k。
(23) :A
考查用指针来引用字符数组元素的方法。指针pl+k相当于指针pl向后移动了k个字符的位置,指针p2同理。
(24) :D
本题考查的是switch语句。在switch语句中,表达式的值与某一个(!ase后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式
的值都没有与表达式的值匹配的,就执行default后面的语句,各个case和default的出现次序不影响执行结果。所以在本题中,当k=5和k=4的时候,case都没有与其匹配的值,所以执行了default语句;当k=3时,执行”case 3:n+=k;”得n=3,然后执行default;当k=2时,执行”case2:case 3:n+=k;”得n=5,然后执行default;当k=1时,执行”case l:n+=k;case 2:case 3:n+=k;”使得n加两次k,得到n=7。
(25) :B
用户自定义标识符不能与关键字相同。但可以与库函数名相同,只是一般不建议用户这么做。 (26) :C
定义变量a和变量b为double类型,并对其赋初值。变量之间应以”,”分隔,定义关键字与变量名之间应以空格分隔,语句应以”;”结尾。
(27) :C
本题的考查点是查找程序运行错误的原因。主要考查运算中字符的转换。初看此题,可能不太容易发现错误,该题的运行结果是1.0000,算法错误。s=s+1/n;1/2=0,因为n为整型,所以1/n都为0。这就是导致本题出错的原因。s=s+1/n应改为s=s+1.0/n。(28) :A
main函数是c语言程序的主函数,可以出现在程序中的任何位置。函数是c语言程序的基本模块,函数内部可以再定义其他函数。但函数间可相互调用,被调用的既可以是c语言提供的库函数,也可以是用户自定义函数。 (29) :B
本程序考察的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数
中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn
中大网校引领成功职业人生
本身,称为函数的递归调用,执行结果为l+2+3+4+5+6+7+8+9+10=55. (30) :B
函数的功能是求数组所有元素的和。递归表示为a[3]+a[2]+a[1]+a[0]+f(t,0)=10。
(31) :B
选项中如果x与Y的值相等那么取余时就会有除数为0的情况。C)选项中取余的两个数据都应为整数,不能有一方为实型变量,而a*y的结果为double型。 D)选项表达式本身就错误,不能给表达式赋值。所以,本题答案为B)。
(32) :A (33) :C
int islower(char ch)的功能是判断字符c是否为小写英文字母,当ch为小写英文字母(a—Z)时,返回非
作用是把小写字母转化为大写字母。根据判
断条件可知,只有当空格字符的前一个字符为小写字符时才把该小写字符变成大写,所以选择C)。
(34) :D
在c语言所有的运算符中,逗号运算符的优先级最低。C语言区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值赋予a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输人数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。
(35) :A
根据程序可以分析出系统只分配了一个整型数据的存储空间,把这个空间的地址分别赋给了指针型变量a,b和c。程序利用指针a把数据1写入了该空间,然后利用指针b,把数据2写入该空间,所以原来的1就被覆盖掉了,最后用指针c把数据3写入该空间把数据2覆盖掉了,此空间中最后留有的数据是3。因为3个指针都指向该空间,所以输出数据均为3。
(36) :C
do while语句的一般形式为:d0循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。
(37) :B
当a=1时,(a==1)||(a!=1)为真;当a!=1时,(a==1)||(a!=1)也为真,故正确答案为B)。
中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn
中大网校引领成功职业人生
(38) :C
赋值运算符左边必须是单一变量名,而A)选项中的”y*5=x+z”部分是非法赋值。在求余运算中的操作对象中只能是整型,故选项B)和选项D)是错误的。选项C)为逗号表达式。
(39) :B
数据库管理系统是一种软件系统,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库系统的核心。
(40) :D
字符替换定义格式为:#define标识符(形参表)形参表达式。题中F是代表形参表达式的标识符(字符串)。
二、程序填空题(共18分) (1) :
(1)a[i](2)9(3)*t=n
【考点分析】
本题考查:for循环语句;if语句条件表达式;指针变量。
【解题思路】
填空1:通过for循环语句,来判断是否到字符串结尾,变量i用来存放字符串数组下标,则应填人s[i]。
填空3:将数字字符个数存入变量t中,这里需注意变量t是指针变量。
【解题宝典】
if语句的条件表达式一般会考查三方面的内容:
(1)条件判断,即>与>=、<与<=、==与!=的区别,需要仔细分析题干的意思,确定条件表达式的内容。
(2)逻辑判断,即&&(逻辑与)与||(逻辑或)的区别,需要根据题干确定if条件中若干个条件表达式的并存关系。
(3)=(赋值号)与==(等于号)的区别,注意在if条件中不会出现=(赋值号)。三、程序修改题(共18分)
中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn
中大网校引领成功职业人生
(1) :0
【参考答案】
【考点分析】
本题考查:for循环语句的格式,for循环语句使用最为灵活,其一般形式为:for(表达式1;表达式2;表达式3),注意表达式之间使用”;”相隔;if条件语句的格式,其中if关键字需要区别大小写,这里不能混淆使用。关键字是由C语言规定的具有特定意义的字符串,也称为保留字。用户定义的标识符不应与关键字相同,并且关键字应小写。
【解题思路】
先看循环条件for(i=0,str[i],i++),不难发现此处for循环语句的格式有误,其中表达式之间应以”;”相隔;同时很容易发现if条件语句处的关键字书写错误。四、程序设计题(共24分) (1) :
【考点分析】
本题考查:结构体类型成员运算,指向结构体类型的指针变量作函数参数。
【解题思路】
本题考查自定义形参的相关知识点,程序流程是这样的:在fun()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC*a,此时,引用成员的方式可以使用指向运算符,即a一>ave和a一>s[i],当然也可用(*a).ave和(*a).s[i]。
中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn