当前位置:首页 » 编程语言 » c语言中的指法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中的指法

发布时间: 2022-10-04 11:45:10

A. c语言编写指法练习程序

#include<string.h>
#include<alloc.h>
#include<dos.h>
#define SIZE 30
win()
{
clrscr();
gotoxy(20,2);printf("*------------------------------*");
gotoxy(20,3);printf("* Fingering Training System *");
gotoxy(20,4);printf("* Designed By PrOve *");
gotoxy(20,5);printf("* 2005-09-06 *");
gotoxy(20,6);printf("*------------------------------*");
gotoxy(16,7);printf("...Press any key to entry the System...");
getch();
clrscr();
gotoxy(5,2);printf("Input original text:\n");
gotoxy(5,22);printf("------------------------------------------------------");
gotoxy(5,23);printf(" CorrectRate:%");
gotoxy(33,23);printf("Speed: w/s");

}
main()
{
char o1[150],o2[SIZE],o3[SIZE],o4[SIZE];/*每一行原文,最多150字符*/
char i1[150],i2[SIZE],i3[SIZE],i4[SIZE];/*每一行输入*/
int i;
long error = 0,correct = 0;
float crate;
double speed;
double ti;
char flag;
struct time t1,t2;

start:win();
gotoxy(5,4);printf("------------------------------------------------------");
gotoxy(5,3);gets(o1);
gotoxy(5,6);printf("------------------------------------------------------");
gotoxy(5,5);gets(o2);strcat(o1,o2);
gotoxy(5,8);printf("------------------------------------------------------");
gotoxy(5,7);gets(o3);strcat(o1,o3);
gotoxy(5,10);printf("------------------------------------------------------");
gotoxy(5,9);gets(o4);strcat(o1,o4);
gotoxy(5,11);printf("Start Now!\n");
gotoxy(5,13);printf("------------------------------------------------------");
gettime(&t1); /*计时开始*/
gotoxy(5,12);gets(i1);
gotoxy(5,15);printf("------------------------------------------------------");
gotoxy(5,14);gets(i2);strcat(i1,i2);
gotoxy(5,17);printf("------------------------------------------------------");
gotoxy(5,16);gets(i3);strcat(i1,i3);
gotoxy(5,19);printf("------------------------------------------------------");
gotoxy(5,18);gets(i4);strcat(i1,i4);
gettime(&t2);/*计时结束*/

for(i = 0;i <strlen(o1);i++)
{
if(o1[i] != i1[i])
error++;
else
correct++;
}
crate =(float) correct / (float)strlen(i1) * 100;
ti = (double)((t2.ti_hour * 3600 + t2.ti_min * 60 + t2.ti_sec ) - (t1.ti_hour * 3600 + t1.ti_min * 60 + t1.ti_sec ));
speed = (double)strlen(i1) / (double)ti;
gotoxy(20,23);printf("%f",crate);
gotoxy(40,23);printf("%lf",speed);
gotoxy(5,20);printf("Continue or Not(Y/N) ?");
flag = getch();
if(flag == 'y' || flag == 'Y')
goto start;
else
{
clrscr();
gotoxy(26,7);printf("Welcome to use!");
gotoxy(19,8);printf("...Press any key to exit...");
getch();
exit(1);
}
getch();
}

B. 求~正规C语言打字指法 在线等

写C语言程序你能一直保持50-60的速度打字还真是牛了,打字的时间和想的时间比起来不算什么。。。打字那么快干什么。。。指法和一般打字没有什么区别的,你写程度多了打字就自然快了。
另外,printf();"" 的打法不是为了快,而是为了不出错。

F和J是两个食指的位置,剩下的手指顺序放在相邻的键位上,每个手指管自己一列的键,中间和两边还剩下一些键,所以食指和小指管的多一些,中间的几个键像HYU67哪个手方便就用那个手

C. 指法练习程序C语言作业,求帮助,程序对了,分都给你

理论不应该帮你做作业..不过我现在比较闲,写了个比较简单的代码,如果需要从文件写入系统需要的文字,请自行修改...
还是希望你能自己完成作业..

//start
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
//修改系统显示的字符串,请在此处修改
char DisplayChar[] = "this is test string!";
int RightNum = 0;
int WrongNum = 0;
int OriginLen;
int InputLen;
float AccuracyRate;
char InputChar[1024];

OriginLen = strlen(DisplayChar);
printf("Please enter the characters on the screen:\n");
printf("%s\n",DisplayChar);

//输入字符串
gets(InputChar);
InputLen = strlen(InputChar);
InputChar[1023] = 0;

//循环判定程序是否正确
while (InputChar[RightNum+WrongNum] != 0)
{
//当正确字符和错误字符数大于系统输出字符长度时,后面的都是错误的,不需要再验证
if ( (RightNum + WrongNum) > OriginLen)
{
break;
}

if ( InputChar[RightNum+WrongNum] != DisplayChar[RightNum+WrongNum])
{
WrongNum++;
}
else
{
RightNum++;
}

}

//处理为 正确率 = 正确字符数/系统输出或输入的最长字符串
if (OriginLen >= InputLen)
{
AccuracyRate = (float)(RightNum*100)/OriginLen;
}
else
{
AccuracyRate = (float)(RightNum*100)/InputLen;
}

if ( (int)AccuracyRate == 100)
{
printf("Congratulation! Accuracy Rate is 100%%\n");
}
else
{
printf("Continue to work hard, come on!\nAccuracy Rate is %3.2f%%\n",AccuracyRate);
}

return 0;

}

D. C语言怎样敲代码敲的快啊,我看视频上都敲的那么快

你必须要对键盘很熟悉,敲得快的,首先你要回盲打,其次,你要对代码很熟。自己本身对代码不熟,一边敲一边还要看书上代码是什么评的,能快才怪呢。这些都是慢慢练过来的,我当初就是上C语言课的时候,开始盲打,不然上课跟不上老师的节奏。自己课后多练练吧!

E. C语言编程:指法练习程序

可以只是说说思路吗?

思路还是比较简单的 随机读取 用随机数 设置文件的读取指针
判断错误 我认为一个比较简单的实现思路是 每输入一个字符 判断一次
可以用一个缓存区 存放 随机选取的字符 然后 每匹配一个后 对这个进行移出缓存区的操作
也可以用一个int 类型作指针 指示 应对比的字母的位置

F. C语言题指法练习游戏 功能要求:随机生成并显示一个单词(一个字符串),然后读

#include"stdio.h"
#include"stdlib.h"
int n,i;
int main(){
n=rand()%100;
for(i=1;i<=n;i++)
printf("%c",rand()%26+97);
printf("\n");
return 0;
}
比较简陋,不能实现绝对随机......
可以根据个人需要自己改......

G. C语言指法练习程序

//HanZi.cpp:.//

#include"stdafx.h"

#include"stdio.h"

#include"stdlib.h"

#include"conio.h"

#include"string.h"


/*

从键盘获得汉字的编码

在中文windows下,默认编码方式为GB2312,每个汉字由两个字节组成。

函数的目的是:把这个汉字的高字节写入pc1指向的位置,低字节写入pc2指向的位置

*/

intget_han_zi(unsignedchar*pc1,unsignedchar*pc2)

{

charbuf[100];

printf(" 请输入一个汉字:");

gets(buf);

if(strlen(buf)!=2)return-1;


*pc1=buf[0];

*pc2=buf[1];

if(*pc1<0xa1)return-2;

if(*pc2<0xa1)return-2;


return0;}

/*

从文件(字形文件HZK16)把字形装入到一个32字节的缓冲区buf中。

c1是该汉字GB2312编码的高字节,c2是低字节。


每个bit代表1个像素点,16点阵的字模需要256个像素点信息,故需32字节

字节的排列与16点阵像素的对应关系如下图:

第0字节第1字节

第2字节第3字节

.......

第14字节第15字节


也就是说:每1行的16个点由2个字节提供。顺序是:从上到下,从左到右。

GB2312的编码规则是:前一个字节表示区号,后一个表示区中的偏移序号。

每个区有94个汉字。区号和序号的编码都是从0xA1开始(为了避免和西文冲突)

因此,已知某个汉字的编码,就可以计算出文件中所在的绝对位置。

*/

voidload_han_zi(unsignedchar*buf,unsignedcharc1,unsignedcharc2)

{

intn=(c1-0xa1)*94+(c2-0xa1);//计算在文件中的位置


FILE*fp=fopen("HZK16.DAT","rb");

if(fp==NULL){

printf("汉字库打开错!");

exit(1);

}


fseek(fp,n*32L,SEEK_SET);

for(inti=0;i<32;i++){

buf[i]=(unsignedchar)fgetc(fp);

}


fclose(fp);}

/*

显示汉字

buf:从文件中读出的汉字字模信息,32字节,说明同上

italic:=1,如果要求斜体,=0正常

kx:水平放大率

ky:垂直放大率

fill:用于填充的字符

*/

