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

No.: Name:第1讲C语言概述注:本系列习题中符号表示一串字符中的空格,符号表示下划线,符号ê表示换行回车,即键盘上Enter键。

一、选择题1. 一个C程序的执行是从A 。

A) 本程序main函数开始,到main函数结束B) 本程序文件第一个函数开始,到最后一个函数结束C) 本程序文件第一个函数开始,到本main函数结束D) 本程序main函数开始,到本程序文件最后一个函数结束2. 以下叙述不正确的是D 。

A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面3. 以下叙述正确的是C 。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) 语言本身没有输入输出语句D) C程序的每行中只能写一条语句4. 一个C语言程序是由B 。

A) 一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成5. 以下叙述中正确的是C 。

A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点6. 下列叙述中正确的是D 。

A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言的函数可以嵌套调用7. 以下叙述中正确的是A 。

A) 构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main函数必须放在其他函数之前D) 所有被调用的函数一定要在调用之前进行定义8. C语言规定,在源程序中,main函数的位置C 。

A) 必须在最开始B) 必须在系统调用的库函数的后面C) 可以任意D) 必须在最后9. 下列选项中不是结构化程序基本结构的是B 。

大学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语言设计开发一个简单的图书借阅管理系统,实现对图书的借书,还书的管理和数据统计。

76道比较难的C语言题目

76道比较难的C语言题目
人参加了竞赛: (1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参 加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A 和D也都参加。 【3】打印一个 N*N 的方阵,N为每边 N=15 打印出下面图形 字符的个数(3<N<20), 要求最 TTTTTTTTTTTTTTT 外一层为"T", 第二层为"J", 从第三层 TJJJJJJJJJJJJJT 起每层依次打印数字 1,2,3,... TJ11111111111JT (右图以N为15为例) TJ12222222221JT TJ12333333321JT TJ12344444321JT TJ12345554321JT TJ12345654321JT TJ12345554321JT TJ12344444321JT TJ12333333321JT TJ12222222221JT TJ11111111111JT TJJJJJJJJJJJJJT TTTTTTTTTTTTTTT 【4】在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅出现 一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。编一程序,从 键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。 1 2 3 4 5 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 【5】输入一个十进数,将其转换成 N 进制数(0<N<=16)。 【6】矩阵中填数. 当给出 N*N 的矩阵,要求用程序填入下列形式的数: ① 倒填,例如N=5 ② 蛇形填数 ③ 回转填数 ┌─┬─┬─┬─┬─┐ ┌─┬─┬─┬─┬─┐ ┌─┬─┬─┬─┬─┐
├─┼─┼─┼─┼─┤ ├─┼─┼─┼─┼─┤ ├─┼─┼─┼─┼─┤
│ 5│ 4│ 3│ 2│ 1│ │15│16│22│23│25│ │ 5│ 6│ 7│ 8│ 9│

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语言程序设计大作业设计说明书

C语言程序设计大作业设计说明书概述:处在Microsoft Visual C++软件下的Developer Studio集成开发平台中进行开发。

已实现了基本功能中的:1、随机生成没有重复的4个数。

(每个数字在0-9范围内)。

2、用户从键盘输入4个不重复的数,程序能对用户输入的数与随机生成的数进行匹配,并给出提示信息:“有x个数数值和位置都相同!有y个数数值相同,但位置不同。

”3、控制用户的尝试次数为10次。

4、计算、输出并保存用户的得分,计分规则:总分是100分,每失败一次扣10分。

5、有操作菜单,能根据不同选择运行不同功能:1:开始游戏!2:查看上次成绩!3:输出帮助信息!4:游戏设置!0:退出程序!还实现了扩展功能里的:1.对用户输入的数字进行检查,如果用户输入重复的数,给出提示,要求重新输入。

2.能对游戏进行设置:在操作菜单中增加相应的选项:“4:系统设置”。

(1)修改要猜的数字的个数n,根据修改后的n值,计算机可随机生成n个数,用户进行n个数的猜测游戏。

(2)修改可以尝试的次数。

未实现的功能是扩展功能里的:1、若游戏胜出且成绩在前五名,可输入并记录对应的用户姓名,并添加到积分榜中。

操作菜单中相应选项改为“2:积分榜!”,用于把积分榜中保存的前五名成绩及用户姓名显示出来。

2、能对积分榜的成绩进行排序和输出。

经多次运行尝试,虽然编辑、编译、连接都没有错误,可以运行,但是在运行的时候有时会卡住,要等一会才会显示出来。

程序概要设计:程序流程是:开始运行到主界面,在主界面中可选择:1:开始游戏!2:查看上次成绩!3:输出帮助信息!0:退出程序!,然后选择开始游戏后,程序会生成4个不重复且在0-9之间的随机数,然后玩家需输入4个不同的数0-9之间的数,接着程序会判断玩家输入的4个数与程序生成的随机数的数值和位置是否相同,并提示4个数的数值跟位置相同和不同有几个,就这样一直循环到4个数的数值和位置都正确,或玩家尝试次数已超过10次。

c语言练习题带答案)-绝对经典题目不看后悔

c语言练习题带答案)-绝对经典题目不看后悔

1单选题1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。

A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。

A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。

C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。

A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作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)9.C语言中的简单数据类型包括(D)。

c语言作业

c语言作业

作业11、 已知长方体的长a=3,宽b=4,计算并输出长方体的的周长与面积。

