首页 > 其他分享 >实验四

实验四

时间:2023-04-20 14:11:43浏览次数:28  
标签:int void char ++ 实验 str printf

#include <stdio.h>
#define N 4
int main() {
int a[N] = {2, 0, 2, 3};
char b[N] = {'2', '0', '2', '3'};
int i;
printf("sizeof(int) = %d\n", sizeof(int));
printf("sizeof(char) = %d\n", sizeof(char));
printf("\n");
// 输出int型数组a中每个元素的地址、值
for (i = 0; i < N; ++i)
printf("%p: %d\n", &a[i], a[i]);
printf("\n");
// 输出char型数组b中每个元素的地址、值
for (i = 0; i < N; ++i)
printf("%p: %c\n", &b[i], b[i]);
printf("\n");
// 输出数组名a和b对应的值
printf("a = %p\n", a);
printf("b = %p\n", b);
return 0;
}

 

 (1)是,4个   (2)是,1个   (3)是,是

#include <stdio.h>
#define N 2
#define M 3
int main() {
int a[N][M] = {{1, 2, 3}, {4, 5, 6}};
char b[N][M] = {{'1', '2', '3'}, {'4', '5', '6'}};
int i, j;
// 输出int型二维数组a中每个元素的地址、值
for (i = 0; i < N; ++i)
for (j = 0; j < M; ++j)
printf("%p: %d\n", &a[i][j], a[i][j]);
printf("\n");
// 输出int型二维数组名a, 以及,a[0], a[1]的值
printf("a = %p\n", a);
printf("a[0] = %p\n", a[0]);
printf("a[1] = %p\n", a[1]);
printf("\n");
// 输出char型二维数组b中每个元素的地址、值
for (i = 0; i < N; ++i)
for (j = 0; j < M; ++j)
printf("%p: %c\n", &b[i][j], b[i][j]);
printf("\n");
// 输出char型二维数组名b, 以及,b[0], b[1]的值
printf("b = %p\n", b);
printf("b[0] = %p\n", b[0]);
printf("b[1] = %p\n", b[1]);
printf("\n");
return 0;
}

 (1)是,4个   (2)一样   (3)是,1个   (4)一样   (5)a[0]的值和a的值相等,b[0]的值和b的值相等

 

#include <stdio.h>
#include <string.h>
#define N 80
void swap_str(char s1[N], char s2[N]);
void test1();
void test2();
int main() {
printf("测试1: 用两个一维维数组,实现两个字符串交换\n");
test1();
printf("\n测试: 用二维数组,实现两个字符串交换\n");
test2();
return 0;
} 
void test1() {
char views1[N] = "hey, C, I hate u.";
char views2[N] = "hey, C, I love u.";
printf("交换前: \n");
puts(views1);
puts(views2);
swap_str(views1, views2);
printf("交换后: \n");
puts(views1);
puts(views2);
}
void test2() {
char views[2][N] = {"hey, C, I hate u.", "hey, C, I love u."};
printf("交换前: \n");
puts(views[0]);
puts(views[1]);
swap_str(views[0], views[1]);
printf("交换后: \n");
puts(views[0]);
puts(views[1]);
} 
void swap_str(char s1[N], char s2[N]) {
char tmp[N];
strcpy(tmp, s1);
strcpy(s1, s2);
strcpy(s2, tmp);
}

 

 

总结:tesk1()调用时是两个不同的数组,不加[],tesk2()调用时是一个数组,需要[]表示范围

 

#include <stdio.h>
#define N 80 int count(char x[]); int main() { char words[N+1]; int n; while(gets(words) != NULL) { n = count(words); printf("单词数: %d\n\n", n); } return 0; } int count(char x[]) { int i; int word_flag = 0; // 用作单词标志,一个新单词开始,值为1;单词结束,值为0 int number = 0; // 统计单词个数 for(i = 0; x[i] != '\0'; i++) { if(x[i] == ' ') word_flag = 0; else if(word_flag == 0) { word_flag = 1; number++; } } return number; }

 

 

