前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >嵌入式day3学习(2022.1.8)

嵌入式day3学习(2022.1.8)

作者头像
天天Lotay
发布2022-12-02 14:29:41
2360
发布2022-12-02 14:29:41
举报
文章被收录于专栏:嵌入式音视频

运算符分类

1.算术运算符

2.关系运算符

3.逻辑运算符

4.位运算符

5.特殊运算符

  1. 赋值运算符(=)
  2. 复合赋值运算符(<operator>=)+=,-=,*=,/=,%=,>>=,<<=,&=,^=,|=
  3. 条件运算符符(?:)即<expression1> ? <expression2> : <expression3>
  4. sizeof
  5. 逗号运算符
  6. return

优先级

作业:

1、编写一个程序,此程序要求输入一个整数,然后打印出从输入的值(含)到比输入的值大 10(含)的所有整数值(比如输入 5,则输出 5 到 15)。要求在各个输出值之间用空格、制表符或者换行符分开。

代码语言:javascript
复制
#include<stdio.h>
int main()
{
    printf("输入一个整数\n");
    unsigned int a;
    scanf("%d",&a);
    printf("输出该整数后10位\n");
    for (int  i = 0; i < 10; i++)
    {
        printf("%d\n",a+i);
    }

   return 0;
}

2 、写出下面表达式运算后 a 的值,设原来 a=12。设 a 和 n 已定义为整型变量。

a += a

24

a -= 2

10

a *= 2+3

60

a /= a+a

0

a %= (n%2),n 的值为 5

0

a += a -= a *= a

0

3.编写一个程序,该程序要求输入一个 float 型数并打印概述的立方值。使用你自己设计的函数来计算该值 的立方并且将它的立方打印出来。main 函数负责把输入的值传递给该函数。

代码语言:javascript
复制
#include<stdio.h>
float lifang(float a)
{
    float b;
    b=a*a*a;
    return b;
}
int main()
{
    
    printf("输入一个浮点数\n");
     float a;
     scanf("%f",&a);
     a=lifang(a);
     printf("%f\n",a);
   return 0;
}

4.编写一个程序,此程序要求输入天数,然后将该值转换为星期数和天数。例如输入 18,则要求输出: 18 days are 2 weeks, 4days.

代码语言:javascript
复制
#include<stdio.h>
int main()
{
    printf("输入一个天数\n");
    int a;
    scanf("%d",&a);
    printf("%d days are %d weeks,%d days",a,a/7,a%7);
   return 0;
}

5、分析并解释以下程序的执行结果。

代码语言:javascript
复制
#include <stdio.h> 
int main(void) 
{ 
int a,b,c,d; 
a=10; 
b=a++; 
c=++a; 
d=10*a++; 
printf("b,c,d:%d,%d,%d",b,c,d); 
return 0; 
}
  1. b=a++,a后自加1,先赋值给b
  2. C=++a,a在上一步已经自增1,现在再先自增1,故为12
  3. D=10*a++,现在a已经为12,先把a*10赋值给d,a再增