#include <stdio.h> main() {int a,b,c,s; a=3; b=4;c=(a+b)*2; s=a*b;printf("c = %d, s= %d\n", c, s); getch();}总结:变量先定义,再赋值,然后引用。

2、根据自由落体运动公式:h=221gt 计算物体10秒后下落的距离。

#include <stdio.h> main() {double g,h,t; g=9.8; t=10;h=g*t*t/2;printf(" h= %lf",h); getch();}总结:注意编写算式时的顺序,符号,特殊要求等。

3、编程计算下列分段函数,请调用sqrt(x)函数求平方根(头文件math.h )。

#include <math.h> int main(void) {double x, y;printf("Enter x:\n"); scanf("%lf", &x); if(x <0)y=x*x*x+2*x*x+x+1;elsey=sqrt(x);printf(" %lf\n", y);getch();}总结:注意用相应的头文件。

第2次作业1、编写程序,输入一个正数n,求 #include <stdio.h>int main(void){int i, n;double sum;printf("Enter n:"); scanf("%d", &n);sum = 0;⎪⎩⎪⎨⎧≥<+++=0,0,1223x x x x x x y ∑=ni i 11for (i = 1; i <= n; i++) {sum = sum +1.0/i; }printf("sum=%lf\n",sum); getch(); return 0; }总结:程序中的算式也遵循先乘除后加减的原则. 2、编写程序,输入一个正数n,求的前n 项之和。

C语言大作业_电话号码管理系统设计

