void main()
{
int I,g;
system("CLS");
for(I=1;I<1000;I++)
{
g=【1】;
【】
&'*'+5
}
}
【参考答案】
(1) i%10 (2) g*g*g==i
【考点分析】
本题考查: 如何提取数值n的各个位的数值;if语句,该类题
主要判断条件表达式的内容。
【解题思路】
填空1:将一个整数对10求余,就得到这个数的个位数字,并
存于变量g中。
填空2:如果个位数字的立方等于这个数本身,则将这个数
输出。
下列给定程序中,函数fun的功能是:求三个数的最小
公倍数。例如,给变量x1、x2、x3分别输入15、11、2,则输
出结果应当是330。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更
改程序的结构。
试题程序:
#include <stdio.h>
int fun(int x,int y,int z)
{ int j,t,n,m;
/*************found**************/
j=1;
,#,,
7F,66#F,66F,
G,G0
,G*%
#,G*1
,G*C
!
G
!
"#$
%+%+%+G
&'5&%%%)'
$'***'+6%+6%+6%
&'%,*+%,*+%,* -
'+%+%+%
G,%+%+%
&';##$ ###& )
*-'+G
}
【参考答案】
(1)错误:j=1; 正确:j=0;
(2)错误:while (t!=0 && m!=0 && n!=0)
正确:while (t!=0 || m!=0 || n!=0)
【考点分析】
本题考查:变量初始化,根据题目内容,确定变量含义;while
循环条件及"逻辑或"运算。
【解题思路】
(1)j 通过循环加1求出三个数的最小公倍数,当三个数都为1
时,则最小公倍数为1。然而,如果j初始为1时,那么计算最
小公倍数时就从2开始了,所以改为j=0。
(2)不需要同时都不为0,只要有一个不为0,就有最小公倍数。
请编写一个函数fun,它的功能是:将一个数字字符串
转换为一个整数(不得调用C语言提供的将字符串转为整数
的函数)。
例如,若输入字符串"-1234",则函数把它转换为整数
值-1234。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在
函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#include <string.h>
long fun(char *p)
{
}
void main()
{
FILE *wf;
char s[6];
long n;
&'($:)-'
:
,
&'*-'+
7,&'$'+'7'
&7+'*'+'/'
7
!
【参考答案】
long fun(char *p)
{
long n=0;
int flag=1;
if(*p=='-') /*负数时置flag为-1*/
{p++;flag= -1;}
else if(*p=='+') /*正数时置flag为1*/
p++;
while(*p!='-0'
{ n=n*10+*p-'0';/*将字符串转成相应的整数*/
p++;
}
return n*flag;
!
【考点分析】
本题考查:字符串转整数算法。
【解题思路】
if( )的作用是判断它是正数还是负数。while( )循环的作用
是 将 字 符 串 转 成 相 应 的 整 数 。 注 意 :*p 是 一 个 字 符
(如'9'、'4'),并不是一个数,要将其转成相应的数字必须令其
减去'0'(不是'\0'),即*p-'0' 就得到*p这个字符的相应数字,
如 '0'-'0'=0 、 '8'-'0'=8 等 。 在 程 序 的 前 面 加
#include<stdlib.h>,函数atol( )的作用是将字符串p转成长
整型数,它是一个库函数。
第十七套
请补充main函数,该函数的功能是:打印出满足个位
的数字、十位上的数字和百位上的数字都相等的所有三位
数。
本题的结果为:
111 222 333 444 555 666 777 888 999。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在
main函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include <stdlib.h>
#include <stdio.h>
void main()
{
int g, s, b;
system("CLS");
for(g=1; g<10; g++)
, 00
, 00
【】
&'*'+
【】
!
!
【参考答案】
(1) g==s&&s==b或者g==b&&s==b或者g==s&&g==b
(2) g+s*10+b*100
【考点分析】 本题考查: if语句,此类题目基本都是根据题
意确定条件表达式的内容;如何表示百位数n的个位、十位
和百位数,反过来,如果知道个位、十位、百位,如何表示这
个数值n。
【解题思路】
填空1:变量g表示三位数的个位数字,变量s表示三位数的十
位数字,变量b表示三位数的百位数字。注意,表示三个数字
都 相 等 时 , 不 能 写 成 "g==s==b", 而 要 写
成"g==s&&s==b"、"g==b&&s==b"或者"g==s&&g==b"。
填空2:一个三位数可以表示为:百位数字乘以100加上十位
数字乘以10,再加上个位数字。
下列给定程序中,函数fun的功能是:从n个学生的成
绩中统计出低于平均分的学生人数,此人数由函数值返回,
平均分存放在形参aver所指的存储单元中。例如输入8名
学生的成绩:
80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为4(平均分为75.5625)。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更
改程序的结构。
试题程序:
LH
I$++I$$"
I$$"+,
,+8+
8, 8 800
,<8=
$",
, 00
<=$"00
$",6$"
!
"#$
I$<=+$"
#+
1#'234'
&'-9$#)'
$'*'+6#