当前位置:首页 > 教育培训 >

c语言经典100例(c语言学习笔记100例)

来源:原点资讯(www.yd166.com)时间:2023-06-25 23:12:03作者:YD166手机阅读>>

题目 96

题目:计算字符串中子串出现的次数

#include<cstdio> #include<cstring> char s1[20],s2[20],*p1,*p2; int cnt; // 全局变量默认初始值为0 // 这里其实可以通过kmp算法或者ac自动机算法实现 // 但是由于好久不写了,就写最简单的算法吧 // 如果有兴趣的话可以学一下hash,可以做很多字符串的事情 int main() { //这里默认s1为母串,s2为子串 scanf("%s%s",s1,s2); p1 = s1, p2 = s2; while(*p1 != '\0') { if(*p1 == *p2) { while(*p1 == *p2 && *p2 != '\0') p1 ,p2 ; } else p1 ; if(*p2 == '\0') cnt ; p2 = s2;//什么时候p2重置呢? } printf("%d",cnt); } 题目 97

题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。

#include<cstdio> #include<cstdlib> char ch,filename[10]; int main() { FILE *fp;//文件指针 scanf("%s",filename); // 这里默认此文件与程序在同一文件夹 fp = fopen(filename,"w"); // 实际上如果找不到的话,这里会自动创建一个 // 要注意这个是相对路径,如果要处理绝对路径怎么办? if(fp == NULL) { printf("don't find file named\"%s\"",filename); exit(0);//强制在此处终止程序 } ch = getchar();//起到什么作用? while((ch = getchar()) != '#') { // 不运行的话,下面的代码哪个是写入文件? fputc(ch,fp);//写入文件,会换行吗? putchar(ch);// 运行时候可以把这里注释掉 } fclose(fp);//记得关掉 } 题目 98

题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。

#include<cstdio> #include<cstdlib> char str[100],filename[10]; int i; int main() { FILE *fp; fp = fopen("test","w"); if(fp == NULL) { printf("don't find file named\"%s\"",filename); exit(0);//强制在此处终止程序 } gets(str);//读取一行字符串,要注意!结尾 // 大写字母与小写字母的ascii码差32 while(str[i]!='!') { if(str[i] >= 'a' && str[i] <='z') str[i] = str[i]- 32; i ; } fprintf(fp,"%s",str); //这个是直接向文件中输出的 // 是追加还是覆盖呢? 这个由什么决定? // 由fopen的第二个参数决定https://www.runoob.com/cprogramming/c-function-fopen.html fclose(fp); } 题目 99

题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。

#include<cstdio> #include<cstdlib> #include<cstring> #define R register // 最简单的想法就是两个同时读入到一个字符数组,再利用排序算法进行排序 // 两个代码都是这样的 // 这里先用不同的方法进行实现 // 可以先了解一下fgets函数 /* fgets(str,n,fp); str:指向一个字符数组的指针 n:要读取的最大字符数(包括最后的空字符) fp: 指向 FILE 对象的指针 */ void sswap(R char &x, R char &y) { char t = x; x = y; y = t; } char a[100],b[100],c[200]; int main() { FILE *fp; fp = fopen("A","r"); // 这个不会自动生成的 if(fp == NULL) { puts("don't find file \"A\""); exit(0);//强制在此处终止程序 } fgets(a,100,fp); fclose(fp); /*隔开*/ fp = fopen("B","r"); fgets(b,100,fp); if(fp == NULL) { puts("don't find file \"B\""); exit(0);//强制在此处终止程序 } fclose(fp); /*隔开*/ strcat(a,b); int len = strlen(a); for(R int i = 1;i < len;i ) for(R int j = 0;j < len-1;j ) if(a[j] > a[j 1]) sswap(a[j],a[j 1]); fp = fopen("C","w"); fprintf(fp,"%s",a); fclose(fp); }


下面是书中使用的代码:

#include<cstdio> #include<cstdlib> // 这里改了一下头文件,调整了一下排版 // 基本原理相同 int main() { FILE *fp; int i,j,n; char c[160],t,ch; if((fp=fopen("A","r")) == NULL) { printf("file A cannot be opened\n"); exit(0); } printf("\n A contents are :\n"); for(i = 0;(ch = fgetc(fp)) != EOF;i ) { c[i]=ch; putchar(c[i]); } fclose(fp); //分隔 if((fp=fopen("B","r")) == NULL) { printf("file B cannot be opened\n"); exit(0); } printf("\n B contents are :\n"); for(i = 0;(ch = fgetc(fp)) != EOF;i ) { c[i] = ch; putchar(c[i]); } fclose(fp); // 分隔 n = i; for(i = 0;i < n;i ) for(j = i 1;j < n;j ) if(c[i] > c[j]) { t = c[i]; c[i] = c[j]; c[j] = t; } printf("\n C file is:\n"); fp = fopen("C","w"); for(i = 0;i < n;i ) { putc(c[i],fp); putchar(c[i]); } fclose(fp); } 题目 100

