1[简答题]下列给定程序中fun函数的功能是:求表达式s=aa…aa-…-aaa-aa-a
(此处aa…aa,表示n个a,a和n的值在1~9之间)
例如,a=3,n=6,则以上表达式为:
s=333333-33333-3333-333-33-3其值是296298。
a和n是fun函数的形参,表达式的值作为函数值传回main函数。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)long s=0,t=0;
(2)t=t/10;
【考点分析】
本题考查:变量赋初值操作;求余运算和除法运算的区别。
【解题思路】
(1)t用来存放每次循环后的多位数,第一次循环时,t应当是个位数,所以t的初始值应为0。
(2)根据题意,这里不需要求余数,而是要去掉个位数,重新组合为一个数,因此运用除法运算。
【解题宝典】
去掉数值n的个位数的方法是采用除法运算,如果需要取出个位数则使用求余运算,不要混淆。
2[简答题]编写函数fun,其功能是:求出1~1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
参考解析:
【参考答案】
【考点分析】
本题考查:if语句,用来判断能被7整除或者能被ll整除,但又不能同时被7和11整除的数,此处需充分理解“逻辑与”和“逻辑或”的区别;for循环语句的循环条件用来控制循环变量取值范围。’
【解题思路】
该题需要运用循环判断结构来实现,其中循环语句比较容易,只要确定循环变量的范围即可,下面来看判断语句。题目要求找出能被7或11整除,但不能同时被7和11整除的所有整数,能同时被7和11整除的整数一定能被77整除,且不能被77整除的数不一定就是能被7或11整除的数,因而,可得出程序中的if语句。注意(i%7==o||i%11==0)两边必须要有小括号。
3[单选题] 设有定义:char p E]={’1’,‘2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( )。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
参考答案:A
参考解析:根据题目中的定义可以知道sizeof(p),计算的是数组P中所有元素所占用的字节数,而不是ch”型数据所占字节数。
4[单选题] 以下fun函数的功能是将形参s所指字符串内容颠倒过来
在横线处应填同入的内容是
A.+1B.-1C.+0D.k=0
参考答案:B
参考解析:本题考查字符串处理函数strlen,strlen计算一个字符串的长度,包含结尾符,所以本题中j的初始化应该是从最后一个字符开始,所以应该将得到的字符串长度减1,选项B正确。
5[单选题] 设有定义语句:
则以下叙述正确的是
A.aa[0]存放了字符串“abcd“的首地址
B.aa数组的两个元素只能存放含有4个字符的一维数组的首地址
C.aa数组的值分别是字符串”abcd”和”ABCD”
D.fla是指针变量,它指向含有两个元素的字符型数组
参考答案:A
参考解析:本题中定义了一个指针数组,数组中存放的是字符指针,aa数组的两个元素分别包含了5个字符,所以可以存放5个字符的一维数组的首地址,所以B选项错误。aa数组的值是指向那两个字符串的字符指针,而不是那两个字符串,所以C选项错误。Eta本身是一个指向两个字符指针的指针,所以D选项错误。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |