1、 else 语句4;2.将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。#include “stdio.h”Void Dec2Bin(int m) int bin32, j; for(j=0;m!=0;j+) binj=m%2; m%2为m除以2取余,并用数组对应记录下来 m=m/2; m/2为m除以2取整 for(;j!j-) j从大到小循环到0%d,binj-1); 如m=3,j先赋值为0,判断m不等于0,循环, b0=1,m=1,j=1,再判断m不等于0,循环, void main() b1=1,m=0,j=2,再判断m等于0,跳出循环,进 入下一个循环,因
2、为j=2时没有对应的数组, int n; 所以输出时j-1 scanf(,&n); Dec2Bin(n);1、非(!) 与(&) 或(|) 等于()条件表达式一般形式:表达式1?表达式2:表达式3计算过程:先计算表达式1的值,若非0,则计算表达式2的值作为表达式值,忽略表达式3;否则计算表达式3的值作为条件表达式值,不计算表达式2。2、函数调用,子函数,定义函数1)定义的函数的类型与返回值类型相同(double,float,int)2)return3、数组 1)一维数组a 2)二维数组a 第一个 表示数组的行,第二个 表示每一行的个数3、输入1个整数后,输出该数的位数(例:输入3214则输出4
3、,输入-23156则输出5)int n,k=0; while( _1_ ) / n!=0 k+; _2_; / n=n/10%dn,k);4、求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。#include math.h int n,s=0; _ 1 _ / if (n=0) return y; else _2_ return -y ;printf(%ldt,f(12345);%ldn,f(-34567);$1_VE_ITEM_(2) 调用函数f,从字符串中删除所有的数字字符。string.hctype.hvoid f(char *s) int i=0; while(si
4、!=0) if(isdigit(si) _1_(s+i,s+i+1); strcpy _2_ i+; char str80; gets(str); f(str); puts(str);$1_VE_ITEM_(3) 调用find函数在输入的字符串中查找是否出现the这个单词。如果查到返回出现的次数,如果未找到返回0。int find(char *str) char *fstr=;int i=0,j,n=0;while (stri!) for(_1_) j=0; j=3return n; char a80; gets(a);,find(a);$1_VE_ITEM_(4)输入的一个小写字母,将字母循
5、环后移5个位置后输出。a变成f,wb。 char c; c=getchar(); if(_1_)/ cacv & cz _2_ c=(c-+5)%26+ putchar(c);$1_VE_ITEM_(5) 将字符串s中所有的字符c删除。 char s80; int i,j; gets(s); for(i=j=0; _1_; i+) si != if(si ! sj=si; j+; sj= puts(s); 对x=1,2,10,求f(x)=x*x-5*x+sin(x)的最大值。#define f(x) x*x-5*x+sin(x)void main() int x; float max; _1_
6、 / max=f(1); for(x=2;xmax) max=f(x);%fn,max);1_VE_ITEM_(2) 输入三个整数,按由小到大的顺序输出这三个数。void swap(_1_)/ int *pa, int *pb /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; int a,b,c,temp;%d%d%da,&b,&c); if(ab) swap(&b); if(bc) if(_2_)/ if ( ab )%d,%d,%d,a,b,c); 调用函数f,去除数组中的负数,输入数组x7,输出结果为:1 3 4 6 /
7、数组元素的删除void f(int *a,int *m)int i, j ; for(i=0;*m;i+) if(ai0) for(j=i-;j*m-1;j+) aj=aj+1; _1_; *m = *m-1;int i,n=7,x7=1,-2,3,4,-5,6,-7;_2_; f (x, &n) ;for(i=0;n;i+) printf(%5d,xi);); 调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。float f(float, float*, int); float b5=1.1, 2.2, 3.3, 4.4
8、, 5.5 ;, f(1.7,b,5) );float f( _1_ ) float x, float *a, int n float y=a0, t=1;int i; for(i=1; i tolower(ai)0 ai9 n1+;else n2+;,ni); 将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。(例如:输入十进制数79,将输出十六进制4f。# include char trans(int x)if(xmath+pst-english+pst-computer pst-average = sum/3; int i; struct STUDE
9、NT st4=Jessica,98,95,90,Mike,80,80,90, Linda,87,76,70,Peter,90,100,99;4; GetAverage(_2_); st + iNametMathtEnglishtComputAveragen%st%dt%dt%dt%dn,sti.name,sti.math,sti.english, puter,sti.average); 输入m、n(要求输入数均大于0)。输出它们的最大公约数。#include int m, n, k;while ( scanf(%d%d, &m, &n), _1_ );m=0|nn?n:m, k); 求出a中各
10、相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。b1=a0+a1,b9=a8+a9。int a10,b10,i;nInput 10 numbers: for (i=0;10;i+) /* 数组输入 */ai); for (i=1; bi=_1_; /* 计算b数组中的元素 */ / ai-1+ai%3d,bi); if (_2_) /* 每行打印3个数据 */ i%3= =0 输入整数n(n0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。int m=0,t=1,n; while( _ 1 _); scanf(“%d”,&n), n=0 / 逗号表达式 w
11、hile(!(t=n) _ 2 _ t=t*2; m+; printf(“%dn”,m);改错题: 输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 char str256; int i,j,k=0,n; n=strlen(str); /*1*/if (tolower(stri) / if (tolower(stri) tolower(stri) /*2*/ strn=stri; n+;strk=stri; strk=%sn,str); 输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t后面。输入ABCD,则字符串t为ABCDDCBAvoid fun(char *s,char *t) int i,sl;sl=strlen(s);sl;i+) ti=si; tsl+i=ssl-i;tsl+i=ssl-1-i;/*2*/tsl=0 tsl+i =
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1