『壹』 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;
}
比較簡陋,不能實現絕對隨機......
可以根據個人需要自己改......
『貳』 指法練習程序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;
}
『叄』 求大神用C語言設計一個程序幫助小學生練習數學。(具體要求見問題補充)
你自己修改修改:
#include <stdio.h>
#include <ctype.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#define IDNO_LENGTH 6
#define CALC_KIND 4
#define CALC_NUM 10
bool checkNo(char idNo[]);
char getSignal();
int getResult(int,int,char);
void takeTest();
//main函數
void main()
{
printf("Please input your four digit ID no(begin with two letters):");
char idNo[IDNO_LENGTH];
do
{
scanf("%s",&idNo);
fflush(stdin);
} while(checkNo(idNo)==false);
printf("1.Start a test\t2.Exitb\n");
int choose;
do
{
printf("選擇:");
scanf("%d",&choose);
fflush(stdin);
} while(choose!=1 && choose!=2);
if(choose==1)
takeTest();
else
exit(0);
}
//獲取隨機運算符
char getSignal()
{
char signal[CALC_KIND]={'+','-','*','/'};
srand((unsigned)time(NULL));
return signal[rand()%4];
}
//獲取隨機數
int random(double start, double end)
{
return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
}
//運算
int getResult(int num1,int num2,char signal)
{
int res;
switch(signal)
{
case '+':
res=num1+num2;break;
case '-':
res=num1-num2;break;
case '*':
res=num1*num2;break;
case '/':
res=num1/num2;break;
default:
res=0;
printf("運算符不符合規則\n");
}
return res;
}
//列出10道題
void takeTest()
{
clock_t startTime;
startTime=clock();
int index;
int giveRes;
int num1;
int num2;
char signal;
for(index=0;index<CALC_NUM;index++)
{
srand((unsigned)time(NULL));
signal=getSignal();
num1=random(0,100);
num2=random(1,100);
printf("%d%c%d=",num1,signal,num2);
scanf("%d",&giveRes);
fflush(stdin);
if(getResult(num1,num2,signal)==giveRes)
{
printf("correct\n");
}
else
{
printf("wrong\n");
}
}
printf("解10道題用了%lf秒\n",(double)(clock()- startTime)/CLOCKS_PER_SEC);
}
//檢測idNo是否合規則,合規則返回true
bool checkNo(char idNo[])
{
int index;
bool flag;
flag=true;
for(index=0;index<IDNO_LENGTH;index++)
{
if(index<2)
{
if(!isalpha(idNo[index]))
{
flag=false;
printf("ID no 不符合規則,重新輸入:");
break;
}
}
else
{
if(!isdigit(idNo[index]))
{
flag=false;
printf("ID no 不符合規則,重新輸入:");
break;
}
}
}
return flag;
}
『肆』 求助 C語言 模擬指法練習程序
//VC++6.0下調試通過.
#include <time.h>
#include <iostream>
using namespace std;
struct SCORC
{
signed int len;
signed int wrong;
signed int right;
double time;
};
SCORC scorc={0,0,0,0.0};
static char* txt=NULL;
static char* input=NULL;
void totle(void)
{
scorc.right=0;
scorc.wrong=0;
for (int i=0; i<scorc.len; i++)
{
if ('\0'==txt[i])
break;
if (txt[i]==input[i])
scorc.right++;
else
scorc.wrong++;
}
scorc.len=i;
}
void main()
{
cout<<"----------------------------------------------------------------------------"<<endl;
cout<<"- 歡迎使用打字測試系統 -"<<endl;
cout<<"- 作者:沙支誇依 -"<<endl;
cout<<"- 日期:2007-12-19 -"<<endl;
cout<<"----------------------------------------------------------------------------"<<endl;
char exit='\0';
cout<<"是否重新開始?(任意鍵開始!Ctrl+Z退出!)"<<endl;
while ((exit=cin.get())!=EOF)
{
cout<<"請輸入目標文本估計長度: ";
cin>>scorc.len;
txt=new char[scorc.len];
memset(txt, 0, scorc.len);
input= new char[scorc.len];
cout<<"輸入什麼字元時結束文本輸入(建議使用 # ): ";
char ch;
cin>>ch;
cout<<"---開始錄入目標文本---"<<endl;
cin.get();
cin.getline(txt,scorc.len,ch);
cout<<"---目標文件錄入完畢。"<<endl;
cout<<"---按回車鍵開始進入測試!輸入 "<<ch<<" 號時結束"<<endl;
cin.get();
while (10!=cin.get());
cout<<"-------------------------------------------------------------------------"<<endl;
cout<<"---開始計時!"<<endl;
clock_t start= clock();
cin.getline(input,scorc.len,ch);
clock_t finish= clock();
scorc.time=double((finish-start))/CLOCKS_PER_SEC;
totle();
cout<<"---測試完成!統計---"<<endl;
cout<<"---文章長度: "<<scorc.len<<endl;
cout<<"---正確率: "<<scorc.right*100/scorc.len<<" %"<<endl;
cout<<"---打字速度: "<<scorc.len/scorc.time<<" 字/秒"<<endl;
cout<<"是否重新開始?任意鍵開始!Ctrl+Z退出!"<<endl;
cin.get();
}
}
『伍』 如何用C語言編寫一個簡單的程序!
上了大學有很多同學都在學習C語言,C++就是C語言的一種,那麼怎麼用c語言寫一個簡單的程序hello world呢,下邊來給大家演示一下
工具/材料
電腦,c語言軟體
- 01
滑鼠左鍵雙擊c語言軟體,打開,打開後界面如圖,點擊關閉即可
- 02
點擊上方程序窗口左上角的文件,選擇新建
- 03
在打開的窗口中選擇文件,下邊一般是第四個 c++Source file,輸入文件名(hellw.c),一定要以「.c」為後綴結尾
- 04
進入編輯頁面在,頁面編輯源代碼就可以
#include<stdio.h>
void main()
{
printf("hello world!" );
}
然後選擇保存,列印,輸出運行。 - 05
輸出的效果就是這樣了,一個簡單的c語言程序就寫好了
特別提示
所有的輸入都要在英文半形的情況下輸入,不然程序會不能識別,會報錯。
『陸』 C語言怎樣敲代碼敲的快啊,我看視頻上都敲的那麼快
你必須要對鍵盤很熟悉,敲得快的,首先你要回盲打,其次,你要對代碼很熟。自己本身對代碼不熟,一邊敲一邊還要看書上代碼是什麼評的,能快才怪呢。這些都是慢慢練過來的,我當初就是上C語言課的時候,開始盲打,不然上課跟不上老師的節奏。自己課後多練練吧!
『柒』 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
可以郵箱整套文件發給你
『捌』 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
『玖』 c語言用什麼軟體練習好
使用「turbo c for windows」,這是專門為c的學習開發的。
Turbo C/C++ for Windows 集成實驗與學習環境是從事一線教學的大學教師根據 C 語言初學者的特點,量身定製的一個簡單易用的 C 語言實驗與學習軟體。軟體集成了高校 C 語言教學中使用最多的三種編譯器 Visual C++ 6.0 、Turbo C++3.0和Turbo C 2.0 ,給高校 C 語言的實驗教學提供了簡單易用的軟體實驗環境(免費使用)。與軟體配套的《 C 語言入門教程》融入了作者多年的教學和學習經驗、編程建議、編程感悟等,同時,為了便於C語言學習,加入C語言學習指導、入門程序實例、典型源程序、典型的函數演算法,課程設計指導、課程設計源程序、 Visual C++6.0 常見編譯錯誤信息、Turbo C++3.0常見編譯錯誤信息、 Turbo C2.0 常見編譯錯誤信息、C語言專業詞彙的中英文對照、二級 C 語言的真題筆試試卷及答案與分析和上機模擬試題和詳盡的答案與分析等大量的學習資源。另外 「編程日記」 功能可以讓你記錄你的 C 語言學習歷程, 「資料管理」 功能讓你大量的下載資料不再難找 。
可以在華軍軟體園里下載,地址:http://www.onlinedown.net/soft/30053.htm