当前位置: 首页 > news >正文

C语言程序设计题/C语言计算机二级考前押题版

C语言程序设计题/C语言计算机二级考试押题版

与 数位 和 数 有关

求max与min

任意四个数

运算符和表达式版本

#include <stdio.h>
int main( )
{int a,b,c,d;int max,min;printf("please input 4 integers:");scanf("%d%d%d%d", &a, &b, &c, &d); /*输入4个整数*/max=min=a;				/*初始化最大、最小值*/max=max>b?max:b;		/*max与变量b比较,较大的数存在max*/min=min<b?min:b;		/*min与变量b比较,较小的数存在min*/max=max>c?max:c;		/*max与变量c比较,较大的数存在max*/min=min<c?min:c;		/*min与变量c比较,较小的数存在min*/max=max>d?max:d;		/*max与变量d比较,较大的数存在max*/min=min<d?min:d;		/*min与变量d比较,较小的数存在min*/printf("max=%d, min=%d\n",max,min);return 0;
}

任意三个数求max

三目运算符
#include <stdio.h>
int main( )
{int a,b,c;printf("please input 3 integers:");scanf("%d%d%d%d", &a, &b, &c); /*输入3个整数*/printf("max=%d\n",a>b?(a>c?a:c):(b>c?b:c));//二维的思路-> a>b?a:b;return 0;
}
循环语句
# include<stdio.h>
int main()
{	int a,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a>b)if(a>c) t=a;else t=c;else if(b>c) t=b;else t=c;printf("%d\n",t);return 0;
}
数组元素

(考的可能性小)

int main()
{int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int max = arr[0];//若有负数,则不可取:int max = 0;int i = 0;for (i = 0; i <= 10; i++){if (arr[i] > max)max = arr[i];}printf("%d\n", max);return 0;
}

三位数数位求和各种变体

本体

a=n%10;     /*计算n的个位上的数字*/
b=n/10%10;   /*计算n的十位上的数字*/
//b=n%100/10;
c=n/100;     /*计算n的百位上的数字*/

本位求和

#include <stdio.h>
int main( )
{int num,unit,dec,per,total;printf("Input a integer number(100~999):");scanf("%d", &num);			unit=n%10;     /*计算n的个位上的数字*/dec=n/10%10;   /*计算n的十位上的数字*/per=n/100;     /*计算n的百位上的数字*/total=unit+dec+per;    /*计算n的逆序数*/printf("%d\n",total);		/*输入rn*/return 0;
}
递归实现
#include <stdio.h>
int digitSum(int num)
{if(num<10) return num;else  return  num%10 + digitSum(num/10);
}
int main()
{int n, sum;printf("Please input the number:");scanf("%d", &n);sum=digitSum(n);printf("%d\n", sum);return 0;
}
变体
#include<stdio.h>
int fun(int x)
{	int n,s1,s2,s3,t;n=0;t=100;while(t<=999){	s1=t%10;s2=t/10%10;s3=t/100;if(s1+s2+s3==x){	printf("%d\t",t);n++;}t++;}return n;
}
int main()
{	int x;scanf("%d",&x);printf("%d",fun(x));return 0;
}

水仙花数

关键句 : if(x==(pow(a,3)+pow(b,3)+pow(c,3)))

#include<stdio.h> 
#include<math.h>
int main()
{ 	int x=100,a,b,c;while(x>=100&&x<1000){   a=x/100;b=x%100/10;c=x%10;if(x==(pow(a,3)+pow(b,3)+pow(c,3)))printf("%5d",x);x++;}
return 0;
}
函数调用
#include <stdio.h>
int narcissus(int n)
{int i,j,k;i=n%10;j=n/10%10;k=n/100;if (i*i*i+j*j*j+k*k*k==n)return 1;else return 0;
}
int main( )
{int i;for (i=100;i<=999;i++)if (narcissus(i))printf("%5d",i);printf("\n");return 0;
}

逆序输出

关键句 : rn=a * 100+b * 10+c;

#include <stdio.h>
int main( )
{int n;     /*定义变量n表示三位正整数*/int a,b,c; /*定义变量a、b、c分别表示n的个位、十位、百位上的数字*/int rn;    /*定义变量rn表示n的逆序数*/printf("Input a positive integer(100~999):");scanf("%d", &n);			/*输入n*/a=n%10;     /*计算n的个位上的数字*/b=n/10%10;   /*计算n的十位上的数字*/c=n/100;     /*计算n的百位上的数字*/rn=a*100+b*10+c;    /*计算n的逆序数*/printf("%d\n",rn);		/*输入rn*/return 0;
}

