1、程序D1.c的功能是从键盘读入一个数并在屏幕上显示。 int main(void) {
int xy2;
/*********Found************/
scanf(\"%s\", &xy2);
//改为:scanf(\"%d\", &xy2);
/*********Found************/
printf(\"xy2=%5d\\n\", &xy2); //改为:printf(\"xy2=%5d\\n\",xy2);
return 0; }
2、程序D2.c的功能是调用函数,显示两个实数间最大的一个。
#include
float fmax(float x, float y);
int main(void) {
/*********Found************/
float l, 1;
//i
l = 3.0;
i = 5.6f;
/*********Found************/
printf(\"fmax(%5.2f, %5.2f)=%5.2f\\n\", i, l, fMax(i, l)); // fmax
return 0; }
/*********Found************/ int fmax(float x, float y)
//改:float {
if (x
else return x; }
3、程序D4.c的功能是计算半径为2+3的圆的面积。
#include
#define PI 3.14 /*********Found************/ #define S(bj) PI*bj*bj
//改: PI*(bj)*(bj)
int main(void) {
/*********Found************/
int mianJi;
//改为:double
mianJi = S(2+3);
printf(\"mian ji=%5.2f\\n\", mianJi);
return 0; }
4、相似题:D3.C,程序D5.c的功能是将字符串yy显示在屏幕上。 #include
int main(void) {
/*********Found************/
char yy[100] = \"ok??\\n\",
//改为:;
/*********Found************/
prntf(\"%s\", yy);
//改:printf
return 0; }
5、考查点:数据类型选择,/运算符的使用功能是计算1/1 + 1/2 + „ + 1/N之和并显示。 #include
#define N 10
int main(void) {
/*********Found************/
long jieguo = 0;
//改:float
int fm;
for (fm = 1; fm
{
/*********Found************/
jieguo += 1 / fm;
//改:(float) 1 / fm
}
printf(\"%8.6f\\n\", jieguo);
return 0; }
6、考查点:输入分隔格式控制,循环体的定义, D12.c的功能是从键盘读入a和b的值(输入格式限定为仅a,b),在屏幕上显示b行a。
#include
int main(void) {
int a, b;
/*********Found************/
scanf(\"%d%d\", &a, &b);
//中间加’,’
while (b > 0)
/*********Found************/
___________
//括号’{’
printf(\"%d\\n\", a);
b--;
/*********Found************/
___________
//括号’}’
printf(\"bye bye!\\n\");
return 0; } 7考查点:输入格式控制、变量交换,程序D1000.c的功能是从键盘输入3个浮点数a,b,c(输入时abc之间以空格相隔),首先按照输入顺序显示在屏幕上,然后按从小到大顺序把它们输出到屏幕上。
#include
int main(void) {
float a, b, c, t;
printf(\"please input three numbers:\\n\");
/*********Found************/
scanf(\"%f%f\", &a, &b, &c); //改:%f%f%f
printf(\"before sort:a=%g,b=%g,c=%g\\n\", a, b, c);
if (a > b)
{
t = a;
a = b;
/*********Found************/
b = a; //改:t
}
if (a > c)
{
t = a;
a = c;
c = t;
}
if (b > c)
{
t = b;
b = c;
c = t;
}
printf(\"after sort:a=%g,b=%g,c=%g\\n\", a, b, c);
return 0; } 8考查点:格式化输出、数据类型的正确使用,程序D1001.c的功能是求分数序列:2/1,3/2,5/3,8/5,13/8,21/13,....前20项之和,要求显示的结果中小数部分有4位。
#include
#define T 20
int main(void) {
int n;
/*********Found************/
long i, j, temp, sum;
i = 2;
j = 1;
sum = 0;
for (n=1; n
{
sum = sum + i / j;
temp = i;
i = i + j;
j = temp;
}
/*********Found************/
printf(\"2/1+3/2+5/3+8/5+13/8+...=%5.2f\\n\", sum); //改:.4
return 0; } 9考查点:用算术表达式实现数据交换,程序D1002.c的功能是实现两数交换。
#include
int main(void) {
int x = 5, y = 9;
x = x + y;
y = xx; //改:x – y;
printf(\"x=%d, y=%d\\n\", x, y);
return 0; } 10考查点:整型常量表示、输出项表示,程序D1003.c的功能是将16进制数100转换为10进制数输出。 #include
int main(void) {
/*****Found*****/
int i = 100; //0x100
/*****Found*****/
printf(\"%d\\n\", &i);
//改:去掉&
return 0; }
11、程序D1004.c的功能是输入姓名,屏幕输出问候。 #include
int main(void) {
char s[10];
printf(\"please input your name:\");
/*********Found************/
scanf(\"%c\", s); //改%s
printf(\"hello \");
/*********Found************/
puts(s[10]); //改:s
return 0; } 12考查点:输入数据分隔,输出项表示,程序D1005.c的功能是从键盘读入两个整数并在屏幕上显示。要求:输入时限定两数之间仅以逗号隔开。 #include
int main(void) {
int a, b;
/*********Found*********/
scanf(\"%d%d\", &a, &b);
//改:中间加’,’
/*********Found*********/
printf(\"a=%d,b=%d\\n\", &a, &b); //去掉&
return 0; }
13、考查点:输入格式控制、if语句,程序D1006.c的功能是判断输入的数据是否与已经给出的数据j相等。
#include
int main(void) {
long int i = 79870, j = 23;
/*****Found*****/
scanf(\"%f\", &i); //改:%ld
/*****Found*****/
if (j == i);
{
printf(\"Equal!\");
}
else
{
printf(\"Not equal!\");
}
return 0; }
14、考查点:字符输入函数使用,分支条件表示,程序D1007.c的功能是使用getchar方式从键盘读入一个字符,判断该字符是否大写字符。 #include
int main(void) { char ch;
/****Found****/ getchar(ch); // ch = getchar(); /*****Found*****/ if (\'A\'
//&& {
printf(\"yes\"); } else {
printf(\"no\"); }
return 0; }
15、考查点:switch语句结束、case后常量表示,程序D1008.c的功能是判断用户是不是输入的整数0。
#include
int main(void) {
int n;
scanf(\"%d\", &n);
/****Found****/
switch (n);
//去掉’;’
{
/****Found****/
case0:
//中间加空格
printf(\"Zero\\n\");
break;
default:
printf(\"Non-Zero\");
break;
}
return 0; }
16、考查点:switch语句、case后常量表示,程序D1009.c的功能是输入一个整数,如果为1时输出100,为2时输出200,其它输出0。
#include
int main(void) {
int x, y;
scanf(\"%d\", &x);
switch (x)
{
/*********Found************/
case x == 1: //改:1
y = 100;
break;
/*********Found************/
case x == 2: //改:2
y = 200;
break;
default:
/*********Found************/
y = 500;
//改:0
break;
}
printf(\"%d\\n\", y);
return 0; }
17、考查点:switch语句case常量表示,循环条件表示,程序D1010.c的功能是输入若干字符数据(回车表示输入结束),分别统计其中‘A’、‘B’、‘C’的个数。 #include
int main(void) {
char c;
int k1 = 0, k2 = 0, k3 = 0;
/*********Found************/
while (c = getchar() != \'\\n\')
//加括号()
{
switch (c)
{
/*********Found************/
case A:
//加’’
k1++;
break;
case \'B\':
k2++;
break;
case \'C\':
k3++;
break;
default :
;
}
}
printf(\"A=%d,B=%d,C=%d\\n\", k1, k2, k3);
return 0; }
18、考查点:一维数组定义、数组元素引用、输入和输出,程序D1016.c的功能是从键盘输入5个整数,保存到一整型数组变量中(此数组只能保存5个数),并在屏幕上按逆序输出。 #include
int main(void) {
/*********Found*********/
int n=5, i, a[n];
//改为5
printf(\"\\ninput 5 numbers:\");
/*********Found*********/
for (i=1; i
{
scanf(\"%d\", &a[i]);
}
for (i=n-1; i>=0; i--)
{
printf(\"%d\\t\", a[i]);
}
return 0; }
19、考查点:数组的输入和数组元素的引用,程序D1017.c的功能是输入10个浮点数,并输出这组数中的最大值和最小值。
#include
int main(void) {
float a[10], max, min;
int i;
printf(\"Please input 10 floats\");
for (i=0; i
{
/*********Found************/
scanf(\"%f\", _____); // &a[i]
}
max = min = a[0];
for (i=1; i
{
/*********Found************/
if (_____)
// max
{
max = a[i];
}
if (min > a[i])
{
min = a[i];
}
}
printf(\"Max number is:%.2f\\nMin number is:%.2f\\n\", max, min);
return 0; } 20、考查点:函数声明,静态变量使用,程序D1021.c的功能是依次输出3^1到3^5。
#include
/*****Found*****/ int f(n);
//用定义形式:int n
int main(void) {
int i;
for (i=1; i
{
printf(\"%d\\n\", f(3));
}
return 0; }
int f(int n) {
/*****Found*****/
int p = 1; //改: static int
p = p * n;
return p; }
21、考查点:静态变量使用,函数调用,程序D1023.c的功能是函数outnum输出自己是第几次被调用。 #include
void outnum(void);
int main(void) {
int i;
for (i=0; i
{
/*********Found************/
outnum(i); //改: outnum()
}
return 0; }
void outnum(void) {
/*********Found************/
int i = 0;
//改:static int i = 0;
i++;
printf(\"%d\\n\", i); }
22、考查点:函数调用、函数定义,程序D1024.c的功能是调用子函数Average()求两数的平均值,并输出到屏幕上。 #include
/*********Found*********/ int Average(x, y);
//用定义形式:int x, int y
int main(void) {
int a = 12;
int b = 24;
int ave;
/*********Found*********/
ave = Average(int a, int b); //用使用形式:a, b
printf(\"Average of %d and %d is %d.\\n\", a, b, ave);
return 0; }
/*********Found*********/ int Average(x, y) //int x, int y {
int result;
result = (x + y) / 2;
return result; }
23、考查点:函数一般调用和静态变量,程序D1025.c的功能是输入一整数n(n>0),main()函数中调用子函数Func()n次,并在屏幕上打印出每次调用该子函数的次数。 #include
void Func(void);
int main(void) { int i, n;
printf(\"\\ninput a data:\"); scanf(\"%d\", &n); for (i=0; i
/*********Found*********/
________________________
// Func() }
return 0; }
void Func(void) { /*********Found*********/ ________________________
//static int times = 0;
times++; printf(\"Func() was called %d time(s).\\n\", times); }
难度2
1、考查点:用指针访问字符数组元素,程序D3.c的功能是将字符串yy在屏幕上输出。
#include
int main(void) {
/*********Found************/
char yy[200] = \"ok??\\n\"; //改为:*yy
/*********Found************/
fol (; *yy; yy++)
//改为:for
{
putchar(*yy);
}
return 0; }
2、考查点:字符数组定义,字符串输出控制,标准字符串函数的使用,程序D6.c的功能是从键盘读入一行字符(包括空格、TAB等字符)并在屏幕上显示。 #include
int main(void) { /*********Found************/
char yy;
//改为:yy[128]
/*********Found************/ getchar(yy);
//改为:gets
/*********Found************/ printf(\"%y\", yy);
//改为:%s
return 0; }
3、考查点:if-else形式条件的分析,数据类型选择,程序D7.c的功能是判断x和y是否相等,相等则显示x=y,不等则显示xy。 #include
int main(void) {
/*********Found************/
char x, y; //改为:int
x = 39270;
y = 41001;
/*********Found************/
if (x != y)
//改为:==
{
printf(\"x=y\");
}
/*********Found************/
else;;
//去掉;;
{
printf(\"xy\\n\");
}
return 0; }
4、考查点:文件路径名表示,文件打开方式选择,文件打开成功判断,程序D8.c的功能是打开文件d:\\te.c用于读并判断打开是否成功。 #include
int main(void) { FILE *fp; /*********Found************/ char fileName[] = \"d:\\te.c\"; //改为:\\
/*********Found************/ fp = fopen(fileName, \"w\");
//改为:r
/*********Found************/ if (fp is NULL)
//改为:== {
puts(\"File Open Error!\");
return 1; } putchar(fgetc(fp)); fclose(fp);
return 0; }
5、考查点:指针,内存分配、内存释放函数的使用,程序D9.c的功能是申请100个字节的内存空间,显示其首地址,然后释放申请到的内存空间。
#include #include
int main(void) {
/*********Found************/
char pch[2];
//改为:*pch
/*********Found************/
if (pch = (char *)malloc(100) == NULL)
//将红色部分括起来
{
printf(\"malloc memory fail!\\n\");
return 1;
}
printf(\"%p\\n\", pch);
/*********Found************/
close(pch);
//改为:free
return 0; }
6、考查点:指针作函数参数,函数调用,程序D14.c的功能是调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值。
#include
/*********Found************/ void swap(int x, int y); //改为:int *x, int *y
int main(void) {
int a = 3, b = 4;
/*********Found************/
swap(a, b);
//改为:&a, &b
printf(\"a=%d b=%d\\n\", a, b);
return 0; }
/*********Found************/ void swap(int x, int y)
//改为:int *x, int *y {
int tmpX;
/*********Found************/
___________
// tmpX =*x;
*x = *y;
/*********Found************/
*y = x;
//改为:*y = tmpX; }
7、考查点:结构体变量定义,结构体成员的输入、输出,程序D16.c的功能是worker2的信息使用结构体存储,从键盘读入其各项信息并显示。
#include
int main(void) {
struct WKER
{
long ID;
long int num;
char name[20];
char sex;
/*********Found************/
} ;
//改为:worker2;
worker2.ID = 1L;
/*********Found************/
scanf(\"%s %s %s\", &worker2.num, worker2.name, &worker2.sex); //改:%ld%s%c
/*********Found************/
printf(\"worker\'s info: num=%s name=%s sex=%s\\n\",
worker2.num, worker2.name, worker2.sex);
//改为:%ld %c
return 0; }
8、考查点:复合语句、变量作用域,程序D18.c的功能是从键盘上读入10个大于0的数,调用函数dispMaxNum显示其中最大的一个。 #include
int maxiNum = 0;
void dispMaxNum();
int main(void) {
int i, oneNumber, maxNumber = 0;
printf(\"Please input 10 int number:\");
{
int maxNumber = 0;
/*********Found************/
___________
//{
for (i = 0; i
{
scanf(\"%d\", &oneNumber);
if (oneNumber > maxNumber)
{
maxNumber = oneNumber;
}
}
}
/*********Found************/
___________
// maxiNum = maxNumber
/*********Found************/
___________
//}
dispMaxNum();
return 0; }
void dispMaxNum() {
/*********Found************/
printf(\"maxNumber=%d\\n\", maxiNum); }
9、考查点:循环条件表示,循环体中改变循环条件,程序D1011.c的功能是从输入数据中统计正整数和负整数的个数。用输入0来结束输入,变量i存放正整数个数,变量j存放负整数的个数。 #include
int main(void) {
int i = 0, j = 0, n;
printf(\"\\ninput numbers:\");
scanf(\"%d\", &n);
/*********Found*********/
while (______________)
// n 或者n != 0
{
if (n > 0)
{
i++;
}
if (n
{
j++;
}
/*********Found*********/
_________________________
// scanf(\"%d\", &n);
}
printf(\"i=%d,j=%d\", i, j);
return 0; }
10、考查点:枚举算法,for语句条件,条件判断,程序D1012.c的功能是显示用
1、
2、
3、4个数字组成的互不相同且无重复数字的三位数。 #include
int main(void) { int i, j, k;
/*********Found************/ for (i=1;
; i++)
//改为:i
for (j=1; j
{
for (k=1; k
{
/*********Found************/
if (i!=k && i!=j && ______) //j != k
{
printf(\"%d%d%d \", i, j, k);
}
}
} }
return 0; }
11、考查点:数组逆序存放,循环次数控制,换位操作的实现,程序D1013.c的功能是将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。
#include
#define N 10
int main(void) {
int a[N], i, temp;
printf(\"please input %d integer numbers:\\n\", N);
for (i=0; i
{
scanf(\"%d\", &a[i]);
}
printf(\"the array before reverse:\\n\");
for (i=0; i
{
printf(\"%d \", a[i]);
}
printf(\"\\n\");
/*********Found************/
for (i=0; i
//改为:i
{
temp = a[i];
/*********Found************/
a[i] = a[N-i];
//改为:a[N-1-i]
/*********Found************/
a[N-i] = temp;
//改为:a[N-1-i]
}
printf(\"the array after reverse:\\n\");
for (i=0; i
{
printf(\"%d \", a[i]);
}
printf(\"\\n\");
return 0; }
12、考查点:排序算法的实现,排序条件,数据交换、字符数组的处理,程序D1014.c的功能是将字符数组a中元素从大到小排列(值相同的元素不交换位置)。
#include #include
int main(void) {
int i, j, k;
char a[] = \"language\", t;
k = strlen(a);
for (i=0; i
{
for (j=i+1; j
{
/*****Found*****/
if (a[i] > a[j]) //改为:a[i]
{
t = a[j];
/*****Found*****/
a[i] = a[j]; //改为:a[j] = a[i]
a[i] = t;
}
}
}
printf(\"%s\\n\", a);
return 0; }
13、考查点:数组元素下标,数组作函数参数,程序D1015.c的功能是定义一个整型数组,采用子函数实现数据输入。
#include
void input(int a[], int n);
int main(void) {
int a[10], i;
/*********Found************/
input(a[10], 10);
//改为:a
for (i=0; i
{
printf(\"%d \", a[i]);
}
return 0; }
void input(int a[], int n) {
int i;
for (i=0; i
{
scanf(\"%d\", &a[i]);
/*********Found************/
i--;
//改为:i++
} }
14、考查点:函数调用,字符串结束标志的使用,程序D1018.c的功能是通过函数,将一个字符串中的元音字母复制到另一字符串,然后输出。
#include #include
void vowel(char str1[], char str2[]);
int main(void) {
char str1[81], str2[81];
printf(\"please input the string:\\n\");
gets(str1);
/*********Found************/
vowel(________________); //改为:str1, str2
printf(\"the vowel string is:\\n\");
puts(str2);
if (strlen(str2) == 0)
{
printf(\"NONE!\\n\");
}
return 0; } void vowel(char str1[], char str2[]) { int i, j = 0; /*********Found************/ for (i=0; ________________; i++) //改为:str1[i] {
if (str1[i]==\'A\' || str1[i]==\'E\' || str1[i]==\'I\'
|| str1[i]==\'O\' || str1[i]==\'U\' || str1[i]==\'a\'
|| str1[i]==\'e\' || str1[i]==\'i\' || str1[i]==\'o\'
|| str1[i]==\'u\')
{
str2[j] = str1[i];
j++;
} }
str2[j] = \'\\0\'; }
15、考查点:函数声明、函数定义、函数调用,表达式统计,程序D1019.c的功能是计算输出10个学生的平均成绩。
#include
/*****Found*****/ average(double x, y); //改为:double average和int y
int main(void) {
int i;
double score, total;
double aver;
printf(\"Please enter the 1\'s grade\\n\");
scanf(\"%lf\", &total);
for (i=2; i
{
printf(\"Please enter the %d\'s grade\\n\", i);
scanf(\"%lf\", &score);
/*****Found*****/
total = score;
//改为:total = total + score;
}
aver = average(total, 10);
printf(\"The average: %f\\n\", aver);
return 0; }
/*****Found*****/ average(double x, y)
////改为:double average和int y {
return x / y; }
16、考查点:递归函数定义(递归返回),函数头,程序D1020.c的功能是使用递归实现Fibonacci数的计算,Fn=Fn-1+Fn-2(
1、
1、2...,第7项为13)。
#include
int f(int n); /*****Found*****/ int main(void);
//改为:去掉‘;’ {
printf(\"F(7)=%d\\n\", f(7));
return 0; }
int f(int n) {
if (n
{
/*****Found*****/
return 2; //改为:1
}
return f(n2); }
17、考查点:函数声明,变量作用域,函数调用,函数定义,指针作为函数的参数,程序D1022.c的功能是通过一个加法子函数,输入两个浮点数,求和。
#include
/*********Found************/ int add(float x, float y);
//改为:float
int main(void)
float a, b;
scanf(\"%f%f\", &a, &b);
/*********Found************/
printf(\"sum=%f\\n\", add(x, y));
//改为:a, b
return 0; }
/*********Found************/ float add(float x, float y); //改为:去掉’;’ {
return x + y; }
18、程序D1054.C的功能是:从键盘读入两个整数,对它们进行按位异或操作,把操作结果按二进制位放在字符数组str中,最后输出该字符串。提示:第2个空建议使用条件表达式(?表达式)实现!
Please input num1 and num2 : 127 0 127 ^ 0 = 00000000000000000000000001111111 图1 程序运行效果示例
Please input num1 and num2 : 123 456 123 ^ 456 = 00000000000000000000000110110011 #include
int main(void) {
unsigned long int number, num1, num2, mask; int i; char str[33];
printf(\"Please input num1 and num2 : \"); scanf(\"%lu %lu\", &num1, &num2);
/*********Found************/ mask = __________________;
//改为:0x80000000 number = num1 ^ num2; for(i=0; i
/*********Found************/
str[i] = __________________; //改为:(mask& number) ? ‘1’:’0’
mask >>= 1; } str[32] = \'\\0\'; printf(\"%lu ^ %lu = %s\\n\", num1, num2, str);
return 0; }
难度3
1、考查点:符号常量定义,const常量的使用,指针变量的移位操作,程序D10.c的功能是将字符串str2显示在屏幕上。
#include
/*********Found************/ #define START
//改为:#define START { /*********Found************/ #define NEXT
//改为:#define NEXT }
int main(void) {
char *str2 = \"13125176247\";
const int i = 0;
for (printf(\"\\n\"); str2[i]; )
START
putchar(str2[i]);
/*********Found************/
i++; //改为:str2++
NEXT
return 0; }
2、考查点:字符数组下标控制,字符串结束标志,条件表达,程序D13.c的功能是从键盘输入最多10个字符(遇换行则停止输入)到数组Buf中,然后在屏幕上显示。
#include
int main(void) {
char c, Buf[11];
int pos;
/*********Found************/
for (pos = 1; pos
//改为:0和
{
/*********Found************/
if ((c = getchar() == \'\\n\') //改为:后面加)
{
break;
}
Buf[pos] = c;
}
/*********Found************/
___________
//改为:Buf[pos] = ‘\\0’;
printf(\"%s\\n\", Buf);
return 0; }
3、考查点:指针变量的使用,指针作函数参数,函数调用,程序D15.c的功能是调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值。
#include
void swap(int *x, int *y);
int main(void) {
int a = 3, b = 4;
/*********Found************/
swap(*a, *b);
//改为:&a, &b
/*********Found************/
printf(\"a=%d b=%d\\n\", &a, &b); //去掉&
return 0; }
void swap(int *x, int *y) {
int *tmp, tsX;
/*********Found************/
*tmp = x; //改为: tsX = *x
*x = *y;
/*********Found************/
*y = *tmp; //改为: tsX }
4、考查点:函数定义、字符数组、静态变量的使用、指针作函数参数,函数调用,程序D17.c的功能是函数userLogin的功能主要是统计并返回登录的用户数,用户名最长30字节。
#include
long userLogin(char *userName);
int main(void) {
/*********Found************/
char *userName31; //改为:userName31[31]
long curUserCnt = 0;
while (1)
{
printf(\"user %ld, input your Name: \", curUserCnt+1);
scanf(\"%s\", userName31);
curUserCnt = userLogin(userName31);
}
return 0; }
long userLogin(char *userName) {
/*********Found************/
long userNum = 0; //改为:static long
userNum++;
printf(\"welcome user %s.There have %ld users in system.\\n\",
userName, userNum);
/*********Found************/
return ; //改为: userNum; }
5、考查点:函数返回值、字符变量、字符指针变量、字符串结束,程序D19.c的功能是将inBuf中字符串拆分成一个个的单词。
程序说明:
(1)单词之间的分隔符由串divChar,程序中定义为“;?!,.>/\\”。
(2)函数getStrFromBuf的功能是从Buf的开始处寻找第一个单词,将找到的单词作为一个字符串复制到Str处,divStr指明单词间的分隔符。GetStrFromBuf的返回值指向已找到单词的下一个字符。
(3)函数charInStr的功能是判断字符t是否出现在串Str中。
(4)主程序的功能是将inBuf中的所有单词在屏幕上显示出来。
#include
#define Yes 1 #define No 0
char *getStrFromBuf(char *Buf, char *Str, char *divStr); int charInStr(char *Str, char t);
int main(void) {
char inBuf[100] = \">how old are/ you?\", *point, oneWord[20]; char divChar[] = \" ;?!,.>/\";
point = inBuf; while (*point) {
/*********Found************/
getStrFromBuf(point, oneWord, divChar); //右边加上:point=
if (*oneWord)
{
puts(oneWord);
}
}
return 0; }
int charInStr(char *Str, char t) {
for (; *Str; Str++)
{
/*********Found************/
if (*Str == *t) //改为:t
{
/*********Found************/
return No; //改为:Yes
}
}
/*********Found************/
return Yes;
//改为:No }
char *getStrFromBuf(char *Buf, char *Str, char *divStr) {
for (; *Buf; Buf++)
{
if (charInStr(divStr, *Buf) == No)
{
break;
}
}
for (; *Buf; Buf++)
{
if (charInStr(divStr, *Buf) == Yes)
{
break;
}
/*********Found************/
Str = *Buf; //改为:* Str
Str++;
}
/*********Found************/
*Str = \'0\';
//改为:’\\0’
/*********Found************/
return ;
//改为:Buf }
6、考查点:折半查找算法、函数调用、数组作参数,程序D1026.c的功能是函数binary为折半查找key 值。数组中元素值已递增排序,若找到key则返回对应的下标,否则返回-1。主函数对该函数进行验证。
#include
int binary(int a[ ], int n, int key);
int main(void) {
int data[10] = {2, 5, 7, 13, 16, 18, 23, 26, 28, 35};
int pos=0, key;
printf(\"Input an integer to find:\");
scanf(\"%d\", &key);
/*********Found************/
pos = ____________________ ;
if (pos == -1)
{
printf(\"Can\'t find %d.\\n\", key);
}
else
{
printf(\"%d\'s position is %d\", key, pos);
}
return 0; }
int binary(int a[ ], int n, int key) {
int low, high, mid;
low = 0;
high = n1;
}
else if (key > a[mid])
{
low = mid + 1;
}
else
{
/*********Found************/
return _______;
}
}
return (-1); }
7、考查点:函数参数设计、算法理解、函数调用,程序D1027.c的功能是fun函数的功能是将形参x的值转换成base进制数,所得base进制数的每一位数用对应字符表示并放在一维数组b中返回,base进制数的最低位放在下标为0的元素中,其他依次类推。主函数中输入一个数据,调用该函数将数据转换成8进制数。
#include #include
/*********Found************/ void fun(int x, int base, ____ b[]); //改为:char
int main(void) {
static char data[30];
int i, pos, key;
printf(\"Input an integer :\");
scanf(\"%d\", &key);
/*********Found************/
____________________ ;
//改为:fun(key, 8, data);
pos = strlen(data);
for (i=pos-1; i>=0; i--)
{
putchar(data[i]);
}
return 0; } /*********Found************/ void fun(int x, int base, ____ b[])
//改为:char { int k = 0, r;
do {
}
r = x % base; if ((base==16) && (r>=10)) { r -= 10; r += \'A\'; } else { r += \'0\'; } b[k] = r; k = k + 1; x /= base ; } while (x); b[k] = \'\\0\';