首页 > 其他分享 >实验5

实验5

时间:2023-05-05 22:15:07浏览次数:29  
标签:int s1 char 实验 str printf include



实验1.1

运行代码

#include<stdio.h>
#define N 4

int main()
{
	int x[N] = {1,9,8,4};
	int i;
	int *p;

	for(i=0;i<N;++i)
		printf("%d",x[i]);
	printf("\n");

               //for(i=0;p<x+N;++p)
	//printf("%d",*p);
	//printf("\n");

	//p=x;
	//for(i=0;i<N;++i)
		//printf("%d",*(p+i));
	//printf("\n");

                // p=x;
	//for(i=0;i<N;++i)
		//printf("%d",p[i]);
	//printf("\n");
	system("pause");
	return 0;
}

  运行截图

 

 

 

实验1.2

运行代码

#include<stdio.h>

int main()
{
	int x[2][4]={{1,9,8,4},{2,0,4,9}};
	int i,j;
	int *p;
	int (*q)[4];

	for(i=0;i<2;++i)
	{
		for(j=0;j<4;++j)
		printf("%d",x[i][j]);
		printf("\n");}

		for(p=&x[0][0],i=0;p<&x[0][0]+8;++p,++i)
		{
			printf("%d",*p);
			if((i+1)%4==0)
				printf("\n");
		}
			for(q=x;q<x+2;++q)
			{ for(j=0;j<4;++j)
			printf("%d",*(*q+j));
			printf("\n");
			}
			system("pause");
			return 0;
		}

  运行截图

 

 

 

实验2.1 

运行代码

#include<stdio.h>
#include<string.h>
#define N 80

int main()
{ char s1[]="Learning makes me happy";
 char s2[]="Learning makes me sleepy";
char tmp[N];

printf("sizeof(s1) vs .strlen(s1):\n");
printf("sizeof(s1) = %d\n",sizeof(s1));
printf("strlen(s1) = %d\n",strlen(s1));

printf("\nbefore swap:\n");
printf("s1:%s\n",s1);
printf("s2:%s\n",s2);

printf("\nswapping...\n");
strcpy(tmp,s1);
strcpy(s1,s2);
strcpy(s2,tmp);

printf("\nafter swap:\n");
printf("s1:%s\n",s1);
printf("s2:%s\n",s2);

system("pause");
return 0;
}

  运行截图

 回答问题:大小是24个字节。sizeof计算所占空间大小,strlen计算字符长度。

不能,给一维数组定义时要说明长度分配内存。

交换了。

 

 

实验2.2

运行代码

#include<stdio.h>
#include<string.h>
#define N 80

int main()
{ char *s1="Learning makes me happy";
 char *s2="Learning makes me sleepy";
char *tmp;

printf("sizeof(s1) vs .strlen(s1):\n");
printf("sizeof(s1) = %d\n",sizeof(s1));
printf("strlen(s1) = %d\n",strlen(s1));

printf("\nbefore swap:\n");
printf("s1:%s\n",s1);
printf("s2:%s\n",s2);

printf("\nswapping...\n");
tmp=s1;
s1=s2;
s2=tmp;

printf("\nafter swap:\n");
printf("s1:%s\n",s1);
printf("s2:%s\n",s2);

system("pause");
return 0;
}

  运行截图

 回答问题:字符串。sizeof计算指针变量s1所占内存空间大小,strlen计算存放字符串长度。

能。task2.1定义一个字符数组,把字符储存在数组里,task2.2是定义一个指针变量,先占用内存,再把字符串储存进去。

交换的是指针变量的值,在内存单元中没有交换。

 

 

实验3

运行代码

#include<stdio.h>

void str_cpy(char *target, const char *source);
void str_cat(char *str1, char *str2);

int main()
{
	char s1[80],s2[20]="1984";

	str_cpy(s1,s2);
	puts(s1);

	str_cat(s1," Animal Farm");
	puts(s1);
	 
	system("pause");
	return 0;
}

void str_cpy(char *target, const char *source)
{
	while (*target++=*source++);
}
void str_cat(char *str1, char *str2)
{
	while(*str1)
		str1++;
	while(*str1++=*str2++);}

  运行截图

 

 

 

实验4

运行代码

#include<stdio.h>
# define N 80
 int func ( char *);
 int main()
 {char str [80];
 while (gets ( str )!= NULL )
{if ( func ( str ))
 printf (" yes\n "); 
 else 
 printf (" no\n ");}
system("pause");
 return 0}

 int func ( char * str )
{char * begin ,* end ;
 begin = end = str ;
 while (* end )
 end ++;
 end --;
 while ( begin < end )
{if (* begin !=* end )
 return 0;
 else 
 {begin ++;
 end --;}}

 return 1;}

  运行截图

 

 

 

 实验5