#include <stdio.h>
#define N 1000
int main() {
char line[N];
int word_len;
int max_len; // 记录最长单词长度
int end; // 记录最长单词结束位置
int i;
while(gets(line) != NULL) {
word_len = 0;
max_len = 0;
end = 0;
i = 0;
while(1) {
// 跳过连续空格
while(line[i] == ' ') {
word_len = 0; // 单词长度置0,为新单词统计做准备
i++;
} // 在一个单词中,统计当前单词长度
while(line[i] != '\0' && line[i] != ' ') {
word_len++;
i++;
} // 更新更长单词长度,并,记录最长单词结束位置
if(max_len < word_len) {
max_len = word_len;
end = i; // end保存的是单词结束的下一个坐标位置
} // 遍历到文本结束时,终止循环
if(line[i] == '\0')
break;
} // 输出最长单词
printf("最长单词: ");
for(i = end - max_len; i < end; ++i)
printf("%c", line[i]);
printf("\n\n");
} 
return 0;
}

 

 

 先把标点符号转换成空格,再进行计算

#include<stdio.h>
#define N 5

void input(int x[],int n);
void output(int x[],int n);
double average(int x[],int n);
void bubble_sort(int x[],int n);

int main(){
    int scores[N];
    double ave;
    
    printf("录入%d个分数:\n",N);
    input(scores,N);
    
    printf("\n输出课程分数:\n");
    output(scores,N);
    
    printf("\n课程分数处理:计算均分、排序...\n");
    ave=average(scores,N);
    bubble_sort(scores,N);
    
    printf("\n输出课程均分:%.2f\n",ave);
    printf("\n输出课程分数(高->低):\n");
    output(scores,N);
    
    return 0;
}

void input(int x[],int n){
    int i;
    
    for(i=0;i<n;i++)
        scanf("%d",&x[i]);
}

void output(int x[],int n){
    int i;
    
    for(i=0;i<n;i++)
        printf("%d ",x[i]);
    printf("\n");
}

double average(int x[],int n){
    int i,sum=0;
    double ave;
    for(i=0;i<n;i++)
        sum=sum+x[i];
    ave=1.0*sum/n;
    return ave;
}

void bubble_sort(int x[],int n){
    int i,j,t;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-1-i;j++)
            if(x[j]<x[j+1]){
                t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
}

 

 
 

 



 

#include<stdio.h>
#define N 100
void dec2n(int x,int n);

int main(){
    int x;
    
    printf("输入一个十进制整数:");
    while(scanf("%d",&x)!=EOF){
        dec2n(x,2);
        dec2n(x,8);
        dec2n(x,16);
        
        printf("\n输入一个十进制整数:");
    }
    
    return 0;
}

void dec2n(int x,int n){
    int i,j,t;
    char str[N]={"0123456789ABCDEF"};
    char num[N];
    
    for(i=0;x!=0;i++){
        t=x%n;
        x=x/n;
        num[i]=str[t];
    }
    
    for(j=i-1;j>=0;j--)
        printf("%c",num[j]);
    printf("\n");
}

 

#include<stdio.h>
#define N 100
#define M 4

void output(int x[][N],int n);
void rotate_right(int x[][N],int n);

int main(){
    int t[][N]={{21,12,13,24},
                {25,16,47,38},
                {29,11,32,54},
                {42,21,33,10}};
    printf("原始数组:\n");
    output(t,M);
    
    rotate_right(t,M);
    printf("变换后矩阵:\n");
    output(t,M);
    
    return 0;
}

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

void rotate_right(int x[][N],int n){
    int i,j,t;
    for(i=0;i<n;i++){
        for(j=n-1;j>=0;j--){
            if(j!=n-1)
                x[i][j+1]=x[i][j];
            else
                t=x[i][j];
        }
        x[i][0]=t;
    }
}

 

#include<stdio.h>
#define N 80

void replace(char x[],char old_char,char new_char);

int main(){
    char text[N]="Somebody has to win,so why not be me?";
    
    printf("原始文本:\n");
    printf("%s\n",text);
    
    replace(text,'i','*');
    
    printf("处理后文本:\n");
    printf("%s\n",text);
    
    return 0;
}

void replace(char x[],char old_char,char new_char){
    int i;
    for(i=0;x[i]!='\0';++i)
    if(x[i]==old_char)
        x[i]=new_char;
}

 

问题1:用*替换字符串中的i

问题2:'\0'是空字符,是字符串的结束标志

#include<stdio.h>
#define N 80

int main(){
    char str[N],ch;
    int i;
    
    printf("输入字符串:");
    gets(str);
    
    printf("输入一个字符:");
    ch=getchar();
    
    printf("截断处理......");
    
    i=0;
    while(str[i]!='\0'){
        if(str[i]==ch)
            str[i+1]='\0';
        i++;
    }
    str[i]='\0';
        
    printf("\n截断处理后字符串:%s\n",str);
    return 0;
}

 

