20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises25
文章目录20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises25P788P263P804P784P78920201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises25P788下载的待修改源文件#include <stdio.h>/* 本部分代码功能建议:函数原型声明 *
·
20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises25
P788
下载的待修改源文件
#include <stdio.h>
/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=3, lineLen<=80, 考生可在本行后添加代码、最多3行、行长<=80字符) */
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
int main(void)
{
int Data[20], n, max;
double average;
printf("Please input the number n = ");
scanf("%d", &n);
printf("Please input the array elements : ");
scanfArr(Data, n);
max = maxArr(Data, n);
average = aver(Data, n);
printf("\nmax = %d\naverage = %.2f\n", max, average);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
修改后的源文件
#include <stdio.h>
/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=3, lineLen<=80, 考生可在本行后添加代码、最多3行、行长<=80字符) */
void scanfArr(int *Data, int n);
int maxArr(int *Data, int n);
double aver(int *Data, int n);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
int main(void)
{
int Data[20], n, max;
double average;
printf("Please input the number n = ");
scanf("%d", &n);
printf("Please input the array elements : ");
scanfArr(Data, n);
max = maxArr(Data, n);
average = aver(Data, n);
printf("\nmax = %d\naverage = %.2f\n", max, average);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
void scanfArr(int *Data, int n)
{
int i;
int *p = Data;
for (i = 0; i < n; i++)
{
scanf("%d", p++);
}
}
int maxArr(int *Data, int n)
{
int i;
int *p = Data;
int max = *p;
for ( i = 0; i < n; i++, p++)
{
if (max < *p)
{
max = *p;
}
}
return max;
}
double aver(int *Data, int n)
{
double sum = 0;
int *p = Data;
int i;
for ( i = 0; i < n; i++)
{
sum += *p++;
}
return sum / n;
}
/*
要求用指针完成函数中数组参数的传递、以及各个数组元素的访问,即自定义函数头和函数体中不得出现数组下标形式的表示法。
1. 这里是一维数组,只有相应的指针变量就可以解决问题
2. 数组索引,才用下标,不用下标,可以使用指针移动来定位元素
3. 要特别小心指针移动的次数,一次移动的单元是多大
*/
P263
下载的待修改源文件
#include <stdio.h>
/* userCode(<60字符): 自定义函数之原型声明 */
______________________________
int main(void)
{
int arr1[6], arr2[10], arr3[15], gt60A, gt60B, gt60C, sumA, sumB, sumC;
______________________________ /* userCode(<60字符): 调用函数读 6个数到arr1中,并计算和及>60的个数 */
______________________________ /* userCode(<60字符): 调用函数读10个数到arr2中,并计算和及>60的个数 */
______________________________ /* userCode(<60字符): 调用函数读15个数到arr3中,并计算和及>60的个数 */
printf("\narr1[0]=%3d, arr1[ 5]=%3d, sum(arr1)=%d, cnt(arr1)=%d", arr1[0], arr1[5], sumA, gt60A);
printf("\narr2[0]=%3d, arr2[ 9]=%3d, sum(arr2)=%d, cnt(arr2)=%d", arr2[0], arr2[9], sumB, gt60B);
printf("\narr3[0]=%3d, arr3[14]=%3d, sum(arr3)=%d, cnt(arr3)=%d\n", arr3[0], arr3[14], sumC, gt60C);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
修改后的源文件
#include <stdio.h>
/* userCode(<60字符): 自定义函数之原型声明 */
void cal(int arr[], int cnt, int *gt60, int *sum);
int main(void)
{
int arr1[6], arr2[10], arr3[15], gt60A, gt60B, gt60C, sumA, sumB, sumC;
cal(arr1, 6, >60A, &sumA); /* userCode(<60字符): 调用函数读 6个数到arr1中,并计算和及>60的个数 */
cal(arr2, 10, >60B, &sumB); /* userCode(<60字符): 调用函数读10个数到arr2中,并计算和及>60的个数 */
cal(arr3, 15, >60C, &sumC); /* userCode(<60字符): 调用函数读15个数到arr3中,并计算和及>60的个数 */
printf("\narr1[0]=%3d, arr1[ 5]=%3d, sum(arr1)=%d, cnt(arr1)=%d", arr1[0], arr1[5], sumA, gt60A);
printf("\narr2[0]=%3d, arr2[ 9]=%3d, sum(arr2)=%d, cnt(arr2)=%d", arr2[0], arr2[9], sumB, gt60B);
printf("\narr3[0]=%3d, arr3[14]=%3d, sum(arr3)=%d, cnt(arr3)=%d\n", arr3[0], arr3[14], sumC, gt60C);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
void cal(int arr[], int cnt, int *gt60, int *sum)
{
int i;
int mySum = 0;
int myGt60 = 0;
// 输入
printf("请输入%d个数: ", cnt);
for ( i = 0; i < cnt; i++)
{
scanf("%d", &arr[i]);
}
// 处理
for ( i = 0; i < cnt; i++)
{
mySum += arr[i];
if (arr[i] > 60)
{
myGt60++;
}
}
*sum = mySum;
*gt60 = myGt60;
}
P804
下载的待修改源文件
#include<stdio.h>
#define NOT_FIND -1
#define TOTAL_STU 8
/* 函数aver的功能为:求学号为stuNo的学生的6门课课程之平均成绩,并通过函数值返回
若未找到学生stuNo,则返回NOT_FIND */
float aver(int (*pStu)[7], int stuNo);
int main(void)
{
int student[TOTAL_STU][7]; /* the first column save student's number */
float averScore;
int i, j, stuNumber;
printf("Input the %d student's number and score: \n", TOTAL_STU);
/* 本部分代码功能建议:从键盘读入的8个学生的6门课成绩存放在二维数组student中 */
/* User Code Begin(Limit: lines<=6, lineLen<=50, 考生可在本行后添加代码、最多6行、行长<=50字符) */
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
printf("\nInput a student's number to compute: ");
scanf("%d", &stuNumber);
/* 本部分代码功能建议:调用函数aver()求平均值 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
if (NOT_FIND == averScore)
{
printf("\nstudent of No.%d not Find!\n", stuNumber);
}
else
{
printf("\nThe No.%d student's average is %.2f\n", stuNumber, averScore);
}
return 0;
}
/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,如函数aver,行数不限) */
修改后的源文件
#include<stdio.h>
#define NOT_FIND -1
#define TOTAL_STU 8
/* 函数aver的功能为:求学号为stuNo的学生的6门课课程之平均成绩,并通过函数值返回
若未找到学生stuNo,则返回NOT_FIND */
float aver(int (*pStu)[7], int stuNo);
int main(void)
{
int student[TOTAL_STU][7]; /* the first column save student's number */
float averScore;
int i, j, stuNumber;
printf("Input the %d student's number and score: \n", TOTAL_STU);
/* 本部分代码功能建议:从键盘读入的8个学生的6门课成绩存放在二维数组student中 */
/* User Code Begin(Limit: lines<=6, lineLen<=50, 考生可在本行后添加代码、最多6行、行长<=50字符) */
for ( i = 0; i < TOTAL_STU; i++)
{
printf("%d: ", i + 1);
for ( j = 0; j < 7; j++)
{
scanf("%d", &student[i][j]);
}
//printf("\n");
}
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
printf("\nInput a student's number to compute: ");
scanf("%d", &stuNumber);
/* 本部分代码功能建议:调用函数aver()求平均值 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
averScore = aver(student, stuNumber);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
if (NOT_FIND == averScore)
{
printf("\nstudent of No.%d not Find!\n", stuNumber);
}
else
{
printf("\nThe No.%d student's average is %.2f\n", stuNumber, averScore);
}
return 0;
}
/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,如函数aver,行数不限) */
float aver(int (*pStu)[7], int stuNo)
{
int flag = 0;
float avg;
float sum = 0;
int i, j;
for ( i = 0; i < TOTAL_STU; i++)
{
if (pStu[i][0] == stuNo)
{
for ( j = 1; j < 7; j++)
{
sum += pStu[i][j];
}
flag = 1;
}
}
if (flag)
{
avg = sum / 6;
}
else
{
avg = NOT_FIND;
}
return avg;
}
P784
下载的待修改源文件
#include<stdio.h>
/* userCode(<80字符): 自定义函数之原型声明 */
______________________________
int main(void)
{
int n, i;
float score[3][4];
printf("input student's score:\n");
for (i=0; i<=2; i++)
{
printf(" student %d: ", i);
scanf("%f %f %f %f", &score[i][0], &score[i][1], &score[i][2], &score[i][3]);
}
printf("\ninput student No: ");
scanf("%d", &n);
search(score, n);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
修改后的源文件
#include<stdio.h>
/* userCode(<80字符): 自定义函数之原型声明 */
void search(float (*score)[4], int n);
int main(void)
{
int n, i;
float score[3][4];
printf("input student's score:\n");
for (i=0; i<=2; i++)
{
printf(" student %d: ", i);
scanf("%f %f %f %f", &score[i][0], &score[i][1], &score[i][2], &score[i][3]);
}
printf("\ninput student No: ");
scanf("%d", &n);
search(score, n);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
void search(float (*score)[4], int n)
{
int i;
printf("\nthe score of No %d are:", n);
for (i=0; i<4; i++)
{
printf("%6.1f", *(*(score + n) + i));
}
}
P789
下载的待修改源文件
#include <stdio.h>
/* userCode(<80字符): 自定义函数之原型声明 */
______________________________
int main(void)
{
char str[100];
printf("Please input the string : ");
gets(str);
deleteother(str);
printf("\noutput: %s\n", str);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
修改后的源文件
#include <stdio.h>
/* userCode(<80字符): 自定义函数之原型声明 */
void deleteother(char str[]);
int main(void)
{
char str[100];
printf("Please input the string : ");
gets(str);
deleteother(str);
printf("\noutput: %s\n", str);
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
void deleteother(char *str)
{
char *p1,*p2; // p2用于遍历,p1用于移动后的位置记录
p1=p2=str; // 指向开头
while ( *p2 ) // 未指到末尾
{
if ( (*p2>='A'&&*p2<='Z')||(*p2>='a'&&*p2<='z') ) // 如果是要保留的字符
{
*p1=*p2; // 移动并覆盖无用字符
p1++;
}
p2++; // 指针后移
}
*p1='\0'; // 最后的字符串结束符
}
更多推荐
已为社区贡献2条内容
所有评论(0)