C++的大作业题目
c语言期末考试题库大题及详解答案

c语言期末考试题库大题及详解答案1. 题目一:数组的逆序输出题目描述:编写一个C语言程序,实现一个整型数组的逆序输出。
程序代码:```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);for (int i = n - 1; i >= 0; i--) {printf("%d ", arr[i]);}return 0;}```答案解析:程序中定义了一个整型数组`arr`,使用`sizeof`运算符计算数组长度,并通过逆序循环输出数组元素。
2. 题目二:计算字符串中字符出现的次数题目描述:编写一个C语言程序,计算一个字符串中某个字符出现的次数。
程序代码:```c#include <stdio.h>#include <string.h>int main() {char str[] = "Moonshot AI";char ch = 'o';int count = 0;for (int i = 0; str[i] != '\0'; i++) {if (str[i] == ch) {count++;}}printf("字符'%c'出现的次数为:%d\n", ch, count);return 0;}```答案解析:程序中定义了一个字符串`str`和一个字符`ch`,通过循环遍历字符串并计数字符`ch`的出现次数。
3. 题目三:实现一个简单的计算器题目描述:编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除运算。
程序代码:```c#include <stdio.h>int main() {double num1, num2;char op;printf("请输入第一个数字:");scanf("%lf", &num1);printf("请输入运算符(+、-、*、/):");scanf(" %c", &op); // 注意在%c前面加空格,以跳过任何空白字符printf("请输入第二个数字:");scanf("%lf", &num2);switch (op) {case '+':printf("结果:%.2lf\n", num1 + num2);break;case '-':printf("结果:%.2lf\n", num1 - num2);break;case '*':printf("结果:%.2lf\n", num1 * num2);break;case '/':if (num2 != 0) {printf("结果:%.2lf\n", num1 / num2);} else {printf("除数不能为0\n");}break;default:printf("无效的运算符\n");}return 0;}```答案解析:程序首先接收用户输入的两个数字和一个运算符,然后使用`switch`语句根据运算符执行相应的运算,并输出结果。
C语言程序设计大作业

C语言程序设计大作业理论课综合训练任课教师:□□□学生学号:□□□□□□□□□□学生姓名:□□□所在班级:□□□□□□□项目名称:□□□□□□□□□□---------------------------------------------------------教师评语(总分20分):(1)基本要求(12分):(2)创新点(2分):(3)实用性(2分):(4)技术水平(2分):(5)卷面综合(2分):教师签名:2022年6月10日一、项目简介本项目所完成的功能包括求三角形面积、一元二次方程求根和排序,是学习生活中的常用计算工具,具有很强的实用性。
本程序包括5个函数模块,在主函数中实现了菜单功能,在窗口菜单提示下,选择数字键完成所需功能,方便用户操作。
j某mj()是求三角形面积函数模块,键盘输入三角形三边之长a、b、c,根据下面公式计算三角形面积。
p=(a+b+c)/2=p(pa)(pb)(pc)如果两边之和大于第三边不成立,输出错误信息。
root()是一元二次方程求实根模块,键盘输入二次项系数a、一次项系数b、常数项c,根据下面公式计算两个实根。
bb24ac某12=2a如果b-4ac<0,输出无实根信息。
pai某u()是排序函数模块,主要读写磁盘文件数据。
程序运行前,必须先在工作区文件夹(或运行程序文件所在文件夹)建立一个文本文件inpai某u.t某t,文件中输入不超过100个整数,数据之间用空格或用回车换行符间隔。
排序结果输出在文本文件outpai某u.t某t中。
myort()是冒泡法排序模块,pai某u()函数是本函数的调用函数,所用算法为冒泡排序算法。
2二、运行测试结果(1)求三角形面积在窗口菜单提示下选择数字键1输入三边之长(用逗号间隔):3,4,5<Enter>=6.000000再次测试输入三边之长(用逗号间隔):1,2,3<Enter>输入数据错误!!!(2)求一元二次方程实根在窗口菜单提示下选择数字键2,分别进行两组测试。
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语言程序设计大作业题目

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语言大作业

学院目录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语言大作业全

