C 语言程序设计 大作业题目

合集下载

c语言大作业综合

c语言大作业综合

c语言大作业综合第一章C语言简介及算法一.选择题1.一个C程序可以包含的函数。

A.一个B.多个C.若干D.任意2.下面不可以使用来编译和连接一个C 程序。

A.TurboCB.VC++C.C语言编译器D.BC3.C语言的程序一行写不下时,可以。

A.用逗号换行B.用分号换行C.在任意一空格处换行D.用回车符换行4.C控制语句有种。

A.6B.9C.32D.345.复合语句是用一对界定的语句块。

A.{}B.[]C.()D.”6.一个C程序的执行总是从该程序的函数开始,在函数最后结束。

A.第一个、最后一个B.main、mainC.主函数、最后一个D.第一个、第一个7.C语言提供的合法的数据类型关键字A.FloatB.ignedC.integerD.Char8.在以下各组标识符中,合法的标识符是(1)A.B01B.table_1C.0_tD.k%(2)A.Fat_B.voidC.pblD.(3)A.某y_B.longdoubleC.某pD.CHAR(4)A.jB.IntC._某yD.w_y239.C语言的标识符里不能有A.大小写字母B.数字C..D.下划线二.填空题1.C程序是由构成的,一个C程序中至少包含因此,是C程序的基本单位。

2.C程序注释是由和所界定的文字信息组成的。

3.函数体一般包括和4.算法是解决问题的和的描述。

5.C程序的注释部分可以出现在程序的位置,它对程序的编译和运行作用,但是可以增加程序的第二章C语言数据类型、基本运算及简单程序设计一.选择题1.不合法的字符常量是A.‘\\t’B.“A”C.‘a’D.’\\某32’2.逻辑运算符两侧运算对象的数据类型。

A.只能是0或1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据3.下列表达式中,不满足“当某的值为偶数时值为真,为奇数时值为假”的要求。

A.某%2==0B.!某%2!=0C.(某/2某2-某)==0D.!(某%2)4.下面选项中,不是合法整型常量的是A.160B.-0某cdgC.-01D.-0某48a5.能正确表示“当某的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。

大学C语言程序设计大作业题目

大学C语言程序设计大作业题目

1数据处理系统一、软件开发目的该软件主要是使用C语言设计开发数据处理程序,实现对数据的排序、查找、插入、计算、输出等功能。

二、数据结构定义一个11*10的二维数组。

三、软件功能说明1.生成100个随机数:调用库函数rand()或random()产生100个随机数,并存储在二维数组中的前十行。

2.选择法排序:用选择法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。

3.冒泡法排序:用冒泡法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。

4.插入法排序:用插入法将数据由小到大排序输出,保存在数组中,按行优先的原则存放(将小数先存满第一行,然后第二行….)。

5.查找数据:输入待查找数据, 在二维数组中逐个查找,若找到输出数据所在位置的行列号,若无该数值则输出“无此数”。

6.转换二进制:将数组中数据转换为二进制并转存到另一数组中输出。

7.转换为素数之和:对于原数组中的数进行判断:若为偶数,则表示成两个素数的和,并输出。

8.插入数据:输入一个数,将该数插入原数组中,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。

9.删除数据输入一个数,若原数组中存在该数,则删除该数,使数组中的数仍然按从小到大排序,将数组中数据按从小到大顺序输出。

10.退出系统,结束任务。

四、软件验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。

系统菜单功能项:1生成100个随机数2选择法排序3冒泡法排序4插入法排序5查找数据6转换二进制7转换为素数之和8插入数据9删除数据10退出系统注意:要求每执行一个具体的功能之后,程序将重新显示菜单。

2.系统要有一定的可靠性、稳定性,能够实现各功能模块。

2图书借阅管理系统一、软件开发目的该软件主要是使用C语言设计开发一个简单的图书借阅管理系统,实现对图书的借书,还书的管理和数据统计。

C语言大作业

C语言大作业

学院目录1 摘要 (3)1.1设计题目 (3)1.2设计内容 (3)1.3开发工具 (3)1.4应用平台 (3)2 详细设计 (3)2.1程序结构 (3)2.2主要功能 (3)2.3函数实现 (4)2.4开发日志 (4)3 程序调试及运行 (5)3.1程序运行结果 (5)3.2程序使用说明 (6)3.3程序开发总结 (6)4 附件(源程序) (6)1 摘要1.1 设计题目(1)数学型大作业4.歌星大奖赛。

(2)数学型大作业6. 高次方数的尾数.1.2 设计内容(1)在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分,选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。

(2)求13的13次方的最后三位数。

1.3 开发工具开发工具为Microsoft Visual C++ 6.0.1.4 应用平台Windows XP32位。

2 详细设计2.1 程序结构(1)整体包括一个主函数和一个自定义函数,首先在主函数中输入10个分数,在输出函数中调用自定义函数,在调用过程中向自定义函数传递实参。

在自定义函数中实现了平均分的计算。

然后返回到主函数输出。

(2)程序整体上是用到一个主函数和一个自定义函数。

程序先运行主函数,然后在主函数中调用自定义函数Thr,Thr函数实现了求13的13次方的最后三位尾数。

调用Thr函数时将实参(13,13)传递到自定义函数的形参中,从而实现了对问题的求解。

2.2 主要功能(!)该程序主要用于求解去除最高分和最低分的平均分。

该功能的实现是在自定义的函数中实现的,即用选择法先对10个分数进行排序,排序中用的是选择法,即从第i+1至第n个数中选出比第i个数小的,然后和其交换,如都大于第i个数,则不进行交换。

从而实现从小到大的排序。

然后只计算第2至第n-1个数的平均值,计算结果即为最后得分。

(2)该程序的主要功能为实现高次方数的尾数的求解。