#include<stdio.h>
#include<string.h>
#define N 5
#define M 20

void bubble_sort(char str[][M],int n);

int main(){
    char name[][M]={"Bob","Bill","Joseph","Taylor","George"};
    int i;
    
    printf("输出初始名单:\n");
    for(i=0;i<N;i++)
        printf("%s\n",name[i]);
        
    printf("\n排序中...\n");
    bubble_sort(name,N);
    
    printf("\n按字典序输出名单:\n");
    for(i=0;i<N;i++)
        printf("%s\n",name[i]);
    
    return 0; 
}

void bubble_sort(char str[][M],int n){
    int i,j;
    char t[N];
    for(j=0;j<N;j++)
        for(i=0;i<N-1;i++)
            if(strcmp(str[i],str[i+1])>0){
                strcpy(t,str[i]);
                strcpy(str[i],str[i+1]);
                strcpy(str[i+1],t);
            }
}

 

标签:int,void,char,++,实验,str,printf
From: https://www.cnblogs.com/PlanetE1151494055/p/17315655.html

相关文章

  • Spark+HBase数据处理与存储实验部分内容
    0.Scala+Spark+HBase的IDEA环境配置需要下载的内容:Scala、Java,注意两者之间版本是否匹配。环境:Win10,Scala2.10.6,JDK1.7,IDEA2022.3.1创建maven工程。下载Scala插件。右键项目,添加Scala框架支持。项目结果如图所示:scala添加为源目录,下存scala代码添加依赖包。将property的......
  • 网络对抗实验五 信息搜集与漏洞扫描--20201313
    目录网络对抗实验五信息搜集与漏洞扫描一、实践目标及实践内容1.实践目标2.实践内容二、实践原理1.信息搜集三、实践过程记录1、各种搜索技巧的应用搜索网址目录结构使用traceroute命令进行路由侦查2、DNSIP注册信息的查询whois查询nslookup查询dig查询LP2Location地理位置查......
  • VSCode修饰器报错,对修饰器的实验支持功能在将来的版本中可能更改
    报错内容对修饰器的实验支持功能在将来的版本中可能更改。在“tsconfig”或“jsconfig”中设置“experimentalDecorators”选项以删除此警告解决办法方法一:设置VSCode选项管理==>设置==>搜索experimentalDecorators==>打上勾勾方法二:增加jsconfig文件在根目录下新......
  • 火山引擎 DataTester:让企业“无代码”也能用起来的 A/B 实验平台
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群当数字化变革方兴未艾,无代码正受到前所未有的关注。Salesforce的数据显示,52%的IT部门表示,公司内部IT相关的技能差距是一个大问题,优秀的开发人员难找且成本高昂,而“无代码”能让编码技能有......
  • 火山引擎 DataTester:让企业“无代码”也能用起来的 A/B 实验平台
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 当数字化变革方兴未艾,无代码正受到前所未有的关注。Salesforce的数据显示,52%的IT部门表示,公司内部IT相关的技能差距是一个大问题,优秀的开发人员难找且成本高昂,而“无代码”能让编码技......
  • 实验一 密码引擎-4-国䀄算法交叉测试
    实验一密码引擎-4-国䀄算法交叉测试1在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图2在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)3.在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用OpenSSLSM2算法计算Hash值的......
  • 实验一 密码引擎-4-国䀄算法交叉测试
    实验一密码引擎-4-国䀄算法交叉测试目录1在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图2在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)2.1创建EC参数和原始私钥文件2.2将原始的私钥文件,转换为pkcs8格式:2.3利用原始的私钥,生......
  • 实验一 密码引擎-4-国䀄算法交叉测试
    02人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名1在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图2在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)3在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用Ope......
  • 实验一 密码引擎-4-国密算法交叉测试
    02人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名1在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图2在Ubuntu中基于OpenSSL产生一对公私钥对(SM2算法)3在Ubuntu中使用OpenSSL用SM3算法计算上述文件的Hash值,然后用Ope......
  • 实验一 密码引擎-3-电子钥匙功能测试
    1解压“龙脉密码钥匙驱动实例工具等”压缩包2在Ubuntu中运行“龙脉密码钥匙驱动实例工具等\mToken-GM3000\skf\samples\linux_mac”中例程,提交运行结果截图3加分项:运行“龙脉密码钥匙驱动实例工具等\mToken-GM3000\skf\samples\windows”中例程,提交运行结果截图ubuntu:wi......