代码语言:javascript
复制
#include<stdio.h>
int main(){
    char a=123;
    char b1=234;
    unsigned char b2=234;
    printf("a:%d\nb:%d\nb:%d\n",a,b1,b2);
    return 0;
}
代码语言:javascript
复制
#include<stdio.h>
int main(){
    int a1=1,a2=1,a3=1,a4=1,*a9,a12=1,a13=1;
    char a5=100,*a6="xy",*a10="abcdefghijk",a15=1;
    float a7=1.0,a8=1.0,a11=1.0;
    short a14=1;
    double a16=1.0;
    long double a17=1.0;
    //-------------------
    printf("%d\n",a1);
    printf("%u\n",a2);
    printf("%o\n",a3);
    printf("%x\n",a4);
    printf("%c\n",a5);
    printf("%s\n",a6);
    printf("%f\n",a7);
    printf("%e\n",a8);
    printf("%p\n",a9);
    printf("%.5s\n",a10);
    printf("%.5f\n",a11);
    printf("%5d\n",a12);
    printf("%-5d\n",a13);
    printf("%hd\n",a14);
    printf("%hhd\n",a15);
    printf("%lf\n",a16);
    printf("%Lf\n",a17);

    // char  var1;
    // printf("输入一个整型");
    // scanf("%d",&var1);

    // printf("%d\n",var1);
    // printf("%u\n",var1);
    // printf("%o\n",var1);
    // printf("%x\n",var1);
    // printf("%c\n",var1);
    // printf("%s\n",var1);
    // printf("%f\n",var1);
    // printf("%e\n",var1);
    // printf("%p\n",var1);
    // printf("%.5s\n",var1);
    // printf("%.5f\n",var1);
    // printf("%5d\n",var1);
    // printf("%-5d\n",var1);
    // printf("%hd\n",var1);
    // printf("%hhd\n",var1);
    // printf("%lf\n",var1);
    // printf("%Lf\n",var1);
}
代码语言:javascript
复制
#include<stdio.h>
int main()
{
    unsigned short var1=0x1234;
    unsigned char var1_high8=(var1<<8)>>8;
    unsigned char var1_low8=var1>>8;
    printf("高%u 低%u\n",var1_high8,var1_low8);
    unsigned short var2=var1_low8+var1_high8;
    printf("%u\n",var2);

   return 0;
}
代码语言:javascript
复制
#include<stdio.h>
int main()
{
    printf("输入一个整数\n");
    unsigned int a;
    scanf("%d",&a);
    printf("输出该整数后10位\n");
    for (int  i = 0; i < 10; i++)
    {
        printf("%d\n",a+i);
    }

   return 0;
}
代码语言:javascript
复制
#include<stdio.h>
float lifang(float a)
{
    float b;
    b=a*a*a;
    return b;
}
int main()
{
    
    printf("输入一个浮点数\n");
     float a;
     scanf("%f",&a);
     a=lifang(a);
     printf("%f\n",a);
   return 0;
}
代码语言:javascript
复制
#include <stdio.h> 
int main(void) 
{ 
int a,b,c,d; 
a=10; 
b=a++; 
c=++a; 
d=10*a++; 
printf("b,c,d:%d,%d,%d",b,c,d); 
return 0; 
}
代码语言:javascript
复制
#include<stdio.h>
int main()
{
    char a1;
    unsigned a2;
    signed char a3;
    int a4;
    unsigned int a5;
    short a6;
    unsigned short a7;       
    
    long a8;
    unsigned long a9;
    long long a10;
    double a11;
    float a12;
    printf("char:%ld\n",sizeof(a1));
    printf("unsigned:%ld\n",sizeof(a2));
    printf("signed char:%ld\n",sizeof(a3));
    printf("int:%ld\n",sizeof(a4));
    printf("unsigned int:%ld\n",sizeof(a5));
    printf("short:%ld\n",sizeof(a6));
    printf("unsigned short:%ld\n",sizeof(a7));
    printf("long:%ld\n",sizeof(a8));
    printf("unsigned long:%ld\n",sizeof(a9));
    printf("long long:%ld\n",sizeof(a10));
    printf("double:%ld\n",sizeof(a11));
    printf("float:%ld\n",sizeof(a12));
}
代码语言:javascript
复制
#include<stdio.h>
int main()
{
    int a=9527;
    int b=a-(a/1000)*1000,b1=b-(b/100)*100;
    printf("%d %d %d %d \n",a/1000,b/100,b1/10,b1%10);
    printf("-----------\n");
    printf("%d %d %d %d \n",a/1000,a/100%10,a/10%10,a/1%10);
    printf("-----------\n");
    int c=12;
    int d =++c;
    d++;
    printf("%d\n",c++);
    printf("%d\n",++d);
    printf("%d\n",c);
   return 0;
}
代码语言:javascript
复制
#include<stdio.h>
int main()
{
    int a=12,n=5;
    // printf("%d",a+=a-=a*=a);
  printf("%d",a%=(n%2));
  return 0;
}
代码语言:javascript
复制
#include<stdio.h>
int main()
{
    unsigned long long int a=0x12345678;
    unsigned char var_low,var_high,var_low2,var_high2;
     var_low=(a>>0)&0xFFFFFFFF;
     var_high=(a>>8)&0xFFFFFFFF;
     var_low2=(a>>16)&0xFFFFFFFF;
     var_high2=(a>>24)&0xFFFFFFFF;
    // printf("var_low:%hhX\n",var_low);
    // printf("var_high:%hhX\n",var_high);
    //  printf("var_low2:%hhX\n",var_low2);
    //   printf("var_high2:%hhX\n",var_high2);
      printf("0x%hhX%hhX%hhX%hhX\n",var_low,var_high,var_low2,var_high2);
   return 0;
}
代码语言:javascript
复制
#include<stdio.h>
int main()
{
    unsigned int a=0x56;//(7654 3210)
    unsigned char a1,a2;
    // a1=a;
    // a1=a1|(1<<0);
    // a1=a1|(1<<5);
    // a1=a1|(1<<7);
    a1=a|(1<<0)|(1<<5)|(1<<7);
    a2=a1&(~(1<<1))&(~(1<<4))&(~(1<<6));
    printf("%hhX\n",a2);

   return 0;
}
代码语言:javascript
复制
#include <stdio.h>
int main(void)
{
	int ascii;
	printf("请输入一个ASCII码值:");
	scanf("%d",&ascii);
	printf("ASCII码值为 %d 对应的字符是 %c\n",ascii,ascii);
	return 0;
}
代码语言:javascript
复制
#include<stdio.h>
int main(){
    int arr[4]={};
    int id1,id2;
    float score1,score2;
    char *name1="tom",*name2="jerry",sex1,sex2;

    //-------------------
    printf("依次输入id,sex,score");
    scanf("%d %c %f",&id1,&sex1,&score1);
    scanf("%d %c %f",&id2,&sex2,&score2);
    //-------------------------------
    printf("ID\tSEX\tNAME\tSCORE\n");
    printf("%d\t%c\t%s\t%.1f\n",id1,sex1,name1,score1);
    printf("%d\t%c\t%s\t%.1f\n",id2,sex2,name2,score2);
    return 0;
}
代码语言:javascript
复制
#include<stdio.h>
#include<string.h>
char S[100][1000]={' '};//声明表为全局变量
int s1=0;
void chart(int n,int a[],int m);
int main()
{
    int n;
    int M1[40]={0},M2[40]={0},M3[40][100]={0};
    int i,j,k,k1,k2,max=0,col,l;
    char s[30][1000];
    scanf("%d",&n);
    getchar();//注意,必须得有这个来接收回车符
    //
    for(i=0;i<n;i++)
        // scanf("%s", &s[i]);
        // gets(s[i]);
        fgets(s[i],100,stdin);
        
    //求最大列数
    for(i=0;i<n;i++)
     {
         l=strlen(s[i]);
         for(j=0;j<l;j++)
         {
             if(s[i][j]==',')
             M1[i]++;
         }
         if(M1[i]>max)
         {
             max=M1[i];
         }
     }
     col=++max;
     
     //求每列最大宽度

    //1.先求每个单元的长度,赋给M3[i][j]中
    for(i=0;i<n;i++)
    {
        l=strlen(s[i]);
        k=0;
         for(j=0;j<l;j++)
         {
            if(s[i][j]!=',')
            {
                M3[i][k]++;
            }
            if(s[i][j]==',')
             k++;
             
          }    //for2
    }//for1
    //2.找每列最大的赋予M2[]
    for(j=0;j<col;j++)      
      {
          max=0;
          for(i=0;i<n;i++)
          {
              if(M3[i][j]>max)
              max=M3[i][j];
          }
          M2[j]=max;
      }
      
      //表格
      chart(n,M2,col);
      
      //输入数据
    for(i=0;i<n;i++)
    {
        k1=0;
        k2=0;
        k=0;
        l=strlen(s[i]);
        for(j=0;j<l;j++)
        {
            S[2*i+1][k2+1]=s[i][j];
            if(s[i][j+1]==',')
            {
             k1=k1+M2[k]+1;
             k2=k1;
             k++;
             j++;    
            }
            else
            k2++;
        }
    }
    //输出表格
    for(i=0;i<=2*n;i++)
    {
        for(j=0;j<s1;j++)
         printf("%c",S[i][j]);
        printf("\n");
    }

    return 0;
}