voidshow_han_zi(unsignedchar*buf,intitalic,intkx,intky,charfill)

{

for(inti=0;i<16;i++){

for(intk1=0;k1<ky;k1++){

printf(" ");

if(italic){

for(intk3=0;k3<15-i;k3++)

printf("");

}

for(intj=0;j<16;j++){

if(buf[i*2+(j/8)]&(0x80>>(j%8)))

for(intk2=0;k2<kx;k2++)

printf("%c",fill);

else

for(intk2=0;k2<kx;k2++)

printf("");

}

}

}

}


voidwrite_to_file(unsignedchar*buf,intitalic,intkx,intky,charfill)

{

FILE*fp=fopen("a.txt","w");


for(inti=0;i<16;i++){

for(intk1=0;k1<ky;k1++){

fputc(' ',fp);

if(italic){

for(intk3=0;k3<15-i;k3++)

fputc('',fp);

}

for(intj=0;j<16;j++){

if(buf[i*2+(j/8)]&(0x80>>(j%8)))

for(intk2=0;k2<kx;k2++)

fputc(fill,fp);

else

for(intk2=0;k2<kx;k2++)

fputc('',fp);

}

}

}


fclose(fp);}

intset_zoom_k(int*pk)

{

printf("请输入放大率(1-4):");

charbuf[100];

gets(buf);

intn=atoi(buf);

if(n<1||n>4)return-1;


*pk=n;

return0;

}


charget_fill_char()

{

for(;;){

printf("请输入用于填充的字符");

charc=getch();

if(c>32&&c<125)returnc;

}

}


intmain(intargc,char*argv[])

{

unsignedcharhan_zi_buf[32]; //存储16点阵汉字的字模

intfont_italic=0;

intfont_kx=1; //水平放大率

intfont_ky=1; //垂直放大率

charfill_char='@'; //填充字符


for(;;){

printf(" ---------------- ");

printf("1.输入一个汉字 ");

printf("2.切换斜体 ");

printf("3.设置水平放大 ");

printf("4.设置垂直放大 ");

printf("5.设置填充字符 ");

printf("6.输出到文件a.txt ");

printf("7.退出 ");

printf("---------------- ");


printf("请选择相应的数字 "); charc=(char)getch();

switch(c){

case'1':

{

unsignedcharc1;

unsignedcharc2;

if(get_han_zi(&c1,&c2)!=0)

printf(" 输入无效! ");

else{

load_han_zi(han_zi_buf,c1,c2);

show_han_zi(han_zi_buf,font_italic,font_kx,font_ky,fill_char);

}

}

break;


case'2':

font_italic=(font_italic+1)%2;

show_han_zi(han_zi_buf,font_italic,font_kx,font_ky,fill_char);

break;


case'3':

if(set_zoom_k(&font_kx)!=0)

printf(" 输入无效! ");

else

show_han_zi(han_zi_buf,font_italic,font_kx,font_ky,fill_char);

break;


case'4':

if(set_zoom_k(&font_ky)!=0)

printf(" 输入无效! ");

else

show_han_zi(han_zi_buf,font_italic,font_kx,font_ky,fill_char);

break;


case'5':

fill_char=get_fill_char();

show_han_zi(han_zi_buf,font_italic,font_kx,font_ky,fill_char);

break;


case'6':

write_to_file(han_zi_buf,font_italic,font_kx,font_ky,fill_char);

break;


case'7':

exit(0);

break;

default:

printf(" 您的选择无效! ");

}

}

return0;

}

建立如此文件名HZK16.DAT

可以邮箱整套文件发给你

H. C语言程序编写指法练习软件

学MFC吧~~你的困惑一下子就会解除的~~~
用纯C语言编带界面的也不是不可能~~就是要用到WINDOWS API~~给你一段代码试试吧~~是我做的一个OPENGL的程序~~~在VISUAL STUDIO.NET 2003下编译通过~~代码如下~~
#define WM_TOGGLEFULLSCREEN (WM_USER+1) // 定义全屏/窗口切换消息
#define TIMER1 101 // 定义时钟代号,设置为101号
#define TITLE "5DG'S Color Shading" // 定义窗口标题
#define CLASSNAME "5DG_OPENGL" // 定义窗口类名
#define WIDTH 640 // 定义窗口宽度
#define HEIGHT 480 // 定义窗口高度
#define BPP 16 // 定义每象素的位数

#define NUM 200 // 定义绘制圆时用的顶点数(用顶点组成的线段逼近圆)