高次方数的结果一般较大,超过了计算机的内存,由乘法的运算性质知其最后的尾数只与每次最后三位的乘积有关,于是每次只运行最后三位的乘积即可,然后截取即可,这样就避免了内存不足这一缺陷,程序便可得到正确的结果。

C语言大作业全

C语言大作业全

#include "stdafx.h"#include "stdio.h"#include "stdlib.h"#include "string.h"#include "malloc.h"#define LEN sizeof(struct student) #define NULL 0int n,m;int k=1;struct student{char num[20];char name[20];int age;char profession[50];int maths;int english;int C_program;float ave;struct student * next;};float ave(struct student * p1){float ave;ave=(float)(p1->maths+p1->english+p1->C_program)/3;return ave;}void save(struct student *head){struct student *p1 = head;FILE *outFile;outFile = fopen("stu.bin", "wb");if (outFile == NULL) {printf("\nFile error.");}else {while(p1 != NULL){fwrite(p1, sizeof(struct student), 1, outFile);p1 = p1->next;}fclose(outFile);}}//将数据存入文档中void check(struct student * head,struct student * p1) {struct student *h=head;for(m=0;m<n;m++,h=h->next ){if(strcmp( h->num,p1->num)==0){printf("输入号码重复\n");printf("请重新输入学号:");scanf("%s",p1->num);getchar();check(head,p1);}}}//检验学号是否重复struct student * creat(){struct student * head;struct student *p1,*p2;n=0;p1=p2=(struct student *)malloc(LEN); printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);head=NULL;while(strcmp(p1->num,"0")!=0){n=n+1;if(n==1)head=p1;else p2->next=p1;p2=p1;p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);//检查输入的学号是不是重复且是不是重复输错 printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);}p2->next=NULL;save(head);return(head);}//录入数据并将其保存至文档void print(struct student *head){struct student * p;printf("\n这%d个学生的成绩为:\n",n);printf("学号姓名年龄专业数学英语 C语言平均成绩\n");p=head;if(head==NULL)printf("The info error\n");if(head!=NULL)while(p!=NULL){p->ave=ave(p);printf("%s%8s%8d%13s%9d%10d%9d%10.2f",p->num,p->name,p->age,p->profession,p->maths,p->engl ish,p->C_program,p->ave);printf("\n");p=p->next;}}//输出链表//struct student* read(){struct student *head = NULL;struct student *p2 = head;struct student record;FILE *infile;infile = fopen("stu.bin", "rb");n=1;if(infile == NULL){printf("\nFile error.");}else {head = (struct student *)malloc(sizeof(struct student));fread(head, sizeof(*head), 1, infile);p2 = head;while(fread(&record, sizeof(record), 1, infile))//fread返回数据个数,结束和出错返回0;{p2->next = (struct student *)malloc(sizeof(struct student));memcpy(p2->next, &record, sizeof(record)); //复制结构体数据p2 = p2->next;n=n+1;}p2->next=NULL;fclose(infile);}return head;}//从文件中读取数据struct student * search_num(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->num)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此学号不存在\n");return(head);}//按学号查询数据//]struct student * search_name(struct student * head,char array[20]){struct student * p1;p1=head;if(head==NULL){printf("打开错误");return(head);}while((strcmp(array,p1->name)!=0)&&(p1->next!=NULL)){p1=p1->next;}//找到相应的学号if(strcmp(array,p1->name)==0){printf("学号姓名年龄专业数学英语 C语言\n");printf("%s%10s%10d%15s%11d%12d%11d",p1->num,p1->name,p1->age,p1->profession,p1->maths,p1-> english,p1->C_program);printf("\n");}else printf("此姓名不存在\n");return(head);}//按姓名查询数据//struct student * change(struct student * head,char array[20]){struct student *p1;p1=head;if(head==NULL){printf("打开错误!");return(head);}while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)) {p1=p1->next;} //找到相应的学号if(strcmp(array,p1->num)==0){printf("请输入更改的学号:\n");printf("学号:\n");scanf("%s",p1->num);getchar();printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);save(head);}else printf("所查学号不存在\n");return(head);}//修改数据//struct student * del(struct student * head,char array[20]) {struct student * p1,* p2;if(head==NULL){printf("\nlist null!\n");return head;}p1=head;while((strcmp(array,p1->num)!=0)&&(p1->next!=NULL)){p2=p1;p1=p1->next;}//找到相应的学号、if((strcmp(array,p1->num)==0)){if(strcmp(array,head->num)==0)head=p1->next;elsep2->next=p1->next;}elseprintf("你查询的学号(%s)不存在!",p1->num);save(head);return(head);}void add(struct student * head){struct student *p1;printf("\n请输入添加学生的信息:\n");p1=(struct student *)malloc(LEN);printf("学号:\n");scanf("%s",p1->num);getchar();check(head,p1);printf("姓名:\n");gets(p1->name);printf("年龄:\n");scanf("%d",&p1->age);getchar();printf("专业:\n");gets(p1->profession);printf("数学成绩:\n");scanf("%d",&p1->maths);printf("英语成绩:\n");scanf("%d",&p1->english);printf("C语言成绩:\n");scanf("%d",&p1->C_program);FILE *outFile;outFile = fopen("stu.bin", "ab");if (outFile == NULL) {printf("\n打开错误.");}fwrite(p1, sizeof(struct student), 1, outFile);fclose(outFile);}void sta(struct student * head,char array[20],int max,int min) {struct student *p1=head;int k=0;if(strcmp(array,"maths")==0){while(p1!=NULL){if(p1->maths>=min&&p1->maths<=max)k++;p1=p1->next;}printf("数学科目在%d到%d之间的人数为:%d\n",min,max,k);}else if(strcmp(array,"english")==0){while(p1!=NULL){if(p1->english>=min&&p1->english<=max)k++;p1=p1->next;}printf("英语科目在%d到%d之间的人数为:%d\n",min,max,k); }else if(strcmp(array,"C_program")==0){while(p1!=NULL)if(p1->C_program>=min&&p1->C_program<=max)k++;p1=p1->next;}printf("C语言科目在%d到%d之间的人数为:%d\n",min,max,k); }}void exit(){printf("\t\t");printf("**********************\n");printf("\t\t");printf("*******感谢使用*******\n");printf("\t\t");printf("**********************\n");k=0;}void Chooseproject(int i){ struct student * head=NULL;if(i==1){head = read();print(head);else if(i==2){int p=1 ;printf("请选择按学号查询(1)还是按姓名查询(0):");scanf("%d",&p);while(p!=1&&p!=0){printf("输入错误!");printf("请选择学号查询(1)还是姓名查询(0)");scanf("%d",&p);}if(p==1){head = read();char num[20];printf("请输入查询的学号:\n");scanf("%s",num);head=search_num(head,num);while(strcmp(num,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n");scanf("%s",num);if(strcmp(num,"0")==0)break;head=search_num(head,num);}}else if(p==0){head = read();char name[20];printf("请输入查询的学号:\n");scanf("%s",name);head=search_name(head,name);while(strcmp(name,"0")!=0){printf("是否继续查询(是就输学号,否就输0):\n"); scanf("%s",name);if(strcmp(name,"0")==0)break;head=search_name(head,name);}}}else if(i==3){ head = read();char num[20];printf("请输入要更改的学号:\n");scanf("%s",num);getchar();head=change(head,num);print(head);while(strcmp(num,"0")!=0){printf("是否继续更改(是就输学号,否就输0):\n"); scanf("%s",num);getchar();if(strcmp(num,"0")==0)break;head=change(head,num);print(head);}}else if(i==4){head=read();add(head);}else if(i==5){char num[20];head=read();printf("请输入要删除的学号:\n");scanf("%s",num);getchar();head=del(head,num);print(head);}else if(i==6){head = read();int i;printf("\t\t");printf("************1.学号排序;********************\n");printf("\t\t");printf("************2.平均成绩排序;****************\n");printf("\t\t");printf("************3.数学成绩排序;****************\n"); printf("\t\t");printf("************4.英语成绩排序;****************\n"); printf("\t\t");printf("************5.C语言成绩排序;***************\n");printf("请输入相应的排序代号:");scanf("%d",&i);sort_down(head,i);}else if(i==7){head=read();int min,max;char subject[20];printf("\t\t");printf("************数学(maths);***************\n");printf("\t\t");printf("************英语(english);*************\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();while((strcmp(subject,"maths")!=0&&strcmp(subject,"english")!=0&&strcmp(subject,"C_pro gram")!=0)){printf("输入错误!");printf("\t\t");printf("************数学(maths);***********\n");printf("\t\t");printf("************英语(english);***********\n");printf("\t\t");printf("***********C语言(C_program);***********\n");printf("请选择要统计的项目:\n");scanf("%s",subject);getchar();}printf("请输入分数段的区间:");printf("区间上限:");scanf("%d",&max);printf("区间下限:");scanf("%d",&min);while(min>=max){printf("输入的下限大于等于上限,错误!");printf("请重新输入分数段的区间:");printf("区间上限:");scanf("%d",max);printf("区间下限:");scanf("%d",min);}sta(head,subject,max,min);}else if(i==8){printf("\t\t");printf("************************************\n");printf("\t\t");printf("**************感谢使用**************\n");printf("\t\t");printf("************************************\n");k=0;}}//选择功能void menu(){int i;printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息排序;***********\n");printf("\t\t");printf("***********7.信息统计;***********\n");printf("\t\t");printf("***********8,退出系统;***********\n");printf("请选择项目:");scanf("%d",&i);while(i<1||i>8){printf("输入错误,请重新输入:\n");printf("\t\t");printf("***********1.信息浏览;***********\n");printf("\t\t");printf("***********2.信息查询;***********\n");printf("\t\t");printf("***********3.信息修改;***********\n");printf("\t\t");printf("***********4.信息添加;***********\n");printf("\t\t");printf("***********5.信息删除;***********\n");printf("\t\t");printf("***********6.信息统计;***********\n");printf("\t\t");printf("***********7,退出系统;***********\n");printf("请重新选择项目:");scanf("%d",&i);}Chooseproject(i);}int _tmain(int argc, _TCHAR* argv[]){ struct student *head = NULL;printf("\t\t");printf("************************************************************\n");printf("\t\t");printf("*********************学生管理系***************************\n");printf("\t\t");printf("************************************************************\n" );printf("是否已经录入信息?\n");char c;printf("请输入 'y' 或 'n':");c=getchar();getchar();while(c!='n'&&c!='y'){printf("输入错误,请重新输入( 'y' 或 'n'):\n");c=getchar();getchar();}if(c=='n'){printf("请输入学生成绩:\n");head=creat();}while(k!=0){menu();}system("pause");return 0;}。