count++

给一个不多于5位的正数:求出他是几位数,并按位打印

#include<stdio.h>
int main()
{	int n,m,r,count=0;printf("please input a integer:\n");scanf("%d",&m);if (m<0)  //判断是不是正数m=-m; //负数取相反数n=m;      //换新的代号do{	r=m%10;//不断取余数,将所给数拆开printf("%d",r);//拆一个打印一个count++;//统计拆了几个m=m/10;//降数量级}while (m); printf("\n%d has %d digits\n",n,count);return 0;
}

数列规律

Fibonacci

#include <stdio.h>
int main( )
{int f1, f2, f3;int i;f1 = 1;f2 = 1;i = 2;printf( "%d %d ", f1, f2 );while ( i < 10 ){f3 = f1 + f2;printf( "%d ", f3 );f1 = f2;f2 = f3;i++;}printf( "\n" );return 0;
}
大于t最小的数
int fun(int t)
{	int a=1,b=1,c=0,i;for(i=4;i<=t;i++){	if(c<t){	c=a+b;	a=b;		b=c;}else 	break;}return c;
}

约束范围

double fun(double x)
{	double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;int n=1;do{	s0=s1;sum+=s0;t*=n;p*=(0.5-n+1)*x;s1=p/t;n++;}while(fabs(s1-s0)>1e-6);return sum;
}

前20项求和

2/1+3/2+5/3+8/5+13/8+21/13

#include<stdio.h> 
int main()
{	int i=1,n; double t,x=1,y=2,s,sum=0;while(i<=20) //控制前20个元素相加{	s=y/x;     //单元素形式sum=sum+s; //求和形式t=y;       //找一临时变量y=y+x;     //下一个数的分子=上一个数的分子+上一个数的分母x=t;       //安放临时变量i++;       //使递增}printf("%f\n",sum);return 0;
}

a递增求和(考-)

#include<math.h>
#include<stdio.h>
int main()
{ 	int n,sum=0,i=1,s,a;printf("please input a=");//原子项scanf("%d",&a);printf("please input n=");//项数scanf("%d",&n);s=a;while(i<=n)//控制项数{  sum=sum+s;//最终累计求和结果s=s*10+a;//变项:增加数量级的项i++;//自增}printf("sum=a+aa+aaa+...+a...a=%d\n",sum);return 0;
}

正负号变换(考)

s=m-m2/2+m3/3-m4/4+…,要求最后一项绝对值小于10-4

#include <stdio.h>
#include <math.h>
int main( )
{double s, m, item;int n, sign;scanf( "%lf", &m );s = 0;n = 1;sign = 1;//按体意先规定第一项为正item = 1;do{item = item * m / n;//不加符号项,实质是控制m的累乘s += sign * item;  //最终项sign = - sign;	   //符号变换		n++;               //分母自增} while( fabs( item ) >= 1E-4 );//按要求控制printf( "%.2f\n", s );return 0;
}

分母!求和(考-)

double fun(int n)
{	double t,sn=1.0;int i,j;for(i=1;i<n;i++){	t=1.0;for(j=1;j<=i;j++)t=t*j;sn+=1.0/t;}return sn;
}

图案打印

筝型(考)

image-20230526200621912

#include<math.h>
int main()
{	int i=1,k,l,m;for(;i<=49;i++)//1 - 49{	k=i%7;//余数l=3-(int)fabs((i-1)/7-3);m=(int)fabs(i-4-7*((i-1)/7));if(k==1) //余数为1printf("\n");if(m<=l) printf("*");else printf(" ");}    printf("\n");return  0;  
}

n行菱形

#include <stdio.h>
void printDiamond(int k);
int main()
{int n;scanf("%d",&n);printDiamond(n);return 0;
}
void printDiamond(int k)
{int i,j,n;n = k/2+1;for(i = 0;i<n;i++){for(j=0;j<n-i; j ++)putchar(' ');for(j = 0; j<2*i+1; j++)putchar('*');putchar('\n');}for(i = n-2; i>=0; i --){for(j=0;j<n-i; j ++)putchar(' ');for(j = 0; j<2*i+1; j++)putchar('*');putchar('\n');        }
}

倒三角(考)