C语言大作业_电话号码管理系统设计

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define N 100void input();//添加新用户void amend();//修改用户信息void delete_client();//删除用户信息void search_client();//用户信息查询void collect_telephone();//所有用户信息void save_client(struct telephone message);//保存void search_name();//按用户名查询void search_telephone();//按电话号码查询void goodbye();//退出提示struct telephone{char client_name[20];char client_address[30];char client_telephone[15];};void main(){char choice[10]="";int len=0;while (choice[0]!='7'){system("cls");printf(" ◢◤〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓◥◣");printf("\n ◢◤〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓◥◣");printf("\n █===┏┯┓┏┯┓┏┯┓┏┯┓┏┯┓┏┯┓┏┯┓┏┯┓┏┯┓┏┯┓===█");printf("\n █===┠欢┨┠迎┨┠使┨┠用┨┠电┨┠话┨┠管┨┠理┨┠系┨┠统┨===█");printf("\n █===┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛┗┷┛===█");printf("\n ◥◣〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓◢◤");printf("\n ◥◣〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓◢◤\n");printf(" ★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★≈★");printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");printf(" ┃| | | ┃\n");printf(" ┃ 1、 | 用户信息查询 | 2、 | 所有用户信息┃\n");printf(" ┃| | | ┃\n");printf(" ┃=========|════════════|========|════════════┃\n");printf(" ┃| | | ┃\n");printf(" ┃ 3、 | 删除用户信息 | 4、 | 添加用户┃\n");printf(" ┃| | | ┃\n");printf(" ┃=========|════════════|========|════════════┃\n");printf(" ┃| | | ┃\n");printf(" ┃ 5、 | 修改用户信息 | 6、 | 退出系统┃\n");printf(" ┃| | | ┃\n");printf(" 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");printf("\n 请选择(1-6):");scanf("%s",choice);len=strlen(choice);if (len>1){printf("\n 请输入1-6之间的整数\n");printf("\n 按回车键返回主菜单\n");getchar();getchar();continue;}switch (choice[0]){case '1':search_client();break;case '2':collect_telephone();break;case '3':delete_client();break;case '4':input();break;case '5':amend();break;case '6':goodbye();break;default:break;}}}//添加新用户void input(){struct telephone message;char reply='y';char save='y';while (reply=='y'){system("cls");printf("\n 用户姓名:");scanf("%s",message.client_name);printf("\n 家庭住址:");scanf("%s",message.client_address);printf("\n 电话号码:");scanf("%s",message.client_telephone);printf("\n 要保存吗?(y/n):");scanf(" %c",&save);if (save=='y'){save_client(message);}printf("\n 是否继续?(y/n):");scanf(" %c",&reply);}printf("\n 按回车键返回主菜单\n");getchar();getchar();}//保存void save_client(struct telephone message){FILE *fp;fp=fopen("message.dat","a+");if (fp!=NULL){fwrite(&message,sizeof(struct telephone),1,fp);}else{printf("\n 打开文件时出现错误,按回车键返回\n");getchar();return;}fclose(fp);}//修改用户信息void amend(){struct telephone message;FILE *fp;char amend_name[20];char reply='y';char found='y';char save='y';int size=sizeof(struct telephone);while (reply=='y'){found='n';fp=fopen("message.dat","r+w");if (fp!=NULL){system("cls");printf("\n 请输入你要修改的姓名:");scanf("%s",amend_name);while ((fread(&message,size,1,fp))==1){if ((strcmp(amend_name,message.client_name))==0){found='y';break;}}if (found=='y'){printf("\n 修改用户信息\n");printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓");printf("\n ┃用户姓名┃ %-16s┃",message.client_name);printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃家庭地址┃ %-16s┃",message.client_address);printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃电话号码┃ %-16s┃",message.client_telephone);printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");printf("\n 修改用户信息:\n");printf("\n 用户姓名:");scanf("%s",message.client_name);printf("\n 家庭住址:");scanf("%s",message.client_address);printf("\n 电话号码:");scanf("%s",message.client_telephone);printf("\n 是否保存?(y/n):");scanf(" %c",&save);if(save=='y'){fseek(fp,-size,1);fwrite(&message,sizeof(struct telephone),1,fp);}}else{printf("\n 无此信息!\n");}}else{printf("\n 打开文件时出现错误,按回车键返回\n");getchar();return;}fclose(fp);printf("\n 是否继续?(y/n):");scanf(" %c",&reply);}printf("\n 按回车键返回主菜单\n");getchar();getchar();}//删除用户信息void delete_client(){struct telephone message[N];struct telephone temp_str;struct telephone delete_str;int i=0,j=0;char reply='y';char found='y';char confirm='y';char delete_name[20];FILE *fp;while (reply=='y'){system("cls");fp=fopen("message.dat","r");if (fp!=NULL){i=0;found='n';printf("\n 请输入你要删除的姓名:");scanf("%s",delete_name);while ((fread(&temp_str,sizeof(struct telephone),1,fp))==1){if((strcmp(delete_name,temp_str.client_name))==0){found='y';delete_str=temp_str;}else{message[i]=temp_str;i++;}}}else{printf("\n 无此信息,按回车键返回\n");getchar();return;}fclose(fp);if (found=='y'){printf("\n 用户信息");printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓");printf("\n ┃用户姓名┃ %-16s┃",delete_str.client_name);printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃家庭地址┃ %-16s┃",delete_str.client_address);printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃电话号码┃ %-16s┃",delete_str.client_telephone);printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");}else{printf("\n 无此信息,按回车键返回\n");getchar();break;}printf("\n 确定要删除?(y/n):");scanf(" %c",&confirm);if (confirm=='y'){fp=fopen("message.dat","w");if (fp!=NULL){for(j=0;j<i;j++){fwrite(&message[j],sizeof(struct telephone),1,fp);}printf("\n 记录已删除\n");}else{printf("\n 打开文件时出现错误,按回车键返回\n");getchar();return;}fclose(fp);}printf("\n 是否继续?(y/n):");scanf(" %c",&reply);}getchar();}//用户信息查询void search_client(){int choice=1;while (choice!=3){system("cls");printf("\n 电话查询菜单\n");printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓");printf("\n ┃ 1 ┃按用户姓名查询┃");printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃ 2 ┃按电话号码查询┃");printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃ 3 ┃返回主菜单┃");printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");printf("\n 请选择(1-3):");scanf("%d%*c",&choice);if (choice>3){printf("\n 请输入1-3之间的整数(1-3)\n");printf("\n 按回车键返回");getchar();continue;}if (choice==1){search_name();}else if (choice==2){search_telephone();}}}//按用户名查询void search_name(){struct telephone message;FILE *fp;char amend_name[20];char reply='y';char found='y';while (reply=='y'){found='n';fp=fopen("message.dat","r+w");if (fp!=NULL){system("cls");printf("\n 请输入你要查的姓名:");scanf("%s",amend_name);while ((fread(&message,sizeof(struct telephone),1,fp))==1){if ((strcmp(amend_name,message.client_name))==0){found='y';break;}}if (found=='y'){printf("\n 用户信息\n");printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓");printf("\n ┃用户姓名┃ %-16s┃",message.client_name);printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃家庭地址┃ %-16s┃",message.client_address);printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃电话号码┃ %-16s┃",message.client_telephone);printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");}else{printf("\n 无此信息\n");}}else{printf("\n 打开文件时出现错误,按回车键返回\n");getchar();return;}fclose(fp);printf("\n 是否继续?(y/n):");scanf(" %c",&reply);}printf("\n 按回车键返回主菜单\n");getchar();getchar();}//按电话号码查询void search_telephone(){struct telephone message;FILE *fp;char telephone[20];char reply='y';char found='y';while (reply=='y'){found='n';fp=fopen("message.dat","r+w");if (fp!=NULL){system("cls");printf("\n 请输入你要查的电话号码:");scanf("%s",telephone);while ((fread(&message,sizeof(struct telephone),1,fp))==1){if ((strcmp(telephone,message.client_telephone))==0){found='y';break;}}if (found=='y'){printf("\n 用户信息\n");printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓");printf("\n ┃用户姓名┃ %-16s┃",message.client_name);printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃家庭地址┃ %-16s┃",message.client_address);printf("\n ┃━━━━━━━━┃━━━━━━━━━━━━┃");printf("\n ┃电话号码┃ %-16s┃",message.client_telephone);printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");}else{printf("\n 无此电话号码信息\n");}}else{printf("\n 打开文件时出现错误,按回车键返回\n");getchar();return;}fclose(fp);printf("\n 是否继续?(y/n):");scanf(" %c",&reply);}printf("\n 按回车键返回主菜单\n");getchar();}//显示所有用户信息函数void collect_telephone(){struct telephone message;FILE *fp;fp=fopen("message.dat","r");if (fp!=NULL){system("cls");printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓");printf("\n ┃用户姓名┃家庭地址┃电话号码┃");printf("\n 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");while ((fread(&message,sizeof(struct telephone),1,fp))==1){printf(" ┃%-16s┃%-16s┃%-16s┃",message.client_name,message.client_address,message.client_telephone);printf("\n ┃━━━━━━━━┃━━━━━━━━┃━━━━━━━━┃\n");}}else{printf("\n 打开文件时出现错误,按回车键返回\n");getchar();return;}fclose(fp);printf("\n 按回车键返回主菜单\n");getch();}//退出函数void goodbye(){char c;printf(" 真的退出?(y/n):");getchar();if(c=='y'||c=='Y'){system("cls");exit(0);}elseif(c=='n'||c=='N'){printf("\n 按回车键返回\n");getch();}}。

