Linux如何实现程序设计
发表于:2024-12-04 作者:千家信息网编辑
千家信息网最后更新 2024年12月04日,这篇文章将为大家详细讲解有关Linux如何实现程序设计,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。例子:指数函数/*4-1.c 输入两个实数x,y 求指数x^y
千家信息网最后更新 2024年12月04日Linux如何实现程序设计
这篇文章将为大家详细讲解有关Linux如何实现程序设计,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
例子:
指数函数
/*4-1.c 输入两个实数x,y 求指数x^y * gcc -g -o 4-1 4-1.c -lm * **/#include#include int main(){ double answer,x,y; printf("please input two double x,y:\n"); scanf("%lf %lf",&x,&y); answer=pow(x,y); printf("%lf的%lf次方是:%lf\n", x,y,answer); return 0;}
开平方
/*4-2.c 先输入整数n:然后要求逐个输入n个实数并开平方 * gcc -g -o 4-2 4-2.c -lm * **/#include#include int main(){ int i,n; float x,y; printf("please input an int n:\n"); scanf("%d",&n); for(i=0;i 随机数
/*4-3.c 产生10个介于1~10的随机数 gcc -g -o 4-3 4-3.c **/#include#include #include int main(){ int i,j; srand((unsigned int)time(0)); printf("RAND_MAX= %d\n",RAND_MAX); for(i=0;i<10;i++){ j=1+(int)(10.0*rand()/(RAND_MAX+1.0)); /* 1+(int)(10.0*rand()/(RAND_MAX+1.0)) 的意思是生成1到10的随机数 (int)10.0*rand()/(RAND_MAX+1.0)的意思是将0到RAND_MAX之间的整数等分成十份,如果随机的生成数落在第一份,则映射成0, 如落在第二份,则映射成1。。。。。。如落在第十分,则映射成9. */ printf(" %d",j); } printf("\n"); return 0;} /*4-3_1.c 产生0 到 50 之间的 n 个随机数 * gcc -g -o 4-3_1 4-3_1.c void srand(unsigned seed);用法: 它初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的 rand() 函数会出现一样的随机数,如: srand(1); 直接使用 1 来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型再传给srand函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的数据。进一步说明下:计算机并不能产生真正的随机数,而是已经编写好的一些无规则排列的数字存储在电脑里,把这些数字划分为若干相等的N份,并为每份加上一个编号用srand()函数获取这个编号,然后rand()就按顺序获取这些数字,当srand()的参数值固定的时候,rand()获得的数也是固定的,所以一般srand的参数用time(NULL),因为系统的时间一直在变,所以rand()获得的数,也就一直在变,相当于是随机数了。只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟。如果想在一个程序中生成随机数序列,需要至多在生成随机数之前设置一次随机种子。 即:只需在主程序开始处调用 srand((unsigned)time(NULL)); 后面直接用rand就可以了。不要在 for 等循环放置 srand((unsigned)time(NULL)); **/#include#include #include int main(){ int i, n; time_t t; n = 20; /* 初始化随机数发生器 */ srand((unsigned) time(&t)); /* 输出 0 到 50 之间的 20 个随机数 */ for( i = 0 ; i < n ; i++ ) { printf("%d\n", rand() % 50); } return(0);} /*4-4.c 从键盘读入一行字符,判断其是否为大写 gcc -g -o 4-4 4-4.c **/#include#include int main(){ char c; while((c=getchar())!='\n'){ if(isupper(c)) printf(" %c is an upppercase character\n",c); } printf("\n"); return 0;} /*4-5.c 从键盘读入一行字符,判断其是否为十六进制数字 gcc -g -o 4-5 4-5.cQAc6587Abaaa669DReAEgg **/#include#include int main(){ char c;/* for( ; (c=getchar())!='\n' ; ) if(isxdigit(c)) printf(" %c is a hexadecimal digits\n",c); **/ while((c=getchar())!='\n') if(isxdigit(c)) printf(" %c is a hexadecimal digits\n",c); printf("\n"); return 0;} /*4-6.c 显示当前系统时间 gcc -g -o 4-6 4-6.c **/#include#include int main(void){ char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; char *chwday[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; time_t timep; struct tm *p_tm; time(&timep); //timep = time(NULL); p_tm = gmtime(&timep); /*获取GMT时间*/ printf("%d-%d-%d ", (p_tm->tm_year+1900), (p_tm->tm_mon+1), p_tm->tm_mday); printf("%s %d:%d:%d\n", wday[p_tm->tm_wday], p_tm->tm_hour, p_tm->tm_min, p_tm->tm_sec); p_tm = localtime(&timep); /*获取当地时间并按照中文时间日期显示*/ printf("%d年 %d月 %d日 ", (p_tm->tm_year+1900), (p_tm->tm_mon+1), p_tm->tm_mday); printf("%s %d:%d:%d\n", chwday[p_tm->tm_wday], p_tm->tm_hour, p_tm->tm_min, p_tm->tm_sec); printf("当前的本地时间和日期:%s", asctime(p_tm)); /* asctime(struct tm * ptr)返回的时间字符串格式为:星期,月,日,小时:分:秒,年 */ /* ctime函数 函数原型: char *ctime(const time_t * timer) 函数功能: 将日历时间参数timer转换为一个表示本地当前时间的字符串 函数返回: 返回字符串格式:星期,月,日,小时:分:秒,年 参数说明: timer参数应由函数time获得,其等价于 astime( localtime(timer) ) */ time(&timep); printf("当前时间 = %s", ctime(&timep)); printf("\n"); return 0;} 思考与实验:
1.编写一个简单的c语言程序:函数int input(int a[ ],int n)用于输入一个有n个元素的整型数组,void output(int b[ ],int n),函数int sum(int a[ ],int n)用于数组求和,在main函数中依次调用函数input、output、sum
/*ex4-1.cgcc -g -o ex4-1 ex4-1.c$ ./ex4-1 113 123 13 12 14 13 11 1 12 53113 123 13 12 14 13 11 1 12 53 365*/#includeint input(int a[],int n);void output(int b[],int n);int sum(int a[],int n);void main(){ int a[10]; input(a, 10); output(a, 10); printf("%d\n", sum(a, 10));}int input(int a[],int n){ for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } return 1;}void output(int b[],int n){ for (int i = 0; i < n; i++) { printf("%d ", b[i]); }}int sum(int a[],int n){ int s = 0; for (int i = 0; i < n; i++) { s = s + a[i]; } return s;} 3. 编写C语言程序:用随机函数产生两个整型数,根据输入的字符:+-*/做算术运算,不是这四个字符则报错
#include#include #include int main(){ int i,b,d; char a; srand((int)time(0)); for(i=0;i<2;i++){ b=1+(int)(4.0*rand()/(RAND_MAX+1.0)); d=1+(int)(4.0*rand()/(RAND_MAX+1.0)); } printf("%d %d\n",b,d); printf("请输入+、-、*、/ 中的任意一个符号:"); a=getchar(); int m,n,p; float q; m=b+d; n=b-d; p=b*d; q=(float)(b/d); switch(a){ case '+':printf("这两个数的和是:%d\n",m); break; case '-':printf("这两个数的差是:%d\n",n); break; case '*':printf("这两个数的积是:%d\n",p); break; case '/':printf("这两个数的商是:%f\n",q); break; default:printf("error!\n"); } return 0;} 4.编写程序,测试某一程序段运行时间
#include#include #include int main() { long i = 10000000L; clock_t start, finish; double Total_time; printf( "CLOCKS_PER_SEC= %ld\n",CLOCKS_PER_SEC ); /* 测量一个事件持续的时间*/ printf( "Time to do %ld empty loops is ", i ); start = clock(); while(i--) ; finish = clock(); Total_time = (double)(finish-start) / CLOCKS_PER_SEC; printf( "%f seconds\n", Total_time); return 0;} 或
/* ex4-4_1.c https://blog.csdn.net/HelloZEX/article/details/53744838** gcc -g -o ex4-4_1 ex4-4_1.c**/#include#include #include int main() { clock_t start, finish; double Total_time; /* 测量一个事件持续的时间*/ start = clock(); /*被测试代码*/ int size = 64 * 1024 * 1024; int *arr = (int *) malloc( sizeof(int)*size); for (int i = 0; i < size; i++) arr[i] *= 3; for (int i = 0; i < size; i += 8) arr[i] *= 3; finish = clock(); Total_time = (double)(finish-start) / CLOCKS_PER_SEC; printf( "%f seconds\n", Total_time); return 0;} 关于"Linux如何实现程序设计"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
函数
时间
随机数
星期
程序
种子
字符
两个
参数
输入
系统
数字
之间
字符串
篇文章
开平
生成
程序设计
设计
一行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全装备安装
网络安全法经历了
博科B8数据库文件
uc数据库
市公积金中心网络安全培训班
多源化软件开发软件
广州oa软件开发工程师
战地4服务器推荐
税务局网络安全的重要性
手机服务器中断
上海盛大汽车软件开发招聘
腾讯服务器能看到微信聊天记录吗
接入网络技术支撑
网络安全督查表态
麒麟系统怎么查看服务器配置
广西公共信息网络安全监察
上海飞蚁网络技术
华中互联网光谷科技会展中心
软件开发格式化工具
数据库事务更新优化
高清瓷砖管理软件开发
现代网络技术的基石是
乡镇成立网络安全领导小组
网络安全事件的发展历程
宁波软件开发工程师月薪
服务器存储设备信息里什么都没有
网络安全表扬信模板
嘉定区智能软件开发调试
广安软件开发市场价
哈佛大学网络安全的教授