1.启动和终止程序、显示运行中的程序列表
#include<stdio.h>
#include<stdlib.h>
void hw0()
{
//启动计算器,记事本,查看系统进程
system("calc");
system("notepad");
system("tasklist");
}
void hw1()
{
//进程终止
system("taskkill /f /im qq.exe");
}
2.显示一个变量的内存地址
void cr1()
{
int a = 10;
//printf("%p",&a)会显示变量的内存地址
printf("%p", &a);
system("pause");
}
3.在head文件中定义函数名称,使之可以使用中文编程
rvnhead.h
#include<stdio.h>
#include<stdio.h>
#include<Windows.h>
#define 返回值 void
#define 分号 ;
#define npd "notepad"
homework0.c
//因为在rvnhead.h中定义了void和;号,此文件中用中文代替也能编译运行
返回值 cr3()
{
printf("1.75s\n")分号
system("pause")分号
}
4.字符、字符集、ASCII码与转义字符
#include<stdio.h>
#include<stdlib.h>
void cr4()
{
/*
字符集(Character Set)为每个字符分配了唯一的编号,我们不妨将它称为编码值。在C语言中,一个字符除了可以用它的实体(也就是真正的字符)表示,还可以用编码值表示。这种使用编码值来间接地表示字符的方式称为转义字符(Escape Character)。
转义字符以\或者\x开头,以\开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制。
字符 1、2、3、a、b、c 对应的 ASCII 码的八进制形式分别是 61、62、63、141、142、143,十六进制形式分别是 31、32、33、61、62、63。下面的例子演示了转义字符的用法:
char a = '\61'; //字符1
char b = '\141'; //字符a
char c = '\x31'; //字符1
char d = '\x61'; //字符a
char *str1 = "\x31\x32\x33\x61\x62\x63"; //字符串"123abc"
char *str2 = "\61\62\63\141\142\143"; //字符串"123abc"
char *str3 = "The string is: \61\62\63\x61\x62\x63" //混用八进制和十六进制形式
转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\' 单引号 039
\" 双引号 034
\\ 反斜杠 092
*/
int a = 5;
while (a<10)
{
printf("\a"); //转义字符,\a即触发系统一次响铃
Sleep(3000); //等待3000ms,3000毫秒,即3秒,该函数位于Windows.h的头文件中
a++;
}
}
5.进制表示与进制转换
void cr5()
{
printf("%d\n", 0x12); //0x开头的都是16进制
printf("%d\n", 012); //0开头的都是8进制
//如何通过计算器验证计算是否正确:
//切换计算器到程序员模式
/*
Win10中,如果计算器是英文版的,程序员模式(Programmer)的缩写含义如下:
1、BIN:binary,二进制的;
2、OCT:octal,八进制的;
3、HEX:hexadecimal,十六进制的;
4、DEC:decimal,十进制的。
*/
//10进制、2进制、16进制转10进制
//123 10 =1*10^2+2*10^1+3*10^0=100+20+3=123
//110 2 =1*2^2+1*2^1+0*2^0=4+2+0=6
//AB 16 =10*16^1+11*16^0=160+11=171
/*
2进制转8进制:从右往左,每3位数字一组,不足三位的用0补足3位,转换为8进制,具体参考下面的对应表
2进制 8进制
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
//110010=110 010=6*10+2=62
//1101001=001 101 001=1*100+5*10+1=100+50+1=151
8进制转2进制:从右往左,根据每一位8进制数根据对照表排列2进制数值
17=001 111=1111
*/
/*
2进制转16进制:从右往左,每4位数字一组,不足三位的用0补足4位,转换为16进制,具体参考下面的对应表
2进制 10进制 16进制
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F
2进制/16进制相互转换:
9527=1001 0101 0010 0111=1001010100100111
11010101111101=0011 0101 0111 1101=3 5 7
D=357D=3*16^3+5*16^2+7*16^1+13*16^0=12288+1280+112+13=13693
10进制转2进制:每一次除以2后取余,直到数字被除到1为止,逆序排列
89%2=1
44%2=0
22%2=0
11%2=1
5%2=1
2%2=0
1 1
89=1011001
10进制小数转换为2进制:数字乘以2取整,顺序排列
10进制 0.625
0.625*2=1.25 取整1
0.25*2=0.5 取整0
0.5*2=1 取整1
即101
*/
}
|