c语言编程大题

c语言编程大题

三、河南工业大学编程作业题1.输入一个半径值,分别计算圆周长、圆面积和球的体积。

要求使用符号常量定义圆周率。

#include<stdio.h>int main(){printf("计算圆周长面积求面积\n");float r,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("输入一个字符\n");char i;scanf("%c",&i);printf("整数形式是%d\n",i);printf("字母形式是%c\n",i);return 0;}4.输入一个大写英文字母,将它转化为小写输出。

#include<stdio.h>int main(){printf("请输入一个大写英文字母\n");char ch;scanf("%c",&ch);printf("%c\n",ch+32);return 0;}5.求一元二次方程ax^2+bx+c=0方程的两个实根。

c语言课程设计大作业

c语言课程设计大作业

c语言课程设计大作业一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构和算法,具备使用C语言进行程序设计的能力。

具体目标如下:1.知识目标:学生能够理解并掌握C语言的基本语法、数据结构和常用算法。

2.技能目标:学生能够运用C语言编写简单的程序,解决实际问题。

3.情感态度价值观目标:学生能够体验到编程的乐趣,培养对计算机科学的兴趣。

二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法、数据结构和算法。

具体安排如下:1.C语言的基本语法:包括变量、运算符、控制结构、函数等。

2.数据结构:包括数组、链表、栈、队列、树等。

3.算法:包括排序算法、查找算法、递归算法等。

三、教学方法为了达到课程目标,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。

具体方法如下:1.讲授法:用于讲解C语言的基本语法、数据结构和算法。

2.讨论法:用于引导学生探讨编程问题,培养解决问题的能力。

3.案例分析法:通过分析实际案例,使学生更好地理解C语言的应用。

4.实验法:让学生动手编写程序,提高编程能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:《C语言程序设计》。

2.参考书:提供相关的编程资料和算法教程。

3.多媒体资料:制作课件和教学视频,辅助学生学习。

4.实验设备:提供计算机实验室,让学生进行编程实践。

五、教学评估本课程的评估方式包括平时表现、作业和考试。

具体评估方式如下:1.平时表现:通过学生在课堂上的参与度、提问和讨论,评估其对C语言的理解和应用能力。

2.作业:布置编程作业,评估学生对C语言语法和算法的掌握程度。

3.考试:进行期中和期末考试,评估学生对C语言的整体掌握情况。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保学生掌握C语言的基本语法、数据结构和算法。

C语言大题有答案

C语言大题有答案

