C语言大作业西工大
西北工业大学C语言大作业实验报告
![西北工业大学C语言大作业实验报告](https://img.taocdn.com/s3/m/0dd5fae9e009581b6bd9eb93.png)
学院*****************目录1 摘要 (3)1.1设计题目 (3)1.2设计内容 (3)1.3开发工具 (3)1.4应用平台 (4)2 详细设计 (4)2.1程序结构 (4)2.2主要功能 (10)2.3函数实现 (13)2.4开发日志 (18)3 程序调试及运行 (20)3.1程序运行结果 (20)3.2程序使用说明 (22)3.3程序开发总结 (22)4 附件(源程序) (22)1 摘要1.1 设计题目折半法查找演示程序1.2 设计内容本程序是一个演示折半查找算法的演示程序。
由用户输入查找的数据表列和查找的数据,系统在将数表排序后可以在屏幕上演示在排序后的表列中按折半查找法查找该数据的具体过程(通过每次查找的中间数据、下次查找表列等,具体效果见下图),支持多次演示、错误提醒,程序暂停演示功能。
1.3 开发工具Visual C++ 6.0和Win32。
1.4 应用平台Windows 2000/XP/Vista 32位2 详细设计2.1 程序结构程序功能模块:本程序主要由五大模块组成:程序说明模块、输入模块、排序模块、折半法查找及显示模块、进程选择模块。
各模块的主要功能如下:程序说明模块:给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。
此部分模块主函数源代码如下:int a[N];/*存储要查找的数表,用户输入*/int i,n,num,count;/*count为折半次数计数器,n为数表数据个数,num存储所查数据*/int top,bottom,mid;char c;/*存储选择函数中的输入的字符y或n*/int flag=1;/*折半法循环标志变量*/int loc=-1;/*存储所查找数据位置*/double k=0;p_s(76);puts("\n");/*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文)printf("****欢****迎****使****用****折****半****查****找****法****演****示****器****\n");puts("\n");/*程序欢迎语*/p_s(13);printf("制作者:***************** ");/*作者信息*/p_s(4);printf("Email:************************ ");/*电子邮件*/p_s(11);puts("\n");p_s(76);puts("\n");/*再次引用p_s函数,程序说明部分结束*/附:print_star.cpp文件源代码#include<stdio.h>void p_s(int k){int i;for(i=1;i<=k;i++)/*连续输出ka个'*'*/printf("*");}输入模块:引导使用者输入要在其中查找数据的数表的数据个数和数表数据。
西北工业大学C语言大作业2
![西北工业大学C语言大作业2](https://img.taocdn.com/s3/m/13fa902983c4bb4cf7ecd16a.png)
学院目录1 摘要 (3)1.1设计题目 (3)1.2设计内容 (3)1.3开发工具 (3)1.4应用平台 (3)2 详细设计 (3)2.1程序结构 (3)2.2主要功能 (4)2.3函数实现 (4)2.4开发日志 (5)3 程序调试及运行 (6)3.1程序运行结果 (6)3.2程序使用说明 (7)3.3程序开发总结 (7)4 附件(源程序) (8)1 摘要1.1 设计题目界面编程——简谐运动1.2 设计内容基于Windows界面编程下的SDK编程框架,设计一个带有对话框、GDI图形输出的Windows窗口的程序,实现求解简谐运动方程,能流密度,绘制简谐振动曲线。
运行程序,初始化,X0=V0=W=1时的简谐运动方程和简谐振动曲线。
当点击“运行|计算绘图”时,弹出对话框对简谐运动初相位X0,初速度V0和角频率W进行修改,点击“确认”,就能计算出简谐运动方程,能流密度,绘制简谐振动曲线,这些结果在窗口显示。
1.3 开发工具Visual C++ 6.0和Win32SDKApp1.4 应用平台Windows 2000/XP/Vista 32位2 详细设计2.1 程序结构一、程序的整体结构首先定义资源头文件resource.h;在进行资源描述文件,此过程可通过可视化操作;正式进入编写程序代码:1、由Win32SDKApp自动生成的SDK编程框架:头文件包含所有头文件或链接库文件全局定义应用实例、主窗口变量、数据结构等全局定义,固定不变消息处理函数原型给出所有消息处理函数的原型,增加/删除消息处理时变动消息映射表宏定义定义消息映射表,增加/删除消息处理时变动窗口过程窗口过程函数的实现,固定不变注册窗口类注册窗口类函数的实现,除非修改窗口属性,一般不动初始化窗口初始化窗口函数的实现,除非修改窗口初始化值,一般不动消息循环Windows应用程序主消息循环,一般不动主函数Windows应用程序基本结构,一般不动消息处理函数实现在这编写消息处理函数2、再对SDK编程框架进行修改:设置了快捷键就必须对消息循环函数修改在编写消息处理函数之前:在消息处理函数原型模块中加入要添加的消息处理函数(如WM_COMMAND、WM_ONPAIT)在消息映射表模块增加该消息映射在消息处理函数实现模块中给出该消息处理函数的实现如果消息处理函数之间有共享使用的变量,则将它定义为全局变量。
西工大C语言POJ习题答案
![西工大C语言POJ习题答案](https://img.taocdn.com/s3/m/abfa93430a1c59eef8c75fbfc77da26925c596a9.png)
西工大C语言POJ习题答案一、1、第一季10题全(注:第五题问题已经解决,确认AC!)#include <="">scanf("%d%d",&a,&b);sum=a+b;printf("%d\n",sum);return 0;?}2、#include <="" bdsfid="74" p="" pi="">intmain(){? double r,h,l,s,sq,vq,vz;? scanf("%lf%lf",&r,&h);?l=2*PI*r;? s=PI*r*r;? sq=4*PI*r*r;? vq=4*PI*r*r*r/3;vz=s*h;? printf("%、2lf\n%、2lf\n%、2lf\n%、2lf\n%、2lf\n",l,s,sq,vq,vz);? return0;?}3、#includeint main(){?int a,b,c;double d,e;scanf("%d%d%d",&a,&b,&c); d=a+b+c;? e=d/3;printf("%lf\n%lf\n",d,e);?return 0;}4、#include <stdio、h>int main(){int a,b,c;? scanf("%d%d%d",&a,&b,&c);if(a<b)? a=b;? if(a<c)?a=c;< bdsfid="94" p=""></c)?a=c;<>printf("%d\n",a);return 0;}5、#include<stdio、h>?int main(){? inti=0,j=0,k=1;char a[6];while((a[i]=getchar())!='\n'){i++;}? for(;i>0;i--){? if(a[j]==a[i-1]){j++;? continue;}else {k=0;break;}}? if(k==1)?printf("yes\n");else? printf("no\n");}6、#include?i?doublea,c;nt main()?{scanf("%lf",&a);{?case0:c=switch((int)a/10)?a*0、1;break;?case1:c=(a-10)*0、075+10*0、1;break;case2:case3:c=(a-20)*0、05+10*0、075+10*0、1;break;case4:?case5:c=(a-40)*0、03+20*0、05+10*0、075+10*0、1;break;case6:case7:?case8:case9:c=(a-60)*0、015+20*0、03+20*0、05+10*0、075+10*0、1;break;?default:c=(a-100)*0、01+40*0、015+20*0、03+20*0、05+10*0、075+10*0、1;?{printf("%lf\n",c);return0;{7、#include<stdio、h>?intmain()?{ doublea,b,c;?scanf("%lf",&a);c=(int)a;if(a>c)a=c+1;?if(a>15)b=(a-15)*2、1+7+13*1、5;?else{ if(a>2)b=(a-2)*1、5+7;?else b=7;?}printf("%lf\n",b);return0;{8、#include ?int main(){? int a,b,c,e,f=30,g=31,n;scanf("%d-%d-%d",&a,&b,&c);? if((a%400==0)||(a%100!=0&&a%4==0))? e=29;? elsee=28;{?case 1:n=c;break; switch (b)?case2:n=g+c;break;case3:n=g+e+c;break;? case 4:n=g+e+g+c;break;? case 5:n=g+e+g+f+c;break;?case 6:n=g+e+g+f +g+c;break;case7:n=g+e+g+f+g+f+c;break; case8:n=g+e+g+f+g+f+g+c;break;? case 9:n=g+e+g+f+g+f+g+g+c;break;case 10:n=g+e+g+f+g+f+g+g+f+c;break;?case 11:n=g+e+g+f+g+f+g+g+f+g+c;break;default: n=g+e+g+f+g+f+g+g+f +g+f+c;}? printf("%d\n",n);return 0;}9、#include <stdio、h>< bdsfid="166" p=""></stdio、h><> int main()?{int x;? scanf("%d",&x);if(x>=90&&x<=100)? printf("A\n");? else if (x>=80)? printf("B\n");?else if(x>=70)printf("C\n");?else if (x>=60)printf("D\n");?elseprintf("E\n");return 0;?}10、#includeint main()?{doublex,y,s;?scanf("%l f,%lf",&x,&y);s=(x+2)*(x+2)+(y-2)*(y-2);?if(s>1){ s=(x+2)*(x+2)+(y+2)*(y+2);?if(s>1){?s=(x-2)*(x-2)+(y+2)*(y+2);if(s>1){?s=(x-2)*(x-2)+(y-2)*(y-2);if(s>1){printf("0\n");return1;{{?{?{printf("10\n");?return0;{二。
西工大2020年4月《C语言程序设计》作业机考参考答案
![西工大2020年4月《C语言程序设计》作业机考参考答案](https://img.taocdn.com/s3/m/07897f5976a20029bd642d96.png)
西工大2020年4月《C语言程序设计》作业机考试卷总分:100 得分:96一、单选题(共35 道试题,共70 分)1. 一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束正确答案:A2. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.auto和registerB.extern和registerC.auto和staticD.static和register正确答案:A3. 以下存储类型只有在使用时才为该类型变量分配内存的是()。
A.auto和staticB.auto和registerC.register和staticD.static和extern正确答案:B4. 运行程序:#includemain(){int n='c';switch(n++){ default: printf("error");break;case 'a':case 'A':case 'b':case 'B':printf("good");break;case 'c':case 'C':printf("pass");case 'd':case 'D':printf("warn");}}则输出结果是()。
A.goodB.passC.warnD.passwarn。
西工大C语言大作业习题答案
![西工大C语言大作业习题答案](https://img.taocdn.com/s3/m/ae2423c70508763231121299.png)
童鞋们,快来呀!答案!答案!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)图形的符号。
*问题分析与算法设计本题可以在上题的基础上进行修改。
图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。
西北工业大学2020春机考《C语言程序设计》作业1答案42310
![西北工业大学2020春机考《C语言程序设计》作业1答案42310](https://img.taocdn.com/s3/m/93a44a27d1f34693daef3edd.png)
20.假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是( )。 A.3.500000 B.3 C.2.000000 D.3.000000 答案:D
5.若有语句 scanf("%d%d",&a,&b);要使变量 a,b 分别得到 10 和 20,正确的输入形式为( )。 A.10 20 B.10,20 C.1020 D.10:20 答案:A
6.有以下定义 #include char a[10],*b=a; 不能给 a 数组输入字符串的语句是( )。 A.gets(a) B.gets(a[0]); C.gets(&a[0]); D.gets(b) 答案:B
11.C 语言规定,在一个源程序中,main 函数的位置( )。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 答案:C
12.下面各选项中,均是 C 语言合法标识符的选项组是( )。 A.33 we auto B._23 me _3ew C._43 3e_ else D.ER -DF 32 答案:B
22.请选出可用作 C 语言用户标识符的是( )。 A.void,define,WORD B.a3_b3,_123,IF C.FOR,--abc,Case D.2a,Do,Sizeof 答案:B
23.说明语句 int *(*p)(); 的含义是( )。 A.p 是一个指向 int 型数组的指针 B.p 是指针变量,它构成了指针数组 C.p 是一个指向函数的指针,该函数的返回值是一个整型 D.p 是一个指向函数的指针,该函数的返回值是一个指向整型的指针 答案:D
西北工业大学2020春机考《C语言程序设计》答案 -
![西北工业大学2020春机考《C语言程序设计》答案 -](https://img.taocdn.com/s3/m/cf46c928f524ccbff12184e8.png)
西北工业大学2020春机考《C语言程序设计》作业1单选题1.下面程序的输出结果是()。
main() { int a[10]={1,2,3,4,5,6,7,8,9,10,*p=a;A.3B.4C.1D.2答案:VX:34637870获取参考答案2.以下描述错误的是()。
A.break 语句不能用于循环语句和 switch 语句外的任何其他语句B.在 switch 语句中使用 break 语句或 continue 语句的作用相同C.在循环语句中使用 continue 语句是为了结束本次循环,而不是终止整个循环D.在循环语句中使用 break 语句是为了使流程跳出循环体,提前结束循环答案:VX:34637870获取参考答案3.下面程序的输出结果是()。
main() { int x=10; x+=(x=8); printf("%d\n",x); }A.10B.8C.18D.16答案:VX:34637870获取参考答案4.定义 int i=1; 则执行语句 while(i++<5); 后,i 的值为()。
A.3B.4C.5D.6答案:VX:34637870获取参考答案5.若有语句 scanf("%d%d",&a,&b);要使变量 a,b 分别得到 10 和 20,正确的输入形式为()。
A.10 20B.10,20C.1020D.10:20答案:VX:34637870获取参考答案6.有以下定义 #include char a[10],*b=a; 不能给 a 数组输入字符串的语句是()。
A.gets(a)B.gets(a[0]);C.gets(&a[0]);D.gets(b)答案:VX:34637870获取参考答案7.当 c 的值不为 0 时,在下列选项中能够将 c 的值赋给变量 a、b 的是()。
A.c=b=a;B.(a=c)||(b=c);C.(a=c)&&(b=c);答案:VX:34637870获取参考答案8.以下描述中正确的是()。
西工大c语言试题
![西工大c语言试题](https://img.taocdn.com/s3/m/e6658660bf1e650e52ea551810a6f524ccbfcbd9.png)
西工大c语言试题第一章1. 一个C源程序必须有一个也只能有一个函数。
2. 是构成C程序的基本单位。
3. 一个C程序总是从函数开始执行的。
4.在C语言中,一个函数一般由两个部分组成,它们是和。
5. C语句是以结束的。
6. 可以用对C程序中的任何部分作注释。
7. 下面4个选项中,均是C语言关键字的选项是。
A) auto B) switch C) else D) ifchar void extern structinclude continue scanf type8. 下面正确的说法是。
A) main函数可以调用其他函数,也可以被其他函数调用B)每个C语言源文件必须包含一个main函数,方可进行编译C) 分号是c语句的一部分D)函数的首部后必须加分号第一章1. main2. 函数 3 main 4.函数的首部函数体 5. ;6. /*. */7. b 8.c第三章1.1. 以下组常量全是合法的C语言常量。
A) ―1\101ab‖ 0f 3.e5 B) ?abc‘ -0 9eC) ?$‘ 1e5 0xa D) .5e-5 0198 e3.02. 如有定义:char c=‘\010‘;则变量c中包含的字符个数为。
3. 字符串“ab\n\\012\\\‖‖的长度是。
4. C语言中,整常数18的三种具体表示形式为。
5. C语言中的标识符只能由字母,数字,下划线3种字符组成,且第一个字符。
A)必须为字母B) 必须为下划线C)必须为字母或下划线D)可以为字母、数字、下划线中的任一种字符6. 下列4组选项中,均是C语言合法用户标识符的选项是。
A) timp abc$ suml B) day day_1 _dayC) day-1 3ab sum D) m.d.j 123 class7.C语言中int、char和double三种类型数据在内存中所占字节数的大小关系为。
8.若有定义:char a=123,b=456; int sum; 执行sum=a+b; 后,sum的值是。
西北工业大学C大作业第题
![西北工业大学C大作业第题](https://img.taocdn.com/s3/m/89a4e907c1c708a1294a4497.png)
作业名称:学生通讯录管理系统学院:自动化学院班级:学号:姓名:团队组成:西北工业大学2022年4月27日请填写以下十项内容,将表格按页对齐(插入空行),勿删除任何部分。
1、问题与背景(描述程序所要解决的问题或应用背景)2、开发工具(列出所使用的开发工具和第3方开发库)3、主要功能(详细说明程序的功能)4、设计内容(详细描述解决问题的原理和方法、算法、数据结构等)5、程序文件与工程名称(标出程序中所有文件名、工程名称及其说明)6、函数模块(程序中各个函数的原型声明及其说明)7、使用说明(运行程序的小型说明书)8、程序开发总结(简要叙述编写本作业的收获与思考)9、运行截图(附上程序运行的截图画面,至少有1幅,截图越翔实得分越高)增加联系人修改联系人删除联系人按学生姓名查询联系人按学生学号查询联系人保存通讯录打开通讯录10、源程序(附上程序源代码,若是多个文件,标出文件名)#include<string>#include<fstream>#include<iostream>#include<vector>using namespace std;static int n=0;struct student{string name;string number;string address;string telephone;string post;string mail;};class information{private:student st[10];public:void add(string name, string number,string address,string telephone,string post,string mail);void print(int i){cout<<"\t\t姓名:"<<st[i].name<<endl;cout<<"\t\t学号:"<<st[i].number<<endl;cout<<"\t\t地址:"<<st[i].address<<endl;cout<<"\t\t电话:"<<st[i].telephone<<endl;cout<<"\t\t邮编:"<<st[i].post<<endl;cout<<"\t\t邮箱:"<<st[i].mail<<endl;}void findname(string name);void findnumber(string number);void correct(string name);void del(string);void save();void read();};void information::add(string name, string number,string address,string telephone,string post,string mail){static int i=0;st[i].address=address;st[i].mail=mail;st[i].name=name;st[i].number=number;st[i].post=post;st[i].telephone=telephone;i++;n++;}void information::findname(string name){int x=0;for(int i=0;i<10;i++){if(st[i].name==name){print(i);x=1;break;}}if(x==0)cout<<"the man can.t be found in the record!"<<endl;}void information::findnumber(string number){for(int i=0;i<10;i++){if(st[i].number==number){print(i);x=1;break;}}if(x==0)cout<<"the student can.t be found in the record!"<<endl; }void information::correct(string name){string number;string address;string telephone;string post;string mail;int x=0;for(int i=0;i<10;i++){if(st[i].name==name){cout<<"\t输入要修改的姓名:";cin>>name;st[i].name=name;cout<<"\t输入要修改的学号:";cin>>number;st[i].number=number;cout<<"\t输入要修改的地址:";cin>>address;st[i].address=address;cout<<"\t输入要修改的电话:";cin>>telephone;st[i].telephone=telephone;cout<<"\t输入要修改的邮编:";cin>>post;st[i].post=post;cout<<"\t输入要修改的邮箱:";cin>>mail;st[i].mail=mail;print(i);x=1;}if(x==0)cout<<"the man can.t be found in the record"<<endl;}void information::del(string name){int x=0;for(int i=0;i<10;i++){if(st[i].name==name){st[i].address="0";st[i].mail="0";st[i].name="0";st[i].number="0";st[i].post="0";st[i].telephone="0";x=1;print(i);}}if(x==0)cout<<"the student can.t be found in the record"<<endl;}void information::save(){string fileName;second:cout<<"\t输入要保存的文件名:";cin>>fileName;ofstream outFile(fileName.c_str());if(!outFile){cerr<<"\terror:unable to open output file: "<<fileName<<endl; goto second;}for(int i=0;i<n;i++){outFile << "姓名:"<<st[i].name<<"\t";outFile << "学号:"<<st[i].number<<"\t";outFile << "地址:"<<st[i].address<<"\t";outFile << "电话号码:"<<st[i].telephone<<"\t";outFile << "邮编:"<<st[i].post<<"\t";outFile << "E_MAIL:"<<st[i].mail<<endl;}outFile.close();}void information::read(){vector<string> svec;string fileName,s;cin>>fileName;ifstream inFile(fileName.c_str());if(!inFile){cerr<<"\terror:unable to open output file: "<<fileName<<endl;}while(getline(inFile,s))svec.push_back(s);for(vector<string>::iterator iter=svec.begin();iter!=svec.end();++iter)cout<<*iter<<endl<<endl;}int main(){information s;cout<<"\t★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl; cout<<endl;cout<<"\t\t\twelcome to use the communication book"<<endl;cout<<"\t\t\t\t\t\tdesigned: 郭振超"<<endl;cout<<"\t\t----------------------------------------------------"<<endl;begin:cout<<"\t\t| 1.编辑通信录 2.查询联系人 |"<<endl;cout<<"\t\t| 3.保存通信录 4.打开通记录 |"<<endl;cout<<"\t\t----------------------------------------------------"<<endl;string name;string number;string address;string telephone;string post;string mail;int val1;cout<<"\t\t请选择功能号:";cin>>val1;switch(val1){case 1:cout<<"\t\t(1) 增加联系人"<<endl;cout<<"\t\t(2) 修改联系人"<<endl;cout<<"\t\t(3) 删除联系人"<<endl;int val2;cout<<"\t\t请选择选项:";cin>>val2;switch(val2){case 1:cout<<"\t 输入姓名: ";cin>>name;cout<<"\t 输入学号: ";cin>>number;cout<<"\t 输入地址: ";cin>>address;cout<<"\t 输入电话: ";cin>>telephone;cout<<"\t 输入邮编: ";cin>>post;cout<<"\t 输入邮箱: ";cin>>mail;s.add(name,number,address,telephone,post,mail); cout<<"\t\t按0键退出系统,按其他键返回主菜单:";int back_add;cin>>back_add;if(back_add!=0)goto begin;elsegoto end;break;case 2:cout<<"\t请输入要修改的学生姓名:";cin>>name;s.correct(name);cout<<"\t\t按0键退出系统,按其他键返回主菜单:";int back_correct;cin>>back_correct;if(back_correct!=0)goto begin;elsegoto end;break;case 3:cout<<"\t请输入要删除的学生信息的学生姓名:"; cin>>name;s.del(name);cout<<"\t\t按0键退出系统,按其他键返回主菜单:";int back_del;cin>>back_del;if(back_del!=0)goto begin;elsegoto end;break;}break;case 2:cout<<"\t\t(1) 按学生姓名查询"<<endl;cout<<"\t\t(2) 按学生学号查询"<<endl;int val3;cout<<"\t\t请选择选项:";cin>>val3;switch(val3){case 1:cout<<"\t请输入查询的学生姓名:";cin>>name;s.findname(name);cout<<"\t\t按0键退出系统,按其他键返回主菜单:";int back_findname;cin>>back_findname;if(back_findname!=0)goto begin;elsegoto end;break;case 2:cout<<"\t请输入查询的学生学号:";cin>>number;s.findnumber(number);cout<<"\t\t按0键退出系统,按其他键返回主菜单:";int back_findnumber;cin>>back_findnumber;if(back_findnumber!=0)goto begin;elsegoto end;break;}break;case 3:cout<<"\t确定保存修改的记录吗(请输入y或n进行选择):"; char val4;cin>>val4;if(val4=='n'){cout<<"放弃记录保存!"<<endl;cout<<"\t\t按0键退出系统,按其他键返回主菜单:";int back_save;cin>>back_save;if(back_save!=0)goto begin;elsegoto end;}else{s.save();cout<<"\t保存成功!"<<endl;cout<<"\t\t按0键退出系统,按其他键返回主菜单:";int back_save;cin>>back_save;if(back_save!=0)goto begin;elsegoto end;}break;case 4:cout<<"\t输入要打开的记录名:";s.read();cout<<"\t\t按0键退出系统,按其他键返回主菜单:";int back_read;cin>>back_read;if(back_read!=0)goto begin;elsegoto end;break;}end:cout<<"\t**********成功退出系统,欢迎再次使用!**********"<<endl; return 0;}。
C语言(计算机)
![C语言(计算机)](https://img.taocdn.com/s3/m/cda8140e844769eae009ed7b.png)
西安工业大学试题纸一.判断题:(共9分,每题1分)( )1.C语言编译时不检查语法( )2.所有的变量在使用前都必须予以声明()3.一个数组能够存放许多不同类型的值()4.若有说明:int a[3][4]={0};,则数组a中每个元素的初值都为0()5.函数可以嵌套定义,即在一个函数的内部可以定义另一个函数()6.字符“\0”是字符串的结束标记,其ASCII代码为0()7.若用数组名作为函数调用时的实参,则实际传递给形参的是数组的第一个元素值()8.存放地址的变量同其它变量一样,可以存放任何类型的数据()9.指针变量可用于保存同类型变量的地址值二.选择题:(共36分,每题2分)1.假定x和y为double型,则表达式x=2,y=x+3/2的值是()A)3.500000 B)3 C)2.000000 D)3.000000 2.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是()A)x || y B)x *y C)x && y D)x %y 3.若a为int类型,且其值为3,则执行完表达式a-=a*a后,a的值是()A)6 B)0 C)-6 D)-124.假定有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是()A)3 B)6 C)10 D)205.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为()A)不定值B)4 C)3 D)16.C语言对嵌套if语句的规定是:else总是与()配对。
A)其之前最近的if B)第一个ifC)缩进位置相同的if D)其之前最近且不带else的if7.执行语句for(i=1 ; i<4 ; i++) ; 后变量i的值是()A)3; B)4 C)5 D)不定8.在C语句中,下列说法中正确的是()A)不能使用do-while语句构成循环;B)do-while语句构成的循环必须用break语句才能退出;C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环;D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环。
西工大20年10月机考《C语言程序设计》作业参考答案非免费
![西工大20年10月机考《C语言程序设计》作业参考答案非免费](https://img.taocdn.com/s3/m/583d0dcda417866fb84a8ecc.png)
西工大20年10月机考《C语言程序设计》作业试卷总分:100 得分:96答案网叫福到(这四个字的拼音)一、单选题(共35 道试题,共70 分)1.{设有以下程序段int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则()。
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次正确答案:2. feof函数用来判断文件是否结束,如果文件没有结束,则返回值是()。
A.-1B.0C.1D.EOF正确答案:3. 以下程序的输出结果是()。
main(){int c=35; printf("%d\n",c&c);}A. 0B.70C.35D.1答案:4. 若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是()。
A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7正确答案:5. 以下不构成无限循环的语句或语句组是()。
A.n=0;<br/>do{++n;}while(n<=0);B.n=0;<br/>while(1){n++;}C.n=10;<br/>while(n);{n--;}D.for(n=0,i=1; ;i++)n+=i;6. 要判断char类型变量m是否是数字,可以使用下列表达式()。
A.0<=m&&m<=9B.’0’<=m&&m<=’9’C.”0”<=m&&m<=”9”D.前面3个答案均是错误的正确答案:7. 以下程序的输出结果是()。
main(){ char c='z';printf("%c",c-22);A.dB.eC.cD.f正确答案:8. 若二维数组a由m列,则在a[i][j]之前的元素个数为()。
C语言大作业西工大
![C语言大作业西工大](https://img.taocdn.com/s3/m/7ed6d18883d049649b6658d1.png)
五、程序源代码及注释
#include<stdio.h> #include<malloc.h> #include<windows.h> #define MAX_VERTEX_NUM 20 typedef struct ArcNode{
int adjvex;
struct ArcNode* nextarc; }ArcNode; typedef struct VNode{
return 1; } void DFS(ALGraph ag,int start) {
LinkNode* Stack = (LinkNode*)malloc(sizeof(LinkNode)); LinkNode* pStack = (LinkNode*)malloc(sizeof(LinkNode)); LinkNode* temp; ArcNode* p; int i; if(!pStack||!Stack)
DFS(ag,choose);
i = 0; while(Visited[i]!='\0') {
int i;
if(!Queue || !pQueue)
return;
Queue->next = NULL;
printf("\n 输出广度优先遍历次序:");
printf(" %c ",ag.vertices[start].cData);
p = ag.vertices[start].firstarc;
last->next = pQueue;
last = last->next;
}
p = p->nextarc;
}
temp = Queue->next;
西工大C语言C++作业答案
![西工大C语言C++作业答案](https://img.taocdn.com/s3/m/f6570be59b89680203d825d5.png)
CH0408.txt# include <stdio.h>void main(){double r,h,l,s,sq,vq,vz;scanf("%lf%lf",&r,&h);l=2*3.141592653*r;s=3.141592653*r*r;sq=4*3.141592653*r*r;vq=4*3.141592653*r*r*r/3;vz=3.141592653*r*r*h;printf("l=%.2lf\ns=%.2lf\nsq=%.2lf\nvq=%.2lf\nvz=%.2lf\n",l,s,sq,vq,vz); }CH0505.txt#include <stdio.h>void main(){int x,y;scanf("%d",&x);if (x>=1)if (x>=10)y=3*x-11;else y=2*x-1;else y=x;printf("y=%d",y);}CH0510.txt#include <stdio.h>void main(){double x,y;int h=10;scanf ("%lf%lf",&x,&y);if ((x-2)*(x-2)+(y-2)*(y-2)<=1)printf ("h=10\n");elseif ((x+2)*(x+2)+(y-2)*(y-2)<=1)printf ("h=10\n");elseif ((x-2)*(x-2)+(y+2)*(y+2)<=1) printf ("h=10\n");elseif ((x+2)*(x+2)+(y+2)*(y+2)<=1) printf ("h=10\n");else printf ("h=0\n");}CH0603.txt#include <stdio.h>#include<math.h>void main(){long int a,n,sum=0,b,i;scanf("%d %d",&a,&n);for(i=1;i<=n;i++){b=pow(10,i);sum+=b;}sum=a*sum/9;printf("a+aa+aaa+...=%ld\n",sum); }CH0607.txt# include <stdio.h>#include<math.h>void main(){int n,i,j,t,k;for(n=2;n<=1000;n++){i=1;j=0;t=0;k=0;for(i=1;i<n;i++){if(n%i==0)t=t+i;}if(t==n){printf("%d",n);for(i=1;i<n;i++){if(n%i==0&&i!=1)printf("+%d",i);else if(n%i==0&&i==1)printf("=%d",i);}printf("\n");}}}CH0611.txt# include <stdio.h>#include<math.h>void main(){float a,x,x1,x2=1.0;scanf("%f",&a);x1=(x2+a/x2)/2;while(fabs(x2-x1)>=pow(10,-5)) { x2=x1;x1=(x2+a/x2)/2;}x=x1;printf("x=%.5f",x);}CH0613.txt#include <stdio.h>#include <math.h>void main(){double x,x1,x2,x3,fx1,fx2,fx3; scanf("%lf %lf",&x1,&x2);fx1=(2*x1*x1*x1-4*x1*x1+3*x1-6); fx2=(2*x2*x2*x2-4*x2*x2+3*x2-6); if(fx1*fx2<0){while(fabs(x1-x2)>=1e-6){x3=(x1+x2)/2;fx3=(2*x3*x3*x3-4*x3*x3+3*x3-6); if(fx3*fx1<0)x2=x3;elsex1=x3;}x=x1;printf("x=%.2lf",x);}}CH0615.txt#include<stdio.h>void main(){char i,j,k;for(i='x';i<='z';i++)for(j='x';j<='z';j++)if(i!=j)for(k='x';k<='z';k++)if(i!=k&&j!=k)if(i!='x'&&k!='x'&&k!='z')printf("a--%c b--%c c--%c",i,j,k); }CH0701.txt#include<stdio.h>void main(){int a[101],i,j;for(i=2;i<101;i++)a[i]=1;for(i=2;i<=100;i++)for(j=2;j*i<=100;j++)a[i*j]=0;for(i=2;i<=100;i++){if(a[i]==1) printf("%d ",i);}printf("\n");}#include<stdio.h>void main(){int n,i,j,a[16][16],m=1,k;while(m==1){scanf("%d",&n);if((n!=0)&&(n<=15)&&(n%2!=0)) m=0;}for(i=1;i<=n;i++)for(j=1;j<=n;j++)a[i][j]=0;j=n/2+1;a[1][j]=1;for(k=2;k<=n*n;k++){i=i-1;j=j+1;if((i<1)&&(j>n)){i=i+2;j=j-1;}else{if(i<1) i=n;if(j>n) j=1;}if (a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;}}for (i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%2d ",a[i][j]);printf("\n");}CH0709.txt#include<stdio.h>void main(){int a[16]={1,4,9,13,21,34,55,89,144,233,377,570,671,703,812},i=0,j;scanf("%d",&j);a[15]=j;while(a[i]!=j)i++;if(i<15)printf("%d\n",i+1);elseprintf("no found\n");}CH0714.txt#include<stdio.h>void main(){char s1[100],s2[100],i,k;gets(s1);gets(s2);for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]!=s2[i])break;k=s1[i]-s2[i];printf("%d\n",k);}CH0814.txt#include "stdio.h"#define N 5#define M 3float score[N][M];float a_stu[N],a_cour[M];int r,c;void main()void input_stu();void aver_stu();void aver_cour();int i,j;input_stu();aver_stu();aver_cour();for (i=0;i<N;i++)printf("%.3f ",a_stu[i]); printf("\n");for(j=0;j<M;j++)printf("%.3f ",a_cour[j]); printf("\n");printf("d=%.3f",s_var()); }void input_stu(){int i,j;for(i=0;i<N;i++)for (j=0;j<M;j++) scanf("%f",&score[i][j]); }void aver_stu(){int i,j;float s;for(i=0;i<N;i++){for(j=0,s=0;j<M;j++)s+=score[i][j];a_stu[i]=s/3.0;}}void aver_cour(){int i,j;float s;for(j=0;j<M;j++){s=0;for(i=0;i<N;i++)s+=score[i][j];a_cour[j]=s/(float)N;}}float s_var(){int i;float sumx,sumxn;sumx=0.0;sumxn=0.0;for(i=0;i<N;i++){sumx+=a_stu[i]*a_stu[i];sumxn+=a_stu[i];}return(sumx/N-(sumxn/N)*(sumxn/N)); }CH0817.txt#include<stdio.h>void main(){long num;char a[100],*p=a;scanf("%ld",&num);if(!num)printf("%d",num);while(num){*p++=num%10+'0';num/=10;}*p=0;printf("%s",a);}CH1005.txt#include"stdio.h"void main(){int i,k,m,n,num[50],*p;scanf("%d",&n);p=num;for(i=0;i<n;i++)*(p+i)=i+1;k=0;m=0;while(m<n-1){if(*(p+i)!=0)k++;if(k==3){*(p+i)=0;k=0;m++;}i++;if(i==n) i=0;}while(*p==0)p++;printf("%d\n",*p);}CH1007.txt#include"stdio.h"void main(){void copystr(char *p1,char *p2,int m); int m;char str1[20],str2[20];gets(str1);scanf("%d",&m);copystr(str1,str2,m);printf("%s",str2);}void copystr(char *p1,char *p2,int m) {int n;n=0;while (n<m){n++;p1++;}while(*p1!='\0')*p2=*p1;p1++;p2++;}*p2='\0';}CH1011.txt#include"stdio.h"#include"string.h"void main(){void sort(char s[10][6]); int i;char str[10][6];for(i=0;i<10;i++) scanf("%s",str[i]);sort(str);for(i=0;i<10;i++) printf("%s ",str[i]);}void sort(char s[10][6]) {int i,j;char *p,temp[10];p=temp;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(strcmp(s[j],s[j+1])>0) {strcpy(p,s[j]);strcpy(s[j],s[+j+1]); strcpy(s[j+1],p);}}CH1016.txt#include"stdio.h"void main(){char str[50],*pstr;int i,j,k,m,e10,dight,ndight,a[10],*pa;gets(str);pstr=&str[0];pa=&a[0];ndight=0;i=0;j=0;while(*(pstr+i)!='\0'){if((*(pstr+i)>='0')&&(*(pstr+i)<='9'))j++;else{if(j>0){dight=*(pstr+i-1)-48;k=1;while(k<j){e10=1;for(m=1;m<=k;m++)e10=e10*10;dight=dight+(*(pstr+i-1-k)-48)*e10;k++;}*pa=dight;ndight++;pa++;j=0;}}i++;}if(j>0){dight=*(pstr+i-1)-48;k=1;while(k<j){e10=1;for(m=1;m<=k;m++)e10=e10*10;dight=dight+(*(pstr+i-1-k)-48)*e10;k++;}*pa=dight;ndight++;j=0;}printf("num=%d\n",ndight);j=0;pa=&a[0];for(j=0;j<ndight;j++)printf("%d ",*(pa+j));printf("\n");}CH1112.txt#include<stdio.h>void main(){struct NUM{struct NUM *up;struct NUM *next;int n;}num[1000];struct NUM *p=&num[0],*p2;p->up=NULL;int t;do{scanf("%d",&t);p->n=t;p->next=p+1;p->next->up=p;p++;}while(t!=0);p--;p->up->next=NULL;p=p->up;p2=&num[0];printf("原始表:");while(p2->next)printf("%d->",(p2++)->n);printf("%d\n",p2->n);printf("反转表:");while(p->up)printf("%d->",(p--)->n);printf("%d",p->n);}SXC01.txt# include <stdio.h># include <math.h>void main(){double x,y;scanf("%lf",&x);if(x<0)y=-x;elseif(x<10)y=x*x;else y=sqrt(x);printf("y=%.6lf",y); }SXC03.txt#include <stdio.h>void main(){double a,b,c;scanf("%lf %lf",&a,&b);if(a>=20)if(b>2000) c=b+200;else c=b+180;elseif(b>1500) c=b+150;else c=b+120;printf("%.6lf",c);}SXC04.txt#include <stdio.h>void main(){float a,b,c;scanf("%f:%f",&a,&b);c= (a+b/60)*30-b*6;if(c>180) c=360-c;printf("c=%.0f\n",c);}SXC05.txt# include <stdio.h>void main(){int a,b,x,y,m,n;scanf ("%d/%d%d/%d",&a,&b,&x,&y);m=a*y;n=b*x;if (m>n)printf("%d/%d>%d/%d\n",a,b,x,y);elseif(m<n)printf("%d/%d<%d/%d\n",a,b,x,y);elseprintf("%d/%d=%d/%d\n",a,b,x,y); }SXD02.txt#include<stdio.h>void main(){int i;for(i=100;i<=200;i++){if(i%4==2&&i%7==3&&i%9==5)printf("%d\n",i);}}SXD03.txt# include<stdio.h># include<math.h>void main(){int m,a,b,x,y,i,k;scanf("%d%d",&a,&b);if (a>b) x=b,y=a;else x=a,y=b;for(m=x;m<=y;m=m++){k=sqrt(m);for (i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1)printf("%d ",m);}}SXD04.txt# include<stdio.h># include<math.h>void main(){double s,a,b,c,i;a=2;b=1;s=0;for(i=1;i<=20;i++){s=s+a/b;c=a;a=a+b;b=c;}printf("%.6lf",s);}SXD06.txt#include <stdio.h>#include <math.h>void main(){int i1,i2,i3,i5,i8,ii1,ii2,ii3,ii5,ii8;double max,n;for(i8=0;i8<=2;i8++){for(i5=0;i5<=(20-8*i8)/5;i5++){for(i3=0;i3<=(20-8*i8-5*i5)/3;i3++){for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++){for(i1=0;i1<=(20-8*i8-5*i5-3*i3-2*i2);i1++){n=2000*pow(1+0.0063*12,i1)*pow(1+0.0066*12*2,i2)*pow(1+0.0069*12*3,i3)*pow(1+0. 0075*12*5,i5)*pow(1+0.0084*12*8,i8);if(n>max){max=n;ii8=i8;ii5=i5;ii3=i3;ii2=i2;ii1=i1;}}}}}}printf("8年=%d 5年=%d 3年=%d 2年=%d 1年=%d\n最大收益=%.2lf\n",ii8,ii5,ii3,ii2,ii1,max);}SXE02.txt#include <stdio.h>void main(){char *p,*q,s[100];gets(s);q=s;for(p=q;*p!='\0';)p++;for(p--;p>=q;p--)putchar (*p);putchar ('\n');}SXE03.txt#include <stdio.h>void main (){int a[4][4],i,j,max=0,b=0,c=1;for(i=0;i<4;i++)for(j=0;j<4;j++)scanf ("%d",&a[i][j]);for(i=0;i<4;i++){b=b+a[i][i];{c=c*a[i][3-i];{for(j=0;j<4;j++)if (a[i][j]>max)max=a[i][j];}}}printf ("%d\n""%d\n""%d\n",b,c,max); }SXE04.txt#include <stdio.h>#include <string.h>void main(){char str1[80],str2[80];int i=0,j=0;gets(str1);gets(str2);while (str1[i]!='\0')i++;while (str2[j]!='\0'){str1[i]=str2[j];i++;j++;}str1[i]='\0';printf("%s\n",str1);}SXE05.txt#include<stdio.h>#include<string.h>void main(){char a[4][20];char b[20];int i,j;for(i=0;i<4;i++)scanf("%s",a[i]);for(j=0;j<4;j++)for(i=0;i<3-j;i++){if(strcmp(a[i],a[i+1])>0){ strcpy(b,a[i]);strcpy(a[i],a[i+1]);strcpy(a[i+1],b);}}for(i=0;i<4;i++)printf("%s ",a[i]);printf("\n");}SXF01.txt#include<stdio.h>#include<string.h>void fun(char str1[100],char c1){int i,j;for(i=j=0;str1[i]!='\0';i++)if(str1[i]!=c1)str1[j++]=str1[i];str1[j]='\0';}void main(){char str[100];char c;gets(str);scanf("%c",&c);fun(str,c);puts(str);}SXF02.txt#include<stdio.h>#include<string.h>int i,j,n;void main(){char s[10][20];scanf("%d",&n);void sortstr(char s[][20],int n);for(i=0;i<n;i++)scanf("%s",&s[i]);sortstr(s,n);for(i=0;i<n;i++)printf("%s ",s[i]);}void sortstr(char s[][20],int n){char a[20];for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(strcmp(s[i],s[j])>0){strcpy(a,s[i]);strcpy(s[i],s[j]);strcpy(s[j],a);}}SXF06.txt#include"stdio.h"#include"math.h"void main(){int IsP(int n);int a,i;for(a=301;a<=400;a=a+2){i=IsP(a);if(i)printf("%d ",a);}}int IsP(int n){int k,j;k=sqrt(n);for(j=2;j<=k;j++)if(n%j==0)break;if(j>k)return(1);else return(0);}SXF08.txt# include <stdio.h>void main(){int found(int num,int a[10]);int num,m;scanf("%d",&num);int b[10]={13,24,25,44,57,63,66,78,90,100};m=found(num,b);if (m>0)printf ("%d",m);else printf ("未找到");}found(int num,int a[10]){int i;for(i=0;i<10;i++)if (a[i]==num)return (i+1);return (0);}SXF09.txt# include <stdio.h>void main(){int i,A[10];void sort(int A[],int n);for (i=0;i<10;i++)scanf ("%d",&A[i]);sort(A,10);for (i=0;i<10;i++)printf("%d ",A[i]);}void sort(int A[],int n){int j,k,m;for (j=0;j<10;j++)for (k=0;k<9-j;k++)if (A[k]<A[k+1]){m=A[k];A[k]=A[k+1];A[k+1]=m;}}SXF10.txt#include<stdio.h>void main(){int i,A[10];void sort(int A[],int n);for(i=0;i<10;i++)scanf("%d",&A[i]);sort(A,10);for(i=0;i<10;i++)printf("%d ",A[i]);}void sort(int A[],int n){int j,k,m;for(j=0;j<10;j++)for(k=0;k<9-j;k++)if(A[k]>A[k+1]){m=A[k];A[k]=A[k+1];A[k+1]=m;}}SXG02.txt#include<stdio.h>#include<string.h>void main(){void strcopy(char*s,char*d);char a[99],b[99],*p1,*p2;gets(a);p1=a;p2=b;strcopy(p1,p2);puts(b);}void strcopy(char*s,char*d){while (*s!='\0'){*d=*s;*s++;*d++;}*d='\0';}SXG03.txt#include<stdio.h>#include<string.h>void main(){int str_cmp(char *d,char *s);void str_cat(char *d,char *s);char a[100],b[100];int c;gets(a);gets(b);c=str_cmp(a,b);if (c>=0)puts(a);else puts(b);str_cat(a,b);puts(a);}int str_cmp(char *d,char *s){while (*d==*s){if (*d=='\0')return 0;d++;s++;}return(*d-*s);}void str_cat(char *d,char *s){while (*d!='\0')d++;while (*s!='\0'){*d=*s;d++;s++;}*d='\0';}SXG05.txt#include<stdio.h>void main(){char str1[1000],*p1=str1;int a[1000],*p2=a,ks=0,geshu=0;gets(str1);while(*p1++){if(ks==0&&*(p1-1)>='0'&&*(p1-1)<='9')ks=1;if(ks==1&&(*(p1-1)<'0'||*(p1-1)>'9'))ks=0;if(ks&&*(p1-1)>='0'&&*(p1-1)<='9')*p2++=*(p1-1)-'0';if(ks&&(*(p1-1)>='0'&&*(p1-1)<='9')&&(*p1<'0'||*p1>'9')){*p2++=10;geshu++;}if(*p1==0)*p2=*p1;}int i,l=p2-a-1;printf("%d\n",geshu);for(i=0;i<l;i++)a[i]==10? printf(" "):printf("%d",a[i]);}SXH01.txtcvoid main(){struct worker wrk1;scanf("%s%s%d%lf",&,&wrk1.id,&wrk1.wktim,&wrk1.wage);printf("姓名=%s 身份证号=%s 工龄=%d 工资=%.2lf",,wrk1.id,wrk1.wktim,wrk1.wage);}SXH05.txt#include<stdio.h>#include<string.h>void main(){struct student{char no[4];char name[9];double english;double math;}stu[5],t;int i,j;for(i=0;i<=4;i++)scanf("%s %s %lf %lf",&stu[i].no,&stu[i].name,&stu[i].english,&stu[i].math);for(i=0;i<=4;i++)for(j=i+1;j<=4;j++)if (strcmp(stu[i].name,stu[j].name)>0){t=stu[i];stu[i]=stu[j];stu[j]=t;}else if (strcmp(stu[i].name,stu[j].name)==0)if (stu[i].english>stu[j].english){t=stu[i];stu[i]=stu[j];stu[j]=t;}else if (stu[i].english==stu[j].english)if (stu[i].math>stu[j].math){t=stu[i];stu[i]=stu[j];stu[j]=t;}for(i=0;i<=4;i++)printf("%s %s %.0lf %.0lf\n",stu[i].no,stu[i].name,stu[i].english,stu[i].math);}SXK01.txt#include<stdio.h>void main(){struct STU{struct STU *next;int num;}stu[5];int a[]={101,103,105,107,109};int *p1=a;struct STU *p2=stu;for(int i=0;i<5;i++){stu[i].num=*p1++;stu[i].next=&stu[i+1];}stu[i-1].next=NULL;while(p2->next){printf("%d ",p2->num);p2=p2->next;}printf("%d",p2->num);}SXK02.txt/*题号SXK02文件名SXK02.CPP截止日期期末考试前提交有效试题内容在[SXK01]题基础上,新增加一个职工的数据,按职工号的顺序插入链表,新插入的职工号为106。
西工大20春《C语言程序设计》在线作业参考答案
![西工大20春《C语言程序设计》在线作业参考答案](https://img.taocdn.com/s3/m/94df8a85a5e9856a57126086.png)
B.4,2
C.2,4
D.2,2
答案:C
29.{图}
1
A.62,75
B.56,70
C.40,0
D.0,0
答案:C
30.以下函数定义首部形式正确的是()。
A.double fun(int x;int y)
B.double fun(int x.int y);
C.double fun(int x,y)
A.=
B./
C.*
D.%
答案:D
4.{图}1
A.stutype是用户定义的结构体类型名
B.struct是结构体类型的关键字
C.struct stu是用户定义的结构体类型
D.a和b都是结构体成员名
答案:A
5.{图}
1
A.D
B.C
C.B
D.A
答案:C
6.{图}
1
A.语句void prt_char();有错,它是函数调用语句,不能用void说明
C.数值运算算法
D.形式运算
答案:AC
39.C程序注释是由( )所界定的文字信息组成的。
A./*
B.*/
C.&
D.#
答案:AB
40.函数体一般包括( )两部分。
A.操作
B.执行
C.形式
D.声明
答案:BD
以下内容不需要的请自行删除
德国企业是欧洲企业的代表
1.企业培训。德国企业培训的突出特点是注重能力的培养,解决实际存在的问题。通过探讨和实验寻求解决问题的最佳途径和方法,给每个员工充分的自由发挥的空间,极大地调动了他们的积极性,也大大地提高了参训学员的素质和解决问题的能力。德国企业培训工作还有一个十分重要的任务,就是让员工认同企业的价值观。
西工大C语言POJ作业介绍
![西工大C语言POJ作业介绍](https://img.taocdn.com/s3/m/c6f50c43227916888486d782.png)
T041.冒泡排序#include <>#include <>void BubbleSort(int a[],int s,int m) {int t,i,j;for(i=0;i<m-1;i++){for(j=s;j<s+m-i-1;j++)if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}int main(){int n,A[100],i,s,m;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&A[i]);scanf("%d%d",&s,&m);BubbleSort(A,s,m);for(i=0;i<n;i++)printf("%d ",A[i]);printf("\n");return 0;}T042.二分查找#include <>int binsearch(int val[], int num, int value) {int start = 0;int end = num - 1;int mid = (start + end)/2;while(val[mid] != value && start < end) {if (val[mid] > value)end = mid - 1;else if (val[mid] < value)start = mid + 1;mid = ( start + end )/2;}if (val[mid] == value) return mid;elsereturn -1;}int main(){int a[100],i,n,b;int r;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]); scanf("%d",&b);r = binsearch(a, n, b); if (r < 0)printf("NULL");elseprintf("%d\n",r);}T043.左上角#include <>#define N 9int main(){int a[N][N];int n=3,i,j;scanf("%d",&n);for(i=0;i<n*n;i++){scanf("%d",&a[i/n][i%n]); }for(i=0;i<n;i++){for(j=0;j<n;j++) {if(j>n-i-1){printf(" ");}elseprintf("%2d",a[i][j]); }printf("\n");}}T044.右上角#include <>#define N 9int main(){int a[N][N];int n=3,i,j;scanf("%d",&n);for(i=0;i<n*n;i++){scanf("%d",&a[i/n][i%n]); }for(i=0;i<n;i++){for(j=0;j<n;j++){if(j<i){printf(" ");}elseprintf("%2d",a[i][j]);}printf("\n");}}(2)#include<>#include<>void main(){int i,j,n,**a;scanf("%d",&n);a=(int **)malloc(sizeof(int)*n*n); for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",a+i*n+j);for(i=0;i<n;i++){for(j=0;j<n;j++)if(i>j)printf(" ");elseprintf("%2d",*(a+i*n+j)); printf("\n");}}T045.一位数组加法#include <>#include <>int main(){int A[100],B[100],C[100],i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&A[i]);for(i=0;i<n;i++)scanf("%d",&B[i]);for(i=0;i<n;i++){C[i]=A[i]+B[i];printf("%d ",C[i]);}return 0;}T046.边沿与内芯的差#include<>int main(){int a[100][100];int n,m,i,j;int s1=0,s2=0,s=0;scanf("%d%d",&n,&m);for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%d",&a[i][j]);for(i=0;i<m;i++)s1=s1+a[0][i]+a[n-1][i];for(i=1;i<n-1;i++)s1=s1+a[i][0]+a[i][m-1];for(i=1;i<n-1;i++)for(j=1;j<m-1;j++)s2+=a[i][j];s=s1-s2;printf("%d",s);return 0;}T047.右下角#include <>#define N 9int main(){int a[N][N];int n=3,i,j;scanf("%d",&n);for(i=0;i<n*n;i++){scanf("%d",&a[i/n][i%n]); }for(i=0;i<n;i++){for(j=0;j<n;j++){if(j<n-i-1){printf(" ");}elseprintf("%2d",a[i][j]);}printf("\n");}}T048.左下角#include <>#define N 9int main(){int a[N][N];int n=3,i,j;scanf("%d",&n);for(i=0;i<n*n;i++){scanf("%d",&a[i/n][i%n]); }for(i=0;i<n;i++){for(j=0;j<n;j++){if(j>i){printf(" ");}elseprintf("%2d",a[i][j]); }printf("\n");}}T049.山迪的麻烦#include <>#include <>int main(){int a[100],i,j,n,t,j1=0,j2=0;scanf("%d",&n);for(i=0;i<=n-1;i++)scanf("%d",&a[i]);for(i=0;i<=n-1;i++)for(j=0;j<=n-1-i-1;j++)if(a[j]>a[j+1])t=a[j+1],a[j+1]=a[j],a[j]=t,j1++;for(i=0;i<=n-1;i++)for(j=0;j<=n-1-i-1;j++)if(a[j]<a[j+1])t=a[j+1],a[j+1]=a[j],a[j]=t,j2++;printf("%d",j1<j2?j1:j2);return 0;}T050.恐怖水母#include <>#include <>void f(int A[],int n){int i,j,t;for(j=0;j<n-1;j++)for(i=0;i<n-1-j;i++)if(A[i]>A[i+1])t=A[i],A[i]=A[i+1],A[i+1]=t;}int main(){int n,m,a[100],b[100],c[100],i,j,k=0,s=0;scanf("%d %d",&n,&m);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<m;i++)scanf("%d",&b[i]);f(a,n);f(b,m);for(i=0;i<n;i++){for(j=k;j<m;j++){if(a[i]<=b[j]){c[i]=b[j];k=j+i;break;}}}for(i=0;i<n;i++)s=s+c[i];printf("%d\n",s);return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int i; ArcNode* p; printf("\nCheck the Graph!\n"); printf("No\tdata\tnext\tnext\t.....\n"); for(i=0; i<pag->vexnum; i++) {
ag.arcnum = i;
printf("\n 初始化图的边,结点从 0 开始计,最大为%d\n",n-1); for(i=1; i<=ag.arcnum; i++) {
while(1) {
printf("第<%d>条边的起点: ",i); fflush(stdin); scanf("%d",&start);
m = (n-2)*(n+1)/2+1;
while(1) {
printf("请输入边的数量: "); fflush(stdin); scanf("%d",&i);
if(i<=m && i>=0) break; else printf("\n 请注意边的数量不能大于%d,并且不能小于 1!\n",m); }
所有节点都搜索到了之后才向下一层搜索。
四、实验步骤 1.建立图的存储结构; 2.输入图的基本接点与信息,初始化图; 3.编写图的深度优先搜索(DFS)和广度优先搜索算法(BFS)程序; 4.采用菜单形式进行显示与选择。 5.测试数据和结果显示 (1)从键盘输入顶点数和边数; (2)输入顶点信息; (3)输入边的信息,以(a,b)的形式输入边的信息,构建一个无向图; (4)对此无向图进行深度优先搜索和广度优先搜索,并输出正确的序列。
char cData; ArcNode* firstarc; }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct { AdjList vertices; int vexnum; int arcnum; }ALGraph; typedef struct LinkNode{ ArcNode* parc; struct LinkNode* next; }LinkNode;
return 1; } void DFS(ALGraph ag,int start) {
LinkNode* Stack = (LinkNode*)malloc(sizeof(LinkNode)); LinkNode* pStack = (LinkNode*)malloc(sizeof(LinkNode)); LinkNode* temp; ArcNode* p; int i; if(!pStack||!Stack)
课程名称 实验项目
实验报告 数据结构 实现深度优先搜索与广度优先搜索算法
一、实验目的 1、通过本实验,掌握图,无向图的基本概念,掌握图的遍历; 2、掌握图的深度优先搜索(DFS)与广度优先搜索(BFS)算法。
二、实验内容 1、建立图的存储方式; 2、图的深度优先搜索算法; 3、图的广度优先搜索算法。
{
if(!Visited[i])
printf(" %c ",ag.vertices[i].cData);
p = ag.vertices[i].firstarc;
}
if(i = ag.vexnum)
break;
}
printf("\n\n");
}
void main()
{
ALGraph ag;
int i,n,m;
return; Stack->next=NULL; p=ag.vertices[start].firstarc; Visited[start]=1; printf("\n 输出深度优先遍历顺序:"); printf(" %c ",ag.vertices[start].cData); while(1) {
五、程序源代码及注释
#include<stdio.h> #include<malloc.h> #include<windows.h> #define MAX_VERTEX_NUM 20 typedef struct ArcNode{
int adjvex;
struct ArcNode* nextarc; }ArcNode; typedef struct VNode{
last->next = pQueue;
last = last->next;
}
p = p->nextarc;
}
temp = Queue->next;
p = ag.vertices[temp->parc->adjvex].firstarc;
Queue ->next = temp->next;
}
for(i=0; i<ag.vexnum; i++)
Visited[start] = 1;
while(1)
{
pQueue->parc = p;
Queue->next = pQueue;
pQueue->next = NULL;
last = pQueue;
while(p && Queue->next)
{
while(p)
{
if(!Visited[p->adjvex])
DFS(ag,choose);
i = 0; while(Visited[i]!='\0') {
arcNodes->nextarc = pag->vertices[start].firstarc; pag->vertices[start].firstarc = arcNodes; } else{ while(p->nextarc) p = p->nextarc; p->nextarc = arcNodes; arcNodes->nextarc = NULL; } arcNodee->adjvex = start; p = pag->vertices[end].firstarc; if(!p) { arcNodee->nextarc = pag->vertices[end].firstarc; pag->vertices[end].firstarc = arcNodee; } else{ while(p->nextarc) p = p->nextarc; p->nextarc = arcNodee; arcNodee->nextarc = NULL; }
printf("%d\t%c\t",i,pag->vertices[i].cData); p = pag->vertices[i].firstarc; while(p) {
printf("%d\t",p->adjvex); p = p->nextarc; } printf("\n"); } return 1; } int CreateGraph(ALGraph* pag,int start,int end) { ArcNode* arcNodes = (ArcNode*)malloc(sizeof(ArcNode)); ArcNode* arcNodee = (ArcNode*)malloc(sizeof(ArcNode)); ArcNode* p; if(!arcNodes || !arcNodee) return 0; arcNodes->adjvex = end; p = pag->vertices[start].firstarc; if(!p) {
{
LinkNode* Queue = (LinkNode*)malloc(sizeof(LinkNode));
LinkNode* pQueue = (LinkNode*)malloc(sizeof(LinkNode));
LinkNode* temp;
LinkNode* last;
ArcNode* p;
pStack->parc = p; pStack->next = Stack->next; Stack->next = pStack; while(p && (Stack->next)) {
while(p) {
if(Visited[p->adjvex]) p=p->nextarc;
else
{
Visited[p->adjvex]=1;
int choose;
int start,end;
while(1)
{
printf("请输入图的结点个数,并回车: ");
scanf("%d",&n);
if(n<MAX_VERTEX_NUM && n>0)
break; else printf("\n 请注意结点个数不能大于 20,并且不能为 0!\n"); }
ag.vexnum = n;
printf("\n 初始化图的结点,输入字符并回车:\n"); for(i=0; i<ag.vexnum; i++) {
printf("No.%d = ",i); fflush(stdin); scanf("%c",&ag.vertices[i].cData); ag.vertices[i].firstarc = NULL; }