// 在此处引用程序要求的头文件:
#include <windows.h> // Windows的头文件
#include <gl\gl.h> // OpenGL32库的头文件
#include <gl\glu.h> // Glu32库的头文件
#include <math.h> // 数学函数库的头文件

// 在此处加入程序要求的库到链接器中:
#pragma comment(lib, "opengl32.lib") // 链接时查找OpenGL32.lib
#pragma comment(lib, "glu32.lib") // 链接时查找glu32.lib

// 在此处定义与窗口相关的结构体:
typedef struct { // 定义处理键盘的结构体
BOOL keyDown [256]; // 存储键盘按键状态的数组
} Keys;

typedef struct { // 定义存储应用程序实例的结构体
HINSTANCE hInstance; // 应用程序实例
const char* className; // 应用程序类名
} Application;

typedef struct { // 定义初始化窗口所需信息
Application* application; // 所属的应用程序
char* title; // 窗口标题
int width; // 窗口宽度
int height; // 窗口高度
int bitsPerPixel; // 每像素的位数
BOOL isFullScreen; // 是否全屏
} GL_WindowInit;

typedef struct { // 定义窗口结构体
Keys* keys; // 键盘
HWND hWnd; // 窗口句柄
HDC hDC; // 设备描述表
HGLRC hRC; // 绘制描述表
GL_WindowInit init; // 提供Window初始化信息的结构体
} GL_Window;

// 此代码模块中包含的函数的前向声明:
BOOL Initialize(GL_Window* window, Keys* keys); // 设置你绘制前的初始化值
void DrawSceneGL(void); // 在这里完成场景的绘制
void Update(void); // 在此处更新对消息的动作
void Deinitialize(void); // 在此处做退出前扫尾工作

// 在此处定义全局变量:
GL_Window* OGL_window; // 存储窗口信息
Keys* OGL_keys; // 存储按键信息
// 在此处定义用户变量:

void ResizeWindowGL(int width, int height) // 重新设置窗口大小
{
glViewport(0, 0, (GLsizei)(width), (GLsizei)(height)); // 重置当前视口大小
glMatrixMode(GL_PROJECTION); // 切换到投影矩阵模式
glLoadIdentity(); // 重置投影矩阵
gluPerspective(45, (float)width/(float)height, 0.1, 100); // 设置透视投影
glMatrixMode(GL_MODELVIEW); // 切换到模型视图矩阵
glLoadIdentity(); // 重置模型视图矩阵
}