C语言大题有答案复习题一.选择题1.以下选项中正确的常量是( A )(A)12 (B)0.329*10^2 (C)1,000 (D) 4 5 62.以下选项中不合法的用户标识符是( C )(A)title (B)A7s (C)7ab (D) PRINTF3.下列选项中,不合法的标识符是( D)(A) _1234_ (B) _1_2 (C) int_2_ (D) 2_int_4.以下符合C语言语法的实型常量是( C )(A) 1.2E0.5 (B) 3.14.159E (C) .5E-3 (D) E155.下列字符中,ASCII码值最大的是( D )(A)A (B)a (C)X (D)x6.C语言提供的合法的关键字是( D )(A)swicth (B)Char (C)Case (D)short7.在C语言中,合法的字符常量是( A )(A)'\030' (B)'\o89' (C)'ab' (D)"\0"*8.若已定义x和y为double类型,则表达式:x=1,y=x十3/2的值是(C )(A)1.0 (B)2 (C)2.0 (D)2.59. 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(C)(A) c=b=a;(B) (a=c)||(b=c) ;(C) (a=c) &&(b=c);(D) a=c=b;10. C语言中,int类型数据占2个字节,则long类型数据占字节数( C)(A) 1 (B) 2 (C) 4 (D) 811.在以下一组运算符中,优先级最高的运算符是( C )(A)<= (B)= (C)% (D)&&12. 以下所列的C语言常量中,错误的是( B )(A) 0xFF (B) 1.2e0.5 (C) 2L (D) '\72'13. 下列选项中,合法的C语言关键字是( D )(A) VAR (B) cher (C) integer (D) default14.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( C)(A) -3 (B) 9 (C) -12 (D) 615. 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( C )(A) 不定值(B) 4 (C) 3 (D) 116.有以下程序段:【int k=0;while(k==1)k++;】while 循环执行的次数是( C)(A) 无限次(B) 有语法错,不能执行(C) 一次也不执行(D) 执行1次17.有以下程序段:【int x=3;do{ printf("%d",x-=2); }while (!(--x)); 】,其输出结果是( C )(A) 1 (B) 30 (C) 1-2 (D) 死循环18.合法的数组定义是( D )(A)int a[]="abcdef"; (B)int a[3]={0,1,2,3};(C)char a ="abcdef"; (D)char a[]={0,1,2,3};*19.设a为整型变量,不能正确表达数学关系:5<a<="" p="" 的c语言表达式是(="">(A)5<a5&&a<10 (D)!(a<=5)&&!(a>=10)</a*20.若t为double类型,表达式t=2,t+5,t++的值是( D )(A)2 (B)7.0 (C)3.0 (D)2.021.语言中运算对象必需是整型的运算符是( C )(A)+ (B)/ (C)% (D)**22.以下是C语言语句的是( A )(A) a++;(B)a=a+7 (C) int b (D)printf(“ABCD”)23. C语言中double 类型变量所占字节数是( D )(A)16 (B)2 (C)4 (D)824.若a、b、c、d都是int 类型变量且初值为0,以下选项中不正确的赋值语句是( C)(A)a=c+d;(B)d--;(C)a=b+c=c+d;(D)a=(c=22)-(b++);25.为表示关系 x>y>z,应使用的C语言表达式是( D )(A)(x>y)&(y>z)(B)(x>y)AND(y>z) (C)(x>=y>=z) (D)(x>y)&&(y>z)26.C语言中,字符(char)型数据在微机内存中的存储形式是( B )(A)反码(B)ASCII码(C)EBCDIC码(D)、原码27.语言中的基本数据类型有(D )(A)整型、实型、逻辑型、字符型(B)整型、实型、逻辑型(C)整型、字符型、逻辑型(D)整型、实型、字符型28.以下函数调用语句func(exp3, (exp4,exp5));中,含有的实参个数是( B )(A)1 (B)2 (C)3 (D)529.若有定义: int x, *pb; 则以下正确的赋值表达是(A)(A)pb=&x (B)pb=x (C)*pb=&x (D)*pb=*x*30.若有定义 int *p, a[5];且p已指向a[0],则执行完p++后 ,p指向下列哪一数组元素( B )(A)a[0] (B)a[1] (C)a[2] (D)a[3]31、若int w=4,x=3,y=2,z=1;则表达式w<x?w:z(A)1 (B)2 (C)3 (D)432. 当调用函数时,实参是一个数组名,则向函数传送的是(B )(A) 数组的长度 (B) 数组的首地址(C) 数组每一个元素的地址(D) 数组每个元素中的值33.以下能正确定义二维数组的是( C )(A) int a[][3]; (B) int a[][3]=2{2*3};(C) int a[][3]={{1},{3,4}};(D) int a[2][3]={{1},{2},{3,4}};34. 若有定义:int aa[ 8];则以下表达式中不能代表数组元aa[1]的地址的是( C )(A) &aa[0]+1 (B) &aa[1] (C) &aa[0]++ (D) aa+135.若有以下定义:char str[20]="programming",* p=str;则不能代表字符g的表达式是( A) (A)p+3 (B)str[3] (C)p[3] (D)p+=3,* p36.若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},* p=a;则不能表示a数组元素的表达式是( B )(A)* p (B)a[10] (C)* a (D)a[p-a]37.若有以下的定义:int s[]={3,4,5,6,7,8,9,10,11,12},* p=s;则值为8的表达式是( A ) (A)p+=5,*(p++)(B)p+=5,*++p (C)p+= 6,* p++ (D)p+=5,++ * p38.若有定义和语句: int a[5][10],(* p)[10];p=a,则对a数组第一元素的正确引用是(C )(A)*(a[0]+2)(B)*(p+1)(C)p[0][0] (D)*(p[1]+2)39.函数调用:strcat(strcpy(str1,str2),str3)的功能是( C )(A)将串str1复制到串str2中后,再连接到串str3之后(B)将串str1连接到串str2之后,再复制到串str3之后(C)将串str2复制到串str1中后,再将串str3连接到串str1之后(D)将串str2连接到串str1之后,再将串str1复制到串str3中*40.以下对C语言函数的有关描述中,正确的是( A )(A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参(B)C函数既可以嵌套定义又可以递归调用(C)函数必须有返回值,否则不能使用函数(D)C程序中有关调用关系的所有函数必须放在同一个源程序文件中41.在下列给数组赋初值语句中,( C )是错误的。

C语言作业——精选推荐

C语言作业——精选推荐

C语⾔作业作业1 数制与编码1.将下列⼗进制实数分别转换为⼆进制、⼋进制和⼗六进制实数:45 195 10.3125 51.8 2.将下列⼋进制和⼗六进制实数转换为⼆进制实数:(42.14)8(10.01)8(3C.24)16(7F.0E)16 3.请写出下列整数的8位⼆进制原码、反码和补码。

0 102 -15 -127 4.请写出下列整数的16位⼆进制补码(以⼗六进制形式书写)。

0 6207 -7225 -32768 5.下列16位⼆进制补码分别表⽰什么整数?00000010 10011010 11101100 010001106.⽤16位⼆进制补码形式完成下列计算:14 + (-9) = 5 (-23) + 15 = -87.下列实数的单精度存储形式是怎样的(根据Intel格式计算)?0.3125 -34.28.请写出空格、数字0、⼤写字母A和⼩写字母a等字符的ASCII码。

9.仔细观察ASCII码表, 怎样将⼩写字母转换为⼤写字母? 怎样将⼤写字母转换为⼩写字母?10.汉字“软”的区位码是4077, “件”区位码是2894, 它们的内码分别是什么?11.字符串"Welcome!"的长度是多少? 需占⽤内存空间多少字节? 最后⼀个字节是什么?12.请将下列字符串按从⼩到⼤的顺序排列:"ABC" "123" "abc""Rate1""Rate2""pen""pencil""1+2"作业2 简单的C 程序1. 物体的位移:输⼊物体的初速度v 0, 加速度a 和时间t , 计算并输出其位移。

2021at t v s += 2. 公汽车票:若乘客⾝⾼低于1.2⽶则免费, 否则收取车费2元。

3. 购物优惠活动(⼀)若顾客购物不⾜100元, 则不优惠; 购物达100元, 按九折优惠。

C语言数据结构大作业之运动会统计

C语言数据结构大作业之运动会统计

C语言数据结构课程设计之运动会统计一、【问题描述】:参加运动会有n个学校,学校编号为1……n。

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子m+1……m+w。

不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)二、【基本要求】:1) 可以输入各个项目的前三名或前五名的成绩;2) 能统计各学校总分,3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;三、【测试数据】:对于n=4,m=3,w=2,姓名长度不超过20个字符。