#include <stdio.h>
int main( )
{int i, j;for ( i=1 ; i<=5 ; i++ );        //用i先控制总行数{for ( j=1 ; j<=i-1 ; j++ )   // 0 1 2 3 4printf( " " );           //打印空格数for ( j=1 ; j<=11-2*i ; j++ )// 9 7 5 3 1printf( "*" );           //打印*号printf( "\n" );              //控制换行}return 0;
}

平行四边形

#include <stdio.h>
#include <math.h>
int main( )
{int i, j;for ( i=1 ; i<=5 ; i++ )//用i先控制总行数{if ( i<=3 )//前三行正左三角,后下两行倒右三角{for ( j=1 ; j<=3-i ; j++ )// 2 1 0printf( " " );           //打印空格数}for ( j=1 ; j<=3-fabs(3-i) ; j++ )// 3-|3-i|= 1 2 3 2 1printf( "*" );printf( "\n" );}return 0;
}

数学题

完数

6=1+2+3,找出1000内的

image-20230526185914740

#include<stdio.h> 
int main()
{	int m,i,j,s;for(m=6;m<1000;m++)//先圈定范围6开始--1000为止{	s=1;for(i=2;i<m;i++)if(m%i==0) //能被整除,没余数s=s+i;  if(m-s==0) //{	printf("%5d its fastors are 1 ",m);for(j=2;j<m;j++)if(m%j==0)printf("%d ",j);printf("\n");}}return 0;
}

质数(考)

#include <stdio.h>
#include <math.h>
int main( )
{int n, i, k, count = 0;for ( n = 101 ; n <= 999 ; n += 2 )//每次增2,减少循环次数{                                  //总共:101-999k = (int)sqrt(n);//开根号后,强制类型转换for ( i = 2 ; i <= k ; i++ )//2-k,小于k的数{if ( n % i == 0 )//能被整除就跳出循环{break;}}if ( i > k )//承接上一段for语句,如顺利运行到这步:被除数大于强制类型转换后的数//循环除完了,都无约数,即为质数{count++;//计数printf( "%4d", n );//3位数,多1个空格,"%4d"打印if ( count % 8 == 0 )//每行8个printf( "\n" );}	}printf( "\n" );return 0;
}

哥德巴赫猜想

#include <stdio.h>
#include <math.h>
int judgePrime(int n) ;
int main( )
{int m,j,k;int count=1;printf("%4d=%4d+%4d",4,2,2);                 /*对4单独处理*/for (m=6;m<=2000;m=m+2)                      /*从6开始分解*/{k=(int)sqrt(m);                       /*控制最大的第一加法因子终值*/for (j=3;j<=k;j=j+2)                  /*扫描加法因子是不是质数*/if (JudgePrime(j) && JudgePrime(m-j))/*两个加法因子均为质数*/{printf("%4d=%4d+%4d      ",m,j,m-j);/*输出分解的式子*/count++;                            /*输出个数加1*/if (count%4==0)                     /*根据个数控制换行*/printf("\n");break;                             /*找到一种分解就退出*/}}printf("\n");return 0;
}
int judgePrime(int n)                        /*直接用教材中例5_3的代码*/
{	int i,k ;       if ( n==1 )          return 0 ;             k = (int) sqrt ( n );      	   	     for (i = 2; i<=k ; i++)          if (n % i == 0)     return 0 ;       return 1;           
} 

符号函数

#include <stdio.h>
int main( )
{int x, sign;	scanf( "%d", &x );if ( x > 0 )sign = 1;else if ( x == 0 )sign = 0;elsesign = -1;printf( "%d -- %d\n", x, sign );return 0;
}

勾股数(考过)

#include <stdio.h>
int main( )
{int x, y, z;for( x = 1 ; x <=48  ; x++ )for( y = x+1 ; y <=49 ; y++ )for( z = y+1 ; z <=50 ; z++ ){if ( x*x + y*y == z*z )printf( "%3d %3d %3d\n", x, y, z );}return 0;
}

辗转相除(可能)

image-20230526130804382

#include <stdio.h>
int main( )
{int a, b, d;scanf( "%d%d", &a, &b );d = a % b;while ( d != 0 ){a = b;b = d;d = a%b;}printf( "%d\n", b );return 0;
}

摄氏度/华氏度

#include <stdio.h>
int main( )
{float f,c;printf("Input:\nF=");		scanf("%f", &f);			/*输入华氏温度*/c=5.0/9.0*(f-32);			/*计算设施温度*/printf("C=%.2f\n",c);		/*按格式输出*/return 0;
}