void chart(int n,int a[],int m)//行数  每列的最大长度数组
{
    int i,j,k;
    int s;
    s1=m+1;
    for(i=0;i<m;i++)
     s1+=a[i];

    for(i=0;i<=2*n;i++)    
    {
        //输出奇数行
        if(i%2==0)
        {
            s=0;
            k=0;
            for(j=0;j<s1;j++)
            {
                if(j==s)
                {
                  S[i][j]='+';            
                  s+=a[k];
                  s++;
                  k++;
                }
                else
                S[i][j]='-';
            }//for
        }    //if    
        //输出偶数行
        else
        {
            s=0;
            k=0;
            for(j=0;j<s1;j++)
            {
                if(j==s)
                {
                  S[i][j]='|';            
                  s+=a[k];
                  s++;
                  k++;
                }
            }
        }
        
    }    //for
    
}
代码语言:javascript
复制
#include<stdio.h>
#include <string.h>

int people=0;
struct kid
	{
	char name[50];  					//姓名
	int  height;						//身高	
	char sex[50];						//性别
	long long  num;					 	//学号
	};
	
void shuru(struct kid stu[50])
{
	int i=0;
	char v[50]={0};        				 			//清空缓存区
	struct kid *p = stu;
	for(i=0;i<50;i++)
	{
		printf("\n请输入学生信息\n");
		printf("  名字  ");
		scanf("%s",(p+people)->name);
		printf("  学号  ");
		scanf("%lld",&(p+people)->num);
		printf("  性别  ");
		scanf("%s",(p+people)->sex);
		printf("  身高  ");
		scanf("%d",&(p+people)->height);
		people++;
		printf("输入完毕\n回车继续输入");
		printf("  *键退出");
		
		while(1)
		{
	      getchar();     						   //(取地址)去掉输入完多出的回车符号
		
		//   gets(v);
          fgets(v,100,stdin);
		  //scanf("%[\n]",v);
		 if(strcmp(v,"")==0)
		 {
			                                       //getchar();
			 break;
		 }
		 if(strcmp(v,"*")==0)
			{
			 printf("\n已退出!");
			 return ;
			}
		}
	}
}