每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名,校名和成绩。

四、【我的代码】:#include<stdio.h>#include<iostream>#include<math.h>#include<malloc.h>#include<string.h>#define status int#define Typelem int#define maxn 31//最大学校数目#define wmaxn 30//最大女子数目#define mmaxn 30//最大男子数目using namespace std;int n;//全局变量学校数目;int m;//全局变量男子数目int w;//全局变量女子数目typedef struct{int itemnum;//项目编号int flag;//取前几名int k;//取得的名次int score[wmaxn+mmaxn];//分数int rank[mmaxn+wmaxn];//名次char name[wmaxn+mmaxn][20];//学生的名字}itemnode;//建立项目节点typedef struct{int schoolnum;//学校编号int wscore;//女子项目总分int mscore;//男子项目总分int teamscore;//学校项目总分itemnode item[wmaxn+mmaxn];//项目数组}headnode;//建立项目节点headnode h[maxn];//定义头结点数组status input()//输入数据{printf("***************请输入******************\n");printf("学校数目:");cin>>n;printf("男子项目数目:");cin>>m;printf("女子项目数目:");cin>>w;for(int i=0;i<n;i++)//初始化头结点{h[i].teamscore=0;h[i].wscore=0;h[i].mscore=0;}for(int i=0;i<n;i++)//输入学校的数据{printf("请输入学校编号:");scanf("%d",&h[i].schoolnum);printf("*****请先输入男子项目再输入女子项目*****\n");for(int j=0;j<m+w;j++){printf("请输入项目编号:");cin>>h[i].item[j].itemnum;printf("取得几个名次:");cin>>h[i].item[j].k;printf("取前几名?(前三名或前五名):");cin>>h[i].item[j].flag;for(int l=0;l<h[i].item[j].k;l++)//初始化分数,姓名,名次{h[i].item[j].score[l]=0;h[i].item[j].rank[l]=0;//h[i].item[j].name[l]="0";printf("请输入第%d号项目第%d个名次的名次:",h[i].item[j].itemnum,l+1);cin>>h[i].item[j].rank[l];printf("请输入第%d号项目选手第%d个名次的选手姓名:",h[i].item[j].itemnum,l+1);scanf("%s",h[i].item[j].name[l]);if(h[i].item[j].flag==3)//根据取前几名计分{switch (h[i].item[j].rank[l]){case 0:h[i].item[j].score[l]=0;break;case 1:h[i].item[j].score[l]=5;break;case 2:h[i].item[j].score[l]=3;break;case 3:h[i].item[j].score[l]=2;break;}}else{switch (h[i].item[j].rank[l]){case 0:h[i].item[j].score[l]=0;break;case 1:h[i].item[j].score[l]=7;break;case 2:h[i].item[j].score[l]=5;break;case 3:h[i].item[j].score[l]=3;break;case 4:h[i].item[j].score[l]=2;break;case 5:h[i].item[j].score[l]=1;break;}}if(j<m)//男子项目加入男子项目总分h[i].mscore=h[i].mscore+h[i].item[j].score[l];else if(j>=m&&j<m+w)//女子项目加入女子总分h[i].wscore=h[i].wscore+h[i].item[j].score[l];}//cout<<"j="<<j<<endl;putchar('\n');}h[i].teamscore=h[i].wscore+h[i].mscore;//团体总分}}status output()//输出函数{printf("学校团体成绩统计如下:\n");for(int i=0;i<n;i++){printf("学校编号:-------%d\n",h[i].schoolnum);printf("学校团体总分:---%d\n",h[i].teamscore);printf("学校男团总分:---%d\n",h[i].mscore);printf("学校女团总分:---%d\n",h[i].wscore);}for(int i=0;i<n;i++){printf("第%d 号学校单项成绩统计如下:\n",h[i].schoolnum);for(int j=0;j<m+w;j++){if(j<m)printf("男子项目:\n");elseprintf("女子项目:\n");for(int l=0;l<h[i].item[j].k;l++){printf(" 项目编号:%d\n",h[i].item[j].itemnum);if(h[i].item[j].rank[l]!=0){printf(" 选手姓名:%s\n",h[i].item[j].name[l]);printf(" 项目排名:%d\n",h[i].item[j].rank[l]);printf(" 项目得分:%d\n",h[i].item[j].score[l]);}}}}}status main(){printf("*******************欢迎使用运动会成绩统计系统!**************\n");printf("======请输入各项数据=======\n");input();output();return 0;}五、【测试结果】:。

C语言经典练习题50道(附答案)

C语言经典练习题50道(附答案)

1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。

#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。

#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。

#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。

#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。

#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。

c语言必做100题

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语言试卷大题,编程题!

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的整数。

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

