资源描述
难度1
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<stdio.h>
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 < y) return y;
else return x;
}
3、程序D4.c的功能是计算半径为2+3的圆的面积。
#include<stdio.h>
#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<stdio.h>
int main(void)
{
/*********Found************/
char yy[100] = "ok??\n", //改为:;
/*********Found************/
prntf("%s", yy); //改:printf
return 0;
}
5、考查点:数据类型选择,/运算符的使用功能是计算1/1 + 1/2 + … + 1/N之和并显示。
#include<stdio.h>
#define N 10
int main(void)
{
/*********Found************/
long jieguo = 0; //改:float
int fm;
for (fm = 1; fm <= N; 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<stdio.h>
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<stdio.h>
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<stdio.h>
#define T 20
int main(void)
{
int n;
/*********Found************/
long i, j, temp, sum;
i = 2;
j = 1;
sum = 0;
for (n=1; n<=T; 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<stdio.h>
int main(void)
{
int x = 5, y = 9;
x = x + y;
y = x - y;
/*****Found*****/
x = y - x; //改:x – y;
printf("x=%d, y=%d\n", x, y);
return 0;
}
10考查点:整型常量表示、输出项表示,程序D1003.c的功能是将16进制数100转换为10进制数输出。
#include<stdio.h>
int main(void)
{
/*****Found*****/
int i = 100; //0x100
/*****Found*****/
printf("%d\n", &i); //改:去掉&
return 0;
}
11、 程序D1004.c的功能是输入姓名,屏幕输出问候。
#include<stdio.h>
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<stdio.h>
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<stdio.h>
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<stdio.h>
int main(void)
{
char ch;
/****Found****/
getchar(ch); // ch = getchar();
/*****Found*****/
if ('A' <= ch, ch <= 'Z') //&&
{
printf("yes");
}
else
{
printf("no");
}
return 0;
}
15、考查点:switch语句结束、case后常量表示,程序D1008.c的功能是判断用户是不是输入的整数0。
#include<stdio.h>
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<stdio.h>
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<stdio.h>
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<stdio.h>
int main(void)
{
/*********Found*********/
int n=5, i, a[n]; //改为5
printf("\ninput 5 numbers:");
/*********Found*********/
for (i=1; i<n; i++)
{
scanf("%d", &a[i]);
}
for (i=n-1; i>=0; i--)
{
printf("%d\t", a[i]);
}
return 0;
}
19、考查点:数组的输入和数组元素的引用,程序D1017.c的功能是输入10个浮点数,并输出这组数中的最大值和最小值。
#include<stdio.h>
int main(void)
{
float a[10], max, min;
int i;
printf("Please input 10 floats");
for (i=0; i<10; i++)
{
/*********Found************/
scanf("%f", _____); // &a[i]
}
max = min = a[0];
for (i=1; i<10; i++)
{
/*********Found************/
if (_____) // max < a[i]
{
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<stdio.h>
/*****Found*****/
int f(n); //用定义形式:int n
int main(void)
{
int i;
for (i=1; i<=5; 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<stdio.h>
void outnum(void);
int main(void)
{
int i;
for (i=0; i<5; 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<stdio.h>
/*********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<stdio.h>
void Func(void);
int main(void)
{
int i, n;
printf("\ninput a data:");
scanf("%d", &n);
for (i=0; i<n; 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<stdio.h>
int main(void)
{
/*********Found************/
char yy[200] = "ok??\n"; //改为:*yy
/*********Found************/
fol (; *yy; yy++) //改为:for
{
putchar(*yy);
}
return 0;
}
2、考查点:字符数组定义,字符串输出控制,标准字符串函数的使用,程序D6.c的功能是从键盘读入一行字符(包括空格、TAB等字符)并在屏幕上显示。
#include<stdio.h>
int main(void)
{
/*********Found************/
char yy<128>; //改为:yy[128]
/*********Found************/
getchar(yy); //改为:gets
/*********Found************/
printf("%y", yy); //改为:%s
return 0;
}
3、考查点:if-else形式条件的分析,数据类型选择,程序D7.c的功能是判断x和y是否相等,相等则显示x=y,不等则显示x<>y。
#include<stdio.h>
int main(void)
{
/*********Found************/
char x, y; //改为:int
x = 39270;
y = 41001;
/*********Found************/
if (x != y) //改为:==
{
printf("x=y");
}
/*********Found************/
else;; //去掉;;
{
printf("x<>y\n");
}
return 0;
}
4、考查点:文件路径名表示,文件打开方式选择,文件打开成功判断,程序D8.c的功能是打开文件d:\te.c用于读并判断打开是否成功。
#include<stdio.h>
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<stdio.h>
#include<stdlib.h>
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<stdio.h>
/*********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<stdio.h>
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 <stdio.h>
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 < 10; 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<stdio.h>
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 < 0)
{
j++;
}
/*********Found*********/
_________________________ // scanf("%d", &n);
}
printf("i=%d,j=%d", i, j);
return 0;
}
10、考查点:枚举算法,for语句条件,条件判断,程序D1012.c的功能是显示用1、2、3、4个数字组成的互不相同且无重复数字的三位数。
#include<stdio.h>
int main(void)
{
int i, j, k;
/*********Found************/
for (i=1; ; i++) //改为:i < 5
{
for (j=1; j<5; j++)
{
for (k=1; k<5; 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<stdio.h>
#define N 10
int main(void)
{
int a[N], i, temp;
printf("please input %d integer numbers:\n", N);
for (i=0; i<N; i++)
{
scanf("%d", &a[i]);
}
printf("the array before reverse:\n");
for (i=0; i<N; i++)
{
printf("%d ", a[i]);
}
printf("\n");
/*********Found************/
for (i=0; i<N; i++) //改为:i<N-1-i;
{
temp = a[i];
/*********Found************/
展开阅读全文