
C++笔记
想要进步的码农
这个作者很懒,什么都没留下…
展开
-
求出2~1000之间的所有素数,将求出的素数分别送到文本文件prime.txt和二进制文件prime.dat中。送到文本文件中的结果要求以表格形式输出,每一行输出5个素数,每一个数占用10个字符宽度。
编程题1求出2~1000之间的所有素数,将求出的素数分别送到文本文件prime.txt和二进制文件prime.dat中。送到文本文件中的结果要求以表格形式输出,每一行输出5个素数,每一个数占用10个字符宽度。```cpp#include<iostream>#include<fstream>#include<iomanip>using namespace std;bool is(int n) { bool a = true; if (n <原创 2020-06-02 10:49:31 · 4787 阅读 · 0 评论 -
从键盘输入一个文本文件名,将文件中每行前面加上行号和一个冒号,行号从1开始,保存在另一文件中。例如: 1: This is a test. 2: I am a student. 3: I love C
/**编程题1从键盘输入一个文本文件名,将文件中每行前面加上行号和一个冒号,行号从1开始,保存在另一文件中。例如:1: This is a test.2: I am a student.3: I love China.*/#include<iostream>#include<string>#include<fstream>#include<cstdlib>using namespace std;int main(){ string f.原创 2020-06-01 15:11:24 · 940 阅读 · 0 评论 -
从键盘输入一个字符串,统计它在某文件(由用户从键盘输入文件名)中出现的次数,并在屏幕上输出包含该字符串的那些行。
#include<iostream>#include<fstream>#include<string>using namespace std;int main(){ fstream dataFile; int x=0; char input[100]; cout<<"请输入字符串1:"; char str[100]; cin>>str; dataFile.open("d:/a.txt",ios::in); if(!data.原创 2020-05-26 12:35:01 · 1113 阅读 · 0 评论 -
n个人围成一圈,他们的序号依次为1到n,从第一个人开始顺序报数1、2、3、……、m, 报到m者退出圈子,并输出退出圈子的人的序号。接着再顺序报数,直到圈子中留下一个人为止。 用一个有n个结点的环形链表
#include<iostream>using namespace std;struct Node{ int x; //围成一圈时,人的序号 Node *next;};Node *DelNode(Node *head, int m) //依次输出环形链表中凡报到m者的序号{ Node *p; int count; if(head==NULL) return .原创 2020-05-26 11:21:01 · 3004 阅读 · 0 评论 -
编程题 将一条链表上相邻的两个结点合并成一个结点,即将第1个结点与第2个结点合并,将第3个结点与第4个结点合并,……如果链表上结点个数为奇数,则最后一个结点不合并,直接作为合并后链表上的最后一个结点。
#include<stdio.h>#include<stdlib.h>#define LEN sizeof(struct node)struct node{ int data; struct node *next;};int main(){ struct node *head=NULL,*p,*q; int i,n=5; for(i=1;i<=n;i++){ p=(struct node*)malloc(LEN); //p1 = p2 = (stru原创 2020-05-25 15:33:42 · 1064 阅读 · 0 评论 -
以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾。单向链表的头指针作为函数值返回
#include<iostream>using namespace std;struct list{ char data; list *next;};list *creat( ){ list *h,*p,*q; char ch; h= new list ; p=q=h; cin>>ch; wh原创 2020-05-25 14:32:46 · 2631 阅读 · 0 评论 -
指针传参和引用传参比较。 定义一个函数,实现两个参数的交换。在主函数中输入3个实数,按升序排序后输出。 1)要求用变量的指针作为函数参数,在被调函数中实现变量值的交换。 2)要求参数为引用类型,在
指针传参和引用传参比较。 定义一个函数,实现两个参数的交换。在主函数中输入3个实数,按升序排序后输出。 1)要求用变量的指针作为函数参数,在被调函数中实现变量值的交换。 2)要求参数为引用类型,在被调函数中实现变量值的交换。#include<iostream>using namespace std;void swap(int *p,int *q){ int temp; temp=*q; *p=*q; *q=temp;}void swap1(int &p,int &原创 2020-05-12 14:43:58 · 2041 阅读 · 0 评论 -
C++二维数组与指针笔记
1.二维数组与指针行指针:如a和a+1 加的是一行元素指针(列指针):如*a(a[0])*(a+1)(即a[1])注意:a+i是下标为i行的首地 址,即元素a[i][0]的地址,但 *(a+i)不是a[i][0],仍是下标为i 行的首地址,与a+i不同的是已 从行控制转为列控制。2.二维数组元素a[i][j]的地址及元素表示1)a[i][j]的地址可表示为:&a[i][j],a[i]+j和*(a+i)+j.2)元素表示为:a[i][j],(a[i]+j),((a+i)+j)和((a+i原创 2020-05-12 14:43:15 · 224 阅读 · 0 评论 -
编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,则返回子串在主串中的位置,要求不能使用系统函数。
编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,则返回子串在主串中的位置,要求不能使用系统函数。编写一个函数,求二维数组的两条对角线元素之和。原创 2020-05-09 12:35:04 · 2870 阅读 · 0 评论 -
C++习题
一、函数的递归调用习题1.求n个数的阶乘2.汉诺塔问题3.递归求Fibonacci数列4.意输入一个不多于5位的整数,采用函数递归调用的形式实现分别将其各位数字正向、逆向输出。如输入7632,则输出:ws=4,7, 6, 3, 2 2, 3, 6, 75.求出1000以内的素数。在主函数中调用函数输出1000以内的素数,要求每行输出5个素数。二、编译预处理1.从键盘上读...原创 2020-04-21 13:25:49 · 373 阅读 · 0 评论 -
带参的宏与函数比较
1)函数调用是在程序运行时处理的,在栈中分配内存单元。而宏代换则是在编译前进行的,在代换时并不分配内存单元,不进行值的传递,也没有“返回值”的概念。2)函数调用时,先求出实参表达式的值,然后赋值给形参。而使用带参的宏只是进行简单的字符代换。3)对函数中的形参和实参都要定义类型。而宏不存在类型问题。4)宏代换不占用运行时间,只占用编译时间;而函数调用则占用运行时间(分配单元,保留现场,参数传递...原创 2020-04-21 09:56:51 · 548 阅读 · 0 评论 -
C++笔记
位运算1.按位与&1 1 为 1 , 其余为零例 a=3,b=-2 ,c=a&b=22.按位或 |有1 为一,0 0 为零例 a=3,b=-2 ,c=a|b= -13.按位异或 ^相同为0,不同为14.按位取反~5.左移<<乘以相应 2的次方数6.右移>>1.cout对象和cin对象“<<” 流插入操作符“>...原创 2020-03-31 18:32:56 · 246 阅读 · 0 评论