学年论文(课程论文、课程设计)题目:学生学籍信息管理系统作者:所在学院:信息科学与工程学院专业年级:指导教师:职称:讲师2014年 12月 31日目录1. 设计内容、任务以及要求..........................1.1设计内容、任务1.2 设计要求2. 设计思路概述....................................2.1 系统基本功能2.2 具体设计思想2.3 系统的总体流程图3. 函数设计的实现..............................3.1 结构的定义3.2 各个函数的设计简介3.3源代码3.4删除模块的详细介绍4. 重点程序的调试及运行............................删除函数的测试5. 总结............................................6. 致谢............................................7. 参考文献........................................1.设计内容、任务以及要求1.1 设计内容、任务主要利用c语言的文件操作能力设计开发一个学生学籍管理系统,至少具有如下功能:信息输入、输出、查找、删除、成绩排序等功能。

具体内容如下:(1)通过提示菜单选择可以进行的操作;(2)将学生的信息存入文件中,并命名为txl.txt;(3)在本系统中可以进行管理系统包含的基本操作:a. 查看所有学生信息;b. 输入一个学生的姓名或学号,从当前的信息中查找,如果找到则显示该学生的相关信息,如果没找到则给出相关提示信息;c. 输入一个学生的姓名或学号,从当前信息中查找,如果找到则删除该学生的基本信息,如果没找到则给出相关提示信息;d. 将学生的成绩按降序排序;Txl.txt文件中:(4)学生基本信息包括:学号、姓名、性别、班级、籍贯、分数等简单信息;1.2设计要求明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用c语言进行文件操作的编程技术水平;初步了解软件开发的一般方法和步骤。

2.设计思路概述2.1 系统基本功能外部操作:根据要求系统要有查看全部学生信息,查找、添加、删除某一个学生信息;内部操作:将学生的信息存入文件中,并命名为txl.txt;为了接近实际学生学籍管理系统,增加了一个权限认证功能(使用前需要输入正确的账号及密码)。