#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考试题及答案解析一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个函数?A. intB. whileC. returnD. void答案:D解析:在C语言中,`void`关键字用于定义一个函数,表示该函数不返回任何值。
2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. intC. _variableD. variable-答案:C解析:C语言中的标识符可以由字母、数字和下划线组成,但不能以数字开头,也不能包含空格或特殊字符。
3. 以下哪个选项是C语言中的逻辑运算符?A. &&B. ||C. +=D. +=答案:A解析:`&&`是C语言中的逻辑与运算符,用于判断两个表达式是否同时为真。
4. C语言中,以下哪个选项是正确的字符串声明?A. char str[10] = "Hello";B. char str[10] = 'Hello';C. char str = "Hello";D. char str[10] = {"Hello"};答案:A解析:在C语言中,字符串应该使用字符数组来声明,并使用双引号来初始化。
5. 下列哪个选项是C语言中的循环结构?A. ifB. switchC. forD. break答案:C解析:`for`是C语言中的循环结构之一,用于重复执行一段代码。
6. C语言中,以下哪个选项是正确的二维数组声明?A. int arr[3][4];B. int arr[][] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};C. int arr[3][];D. int arr[3][4] = {1, 2, 3, 4, 5, 6, 7, 8};答案:A解析:在C语言中,二维数组需要在声明时指定第一维的大小,第二维可以不指定。
C语言大作业题目

