云南大学软件学院C语言知识所有实验代码.

合集下载

云南大学2014年在职工程硕士GCT招生简章——学苑教育

云南大学2014年在职工程硕士GCT招生简章——学苑教育
1
联系电话 信息学院:65033740
软件学院:65031610 城建学院:65031679 化学科学与工程学院: 65031119 生命科学学院: 65033728 发展研究院:65033771 软件学院:65035000
自定
软件工程940100
网址:
2、示范性软件学院软件工程领域工程硕士 2014年7月31日前国民教育序列大学本科或本科以上毕业并取得毕业证书(一般应有学 位证书) 。 四、报名办法 全国联考报名工作采用全国统一网上报名与各考区现场确认相结合的方式。 所有报名考 生应在规定的期限内进行网上报名和现场确认,逾期不予办理。只完成网上报名,但未在规 定时间内办理现场确认手续的,本次考试报名无效,所缴报名考试费不予退还。考生现场签 字确认后的信息,须由考生本人负责,一律不得更改。 1.网上报名 网上报名时间:2014年6月20日至7月10日。 网上报名网址:/zzlk/index.html 考生在规定的时间内,登录“中国学位与研究生教育信息网” (简称“学位网” ) ,按网 站说明和要求注册填写并提交报名信息、 上传本人电子照片 (该电子照片将在 《报名登记表》 、 《资格审查表》 、准考证、成绩单上使用) ,网上缴纳报名考试费,考生网上报名成功后, 打 印报名系统生成的《2014年在职人员攻读硕士学位报名登记表》 2.现场确认 现场确认时间:2014年7月11日至7月14日。 现场确认地点: 云南大学校本部南学楼一楼。 省外欲报考云南大学的考生现场确认地点 可向所在地省学位办查询。 现场确认时考生须携带材料:学历、学位证书、二代身份证原件和《2014年在职人员攻 读硕士学位报名登记表》 。 考生到现场确认点核验并确认报名信息,报名信息经考生签字确认后,一律不得更改。
3

密码技术实验报告