题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。

#include<cstdio> #define R register //之前写过这个代码,就直接贴过来了,与源代码不同的是,这里没有使用结构体,而且重复使用同一个数组 /*输入5个学生的信息:学号(6位整数)、姓名(6个字符)、3门课的成绩(3位整数1位小数)。 计算每个学生的平均成绩(3位整数2位小数),将所有数据写入文件STU1.DAT;*/ char idx[10],name[10]; double sc[3],ave; int main() { FILE *fp = NULL; fp = fopen("STU1.DAT","w"); for(R int i = 1;i <= 5;i ) { scanf("%s",idx); fprintf(fp,"idx:%s\n",idx); scanf("%s",name); fprintf(fp,"name:%s\n",name); scanf("%lf%lf%lf",&sc[0],&sc[1],&sc[2]); fprintf(fp,"score:%3.1lf,%3.1lf,%3.1lf\n",sc[0],sc[1],sc[2]); ave = (sc[0] sc[1] sc[2]) / 3.0; fprintf(fp,"ave score:%3.2lf\n\n\n",ave); } fclose(fp); }

栏目热文

c语言与高级语言的区别(c语言和编程有什么区别)

c语言与高级语言的区别(c语言和编程有什么区别)

提到C语言,我们知道c语言和其他高级语言的最大的区别就是C语言是要操作内存的!我们需要知道——变量,其实是内存地址的一个...

2023-06-25 22:58:08查看全文 >>

c语言中for语句的用法(c语言for语句实例和用法)

c语言中for语句的用法(c语言for语句实例和用法)

在C语言中,for语句使用最为灵活,它完全可以取代 while 语句。它的一般形式为: for(表达式1; 表达式2; ...

2023-06-25 22:51:57查看全文 >>

c语言经典编程100例(c语言经典100个编程题)

c语言经典编程100例(c语言经典100个编程题)

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死...

2023-06-25 23:20:21查看全文 >>

幼儿经典故事排行榜前十(最新幼儿经典故事文字版)

幼儿经典故事排行榜前十(最新幼儿经典故事文字版)

1. 《三只小猪》:是一本经典的绘本故事,讲述了三只小猪如何建造房子,逃避大狼的故事,深受幼儿的喜爱。2. 《小蓝和小黄...

2023-06-25 23:03:36查看全文 >>

幼儿故事精选100篇有哪些(幼儿小故事100篇全集文本)

幼儿故事精选100篇有哪些(幼儿小故事100篇全集文本)

从小,我们就是听着童话故事长大的,不管是安徒生童话还是伊索寓言,或者是一千零一夜,每一个故事,都让我们对生活充满了期许。...

2023-06-25 23:29:26查看全文 >>

c语言是机器语言吗(c语言是机械语言还是高级语言)

c语言是机器语言吗(c语言是机械语言还是高级语言)

一、单项选择题(每小题3 分,共30分)1. C语言属于( )。A) 机器语言 B) 中级语言 C) 低级语言 D) 汇...

2023-06-25 23:00:19查看全文 >>

c语言是计算机的高级语言吗(c语言是计算机的什么语言)

c语言是计算机的高级语言吗(c语言是计算机的什么语言)

C语言与计算机软件的关系当下的时代数据与信息极为丰富繁荣,其中计算机有着功不可没的巨大功劳。尤其是计算机的软件更是百花齐...

2023-06-25 23:09:08查看全文 >>

c语言是一种高级语言吗(c+语言是高级语言吗)

c语言是一种高级语言吗(c+语言是高级语言吗)

c语言出现早,比C 早,比Java,Python早更多,属于老爷爷级的语言。爷爷级别语言在2021年4月份世界编程语言...

2023-06-25 23:11:04查看全文 >>

c语言是底层语言吗(c语言底层是什么语言)

c语言是底层语言吗(c语言底层是什么语言)

作为一名10余年开发经验的程序员老兵,细细回想,每每人生转折都能遇到小甲鱼老师的帮助,在讲我和小甲鱼老师的三段“奇遇”前...

2023-06-25 22:50:06查看全文 >>

c语言和高级语言有啥区别(c语言是汇编语言还是高级语言)

c语言和高级语言有啥区别(c语言是汇编语言还是高级语言)

世界上大约有几百种编程语言。但是,平时被更多开发人员使用的大约只有 20多种。在这20多种编程语言中,有些人可能需要学会...

2023-06-25 22:49:02查看全文 >>

文档排行