运行代码

#include<stdio.h>
#define N 80

void func(char *);

int main()
{
	char s[N];

	while(scanf("%s",s)!=EOF)
	{
		func(s);
		puts(s);
	}
	system("pause");
	return 0;
}

void func(char *str)
{
	int i;
	char *p1,*p2,*p;

	p1=str;
	while(*p1=='*')
		p1++;
	p2=str;
	while(*p2)
		p2++;
	p2--;

	while(*p2=='*')
		p2--;

	p=str;
	i=0;
	while(p<p1)
	{
		str[i]=*p;
		p++;
		i++;

	}
	while(p<=p2)
	{if(*p!='*')
	{ str[i]=*p;
	i++;
	}
	p++;
	}

	while(*p!='\0')
	{
		str[i]=*p;
		p++;
		i++;
	}
	str[i]='\0';
}

  运行截图

 

 

 

实验6.1

运行代码

#include <stdio.h>
#include<string.h>
void sort(char *name[],int n);

int main()
{
	char *course[4]={"C Program",
		"C++ Object Oriented Program",
		"Operating System",
		"Date Structure and Algorithms"};
	 int i;
	 sort(course,4);
	 for(i=0;i<4;i++)
		 printf("%s\n",course[i]);
	 system("pause");
	 return 0;
}
void sort(char *name[],int n)
{ int i,j;
char *tmp;
for(i=0;i<n-1;++i)
	for(j=0;j<n-1-i;++j)
		if(strcmp(name[j],name[j+1])>0)
		{
			tmp=name[j];
			name[j]=name[j+1];
			name[j+1]=tmp;
		}}

  运行截图

 

 

 

实验6.2

运行代码

#include <stdio.h>
#include<string.h>
void sort(char *name[],int n);

int main()
{
	char *course[4]={"C Program",
		"C++ Object Oriented Program",
		"Operating System",
		"Date Structure and Algorithms"};
	 int i;
	 sort(course,4);
	 for(i=0;i<4;i++)
		 printf("%s\n",course[i]);
	 system("pause");
	 return 0;
}
void sort(char *name[],int n)
{ int i,j,k;
char *tmp;
for(i=0;i<n-1;i++)
	{k=i;
	for(j=i+1;j<n;j++)
		if(strcmp(name[j],name[k])<0)
			k=j;
	if(k!=i)
	{tmp=name[i];
	name[i]=name[k];
	name[k]=tmp;
	}}}
		

  运行截图

 回答问题:交换的是指针变量的值。

 

 

实验7

运行代码

#include <stdio.h>
#include<string.h>
#define N 5
int check_id(char *str);
int main(){
    char *pid[N] = {"31010120000721656X",
                              "330106199609203301",
                              "53010220051126571",
                              "510104199211197977",
                              "53010220051126133Y"};
                               int i;
                               for(i=0;i<N;++i)
                               if(check_id(pid[i]))
                               printf("%s\tTure\n",pid[i]);
                               else
                               printf("%s\tFalse\n",pid[i]);
                               return 0;}
int check_id(char *str)
{
    int i;
    if(strlen(str)==18)
    {
        for(i=0;i<17;i++)
            if(48<str[i]&&str[i]<57)
             if((48<str[17]&&str[17]<57)||(str[17]=='X'))
                return 1;
              else
                return 0;
            else 
              return 0;}
            else
             return 0;}
                
                
                

  

 运行截图

 

 

 

实验8

运行代码

#include <stdio.h>
#define N 80
void encoder(char *s);
void decoder(char *s);
int main(){
    char words[N];
    printf("输入英文文本:");
    gets(words);
    
    printf("编码后的英文文本:");
    encoder(words);
    printf("%s\n",words);
    
    printf("对编码后的英文文本解码:");
    decoder(words);
    printf("%s\n",words);
    system("pause");
    return 0;
  }
void encoder(char *s)
{
    int i;
    for(i=0;s[i]!='\0';i++)
          if((s[i]>='a'&&s[i]<'z')||s[i]>='A'&&s[i]<'Z')
          s[i]=s[i]+1;
          if(s[i]=='z')
          s[i]='a';
          if(s[i]=='Z')
          s[i]='A'; 
}
void decoder(char *s)
{
    int i;
    for(i=0;s[i]!='\0';i++)
         if((s[i]>'a'&&s[i]<='z')||s[i]>'A'&&s[i]<='Z')
          s[i]=s[i]-1;
          if(s[i]=='a')
          s[i]='z';
          if(s[i]=='A')
          s[i]='Z'; 
}

  运行截图

 