函数写法

#include <stdio.h>
double CelToFah ( double c)
{return c*9/5+32;
}
int main( )
{double c;scanf("%lf",&c);while (c>=0){printf("Cel=%lf, Fah=%lf\n",c,CelToFah (c));scanf("%lf",&c);}return 0;
}

同时被3和7整除和的平方根

s=sqrt(s);

double fun(int n)
{	double s=0.0;int i;for(i=1;i<n;i++)if(i%3==0&&i%7==0)s=s+i;s=sqrt(s);return s;
}

计算因子和

s+=i;

int fun(int n)
{	int s=0,i;for(i=2;i<=n-1;i++)if(n%i==0)s+=i;return s;
}

3-n素数平方根和

s+=sqrt(m);

double fun(int n)
{	int m,k,i;double s=0.0;for(m=3;m<=n;m++){	k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0) break;if(i>=k+1)s+=sqrt(m);}return s;
}

自然数倒数和(考-)

关键语句: sum+=1.0/i;

double fun(int n)
{	int i;double sum=0.0;for(i=1;i<=n;i++)if(i%5==0||i%9==0)sum+=1.0/i;return sum;
}

杨辉三角(考)

#include <stdio.h>
#define N 16
int main()
{int i,j,n=0;int a[16][16]={0};do{printf("请输入杨辉三角形的行数:");scanf("%d",&n);}while(n<1 || n>16);for(i=0;i<n;i++)a[i][0]=1;for(i=1;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");}return 0;
}

计算是第几天

#include<stdio.h>
int main()
{int year,month,day,days,i;int b[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};scanf("%d-%d-%d",&year,&month,&day);if(year%400==0||(year%4==0&&year%100!=0))b[2]=29;days=day;for(i=1;i<month;i++)days=days+b[i];printf("%d\n",days);return 0;
}

字符串

@结束

​ for( m=0; getchar()!=‘@’; )

long func()
{  long m;for( m=0; getchar()!='@'; )m++;return  m;
}

整型->字符串

# include <stdio.h>
void convert(int n)
{	int i;if((i=n/10) != 0)convert(i);putchar(n%10+'0');putchar(' ');
}
int main()
{	int number;printf("输入整数:");scanf("%d", &number);printf("输出是:");if(number < 0){	putchar('-');number = -number;}convert(number);putchar('\n');return 0;
}

指针调用字符串比较

# include <stdio.h>
# include <string.h>
void check(char *a, char *b, int(*cmp)(const char *, const char *));
void main()
{	char s1[80], s2[80];int(*p)(const char *, const char *);    /* 函数指针 */p = strcmp;    /* 将函数strcmp的地址赋给函数指针p */printf("输入两个字符串:\n");gets(s1);    /* 输入字符串1 */gets(s2);    /* 输入字符串2 */check(s1, s2, p);    /* 通过指针变量p传递函数strcmp的地址 */
}
void check(char *a, char *b, int(*cmp)(const char *, const char *))
{	printf("测试是否相等\n");if(!(*cmp)(a, b))printf("结果:相等\n");elseprintf("结果:不相等\n");
}

重复字符删除后输出

#include <stdio.h>
void deleteSame(char *s)       //对串s删除相同的元素
{	int i=0,j,k;while(s[i])               //对s[i]进行判断{	for (j=0;j<i;j++)       //与本串中其前面所有字符比较if (s[i]==s[j]) break; //只要与其中一个字符相等则退出循环,将删该字符if (j<i)               //上面循环停止时如果符合此条件说明应删除s[i]for (k=i;s[k];k++)    //删除s[i]字符s[k]=s[k+1];else i++;		        //若当前s[i]不需要删除,则准备比较下一个字符}
}
int main()
{	char str[40];printf("input a string:\n");gets(str);printf("string deleted the same character is:\n");deleteSame(str);puts(str);   return 0;
} 

字符串逆置(考-)

#include <stdio.h>
#include <string.h>
void reverse(char *p)
{int i,j;char t;int n=strlen(p);for(i=0,j=n-1;i<j;i++,j--){t=p[i];p[i]=p[j];p[j]=t;}
}
int main()
{	char str[20];printf("Input the string:");gets(str);printf("Before reverse:");puts(str);reverse(str);printf("After reverse:");puts(str);return 0;
}

大小写转换

#include <stdio.h>
void change(char *p)
{while(*p){if (*p>='a'&&*p<='z')*p=*p-32;p++;}
}int main()
{   char str[20];gets(str);change(str);puts(str);return 0;
}

过滤非数字的字符

#include <stdio.h>
#include <string.h>
void change(char *p)
{  char a[20];int i=0,j;strcpy(a,p);for(j=0;a[j];j++){if (a[j]>='0'&&a[j]<='9')p[i++]=a[j];}p[i]='\0';
}
int main()
{char str[20];gets(str);change(str);puts(str);return 0;
}

数组

删去数组相同元素

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define N 80
int fun(int a[], int n)
{    int i=1,j;int count=1;int flag;while(i<n){  flag=1;for(j=0;j<count;j++){     if (a[j]==a[i]){  flag=0;break;  }}if (flag){  count++;a[count-1]=a[i];}i++;}return count;
}
int main()
{   int a[N],i,n=20;srand(time(NULL));for (i=0;i<20;i++)a[i]=rand()%10;printf("The original data :\n");for(i=0; i<n; i++)printf("%3d",a[i]);n=fun(a,n);printf("\n\nThe data after deleted :\n");for(i=0;i<n;i++)printf("%3d",a[i]); printf("\n\n");return 0;
}

删除偶数

#include<stdio.h> 
#include<stdlib.h>
#include<time.h>
void createRandom(int p[],int n);  //产生随机元素
int deleteEven(int p[],int n);      //删除偶数元素
void printOut(int p[],int n);      //输出函数
int main( ) 
{	int arr[100],n,deleteNum; printf("Input number of elements(number<100):\n");scanf("%d",&n);createRandom(arr,n);printf("original array:\n");printOut(arr,n);deleteNum=deleteEven(arr,n);printf("after delete,the array is:\n");printOut(arr,n-deleteNum);return 0;
}
void createRandom(int p[],int n)
{	int i;srand(time(0));for (i=0;i<n;i++)p[i]=rand()%100+1;
}
int deleteEven(int p[],int n)
{	int i=0,j,count=0;while(i<n-count){	if (p[i]%2==0){	for (j=i+1;j<n-count;j++)p[j-1]=p[j];count++;}else i++;}return count;
}
void printOut(int p[],int n)
{	int i;for (i=0;i<n;i++)printf("%4d",p[i]);printf("\n");
}

array素数(考+)

#include <stdio.h> 
#define MAX 1000 
int fun(int lim, int aa[MAX]) 
{	int i,j,k=0; for(i=2;i<=lim;i++){ 	for(j = 2 ; j <= (i/2) ; j++)if(i % j == 0) break; if(j > (i/2)) 	aa[k++] = i; }return k; 
} 
int main() 
{	int m, i, sum; int array[MAX] ; printf("输入一个整数"); scanf("%d", &m);sum=fun(m, array); for(i=0 ; i < sum ; i++){ 	if(i%10==0&&i!=0)printf("\n");printf("%5d", array[i]); }return 0;
}

元素交换(考)

最大最小数交换

#include <stdio.h> 
#include <stdlib.h>
#include <time.h>
void swap(int arr[],int x,int y)       //交换两数
{	int t=arr[x];arr[x]=arr[y];arr[y]=t;
}
int findMax(int a[],int n)  //寻找数组中最大元素返回其指针
{	int i,maxPos=0;for (i=1;i<n;i++)if (a[i]>a[maxPos]) maxPos=i;return maxPos;
}
int findMin(int a[],int n) //寻找数组中最小元素返回其指针
{	int i,minPos=0;for (i=1;i<n;i++)if (a[i]<a[minPos]) minPos=i;return minPos;
}
void printOut(int arr[],int n)  //输出数组中前n个元素
{	int i;for (i=0;i<n;i++)printf("%8d",arr[i]);printf("\n");
}
int main ( ) 
{	int a[10],maxPos,minPos,i; printf("input 10 elements:\n");srand(time(NULL));for (i=0;i<10;i++)      //读入10个元素a[i]=rand();minPos=findMin(a,10);   //调用函数求得最小元素位置maxPos=findMax(a,10);   //调用函数求得最大元素位置printf("before exchange:\n");printOut(a,10);         //输出交换前的序列swap(a,minPos,0);         //交换第一个元素与最小元素swap(a,maxPos,9);       //交换最后一个元素与最大元素printf("after exchange:\n");printOut(a,10);         //输出交换后的序列return 0;
}

学生成绩查询系统

# include <stdio.h>
# include <stdlib.h>
double Nosearch(int sc[][7])
{	int i,j,sum=0;double average;printf("输入学号:");scanf("%d", &i);for(j=1; j<7; j++){	printf("第%d科成绩是%d\n", j, sc[i][j]);sum += sc[i][j];}average = sum/6.0;return average;
}
double Subsearch(int sc[][7])
{	int i,j,sum=0;double average;printf("输入考试科目号:");scanf("%d", &j);for(i=1; i<5; i++){	printf("第%d号学生本科成绩是%d\n", i, sc[i][j]);sum += sc[i][j];}average = sum/4.0;return average;
}
void input(int sc[][7])
{	int i,j;printf("请输入成绩\n");for(i=1; i<5; i++)for(j=1; j<7; j++)scanf("%d", &sc[i][j]);
}
int main( )
{	int select;int i, j;int score[5][7];double average = 0;do{printf("本程序有4项功能:\n");printf(" 1. 根据学号查询学生成绩\n");printf(" 2. 根据考试号统计成绩\n") ;printf(" 3. 根据考试号和学号查询成绩\n");printf(" 4. 成绩录入\n");printf(" 0. 退出\n");printf(" 请输入选择(0 - 4): ");scanf("%d", &select);switch(select){case 0:printf("OK\n");exit(0);break;case 1:average=Nosearch(score);printf("学生的平均成绩是%7.2f\n", average);break;case 2:average=Subsearch(score);printf("本科平均成绩是%7.2f\n", average);break;case 3:printf("输入学号和考试号:");scanf("%d %d", &i, &j);printf("第%d号学生的第%d科考试成绩是%d\n", i, j, score[i][j]);break;case 4:input(score);break;default:break;}}while(1);return 0;
}

指针

交换排序

#include<stdio.h>
int main()
{ int a[10],*p=a,n,i,j;do {scanf("%d",&n);} while(n<=0||n>10);for(i=0;i<n;i++)scanf("%d",p+i);for(i=0;i<n-1;i++){for(j=i;j<n;j++)if(*(p+j)<*(p+i)){int t=*(p+j);*(p+j)=*(p+i);*(p+i)=t;}}for(i=0;i<n;i++)printf("%d ",p[i]);return 0;
}

逆序存放(考)

# include <stdio.h>
void inv(int *x, int n);
int main()
{	int i;int array[10] = {1, 3, 9, 11, 0, 8, 5, 6, 14, 98};printf("原始数组是:\n");for(i=0; i<10; i++)printf("%d " , array[i]);printf("\n");inv(array, 10);printf("按相反次序存放后的数组为:\n");for(i=0; i<10; i++)printf("%d ", array[i]);printf("\n");return 0;
}
void inv(int *x, int n)
{	int *p, *i, *j , t;int m = (n-1)/2;i = x; j = x + n - 1;p = x + m;for(; i<=p; i++, j--){	t = *i;*i = *j;*j = t;}
} 
逆序存放并输出变化元素
# include <stdio.h>
void inv(int *x, int n);
int main()
{	int i;int array[10] = {1, 3, 9, 11, 0, 8, 5, 6, 14, 98};printf("原始数组是:\n");for(i=0; i<10; i++)printf("%d\t" , *(array+i));printf("\n");inv(array, 10);printf("按相反次序存放后的数组为:\n");for(i=0; i<10; i++)printf("%d\t",*(array+i));printf("\n");return 0;
}
void inv(int *x, int n)
{	int *p, *i, *j , t;int m = (n-1)/2;j = x + n - 1;p = x + m;for(i = x; i<=p; i++, j--){	t = *i;*i = *j;*j = t;}
}

平均值比较

#include <stdlib.h> 
#include <stdio.h> 
#include<time.h>
#define N 10 
double fun(double *x) 
{	int i, j; double av, y[N]; av=0; for(i=0; i<N; i++)av +=x[i]/N; for(i=j=0; i<N; i++)if( x[i]<av ){	y[j]=x[i]; x[i]=-1; j++;}i=0;while(i<N){ 	if( x[i]!= -1 )y[j++]=x[i];i++; } for(i=0; i<N; i++)x[i] = y[i];return av;
} 
int main() 
{ int i; double x[N];srand(time(NULL));for(i=0; i<N; i++){ 	x[i]=rand()%50;printf("%4.0f ",x[i]);} printf("\n"); printf("\nThe average is: %f\n",fun(x)); printf("\nThe result :\n"); for(i=0; i<N; i++) printf("%5.0f ",x[i]);printf("\n"); return 0;
}

宏定义

2月天数

#include <stdio.h>
/*定义计算二月天数的带参宏*/
#define DAYS_FEB(year)  (year)%4==0 && (year)%100!=0 || (year)%400==0 ? 29: 28
int main( )
{int year;int days;printf("input a year:"); scanf("%d", &year);				/*输入年份*/days=DAYS_FEB(year);			/*使用宏求年份year的二月的天数*/printf("days of the Feb.: %d\n",days); 	/*输出结果*/return 0;
}

数值交换

define CHANGE(a,b,t) t=a;a=b;b=t

#include<stdio.h>
#define CHANGE(a,b,t) t=a;a=b;b=t
int main()
{	int c,d,s;scanf("%d%d",&c,&d);CHANGE(c,d,s);printf("c=%d,d=%d\n",c,d);return 0;
}

两数相除的余数,3和7的倍数

define Q(a,b) (a)%(b),if (Q(i,3) == 0&&Q(i,7) == 0)

#include<stdio.h>
#define Q(a,b) (a)%(b)
int main()
{	int i;for (i=1;i<=200;i++)if (Q(i,3)==0&&Q(i,7)==0)printf("%5d",i);printf("\n");return 0;
}

相关文章:

C语言程序设计题/C语言计算机二级考前押题版

C语言程序设计题/C语言计算机二级考试押题版 与 数位 和 数 有关 求max与min 任意四个数 运算符和表达式版本 #include <stdio.h> int main( ) {int a,b,c,d;int max,min;printf("please input 4 integers:");scanf("%d%d%d%d", &a, &b, …...

Canonical标签在SEO中重要作用

canonical标签是很多搜索引擎都支持的一个标签&#xff0c;它的作用是标记某一网页的唯一url地址。这样做的目的是保证我们的某一网页在搜索引擎中只有一个唯一的地址。 Canonical标签对于一些入行不久的人来说&#xff0c;可能会有些陌生。但这个标签是很多搜索引擎都支持的标…...

【Linux之进程间通信】06.Linux进程通信 - 共享内存

【Linux之进程间通信】 项目代码获取&#xff1a;https://gitee.com/chenshao777/linux-processes.git &#xff08;麻烦点个免费的Star哦&#xff0c;您的Star就是我的写作动力&#xff01;&#xff09; 06.共享内存 共享内存是Linux进程间的通信方式之一 创建共享内存函数…...

oracle安装

服务端安装&#xff08;公司中不需要&#xff0c;只安装客户端就行&#xff09; 1、挂载一个Windows系统 双击vmx文件 启动 2、网络配置 添加一个网络 自己电脑看控制面板是否添加虚拟网卡 查看连接的网络&#xff0c;ip地址不能为1&#xff0c;为1就自己修改&#xff0c;…...

CSS样式的三种引入方式及优先级

说明&#xff1a;网页开发有三种技术&#xff0c;分别是html、css和js&#xff0c;分别对应页面的结构、表现和动作。css样式引入&#xff0c;是指把对页面的渲染作用到html上&#xff0c;有以下三种方式&#xff1a;行内式、内嵌式和外联式。 第一种&#xff1a;行内式&#…...

Linux第二天

上传 scp -r 本地文件路劲 用户名目标主机地址&#xff1a;路径 下载&#xff1a;scp -r 用户名目标主机地址&#xff1a;路径 本地目录 ls -A /root //查看root文件下所有的隐藏文件 命令&#xff1a;ls 选项&#xff1a; -l&#xff1a;查看文件属性 -h&#xff1a;文…...

微服务和领域驱动

一、微服务 1.1 什么是微服务 微服务就是一些协同工作的小而自治的服务。 关键词&#xff1a; 小而自治 -- 小 “小”这个概念&#xff0c;一方面体现在微服务的内聚性上。 内聚性也可以称之为单一职责原则&#xff1a;“把因相同原因而变化的东西聚合到一起&#xff0c;…...

Redis如何做到内存高效利用?过期key删除术解析!

大家好&#xff0c;我是小米&#xff0c;一个热衷于分享技术的小伙伴。今天我要和大家探讨一个关于 Redis 的话题&#xff1a;删除过期key。在使用 Redis 进行数据存储和缓存时&#xff0c;我们经常会遇到过期数据的处理问题。接下来&#xff0c;我将为大家介绍为什么要删除过期…...

EFDC模型教程

详情点击链接&#xff1a;EFDC建模方法及在地表水环境评价、水源地划分、排污口论证 一&#xff0c;软件安装 1.1 EFDC安装 1.2 EFDC-Explorer安装 1.3 Delft3D安装 1.4 Google Earth安装二&#xff0c;EFDC模型 2.1 EFDC模型 2.2 EFDC-DSI模型 2.3 EFDC的…...

URLConnection(三)

文章目录 1. 配置连接2. protected URL url3. protected boolean connected4. protected boolean allowUserInteraction5. protected boolean doInput5. protected boolean doOutput6. protected boolean isModifiedSince7. protected boolean useCaches8. 超时 1. 配置连接 U…...

针对KF状态估计的电力系统虚假数据注入攻击研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

2023-05-25 LeetCode每日一题(差值数组不同的字符串)

2023-05-25每日一题 一、题目编号 差值数组不同的字符串 二、题目链接 点击跳转到题目位置 三、题目描述 给你一个字符串数组 words &#xff0c;每一个字符串长度都相同&#xff0c;令所有字符串的长度都为 n 。 每个字符串 words[i] 可以被转化为一个长度为 n - 1 的 …...

MI小米验厂知识点

【MI小米验厂知识点】 小米科技有限责任公司成立于2010年3月3日&#xff0c;是专注于智能硬件和电子产品研发、智能手机、智能电动汽车、互联网电视及智能家居生态链建设的全球化移动互联网企业、创新型科技企业。小米公司创造了用互联网模式开发手机操作系统、发烧友参与开发改…...

损失函数——交叉熵损失(Cross-entropy loss)

交叉熵损失&#xff08;Cross-entropy loss&#xff09;是深度学习中常用的一种损失函数&#xff0c;通常用于分类问题。它衡量了模型预测结果与实际结果之间的差距&#xff0c;是优化模型参数的关键指标之一。以下是交叉熵损失的详细介绍。 假设我们有一个分类问题&#xff0…...

电商ERP接口erp进销存接口

电商API详情接口在ERP中的重要性 电商行业的发展已经改变了人们的消费方式。作为一种连续不断涌现并不断发展的新型销售方式&#xff0c;电商具有开创新市场、大众化消费、商业模式的多样化、效率的提高等优势&#xff0c;对传统零售业产生了极大的冲击。而ERP作为企业资源规划…...

leetcode 922. 按奇偶排序数组 II

题目描述解题思路执行结果 leetcode 922. 按奇偶排序数组 II. 题目描述 按奇偶排序数组 II 给定一个非负整数数组 nums&#xff0c; nums 中一半整数是 奇数 &#xff0c;一半整数是 偶数 。 对数组进行排序&#xff0c;以便当 nums[i] 为奇数时&#xff0c;i 也是 奇数 &#…...

Unity四叉树地图

当使用Unity构建大规模的游戏地图或场景时&#xff0c;使用四叉树数据结构可以提高性能和效率。四叉树是一种基于分割的数据结构&#xff0c;将空间划分为四个相等的子区域&#xff0c;并以递归方式构建树结构。在游戏开发中&#xff0c;四叉树常用于空间分区、碰撞检测和可视化…...

【unity插件】OpenFracture插件实现物体破裂和切割

插件地址 https://github.com/Mustenaka/OpenFracture 使用注意事项 1.如果要导入自定义网格,则必须在导入设置中将“启用读/写”设置为 true。否则,您将收到错误。 2.网格必须是非相交和封闭的。否则,重新三角测量将失败。 上面描绘的是凳子的线框模型。注意横杆如何与…...

Spring Security实现登录

前言 Spring Security是Spring框架下的一个用于身份验证和授权的框架&#xff0c;它可以帮忙管理web应用中的用户认证、授权以及安全性问题。本文将介绍如何使用Spring Security实现用户登录功能&#xff0c;本文主要包括以下内容&#xff1a; 环境准备Spring Security核心概…...

小狐狸ChatGPT付费创作系统1.9.7独立版 + H5端 + 小程序前端增加AI绘画+GPT4接口

小狐狸ChatGPT 1.9.7独立版经播播资源测试了版本比较&#xff0c;本版核心增加了GPT4.0接口功能&#xff0c;小程序端内置了AI绘画功能。体验下来问答速度感觉体验更好。小程序端有更新请对应开发工具更新上传&#xff0c;本版无开源端。播播资源提供的安装教程详见下方&#x…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...