Linux如何实现程序设计
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章将为大家详细讲解有关Linux如何实现程序设计,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。例子:指数函数/*4-1.c 输入两个实数x,y 求指数x^y
千家信息网最后更新 2024年11月14日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安全错误
数据库的锁怎样保障安全
江苏服务器机房价格实惠云主机
大雅与知网数据库一样吗
软件开发岗位对上游下游看法
网络安全人才行业失衡
大数据软件开发工具
布谷鸟2016服务器怎么填
新加坡赌场网络安全维护
软件开发项目的组织
上位机软件开发论坛
深圳市国银软件开发
宿迁租房网络安全
网络技术学习计划app
上海标准软件开发批发
优化数据库服务器
联想sr590服务器连接网络
数据库中掩码的设置
湖南服务器回收免费咨询
日结新软件开发注册账户
小学网络安全画2021
关于计算机网络安全的题目
登陆微信服务器繁忙
厦门软件开发项目经理的主要工作
综合门户需要多大数据库
广州烘炜网络技术
河南人工智能软件开发定做
plSQL数据库变卡
软件开发提供
农村网络安全宣传周小结
服务器无法发送邮件
大王卡 免流服务器