标签:int,s1,char,实验,str,printf,include
From: https://www.cnblogs.com/cty-ymwx/p/17371998.html

相关文章

  • 实验报告
    1、复数类Complex有两个数据成员:a和b,分别代表复数的实部和虚部,并有若干构造函数和一个重载-(减号,用于计算两个复数的距离)的成员函数。要求设计一个函数模板template<classT>doubledist(Ta,Tb)对int,float,Complex或者其他类型的数据,返回两个数据的间距。以上类名和函......
  • 20201230张国强实验三
    免杀原理1.基础问题回答杀软是如何检测出恶意代码的?基于特征码的静态扫描技术在文件中寻找特定的十六进制字符串,如果找到,就可判定文件感染了某种病毒。启发式杀毒技术病毒要达到感染和破坏的目的,通常的行为都会有一定的行为和特征,所以可以通过分析相关的病毒指令,判......
  • 2023.5.5 面向对象程序设计实验报告
    实验项目名称:模板一、实验目的1、熟练掌握函数模板和类模板的定义格式。2、熟练运用函数模板和类模板解决实际问题。二、实验内容1、复数类Complex有两个数据成员:a和b,分别代表复数的实部和虚部,并有若干构造函数和一个重载-(减号,用于计算两个复数的距离)的成员函数。要求设计......
  • 网络对抗实验六 MSF应用基础--20201313
    《网络对抗技术》——Exp6MSF应用基础目录《网络对抗技术》——Exp6MSF应用基础一、实践内容二、问题回答三、实践过程实验准备:1、一个主动攻击实践ms08_067_netapi2、一个针对浏览器的攻击ms10_018_ie_behaviors3、一个针对客户端的攻击Wireshark4、成功应用一个辅助模块sniff......
  • 网络对抗实验六 MSF应用基础
    Exp6MSF应用基础实验目标1.1一个主动攻击实践,尽量使用最新的类似漏洞;(1分)1.2一个针对浏览器的攻击,尽量使用最新的类似漏洞;(1分)1.3一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞;(1分)1.4成功应用任何一个辅助模块。(1分)实验内容0实验准备0.1实验原理0.1.......
  • pta实验报告2
    模板与类(对象数组)#include<bits/stdc++.h>usingnamespacestd;template<classT>Tmaxn(Tx[],intlen){ inti=1; Tmax=x[0]; for(i;i<len;i++) { if(max<x[i]) max=x[i]; } returnmax;}classDate{ private: intyear=0,month=0,day=0; public: Date()......
  • 网络对抗实验六 MSF应用基础
    目录实践内容一、主动攻击实践二、针对浏览器的攻击三、针对客户端的攻击四、应用一个辅助模块问题回答一、基础问题回答1.用自己的话解释什么是exploit,payload,encode.二、实践总结与体会实践内容一、主动攻击实践关闭靶机防火墙打开445端口查看版本msfconsolesearchs......
  • 快速学习HCIE培训实战-SDWAN综合实验-WOLFLAB
    快速学习HCIE培训实战-SDWAN综合实验-WOLFLAB技术编辑:WOLFLAB崔志鹏SDWAN实验需求:参考视频:https://edu.51cto.com/course/33648.html①iMasterNCE-Campus部署在Internet,南向地址为192.168.9.148,端口号为10020;业务面地址为192.168.9.147,端口号为18008;②站点分别为Site_Y与Site_Stor......
  • 工程数学--实验五:MATLAB 最优化工具箱的使用
    (1)线性规划应用案例的求解 %构造线性规划模型f=[-1500;-1200;-1800];A=[450,600,900;35,25,30;400,400,300];b=[63000;3300;33000];lb=[0;0;0];%调用linprog函数求解[x,fval]=linprog(f,A,b,[],[],lb);其中,变量f是目标函数......
  • 工程数学实验1
    代码:a=0;b=1;f=@(x)x*x-sin(x);eps=0.08;%区间精度可以修改while((b-a)>=eps)   x1=a+0.382*(b-a);   x2=a+0.618*(b-a);   disp(['x1=',num2str(x1)]);   disp(['x2=',num2str(x2)]);   iff(x1)<f(x2)      ......