
大学学习资料免费下载网 有类似资料
在 其他公共课程 版块
标题:陈东方 C语言程序设计基础实验与题解(答案)
中国物联网校企联盟技术部
cpp : Defines the entry point for the console application
//
#include "stdafxh"
#include <windowsh>
#include <stdioh>
#include <malloch>
#include <winbaseh>
#include <processh>
void Search()
{
char temp[100];
char buffer[2];
char result[100];
printf("请输入要查询的单词:\n");
scanf("%s",&temp);
buffer[0]=temp[0];
buffer[1]='\0';
int ret=GetPrivateProfileString(buffer,temp,0,result,100,"/dateini");
if(ret>0)
printf("%s\n\n\n\n\n",result);
else
printf("对不起,没有您要查找的单词\n\n\n\n\n");
}
void InsertItem()
{
char temp[100];
char buffer[2];
char result[100];
printf("请输入要插入的单词:\n");
scanf("%s",&temp);
printf("请输入单词的解释:\n");
getchar();
scanf("%s",&result);
buffer[0]=temp[0];
buffer[1]='\0';
int ret=WritePrivateProfileString(buffer,temp,result,"/dateini");
if(ret=0)
printf("插入失败。\n\n\n\n\n");
else
printf("插入成功。\n\n\n\n\n");
}
int main(int argc, char argv[])
{
int index;
main:
printf("MENU\n\n");
printf(" 1 英译汉\n");
// printf("2 汉译英\n");
printf(" 2 插入新的词条\n");
// printf(" 3 删除已有词条\n");
printf(" 3 清空屏幕\n");
printf(" 4 退出\n\n");
printf("\n");
do{
printf("请选择 *** 作(1~4):\n");
scanf("%d",&index); /输入选择项/
}while(index<0||index>5); /选择项不在0~4之间重输/
switch(index)
{
case 1:
Search();
goto main;
break;
case 2:
InsertItem();
goto main;
break;
case 3:
system("cls");
goto main;
break;
case 4:
return 0;
break;
default:
break;
}
return 0;
}
输出:
MENU
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
请选择 *** 作(1~4):
1
请输入要查询的单词:
bad
adj 劣质的,有害的,坏的,不利的,不健康的,严重的
MENU
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
请选择 *** 作(1~4):
2
请输入要插入的单词:
cat
请输入单词的解释:
猫
插入成功。
MENU
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
请选择 *** 作(1~4):
1
请输入要查询的单词:
cat
猫
MENU
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
请选择 *** 作(1~4):
4
Press any key to continue
。
1、
#include <stdioh>#define STU 30#define COURSE 3void Input(long num[ ],int score[ ][COURSE],int n);void GetSumAver(int score[ ][COURSE],int n,int sum[ ],float aver[ ]);void Sort(long num[ ],int score[ ][COURSE],int n,int sum[ ],float aver[ ]);void Print(long num[ ],int score[ ][COURSE],int n,int sum[ ],float aver[ ]);int Search(long num[ ], int n, long x);main(){int n, score[STU][COURSE], sum[STU], pos;long num[STU], x;float aver[STU];printf("Please enter the total number of the students(n<=30):");scanf("%d", &n); /输入参加考试的学生人数/printf("Enter No and score as: MT EN PH\n");Input(num, score, n); /输入学生成绩/GetSumAver(score, n, sum, aver); /计算总分和平均分/printf("Before sort:\n");Print(num, score, n, sum, aver);Sort(num, score, n, sum, aver); /排名次/printf("After sort:\n");Print(num, score, n, sum, aver);printf("Please enter searching number:");scanf("%ld", &x); /以长整型格式输入待查找学生的学号/pos = Search(num, n, x); /名次查询/if (pos != -1){printf("position:\t NO \t MT \t EN \t PH \t SUM \t AVER\n");printf("%8d\t%4ld\t%4d\t%4d\t%4d\t%5d\t%50f\n", pos+1,num[pos], score[pos][0],score[pos][1], score[pos][2], sum[pos],aver[pos]);}else{printf("Not found!\n");}}/ 函数功能:输入某班学生学号及期末考试三门课程成绩 函数参数:长整型数组num,存放学生学号 整型数组score,存放学生成绩 整型变量n,存放学生人数 函数返回值:无/void Input(long num[ ], int score[ ][COURSE], int n){int i, j;for (i=0; i<n; i++){scanf("%ld", &num[i]);for (j=0; j<COURSE; j++){scanf("%d", &score[i][j]);}}}/ 函数功能:计算每个学生的总分和平均分 函数参数:整型数组score,存放学生成绩 整型变量n,存放学生人数 整型数组sum,计算得到的每个学生的总分 实型数组aver,计算得到的每个学生的平均分 函数返回值:无/void GetSumAver(int score[ ][COURSE], int n, int sum[ ], float aver[ ]){int i, j;for (i=0; i<n; i++){sum[i] = 0;for (j=0; j<COURSE; j++){sum[i] = sum[i] + score[i][j];}aver[i] = (float)sum[i] / COURSE;}}/ 函数功能:按总分成绩由高到低排出成绩的名次 函数参数:长整型数组num,存放学生学号 整型数组score,存放学生成绩 整型变量n,存放学生人数 整型数组sum,存放每个学生的总分实型数组aver,存放每个学生的平均分 函数返回值:无/void Sort(long num[ ],int score[ ][COURSE], int n, int sum[ ], float aver[ ]){int i, j, k, m;int temp1;long temp2;float temp3;for (i=0; i<n-1; i++){k = i;for (j=i+1; j<n; j++){if (sum[j] > sum[k]) k = j;}if (k != i){temp1 = sum[k]; sum[k] = sum[i]; sum[i] = temp1;temp2 = num[k]; num[k] = num[i]; num[i] = temp2;temp3 = aver[k]; aver[k] = aver[i]; aver[i] = temp3;for (m=0; m<COURSE; m++){temp1 = score[k][m];score[k][m] = score[i][m];score[i][m] = temp1;}}}}/ 函数功能: 打印名次表,表格内包括学生编号、各科分数、总分和平均分 函数参数: 长整型数组num,存放学生学号 整型数组score,存放学生成绩 整型变量n,存放学生人数 整型数组sum,存放每个学生的总分 实型数组aver,存放每个学生的平均分 函数返回值:无/void Print(long num[ ], int score[ ][COURSE], int n,int sum[ ], float aver[ ]){int i, j;printf(" NO \t| MT \t EN \t PH \t SUM \t AVER\n");printf("----------------------------------------------------\n");for (i=0; i<n; i++){printf("%ld\t| ", num[i]);for (j=0; j<COURSE; j++){printf("%4d\t", score[i][j]);}printf("%5d\t%50f\n", sum[i], aver[i]);}}/ 函数功能:在学号数组中顺序查找学生的学号 函数参数:长整型数组num,存放学生学号 整型变量n,存放学生人数长整型变量x,存放待查找学生的学号 函数返回值:找到时,返回学生学号在学号数组中的下标位置,否则返回值-1/int Search(long num[ ], int n, long x){int i;for (i=0; i<n; i++){if (num[i] == x) return(i);}return (-1);}
4、答案:#include <stdioh>
void main()
{ int i , j;
double a[3][4], b[4][3];
printf("请输入原始矩阵:\n");
for(i=0;i<3; i++)
for( j=0; j<4 ; j++)
scanf ("%lf", &a[i][j]);
printf("计算转置矩阵:\n");
for(i=0;i<3; i++)
for( j=0; j<4 ; j++) b[j][i]=a[i][j];
printf("输出原始矩阵:\n");
for(i=0;i<3; i++)
{
for( j=0; j<4 ; j++) printf(" %102f ",a[i][j]);
printf("\n");
}
printf("输出转置矩阵:\n");
for(i=0;i<4; i++)
{
for( j=0; j<3 ; j++) printf(" %102f ",b[i][j]);
printf("\n");
}
}
#include <stdioh>
#define N 30
int Average(int score[], int n); / Average()函数原型 /
void ReadScore(int score[], long num[],int n); / ReadScore()函数原型 /
void DataSort(int score[], long num[], int n);
void PrintScore(int score[], long num[], int n);
void DataNum(int score[], long num[], int n);
void PrintNum(int score[], long num[], int n);
void SearchNum(int score[],long num[],int n);
void Statistics(int score[], int n);
void List(int score[], long num[], int n);
int main()
{
int choice,n,score[N], aver=0,i,sum=0;
long num[N];
do
{
printf("1: Append record\n");
printf("2: Caculate total and average score of course\n");
printf("3: Sort in descending order by score\n");
printf("4: Sort in ascending order by number\n");
printf("5: Search by number\n");
printf("6: Statistic analysisc\n");
printf("7: List record\n");
printf("0: Exit\n");
scanf("%d",&choice);
switch(choice)
{
case 1:printf("Total students are:");
scanf("%d",&n);
ReadScore (score,num,n);
break;
case 2:aver = Average(score, n);
printf("Average score is %d\n",aver);
for (i=0; i<n; i++)
{
sum += score[i];
}
printf("Caculate total score is %d\n",sum);
break;
case 3:DataSort(score,num,n);
printf("Sorted scores :\n");
printf(" number: score: \n");
PrintScore(score,num,n);
break;
case 4:DataNum(score,num,n);
printf("Sorted number :\n");
printf(" number: score: \n");
PrintNum(score,num,n);
break;
case 5:SearchNum(score,num,n);
break;
case 6:Statistics(score, n);
break;
case 7:List(score,num,n);
break;
case 0:break;
}
}while(choice!=0);
return 0;
}
/ 1、函数功能:输入n个学生的学号及某门课成绩 /
void ReadScore(int score[], long num[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("Input student's ID and score:");
scanf("%ld%d",&num[i],&score[i]);
}
}
/ 2、函数功能:计算课程的总分和平均分 /
int Average(int score[], int n) / Average()函数定义 /
{
int i, sum = 0;
for (i=0; i<n; i++)
{
sum += score[i];
}
return sum / n;
}
/ 3、函数功能:成绩由高到低排序 /
void DataNum(int score[], long num[], int n)
{
int i,j,k,temp1;
long temp2;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if (score[j]>score[k])
{
k=j;
}
}
if(k!=i)
{
temp1=score[k];score[k]=score[i];score[i]=temp1;
temp2=num[k];num[k]=num[i];num[i]=temp2;
}
}
}
/ 函数功能:显示排序后学生学号和成绩 /
void PrintNum(int score[], long num[], int n)
{
int i;
for(i=0;i<n;i++)
{
printf(" %10ld %4d\n",num[i],score[i]);
}
}
/ 4、函数功能:学号由小到大排序 /
void DataSort(int score[], long num[], int n)
{
int i,j,k,temp1;
long temp2;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if (num[j]<num[k])
{
k=j;
}
}
if(k!=i)
{
temp1=num[k];num[k]=num[i];num[i]=temp1;
temp2=score[k];score[k]=score[i];score[i]=temp2;
}
}
}
/ 函数功能:显示排序后学生学号和成绩 /
void PrintScore(int score[], long num[], int n)
{
int i;
for(i=0;i<n;i++)
{
printf(" %10ld %4d\n",num[i],score[i]);
}
}
/ 5、函数功能:按学号查询学生排名及其成绩/
void SearchNum(int score[],long num[],int n)
{
long number;
int i;
printf("Please input the number you want to search:");
scanf("%ld",&number);
for(i=0;i<n;i++)
{
if(num[i]==number)
{
printf(" %ld %d\n",num[i],score[i]);
return;
}
}
printf("\nNot found!\n");
}
/ 6、函数功能:统计个人类别的人数以及所占的百分比/
void Statistics(int score[], int n)
{
int i,a=0,b=0,c=0,d=0,e=0;
for(i=0;i<n;i++)
{
if(score[i]>=90)
{
a++;
}
else if(score[i]>=80)
{
b++;
}
else if(score[i]>=70)
{
c++;
}
else if(score[i]>=60)
{
d++;
}
else
{
e++;
}
}
printf("优秀人数:%d\t占:%3f%%\n良好人数:%d\t占:%3f%%\n中等人数:%d\t占:%3f%%\n及格人数:%d\t占:%3f%%\n不及格人数:%d\t占:%3f%%\n",a,(float)100a/n,b,(float)100b/n,c,(float)100c/n,d,(float)100d/n,e,(float)100e/n);
}
/ 7、函数功能:输入学生学号、成绩、总分、平均分/
void List(int score[], long num[], int n)
{
int i, j=0;
for(i=0;i<n;i++)
{
printf("学号:%ld\t考试成绩:%d\n",num[i],score[i]);
j+=score[i];
}
printf("课程总分:%d\n平均分:%3f\n",j,(float)j/n);
}
以上就是关于求《C语言程序设计基础》的课后习题答案全部的内容,包括:求《C语言程序设计基础》的课后习题答案、c语言程序设计(第二版)张磊版课后答案、求C语言习题解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)