void chaxun(struct kid stu[50])
{
	char name[50];
	struct kid *p = stu;
	int i=0;
	if(strcmp(p->name,"")==0)
	{
		printf("对不起\n当前无录入的学生\n");
		return ;
	}
	while(1)              //用while循环,使可以不间断输入
	{
		printf("请输入查询学生姓名\n退出查询请按A\n");
		scanf("%s",name);	
		for(i=0;i<people;i++)
		{
			if(strcmp((p+i)->name,name)==0)
			{
			printf("学生信息\n  序号: %d\n  姓名: %s\n  学号: %lld\n  性别: %s\n  身高: %d\n",i,(p+i)->name,(p+i)->num,(p+i)->sex,(p+i)->height);
			printf("======================================================================\n");
				break;
			}
			if(i==people-1)
			{
				printf("查无此人!\n");
				break;
			}
		   
	    }
			if(strcmp(name,"A")==0)   //设定输入字符A退出
			{
			return ;
			}
		 
		 
	}
}


void shanchu(struct kid stu[50] )
{
	char name[50];
	struct kid *p = stu;
	int i=0;
	//int j=0;
	if(strcmp(p->name,"")==0)
		{
		printf("  对不起!!\n  无学生\n");
		return ;
		}
		printf("   你就说你想搞谁吧! \n");
		scanf("%s",name);	
		for(i=0;i<people;i++)
		{
			if(strcmp((p+i)->name,name)==0)
			{
			printf("学生信息\n  序号: %d\n  姓名: %s\n  学号: %lld\n  性别: %s\n  身高: %d\n",i,(p+i)->name,(p+i)->num,(p+i)->sex,(p+i)->height);
			printf("======================================================================\n");
            while(strcmp((p+i)->name,"")!=0)
			{
				strcpy((p+i)->name,(p+i+1)->name);
				(p+i)->height=(p+i+1)->height;
				strcpy((p+i)->sex,(p+i+1)->sex);
				(p+i)->num=(p+i+1)->num;		
				i++	;			
			}				
			 people--;
			 printf("  ok!现在ta没了!! \n");
			 break;
			}
			if(i==people-1)
			{
				printf("  哟!还跟我来这套!没这人 \n");
				break;
			}
		 
	    }
	
	
}
void paixu(struct kid stu[50])
{
	struct kid temp;
	int i,j;
	char a ;
	printf("学生信息\n  姓名\t\t学号\t\t性别\t\t身高\n");
	for(i=0;i<people;i++)
	{
	  for(j=i+1;j<people;j++)
		  if(stu[i].height<stu[j].height)
		  {
			  temp=stu[i];
			  stu[i]=stu[j];
			  stu[j]=temp;
		  }
			printf("\n%10s\t\t %lld\t\t%s\t\t%d\t\t\n" ,stu[i].name,stu[i].num,stu[i].sex,stu[i].height);
			
	}
	//getch();                                     用man手册查询头文件无法使用,上面gets同样,版本不支持
	/*printf("是否保存?yes or no");
	getchar();
	scanf("%c",&a);
	if(a=='yes')
		save();
	printf("保存成功");
	else
	   printf("退出");
   getch();
	*/
	
}


