班级: 学号: 姓名: 的下面
}
//或不修改上面的语句,而将p++;移到原sum += *p;语句
avg = (float)sum/ 10; printf(“avg=%f”, avg); }
4. 编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串。
#include
void Inverse(char rstr[]);
main() {
char str[80];
printf(\ gets(str); Inverse(str);
printf(\ puts(str); }
void Inverse(char rstr[]) {
int i,n; char temp;
for(i=0, n=(strlen(rstr)-1); i temp = rstr[i]; rstr[i] = rstr[n]; rstr[n] = temp; } } 五、编程 1. 从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。例如,输入x为1234,则由1234分离出其千位1、百位2、十位3、个位4,然后计算1+2+3+4=10,并输出10。 // 空格、空行、缩进、标识符命名等编程规范 2分 6 班级: 学号: 姓名: #include #include int i1, i2, i3, i4, k, n=10000; //1分,为避免输入非数值类型数据,将n初始化成不在1000和9999之间的数 //1分,变量类型定义正确 printf(\Input a decimal between 1000 and 9999:\); scanf(\%d\, &n); //1分 k = fabs(n); /*取绝对值*/ //1分 if((k<1000)||(k>9999)) //2分 有效数据判断 { printf(\Input error!\\n\); return; } i1 = k / 1000; /*分离出千位*/ //1分 i2 = (k - i1 * 1000) / 100;/*分离出百位*///1分 i3 = (k - i1 * 1000 - i2 * 100) / 10;/*十位*///1分 i4 = k % 10; /*分离出个位*/ //1分 printf(\i1+i2+i3+i4); //1分 } 2. 输入20个学生的成绩,求出其中大于平均成绩学生的人数,并对20名学生成绩按从高到低进行排序。 // 缩进、空格、空行、标识符命名等编程规范 2分 #include int p=20,i,k=0,j; //2分 类型错扣1分,没初始化扣1分 float ave,a[20],t,sum=0; printf(\students:\\n\ for(i=0;i for(i=0;i 7 班级: 学号: 姓名: sum=sum+a[i]; ave=sum/p; //1分 for(i=0;i if(a[i]>ave) k++; } for(i=0;i printf(\the average score:%d,%.1f\\n\ //1分 输出显示正确 printf(\ for(i=0;i printf(\ //1分 输出显示正确 } 3. 利用公式?=?????×100项之积计算并打印?值。 ??前...// 缩进、空格、空行、标识符命名等编程规范 2分 #include int n; for (n = 2; n <= 100; n = n + 2) //3分循环正确 { term = (double)( n * n)/(( n - 1) * ( n + 1)); //3分 类型转换1分,表达式2 分 result = result * term; //2分 } printf(\//2分 类型和表达式正确各一分 } ??22244661335578