2.2 具体设计思想(1)以结构化各个功能模块,函数间的调用精简整个函数;(2)以全局结构来随时定义结构数组及其结构;(3)以写一个信息存一个的思想,实现多个添加功能;(4)以先全部读入内存,再打印信息的思想,实现显示全部信息;(5)以先判断再打印的思想,实现查找是否有某一学生信息;(6)以先判断再删除的思想,实现删除某一学生信息;(7)以选择排序算法的思想,实现学生成绩的排序2.3 系统的总体流程图3.函数设计的实现3.1 结构的定义及宏定义为了方便使用结构此系统结构全为全局类型定义,如下:struct student_info{char no[11];int age;enum SEX sex;char name[20];int classno;float grade;char nationality[20];};typedef struct student_info STUINFO;STUINFO txl[100];宏定义#define A 1#define B 2#define C 3#define D 4#define E 5#define F 0全局变量int last=0;3.2各个函数的设计简介此系统一共十九个函数如下所示1)int Key(char,char);比较判断账户名和账户密码是否正确2)int ck(void);显示提示窗口提示密码或者账户名错误,用鼠标回到程序3)void getpassword();密码函数4)void findchoice();检索模块中的选择查找方式的函数5)void findmenu();显示查找或删除菜单界面6)void numfind();实现按学号查找并输出功能7)void namfind();实现按姓名查找并输出功能8)void Establish();将学生信息写入内存并保存入文件9)void dochoice(int);接受用户的选择,并启动相应函数10)void mainmenu();显示主菜单11)void Bead();将文件读取到内存中12)oid Write();将内存中的学生信息写入文件中13)int getchoice();接受用户的选择键,并传送至dochoice(int)函数14)void Sort();实现排序功能15)void Outputall();输出全部信息16)void findchoicedelete();17)void Numdelete();实现按学号删除功能18)void Namdelete();实现按姓名删除功能19)int main(int argc,char *argv[]) 主函数实现调用所有其他函数功能3.3源代码#include <stdio.h>#include <string.h>#include <stdlib.h>#include <memory.h>#include <conio.h>#include <windows.h>#define A 1#define B 2#define C 3#define D 4#define E 5#define F 0FILE *fp;enum SEX {male,female};struct student_info{char no[11];int age;enum SEX sex;char name[20];int classno;float grade;char nationality[20];};typedef struct student_info STUINFO; STUINFO txl[100];int last=0;int Key(char,char);int ck(void);void getpassword();void findchoice();void findmenu();void numfind();void namfind();void Establish();void dochoice(int);void mainmenu();void Bead();void Write();int getchoice();void Sort();void Outputall();void findchoicedelete();void Numdelete();void Namdelete();int main(int argc,char *argv[]){int choice;getpassword();Bead();while(1){mainmenu();choice=getchoice();dochoice(choice);system("pause>nu1");}return 0;}void Bead() //从文件中把内容读取到内存中{int i=0;if((fp=fopen("txl.txt","rb"))==NULL){printf("文件读取失败,请检查文件是否存在!"); last=0;}else{while(!feof(fp)){ if(fread(&txl[i],sizeof(STUINFO),1,fp)==1) i++;}last=i;}fclose(fp);}void Write() //将内存中的内容写到文件中{int i=0;if((fp=fopen("txl.txt","wb"))==NULL){printf("文件储存失败,请检查文件是否存在!");exit(0);}while(i<last){fwrite(&txl[i],sizeof(STUINFO),1,fp);i++;}fclose(fp);}void mainmenu() //主菜单{system("cls");printf("\t\t ========欢迎进入新疆大学学籍管理系统========\n"); printf("\t\t 请选择以下操作:\n");printf("\t\t 1.建立档案: 2.检索信息: \n");printf("\t\t 3.输出全部信息: 4.排序: \n");printf("\t\t 5.删除档案 0.退出 \n"); printf("\t\t ============================================"); printf("\n给出你的选择 0--5 \n");}void Establish() //建立档案{char sex;printf("第 %d 个学生的学号:\n",last+1);scanf("%s",&txl[last].no);printf("姓名:\n");scanf("%s",&txl[last].name);printf("年龄:\n");scanf("%d",&txl[last].age);printf("分数:\n");scanf("%f",&txl[last].grade);printf("班级:\n");scanf("%d",&txl[last].classno);printf("籍贯:\n");scanf("%s",&txl[last].nationality);while(1){fflush(stdin); //清除键盘缓存printf("性别(m/f):\n");scanf("%c",&sex);if(sex=='f'||sex=='m')break;fflush(stdin);}txl[last].sex=(sex=='m')? male :female;last++;Write();}void namfind() //按姓名查找{char name[20];int i;int find=0;printf("请输入姓名:");scanf("%s",&name);for(i=0;i<last && !find;i++){if(!strcmp(name,txl[i].name)){ find=1;printf("========================================\n");printf("学号: %s\n",txl[i].no);printf("姓名: %s\n",txl[i].name);printf("年龄: %d\n",txl[i].age);printf("分数: %4.1f\n",txl[i].grade);printf("籍贯: %s\n",txl[i].nationality);printf("性别: %s",(txl[i].sex==male)? "male":"female");}}if (!find){printf("对不起,姓名:%s 没有被找到",name);}}void numfind() //按学号查找{int i;char num1[12];int find=0;printf("请输入您要查询的学号:");scanf("%s",&num1);for(i=0;i<last && !find;i++){if(!strcmp(num1,txl[i].no))break;}if(i<last && !find){printf("学号为%s的学生的基本信息为:\n",num1);printf("学号: %s\n",txl[i].no);printf("姓名: %s\n",txl[i].name);printf("年龄: %d\n",txl[i].age);printf("分数: %4.1f\n",txl[i].grade);printf("籍贯: %s\n",txl[i].nationality);printf("性别: %s",(txl[i].sex==male)? "male":"female");printf("\n");}elseprintf("您输入的学号不存在!\n");}int getchoice() //获得选择{int choice;scanf("%d",&choice);return choice;}void dochoice(int choice)//{ switch(choice){ case A:Establish();break;case B:findmenu();findchoice();break;case C: Outputall();break;case D:Sort();Outputall();break;case E:findmenu();findchoicedelete();break;case F:exit(0);}}void findchoice() //选择查找方式{int m;while(1){scanf("%d",&m);switch(m){case 1:numfind();findmenu();break;case 2:namfind();findmenu();break;case 0:break;}if (m==0)break;}mainmenu();}void findmenu() //查找/删除界面{printf("\t\t***********************************************\n");printf("\t\t* 欢迎使用查找/删除操作 *\n");printf("\t\t* 1.按学号查找/删除 *\n");printf("\t\t* 2.按姓名查找/删除 *\n");printf("\t\t* 0.返回上一级 *\n");printf("\t\t***********************************************\n");printf("\t\t请输入0--2: ");}void findchoicedelete() //选择删除方式{int m;while(1){scanf("%d",&m);switch(m){case 2:Namdelete();findmenu();break;case 1:Numdelete(); findmenu();break;case 0:break;}if (m==0)break;}mainmenu();}void Sort() //排序{int i,j,k;STUINFO p;for(i=0;i<last-1;i++){k=i;for(j=i+1;j<last;j++){if(txl[j].grade>txl[k].grade)k=j;}if(k!=i){p=txl[i];txl[i]=txl[k];txl[k]=p;}}}void Outputall() //输出全部信息{int i;printf(" 学号\t 年龄姓名性别籍贯分数\n" ); for(i=0;i<last;i++){printf("%-s ",txl[i].no);printf("%-4d ",txl[i].age);printf("%-6s ",txl[i].name);printf(" %-4s ",(txl[i].sex==male)? "male":"female");printf(" %-4s ",txl[i].nationality);printf(" %-4.1f ",txl[i].grade);printf("\n");}}int Key(char p[20],char q[20]){if(strcmp(p,"名字")==0&&strcmp(q,"nishengri")==0)return 0;elsereturn 1;}void getpassword(){char p[20],q[20];printf("请输入账号名-----------\n");scanf("%s",&p);printf("请输入账号密码-----------\n");scanf("%s",&q);Key(p,q);if (Key(p,q)==0);else{system("cls");ck();getpassword();}}void Namdelete() //按姓名删除{char name[20];int i,mark;int find=0;printf("请输入姓名:");scanf("%s",&name);for(i=0;i<last && !find;i++){if(!strcmp(name,txl[i].name)){ find=1;mark=i;break;}}if (!find){printf("sorry,name:%s 没有输入!!",name); }else{for(i=mark;i<=last;i++)txl[i]=txl[i+1];last--;Write();printf("删除成功!!\n");}}void Numdelete() //按学号删除{char no[20];int i,mark;int find=0;printf("请输入学号");scanf("%s",&no);for(i=0;i<last && !find;i++){if(!strcmp(no,txl[i].no)){ find=1;mark=i;break;}}if (!find){printf("对不起,学号:%s 没有输入",no);}else{for(i=mark;i<=last;i++)txl[i]=txl[i+1];last--;Write();printf("删除成功.\n");}}int ck(void){MessageBox(NULL,"密码或用户名错误","错误提示",MB_OK);return 0;}3.4删除模块的详细介绍下面只重点介绍删除模块函数的设计与实现。

相关文档
最新文档