![](https://img-blog.csdnimg.cn/d114eeb3f7894130a199a78d63a13dc7.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C基础
C
【JAVA】玩家
Study is to forget...
展开
-
制表符\t的理解
制表符\t的理解:一般情况下,制表符的长度是固定的,通常是一个字节,8为比特的长度,下面通过一个例子,来理解:package com.test;public class TestMes { public static void main(String[] args){ System.out.println("123456789123456789123456789123456789123456789123456789123456789123456789"); Syst原创 2021-07-21 16:04:10 · 3188 阅读 · 0 评论 -
求多项式的值以及查看给定程序段内运行的时间
求多项式的值以及查看给定程序段内运行的时间:多项式的基本公式变形可得:另外还要了解clock()函数:宏CLOCKS_PER_SEC适用于将计算系统时间类型转换为用户可读的秒时间。clock_t是long类型,包含在头文件"time.h"中 将long用别名clock_t代替。代码如下:#include<stdio.h>#include <time.h>clock_t start, stop; //clock_t是long类型,包含在头文件"time.h"中 将原创 2021-02-22 18:23:21 · 151 阅读 · 0 评论 -
fread与fwrite的简单运用
fread与fwrite的简单运用:用fread()与fwrite()将学生信息写到磁盘文件上,接着将磁盘文件上存储的学生信息显示在终端。了解fread(数组地址, 字节长度, 读取次数,文件指针 ):向指针所指的文件中每次读取字节长度数的内容存储在数组中,连续读取指定的读取次数.了解fwrite(数组地址, 字节长度, 写入次数,文件指针 ):将数组中的内容,按照给定的字节数,写入指针所指的文件文本中,连续写入给定的次数。#include <stdio.h>#include <原创 2021-02-08 13:17:49 · 255 阅读 · 2 评论 -
fputs与fgets的简单运用
fputs与fgets的简单运用:从终端输入数据,将数据写入文本中,换行输入,文本内容换行显示,接着将文本内容读取显示在终端上了解fputs():是将一行字符串写入文本中。了解fgets():是读取文本中一行字符串。这里要注意的是换行的问题,由于scanf()函数在函数返回的时候是将换行符留在了缓存区,所以,这里要用strcat()函数将字符串"\n"拼接起来,这样就相当于举个例子:"aaaaa\n"的效果。另外,还要注意就是每打开文件进行操作是,在结束时都因该要关闭文件。#include &l原创 2021-02-07 20:30:01 · 502 阅读 · 0 评论 -
磁盘文件的读写问题
磁盘文件的读写问题:了解fputc(字符,文本路劲的指针)基本格式:将字符写到磁盘文件中了解fgetc(文本路劲的指针)基本格式,从磁盘文件中读取字符;了解exit()函数,它包含在stdlib.h的头文件中。exit是一个库函数,exit()使程序立即正常终止,如果状态值为0则认为正常推出,如果非零则说明存在执行错误。调用exit()清除和关闭所有打开的文件,写出任何缓冲输出,并且调用所有atexit()登记的程序终止函数。一:将终端输入的数据写到任意指定的文件中:这里要注意一下就是代码中第一原创 2021-02-07 10:01:30 · 579 阅读 · 0 评论 -
ifdef与ifndef的简单运用
#ifdef与#ifndef的简单运用:#ifdef表示如果宏定义了。#ifndef表示若果没有宏定义。#ifdef 宏替换名程序段#endif#ifndef 宏替换名程序段#endif注意的是,这里的宏定义是不指定数据类型的,所以在想说明返回值为int就必须将其返回值赋值给一个整形变量。 还要注意的是,宏定义参数后面接着的字符串不要用大括号括 起来。#include <stdio.h>#define Ave(a,b) c=((a)+(b))/2;int main(原创 2021-02-06 15:46:34 · 633 阅读 · 0 评论 -
带参数的宏定义的简单运用
定义一个带参数宏,实现比较两个数的大小定义格式:#define 宏名(参数) 字符串#include <stdio.h>#define MAX(a,b) c=((a)>(b)?(a):(b)); //注意,这里不要用大括号阔起来,否则报错int main(){ int a = 15, b = 7; int c = MAX(a,b); printf("最大数为:%d",c); return 0;}...原创 2021-02-06 15:22:18 · 401 阅读 · 0 评论 -
算术右移和逻辑右移区别
**一、对于有符号数 int正数,左移直接丢弃最高位,在低位补对应个数的0;正数,右移直接丢弃最低位,在高位补对应个数的0;负数,左移直接丢弃最高位,在低位补对应个数的0;负数,右移直接丢弃最低位,在高位补对应个数的1;二、对于无符号数 unsigned int0左移直接丢弃最高位,在低位补对应个数的0;右移直接丢弃最低位,在高位补对应个数的0即使最高位原来是1;三、总结算术右移:最高位填充符号位。正数填充0,负数填充1逻辑右移:最高位填充0左移都是补0...转载 2021-02-06 14:50:37 · 1849 阅读 · 0 评论 -
编程实现循环位移
输入一个八进制数,输入要移动的位数,若数为正数,则表示右移,相反为左移,并打印八进制结果:思路:这里无符号整数,为两个字节,即16位,用到的公式在代码中体现出来了。#include <stdio.h>right(unsigned x, int n){ unsigned z; z = (x>>n)|(x<<16-n); return z;}left(unsigned x, int n){ unsigned z; z = (x>>16原创 2021-02-06 14:44:54 · 429 阅读 · 0 评论 -
用结构体数组存储学生信息,输入学生学号,查询相应的成绩
用结构体数组存储学生信息,输入学生学号,查询相应的成绩主要是熟练一下结构体的运用,思路:先存储学生信息,然后做相应的查询,在存储过程中,设置以#为结束标志,在查找过程中,同样以#为结束标志,这里用到了strcmp(char1, char2),代码如下:#include <stdio.h>#include <string.h>struct info{ char name[12]; char id[9]; char score[10];};int readin(stru原创 2021-02-05 22:10:25 · 12911 阅读 · 0 评论 -
将两个有序字符串集合排序成一个新的有序集合
将两个有序字符串集合排序成一个新的有序集合:思路:这里采用指针的形式,如果两个指针没有指到’\0’,则通过比较得出先后顺序,另外就是两中情况,分别在下面代码中体现出来了。#include <stdio.h>void fun(char *str1, char *str2){ char *s; char a[60]; s=a; while(*str1!='\0'&&*str2!='\0') { if(*str1>=*str2)原创 2021-02-05 20:22:48 · 449 阅读 · 0 评论 -
指针与数组的练习
*int find_middle(int a[],int n);当传递长度为n的数组a时,函数将返回指向数组的中间元素的指针。(如果n是偶数,选择较大下标的中间元素。例如,如果n=4,中间元素是a[2],不是a[1]。)#include <stdio.h>#include <stdlib.h>int *fun(int x[], int n){ int *w; w = &x[n/2]; return w;}int main(){ int a[]={1,2转载 2021-02-05 16:56:50 · 203 阅读 · 0 评论 -
在一段字符串指定位置插入另外一段字符串
在一段字符串指定位置插入另外一段字符串:注意循环结束的条件,以及循环结束之后补上’\0’;#include <stdio.h>#include <string.h>void insert(char *p, char *q, int n){ char *strs, ch[60]; strs = ch; int i; for(i=0; *p!='\0'; i++) { if(i == n-1) { while(*q!='\0原创 2021-02-04 22:59:57 · 811 阅读 · 0 评论 -
字符串指针的指向区别
字符串指针的指向区别:#include <stdio.h>#include <string.h>int main(){ char st[20],*ps; ps = st; scanf("%s", ps); puts(st); /* ps = "hello"; puts(st); */ return 0; }运行注释里面程序代码的结果截图:注意到结果为空,也就是没有将hello赋值成功给字符数组,前者可以赋值成功是因为ps是指向st数组的首地址,对原创 2021-02-04 22:30:17 · 98 阅读 · 0 评论 -
指针实现冒泡排序
指针实现冒泡排序:直接看代码#include <stdio.h>int order(int *p, int n){ int t; for(int i=0; i<n-1; i++) for(int j=0; j<n-1-i; j++) if(*(p+j)>*(p+j+1)) { t = *(p+j); *(p+j) = *(p+j+1); *(p+j+1) = t; } for(int i=0; i<n原创 2021-02-04 22:01:47 · 1116 阅读 · 0 评论 -
输入年月份,输出这天是这年的第几天?
输入年月份,输出这年的第几天?这里可以用数组将每个月的天数存储起来,然后通过循环求解,注意循环物理下标。#include <stdio.h>int fun(int year, int month, int day){ int md[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int sum=0; for(int i=0; i<month-1; i++)//这里要-1 sum = day+ md[i]+sum; if(year%原创 2021-02-04 21:26:46 · 1243 阅读 · 0 评论 -
C语言math.h
C语言中基本的math.h函数的应用,double型以及强制转化 #include <stdio.h> #include <math.h> int main() { double x,y; printf("请输入两个数:"); scanf("%lf%lf",&x,&y); printf("%0.3lf\n",sqrt(x));...原创 2020-02-06 20:41:53 · 1019 阅读 · 0 评论