实验任务1:
1.1:
1.功能:寻找到输入的多个数据中最大的和最小的数据
2.指向该数组中的第一项
1.2:
1.返回的是该数组中最大数据的地址
2.不行,算法表达不正确
实验任务2:
2.1:
问题1:
大小:24
计算:数组s1的大小
统计:数组的数据字符串的长度
问题2:不行
表达不正确
2.2:
问题1:
存放:Learning makes me happy
计算:占据字节数
统计:字符串长度
问题2;
可以
实验任务3:
问题1:
表示指向包含4个int元素的一维数组
问题2:
表示第5个一维数组的第一位数据
实验任务4:
4.1:
问题1:
功能:将数组中的特定字符换成另一选定字符
问题2:不行
4.2:
#include <stdio.h> #define N 80 void str_trunc(char *str, char x); int main() { char str[N]; char ch; printf("输入字符串: "); gets(str); printf("输入一个字符: "); ch = getchar(); printf("截断处理...\n"); str_trunc(str, ch); printf("截断处理后的字符串: %s\n", str); } void str_trunc(char *str, char x) { while(*str) { if(*str == x) break; // blank1 str++; // blank2 } ; // blank3 }
实验任务5:
5.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", "Data Structure and Algorithms"}; int i; sort(course, 4); for (i = 0; i < 4; i++) printf("%s\n", course[i]); 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; } }
5.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", "Data Structure and Algorithms"}; int i; sort(course, 4); for (i = 0; i < 4; i++) printf("%s\n", course[i]); 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; } } }
内存中字符串的存储位置发生了交换
实验任务6:
#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\tTrue\n", pid[i]);
else
printf("%s\tFalse\n", pid[i]);
return 0;
}
// 函数定义
// 功能: 检查指针str指向的身份证号码串形式上是否合法。
// 形式合法,返回1,否则,返回0
int check_id(char *str) {
// 补足函数实现
// ...
int i,flag=1;
for(i = 0;*(str+i) != '\0';i++){
if(*(str+i)>='0'||*(str+i)=='X'&&*(str+i)<='9')
flag = 1;
else
flag = 0;
}
if(strlen(str) == 18&&flag == 1)
return 1;
else
return 0;
}
实验任务7:
#include <stdio.h> #define N 80 void encoder(char *str); // 函数声明 void decoder(char *str); // 函数声明 int main() { char words[N]; printf("输入英文文本: "); gets(words); printf("编码后的英文文本: "); encoder(words); // 函数调用 printf("%s\n", words); printf("对编码后的英文文本解码: "); decoder(words); // 函数调用 printf("%s\n", words); return 0; } void encoder(char *str) { while(*str != '\0'){ if(*str >= 'A'&&*str<'Z'||*str>= 'a'&&*str<'z') (*str)++; else if(*str == 'z') *str = 'a'; else if(*str == 'Z') *str = 'A'; str++; } } void decoder(char *str) { while(*str!='\0'){ if(*str > 'A'&&*str<='Z'||*str> 'a'&&*str<='z') (*str)--; else if(*str == 'a') *str = 'z'; else if(*str == 'A') *str = 'Z'; str++; } }
实验任务8:
标签:name,int,void,char,实验,str,printf From: https://www.cnblogs.com/zy050101-/p/17859838.html