收藏 分销(赏)

C语言注意项目.doc

上传人:精**** 文档编号:2993220 上传时间:2024-06-12 格式:DOC 页数:14 大小:289.54KB 下载积分:8 金币
下载 相关 举报
C语言注意项目.doc_第1页
第1页 / 共14页
C语言注意项目.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
1.switch语句,其通常形式为: switch(表示式){ case常量表示式1: 语句1; case常量表示式2: 语句2; …… case常量表示式n: 语句n; default: 语句n+1; } 其中switch(表示式)后不应该带有";",同时case语句常量后应该是":"。 2.void fun(STREC *a) { double ave=0.0; int i; for(i=0;i<N;i++) a->ave=a->ave+a->s[i]; /*求各门成绩总和*/ a->ave/=N; /*求平均分*/ } 3.有参函数定义,其通常形式为: 类型标识符 函数名(形式参数表列)/*double fun(int i)*/ {申明部分    语句 } 1.锁存器和触发器存放元件,用于开关电路。锁存器是由输入信号控制设备状态。( 2.假如一个锁存器有一个输入信号,使输出装置1,它被称为一个集存。假如它有一个输入信号,迫使装置输出0,它被称为一个复位锁存器。假如设备设置和重置激励信号,它被称为一个置位复位锁存。触发器不一样于一个锁存器,它有一个控制信号称为时钟. 3.基础触发器。基础触发器(简存)通常被称为闩锁器。该触发器电路交叉耦合和双大门或和非门大门。它有两只inputs-s集,用于复位。该触发器是图4.1所表示。它是采取交叉耦合和大门。( 四 1. (11)两只MOSFET设计有匹配特征。所以,它们是相辅相成。关闭时,其电阻实际上是无限;当上,她们通道电阻约为200。 2.因为栅基础上是一个开放电路,它没有电流,并将输出电压等于地面或电源电压,这取决于晶体管导电。( 3. 当输入一个接地(逻辑0),n沟道MOS是公正,所以没有通道增强本身。它是一个开放电路,所以离开输出线断开从地面。同时,p沟道晶体管正向偏置,所以它有一个通道内提升自己。该频道有一个电阻约200,输出连接线+供电。这将输出到+五世(逻辑1)。 if语句条件表示式通常会考查三方面内容: (1) 条件判定,即>和>=、<和<=、==和!=区分,需要仔细分析题干意思,确定条件表示式内容。 (2) 逻辑判定,即&&(逻辑和)和||(逻辑或)区分,需要依据题干确定if条件中若干个条件表示式并存关系。 (3) =(赋值号)和==(等于号)区分,注意在if条件中不会出现=(赋值号)。 4.冒泡排序算法,其基础思想是,将待排序元素看作是竖着排列"气泡",较小元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个"气泡"序列处理若干遍。所谓一遍处理,就是自底向上检验一遍这个序列,并时刻注意两个相邻元素次序是否正确。假如发觉两个相邻元素次序不对,即"轻"元素在下面,就交换它们位置。显然,处理一遍以后,"最轻"元素就浮到了最高位置;处理二遍以后,"次轻"元素就浮到了次高位置。依次类推,完成排序。 用代码实现数组s[N]升序排列为: for(i=0; i<N; i++) for(j=i+1; j<N; j++) if(s[i]>s[j]) {t=s[i]; s[i]=s[j] s[j]=to;} 5. 对于m*n二维数组,如采取逐行查找最大元素方法,代码实现为: int fun (int a[][M]) { int i,j,max=a[0][0]; for(i=0;i<2;i++) for(j=0;j<M;j++) if(max<a[i][j]) max= a[i][j]; return max; } 6.求1到1000之内能被7或11整除、但不能同时被7和11整除全部整数,并放入数组a中* void fun (int *a, int *n) { int i,j=0; for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除全部整数,并放入数组a中*/ if((i%7==0||i%11==0)&&i%77!=0) a[j++]=i; *n=j; } 7.求最大条约数算法通常采取辗转相除法。辗转相除法算法为:首先将 m除以 n(m>n)得余数 r,再用余数r去除原来除数,得到新余数,反复此过程直到余数为 0时停止,此时除数就是m 和 n最大条约数。 程序首先判定参数a和b大小,假如a<b则进行交换,这里是一个数学逻辑错误,应先将a值赋给中间变量t,再将b值赋给a,最终将t值赋给b。当余数r为0时,除数b即为所求最大条约数,所以函数应返回b 即;int fun(int a,int b) { Int r,t; if(a<b) {t=a;a=b;b=t;} r=a%b; while (r!=0) {a=b;b=r;r=a%b;} return b /*最大条约数*/ 8.假如知道某数n各个位,能够得到该数值n,如n个位为a、十位为b、百位为c,那么n=c*100+b*10+a。假如知道数值n,能够采取求余和除法操作来表示其各个位,如n%10(取个位)、n/10(取十位), 比如:while (n) {t=n%10; If(t%2==0) x=10*x+t; n=n/10; } return x; 9. void fun(char p1[], char p2[]) { int i,j; for(i=0;p1[i]!='\0';i++) ; 求出第1个字符串长度立即i指到第1个字符串末尾 for(j=0;p2[j]!='\0';j++) p1[i++]=p2[j]; 立即i指到第1个字符串末尾 p1[i]='\0'; } 10."0"和"1"是字符串中数字字符,为了进行数字运算,必需要将数字字符转换为数字,用数字字符减去字符'0'(零)ASCII码,就得到对应数字。 int fun( char *p ) { int n; n= *P-'0'; p++; while( *p!=0 ) { n=n*8+*P-'0';将八进制转化成十进制 p++; } return n; } 12.strcpy(字符数组1,字符数组2)  把字符数组2所指字符串内容复制到字符数组1所指存放空间中。函数返回字符数组1值,即目标串首地址  为确保复制正当性,字符数组1必需指向一个足够容纳字符数组2存放空间 strcat(字符数组1,字符数组2)  该函数将字符数组2所指字符串内容连接到字符数组1所指字符串后面,并自动覆盖字符数组1串末尾′\0′,该函数返回字符数组1地址值  字符数组1所指定字符串应有足够空间容纳两串合并后内容 strlen(字符数组)  此函数计算出以字符数组为起始地址字符串长度,并作为函数值返回  这一长度不包含串尾结束标志′\0′ strcmp(字符数组1,字符数组2)  该函数用来比较字符数组1和字符数组2所指字符串大小。若字符数组1>字符数组2,函数值大于0(正数);若字符数组1=字符数组2,函数值等于0;若字符数组1<字符数组2,函数值小于0(负数)  依据字符ASCII码值依此对字符数组1和字符数组2所指字符串对应位置上字符两两进行比较,当出现第一对不一样字符时,即由这两个字符决定所在串大小、 13.打开文件操作,fopen函数用来打开一个文件,其通常形式为 "文件指针名=fopen(文件名,使用文件方法);";文件结束检测函数feof函数;写字符函数fputc,功效是把一个字符写入指定文件中,函数调用形式为"fputc(字符量,文件指针);"其中,待写入字符量能够是字符常量或变量,被写入文件能够用写、读写、追加方法打开。文件一旦使用完成,需使用关闭文件函数fclose将文件关闭,以避免文件数据丢失等错误。 14.迭代法求方程实根;do…while循环语句,其形式为: do{ 语句 }while(表示式); do…while循环和while循环不一样在于,它先实施循环中语句,然后再判定表示式是否为真, 假如为真则继续循环;假如为假, 则终止循环。所以, do…while循环最少要实施一次循环语句。 double x0,x1; x1=0.0; do { x0=x1; x1=cos(x0); }while(fabs(x0-x1)>=1e-6); return x1; 函数fun功效:将字符串中前导*号全部移到字符串尾部。本题解题思绪:(1)定义一个指针并指向字符串首地址;(2)利用循环语句找出字符串前导*号个数n;(3)利用循环语句把剩下字符拷贝到另一个字符串中;(4)在字符串末尾接上n个*号。 void fun( char *a ) { int i=0,n=0; char *p; p=a; while (*p=='*') /*判定*p是否是*号,并统计*号个数*/ { n++;p++; } while(*p) /*将前导*号后字符传输给a*/ { a[i]=*p;i++;p++; } while(n!=0) { a[i]='*';i++;n--;} a[i]='\0';} 函数fun功效:除了字符串前导*号之外,将串中其它*号全部删除。 void fun( char *a ) { int i=0; char *p=a; 定义一个临时指针p,初始指向原串首地址 while(*p&&*p=='*') 利用循环语句把字符串前导*号拷贝到原串; { a[i]=*p; i++; p++; } while(*p) 继续移动指针,把串中和串尾非*号字符拷贝到原串; { if(*p!='*') {a[i]=*p;i++;} p++; } a[i]='\0'; ;为修改后字符串赋结束字符'\0'。 } 要求统计在tt所指字符串中'a'到'z'26个小写字母各自出现次数,并依次放在pp所指数组中void fun(char *tt, int pp[]) { int i; for(i=0;i<26;i++) pp[i]=0; /*初始化pp数组各元素为0*/ for(;*tt!='\0';tt++) if(*tt>='a'&&*tt<='z') pp[*tt-'a']++; 【下标】a为pp[0],b为pp[1].... } 对于一个字符串要删除其尾部*号,只需要在最终一个不是*号字符后面加上结束符号′\0′。 void fun( char *a ) { while(*a!='\0') a++; a--; /*指针a指向字符串尾部*/ while(*a=='*') a--; /*指针a指向最终一个字母*/ *(a+1)='\0'; /*在字符串最终加上结束标志符*/ } 【解题思绪】 具体操作为:首先找到字符串结尾,然后从最终一个字符开始往前逐一判定是否为*号,直到找到非*号字符为止,最终在该字符后面加上结束符号'\0'。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服