c语言经典的程序设计题

c语言经典的程序设计题

以下是一些经典的C语言程序设计题:
1. 打印数字:编写一个程序,打印从1到100的所有整数。

2. 判断数字:编写一个程序,接收用户输入的一个数字,判断它是正数、负数还是零。

3. 排序数组:编写一个程序,接收用户输入的10个整数,将它们按照从小到大的顺序排序并输出。

4. 查找数组:编写一个程序,接收用户输入的10个整数和一个目标值,在数组中查找目标值并输出其下标。

5. 计算阶乘:编写一个程序,接收用户输入的一个正整数n,计算n的阶乘并输出结果。

6. 计算斐波那契数列:编写一个程序,接收用户输入的两个正整数n和m,计算斐波那契数列的第n项和第m项的值并输出。

7. 字符串反转:编写一个程序,接收用户输入的字符串,将其反转并输出。

8. 字符串拼接:编写一个程序,接收用户输入的两个字符串,将它们拼接起来并输出。

9. 计算平均值:编写一个程序,接收用户输入的n个浮点数,计算它们的平均值并输出。

10. 判断回文串:编写一个程序,接收用户输入的字符串,判断它是否是回文串并输出结果。

以上题目都是经典的C语言程序设计题,可以帮助初学者掌握基本的编程技能和算法思想。