void xingxi(struct kid stu[50]/*, char*p*/ )
{
		struct kid *p = stu;
		char name[50];
		int i=0;
		if(strcmp(p->name,"")==0)
		{
			printf("对不起\n当前无录入的学生\n");
			return ;
		}
		for(i=0;i<people;i++)
		{
			printf("学生信息\n  序号: %d\n  姓名: %s\n  学号: %lld\n  性别: %s\n  身高: %d\n",i,(p+i)->name,(p+i)->num,(p+i)->sex,(p+i)->height);
			printf("======================================================================\n");
		}
	
}

 int main ()
{
	
	   struct kid stu[50];                 //定义一个结构体数组 保存 50个学生
	   struct kid *p = stu;
	
	while(1)                               //循环体
	{
			printf("1.录入学生信息  2查询学生  3删除学生信息 4排序(按身高)  5显示所有学生信息\n"); //设置标题
			int a = 0;
			while(1)
			{
				int ret = scanf("%d",&a);                    //键盘录入信息,&取变量地址
			    if(ret == 1 && a>=1 && a<=5 && getchar()=='\n')
				{
					break;
				}
				else printf("  大哥!你打错了!\n    重新输入吧你!\n");
				while(getchar()!='\n');
			}
			
		switch(a)
		{
			case 1:
			{				
				shuru(stu);
				break;				
			}			
			case 2:
			{
	            chaxun(p);   				
				break;				
			}			
			case 3:
			{
				shanchu(p);
				break;
			}
			
			case 4:
			{
				paixu(stu);
				break;
			}
			 
			case 5:
			{	
				xingxi(p);
				break;
			}
			
		  /*default:                         //输入非整型会出现持续打印
			{
				
				printf("输入错误\n请重新输入\n");	
				break ;
			}
			return 0;*/
		}
	}		
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档