C语言大作业:选择下面一个题目,两个人一组,根据题目的内容和要求完成,最后上交“C语言大作业报告”。
题目一 (2)题目二 (5)------------------------------------------------------------------------------题目一一、名称学生信息管理系统二、目标有一组学生信息,包括学号,姓名,性别,出生日期,还有语文、数学、英语、科学、体育等5门课程的成绩,设计一个程序,对这些信息进行管理,包括学生信息的创建、增加、删除、修改、查找等。
三、要求1.数据存储可以选择数组结构或者链表结构;2.如果使用数组结构,则假设学生人数不超过50;3.各个功能模块请设计相应的函数来完成;4.按照“C语言大作业报告”的格式及内容提交作业;四、主要功能1.学生信息的创建开始运行时,初始数据有两个方式可以创建:1)从一个数据文件读入。
数据文件的格式由代码编写人员根据程序设计的内容提供;2)从键盘输入。
输入数据的格式在运行界面中提供;3)初始信息中要求学生编号从小到大排列2.学生信息的增加1)增加的数据可以从数据文件中读入;2)增加的数据可以从键盘输入;3)增加的数据按照编号大小的顺序插入3.学生信息的删除1)根据提供的学号查找并删除学生信息;2)找不到时给出提示;4.学生信息的修改1)根据提供的学号查找并修改学生信息,可以只修改部分信息,由运行界面的交互信息来进行提示;2)找不到时给出提示;5.学生信息的查找1)根据提供的学号查找并显示该学生的所有信息;2)根据提供的姓名查找并显示该学生的所有信息;3)找不到时给出提示;6.保存信息可以把程序中的数据信息保存到磁盘文件,文件名由键盘输入;五、数据结构示例struct data{ int year; //年int month; //月int day; //日};struct student{ int snum; //学号char name[10]; //姓名char sex; //性别struct data birthday; //出生日期int score[5] ; //5门课程成绩};struct node{ struct student data; //结点数据域struct node * next; /结点指针域};struct table{ struct student s[50]; //数据数组int len; //数组中实际的元素数量};六、部分功能界面示例1.主界面采用文本菜单形式,如下所示:========================================学生信息管理系统========================================功能选项:0---保存信息并退出1---创建学生信息2---增加学生信息3---浏览学生信息4---修改学生信息5---查找学生信息6---删除学生信息========================================请输入选项(0--7): 12.学生信息的创建功能部分界面及虚拟执行结果:**********学生信息的创建**********说明:程序开始运行时,学生信息为空时,这时需要创建学生信息功能选项:-------------------------------------------------1---从键盘输入数据信息2---从文件读取数据信息--------------------------------------------------请输入选项(1--2):1你选择了从键盘输入数据,请继续......请输入学生的人数:10请按照学号姓名性别出生日期语文数学英语科学体育的顺序输入每个学生的信息:创建成功!按回车键继续.......返回主界面3.学生信息的查找功能界面及虚拟执行结果**********学生信息的查找**********功能选项:----------------------------------1---按照学号查找2---按照姓名查找----------------------------------请输入选项(1--2):1你选择了按照学号查找,请继续......请输入学生的学号:1005找到了,具体信息如下:学号姓名性别出生日期语文数学英语科学体育1005 tom M 2000-1-1按回车键继续.......返回主界面或者没有找到按回车键继续.......返回主界面------------------------------------------------------------------------------题目二一、名称班级图书库信息管理系统二、目标假设班级为了增强学习气氛,设置了班级图书角,图书有编号、书名、作者的信息登记,同学借阅图书后要记录借阅人的借阅日期。
西工大C语言大作业习题答案

童鞋们,快来呀!答案!答案!no1.绘制余弦曲线在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线*问题分析与算法设计如果在程序中使用数组,这个问题十分简单。
但若规定不能使用数组,问题就变得不容易了。
关键在于余弦曲线在0~360度的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。
为了获得本文要求的图形就必须在一行中一次输出两个“*”。
为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。
将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形与180~360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就应为62-m。
程序中利用反余弦函数acos计算坐标(x,y)的对应关系。
使用这种方法编出的程序短小精炼,体现了一定的技巧。
*程序说明与注释#include<stdio.h>#include<math.h>void main(){double y;int x,m;for(y=1;y>=-1;y-=0.1){m=acos(y)*10;for(x=1;x<m;x++) printf(" ");printf("*");for(;x<62-m;x++)printf(" ");printf("*\\n");}}no2.绘制余弦曲线和直线在屏幕上显示0~360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。
其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。
*问题分析与算法设计本题可以在上题的基础上进行修改。
图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。
c语言编程大题

三、编程题1.输入一个半径值,分别计算圆周长、圆面积和球的体积。
要求使用符号常量定义圆周率。
#include<stdio.h>int main(){printf("计算圆周长面积求面积\n");floatr,c,s,v;scanf("%f",&r);# define PI 3.14159265c=2*PI*r;s=4*PI*r*r;v=4/3*PI*r*r*r;printf("周长是%.2f\n",c);printf("表面积是%.2f\n”,s);printf("体积是%,2f\n",v);return 0;}2.假设今天是星期三,编程求20天之后是星期几?#include<stdio.h>int main(){printf("今天是星期三,20天后是星期几?\n");int i;i=23%7;printf("20 天后是星期%d\n”,i);return 0;}3.从键盘输入一个字符,然后将其按字符和整数这两种形式输出。
#include<stdio.h>int main(){printf("输入一个字符3");char i;scanf("%c",&i);printf("整数形式是%d\n"』);printf("字母形式是%c\n”,i);return 0;}4.输入一个大写英文字母,将它转化为小写输出。
#include<stdio.h>int main(){printf("请输入一个大写英文字母\n");charch;scanf("%c",&ch);printf("%c\n",ch+32);return 0;}5.求一元二次方程ax A2+bx+c=0方程的两个实根。
c编程大题总汇.docx

1.写程序:用算法函数:intsum(intn); 其功能是求 1+2+3+⋯ +n 的并返回。
要求写主函数m a i n()去用函数s u m()。
写程序如下:【答案】#include<iostream.h>intsum(intn){if(n==0||n==1)return1;elsereturnn+sum(n-1);}voidmain(){intn;cout<<"pleaseinputn:\n";cin>>n;cout<<"1+2+3+...+"<<n<<"="<<sum(n)<<endl;}1.写程序:分求出acm(5,3)、acm(4,2)、acm(5,5)的。
阿克曼函数定如下:n+1m=0acm(m,n)=acm(m-1,n)n=0acm(m-1,acm(m,n-1))n>0,m>0写程序如下:【答案】 #include<iostream.h>intacm(intm,intn);voidmain(){intm,n;cout<<"pleaseinputmandn:\n";cin>>m>>n;cout<<"acm(m,n)="<<acm(m,n)<<endl;}intacm(intm,intn){if(m==0)returnn+1;else{if(n==0)returnacm(m-1,n);elsereturnacm(m-1,acm(m,n-1));}}输入: 42输出:3输入: 55输出:62.编写程序:要求输入一个整数n ,能够逐位取出正序或反序输出,用递归算法实现:函数: voidf1(intn); 功能是:将 n逐位取出反序输出函数: voidf2(intn); 功能是:将 n逐位取出正序输出算法提示:重复除以 10 取余数,直到商为 0为止;若函数中先输出余数,后递归调用,则为反序输出;若函数中先递归调用,后输出余数,则为正序输出。
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语言期末考试题库大题及详解答案1. 题目:编写一个C语言程序,实现一个简单的学生成绩管理系统,要求能够添加学生信息、查询学生信息、修改学生信息和删除学生信息。
答案:```c#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct {int id;char name[50];float score;} Student;Student students[100];int studentCount = 0;void addStudent(int id, char* name, float score) {if (studentCount < 100) {students[studentCount].id = id;strcpy(students[studentCount].name, name);students[studentCount].score = score;studentCount++;} else {printf("学生信息已满。
\n");}}void queryStudent(int id) {for (int i = 0; i < studentCount; i++) {if (students[i].id == id) {printf("学生ID:%d, 姓名:%s, 成绩:%.2f\n", students[i].id, students[i].name, students[i].score);return;}}printf("未找到该学生信息。
\n");}void modifyStudent(int id, char* name, float score) {for (int i = 0; i < studentCount; i++) {if (students[i].id == id) {strcpy(students[i].name, name);students[i].score = score;printf("学生信息已更新。
c语言必做100题

c语言必做100题1. 编写一个C程序,输出“Hello, World!”。
2. 编写一个C程序,计算并输出1到100的和。
3. 编写一个C程序,判断一个数是否为素数。
4. 编写一个C程序,将一个字符串反转。
5. 编写一个C程序,实现二分查找算法。
6. 编写一个C程序,实现插入排序算法。
7. 编写一个C程序,实现选择排序算法。
8. 编写一个C程序,实现冒泡排序算法。
9. 编写一个C程序,实现快速排序算法。
10. 编写一个C程序,实现希尔排序算法。
11. 编写一个C程序,将一个二维数组转置。
12. 编写一个C程序,计算一个数的阶乘。
13. 编写一个C程序,实现斐波那契数列。
14. 编写一个C程序,计算两个数的最大公约数。
15. 编写一个C程序,计算两个数的最小公倍数。
16. 编写一个C程序,计算一个数的平方根。
17. 编写一个C程序,计算一个数的立方根。
18. 编写一个C程序,实现矩阵乘法运算。
19. 编写一个C程序,实现字符串的查找和替换。
20. 编写一个C程序,实现栈的基本操作(入栈、出栈、查看栈顶元素)。
21. 编写一个C程序,实现队列的基本操作(入队、出队、查看队首元素)。
22. 编写一个C程序,实现链表的基本操作(插入、删除、倒置)。
23. 编写一个C程序,实现二叉树的前序、中序和后序遍历。
24. 编写一个C程序,实现图的深度优先搜索算法。
25. 编写一个C程序,实现图的广度优先搜索算法。
26. 编写一个C程序,实现最短路径算法(Dijkstra算法或Floyd算法)。
27. 编写一个C程序,实现最小生成树算法(Prim算法或Kruskal算法)。
28. 编写一个C程序,实现拓扑排序算法。
29. 编写一个C程序,实现优先队列。
30. 编写一个C程序,实现哈希表的基本操作(插入、查找、删除)。
31. 编写一个C程序,实现堆的基本操作(插入、删除、查找最大值)。
32. 编写一个C程序,实现最大堆排序算法。
C语言编程大作业

利用main函数的参数选择是对整数进行操作还是对字符串进行操作:Handle int ---→一、整数操作Handle string ---→二、字符串操作一、整数操作(含有50个正整数(<=3位)的文件:int_input,输入1,2,3,4分别选择不同的操作)1.排序(结果存到文件int_output1)2.求中间两个数的最大公因数和最小公倍数3.统计素数的个数4.统计同构数的个数(同构数是指:它出现在它的平方数的右边),如5是其平方数25的尾数,76是其平方数5776的尾部二、字符串操作(含有50个字符串的文件:string_input,输入1,2,3,4分别选择不同的操作)1.排序(结果存到文件string_output1)2.实现每个字符串的逆置,前25个用递归,后25个用非递归(结果存到文件string_output2)3.统计单词”hello”出现的次数。
如某一行:ghhello32he,该行次数为14.在最小串中出现,而未在最大串中出现的字符形成一个新的串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符。
例如: 当min = "", max = "2467"时, u中的字符串为"1135"。
源代码:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#define N 50int ReadFile_Num(int*);void WriteFile_Num(char* FileName,int*,int);void sort_Num(int*,int);int CommonDivisor(int,int);int CommonMultiple(int,int);int PrimeNumber(int*,int);int TongGouShu(int*,int);int ReadFile_Str(char*,char* str[]);void WriteFile_Str(char*,char* str[],int,char* mode);void sort_Str(char* str[],int);void reverse(char* str[],int);void reverse_recursion(char* str);int SearchHello(char* str[],int);void FindMaxMin(char* str[],int,char* r[]);void ProcessString(char* r[]);int main(int argc,char* argv[]){char choice;if(2==argc){if(strcmp(argv[1],"Handle int")==0){int Data_Num[N];int len;printf("**************************整数操作**************************\n\n");len=ReadFile_Num(Data_Num);printf("请选择要进行的操作:");printf("\n1、排序\n");printf("2、求中间两个数的最大公约数和最小公倍数\n");printf("3、统计素数\n");printf("4、统计同构数\n");fflush(NULL);scanf("%c",&choice);switch(choice){case '1':{sort_Num(Data_Num,len);WriteFile_Num("int_output1.txt",Data_Num,len);printf("排序完成!!\n排序结果已存至int_output1.txt文件中...\n");break;}case '2':{int m1,m2;m1=Data_Num[(len+1)/2];m2=Data_Num[(len+1)/2+1];printf( "中间两数为: %d,%d\n",m1,m2 );printf("最大公约数为: %d\n",CommonDivisor(m1,m2));printf("最小公倍数为: %d\n",CommonMultiple(m1,m2));break;}case '3':{printf("数据中共有%d个素数\n",PrimeNumber(Data_Num,len));break;}case '4':{printf("数据文件中共有%d个同构数\n",TongGouShu(Data_Num,len));break;}default:printf("输入错误\n");}}else if(strcmp(argv[1],"Handle string")==0){char* Data_String[N];int i;int n;char choice;for(i=0;i<N;i++)Data_String[i]=(char*)malloc(sizeof(char)*256);printf("**********************字符串操作**************************\n\n");printf("1、排序\n");printf("2、字符串逆置\n");printf("3、统计hello出现的次数\n");printf("4、去除最小串中在最大串里出现过的字符\n");n=ReadFile_Str("string_input.txt",Data_String);scanf("%c",&choice);switch(choice){case '1':{sort_Str(Data_String,n);WriteFile_Str("string_output1.txt",Data_String,n,"w");break;}case '2':{char*p;int i;reverse(Data_String,n/2);for(i=0;i<n/2;i++){p=Data_String[n/2+i];reverse_recursion(p);}break;}case '3':{printf("\"hello\ 出现%d次\n",SearchHello(Data_String,n));break;}case '4':{char* r[2];FindMaxMin(Data_String,n,r);printf("最小串: %s\n",r[0]);printf("最大串: %s",r[1]);ProcessString(r);puts(r[0]);}}}else{printf("指令格式错误\n");exit(0);}}else{printf("指令格式错误\n");exit(0);}return 0;}int ReadFile_Num(int* Data_Num){int i=0;FILE* fp=NULL;if( (fp=fopen("int_input.txt","r"))==NULL ){printf("数据文件不存在\n",N);exit(0);}while(!feof(fp)){fscanf(fp,"%d",&Data_Num[i++]);fclose(fp);printf("数据文件读取完成\n");return i-1;}void WriteFile_Num(char* FileName,int* Data_Num,int n) {FILE* fp;int i;fp=fopen(FileName,"w");for(i=0;i<n;i++){fprintf(fp,"%d\n",Data_Num[i]);}fclose(fp);}void sort_Num(int* Data_Num,int len){int i,j;int t;for(i=1;i<len;i++){j=i;t=Data_Num[j];while(j!=0 && Data_Num[j-1]>t){Data_Num[j]=Data_Num[j-1];j--;}Data_Num[j]=t;}}int CommonDivisor(int a,int b){int t;while(b!=0){t=a;a=b;b=t%b;}return a;}int CommonMultiple(int a,int b){int t;if(a<b){t=a;a=b;b=t;}t=a;while(a%b!=0)a+=t;return a;}int PrimeNumber(int* Data_Num,int len)int i,j;int flag=0;int count=0;int PrimeNum[N];for(i=0;i<len;i++){flag=1;for(j=2;j<Data_Num[i];j++)if(Data_Num[i]%j==0){flag=0;break;}if(flag)PrimeNum[count++]=Data_Num[i]; }return count;}int TongGouShu(int* Data_Num,int len) {int i;int t;int end;int wei;int s;int count=0;int r[N];for(i=0;i<len;i++){end=0;wei=0;s=1;t=Data_Num[i];while(t!=0){t/=10;wei++;}t=Data_Num[i]*Data_Num[i];while(wei--!=0){end+=(t%10)*s;t/=10;s*=10;}if(end==Data_Num[i])r[count++]=Data_Num[i];}return count;}int ReadFile_Str(char* name,char* str[]) {FILE* fp;int i=0;if( (fp=fopen(name,"r") )!=NULL){while(!feof(fp))fgets(str[i++],100,fp);}elseprintf("文件%s不存在",name);fclose(fp);return i-1;}void sort_Str(char* str[],int len){int i,j;char* t;for(i=1;i<len;i++){j=i;t=str[j];while(j!=0 && strcmp(str[j-1],t) >0 ){str[j]=str[j-1];j--;}str[j]=t;}}void WriteFile_Str(char* name,char* str[],int n,char* mode){FILE* fp;int i;fp=fopen(name,mode);for(i=0;i<n;i++)fprintf(fp,"%s",str[i]);fclose(fp);}void reverse(char* str[],int n){char* buf=(char*)malloc(sizeof(char)*256);char* end;int i;int j;int len;WriteFile_Str("string_output2.txt",&buf,0,"w");for(i=0;i<n;i++){len=strlen(str[i]);end=str[i]+len-1;for(j=0;j<len;j++)buf[j]=*end--;buf[j]='\0';WriteFile_Str("string_output2.txt",&buf,1,"a");}free(buf);printf("操作完成!!\n逆置后的数据已保存至string_output2.txt文件中\n"); }void reverse_recursion(char* str){FILE* fp=fopen("string_putput2.txt","a");if(*str!='\0'){reverse_recursion(str+1);fputc(*str,fp);}fclose(fp);}int SearchHello(char* str[],int n){int i,j,k;char buf[6];char* p;int len;int count=0;for(i=0;i<n;i++){len=strlen(str[i]);if(len>=5){for(j=0;j<=len-5;j++){p=str[i]+j;for(k=0;k<5;k++)buf[k]=*p++;buf[k]='\0';if( strcmp(buf,"hello")==0 )count++;}}}return count;}void FindMaxMin(char* str[],int n,char* r[]) {int i;char* max=str[0];char* min=str[0];for(i=1;i<n;i++){if( strcmp(max,str[i])<0 )max=str[i];else if( strcmp(min,str[i])>0 )min=str[i];}r[0]=(char*)malloc(sizeof(min));r[1]=(char*)malloc(sizeof(max));strcpy(r[0],min);strcpy(r[1],max);}void ProcessString(char* r[]){char*p=r[0];char*q=r[1];char*t;int flag=1;while(*q!='\0'){flag=1;p=r[0];while(*p!='\0'){if(*p==*q){flag=0;t=p;while(*(t+1)!='\0'){*t=*(t+1);t++;}*t='\0';}elsep++;}if(flag==1)q++;}}。
c语言试卷大题,编程题!

1、求100之内自然数中最大的能被17整除的数。
2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。
3、计算并输出200-400之间不能被3整除的整数的和。
4、从键盘输入10个数,统计非负数的个数,并计算非负数的和5、求100之内自然数中偶数之和。
6、输入5个数,求和并输出。
要求编写求和的函数。
7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。
8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。
9、编写程序,将一个一维数组的元素逆序存放并输出。
例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。
10、求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。
11、编程判断输入的整数的正负性和奇偶性。
如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j12、计算并输出1-200之间不能被5整除的整数的和。
13、从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值。
14、输入5个数,求它们中最大值和平均值并输出。
15、输出所有200-400之间能被3整除且个位数字为6的整数16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。
17、计算并输出200-400之间不能被7整除的整数的和。
18.计算并输出200-400之间不能被5整除的整数的和19、从键盘输入10个数,统计非正数的个数,并计算非正数的和20、输入一串字符,将其中的大写字母变成对应的小写字母并输出。
21、打印所有的水仙花数。
所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。
例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。
22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。
求当它第10次落地时,共经过了多少米,第10次反弹多高?23、输出所有0-200之间能被3整除且个位数字为6的整数。
c语言大作业(西工大)

标准型大作业题目下面10个题目中任选其一完成。
【难度系数:7】1.设计一个简单的学生成绩管理程序,要求根据菜单处理相应功能。
(1)管理功能包括列表,求平均成绩、查找最高分。
(2)可以实现按指定的性别筛选列表,或按高于指定的个人平均分筛选列表;(3)可以实现按平均成绩排序;(4)求平均成绩可按个人或科目进行;(5)查找可按最高个人平均分进行,或按指定科目的最高分进行;(6)每个学生的信息包括:序号、学号、性别、成绩1、成绩2、成绩3、成绩4;(7)基本功能为:建立文件、增加学生记录、新建学生信息文件、删除/修改学生记录2.先建立一个有三个学生的链表,每个结点包含:学号、姓名、3门考试成绩(英语、数学、计算机)。
要求利用菜单的形式进行管理。
菜单为:1.排序(按学号);2.插入(输入一个学生的信息将它插入链表中,假定链表按学号有序);3.查找(输入一个学生学号,输出其各科成绩);4.删除(从链表中按输入的学号删除该学生)5.统计(若按1,则输入学生的学号统计该生的总分及平均分;若按2,则输入课程求该门课程的总平均分)6.存盘(将建立起来的链表以文件的形式存盘)7.读入(将原来已经存盘的文件读入内存,进行管理)3.设计菜单处理程序,对一维数组进行不同的操作。
(1)操作项目包括求数组最大植、最小植、求和、求平均值、排序、二分查找、有序插入;(2)设计并利用字符菜单进行操作项目的选择,程序一次运行可根据选择完成一项或多项操作;通过菜单“退出”来结束程序的运行;(3)数组的输入、输出可支持命令行输入文件名、界面输入文件名从数据文件中输入和输出;也支持界面录入;4.打印指定年份的公历表和农历表(1)输入年份为1990~2050;(2)可以选择输出公历表或农历表;(3)农历表包括二十四节气;5.请设计一个学生证的管理程序。
该程序应该具有下列功能:(1) 通过键盘输入某位学生的学生证信息。
学生证包含的信息请参看自己的学生证;(2) 给定学号,显示某位学生的学生证信息;(3) 给定某个班级的班号,显示该班所有学生的学生证信息;(4) 给定某位学生的学号,修改该学生的学生证信息;(5) 给定某位学生的学号,删除该学生的学生证信息;(6) 提供一些统计各类信息的功能。
西南大学大二计算机专业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语言作业题,大一c语言习题练习与答案.docx

⼤学c语⾔作业题,⼤⼀c语⾔习题练习与答案.docx ⼤⼀c语⾔习题练习与答案````程序设计与C语⾔1.1 选择题考点:标识符的命名规则只能由字母、数字、下划线构成数字不能作为标识符的开头关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满⾜(1);选项D中的int为关键字,不满⾜(3)1.下列正确的标识符是(C )。
A.-a1B.a[i]C.a2_iD.int t2.下列C语⾔⽤户标识符中合法的是( B )。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满⾜(2);选项C,E均为为关键字,不满⾜(3);选项D中的“-”不满⾜(1);3.下列四组选项中,正确的C语⾔标识符是( C )。
A) %x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满⾜(1);选项D中的标识符以数字开头不满⾜(2)4.下列四组字符串中都可以⽤作C语⾔程序中的标识符的是( A )。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满⾜(1);选项C中的while为关键字,不满⾜(3)知识点:简单C语⾔程序的构成和格式5.在⼀个C程序中___B___。
A、main函数必须出现在所有函数之前B、main函数可以在任何地⽅出现C、main函数必须出现在所有函数之后D、main函数必须出现在固定位置6.以下说法中正确的是__D____。
A、#define和printf都是C语句B、#define是C语句,⽽printf不是C、printf是C语句,但#define不是D、#define和printf都不是C语句7.⼀个C程序的执⾏是从( A )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 基本要求 合理运用 C++语言的数组、指针、结构体及文件操作等,实现一个模拟的班级通信录管 理系统。该系统用于管理学生的基本信息、通信信息等。具体要求如下: ① 通过键盘或读取文件的方法读取学生的通信信息。 ② 系统需要有添加模块、查询模块、删除模块、修改模块等。 ③ 用户登录查询时,可以通过输入姓名或学号等查到某人的信息,并输出这些信息。 若找不到则显示找不到信息。 ④ 在添加某人信息时,若通讯录中已有该人的信息,则提示信息已存在。 ⑤ 要求在程序中能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句 (如 do while、for、if-elseif 等)。程序要有主菜单,能够完成主要的功能。
提示及说明 1) 写出设计报告:包括实验题目与环境、设计思想、函数分解过程、算法描述以及相
应的数据流程图、源程序清单、测试的数据以及程序运行的结果 2) 如果程序未能够通过运行,分析可能出错的原因。 3)请注意分配好时间,完成系统设计与实现,同时认真填写大作业报告!按时提交大作
业报告、可运行的程序及代码,逾期不交,期末成绩以 0 分记。
……
成绩 60 70 80 90
……
专业 软件工程
……Biblioteka 提示及说明 1) 写出设计报告:包括实验题目与环境、设计思想、函数分解过程、算法描述以及
相应的数据流程图、源程序清单、测试的数据以及程序运行的结果 2) 如果程序未能够通过运行,分析可能出错的原因。 3)请注意分配好时间,完成系统设计与实现,同时认真填写大作业报告!按时提交大作
《程序设计基础》上机大作业
三、 设计实现一个个人信息管理系统
目的和要求
(1) 目的 通过个人信息管理系统的设计,培养学生综合利用 C++语言进行程序设计的能力,加强 函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归 纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。
业报告、可运行的程序及代码,逾期不交,期末成绩以 0 分记。
《程序设计基础》上机大作业
六、 设计实现一个小型公司人员信息管理系统
目的和要求
(1) 目的 通过公司人员信息管理系统的设计,培养学生综合利用 C++语言进行程序设计的能力, 加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建 立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。
学生的通信录基本信息记录,如:
学号
姓名 性别 住址
20050999 ……
张三 ……
男 ……
……
系别 电子邮 电话 个人简 密码
箱
介
……
提示及说明 1) 写出设计报告:包括实验题目与环境、设计思想、函数分解过程、算法描述以及
相应的数据流程图、源程序清单、测试的数据以及程序运行的结果 2) 如果程序未能够通过运行,分析可能出错的原因。 3)请注意分配好时间,完成系统设计与实现,同时认真填写大作业报告!按时提交大作
(2) 基本要求
合理运用 C++语言的数组、指针、结构体及文件操作等,实现一个模拟的个人信息管理 系统。该系统可以对每个学生的消费、生活及学习进行系统的管理,把这几项内容综合在一 起开发了具有个人特色的管理系统。具体要求如下:
① 学生的基本信息管理主要包括了学生的姓名、学号、性别、出生年月、专业、爱好 等内容。
(2) 基本要求 某学院有三类人员,教师、实验室人员、办公室人员。这些人员分别具有以下属性: ① 教师:姓名、编号、职称、固定工资、当月课时数、当月薪水、计算月薪、显示信 息; ② 实验室人员:姓名、编号、固定工资、工作小时、每小时工资额、计算月薪、显示 信息; ③ 办公室人员:姓名、编号、固定工资、当月薪水、计算月薪、显示信息。 要求: ① 人员编号基数为 1000。每输入一个人员信息,编号顺序加 1; ② 月薪计算方法是:教师固定工资 2000 元,教授课酬为 30 元/小时,副教授为 25 元/ 小时,讲师和助教为 20 元/小时;实验室人员固定工资 1000 元,每小时课酬额 10 元;办公 室人员的固定工资为 2500 元。 ③ 工作人员可以通过此程序来管理人员信息,包括查询,添加,修改,删除等功能。 ④ 在进行添加时,系统会自动监测所添加的人员信息是否已经存在,如果存在,会提 示用户该人员已经存在。 ⑤ 在删除时,要首先弹出对话框,让用户确认是否删除,只有经过确认才能够被删除。
业报告、可运行的程序及代码,逾期不交,期末成绩以 0 分记。
《程序设计基础》上机大作业
四、 设计实现一个模拟的通信录管理系统
目的和要求
(1) 目的 通过班级通信录管理系统的设计,培养学生综合利用 C++语言进行程序设计的能力,加 强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、 归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。
② 消费模块主要包括个人消费记录。主要功能有:数据的添加、数据的查找、数据的 删除、数据的修改、数据逐个显示、消费总额的显示等。
③ 学生课程成绩模块主要包括学习成绩记录。主要功能有:数据的添加、数据的查找、 数据的删除、数据的修改、数据逐个显示、消费总额的显示等。
④ 要求在程序中能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句 (如 do while、for、if-elseif 等)。程序要有主菜单,能够完成主要的功能。
《程序设计基础》上机大作业
七、 设计实现一个学院教职工信息管理系统
目的和要求
(1) 目的 通过学院教职工人员信息管理系统的设计,培养学生综合利用 C++语言进行程序设计的 能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文 档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。
业报告、可运行的程序及代码,逾期不交,期末成绩以 0 分记。
《程序设计基础》上机大作业
五、 设计实现一个班级信息管理系统
目的和要求
(1) 目的 通过班级信息管理系统的设计,培养学生综合利用 C++语言进行程序设计的能力,加强 函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归 纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。
《程序设计基础》上机大作业
一、 设计实现一个模拟的班级学生成绩管理系统
1 目的 通过学生成绩管理系统的设计,培养学生综合利用 C++语言进行程序设计的能力,加强 函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归 纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。 2 基本要求 该系统用于管理学生的基本信息、课程成绩。要求实现以下功能: ①通过此模块来管理课程信息,包括查询、添加、修改、删除等功能。在进行课程信息 添加时,系统会自动监测所添加的信息是否已经存在,如果存在,会提示已经存在。在进行 课程信息删除时,同样要求再次确定。 ②实现对学生信息、课程成绩的文件存取(分别存储在 StudentInfo.txt、StudentScore.txt 和 GraduateCheck..txt 文件中),实现对学生信息、课程成绩的记录增加、删除及修改; ③实现输入学生学号或姓名查询并显示学生的课程成绩;
学生的基本信息记录,如:
学号
姓名
20050999
张三
……
……
学生的课程成绩记录,如:
学号
课程名称
20050999
毛泽东思想概论
20050999
高级语言程序设计
20050999
WEB 程序设计
20050999
IT 企业管理
……
……
性别 男
……
出生日期 1980 年 6 月 1 日
……
学分 4 3 2 1
提示及说明 1) 写出设计报告:包括实验题目与环境、设计思想、函数分解过程、算法描述以及相
应的数据流程图、源程序清单、测试的数据以及程序运行的结果 2) 如果程序未能够通过运行,分析可能出错的原因。 3)请注意分配好时间,完成系统设计与实现,同时认真填写大作业报告!按时提交大作
业报告、可运行的程序及代码,逾期不交,期末成绩以 0 分记。
学生的基本信息记录,如:
学号
姓名
20050999
张三
……
……
性别 男
……
出生日期 1980 年 6 月 1 日
……
专业 软件工程
……
学生的消费或个性信息记录,如:
……
……
……
……
……
提示及说明 1) 写出设计报告:包括实验题目与环境、设计思想、函数分解过程、算法描述以及相
应的数据流程图、源程序清单、测试的数据以及程序运行的结果 2) 如果程序未能够通过运行,分析可能出错的原因。 3)请注意分配好时间,完成系统设计与实现,同时认真填写大作业报告!按时提交大作
示用户该学生已经存在。 3 在删除时,要首先弹出对话框,让用户确认是否删除,只有经过确认才能够被删除。 4 在进行学生信息管理时,不准用户修改学号。 5 通过键盘或读取文件的方法读取学生的信息。 6 能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如 do while、
for、if-elseif 等)。 7 程序要有主菜单,能够完成主要的功能。