密码技术实验报告
m=65;
if(miyue[j%len_miyue]>='A' && miyue[j%len_miyue]<='Z'){
miyue[j%len_miyue]=miyue[j%len_miyue]+32;//密钥改为小写
}
}
else if(miwen[i]>='A' && miwen[i]<='Z'){//大写转小写
Calls:strlen();//判断密文长度,密钥长度;puts();//输出明文,getchar();//接受回车
Called By:intmain()//主函数调用
Input(type):miwen[100],char型
Output(type):mingwen[100],char型
Others:密钥大小写不敏感
void decrypt(char[],char[],char[]);
int main()
{
int caozuo;
char mingwen[100]="0";
char miwen[100]="0";
char miyue[100]="0";
printf("请选择加/解密操作:1加密,2解密:");
scanf("%d",&caozuo);
{
int i,j,n,m,len_miyue,len_miwen;
j=0;
len_miyue= strlen(miyue);
len_miwen= strlen(miwen);
for(i=0;i<len_miwen;i++)

实验报告

实验报告

云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:C程序的运行环境和运行C程序的方法实验编号:1 实验日期:2012- 3-21 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的掌握C语言数据类型、运算符和表达式的运算规律二、实验内容例3.1—3.7三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:数据类型、运算符和简单的输入输出实验编号:2 实验日期:2012- 3-28 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:最简单的C程序设计——顺序结构程序设计、数据类型、运算符和表达式选择结构(if语句)程序设计实验实验编号:3 实验日期: 2012-4-11 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:选择结构程序设计实验实验编号:4 实验日期: 2012-4-18 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:循环控制程序设计实验(1)实验编号:5 实验日期: 2012-4-25 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:循环控制程序设计实验(2)实验编号:6 实验日期: 2012-5-2 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:一维数组数组程序设计实验实验编号:8 实验日期: 2012-5-9 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:二维数组、字符数组程序设计实验实验编号:9 实验日期: 2012-5-16 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:函数程序设计实验(1)实验编号:9 实验日期: 2012-5-23 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:函数程序设计实验(2)实验编号:10 实验日期: 2012-5-30 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:函数程序设计实验(3)实验编号:11 实验日期: 2012-6-6 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:指针程序设计实验(1)实验编号:12 实验日期: 2012-6-13 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:用户自己建立数据类型实验实验编号:13 实验日期: 2012-6-20 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结云南大学数学与统计学实验教学中心实验报告课程名称:计算机基础(二)学期: 2012春上机实践成绩:指导教师:杨宗文学生姓名:学生学号:实验名称:文件操作实验实验编号:14 实验日期:2012-6-27 实验学时:2学时学院:物理科学与技术学院专业:数理基础科学年级: 2011级一、实验目的二、实验内容三、使用环境VISUAL C++ 6.0四、调试过程五、总结。

云南大学 软件学院 C语言实验 米粒问题

云南大学  软件学院  C语言实验  米粒问题

/*米粒问题*/#include <stdio.h>int main(){int a=1,i,sum=0;printf("Input a number :%d",i);scanf("%d",&i);if(i<=64){sum=sum+a;a=a*2;}printf("The total mnube is:%d\n",sum);return 0;}/*乘法口诀表*/#include <stdio.h>long a=10000,b,c=2800,d,e,f[2801],g;int main(){ for(;b-c;)f[b++]=a/5;for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b); return 0; }/*利润问题*/#include<stdio.h>int main(){int elery,extra;float a;printf("please input the elery:");scanf("%d",&elery);a=(elery-1)/100000;switch(a){case 0:extra=elery*10/100;printf("The extra is %f",extra);}return 0;}/*奖学金问题*/#include <stdio.h>int main(){int a;float profit,income;printf("Please input the profit:");scanf("%f",&profit);a=(profit-1)/100000;switch(a){case 0:income=profit/10;break;case 1:income=(profit-100000)*0.075+10000;break;case 2:case 3:income=(profit-200000)*0.05+10000+7500; break;case 4:case 5:income=(profit-400000)*0.03+10000+7500+10000;break;case 6:case 7:case 8:case 9:income=(profit-600000)*0.01+10000+7500+10000+6000;break;case 10:income=(profit-1000000)*0.01+10000+7500+10000+6000+6000;}printf("奖金数值为:%f\n",income);return 0;}/*星星问题*/(暂时还有问题)#include <stdio.h>int main(){int x,y,z;printf("Input a number:”);scanf("%d",&z);for(x=1;x<=z;x++){for(y=1;y<=z;y++){if((z-1)/2+x-y>=0&&x-y-(z-1)/2<=0&&x+y -(z-1)/2>=0&&x+y-(3*z-1)/2<=0)printf("*");elseprintf(" ");}printf("\n");}return 0;}if((z-1)/2+x-y>=0&&x-y-(z-1)/2<=0&&x+y-(z+3)/2>=0&&x+y-(3*z+1)/2<=0)修改为下面换算问题#include <stdio.h>int main(){i nt a,b,c,day;p rintf("Please input three numbers:");s canf("%d%d%d",&a,&b,&c);b<=12;c<=31;d ay=365*a+30*b+c;p rintf("天数为:%d",day);r eturn 0;}#include <stdio.h>int main(){int a,b,c,day;printf("Input three numbers:");scanf("%d%d%d",&a,&b,&c);if(a%4==0||a%100!=0||a%400==0) {if(c<=31)switch(b){case 1:day=c;break;case 3:day=60+c;break;case 5:day=121+c;break;case 7:day=182+c;break;case 8:day=213+c;break;case 10:day=274+c;break;case 12:day=335+c;break;}switch(b){if(c<=30)case 4:day=91+c;break;case 6:day=152+c;break;case 9:day=244+c;break;case 11:day=305+c;break;}switch(b){if(c<=28)case 2:day=31+c;}}printf("The day is %d",day);return 0;}#include <stdio.h>int digui(int n){}int main(){int n;scanf("%d",&n);printf("%d\n",digui(n));return 0;}。

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)大学大一C语言程序设计实验室上机题全部代码答案(实验报告)实验目的:本实验旨在让大一学生通过实际操作掌握C语言的基本语法和常见程序设计题型,提高编程能力。

实验要求:1. 学生需要在实验室中完成上机题,并编写相应的代码。

2. 要求代码具有良好的结构和规范,能够正确运行,并符合题目要求。

3. 学生需要记录代码的思路和过程,并在实验报告中进行详细说明。

实验过程:本次实验共包括以下几个上机题,分别是:1. 题目:输入两个整数,计算它们的和。

实现思路:- 首先,定义两个整型变量a和b,用来保存输入的两个整数。

- 然后,使用scanf函数分别读取两个整数的值。

- 接下来,定义一个整型变量sum,用来保存两个整数的和。

- 使用sum = a + b计算两个整数的和。

- 最后,使用printf函数将结果输出到屏幕上。

2. 题目:输入一个整数n,计算1到n之间所有整数的和。

实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。

- 然后,使用scanf函数读取整数n的值。

- 接下来,定义一个整型变量sum,用来保存1到n之间所有整数的和。

- 使用for循环语句,从1循环到n,累加每个整数的值。

- 最后,使用printf函数将结果输出到屏幕上。

3. 题目:输入一个整数n,判断它是否是质数。

实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。

- 然后,使用scanf函数读取整数n的值。

- 接下来,定义一个布尔型变量isPrime,用来保存n是否是质数的判断结果。

- 使用for循环语句,从2循环到n-1,判断n是否能被其中任意一个整数整除。

- 如果n能被任意一个整数整除,则将isPrime设为假;否则,将isPrime设为真。

- 最后,根据isPrime的值,使用printf函数输出相应的判断结果。

4. 题目:输入一个正整数n,输出n的所有因子。

实现思路:- 首先,定义一个整型变量n,用来保存输入的正整数。

C语言代码大全

C语言代码大全

------------------------------------------------------------------------摘自宋鲁生程序设计大赛乘法口诀表#include <stdio.h>#include <conio.h>void main(void){int i,j,x,y;clrscr();printf("\n\n * * * 乘法口诀表* * * \n\n");x=9;y=5;for(i=1;i<=9;i++){gotoxy(x,y);printf("%2d ",i);x+=3;}x=7;y=6;for(i=1;i<=9;i++){gotoxy(x,y);printf("%2d ",i);y++;}x=9;y= 6;for(i=1;i<=9;i++){for(j=1;j<=9;j++){gotoxy(x,y);printf("%2d ",i*j);y++;}y-=9;x+=3;}printf("\n\n");}用一维数组统计学生成绩#include <stdio.h>void main(){char SelectKey,CreditMoney,DebitMoney;while(1){do{clrscr();puts("=========================");puts("| Please select key: |");puts("| 1. Quary |");puts("| 2. Credit |");puts("| 3. Debit |");puts("| 4. Return |");puts("=========================");SelectKey = getch();}while( SelectKey!='1' && SelectKey!='2' && SelectKey!='3' &&SelectKey!='4' );switch(SelectKey){case '1':clrscr();puts("================================");puts("| Your balance is $1000. |");puts("| Press any key to return... |");puts("================================");getch();break;case '2':do{clrscr();puts("==================================");puts("| Please select Credit money: |");puts("| 1. $50 |");puts("| 2. $100 |");puts("| 3. Return |");puts("==================================");CreditMoney = getch();}while( CreditMoney!='1' && CreditMoney!='2' && CreditMoney!='3' );switch(CreditMoney){case '1':clrscr();puts("=========================================");puts("| Your Credit money is $50,Thank you! |");puts("| Press any key to return... |");puts("=========================================");getch();break;case '2':clrscr();puts("==========================================");puts("| Your Credit money is $100,Thank you! |");puts("| Press any key to return... |");puts("==========================================");getch();break;case '3':break;}break;case '3':do{clrscr();puts("====================================");puts("| Please select Debit money: |");puts("| 1. $50 |");puts("| 2. $100 |");puts("| 3. $500 |");puts("| 4. $1000 |");puts("| 5. Return |");puts("====================================");DebitMoney = getch();}while( DebitMoney!='1' && DebitMoney!='2' && DebitMoney!='3' &&DebitMoney!='4' && DebitMoney!='5' );switch(DebitMoney){case '1':clrscr();puts("===========================================");puts("| Your Debit money is $50,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '2':clrscr();puts("===========================================");puts("| Your Debit money is $100,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '3':clrscr();puts("===========================================");puts("| Your Debit money is $500,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '4':clrscr();puts("===========================================");puts("| Your Debit money is $1000,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '5':break;}break;case '4':clrscr();puts("================================");puts("| Thank you for your using! |");puts("| Good bye! |");puts("================================");return;}}模拟ATM(自动柜员机)界面#include <stdio.h> void main(){int Password=0,Number=0,price=58,i=0;while( Password != 1234 ){if( i >= 3 )return;i++;puts("Please input Password: ");scanf("%d",&Password);}i=0;while( Number!=price ){do{puts("Please input a number between 1 and 100: ");scanf("%d",&Number);printf("Your input number is %d\n",Number);}while( !(Number>=1 && Number<=100) );if( Number >= 90 ){printf("Too Bigger! Press any key to try again!\n");}else if( Number >= 70 && Number < 90 ){printf("Bigger!\n");}else if( Number >= 1 && Number <= 30 ){printf("Too Small! Press any key to try again!\n");}else if( Number > 30 && Number <= 50 ){printf("Small! Press any key to try again!\n");}else{if( Number == price ){printf("OK! You are right! Bye Bye!\n");}else if( Number < price ){printf("Sorry,Only a little smaller! Press any key to try again!\n");}else if( Number > price ){printf(" Sorry, Only a little bigger! Press any key to try again!\n");}getch();}}用二维数组实现矩阵转置/* 用二维数组实现矩阵的转置*/#include <stdio.h>#define ROW 3#define COL 4main(){int matrixA[ROW][COL],matrixB[COL][ROW];int i,j; clrscr();printf("Enter elements of the matrixA,");printf("%d*%d:\n",ROW,COL);for( i=0; i<ROW; i++ ){for( j=0; j<COL; j++ ){scanf("%d",&matrixA[i][j]);}}for( i=0; i<ROW; i++ ){for( j=0; j<COL; j++ ){matrixB[j][i] = matrixA[i][j];}}printf("MatrixB,");printf("%d*%d:\n",COL,ROW);for( i=0; i<COL; i++ ){for( j=0; j<ROW; j++ ){printf("%8d",matrixB[i][j]);}printf("\n");}printf("\n Press Any Key to Quit... \n");getch();}求解二维数组的最大/最小元素#define MAXN 20int a[MAXN][MAXN];main(){int min, /* 存储最小值*/max; /* 存储最大值*/int row,col,n;clrscr();printf("Please input the order of the matrix:\n");/* 输入方阵的阶次*/ scanf("%d",&n);printf("Please input the elements of the matrix,\n from a[0][0] to a[%d][%d]:\n",n-1,n-1);for(row=0;row<n;row++)for(col=0;col<n;col++)scanf("%d",&a[row][col]);for(min=a[0][0],row=0;row<n;row++){/* 从每行选出最大数*/for(max=a[row][0],col=1;col<n;col++)/*从row行选出最大数*/if(max<a[row][col])max=a[row][col];if(min>max)/* 保存至row行的最小数*/min=max;}printf("The minimum of maximum number is %d\n",min);for(max=a[0][0],row=0;row<n;row++){/* 每行选出最小数*/for(min=a[row][0],col=1;col<n;col++)/* 从row行选出最小数*/ if(min>a[row][col])min=a[row][col];if(max<min)/*保存至row行的最大数*/max=min;}printf("The maximum of minimum numbers is %d\n",max);printf("\nPress any key to quit...\n");getch();}利用数组求前n个质数#define N 50main(){int primes[N];int pc,m,k; clrscr();printf("\n The first %d prime numbers are:\n",N);primes[0]=2;/*2是第一个质数*/pc =1;/*已有第一个质数*/m =3;/*被测试的数从3开始*/while(pc<N){/*调整m使它为下一个质数*/k=0;while(primes[k]*primes[k]<=m)if(m%primes[k]==0){/*m是合数*/m+=2;/*让m取下一个奇数*/k=1;/*不必用primes[0]=2去测试m,所以k从一开始*/}elsek++;/*继续用下一个质数去测试*/primes[pc++]=m;m+=2;/*除2外,其余质数均是奇数*/}/*输出primes[0]至primes[pc-1]*/for(k=0;k<pc;k++)printf("%4d",primes[k]);printf("\n\n Press any key to quit...\n ");getch();}编制万年历#include "stdio.h"long int f(int year,int month){/*f(年,月)=年-1,如月<3;否则,f(年,月)=年*/if(month<3) return year-1;else return year;} long int g(int month){/*g(月)=月+13,如月<3;否则,g(月)=月+1*/if(month<3) return month+13;else return month+1;} long int n(int year,int month,int day){/*N=1461*f(年、月)/4+153*g(月)/5+日*/return 1461L*f(year,month)/4+153L*g(month)/5+day;} int w(int year,int month,int day){/*w=(N-621049)%7(0<=w<7)*/return(int)((n(year,month,day)%7-621049L%7+7)%7);} int date[12][6][7];int day_tbl[ ][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};main(){int sw,leap,i,j,k,wd,day;int year;/*年*/char title[]="SUN MON TUE WED THU FRI SAT";clrscr();printf("Please input the year whose calendar you want to know: ");/*输入年*/scanf("%d%*c",&year);/*输入年份值和掠过值后的回车*/sw=w(year,1,1);leap=year%4==0&&year%100||year%400==0;/*判闰年*/for(i=0;i<12;i++)for(j=0;j<6;j++)for(k=0;k<7;k++)date[i][j][k]=0;/*日期表置0*/for(i=0;i<12;i++)/*一年十二个月*/for(wd=0,day=1;day<=day_tbl[leap][i];day++){/*将第i+1月的日期填入日期表*/date[i][wd][sw]=day;sw=++sw%7;/*每星期七天,以0至6计数*/if(sw==0) wd++;/*日期表每七天一行,星期天开始新的一行*/} printf("\n|==================The Calendar of Year %d=====================|\n|",year);for(i=0;i<6;i++){/*先测算第i+1月和第i+7月的最大星期数*/for(wd=0,k=0;k<7;k++)/*日期表的第六行有日期,则wd!=0*/wd+=date[i][5][k]+date[i+6][5][k];wd=wd?6:5;printf("%2d %s %2d %s |\n|",i+1,title,i+7,title);for(j=0;j<wd;j++){printf(" ");/*输出四个空白符*//*左栏为第i+1月,右栏为第i+7月*/for(k=0;k<7;k++)if(date[i][j][k])printf("%4d",date[i][j][k]);else printf(" ");printf(" ");/*输出十个空白符*/for(k=0;k<7;k++)if(date[i+6][j][k])printf("%4d",date[i+6][j][k]);else printf(" ");printf(" |\n|");}/*scanf("%*c");/*键入回车输出下一个月的日历*/}puts("=================================================================|") ;puts("\n Press any key to quit...");getch();}对数组元素排序rest(int a[], int n){int i,low,high,t; for(i=0,low=0,high=n-1;i<=high;) {if(a[i]>0){/*a[i]与a[high]交换,随之high减1*/t=a[i];a[i]=a[high];a[high]=t;high--;}else if(a[i]==0)i++; /* 掠过该元素*/else{/*a[i]与a[low]交换,随之low增1, i增1*/t=a[i];a[i]=a[low];a[low]=t;low++;i++;}}}int s[]={8,4,0,-1,6,0,-5};main(){int i;clrscr();printf("\n The arry before rest is:\n");for(i=0;i<sizeof(s)/sizeof(s[0]);i++)printf("%4d",s[i]);rest(s,sizeof(s)/sizeof(s[0]));printf("\n The arry after rest is:\n");for(i=0;i<sizeof(s)/sizeof(s[0]);i++)printf("%4d",s[i]);printf("\n Press any key to quit...\n");getch();}任意进制数的转换/* 函数trans将无符号整数n翻译成d(2<=d<=16)进制表示的字符串s */ #define M sizeof(unsigned int)*8int trans(unsigned n, int d, char s[]){static char digits[] ="0123456789ABCDEF"; /* 十六进制数字的字符*/char buf[M+1];int j, i = M;if(d<2||d>16){s[0]='\0'; /* 不合理的进制,置s为空字符串*/return 0; /* 不合理的进制,函数返回0 */}buf[i]='\0';do{buf[--i]=digits[n%d]; /*译出最低位,对应字符存入对应工作数组中*/n/=d;}while(n);/* 将译出在工作数组中的字符串复制到s */for(j=0;(s[j]=buf[i])!='\0';j++,i++);/* 其中控制条件可简写成s[j]=buf[i] */return j;}/* 主函数用于测试函数trans() */main(){unsigned int num = 253;int scale[]={2,3,10,16,1};char str[33];int i;clrscr();for(i=0;i<sizeof(scale)/sizeof(scale[0]);i++){if(trans(num,scale[i],str))printf("%5d = %s(%d)\n",num,str,scale[i]);elseprintf("%5d => (%d) Error! \n",num,scale[i]);}printf("\n Press any key to quit...\n");getch();}判断回文数/* 函数circle用于判断正整数n的d进制数表示形式是否是回文数*/ int circle(int n, int d){int s=0,m=n;while(m){s=s*d+m%d;m/=d;}return s==n;}/* main函数用于测试circle函数*/int num[]={232,27,851};int scale[]={2,10,16};main(){int i,j;clrscr();for(i=0;i<sizeof(num)/sizeof(num[0]);i++)for(j=0;j<sizeof(scale)/sizeof(scale[0]);j++)if(circle(num[i],scale[j]))printf("%d -> (%d) is a Circle Number!\n",num[i],scale[j]);elseprintf("%d -> (%d) is not a Circle Number!\n",num[i],scale[j]);printf("\n Press any key to quit...\n");getch();}求解钢材切割的最佳订单#include <stdio.h>#define N 20#define DELTA 2int bestlen;int bestsele[N];int sele[N];int n;int orderlen[N];int total;main(){int i;clrscr();printf("\n Please enter total length of the steel:\n");/* 输入钢材总长*/scanf("%d",&total);printf("\n Please enter number of order:\n"); /* 输入定单数*/ scanf("%d",&n);printf("\n Please enter the orders:\n"); /* 输入各定单*/for(i=0;i<n;i++)scanf("%d",&orderlen[i]);bestlen=0; /*最佳解用料的初值*/for(i=0;i<n;i++)sele[i]=bestsele[i]=0; /*置当前选择和最佳选择初值*/try(); /* 调用函数求解*/for(i=0;i<n;i++) /* 输出结果*/if(bestsele[i])printf("order %d length = %d\n",i+1,orderlen[i]);printf("\n Press any key to quit...");getch();}try(){int i,len;for(len=i=0;i<n;i++) /* 求当前选中的用料量*/if(sele[i])len+=orderlen[i]+DELTA;if(len-DELTA<=total) /* 注意最后一段可能不需要切割*/{if(bestlen < len){/* 找到一个更好的解*/bestlen = len;for(i=0;i<n;i++)bestsele[i]=sele[i];}for(i=0;i<n;i++) /* 对所有未选定单逐一作选中尝试循环*/if(!sele[i]){sele[i]=1; /* 做选中尝试*/try();sele[i]=0;}}}指向数组的指针main(){int x,y,z; /* 定义三个int型变量*/int *xp = &x, /* 定义指针变量xp,并赋值为x的地址,使xp指向x */ *yp = &y, /* 定义指针变量yp,并赋值为y的地址,使yp指向y */*zp = &z; /* 定义指针变量zp,并赋值为z的地址,使zp指向z */int t;printf("\nPlease input x,y,z:\n");scanf("%d%d%d",xp,yp,zp); /* 通过变量的指针,为变量输入值*/ if(*xp>*yp) /* 通过指向变量的指针引用变量的值*/{t=*xp; /* 通过指向变量的指针引用变量的值*/*xp=*yp;/* 通过指向变量x的指针xp,引用变量x的值*/*yp=t; /* 通过指向变量y的指针yp,引用变量y的值*/}if(*xp>*zp) /* 通过指向变量的指针,引用变量的值*/{t=*xp; /* 通过指向变量x的指针xp,引用变量x的值*/*xp=*zp;/* 通过指向变量x的指针xp,引用变量x的值*/*zp=t; /* 通过指向变量z的指针zp,引用变量z的值*/}if(*yp>*zp) /* 通过指向变量的指针,引用变量的值*/{t=*yp; /* 通过指向变量的指针,引用变量的值*/*yp=*zp;/* 通过指向变量y的指针yp,引用变量y的值*/*zp=t;/* 通过指向变量z的指针zp,引用变量z的值*/}printf("x = %d\ty = %d\tz = %d\n",x,y,z);printf("\nPress any key to quit...\n");getch();}阿拉伯数字转换为罗马数字#include <stdio.h>#define ROWS 4#define COLS 4int nums[ROWS][COLS]={{1000,1000,1000,1000},{900,500,400,100},{90,50,40,10},{9,5,4,1}};char *roms[ROWS][COLS]={{"m","m","m","m"}, {"cm","d","cd","c"},{"xc","l","xl","x"},{"ix","v","iv","i"}}; main(int argc,char *argv[ ]){int low,high;char roman[25]; if(argc<2){ printf("Usage:roman decimal_number\n");/*运行程序需带整数参数*/}high=low=atoi(argv[1]);/*将第一个参数转换成整数*/checknum(low);if(argc>2){/*带两个参数*/high=atoi(argv[2]);checknum(high);if(low>high){low=high;high=atoi(argv[1]);}}elselow=1;for(;low<=high;low++){to_roman(low,roman);printf("%d\t%s\n",low,roman);}} checknum(int val)/*检查参数合理性*/{if(val<1||val>9999){printf("The number must be in range 1..9999.\n");exit(0);}}to_roman(int decimal,char roman[ ])/*将整数转换成罗马数字表示*/ {int power,index;roman[0]='\0';for(power=0;power<ROWS;power++)for(index=0;index<COLS;index++)while(decimal>=nums[power][index]){strcat(roman,roms[power][index]);decimal-=nums[power][index];}}通讯录的输入输出#include <stdio.h>#define ZIPLEN 10#define PHONLEN 15/*struct addr类型定义*/ struct addr{char *name;/*姓名*/char *address;/*地址*/char zip[ZIPLEN];/*邮政编码*/char phone[PHONLEN];/*电话号码*/}; main()/*本主函数示意上述输入输出函数的用法*/{struct addr p[100];int i,j;clrscr();for(i=0;readaddr(p+i);i++);for(j=0;j<i;j++) writeaddr(p+j);puts("\n Press any key to quit...");getch();} /* 函数readaddr用于输入一个通信录函数*/int readaddr(struct addr *dpt){int len;char buf[120];/*输入字符串的缓冲区*/ printf("\nPlease input theName:\n");/*输入姓名*/if(scanf("%s",buf)==1){len=strlen(buf);dpt->name=(char *)malloc(len+1);/*申请存贮姓名的空间*/ strcpy(dpt->name,buf);}else return 0;/*Ctrl+Z结束输入*/printf("Please input the Address:\n");/*输入地址*/if(scanf("%s",buf)==1){len=strlen(buf);dpt->address=(char *)malloc(len+1);/*申请存贮地址的空间*/ strcpy(dpt->address,buf);}else{/*Ctrl+Z结束输入*/free(dpt->name);/*释放存贮姓名的空间*/return 0;}printf("Please input the Zip code:\n");/*输入邮编*/if(scanf("%s",buf)==1)strncpy(dpt->zip,buf,ZIPLEN-1);else{free(dpt->name);/*释放存贮姓名的空间*/free(dpt->address);/*释放存贮地址的空间*/return 0;/*Ctrl+Z结束输入*/}printf("Please input the Phone number:\n");/*输入电话号码*/ if(scanf("%s",buf)==1)strncpy(dpt->phone,buf,PHONLEN-1);else{free(dpt->name);free(dpt->address);return 0;/*Ctrl+Z结束输入*/}return 1;} /* 函数writeaddr用于输出通讯录*/int writeaddr(struct addr*dpt){printf("Name : %s\n", dpt->name);/*输出姓名*/printf("Address : %s\n", dpt->address);/*输出地址*/printf("Zip : %s\n", dpt->zip);/*输出邮编*/printf("Phone : %s\n\n", dpt->phone);/*输出电话号码*/}扑克牌的结构表示enum suits{CLUBS,DIAMONDS,HEARTS,SPADES}; struct card{enum suits suit;char value[3];};struct card deck[52];char cardval[][3]= {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};char suitsname[][9]={"CLUBS","DIAMONDS","HEARTS","SPADES"}; main() {int i,j;enum suits s;clrscr();for(i=0;i<=12;i++)for(s=CLUBS;s<=SPADES;s++){j=i*4+s;deck[j].suit=s;strcpy(deck[j].value,cardval[i]);}for(j=0;j<52;j++)printf("(%s%3s)%c",suitsname[deck[j].suit],deck[j].value,j%4==3?'\n':'\t');puts("\nPress any key to quit...");getch();}用“结构”统计学生成绩#include <stdio.h>#define N 200#define SCORES 5#define NUMLEN 10struct std_type{char no[NUMLEN];/*学号*/char *name;/*名字符串指针*/int scores[SCORES];/*五门功课的成绩*/};struct std_type students[N];int order[N];int total[N]; /*[函数]输入一个学生信息函数*/int readastu(struct std_type *spt){int len,j;char buf[120];/*输入字符串的缓冲区*/ printf("\nNumber : ");/*输入学号*/if(scanf("%s",buf)==1)strncpy(spt->no,buf,NUMLEN-1);elsereturn 0;/*Ctrl+Z结束输入*/printf("Name : ");/*输入姓名*/if(scanf("%s",buf)==1){len=strlen(buf);spt->name=(char *)malloc(len+1);/*申请存贮姓名的空间*/ strcpy(spt->name,buf);}else return 0;/*Ctrl+Z结束输入*/printf("Scores : ");/*输入成绩*/for(j=0;j<SCORES;j++)if(scanf("%d",spt->scores+j)!=1)break;if(j==0)/*一个成绩也未输入*/{free(spt->name);/*释放存贮姓名的空间*/return 0;}for(;j<SCORES;j++)/*少数未输入的成绩用0分代之*/ spt->scores[j]=0;return 1;} /*[函数]输出一个学生信息的函数*/int writeastu(struct std_type *spt){int i; printf("Number : %s\n",spt->no);/*输出学号*/printf("Name : %s\n",spt->name);/*输出姓名*/printf("Scores : ");/*输出成绩*/for(i=0;i<SCORES;i++)printf("%4d",spt->scores[i]);printf("\n\n");} main(){int n,i,j,t; clrscr();for(n=0;readastu(students+n);n++);/*采用冒泡法对学生信息数组排序*/for(i=0;i<n;i++){order[i]=i;/*预置第i个输入的学生*/for(t=0,j=0;j<SCORES;j++)/*求第i个学生的总分*/t+=students[i].scores[j];total[i]=t;}/*冒泡排序*/for(i=0;i<n-1;i++)/*共扫视n-1遍*/for(j=0;j<n-1-i;j++)if(total[order[j]]<total[order[j+1]]){/*交换名次*/t=order[j];order[j]=order[j+1];order[j+1]=t;}for(j=0;j<n;j++)/*输出*/writeastu(students+order[j]);printf("\n Press any key to quit...\n");getch();}报数游戏#include <stdio.h>struct ele{int no;struct ele *link;}main(){int n,m,i;struct ele *h,*u,*p;clrscr();printf("Please input n&m:\n");scanf("%d%d",&n,&m);/*输入n和m*/h=u=(struct ele *)malloc(sizeof(struct ele));/*形成首表元*/ h->no=1;for(i=2;i<=n;i++)/*形成其余的n-1个表元*/{u->link=(struct ele *)malloc(sizeof(struct ele));u=u->link;u->no=i;/*第i个表元置编号i*/}u->link=h;/*末表元后继首表元,形成环*/puts("\nThe numbers of who will quit the cycle in turn are:"); while(n){for(i=1;i<m;i++)/*掠过m-1个表元*/u=u->link;p=u->link;/*p指向第m个表元*/u->link=p->link;/*第m个表元从环中脱钩*/printf("%4d",p->no);free(p);/*释放第m个表元占用的空间*/n--;}printf("\n\n Press any key to quit...\n");getch();}学生成绩管理程序/*学生成绩管理程序编制一个统计学生考试分数的管理程序。

C语言经典代码考试自用

C语言经典代码考试自用

C语言经典代码考试自用C语言是一种通用的高级程序设计语言,经常被用于系统软件和应用软件的开发。

在学习C语言的过程中,熟练掌握经典的代码是非常重要的。

本文将介绍一些C语言经典代码,希望对于C语言的学习和考试有所帮助。

1. Hello World程序Hello World程序是C语言学习的第一步,也是非常经典的代码。

它的目的是输出一行字符串"Hello World!"到屏幕上。

以下是Hello World程序的代码:```c#include <stdio.h>int main() {printf("Hello World!");return 0;}```2. 求两个整数的最大公约数最大公约数是指能同时整除两个数的最大正整数。

以下是求两个整数的最大公约数的代码:```c#include <stdio.h>int gcd(int a, int b) {if (b == 0) {return a;} else {return gcd(b, a % b);}}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数为:%d", gcd(num1, num2));return 0;}```3. 判断一个数是否为素数素数是只能被1和自身整除的数,大于1的自然数中除了2以外都是奇数。

以下是判断一个数是否为素数的代码:```c#include <stdio.h>#include <stdbool.h>bool isPrime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) { if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数", num);} else {printf("%d不是素数", num);}return 0;}```4. 查找数组中的最大元素以下是查找数组中的最大元素的代码:```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;int main() {int arr[] = {5, 2, 8, 10, 1};int n = sizeof(arr) / sizeof(arr[0]);printf("数组中的最大元素为:%d", findMax(arr, n));return 0;}```5. 根据用户输入的数字打印对应的星号图案以下是根据用户输入的数字打印对应的星号图案的代码:```c#include <stdio.h>void printPattern(int num) {for (int i = 1; i <= num; i++) {for (int j = 1; j <= i; j++) {printf("* ");}printf("\n");}int main() {int num;printf("请输入一个数字:");scanf("%d", &num);printPattern(num);return 0;}```以上是一些C语言经典代码的示例,涵盖了基本输入输出、循环、递归等常用语法和算法。

C语言代码大全

C语言代码大全

C语言代码大全C语言是一种高级程序设计语言,广泛应用于计算机科学和软件开发领域。

它以其简洁、高效的特点而备受青睐。

本文将为您介绍一些常用的C语言代码,包括输入输出、流程控制、函数调用、数据结构等方面的代码示例。

一、输入输出1. 标准输入输出```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("您输入的数字是:%d\n", num);return 0;}```2. 文件读写```cint main() {FILE *file;char str[100];// 写入文件file = fopen("data.txt", "w");fprintf(file, "Hello, World!");fclose(file);// 读取文件file = fopen("data.txt", "r");fscanf(file, "%s", str);printf("从文件中读取的内容是:%s\n", str); fclose(file);return 0;}```二、流程控制1. 条件语句```cint main() {int num = 10;if (num > 0) {printf("该数字是正数。

\n"); } else if (num < 0) {printf("该数字是负数。

\n"); } else {printf("该数字是零。

\n"); }return 0;}```2. 循环语句```c#include <stdio.h>int main() {int num = 5;// while循环while (num > 0) {printf("当前数字:%d\n", num); num--;}// for循环for (int i = 0; i < 5; i++) {printf("当前数字:%d\n", i);}// do-while循环do {printf("当前数字:%d\n", num); num++;} while (num < 5);return 0;}```三、函数调用```c#include <stdio.h>int add(int a, int b) {return a + b;}int main() {int num1 = 5;int num2 = 3;int result = add(num1, num2);printf("两个数的和为:%d\n", result); return 0;}```四、数据结构1. 数组```c#include <stdio.h>int main() {int arr[5] = {1, 2, 3, 4, 5};for (int i = 0; i < 5; i++) {printf("数组元素:%d\n", arr[i]); }return 0;}```2. 结构体```c#include <stdio.h>struct Student {char name[20];int age;};int main() {struct Student stu1;strcpy(, "Tom");stu1.age = 18;printf("学生姓名:%s\n", ); printf("学生年龄:%d\n", stu1.age); return 0;}```以上只是C语言代码中的一小部分示例,C语言是一门非常庞大的编程语言,拥有众多的功能和特性。

c语言代码大全

c语言代码大全

c语言代码大全C语言代码大全。

C语言作为一种通用的高级语言,被广泛应用于系统程序设计和应用程序开发。

它具有高效的系统编程能力和灵活的应用程序编程能力,因此备受程序员们的喜爱。

在本文中,我们将为您介绍一些常见的C语言代码,帮助您更好地理解和运用C语言。

首先,让我们来看一个简单的C语言程序示例:```c。

#include <stdio.h>。

int main() {。

printf("Hello, World!\n");return 0;}。

```。

在这个示例中,我们使用了`#include`指令来包含标准输入输出库文件`stdio.h`,然后定义了一个`main`函数,函数内部使用`printf`函数打印了一条简单的消息,并通过`return 0`语句返回了程序执行的结果。

接下来,让我们看一下如何使用C语言实现一个简单的计算器功能:```c。

#include <stdio.h>。

int main() {。

char operator;double firstNumber,secondNumber;printf("Enter an operator (+, -, , /): ");scanf("%c", &operator);printf("Enter two operands: ");scanf("%lf %lf",&firstNumber, &secondNumber);switch(operator) {。

case '+':printf("%.1lf + %.1lf = %.1lf",firstNumber, secondNumber, firstNumber + secondNumber);break;case '-':printf("%.1lf %.1lf = %.1lf",firstNumber, secondNumber, firstNumber secondNumber);break;case '':printf("%.1lf %.1lf = %.1lf",firstNumber, secondNumber, firstNumber secondNumber);break;case '/':printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber / secondNumber);break;default:printf("Error! operator is not correct");}。

C上机实验9含答案及代码

C上机实验9含答案及代码

`特别注意事项:1,文件名“40862533_王小小_数学0801_实验1.doc”中的实验1指的是第几次上机实验,与“实验指导书”中的实验几没有关系;2,文件名“40862533_王小小_数学0801_实验1.doc”中的doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,上机实验作业一律以word形式提交;4,若上机实验有多个作业,请按照下列加粗方式给每个作业命名,如:实验1_1,实验1_25,实验作业的word文件的页眉不可少,请每次注意修改;6,每个实验作业均要给出比较详细的程序说明,且程序说明位于程序之后。

程序说明是特别重点考察的部分,请按照你的理解进行撰写;7,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。

实验9_1/****************************************************************程序功能:分别查找从10000到100000内的素数,统计各自运行的时间*******************************************************************/// number.hclass Number // 基类number{protected:int m_number;public:int GetNumber(){return m_number;}void SetNumber(int n){m_number=n;}void Prime(); // 求素数的成员函数};#include<iostream>#include"number.h"using namespace std;void Number::Prime (){int i; //用基本方法求素数for(i=2;i<m_number;i++){if(m_number%i==0)break;}if(m_number==i) //判断m_number是否被小于m_number的数整除cout<<m_number<<"is prime"<<endl;elsecout<<m_number<<"isn't prime"<<endl;}class DerNumber:public Number // 派生类{public:void Prime(); // 求素数的成员函数};#include<iostream>#include<cmath>#include"number.h"#include"DerNumber.h"using namespace std;void DerNumber::Prime () //用改进算法求素数{double sqrtm=sqrt(m_number); // 最大值开平方int i;for(i=2;i<=sqrtm;i++){ if(m_number%i==0)break;}if (sqrtm<i)cout<<m_number<<"is prime.\n";elsecout<<m_number<<"isn't prime.\n";}#include<iostream>#include<ctime>#include"number.h"#include"DerNumber.h"using namespace std;void main(){Number aNum;DerNumber aDerNum;clock_t start,finish;double elapsed_time1,elapsed_time2;int i;unsigned int max(100000);time(&start); //循环开始的时间for(i=10000;i<=max;i++){aNum.SetNumber(i);cout<<aNum.GetNumber()<<" "<<endl;aNum.Prime (); //基类对象求素数}time(&finish); //循环结束的时间elapsed_time1=difftime(finish,start); //循环的执行时间time(&start); //循环开始的时间for(i=10000;i<=max;i++){aDerNum.SetNumber (i);cout<<aDerNum.GetNumber()<<" "<<endl;aDerNum.Prime (); //派生类对象求素数}time(&finish); //循环结束的时间elapsed_time2=difftime(finish,start); //循环的执行时间cout<<"Delay for using Number class:"<<elapsed_time1<<"seconds"<<endl; cout<<"Delay for using Number class:"<<elapsed_time2<<"seconds"<<endl; }程序说明:【见程序中】函数覆盖和函数重载的区别:函数被重载的特征有:1) 相同的范围(在同一个类中);2) 函数名字相同;3) 参数不同;(即,接口不一样)4) virtual关键字可有可无。

云南大学 软件学院 计网实验8

云南大学 软件学院 计网实验8

云南大学软件学院实验报告课程:计算机网络原理实验任课教师:姓名:学号:专业:成绩:实验八、Link States Algorithm的实现1.实验目的:通过编程模拟实现LSA.2.实验环境:软件开发平台,可以使用任何编程语言。

3.实验要求(1)求网络中任何两个结点之间的最短路径(网络中至少有4个节点)。

(2)得到任何一个节点上的转发表。

4.实验内容、拓扑结构通过链路状态算法计算A点到其它各点的cost,最终输出A的路由表。

# include<stdio.h># include<stdlib.h># define maxlen 10# define large 999 //(该处设置路径最大值,表示不存在该路线)typedef struct{int vexnum;char vexs[maxlen];int arcs[maxlen][maxlen];}graph;void init_graph(graph *g)//初始化图{int i = 0,j = 0;g -> vexnum = 5; //根据题目此处将图的节点数初始化为5个for(i = 0; i < 5; i++) //经过两层循环将条路径初始化为无穷大for(j = 0; j < 5; j++)g -> arcs[i][j] = 999;g -> arcs[0][1] = 7; g -> arcs[1][0] = 7; //将相邻两个节点的路径初始化为其权值g -> arcs[0][4] = 1; g -> arcs[4][0] = 1;g -> arcs[1][2] = 1; g -> arcs[2][1] = 1;g -> arcs[2][3] = 2; g -> arcs[3][2] = 2;g -> arcs[1][4] = 8; g -> arcs[4][1] = 8;g -> arcs[3][4] = 2; g -> arcs[4][3] = 2;g -> vexs[0] = 'A'; //将节点值初始化g -> vexs[1] = 'B';g -> vexs[2] = 'C';g -> vexs[3] = 'D';g -> vexs[4] = 'E';}void shortpath_dijkstra(graph g)//寻找最短路径{int cost[maxlen][maxlen]; //cost[i][j]: 节点i到节点j的成本int dist[maxlen]; //dist[i]: 源节点到i节点的距离或者是成本int path[maxlen]; //已经经过了的节点int s[maxlen]; //如果 s[i] = 1,那么i节点已经纳入最短路径集合int i,j,v0,min,u;char e;printf("Input the source point(AorBorCorDorE):");//用户输入源节点scanf("%c",&e);switch(e){case'A':v0=0;break;case'B':v0=1;break;case'C':v0=2;break;case'D':v0=3;break;case'E':v0=4;break;}for(i = 0; i < g.vexnum; i++){for(j = 0; j < g.vexnum; j++)cost[i][j] = g.arcs[i][j];}for(i = 0; i < g.vexnum; i++){dist[i] = cost[v0][i]; //初始化源节点到各个节点的成本,如果与源节点相邻则成本为权值,否则为无穷大if(dist[i] < large && dist[i] > 0)path[i] = v0;s[i] = 0;}s[v0] = 1;for(i = 0; i < g.vexnum; i++){min = large;u = v0;for(j = 0; j < g.vexnum; j++)if(s[j] == 0 && dist[j] < min){min = dist[j];u = j;}s[u] = 1;for(j = 0; j < g.vexnum; j++)if(s[j] == 0 && dist[u] + cost[u][j] < dist[j]){dist[j] = dist[u] + cost[u][j];path[j] = u;}}printf("Output%c\n\n",e);for(i = 0; i < g.vexnum; i++)if(s[i] == 1){u = i;while(u != v0){printf(" %c <- ",g.vexs[u]);u = path[u];}printf(" %c ",g.vexs[u]);printf(" :%d \n",dist[i]);}else printf(" %c <- %c: no path \n",g.vexs[i],g.vexs[v0]);}int main(){graph g;init_graph(&g);shortpath_dijkstra(g);system("pause");return 0;}从A点开始,寻找到其余各点的最短路径截图如下:4.实验分析,回答下列问题(1)给出LSA算法的主要思想。

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

C语言实验报告实验1-1:hello world程序:源代码:#include<stdio.h>main(){printf("hello world!\n");system("pause");}实验1-2:完成3个数据的输入、求和并输出计算结果的程序:源代码:#include<stdio.h>main(){int i,j,k,sum;scanf("%d%d%d",&i,&j,&k);sum=i+j+k;printf("sum=%d",sum);system("pause");实验1-3:在屏幕上输出如下图形:ABBBCCCCC源代码:#include<stdio.h>main(){printf(" A\n");printf(" BBB\n");printf(" CCCCC\n");system("pause");}实验2-1:计算由键盘输入的任何两个双精度数据的平均值源代码:#include<stdio.h>main(){double a,b;scanf("%lf%lf",&a,&b);printf("%.1lf\n",(a+b)/2);system("pause");}实验2-2:写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f – g 表达式进行运算源代码:#include<stdio.h>main(){float a,b,c,d,e,f,g,x;scanf("%f%f%f%f%f%f%f",&a,&b,&c,&d,&e,&f,&g);x=a + b * (c - d ) / e * f - g;printf("x=%f",x);system("pause");}实验2-3:编写一个C语言程序,测试下列各表达式:i, ji + 1 , j + 1i++ , j++++i , ++ji+++++j源代码:#include<stdio.h>main(){int i=1,j=1;printf("%d %d\n",i+1,j+1);printf("%d %d\n",i++,j++);printf("%d %d\n",++i,++j);printf("%d\n",(i++)+(++j));system("pause");}实验2-4:输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest (税前),输出时保留2位小数。

C语言循环结构程序设计实验报告

C语言循环结构程序设计实验报告
运行结果:1!+2!+3!+.+25!=1.61587e+25
while语句:
main()
{ float n=1,s=0,t=1;
while(n<=25)
{ t=t*n;
s=s+t;
n++;
}
printf(“1!+2!+3!+…+25!=%e\n”,s);
}
do-while语句:
main()
{ float n=1,s=0,t=1;
(3)计算并输出Σ(2n+1)超过1000的第一个n值。
n=1
main()
{ int n=1,sum=0;
for(; ; n++) sum=sum+(2*n+1);
if(sum>2000) break;
printf(“n=%d,sum=%d\n”,n,sum);
}
if(sum>1000)break;for中的表达式2不能省去
while语句do-while语句
#include<stdio.h>#include<stdio.h>
void main() void main()
{{
int i=1,sum=0; int i=1,sum=0;
while(i<=100) do
{ {
sum=sum+i; sum=sum+i;
i++;i++;
5.某班有学生n人,从终端读入n及n个人学生的成绩,试编程实现以下功能:
①印出前3个最好成绩及取得每个最好成绩的人数;

c语言上机实验

c语言上机实验

实验3(1)程序#include <stdio.h>int main(){int a=3,b=5,c=7,x=1,y,z;a=b=c;x+2=5;z=y+3;return 0;}程序错误;提示语言--------------------Configuration: fd - Win32 Debug--------------------Compiling...fd.cppC:\Documents and Settings\Administrator\桌面\fd.cpp(2) : error C2447: missing function header (old-style formal list?)执行cl.exe 时出错.fd.exe - 1 error(s), 0 warning(s)修改为:#include <stdio.h>int main(){int a=3,b=5,c=7,x=1,y,z;a=b=c;x=5+3;z=y+3;return 0;}分析结果:在赋值和运算中是从右到左。

分析:A 变量名可以是数字,英文字母(大小写均可)。

下划线。

B大小写可以区分是成不同文件。

C 赋值运算的特点是自右向左的。

实验4(1)整数除的危险性#include <stdio.h>int main(){int a=5,b=7,c=100,d,e,f;d=a/b*c;e=a*c/d;f=c/b*a;}程序在运行结果为:0 0 0;分析原因:A 5/7*100,结果是5/7等于0,再0乘上100等于0。

B 5*100/7,结果是5*100等于500,再500/7等于0。

C 100/7*5 结果是100/7等于0,再0*5等于0。

结论:原因在于,当整除不成立时,结果为0,所以结论会影响下一次的运行。

(2)#include <stdio.h>main(){int a=5,b=8;printf(“a++=%d”,a++);printf(“a=%d”,a);printf(“++b=%d”,++b);printf(“b=%d”,b);}得到结论为分析结果:i++“先引用,后增值”:++i“先增值,后引用”所以a++是5,因为先引用,a是6,因为是增值的结果,++b是9,是因为先增值,b是9,是因为后引用的结果。

7个大一C语言必学的程序C语言经典代码大全

7个大一C语言必学的程序C语言经典代码大全

7个大一C语言必学的程序C语言经典代码大全7个大一C语言必学的程序C语言是计算机专业的基础语言之一,作为大一新生,学好C语言对于你未来的学习和工作都非常重要。

以下是7个大一C语言必学的程序,通过学习和理解这些经典代码,你将对C语言的基础知识有更深入的了解,并能够应用到实际的编程中。

程序一:Hello World#include <stdio.h>int main() {printf("Hello World!\n");return 0;}这是C语言中最经典的程序,它将在屏幕上打印出"Hello World!"。

通过这个简单的程序,你将学会如何使用printf函数打印输出,并理解main函数的作用和返回值。

程序二:求和程序#include <stdio.h>int main() {int a = 10;int b = 20;int sum = a + b;printf("和为:%d\n", sum);return 0;}这个程序演示了如何进行加法运算,并将结果打印输出。

通过这个程序,你将学会如何定义变量,使用赋值运算符,并理解printf函数的格式化输出。

程序三:判断奇偶数#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。

\n", num);} else {printf("%d是奇数。

\n", num);}return 0;}这个程序演示了如何判断一个整数是奇数还是偶数。

通过这个程序,你将学会如何使用if语句进行条件判断,并了解scanf函数的使用方法。

C语言实验报告2

C语言实验报告2
下面给出一个语句段,学生补充一个完整的程序后,上机进行调试。
for(i=1;i<=10;i++)
{ c1=getchar( );
c2=c1–32;
printf(“string %c\n”,c2);
}
【自编程序上机】
1 (判错)下述论断哪些是不对的?
1每个C语言程序有且仅有一个主函数 main()。
2C语言程序的每一行都用分号结尾。
printf(“c1=%c,c2=%c\n”,c1,c2);
}
3题:
#include <stdio.h>
void main()
{
float x,y,z,l;
scanf(“%f%f%f”,&x,&y,&z);
l=x-z%2*(x+y)%2/2;
printf(“%f\n”,l);
}
4题:main()
{ int x,y,z;
}
运行看看结果如何?为什么?
④ main()
{ int i;float x;long y;
i=100;x=200;y=300;
printf(“i=%d,x=%d,y=%d\n”,i,x,y);
printf(“i=%f,x=%f,y=%f\n”,i,x,y);
printf(“i=%ld,x=%ld,y=%ld\n”,i,x,y);
3C程序的执行从第一行开始到最后一行结束。
4C程序的每一行只能写一条语句。
5C程序的一条语句可以占多行。
6一个C程序可有一个或多个函数组成。
7在C程序中,注释说明只能写在一条语句的末尾。
8在一个C程序中,主函数必须放在程序的首部。

C语言_实验二、选择结构程序设计

C语言_实验二、选择结构程序设计
{
printf("这个是大写字母");
}
}
}
return 0;
}
2.[目的]掌握条件表达式的使用
[题目内容]编写一个程序,其功能为:从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!=z”的信息。
[输入]三个数x、y、z
[输出]“x+y=z”或“x+y!=z”
[提示]条件判断表达式x+y==z
#include<stdio.h>
int main (void)
{
float x=0.0;
float y=0.0;
float z=0.0;
scanf("%f,%f,%f",&x,&y,&z);
if (x+y==z)
{
printf("x+y=z\n");
}
else
{
printf("x+y!=z\n");
max=x;
min=y;
}
else
{
max=y;
min=x;
}
if (z>max)
{
max=z;
}
if (z<min)
{
min=z;
}
printf("max=%f,min=%f",max,min);
return 0;
}
4.[目的]运用已学知识解决实际问题。
[题目内容]如下两个线性方程组的两个未知数为x1和x2:
[输入]一元二次方程ax2+bx+c=0的各项系数a、b、c

C语言必背100代码,C语言必会100代码大全

C语言必背100代码,C语言必会100代码大全

C语⾔必背100代码,C语⾔必会100代码⼤全⼀、C语⾔初学者必学必会的C语⾔必背100代码⼀个C语⾔⼊门初学者如何学代码,读代码和写代码,我想学代码不知道⽅向谁能给我指明⼀个⽅向?对于c语⾔来说,要记得东西其实不多,基本就是⼏个常⽤语句加⼀些关键字⽽已。

你所看到的那些⼏千甚⾄上万⾏的代码,都是⽤这些语句和关键词来重复编写的。

只是他们逻辑功能不⼀样,那如何快速的上⼿C语⾔代码,建议多看多写,下⾯是⼩编整理的C语⾔必背100代码。

⼆、C语⾔学习相关C语⾔必背100代码展现已把⼤量C语⾔必背代码整理为⼀个压缩包关注微信公众号:“C和C加加” 回复:“YM” 即可获取1、C语⾔必背代码九九乘法表⽤C语⾔输出9*9成法⼝诀。

共9⾏9列,i控制⾏,j控制列。

2、C语⾔必背100代码之4×4数组下⾯程序的功能是将⼀个4×4的数组进⾏逆时针旋转90度后输出,要求原始数组的数据随机输⼊,新数组以4⾏4列的⽅式输出,请在空⽩处完善程序。

3、C语⾔必背100代码的相关古典问题有⼀对兔⼦,从出⽣后第3个⽉起每个⽉都⽣⼀对兔⼦,⼩兔⼦长到第三个⽉后每个⽉⼜⽣⼀对兔⼦,假如兔⼦都不死,问每个⽉的兔⼦总数为多少?已把⼤量C语⾔必背代码整理为⼀个压缩包关注微信公众号:“C和C加加” 回复:“YM” 即可获取兔⼦的规律为数列1,1,2,3,5,8,13,21…4、C语⾔必背100代码之素数判断101-200之间有多少个素数,并输出所有素数及素数的个数。

已把⼤量C语⾔必背代码整理为⼀个压缩包关注微信公众号:“C和C加加” 回复:“YM” 即可获取程序分析:判断素数的⽅法:⽤⼀个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

5、C语⾔必背代码之完数相关代码⼀个数如果恰好等于它的因⼦之和,这个数就称为“完数”。

例如6=1+2+3.编程找出1000以内的所有完数。

6、三⾓形打印的C语⾔必背100代码编程打印直⾓杨辉三⾓形7、C语⾔必背100代码之平均分问题通过键盘输⼊3名学⽣4门课程的成绩,分别求每个学⽣的平均成绩和每门课程的平均成绩。

c语言初学必背代码

c语言初学必背代码

c语言初学必背代码C 语言作为一门基础的编程语言,对于初学者来说,掌握一些关键的代码片段是非常重要的。

这些代码不仅能够帮助我们理解 C 语言的基本语法和编程思想,还能为后续更复杂的程序编写打下坚实的基础。

接下来,就让我们一起看看 C 语言初学必背的那些代码。

首先,是简单的“Hello World”程序。

这几乎是每一个学习编程语言的人所接触的第一个程序。

```cinclude <stdioh>int main(){printf("Hello World!\n");return 0;}```在这个程序中,`include <stdioh>`是预处理指令,用于包含标准输入输出头文件。

`int main()`是主函数,是 C 语言程序的入口点。

`printf`函数用于在屏幕上输出指定的文本。

`\n`是换行符,用于在输出文本后换行。

接下来,是变量的声明和使用。

```cinclude <stdioh>int main(){int num = 10; //声明并初始化一个整型变量float price = 999; //声明并初始化一个浮点型变量char letter ='A';//声明并初始化一个字符型变量printf("整数: %d\n", num);printf("浮点数: %f\n", price);printf("字符: %c\n", letter);return 0;}```在上述代码中,我们看到了不同数据类型变量的声明和初始化,以及如何使用`printf`函数输出这些变量的值。

再看条件判断语句,比如`ifelse`语句。

```cinclude <stdioh>int main(){int num = 5;if (num > 10) {printf("数字大于 10\n");} else {printf("数字小于或等于 10\n");}return 0;}```通过`ifelse`语句,我们可以根据不同的条件执行不同的代码块。

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

第二次试验///第三次试验=====================程序============================#include<stdio.h>int main(){/*十进制*/printf("%d\n",3+4*6);printf("%d\n",3*4/6+6);printf("%d\n",2*3/12*8/4);printf("%d\n",10*(1+7*3));printf("%d\n", 20-2/6+3);printf("%d\n", 20-2/(6+3));printf("%d\n", (20-2)/6+3);printf("%d\n", (20-2)/(6+3));/*9-16显示为小数,保留小数2位,宽度为8*/printf("%8.2f\n",3.0+4.0*6.0);printf("%8.2f\n",3.0*4.0/6.0+6.0);printf("%8.2f\n",2.0*3.0/12.0*8.0/4.0);printf("%8.2f\n",10.0*(1.0+7.0*3.0));printf("%8.2f\n",20.0-2.0/6.0+3.0);printf("%8.2f\n",20.0-2.0/(6.0+3.0));printf("%8.2f\n",(20.0-2.0)/6.0+3.0);printf("%8.2f\n",(20.0-2.0)/(6.0+3.0));/*17-20显示为字符*/printf("%c\n", 'm' - 5);printf("%c\n", 'm' + 5);printf("%c\n", 'G' + 6);printf("%c\n", 'G' - 6);/*21-23显示为十进制整数*/printf("%d\n", 'b' - 'a');printf("%d\n", 'g' - 'a' + 1);printf("%d\n", 'g' - 'a' + 1);}=======================运行结果=====================================================================程序==========================#include<stdio.h>int main (){float Cel,Fah;printf("print a Fah number:");scanf("%f",&Fah);Cel=5.0/9.0*(Fah-32);printf("The Cel number is%f\n",Cel);printf("print a Cel number:");scanf("%f",&Cel);Fah=32+9.0*Cel/5.0;printf("The Fah number is:%f \n",Fah);return 0;}============================运行结果=========================第四次试验************************************(1)程序********************************** #include<stdio.h>int main(){int num1,num2,num3,max,min;printf("please input three numbers:\n");scanf("%d %d %d",&num1,&num2,&num3);max=(num1>num2)?num1:num2;min=(num1<=num2)?num1:num2;max=(num3>max)?num3:max;min=(num3<min)?num3:min;printf("max = %d min = %d",max,min);return 0;}**************************************运行结果***********************************************************************(2)程序********************************* #include <stdio.h>int main(){int a;float profit,income;printf("Please input the profit:");scanf("%f",&profit);a=(profit-1)/100000;switch(a){case 0:income=profit/10;break;case 1:income=(profit-100000)*0.075+10000;break;case 2:case 3:income=(profit-200000)*0.05+10000+7500;break;case 4:case 5:income=(profit-400000)*0.03+10000+7500+10000;break;case 6:case 7:case 8:case 9:income=(profit-600000)*0.01+10000+7500+10000+6000;break;case 10:income=(profit-1000000)*0.01+10000+7500+10000+6000+6000;}printf("奖金数值为:%f\n",income);return 0;}************************************运行结果******************************************************************(3)程序**************************** /*百马百担问题*/#include <stdio.h>int main (){int A,B,C;printf("百马百担的解为:\n");printf("大中小\n");for (A = 0; A <= 33; A++){for (B = 0; B <= 50; B++){C = 100 - A - B;if (3*A + 2*B + C/2.0 == 100)printf("%-2d %-2d %-2d \n",A,B,C);}}return 0;}********************************运行结果*************************************************************(4)程序**************************** ************************************(5)程序********************************** //关于菱形的第一种算法//#include <stdio.h>int main(){int i,j,k;printf("请输入最长行的数字,为奇数k:");scanf("%d",&k) ;for (i=1;i<=k;i++){for(j=1;j<=k;j++){if((j+i)>=(k+1)/2+1&&(i+j)<=(k+1)*3/2-1&&i-j<=(k+3)/2-2& &j-i<=(k+3)/2-2)printf(" *");elseprintf(" ");}printf("\n");}return 0;}//第二种算法///#include <stdio.h>int main(){int K,X,C,N;printf("num=");scanf("%d",&N);for(C=1;C<=(N+1)/2;C++){for(K=1;K<=(N+1)/2-C;K++)printf(" ");for(X=1;X<=2*C-1;X++)printf(" *");printf("\n");}for(C=(N+3)/2;C<=N;C++){for(K=1;K<=C-(N+1)/2;K++)printf(" ");for(X=1;X<=2*N+1-2*C;X++)printf(" *");printf("\n");}}************************运行结果***************************************第5/6次试验*********************************(1)程序*********************************** 第7次试验**********************************(1)程序********************************** #include <stdio.h>int main(){int i,j,n;printf("input a number");scanf("%d",&n);int a[n][n];printf("\n");for(i=0;i<n;i++){a[i][0]=1;a[i][i]=1;}for (i=2;i<n;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<n;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}}*********************************************运行结果*********************************************************************(2)程序**************************** 方法一:#include <stdio.h>int main (){int i;int fb[12]={1,1};for(i=2;i<12;i++){fb[i]=fb[i-1]+fb[i-2];printf("第%d个月共有兔子%d只\n",i+1,fb[i]*2);}return 0;}*****************************运行结果*********************************************************************************方法二:#include <stdio.h>int main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n");f1=f1+f2;f2=f1+f2;}return 0;}************************************运行结果******************************************************************(3)程序**************************************** #include<stdio.h>#define num 10int num1(int [],int);int num2(int [],int);int main(){void sort1 (int num1[],int n);void sort2 (int num2[],int n);int a[num], c[num],i,moves,j;printf("enter array here:\n");for(i=0;i<10;i++){j=i;scanf("%d",&a[i]);c[j]=a[i];}printf("the sorted array :\n");sort1(a,num);printf("the sorted array :\n");sort2(c,num);return 0;}void sort1(int num1[],int n){int i,j,temp,b;for(i=0;i<n-1;i++){for(j=1;j<n;j++){if(num1[j]<num1[j-1]){temp=num1[j];num1[j]=num1[j-1];num1[j-1]=temp;}}for(b=0;b<n;b++)printf("%5d",num1[b]);printf("\n");}}void sort2(int num2[],int n){int i,j,min,minidx,temp,b;for(i = 0;i<n-1;i++){min = num2[i];minidx = i;for(j = i+1;j<n;j++){if (num2[j]<min){min = num2[j];minidx = j;}} for(b=0;b<n;b++)printf("%5d",num2[b]);printf("\n");if (min < num2[i]){temp = num2[i];num2[i] = min ;num2[minidx] = temp;}}}******************************运行结果***********************************************************************(4)程序************************************* #include <stdio.h>#define N 10int brnarysearch(int [],int,int);int main(){int nums[N]={1,5,8,9,12,23,45,56,67,99};int item,location;printf("Enter the item you are searching for");scanf("%d",&item);location=brnarysearch(nums,N,item);if(location > -1)printf("The item was found at index location %d\n",location);elseprintf("The item was not found in the list\n");return 0;。

相关文档
最新文档