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

【C语言】上手实验

实验1  顺序、分支结构

程序填空

1. 

题目描述:输入三个整数存放在变量a、b、c中,找出三个数中的最大值放于max中,并将其输出。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include <stdio.h>
void main()
{int a,b,c,max;			//声明四个整型变量printf("请输入3个整型数据:");scanf("%d%d%d",&a,&b,&c);if (a>b)	max=a;else		max=b;		//将a和b中的较大值记录在max中if (c>max)	max=c;		//如果c是最大值printf("max=%d\n",max);	//输出最大值max}

2. 

题目描述:根据三边长求三角形的面积。请将未完成的部分填入,使之完整。该题中使用海伦公式求解:area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s是三边和的一半,即(a+b+c)/2。sqrt函数包含在math.h的头文件中,它的功能是求平方根。

代码:

#include<stdio.h>#include<math.h>main(){float a,b,c,s,area;printf("输入三角形的边长a,b,c:");scanf("%f%f%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));/* 函数sqrt()用来计算一个非负数的平方根,使用这个函数,需要在源程序中增加"#include<math.h>" */printf("area=%.2f\n",area);}

3. 

题目描述:输入一个不多于4位的正整数,要求求出它是几位数,分别输出其每一位数字。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include<stdio.h>main(){int  n,ge,shi,bai,qian; //个,十,百,千位: ge,shi,bai,qianprintf("输入一个不多于4位的正整数:");scanf("%d",&n);if (n<10)  printf("%d是1位数\n",n);elseif(n<100){printf("%d是2位数\n",n);ge=n%10;shi=n/10;printf("十位:%d,个位:%d\n",shi,ge);}elseif(n<1000){printf("%d是3位数\n",n);ge=n%10;shi=n/10%10;bai=n/100;printf("百位:%d,十位:%d,个位:%d\n",bai,shi,ge);}elseif( n>9999)  printf("它超过了4位!\n");else{printf("%d是4位数\n",n);ge=n%10;shi=n/10%10;bai=n/100%10;qian=n/1000;printf("千位:%d,百位:%d,十位:%d,个位:%d\n",qian,bai,shi,ge);}}

4. 

题目描述:在屏幕上显示一张中文时间表,用户根据提示从中选择,程序应根据用户的选择输出相应的英文问候信息。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include<stdio.h>main(){int  n;printf("**** 时间表 ****\n");printf("1:上午\n");printf("2:下午\n");printf("3:晚上\n");printf("请输入您的选择:");scanf("%d",&n);  //用户输入1,2或3switch (n){case  1:   printf("Good morning!\n"); break;case  2:   printf("Good afternoon!\n");  break;case  3:   printf("Good evening!\n");   break;default:   printf("输入错误!\n");}}

5. 

题目描述:已知银行整存整取存款不同期限的月息利率分别为:

                        0.33%   期限1年

    0.36%   期限2年

    月息利率 =  0.39%   期限3年

    0.45%   期限5年

    0.54%   期限8年

要求输入存款的本金和期限,求到期时能从银行得到的利息与本金的合计。

以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include<stdio.h>main(){int year; //存款期限float money,rate=0,total; //money:本金,rate:月利率,total:本利合计printf("输入本金和期限(1,2,3,5或8年): ");scanf("%f%d",&money,&year);switch(year){case 1:   rate=0.0033;  break; //期限一年的月利率case 2:   rate=0.0036;  break;case 3:   rate=0.0039;  break;case 5:   rate=0.0045;  break;case 8:   rate=0.0054;  break;default:  printf("年限输入错误!\n");}total=money*(1+ year*12*rate);printf("到期后本利合计为%.4f元\n",total);}

程序设计

6.

题目标题:通过日期求某月的天数。

题目描述:输入日期的年份和月份,求该月有多少天。提示:对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。

输入描述: 输入两个正整数y和m分别表示年份和月份。

输出描述:如果y和m满足条件:1900<=y<3000,0<m<13,输出该月的天数;否则输出“Input error!”。 

样例输入:2010 12

样例输出:31

#include <stdio.h>void main(){int y,m;printf("输入年份和月份:\n");scanf("%d%d",&y,&m);if (1900<=y && y<3000 && 0<m<13){switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("31\n");break;case 4:case 6:case 9:case 11:printf("30\n");break;case 2:if (y%4==0 && y%100!=0)printf("29\n");elseprintf("28\n");break;}}elseprintf("Input error!\n");}

7.

题目标题:录取研究生。

题目描述:某高校录取研究生的要求是,新生的每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(“没有录取”、“自费”、“公费”三种情况)。

输入描述:输入四门课的成绩,成绩均为0~150之间的整数。

输出描述:录取结果。(“没有录取”、“自费”、“公费”)

样例输入:60 100 130 80

样例输出:公费

#include <stdio.h>void main(){int n1,n2,n3,n4;printf("输入四门课的成绩,成绩均为0~150之间的整数。\n");scanf("%d%d%d%d",&n1,&n2,&n3,&n4);if ( n1>150 || n2>150 || n3>150 || n4>150 || n1<0 || n2<0 || n3<0 || n4<0 )printf("error!\n");else{if ( n1>=60 && n2>=60 && n3>=60 && n4>=60 && n1+n2+n3+n4>=340 ){if ( n1+n2+n3+n4>=370 ){printf("公费\n");}else{printf("自费\n");}}else{printf("没有录取\n");}}}

8.

题目标题:骑车与走路

题目描述:在华农校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。

输入描述:一个整数:为一次办事要行走的距离,单位为米。

输出描述:对输入的整数,如果骑车快,输出一行“Bike”;如果走路快,输出一行“Walk”;如果一样快,输出一行“All”。

样例输入:

【样例输入1】  【样例输入2】

50 120

样例输出:

【样例输出1】  【样例输出2】

Walk Bike

#include <math.h>#include <stdio.h>void main(){float walk,bike;int meter;printf("输入距离:\n");scanf("%d",&meter);walk=meter/1.2;bike=50+meter/3.0;if ( fabs(walk-bike)<=1e-3 )printf("all\n");else{if ( walk<bike )printf("walk\n");else printf("bike\n");}}

9.

题目标题:停车场收费

题目描述:一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。

输入描述:输入停车的时间t。

输出描述:输出应该收取的停车费用cost,保留小数点后2位。

样例输入:3.46

样例输出:5.92

#include <stdio.h>void main(){float t;float cost = 5;printf("输入停车的时间t:");scanf("%f",&t);if ( t>24 )printf("error!\n");else{if ( t>3 ){cost=cost+2*(t-3);if ( cost>40 )cost=40;}printf("%.2f\n",cost);}}

10.

题目标题:简单计算器。

题目描述:模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、 ‘-’、 ‘*’ 或‘/ ’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/ ’的除数不能为0。

输入描述:两个实数a、b和一个运算符号c。

输出描述:如果能运算,输出a和b的运算结果;如果c为除号,且b为0,输出“除数为0!”;如果c不是’+’、 ‘-’、 ‘*’ 或‘/ ’中的运算符号,输出“运算符号错误!”

样例输入:4*9 

样例输出:4.00*9.00=36.00

#include <math.h>#include <stdio.h>void main(){float a,b;char c;scanf("%f%c%f",&a,&c,&b);if ( c!='+' && c!='-' && c!='*' && c!='/' )printf("运算符号错误!\n");else{if ( c=='/' && fabs(b-0)<=10e-10 )printf("除数为0!\n");else{switch(c){case '+':printf("%f + %f = %f\n",a,b,a+b);break;case '-':printf("%f - %f = %f\n",a,b,a-b);break;case '*':printf("%f * %f = %f\n",a,b,a*b);break;case '/':printf("%f / %f = %f\n",a,b,a/b);break;}}}}

实验2  循环结构

程序填空

1. 

题目描述:马克思曾经出过这样一道趣味数学题:有30个人在一家小饭馆里用餐,其中有男人、女人和小孩。每个男人花了3先今,每个女人花了2先令,每个小孩花了1先令,一共花去50先令。问男人、女人以及小孩各有几个人。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include<stdio.h>

main()

{

    int n;    //n记录解的个数

    int a,b,c;  //分别记录男、女、小孩的人数

    n=0;    //初始化n的值

    for(a=1;a<=30;a++)

    {

        for(b=1;b<=30;b++)

        {

            c=50-3*a-2*b;

            if((a+b+c==30) && (c<=30))

            {

                printf("男人有: %d个;女人有:%d个;小孩有:%d个。\n",a,b,c);

                n++;

            }

        }

    }

    printf("共有%d种方案\n",n);

}

2. 

题目描述:下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填空使程序完整,并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include<stdio.h>

main()

{

    int n, k=1, s=0, m ;

    for (n=1 ; n<=100 ; n++)

    {

        k=1 ; s=0 ;

        m=n ;

        while ( m!=0 )

        {

            k*=m%10;

            s+=m%10;

            m=m/10;

        }

        if (k>s)  printf("%d ",n);

    }

    printf("\n");

}

3. 

题目描述:一个数如果恰好等于除它本身的所有因子之和,这个数就称为完数。例如,6=1+2+3, 6就称为完数。输出1000以内所有满足完数条件的数及其个数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。

代码:

#include<stdio.h>

main()

{

int n,s,i,count=0;

printf("1000以内的完数为:");

for(n=1;n<1000;n++)

{

s=0;

for(i=1;i<n;i++) //计算小于n的因数和

if (n%i==0)  s=s+i; //如果i是n的因数

if (s==n) //判断是否满足完数的条件

{

printf("%d ",n);

count=count+1; //完数的个数+1

}

}

printf("\n1000以内完数的个数为:%d\n",count);

}

4. 

题目描述:求100以内能被3整除 且个位数字为9的所有正整数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。

代码:

#include<stdio.h>

main()

{

int i;

for(i=1;i<100;i++)

{

if(i%3==0&& i%10==9)

printf("%d ",i);

}

printf("\n");

}

5. 

题目描述:求输入的两个正整数的最大公约数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。

代码:

#include<stdio.h>

main()

{

int x,m,n;

printf("请输入两个正整数:");

scanf("%d%d",&m,&n);

if(m<n) x=m;

else x=n; //x取m和n中的较小值

//x从m和n的较小值开始到1的范围内递减寻找公约数

while(x>=1)

{

if(m%x==0 && n%x==0) //如果x是m和n的约数,x的值即为最大公约数

break;

x=x-1;

}

printf("%d和%d的最大公约数是%d\n",m,n,x);

}

程序设计

6.

题目标题:数字求和。

题目描述:给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?

输入描述:输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。

输出描述:输出一行,给出一个正整数,是5个数中小于a的数的和。

样例输入:

10 1 2 3 4 11

样例输出:

10

#include<stdio.h>

main()

{

int a,i,sum;

int n[5];

scanf("%d",&a);

for(i=0;i<5;i++)

scanf("%d",&n[i]);

sum=0;

for(i=0;i<5;i++)

{

if (n[i]<a)

sum=sum+n[i];

}

printf("%d",sum);

}

7.

题目标题:球弹跳高度的计算。

题目描述:一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米? 第5次反弹多高?

输入描述:输入一个整数h0,表示球的初始高度。

输出描述:两个数据s和h,分别表示第5次落地时共经过s米,第5次反弹高度为h米,s和h用空格隔开。

注意:结果可能是实数,结果用float类型保存。
样例输入:10

样例输出:28.7500 0.3125

#include<stdio.h>

main()

{

int h0;

float s,h,i;

scanf("%d",&h0);

h=h0;

s=0;

for(i=1;i<=5;i++)

{

if (i==1)

s=s+h;

else s=s+2*h;

h=h/2;

}

printf("%f %f\n",s,h);

}

8.

题目标题:求分数序列和。

题目描述:有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和。

输入描述:输入有一行:正整数n。

输出描述:输出有一行:分数序列的和(浮点数,精确到小数点后4位)。

【提示】 

1. 最好在程序中使用双精度浮点数(double)记录求得的和。 

2. 要输出浮点数、双精度数小数点后4位数字。

样例输入:

99

样例输出:

160.4849

#include<stdio.h>

void main()

{

long n,i;

double sum,p,q,t;

scanf("%d",&n);

p=2;

q=1;

sum=0;

for(i=1;i<=n;i++)

{

sum=sum+p/q;

t=p+q;

q=p;

p=t;

}

printf("%.4lf\n",sum);

}

9.

题目标题:点和正方形的关系。

题目描述:在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。

输入描述:多组数据,每行包含两个浮点型数据,分别表示一个点的横、纵坐标,输入坐标为0,0时表示输入结束。(注意,输入的数据不止3组)

输出描述:对每组输入的点进行判断,显示yes或no,表示是否在正方形中,最后输入的原点也要显示yes,然后才不再继续输入点坐标。(当点在正方形的边上时,也认为在正方形内)

样例输入:

3 4

0.5 1

0 0

样例输出:

no

yes

yes

#include<stdio.h>

void main()

{

float x,y;

do

{

scanf("%f%f",&x,&y);

if(x<=1 && y<=1 && x>=-1 && x>=-1)

printf("yes\n");

else

printf("no\n");

} while(x!=0 && y!=0);

}

10.

题目标题:抓交通肇事犯。

题目描述:一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。

输入描述:无。

输出描述:直接显示一个四位整数表示肇事车号

样例输入:

样例输出:

#include<stdio.h>

main()

{

    int i,j,k,c;

    for(i=1;i<=9;i++) /*i:车号前二位的取值*/

        for(j=0;j<=9;j++) /*j:车号后二位的取值*/

            if(i!=j) /*判断二位数字是否相异*/

            {

                k=i*1000+i*100+j*10+j; /*计算出可能的整数*/

                for(c=31;c*c<k;c++); /*判断该数是否为另一整数的平方*/

                    if(c*c==k) printf("%d\n",k); /*若是,打印结果*/

            }

}

}

实验3  数组与字符串

程序填空

1. 

题目描述:

随机产生10个整数存放到数组中(下标0的位置不放,从下标1开始),输入待查找的整数x,查找x是否存在于这10个数中。若存在,则输出x(最初)出现在这批数中的位置序号(例如1或2或……);若不存在x,则输出“不存在”。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include <stdio.h>

#include <stdlib.h>

void main( )

{

int a[101],k,x;

for(k=1;k<=10;k++)  //从数组中下标1的元素开始存放数据

{

a[k]=rand( )%101; //产生0~100之间的的整数

printf("%d ",a[k]);

}

printf("\n");

scanf("%d",&x); //输入待查找数x

for(k=1;k<=10;k++)

if(a[k]==x) break; //若发现了x,则不用继续循环、继续查找

if(k<=10)

      printf("x存在,它的位置序号是:%d\n",k);

    else

      printf("不存在!\n");

}

2. 

题目描述:

编写一个程序,输入一个5×5阶的矩阵,分别计算并输出其两条对角线上的各个元素之和。请填空使程序完整,并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include <stdio.h>

main( )

{

int a[5][5],i,j,sum1,sum2;

for(i=0;i<5;i++)  //输入25个数据存入5×5的矩阵中

for(j=0;j<5;j++)

            scanf("%d",&a[i][j]);

    printf("矩阵为:\n");

    for(i=0;i<5;i++)  //按行列方式显示矩阵

{

    for(j=0;j<5;j++)

            printf("%5d",a[i][j]);

        printf("\n");

}

sum1=sum2=0; //初始化表示对角线和的变量

for(i=0;i<5;i++)

    {

        for(j=0;j<5;j++)

        {

            if(i==j) //将左上到右下的对角线上的元素加到sum1中

                sum1+=a[i][j];

            if(i+j==4) //将右上到左下的对角线上的元素加到sum2中

                sum2+=a[i][j];

        }

    }

printf("两条对角线的元素和分别为:%d,%d",sum1,sum2);

}

3. 

题目描述:

输入5个整数依次存放到数组a中(从下标1开始存放),再输入待插入的整数x以及它要插入到数组中的位置下标k(1≤k≤5),要求插入后不影响a中原来下标为k到5的所有元素的先后顺序。请按照数组中的元素顺序,输出插入前的5个整数和插入后的这6个整数。提示:插入时,应该先从后往前地(从下标5到下标k)将每个数组元素都后移1个位置,最后再将x存放到下标k的元素中。请在计算机上调试以下程序以补足其中的空格。

代码:

#include <stdio.h>

#include <stdlib.h>

void main( )

{

int a[101],k,j,x;

//分别输入5个整数

for(j=1;j<=5;j++) scanf("%d",&a[j]);

scanf("%d%d",&x,&k); //输入待插入的数x和插入的位置下标k

if(k<1 || k>5)  exit(0);

for(j=5;j>=k;j--) //从下标5到下标k,将每个数组元素都后移1个位置

a[j+1]=a[j];

a[k]=x;

//输出将x插入到下标k后的这6个数

for(j=1;j<=6;j++) printf("%d ",a[j]);

}

4. 

题目描述:

输入字符串s及待删除的字符ch,将s中所有与ch相同的字符都删除掉,输出删除后得到的新串。以下程序是直接在数组s中进行删除,得到的新串仍然在数组s中。请在计算机上调试该程序以补足其中的空格。

代码:

#include <stdio.h>

main( )

{

char  s[81], ch;

int k,j;

gets(s); //输入一个字符串后按回车键

ch=getchar(); //输入待删除的字符后按回车键

//k代表s中每个字符的下标

//j代表未删除(保留)字符应放在s中新的位置下标

for(k=j=0;s[k]!='\0';k++)

if(s[k]!=ch)

{

s[j]= s[k];

j++;

}

s[j]='\0'; //得到的新串末尾要放结束符

printf("%s\n",s);

}

5. 

题目描述:

输入一行字符串,分别统计其中英文字母、空格、数字和其他字符的个数,并输出。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。

代码:

#include <stdio.h>

void main( )

{

int a,b,c,d;//a,b,c,d分别用来记录英文字母、空格、数字和其他字符的个数

char s[101];

int i=0;

    gets(s); //输入一个含有空格的字符串存入s中

a=b=c=d=0;

while(s[i]!='\0') //当下标为i的字符不是字符串结束标记时循环

{

        if(s[i]>='A'&&s[i]<='Z' || s[i]>='a'&&s[i]<='z')//如果是一个英文字母字符

            a++;

        else

            if (s[i]==' ')    //如果是一个空格字符

                b++;

            else

                if(s[0]>='0'&&s[i]<='9')    //如果是一个数字字符

                    c++;

                else

                    d++;

    i++;

}

printf("%d %d %d %d\n",a,b,c,d); //输出英文字母、空格、数字和其他字符的个数

}

程序设计

6.

题目标题:陶陶摘苹果。

题目描述:

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

输入描述:

输入包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

输出描述:

输出只包含一个整数,表示陶陶能够摘到的苹果的数目。

样例输入:

100 200 150 140 129 134 167 198 200 111

110

样例输出:

5

#include <stdio.h>

#include <stdlib.h>

int main()

{

  int a[10];

  int h,i,count;

  for(i=0;i<10;i++)

  {

scanf("%d",&a[i]);

if (a[i]<100 || a[i]>200)

        {

printf("input error!\n");

exit(0);

}

  }

  scanf("%d",&h);

  if (h<100 || h>120)

  {

printf("input error!\n");

exit(0);

  }

  count=0;

  h=h+30;

  for(i=0;i<10;i++)

  {

if(a[i]<=h)

count++;

  }

  printf("%d\n",count);

  return(1);

}

7.

题目标题:歌唱比赛选手成绩计算。

题目描述:

歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。

提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。

输入描述:

依次输入6位评委的打分score1~score6,每个scorei都是double型,且满足0≤scorei≤100。

输出描述:

输出一行,表示该选手的最后得分。

样例输入:

78.8 92.3 87.6 94.8 85.8 94.8

样例输出:

90.125

#include <stdio.h>

int main()

{

double score[6],max,min,sum;

int i;

double average;

max=1;

min=1;

for(i=0;i<6;i++)

{

scanf("%lf",&score[i]);

}

max=min=score[0];

    for(i=1;i<6;i++)

    {

      if(score[i]<min)

        min=score[i];

      if(score[i]>max)

max=score[i];

sum=sum+score[i];

    }

average=(sum-max-min)/4;

printf("%lf\n",average);

return 1;

}

8.

题目标题:神秘的字符加、解密技术。

题目描述:

插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。

提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。

输入描述:输入一行:密文字符串。

输出描述:输出有一行:翻译后的明文字符串。

样例输入:

Coheifnia

样例输出:

China

#include <stdio.h>

int main()

{

char ci[101],pl[101];

int i=0,j=0;

gets(ci);

while(ci[i]!='\0')

{

      if (i%2==0)

  {

  pl[j]=ci[i];

  j++;

  }

  

  i++;

}

    pl[j]='\0';

puts(pl);

return 0;

}

9.

题目标题:字符串大小写转换。

题目描述:

输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。

输入描述:

    输入一行:长度小于20的字符串。

输出描述:

    输出一行:处理以后的字符串。

样例输入:

I Love C!

样例输出:

i lOVE c!

#include <stdio.h>

int main()

{

    char a[20];

int i;

gets(a);

    for(i=0;a[i]!='\0';i++)

{

if(a[i]>='a' && a[i]<='z')

a[i]=a[i]-32;

else if(a[i]>='A' && a[i]<='Z')

a[i]=a[i]+32;

}

    puts(a);

return(0);

}

10.

题目标题:打印极值点下标。

题目描述:

在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。

注意:数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。

输入描述:

有2行输入:第一行是此数组的元素个数k(4<k<80),第二行是k个整数,每两个整数之间用空格分隔。 

输出描述:

输出为1行:依次对应于数组的所有极值点下标值,下标值之间用空格分隔。

样例输入:

15

12 12 122 112 222 222 222 221 76 36 31 234 256 76 73

样例输出:

2 3 10 12 14

#include <stdio.h>

#include <stdlib.h>

#include <stdio.h>

main( )

{

    const int N=100;

    int times,a[N],n,i;

    scanf("%d",&n);

    for(i=0;i<n;i++)

        scanf("%d",&a[i]);

    if(a[0]<a[1]) printf("0 ");

    for(i=1;i<n-1;i++)

    {

        if(a[i]<a[i-1] && a[i]<a[i+1])

            printf("%d ",i);

        else if(a[i]>a[i-1] && a[i]>a[i+1])

            printf("%d ",i);

    }

    if(a[n-1]<a[n-2]) printf("%d ",n-1);

}

实验4  函数与指针

程序填空

1. 普通参数

题目描述:输入日期的年份和月份,求该月有多少天。要求编写函数int daynum(int year,int month),求出以year为年份、以month为月份的某个月的天数。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include<stdio.h>

int main()

{

int daynum(int year,int month);

int y,m,d;

scanf("%d%d",&y,&m);

if(y<1900 || y>=3000 || m<1 || m>12)

{

printf("输入错误!\n");

return 0;

}

    d=daynum(y,m);

printf("此月的天数为%d\n",d);

return 0;

}

int daynum(int year,int month)

{

int days;

switch(month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:  days=31;  break;

case 4:

case 6:

case 9:

case 11:  days=30;  break;

case 2:   if(year%4==0&&year%100!=0 || year%400==0)

        days=29;

        else 

        days=28;

        break;

}

return days;

}

2. 字符数组参数

题目描述:编写一个函数,用来求字符串s的任意子串。函数原型为

void  SubString ( char  s[ ] , int  start , int  len , char  d[ ] ) ;

其中s是原字符串,d用来存放s中从第start个字符开始( 1≤start≤strlen(s) ),长度为len的子串。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include <stdio.h>

#include <string.h>

int  main( )

{

    void  SubString(char  s[ ], int  start, int  len, char  d[ ]);

    char  s[81],d[81];

    int  m,n;

    gets(s);    //输入一个字符串的值存放在字符数组s中,以回车结束

    printf("从第m个字符开始(m≥1)取n个字符构成的子串。请依次输入m、n的值:");

    scanf("%d%d",&m,&n);

    if(m>strlen(s) || n>strlen(s) || m+n>strlen(s)+1)

    {

        printf("m、n值超过了范围!\n");

        printf("m、n值超过了范围!\n");

        return 0;

    }

    SubString(s,m,n,d);

puts(d);

return 0;

}

//从s中第start个字符开始取出长度为len的子串放入d中

void  SubString(char  s[ ], int  start, int  len, char  d[ ])

{

    int k,j;

    for(j=0,k=start-1;j<len;j++,k++)

        d[j]=s[k];

    d[len]='\0';

}

3. 嵌套调用

题目描述:验证哥德巴赫猜想:对任意输入的正整数n,验证6~n以内的偶数都可分解为两个素数(质数)之和。以下程序中,函数bool  divide(int  n)是用来将偶数n分解为两个质数的;若分解成功,则返回true;否则返回false。函数bool IsPrime(int  m)是用来判断m是否为质数的;若是,则函数返回true;否则返回false。请在计算机上调试以下程序,补足其中的空格。

代码:

#include <stdio.h>

int main()

{

int divide(int n);

int i,n;

scanf("%d",&n);

if(n<6)

{

printf("输入数据出错\n");

return 0;

}

for(i=6;i<=n;i+=2)

if(divide(i)==0)  //对i进行分解,并判断分解是否成功

{

printf("猜想错误\n");

return 0;

}

return 0;

}

int divide(int n)

{

int IsPrime(int n);

int i,m;

for(i=3;i<=n/2;i++)

{

if(!IsPrime(i)) continue;

m=n-i;

if(IsPrime(m)) break; //若m是素数,则分解已成功,结束该循环

}

if(i>n/2) return 0;

printf("%d=%d+%d\n",n,i,m);

return 1;

}

int IsPrime(int m)

{

int i;

for(i=2;i<m;i++)

if(m%i==0) return 0;

return 1;

}

4. 全局变量

题目描述:编写一函数addup,统计字符串s中字母、数字、空格和其它字符的个数,并且用几个全局变量记录上述统计结果。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include <stdio.h>

int  letter, digit, space, other; //全局变量

int main()

{

void  addup(char  s[ ]);

char  str[101];

printf("输入字符串:\n");

gets(str);

addup(str);

printf("字母个数: %d,数字个数: %d,空格个数: %d,其他字符个数: %d\n",letter,digit,space,other);

return 0;

}

void  addup(char  s[ ])

{

int  i;

letter=digit=space=other=0;

for(i=0;s[i]!='\0';i++)

if(s[i]>='a' && s[i]<='z' || s[i]>='A' && s[i]<='Z') letter++;

else if(s[i]>='0' && s[i]<='9') digit++;

else if(s[i]==32) space++;

else other++;

 }

5. 递归调用

题目描述:

用递归方法求n的阶乘n!,递归公式为:n!=1(n等于0或1),n!= n×(n-1)!  (n大于1)

要求编写递归函数int fact(int n); 以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:#include <stdio.h>

int main()

{

int fact(int n);

    int n,f;

printf("请输入整数n(n≥0):");

scanf("%d",&n);

f=fact(n);

printf("%d!=%d\n",n,f);

return 0;

}

//求阶乘

int fact(int n)

{

    int f;

if(n==0 || n==1)  f=1;

else    f=n*fact(n-1);

return f;

}

程序设计

6.

题目标题:判断完数。

题目描述:

判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。此程序要求编写函数bool wanshu(int n),判断n是否为完数,若n是,则函数返回true;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断结果。

输入描述:

输入一个正整数n。

输出描述:

若n是完数,则输出"yes";否则输出"no"。

样例输入:

28

样例输出:

yes

#include <stdio.h>

int main()

{

  bool wanshu(int n);

  int n;

  scanf("%d",&n);

  if (wanshu(n))

  

  printf("yes\n");

  else 

  printf("no\n");

  return(0);

}

bool wanshu(int n)

{

  int i,sum;

  sum=0;

  for(i=1;i<n;i++)

  {

    if (n%i==0)

sum=sum+i;

  }

  return(sum==n);

}

7.

题目标题:伦敦奥运会倒计时。

题目描述:

假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日— 2012年7月26日。要求程序中编写函数int CountDown(int year,int month,int day),来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。

提示:所求天数= month这个月的总天数-day+(month+1到6月所有这些月份天数之和)+27。

输入描述:

用户输入的日期的格式必须是year  month  day。其中year应是2012,month必须满足1≤month≤7。输入的数据之间用空格隔开。

输出描述:

输出为一行“距离2012伦敦奥运会还有x天。”,其中x为求出的倒计时的天数。如果输入的数据不满足条件,输出“ERROR!”。

样例输入:

2012 2 5

样例输出:

距离2012伦敦奥运会还有173天。

#include <stdio.h>

#include <stdlib.h>

int main()

{

  int CountDown(int year,int month,int day);

  int year,month,day;

  scanf("%d%d%d",&year,&month,&day);

  if (year!=2012 || month<1 || month>7 || day<1 || day>31)

    {

printf("error!\n");

exit(1);

}

  printf("距离2012伦敦奥运会还有%d天\n",CountDown(year,month,day));

  return 0 ;

}

int CountDown(int year,int month,int day)

{

int d,m;

    if(month==7)  return 27-day;

    switch(month)

    {

        case 1:

        case 3:

        case 5:

        case 7:  d=31-day;  break;

        case 4:

        case 6:  d=30-day;  break;

        case 2:  d=29-day;

    }

    for(m=month+1;m<7;m++)

        switch(m)

        {

            case 3:

            case 5:  d+=31;  break;

            case 4:

            case 6:  d+=30;  break;

            case 2:  d+=29;

        }

    d+=27;

    return d;

}

8.

题目标题:神奇的英文回文。

题目描述:

许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如dad(爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。在最权威的《牛津英语大词典》里,最长的回文词是tattarrattat,是个象声词,表示敲门的声音。英语的回文句更有趣味(忽略其中的标点符号)。最著名的一句为:“Madam,I’m Adam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时说的话。

现要求编写一个函数bool huiwen(char *p),判断输入的一个单词是否为回文词。p是指向要输入的字符串的指针,如果是返回true,否则返回false。

输入描述:输入一个单词后回车。

输出描述:若该单词是回文词,则输出“yes”;否则输出“no”。

样例输入:

level

样例输出:

yes

#include <stdio.h>

int main()

{

  bool huiwen(char *p);

  char s[100];

  gets(s);

  if (huiwen(s))

  printf("yes\n");

  else printf("no\n");

  return 0;

}

bool huiwen(char *p)

{

int len=0;

while(p[len]) len++;

int i=0,j=len-1;

for(;i<j;i++,j--)

        if(p[i]!=p[j])

            return 0;

    return 1;

}

9.

题目标题:生成指定字符构成的字符串。

题目描述:

编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为:

void mystr(char c,int n, char *p);其中,参数c是构造字符串的字符,n是字符串中字符的个数,p是生成的字符串的首地址。

要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用mystr函数生成字符串,最后在主函数中将生成的字符串输出。

输入描述:

    输入字符c和正整数n,之间用空格隔开。(正整数n的值不超过50)

输出描述:

    输出为由n个字符c构成的字符串

样例输入:

# 4

样例输出:

####

#include <stdio.h>

int main()

{

  void mystr(char c,int n, char *p);

  char s[50],c,*p;

  int i,n;

  printf("请输入字符字符和个数");

  scanf("%c%d",&c,&n);

  mystr(c,n,s);

  puts(s);

  return 0 ;

}

void mystr(char c,int n, char *p)

{

  int i;

  for(i=0;i<n;i++)

  {

*p=c;

    p++;

  }

  *p='\0';

}

10. 递归调用

题目标题:Fibonacci数列问题。

题目描述:

有一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生1对兔子,小兔子长到第3个月后每个月又生1对兔子。假设所有兔子都不死,问每个月兔子的总对数为多少?

提示:不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。每对老兔子每个月会生1对小兔子。因此,每个月的兔子总数依次为1,1,2,3,5,8,13,…。这就是Fibonacci数列。该数列的递归定义如下:f(n)=                           1 (n等于1或2);f(n)= f(n-1)+ f(n-2)  (n>2)

请编写递归函数int fib(int n),求出第n个月兔子的总对数。

输入描述:

输入一个正整数n,表示求第n个月兔子的总对数。 

输出描述:

输出为一行“第n个月兔子的总对数为f”,f值为求出的数列第n项的值f(n)。

样例输入:

2

样例输出:

第2个月兔子的总对数为1

#include <stdio.h>

#include <stdlib.h>

int main()

{

  int fib(int n);

  int n,ans;

  scanf("%d",&n);

   if (n<=0)

    {

    printf("input error!\n");

    exit(0);

}

  ans=fib(n);

  printf("第%d个月兔子的总对数为%d\n",n,ans);

  return 0;

}

int fib(int n)

{

  if (n==1 || n==2)

  return 1;

  else return fib(n-1)+fib(n-2);

}

实验5  结构体、指针与文件

程序填空

1. 指针数组

题目描述:从键盘任意输入一个整型表示的月份值,用指针数组编程输出该月份的英文表示,若输入的月份值不在1~12之间,则输出“Illegal month”。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include<stdio.h>

int main()

{

    char *monthName[13]={"Illegal month",

        "January","February","March","April","May","June",

        "July","August","September","October","November","December"};

    int m;

    printf("输入一个月份值(整型表示):");

    scanf("%d",&m);

    if(__(1)__)

        printf("%s\n",monthName[0]);

    else

        printf("%s\n",__(2)__);

    return 0;

}

2. 二维数组作为函数参数

题目描述:编写一个函数,用来求出一个n×n阶矩阵的转置矩阵。函数原型为

void Transpose(int a[][N],int n);

以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include<stdio.h>

#include<stdlib.h>

#define N 100

int main()

{

    void Transpose(int a[][N],int n);

    int d[N][N];

    int n,i,j;

    scanf("%d",&n);

    for(i=0;i<n;i++)

        for(j=0;j<n;j++)

            d[i][j]=(int)rand()%100;

    printf("原来的矩阵为:\n");

    for(i=0;i<n;i++)

    {

        for(j=0;j<n;j++)

            printf("%4d",d[i][j]);

        printf("\n");

    }

    Transpose(__(1)__,n);

    printf("转置后的矩阵为:\n");

    for(i=0;i<n;i++)

    {

        for(j=0;j<n;j++)

            printf("%4d",d[i][j]);

        printf("\n");

    }

    return 0;

}

void Transpose(int a[][N],int n)

{

    void Swap(int *pa,int *pb);

    int i,j;

    for(i=0;i<n;i++)

        for(j=0;j<i;j++)

            Swap(__(2)__);

}

void Swap(int *pa,int *pb)

{

    int t;

    t=*pa;

    __(3)__;

    *pb=t;

}

3. 结构体

题目描述:定义一个复数MyComplex结构体类型,它包含实部real和虚部imag 两个个成员,并且可以进行复数的加减运算。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include<stdio.h>

struct MyComplex

{

    float real,image;

};

void Display(struct MyComplex c)    /* 输出复数 */

{

    printf("%.2f",c.real);

    if(c.image>0) printf("+%.2f",c.image);

    else printf("-%.2f",__(1)__);

}

__(2)__ Add(struct MyComplex x,struct MyComplex y)

{

    struct MyComplex z;

    z.real=x.real+y.real;

    z.image=x.image+y.image;

    return __(3)__;

};

__(4)__ Sub(struct MyComplex x,struct MyComplex y)

{

    struct MyComplex z;

    z.real=x.real-y.real;

    z.image=x.image-y.image;

    return __(5)__;

};

int main()

{

    struct MyComplex c1={1,2},c2={3,4},c3;

    c3=Add(c1,c2);

    printf("\n两个复数相加的结果为:");Display(c3);

    c3=__(3)__;

    printf("\n两个复数相减的结果为:");Display(c3);

    return 0;

}

4. 结构体指针

题目描述:定义一个时钟结构体类型,它包含“时、分、秒”3个成员,然后编写一个时钟模拟显示程序。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include<stdio.h>

struct Clock

{

    int second,minute,hour;

};

void update(struct Clock *pc)

{

    pc->second++;

    if(pc->second==60)

    {

        __(1)__;

        pc->minute++;

    }

    if(__(2)__)

    {

        pc->minute=0;

        pc->hour++;

    }

    if(pc->hour==24)

    {

        __(3)__;

    }

}

void display(struct Clock *pc)

{

    printf("%2d:%2d:%2d\n",pc->hour,pc->minute,pc->second);

}

void delay(struct Clock *pc)

{

    int t;

    for(t=0;t<100000000;t++);   /* 用循环体为空语句的循环实现延时 */

}

int main()

{

    int i;

    struct Clock clock={0,0,0};

    for(i=0;i<1000000;i++)  /* 利用循环结构,控制时钟运行的时间 */

    {

        update(&clock);     /* 更新时分秒显示值*/

        display(&clock);    /* 显示时分秒 */

        delay(&clock);      /* 模拟延迟时间为1秒 */

    }

    return 0;

}

5. 复制文件

题目描述:根据程序提示重键盘输入一个已存在的文本文件的完整文件名,再输入一个新文本文件的完整文件名,然后将已存在的文本文件中的内容全部复制到新文本文件中。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码:

#include<stdio.h>

#include<stdio.h>

#include<stdlib.h>

int main()

{

    char fRname[21],fWname[21];

    char ch;

    FILE *fpread,*fpwrite;

    printf("请输入要读取的文本文件名称:");

    gets(fRname);

    if((fpread=fopen(fRname, __(1)__))==NULL)

    {

        printf("打开%s文件失败!\n",fRname);

        exit(0);

    }

    printf("请输入要写入的文本文件名称:");

    gets(fWname);

    if((fpwrite=fopen(__(2)__,"w"))==NULL)

    {

        fclose(fpread);

        printf("打开%s文件失败!\n",fWname);

        exit(0);

    }

    while((ch=fgetc(fpread))!= __(3)__)

    {

        fputc(ch,fpwrite);

    }

    fclose(fpread);

    fclose(fpwrite);

    return 0;

}

程序设计

6.

题目标题:星期几

0

Sunday

1

Monday

2

Tuesday

3

Wednesday

4

Thursday

5

Friday

6

Saturday

题目描述:

任意输入英文的星期几,通过查找如有图所示的星期表,输出其对应的数字,若查到表尾,仍未找到,则输出错误提示信息“Error!”。

要求用指针数组实现。

7.

题目标题:m×n阶矩阵的转置。

题目描述:

在程序填空题2的基础上,按下面的函数原型编程计算并输出m×n阶矩阵的转置矩阵。其中m和n的值由用户从键盘输入。已知m和n的值都不超过10。

void Transpose(int a[][N],int at[][M],int m,int n);

其中a用来存放原来的m×n阶矩阵,at用来存放转置后的n×m阶矩阵。

8.

题目标题:分数的计算。

题目描述:

参考程序填空题3,定义一个表示分数的结构体,它包含表示“分子、分母、符号(正为1,负为-1)”的3个成员。按照以下主函数的功能来设计相关的函数,使程序能正确运行并得到要求的结果。

int main()

{

    struct Fraction Add(struct Fraction x,struct Fraction y);

    struct Fraction Sub(struct Fraction x,struct Fraction y);

    struct Fraction f1={1,2,1},f2={3,4,1},f3;  /* f1=1/2,f2=3/4 */

    f3=Add(f1,f2);

    printf("\n两个分数相加的结果为:");Display(f3); /* 计算结果显示为5/4 */

    f3=Sub(f1,f2);

    printf("\n两个分数相减的结果为:");Display(f3); /* 计算结果显示为-1/4 */

    return 0;

}

9.

题目标题:日期结构体的设计。

题目描述:

参考程序填空题4,定义一个日期结构体,它包含表示“年、月、日”的3个成员。按照以下主函数的功能来设计相关的函数,使程序能正确运行并得到要求的结果。

int main()

{

    struct Date date1;

    int y,m,d;

    scanf("%d%d%d",&y,&m,&d);   /* 输入年月日值,并假设输入的日期是合法的 */

    SetDate(&date1,y,m,d);  /* 设置data1的年月日为y,m,d */

    Display(date1);   /* 按year-month-day的格式显示date1的年月日 */

    AddOneday(&date1);  /* 将date1的日期增加一天 */

    Display(date1); /* 显示增加一天后的日期值 */

    return 0;

}

样例输入:

2014 12 31

样例输出:

2014-12-31

2015- 1- 1

10.

题目标题:文件追加。

题目描述:

根据地是从键盘输入一个已存在的文本文件的完整文件名,再输入另一个已存在的文本文件的完整文件名,然后将第一个文本文件的内容追加到第二个文本文件的原内容之后。

​​​​​​​

相关文章:

【C语言】上手实验

实验1 顺序、分支结构 程序填空 1. 题目描述&#xff1a;输入三个整数存放在变量a、b、c中&#xff0c;找出三个数中的最大值放于max中&#xff0c;并将其输出。以下是完成此项工作的程序&#xff0c;请将未完成的部分填入&#xff0c;实现其功能&#xff0c;并在计算机上…...

设计HTML5表单

HTML5基于Web Forms 2.0标准对HTML4表单进行全面升级&#xff0c;在保持简便、易用的基础上&#xff0c;新增了很多控件和属性&#xff0c;从而减轻了开发人员的负担。表单为访问者提供了与网站进行互动的途径&#xff0c;完整的表单一般由控件和脚本两部分组成。 1、认识HTML…...

使用Kaptcha生成验证码

说明&#xff1a;验证码&#xff0c;是登录流程中必不可少的一环&#xff0c;一般企业级的系统&#xff0c;使用都是专门制作验证码、审核校验的第三方SDK&#xff08;如极验&#xff09;。本文介绍&#xff0c;使用谷歌提供的Kaptcha技术&#xff0c;制作一个简单的验证码。 …...

【vue】vue中的插槽以及使用方法

插槽 普通插槽 1、在父组件中直接调用子组件的标签&#xff0c;是可以渲染出子组件的内容&#xff1b;如果在子组件标签中添加了内容&#xff0c;父组件就渲染不出来了&#xff1b; ParentComponent.vue&#xff1a; <template><div><h1>Parent Componen…...

javaScript:分支语句的理解与使用(附带案例)

目录 前言 补充 另一种说法 分支语句 1.if语句 a.单分支语句 注意 b.双分支语句 注意点 c.多分支语句&#xff08;分支语句的联级语句&#xff09; 补充 2.三元运算符 三元运算符 &#xff1f; &#xff1a; 使用场景 3.switch语句 解释 释义&#xff1a…...

MySQL高阶知识点(一)事务的并发问题和隔离级别

简单来说&#xff0c;事务就是要保证一组数据库操作&#xff0c;要么全部成功&#xff0c;要么全部失败。 在 MySQL 中&#xff0c;事务支持是在引擎层实现的。 MySQL 是一个支持多引擎的系统&#xff0c;但并不是所有的引擎都支持事务。 如 MySQL 原生的 MyISAM 引擎就不支持…...

医疗PACS源码,支持三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜

C/S架构的PACS系统源码&#xff0c;PACS主要进行病人信息和影像的获取、处理、存储、调阅、检索、管理&#xff0c;并通过网络向全院提供病人检查影像及诊断报告&#xff1b;各影像科室之间共享不同设备的病人检查影像及诊断报告;在诊断工作站上&#xff0c;调阅HIS中病人的其它…...

Ubuntu安装Redis

首先要切换到root用户 1.apt安装 apt install redis 2.⽀持远程连接 修改 /etc/redis/redis.conf • 修改 bind 127.0.0.1 为 bind 0.0.0.0 • 修改 protected-mode yes 为 protected-mode no 3.控制 Redis 启动 1.启动 Redis 服务 service redis-server start 2.停⽌ Redis …...

“深入解析JVM内部机制:探索Java虚拟机的奥秘“

标题&#xff1a;深入解析JVM内部机制&#xff1a;探索Java虚拟机的奥秘 JVM&#xff08;Java虚拟机&#xff09;是Java程序的核心执行环境&#xff0c;它负责将Java字节码转换为机器码并执行。了解JVM的内部机制对于理解Java程序的执行过程和性能优化至关重要。本文将深入解析…...

vim打开文件中文是乱码

vim打开文件中文是乱码 问题&#xff1a;在Linux系统下&#xff0c;使用cat查看含有中文的文本文件正常&#xff0c;但是使用vim打开却是乱码 解决方法&#xff1a; 方法一&#xff1a; 在文件中设定 在vim的退出模式下 :set encodingutf8 方法二&#xff1a; 直接写入/etc/…...

【正点原子STM32连载】 第七章 Geehy标准库版本MDK工程创建 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第七…...

SQL中count()的不同用法

1.count(*)&#xff1a;统计所有列的行数&#xff0c;包括均为null值的行&#xff1b; 2.count(1)&#xff1a;统计所有列的行数&#xff0c;包括均为null值的行&#xff1b; 3.count(列名)&#xff1a;统计指定列的行数&#xff0c;不包括null值&#xff1b; 实例&#xff1a;…...

go_细节注意

go细节 一、使用指针接受者和不使用指针接受者1&#xff0c;不使用指针接受者&#xff1a;2&#xff0c;使用指针接受者3&#xff0c;区别与优劣势 一、使用指针接受者和不使用指针接受者 1&#xff0c;不使用指针接受者&#xff1a; func (d dog) move() {fmt.Println("…...

屏蔽恶意域名的DNS查询

因为有一些恶意域名, 已经在防火墙上做了封禁了, 但是如果收到中毒主机的请求, 还是要去做一次DNS查询, 因此被上级单位通告, 因此想把恶意域名的DNS查询封禁做到防火墙下联的AC上面, 一方面因为防火墙的策略优先级DNS代理比较靠后, 另一方面也是为了减小防火墙压力, 简化配置:…...

SQL-每日一题【1251. 平均售价】

题目 Table: Prices Table: UnitsSold 编写SQL查询以查找每种产品的平均售价。average_price 应该四舍五入到小数点后两位。 查询结果格式如下例所示&#xff1a; 解题思路 1.题目要求查询每种产品的平均售价。给出了两个表&#xff0c;我们用聚合查询来解决此问题。 2.首先我…...

Win11中使用pip或者Cython报错 —— error: Microsoft Visual C++ 14.0 is required.

第一步&#xff1a;下载Visual Studio 2019 下载地址&#xff1a; https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes 第二步&#xff1a;安装组件 选择单个组件&#xff0c;勾选以下两个组件 其他错误&#xff1a; 无法打开文件“python37.li…...

Spring学习笔记之Bean的“出生入死”

文章目录 什么是Bean的生命周期为什么要知道Bean的生命周期Bean的生命周期之五个阶段Bean生命周期之七个阶段Bean生命周期的十个阶段Bean的作用域不同&#xff0c;管理方式不同自己new的对象如何让Spring管理 什么是Bean的生命周期 Spring其实就是一个管理Bean对象的工厂。它负…...

hbase 报错 Master passed us a different hostname to use; was=

原因 wsl2的 /etc/hosts 配置的不兼容,我这里是ubuntu22 命令行输入hostname 看输出什么,比如输出 aaa 那么替换/etc/hosts 127.0.0.1 aaa...

Aspera替代方案:探索这些安全且可靠的文件传输工具

科技的发展日新月异&#xff0c;文件的传输方式也在不断地更新换代。传统的邮件附件、FTP等方式已经难以满足人们对于传输速度和安全性的需求了。近年来&#xff0c;一些新兴的文件传输工具受到了人们的关注&#xff0c;其中除了知名的Aspera之外&#xff0c;还有许多可靠安全的…...

你真的了解数据结构与算法吗?

数据结构与算法&#xff0c;是理论和实践必须紧密结合的一门学科&#xff0c;有关数据结构和算法同类的课程或书籍&#xff0c;有些只是名为“数据结构”&#xff0c;而非“数据结构与算法”&#xff0c;它们在内容上并无很大区别。 实际上&#xff0c;数据结构和算法&#xf…...

kafka使用心得(一)

kafka入门 一种分布式的、基于发布/订阅的消息系统&#xff0c;scala编写&#xff0c;具备快速、可扩展、可持久化的特点。 基本概念 topic 主题 partition 分区&#xff0c;一个topic下可以有多个partition&#xff0c;消息是分散到多个partition里存储的&#xff0c;part…...

Django图书商城系统实战开发-实现商品管理

Django图书商城系统实战开发 - 实现商品管理 在本教程中&#xff0c;我们将使用Django框架来实现一个简单的图书商城系统&#xff0c;并重点讨论如何实现商品管理功能。此外&#xff0c;我们还将介绍如何使用Markdown格式来写博客&#xff0c;并将其集成到我们的图书商城系统中…...

走出象牙塔:李郓梁的区块链实践之路丨对话MVP

如何从科研走向实践&#xff1f;李郓梁在社区找到了答案。 作为西安工业大学的硕士研究生&#xff0c;李郓梁从学校的实验室接触区块链技术。通过研读大量论文&#xff0c;李郓梁为区块链多中心化、不可篡改等前沿理论深深着迷&#xff0c;并选择将区块链作为主要研究方向&…...

【hive】hive分桶表的学习

hive分桶表的学习 前言&#xff1a; 每一个表或者分区&#xff0c;hive都可以进一步组织成桶&#xff0c;桶是更细粒度的数据划分&#xff0c;他本质不会改变表或分区的目录组织方式&#xff0c;他会改变数据在文件中的分布方式。 分桶规则&#xff1a; 对分桶字段值进行哈…...

ReactDOM模块react-dom/client没有默认导出报错解决办法

import ReactDOM 模块“"E:/Dpandata/Shbank/rt-pro/node_modules/.pnpm/registry.npmmirror.comtypesreact-dom18.2.7/node_modules/types/react-dom/client"”没有默认导出。 解决办法 只需要在tsconfig.json里面添加配置 "esModuleInterop": true 即…...

TiDB数据库的安装配置

一、 TiDB 软件和硬件环境建议配置 Linux 操作系统版本要求 Linux 操作系统 版本 Red Hat Enterprise Linux 7.3 及以上的 7.x 版本 CentOS 7.3 及以上的 7.x 版本 Oracle Enterprise Linux 7.3 及以上的 7.x 版本 Amazon Linux 2 Ubuntu LTS 16.04 及以上的版本 …...

Unity智慧园区夜景制作

近期使用Unity做了一个智慧园区场景的demo&#xff0c;初步了解了3D开发的一些步骤和知识&#xff0c;以下为制作的步骤&#xff0c;比较简略&#xff0c;备忘&#xff1a; 1. 制作前的设计分析&#xff1a; 1. 分析日光角度&#xff0c;阴影长度&#xff0c;效果 2. 分析冷暖…...

Linux MQTT智能家居项目(LED界面的布局设置)

文章目录 前言一、LED界面布局准备工作二、LED界面布局三、逻辑实现总结 前言 上篇文章我们完成了主界面的布局设置那么这篇文章我们就来完成各个界面的布局设置吧。 一、LED界面布局准备工作 首先添加LED灯光控制的图标。 将选择好的LED图标添加进来&#xff1a; 图标可以…...

LeetCode 160.相交链表

文章目录 &#x1f4a1;题目分析&#x1f4a1;解题思路&#x1f6a9;步骤一&#xff1a;找尾节点&#x1f6a9;步骤二&#xff1a;判断尾节点是否相等&#x1f6a9;步骤三&#xff1a;找交点&#x1f344;思路1&#x1f344;思路2 &#x1f514;接口源码 题目链接&#x1f449;…...

【深度学习_TensorFlow】调用keras高层API重写手写数字识别项目

写在前面 上一阶段我们完成了手写数字识别项目的构建&#xff0c;了解了网络构建、训练、测试的基本流程&#xff0c;但是对于一些常见的操作&#xff0c;因其使用过于频繁&#xff0c;实际上并无必要手动实现&#xff0c;而早已被封装为函数了。 这篇文章我们将了解keras高层…...