C语言程序设计大作业--图书管理系统

C语言程序设计大作业--图书管理系统

C语言程序设计大作业设计报告一.设计方案本程序旨在用一个C语言程序实现简单的图书馆图书管理系统,程序包含平时的借书,还书,新书录入,查询功能,用简单明了的人机交互界面快速实现图书管理的目的。

二.模块说明及代码分析1.主函数:源代码:void main(){int a;printf("\n");printf("\n");printf(" ( ^_^ ) WELCOME!\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t〉〉-------------BJTU图书管理系统--------------〈〈");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");do {printf("1.借书 2.还书 3.新书录入4.查询 0.退出");printf("\n");printf("\n");printf("\n");printf("\n");printf("请选择序号:");scanf("%d",&a);switch(a){case 1:jieshu();break;case 2:huanshu();break;case 3:xinshu();break;case 4:chaxun();break;case 0:break;default:printf("请选择正确的序号!\n");printf("\n");}}while(a!=0);printf("谢谢使用图书管理系统!\n");}主函数提供人机交互界面,让操作者选择所需的操作项目,并有退出选项。

C语言程序设计综合实训题目

C语言程序设计综合实训题目

一、参考题目及选题(1)学生信息管理系统设计问题描述:学生信息包括:学号, 姓名, 年龄, 性别, 出生年月, 政治面貌, 籍贯, 家庭住址, 电话, E-mail等。

试设计一学生信息管理系统, 使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)(3)学生信息浏览功能(4)学生信息排序、查询功能对信息进行排序, 可以按学号, 按姓名, 按性别, 按出生年月日, 按籍贯进行查询(5)信息统计a) 可以按性别, 按出生年, 按籍贯统计学生人数b) 可以按班级统计学生人数c) 可以按政治面貌统计学生人数按班级统计学生党员人数, 团员人数, 以及所占比例, 设计并输出统计报表。

(6)学生信息的删除与修改●设计要求:●界面比较美观;有一定的容错能力, 比如输入的成绩不在0~100之间, 就提示不合法, 要求重新输入;●最好用链表的方式实现。

算法分析:首先, 一个学生包括这么多的属性, 应该考虑定义一个结构, 其次, 我们应该考虑数据的存储形式:是定义一个数组来存储, 还是定义一个链表呢?在这里假如我们以数组的方式来存储, 当然可以, 但是我们知道, 假如我们定义一个数组的话, 我们首先必须知道学生人数大概是多少, 以便我们确定数组的大小, 但是题目中没有给出, 而且题目要求中有大量的删除、插入操作, 所以用链表的方式比较方便。

对于菜单的实现, 其实也比较简单, 首先我们用printf语句把程序的功能列出来, 然后等待用户输入而执行不同的函数, 执行完了一个功能后又回到菜单。

文件的读写操作大家参照书中的有关文件的章节。

(2)、学生综合测评系统每个学生的信息为: 学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%, 10%, 10%, 20%。

《C语言程序的设计》大作业

《C语言程序的设计》大作业

南昌大学软件学院C语言程序设计工程实训大作业班级:09软件技术(2)班学号:8001509107姓名:吴承增指导老师:危建国2010年12月10日系统说明书1.问题描述:该程序包内容包括以下的模块,均用子函数完成:(1)主菜单(2)输入若干条记录并保存文件(指学生的信息)(3)学生信息录入、修改、删除、查询、存储。

(4)学生信息的浏览及排序(冒泡排序算法)。

(5)学生成绩的录入、修改。

(6)统计及格和优秀人数(7)退出系统2.程序设计和程序流程图:解决方案:主函数流程图:各部分功能的流程图:录入学生成绩流程图:统计功能流程图如图3所示:图3 统计模块流程图冒泡排序流程图:排序学生信息流程图:删除学生成绩信息流程图:3.系统的基本功能(主要数据和函数功能描述):char xh[15]; //以字符串数组形式存储学生学号char name[25]// 以字符串数组形式存储学生姓名char sex[5]; //性别float sxcj; //数学成绩float yycj; //英语成绩float Cyycj; //C语言成绩float ave; //平均成绩float sum; //总成绩#define N 4 //宏定义学生#define MAX 60 //学生最大个数int nCOUNT=0; //记录当前学生个数struct student //定义结构体学生int ScoreNew() //录入学生成绩int average() //求平均数int xsxscj() //显示输入学生信息、将学生打印到屏幕上int xsxsxx() //显示学生信息int xhcjpx() //按学生学号排序学生信息int sxcjpx()按数学成绩排序学生信息int yycjpx()按英语成绩排序学生信息int Cyypx() //按C语言成绩排序学生信息int zcjpx()按总成绩排序学生信息int pxxsxx()//排序学生信息int axhcx() //按学号查询int axmcx() //按姓名查询int SearchStud() //查询学生成绩信息int zjxsxx() //增加学生信息int xgxsxx() //修改学生信息int scxsxx() //删除学生信息int gxxscj() //更新学生信息int tjxscj() //统计学生成绩int save() //保存到文件((fp=fopen("stu_list.txt","wb"))==NULL) //以只读方式打开文件stu_list.txt (fwrite(&str[i],sizeof(struct student),1,fp)!=1) //创建文件并以二进制形式打开int xswj() //显示文件信息int main() //主函数mainmemu4.拟采用开发平台:Visual C++,Borland C++等。

c程序设计考试题目及答案