BOOL ChangeScreenResolution(int width, int height, int bitsPerPixel) // 修改屏幕分辨率
{
DEVMODE dmScreenSettings; // 设备设置模式
ZeroMemory(&dmScreenSettings, sizeof(DEVMODE)); // 清空
dmScreenSettings.dmSize = sizeof(DEVMODE); // Devmode结构的大小
dmScreenSettings.dmPelsWidth = width; // 设置为屏幕宽度
dmScreenSettings.dmPelsHeight = height; // 设置为屏幕高度
dmScreenSettings.dmBitsPerPel = bitsPerPixel; // 设为指定位长;
dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
// 尝试设置显示模式并返回结果。注: CDS_FULLSCREEN 移去了状态栏
if (ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
{
return FALSE; // 分辨率修改失败,返回 False
}
return TRUE; // 分辨率修改成功,返回 True;
}

BOOL CreateWindowGL(GL_Window* window) // 建立OpenGL窗口
{
DWORD windowStyle = WS_OVERLAPPEDWINDOW; // 设置窗口样式
DWORD windowExtendedStyle = WS_EX_APPWINDOW; // 设置窗口扩展样式

PIXELFORMATDESCRIPTOR pfd = // 像素格式描述符(pfd)的设置
{
sizeof(PIXELFORMATDESCRIPTOR), // 像素的尺寸
1, // 版本号
PFD_DRAW_TO_WINDOW | // pfd必须支持窗口绘制
PFD_SUPPORT_OPENGL | // pfd必须支持OpenGL
PFD_DOUBLEBUFFER, // pfd必须支持双缓存
PFD_TYPE_RGBA, // 像素格式为RGBA
window->init.bitsPerPixel, // 设置颜色深度
0, 0, 0, 0, 0, 0, // 忽略颜色位数
0, // 无Alpha缓存
0, // 忽略偏移位
0, // 无累积缓存
0, 0, 0, 0, // 忽略累积缓存位
16, // 深度缓存为16位
0, // 无模板缓存
0, // 无辅助缓存
PFD_MAIN_PLANE, // 主要绘制层
0, // 保留位
0, 0, 0 // 忽略层遮罩
};

RECT windowRect = {0, 0, window->init.width, window->init.height}; // 定义窗口大小

GLuint PixelFormat; // 保存像素格式

if (window->init.isFullScreen == TRUE) // 切换全屏
{
if (ChangeScreenResolution(window->init.width, window->init.height, window->init.bitsPerPixel) == FALSE)
{
// 全屏切换失败
MessageBox(HWND_DESKTOP, "无法切换到全屏模式,在窗口模式下运行.\nMode Switch Failed,Running In Windowed Mode.", "Error", MB_OK | MB_ICONEXCLAMATION);
window->init.isFullScreen = FALSE; // 设置 isFullscreen 为False
}
else // 全屏切换成功
{
ShowCursor (FALSE); // 隐藏鼠标
windowStyle = WS_POPUP; // 设置窗口样式
windowExtendedStyle |= WS_EX_TOPMOST; // 设置窗口扩展样式
}
}
else
{
// 调整窗口大小,包括窗口边界
AdjustWindowRectEx(&windowRect, windowStyle, 0, windowExtendedStyle);
}

// 开始创建 OpenGL 窗口
window->hWnd = CreateWindowEx(windowExtendedStyle, // 窗口扩展样式
window->init.application->className,// 应用程序类名
window->init.title, // 窗口标题
windowStyle, // 窗口样式
0, 0, // 窗口的 X,Y 坐标位置
windowRect.right - windowRect.left, // 窗口宽度
windowRect.bottom - windowRect.top, // 窗口高度
HWND_DESKTOP, // 父窗口为桌面
0, // 无菜单
window->init.application->hInstance,// 传入应用程序实例
window);

if (window->hWnd == 0) // 窗口是否成功创建
{
return FALSE; // 若失败,则返回FALSE
}

window->hDC = GetDC(window->hWnd); // 取得当前窗口的设备描述表
if (window->hDC == 0) // 若未得到设备描述表
{
DestroyWindow(window->hWnd); // 销毁该窗口
window->hWnd = 0; // 窗口句柄清零
return FALSE; // 返回FALSE
}

PixelFormat = ChoosePixelFormat(window->hDC, &pfd); // 选择兼容的像素格式
if (PixelFormat == 0) // 若选择失败
{
ReleaseDC(window->hWnd, window->hDC); // 释放设备描述表
window->hDC = 0; // 将设备描述表清零
DestroyWindow(window->hWnd); // 销毁窗口
window->hWnd = 0; // 窗口句柄清零
return FALSE; // 返回FALSE

I. 在C语言中11种赋值运算符的具体含义,用法

1.六个变量=表达式的赋值:

=是赋值运算符,/=是除后赋值,*=是乘后赋值,

%=是取模后赋值,+=是加后赋值,-= 是减后赋值,

2.<<=是左移后赋值,变量<<=表达式 左移就是将左边的数的二进制各位全部左移若干位,右边的数指定移动位数,高位丢弃,低位补0, 移几位就相当于乘以2的几次方。

3.>>=是右移后,变量>>=表达式,右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0。

对于有符号数,某些机器将对左边空出的部分用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”);

对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0。

如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统,系统移入0或系统移入1。

移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”。

4.&= 按位与后,变量&=表达式,按位与是指:参加运算的两个数据,按二进制位进行“与”运算。

如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。

5.^= 按位异或后赋值,变量^=表达式,参与运算的两个量按照对应的位进行异或运算,且
0^0→0, 0^1→1, 1^0→1, 1^1→0

一个数与0异或仍保持不变,如a^0=a
一个数与自己异或结果为0,如a^a=0

11.|=是按位或后赋值,变量|=表达式,参与运算的两个量按照对应位进行或运算,且0|0→0, 0|1→1, 1|0→1, 1|1→1。

(9)c语言中的指法扩展阅读:

1.赋值表达式的功能是计算表达式的值再赋予左边的变量。

赋值运算符具有右结合性,因此a=b=c=5可理解为a=(b=(c=5))。

2.在其它高级语言中赋值构成了一个语句,称为赋值语句;

而在C语言中,

把“=”定义为运算符,从而组成赋值表达式。

3.凡是表达式可以出现的地方均可出现赋值表达式。

例如:式子x=(a=5)+(b=8)是合法的。它的意义是把5赋予a,8赋予b,再把a,b相加,和赋予x,故x应等于13。

4.在C语言中也可以组成赋值语句。

按照C语言规定,任何表达式在其未尾加上分号就构成为语句。