/*********Found************/ i--; //改为:i++ } }
14、考查点:函数调用,字符串结束标志的使用,程序D1018.c的功能是通过函数,将一个字符串中的元音字母复制到另一字符串,然后输出。 #include
void vowel(char str1[], char str2[]);
int main(void) { char str1[81], str2[81]; printf(\ gets(str1); /*********Found************/ vowel(________________); //改为:str1, str2 printf(\ puts(str2); if (strlen(str2) == 0) { printf(\ } 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(\ scanf(\ for (i=2; i<=10; i++) { printf(\ scanf(\ /*****Found*****/ total = score; //改为:total = total + score; } aver = average(total, 10); printf(\ 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(\ return 0; }
int f(int n) { if (n <= 2) { /*****Found*****/ return 2; //改为:1 } return f(n - 1) + f(n - 2); }
17、考查点:函数声明,变量作用域,函数调用,函数定义,指针作为函数的参数,程序D1022.c的功能是通过一个加法子函数,输入两个浮点数,求和。 #include
/*********Found************/
int add(float x, float y); //改为:float
int main(void) float a, b; scanf(\ /*********Found************/ printf(\ //改为: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(\ scanf(\ /*********Found************/ mask = __________________; //改为:0x80000000 number = num1 ^ num2; for(i=0; i<32; i++) { /*********Found************/ str[i] = __________________; //改为:(mask& number) ? ‘1’:’0’ mask >>= 1; } str[32] = '\\0'; printf(\ return 0; }
难度3
1、考查点:符号常量定义,const常量的使用,指针变量的移位操作,程序D10.c的功能是将字符串str2显示在屏幕上。
#include
/*********Found************/
#define START //改为:#define START { /*********Found************/
#define NEXT //改为:#define NEXT }
int main(void) {
char *str2 = \ const int i = 0;
for (printf(\ 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 <= 10; pos++) //改为:0和< {
/*********Found************/
if ((c = getchar() == '\\n') //改为:后面加) {
break; }
Buf[pos] = c; }
/*********Found************/
___________ //改为:Buf[pos] = ‘\\0’; printf(\ return 0; }
3、考查点:指针变量的使用,指针作函数参数,函数调用,程序D15.c的功能是调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值。 #include
void swap(int *x, int *y);
int main(void)