c程序设计考试题目及答案

c程序设计考试题目及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. structB. intC. voidD. return答案:C2. 在C语言中,哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A3. 若有定义`int a = 5;`,则执行`a += 3;`后,变量a的值是多少?A. 3B. 5C. 8D. 无法确定答案:C4. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. $variableD. variable!答案:B5. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World'D. 'Hello, World'答案:A6. C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][];B. int array[][3];C. int array[3][3];D. int array[][];答案:C7. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > y)B. if x > yC. if (x > y) elseD. if (x > y) else if答案:A8. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for i = 0; i < 10; i++C. for (int i = 0; i < 10;)D. for (i = 0; i < 10; i++)答案:A9. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int, int);B. int add(int a, int b)C. int add(int, int) {}D. int add(a, b)答案:A10. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr[10];D. int ptr(int);答案:A二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于__输出__。

c语言考试题及答案大题

c语言考试题及答案大题

c语言考试题及答案大题1. 编写一个C语言程序,实现以下功能:- 定义一个结构体`Student`,包含学号(`int id`)、姓名(`char name[50]`)、成绩(`float score`)。

- 创建一个`Student`类型的数组,包含至少5个学生的数据。

- 编写一个函数`calculateAverage`,计算并返回数组中所有学生的平均成绩。

- 在`main`函数中调用`calculateAverage`函数,并打印出平均成绩。

答案:```c#include <stdio.h>// 定义学生结构体typedef struct {int id;char name[50];float score;} Student;// 计算平均成绩的函数float calculateAverage(Student students[], int size) {float sum = 0;for (int i = 0; i < size; i++) {sum += students[i].score;}return sum / size;}int main() {// 创建学生数组并初始化数据Student students[5] = {{1, "Alice", 85.5},{2, "Bob", 92.0},{3, "Charlie", 78.5},{4, "David", 88.0},{5, "Eva", 90.5}};// 计算平均成绩float average = calculateAverage(students, 5);// 打印平均成绩printf("The average score is: %.2f\n", average);return 0;}```2. 编写一个C语言程序,实现以下功能:- 定义一个函数`reverseString`,接受一个字符串参数,将其反转,并返回反转后的字符串。

c语言程序设计大作业题目

c语言程序设计大作业题目

c语言程序设计大作业是用来测试学生编程能力和程序设计技巧的一项重要考核课程。

它主要包括掌握c语言程序设计的基础知识,通过实际的项目实践来进一步提高学生的编
程能力。

c语言程序设计大作业的题目非常多样,可以根据学生的兴趣和能力来制定题目。

例如,编写一个计算器,用来实现二元运算;编写一个小游戏,模拟贪吃蛇的运动;编写一
个文件管理系统,用来管理电脑中的文件;编写一个排序程序,用来实现数据的排序;编
写一个画图程序,用来实现图形的绘制等。

此外,c语言程序设计大作业还包括比较复杂的题目,如利用c语言编写一个学生成
绩管理系统,用来实现学生成绩的添加、查询、修改、删除等功能;编写一个聊天程序,用来实现多人在线聊天的功能;编写一个购物程序,用来实现购物车的功能等。

通过c语言程序设计大作业,不仅能够帮助学生更好地掌握c语言的基础知识,提高编程能力,而且还能够让学生在实际项目中练习,提高学生的分析和解决问题的能力,为今后从事编程开发提供良好的基础。

c程序设计大作业

c程序设计大作业

c程序设计大作业C程序设计大作业C程序设计是一门实践性很强的课程,大作业是检验学生对C语言掌握程度的重要方式。

本次大作业的目的在于通过实际编程练习,加深对C 语言基础语法、数据结构、算法设计和程序调试等方面的理解,同时培养学生的编程思维和解决实际问题的能力。

一、大作业要求1. 题目选择:学生可以从以下题目中任选一题完成:- 学生信息管理系统- 图书馆管理系统- 简易计算器- 字符串处理工具- 图形界面的五子棋游戏2. 功能实现:每个题目都应实现基本功能,例如:- 学生信息管理系统:添加、删除、修改、查询学生信息。

- 图书馆管理系统:图书借阅、归还、查询等。

- 简易计算器:实现基本的加减乘除运算。

- 字符串处理工具:实现字符串的复制、连接、查找、替换等操作。

- 图形界面的五子棋游戏:实现基本的下棋逻辑和胜负判断。

3. 代码规范:代码应遵循良好的编程规范,包括但不限于:- 明确的函数分工,每个函数应有简短的注释说明其功能。

- 变量命名应清晰,避免使用无意义的缩写。

- 代码结构清晰,逻辑性强。

4. 文档编写:提交的作业应包括:- 程序设计说明书:介绍程序的功能、设计思路、实现过程等。

- 源代码:按照题目要求编写的C语言代码。

- 用户手册:简要说明如何使用程序。

5. 提交方式:所有材料应以电子文档形式提交,包括设计说明书、源代码和用户手册。

二、大作业流程1. 选题:学生在教师的指导下选择适合自己能力的题目。

2. 需求分析:明确程序需要实现的功能和性能要求。

3. 设计:设计程序的总体结构和各个模块的详细设计。

4. 编码:根据设计文档编写程序代码。

5. 测试:对编写的程序进行测试,确保功能正确无误。

6. 调试:根据测试结果进行必要的调试,修正程序中的错误。

7. 文档编写:编写程序设计说明书和用户手册。

8. 提交:按照要求提交所有材料。

三、评分标准1. 功能实现:程序是否实现了题目要求的所有功能。

2. 代码质量:代码是否规范、清晰、易读。

c语言程序设计大一考试题及答案

c语言程序设计大一考试题及答案

c语言程序设计大一考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$答案:B2. C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 下列哪个选项是C语言中的整型常量?A. 3.14B. '3'C. 0x1AD. "3"答案:C4. 在C语言中,哪个运算符用于取地址?A. *B. &C. %D. #答案:B5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A7. 在C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. voidD. int答案:C8. 下列哪个选项是C语言中的二维数组声明?A. int a[2][3];B. int a[][];C. int a[2][];D. int a[3,2];答案:A9. 在C语言中,哪个函数用于输出格式化的字符串?A. printf()B. scanf()C. fgets()D. fputs()答案:A10. 下列哪个选项是C语言中的条件语句?A. ifB. switchC. forD. while答案:A二、填空题(每题2分,共20分)1. 在C语言中,字符常量可以用单引号括起来,例如:'a'、'1'、______。

答案:'\n'2. C语言中,用于定义一个空指针的是 ______ 。

答案:NULL3. C语言中,数组的下标从 ______ 开始。

c语言设计试题及答案

c语言设计试题及答案

c语言设计试题及答案C语言设计试题及答案1. 写出C语言中定义一个结构体的语法格式。

答案:在C语言中,定义一个结构体的语法格式如下:```cstruct 结构体名 {成员列表;};```其中,结构体名是结构体的名称,成员列表是结构体成员的声明。

2. 说明C语言中数组和指针的区别。

答案:C语言中数组和指针的主要区别包括:- 数组是一组相同类型的元素的集合,而指针是一个变量,它存储了另一个变量的内存地址。

- 数组名本身是一个常量,它不能被改变,而指针变量的值可以改变。

- 数组的大小在编译时确定,指针的大小在运行时确定。

- 数组在内存中是连续存储的,而指针可以指向任意位置。

3. 编写一个C语言函数,实现将一个整数数组反转的功能。

答案:```c#include <stdio.h>void reverseArray(int arr[], int size) {int temp;for (int i = 0; i < size / 2; i++) {temp = arr[i];arr[i] = arr[size - 1 - i];arr[size - 1 - i] = temp;}}int main() {int array[] = {1, 2, 3, 4, 5};int n = sizeof(array) / sizeof(array[0]);reverseArray(array, n);for (int i = 0; i < n; i++) {printf("%d ", array[i]);}return 0;}```该函数通过交换数组的元素来实现数组的反转。

4. 解释C语言中宏定义的作用。

答案:C语言中的宏定义使用预处理指令`#define`来实现。

它允许程序员定义一个名称,该名称可以被替换为一个字符串。

宏定义通常用于定义常量、创建复杂的表达式、创建条件编译指令等。

C语言程序设计习题集(有答案)

C语言程序设计习题集(有答案)

C语言程序设计习题集(有答案) C语言程序设计习题集(有答案)C语言是一门广泛应用于软件开发和系统编程领域的计算机程序设计语言。

掌握C语言编程的基础知识和技能对于从事相关行业的人来说至关重要。

为了帮助读者加深对C语言的理解和应用,本文提供了一份C语言程序设计习题集,每道习题都附有答案,供读者参考和自我检测。

1. 输入输出问题描述:编程实现一个简单的输入输出程序。

要求从标准输入读入一个整数,然后输出该整数,并换行。

解答:```c#include <stdio.h>int main() {int num;scanf("%d", &num);printf("%d\n", num);return 0;}```2. 条件判断问题描述:编写一个程序,判断一个给定的整数是否为偶数。

如果是偶数,则输出"Even",否则输出"Odd"。

解答:```c#include <stdio.h>int main() {int num;scanf("%d", &num);if (num % 2 == 0) {printf("Even\n");} else {printf("Odd\n");}return 0;}```3. 循环结构问题描述:编写一个程序,计算并输出1到100之间所有偶数的和。

解答:```c#include <stdio.h>int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}printf("Sum: %d\n", sum);return 0;}```4. 数组问题描述:编写一个程序,从键盘输入5个整数,然后按照输入的顺序将它们输出。

西南大学大二计算机专业C语言程序设计试卷及答案

西南大学大二计算机专业C语言程序设计试卷及答案

//翻开文件后,如下步骤写程序#include <>//首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数//接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中表达。

但是这个函数有且仅有一个int main(){//这是main函数的函数体,要实现什么功能,就把实现功能的语句写到这里面//比方我要实现打印HelloWorld字符,那么我就调用printf〔〕标准输出语句printf("Hello World!\n");//这个语句表示原样输出引号内的字符,‘\n’表示换行return0;//最后,因为main函数有一个int的返回类型限定,那么我们使用return 语句返回一个int类型的值 0.}//这样就结束了。

一个简单的但又完整的C程序就有了,//下一步就是使用编译器编译成目标的可执行文件://如果是windows下的vc++//最后就是运行了,windows下直接点击vc++的运行或双击hel dos窗口运行,并显示结果,linux下使用“./a.out〞可以直接运行,运行结果会显示在shell中。

//这就是整个完整的流程,包括每一步。

调试过程:设置断点,调试命令,观察变量,查看内存,常见错误:C 语言程序设计的错误可分为语法错误、连接错误、逻辑错误和运行错误。

VC++ 和DEV C++都是C++语言的开发工具。

如果只是做些小程序,根本上看不出区别。

两者DEBUG 和RELEASE上的时间有所不同。

还有一点就是,通常如果是在VC++下编写的代码,不是很标准,拿到DEV C++上会报错。

而反过来则可以运行。

这里涉及到GCC的问题,它对标准的支持表现在不支持非标准的东西,但是DEV C++有个最大的好处就是体积小,没有VC++这么大,可以装到U盘里。

C语言程序设计实例分析30道(含答案)

C语言程序设计实例分析30道(含答案)
#include<stdio.h>
int main()
{
int i,x,y,z;
for(i=100;i<1000;i++)
{
x=i%10;
y=i/10%10;
z=i/100%10;
if(i==(x*x*x+y*y*y+z*z*z))
printf("%d\n",i);
}
return 0;
}
【题目12】:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
【程序分析】:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外打印出即可。
(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?
【程序分析】:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
【程序源代码】:
#include<stdio.h>
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
{
int score;
char grade;
printf("请输入分数:");
scanf("%d",&score);
grade=(score>=90)?'A':((score>=60)?'B':'C');

二级C语言程序设计期末大作业(3-4-5)

二级C语言程序设计期末大作业(3-4-5)

二级C语言程序设计期末大作业(3-4-5)一、单选题1. C 语言程序中可以对程序进行注释,注释部分必须用符号__C___括起来。

A. { 和 }B. [ 和 ]C. /* 和 */D. */ 和 /*2. 设要定义n为整型变量,定义x为浮点型变量,正确的语句是:_B____ 。

A. int n, float x,B. int n, float x;C. int n; float x,D. int n; float x;3. 设有int n; 从键盘上输入整数给变量n,正确的语句是:__D___ 。

A. scanf( n );B. scanf( "n" );C. scanf( "%d", n );D. scanf( "%d", &n );4. 程序段int x=3, y=2;printf("%d", x*=y+8/5);的输出结果为__D___ 。

A. 1B. 5C. 7D. 95. 要判断char型变量m是否是数字,可以使用表达式_____B_____。

A. 0<=m && m<=9B. m>='0' && m<='9'C. "0"<=m && m<="9"D. '0'<=m <='9'6. 执行以下代码段后,a的值为___A__。

int a=1,b=2,c=3;if(a>b) a=b;if(a>c) a=c;A. 1B. 2C. 3D. 不确定7. 下面的for 语句执行时,____B___将形成无限循环。

A. for(s=j=0; j<100; j+=1) s+=j;B. for(s=j=0; j<100; j+1) s+=j;C. for(s=j=0; j<100; ++j) s+=j-1;D. for(s=j=0; j<100; j++) s+= j;8. 循环语句中,break的作用是____B___。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈尔滨工业大学(威海)2019 / 2020 学年 春 季学期比赛结果,因而成为乒乓球比赛经常采用的方法。

其不足之处在于相对来讲耗时较多,特别是在参赛人数多而比赛时间短的情况下不宜采用。

乒乓球比赛一般多采用单循环和分级循环:1.1、单循环参赛的人或队都要互相轮流比赛1次的方法。

单循环比赛的轮数计算:当参赛人数或队数为单数时,轮数等于人(队)数;参赛人数为双数时,轮数等于人(队)数减1。

单循环比赛的计算方法是:获胜次数多者名次列前,如有2个或2个以上的运动员获胜次数相同时,则依次由他们之间场数胜负比率、局数胜负比率、分数胜负比率的顺序来决定。

1.2、分组循环这是将若干人(队)分成几个小组,在各小组内进行循环方法,其特点是要以节省时间,在参赛人数多且比赛时间短的情况下采用。

分组循环一般用于团体赛,可将所有参赛队用蛇形方法分组,如12个队参赛可分成A、B两组:A组:1 4 5 89 12B组:2 367 10 11上列数字是各队的顺序号,它是按各队实力强弱排列的,序号小者实力强,反之实力弱。

2、淘汰制淘汰制就是比赛中失败一次即退出比赛,获胜者继续比赛,直到决出冠亚军为止。

这种竞赛方法的特点是节省时间,竞争性强,能使比赛越来越精彩,但也有偶然性。

2.1 单淘汰所谓单淘汰是指将所有参赛选手编成一定的比赛顺序,由相近的两名选手进行比赛,胜者进入下一轮,负者即遭淘汰。

2.2双淘汰双败淘汰制与普通的淘汰制输掉一场即被淘汰不同,参赛者只有在输掉两场比赛后才丧失争夺冠军的可能。

双败淘汰制的比赛一般分两个组进行,胜者组与负者组。

在第一轮比赛后,获胜者编入胜者组,失败者编入负者组继续比赛。

之后的每一轮,在负者组中的失败者将被淘汰;胜者组的情况也类似,只是失败者仅被淘汰出胜者组降入负者组,只有在负者组中再次失败(即总共有两次失败)后才会被淘汰出整个比赛。

每一轮败者组的比赛又分为两个阶段。

第一个阶段,由当前败者组中的幸存者相互对阵,负者被淘汰,胜者进入第二个阶段;第二个阶段,由第一阶段中败者组的胜者对阵刚刚在本轮由胜者组中淘汰下来的选手。

以一个8名选手参加的双败淘汰制比赛为例:第一轮比赛:四场比赛后,各自有4名选手依据结果编入胜者组或败者组第二轮比赛:胜者组4名选手相互比赛,败者编入败者组,败者组选手在第一阶段先相互比赛,并淘汰掉2名选手,剩下的2名选手再进入第二阶段,与刚在胜者组淘汰到败者组的2名选手比赛,获胜的2名进入第三轮。

第三轮比赛(即败者组决赛):败者组剩下的这2名选手在第一阶段先淘汰掉1名(已累积二败绩),剩下1名进入第二阶段,对阵胜者组决赛中的失败者,败者组决赛中的胜者(到此仅败过1场)将与胜者组决赛中的胜者(到此从未败过),争夺最后的冠军。

在胜者组第一名与败者组第一名最后决赛时,任何一方胜利即获得最终的冠军。

细节说明方案C最高分85,方案B最高分95分,方案A最高分100分。

没有达到指定要求的在最高得分的基础上减去一定的分值。

其他细节扣分点包括但不限于如下几点:1)命令行下输入的候选人姓名要求是不能重复的,也就是不能有两个参赛选手姓名相同2)如果程序运行中要输入姓名,要求参赛选手的姓名对大小写不敏感,也就是A l ice与a l ice是同一个人,B O B 与b o b是同一个人3)如果程序运行中要输入比分,比分必须要验证是合理的。

4)命令行中输入参赛人数量时要求验证在题目给定的范围内,如果不在这个范围要求退出重新运行程序5)编程前需要斟酌好数据结构,如果数据结构选择不当,导致程序特别复杂或者程序运行效率降低的会被扣分6)可以适当使用全局变量方案C2020年要举行新一年的乒乓球比赛了,假设去年比赛有两名种子选手今年继续参赛(姓名在命令行中输入,名字各不相同),种子选手要尽量安排在比赛的最后阶段遇到。

今年比赛的选手总数([4-16])和选手名单(名字各不相同)在程序运行时输入。

请按照单淘汰的赛制随机列出一份所有比赛场次的比赛名单,每场比赛都是3局2胜制,每场比赛的结果在程序运行阶段输入。

每轮比赛前,打印出两两对阵名单,比赛后要输入各场比赛的结果,然后打印出下轮比赛的名单,直到决出今年的前冠亚军为止。

程序要求打印出冠军的名字。

如果选手数量是单数,可能会轮空,轮空算晋级获胜处理。

请按照题目要求自行设计数据类型和算法,要求每次运行同样的数据输出的结果不一样。

程序运行如:$./g a m e A l ice Bo bNum b er of g a m er s:4G a m er 1:M i k eG a m er 2:M arr yG a m er 3: C h ar l ieG a m er 4: Da v e(…比赛过程掠过)A l ice i s t h e wi nn er!以上紫色字体是命令行输入的字符串,红色字体是程序输出的提示信息,黑色字体是运行程序时输入的参赛者姓名,中间的比赛过程略过了,绿色字体是最终的执行结果。

方案B2020年要举行新一年的乒乓球比赛了。

今年比赛的选手总数([4-6])和选手名单(名字各不相同)在程序运行前作为命令行输入。

比赛采用5局3胜的单循环制,每个人都和其他所有人对局,胜负的计算方法是:获胜场数多者名次列前,最后如有2个或2个以上的运动员获胜次数相同时,则由他们净胜局数的顺序来决定,如果还一样就按照他们俩之间的那场对局的胜负决定谁是冠军,如果形成连环套,抽签随机决定名次。

请在每轮比赛前,打印出两两对阵名单,每场比赛后要输入比赛的结果,然后打印出所有运动员已经赢得的场次数(按照从大到小的顺序排序),直到决出冠军后按照名次打印出所有人的名字。

如果选手数量是单数,可能会轮空,轮空算晋级获胜处理。

请按照题目要求自行设计数据类型和算法,要求每次运行程序对决安排的名单随机。

程序执行如下:$./g a m e 4 A l ice Bo b C h ar l ie Da v e以上紫色字体是命令行输入的字符串.方案A2020年要举行新一年的乒乓球比赛了。

今年比赛的选手总数([8-16])和选手名单(名字各不相同)在程序运行前通过命令行输入。

请按照双败淘汰制随机列出一份初始比赛名单,每场比赛都是3局2胜制,每场比赛的结果在程序运行阶段输入。

每轮比赛前,打印出两两对阵名单(相同败率的选手随机安排对局),比赛后要输入各场比赛的结果,然后打印出下轮比赛的名单,直到决出冠亚军为止。

最后打印比赛前4名的名字。

如果选手数量是单数,可能会轮空,轮空算晋级获胜处理。

程序执行如下:$./g a m e 8 A l ice Bo b C h ar l ie Da v e E l e F l e mm i ng G or g e H oward以上紫色字体是命令行输入的字符串.请按照题目要求自行设计数据类型和算法,要求每次运行同样的数据输出的结果不一样。

方案D 投票选举-最高得票者当选制题目背景介绍假设我班需要选举一名课代表,在初轮选举后,已经有M([3-9])位同学成为了候选人。

在接下来的选举中,有[10-30]名同学参与投票,每位同学都必须参与,但若名字和所有候选人都不相符,属于弃票。

投票表决的方式有很多种,请用最高得票者当选制的投票方式D完成选举(最高分80,晚提交扣分,但早提交没有加分)。

每个投票者只能投给一个候选人(如下图所示),取得最多选票的候选人获胜,获胜者没有必要取得半数选票。

如果最高得票者得票数相同,则需要打印出所有获胜者的姓名。

程序要求在命令行输入所有候选人的姓名后,启动程序,然后输入总共参与投票的人数以及各位投票人的选择后输出获胜者,如:$./v ote A l ice Bo b C h ar l ieTh i s pro g ra m i s de s i gn ed a n d coded b y xxx s t u de n t id xxNum b er of v oter s:4V ote: A l iceV ote: Bo bV ote: C h ar l ieV ote: A l iceA l ice i s t h e wi nn er!以上红色字体是程序输出的,黑色字体是投票人的投票信息,绿色字体是最终的执行结果。

选择这个方案的同学最高得分80分,没有达到指定要求的在最高得分的基础上减去一定的分值。

其他细节扣分点如下:1)主函数、“投票”、“打印获胜者”需要分别用一个独立的函数实现2)编程前需要斟酌好数据结构,如果数据结构选择不当,可能导致程序特别复杂或者程序运行效率降低3)如果投票的时候输入了错误的候选人姓名,需要将此票作废处理4)候选人的姓名对大小写不敏感,也就是A l ice与a l ice是同一个人,B O B 与b o b是同一个人5)输入投票人数量时要求输入的整数必须在10-30的范围内,如果不在这个范围或者输入的不是合法的整数,要求重新输入数据,直到达到要求为止6)运行程序时,候选人名字要在命令行下输入,候选人的数量必须在3-9的范围内,程序中需要验证候选人的数量7)命令行下输入的候选人姓名要求是不能重复的,也就是不能有两个候选人姓名相同8)这种投票方式可能会出现多个优胜者。

相关文档
最新文档