A. c語言編程。
#include <stdio.h>
#include <string.h>
#include <img alt="搜索" src="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/qb/select-search.png" id="selectsearch-icon"><ctype.h>
int main()
{
FILE *fp = NULL;
char read_buf = 0;
int char_count = 0;
int word_count = 0;
int tab_count = 0;
int blank_count = 0;
int paragraph_count = 0;
int word_start = 0;
fp = fopen("English_file.txt", "r");
if (fp == NULL)
{
printf("Can't open the file.\n");
return -1;
}
printf("The following is the file content:\n");
while (!feof(fp))
{
read_buf = fgetc(fp);
printf("%c", read_buf);
if (isalpha(read_buf))
{
char_count++;//字母
if (word_start == 0)
{
word_start = 1;
}
}
else//非字母
{
if (word_start == 1)
{
word_count++;//單詞
word_start = 0;
}
switch (read_buf)
{
case '\t'://tab
tab_count++;
break;
case '\040'://空格
blank_count++;
break;
case '.':
case '!':
case '?':
case ':':
read_buf = fgetc(fp); //再取一個字元
printf("%c", read_buf);
//如果是回車或者換行就表示一個段落結束了
if ( read_buf == '\r' || read_buf == '\n' )
{
paragraph_count++ ; //段落
}
break;
default:
break;
}
}
}
printf("\n");
printf("tab_count: %d\n", tab_count);
printf("blank_count: %d\n", blank_count);
printf("char_count: %d\n", char_count);
printf("word_count: %d\n", word_count);
printf("paragraph_count: %d\n", paragraph_count);
return 0;
}
B. C語言的起源和發展
C++源於C語言,而C語言是在B語言的基礎上發展起來的。
n 1960年出現了一種面向問題的高級語言ALGOL 60 。
n 1963年英國劍橋大學推出了CPL(Combined Programming Language)語言,後來經簡化為BCPL語言。
n
1970年美國貝爾(Bell)實驗室的K.Thompson以BCPL語言為基礎,設計了一種類似於BCPL的語言,取其第一字母B,稱為B語言。
n 1972年美國貝爾實驗室的Dennis
M.Ritchie為克服B語言的諸多不足,在B語言的基礎上重新設計了一種語言,取其第二字母C,故稱為C語言。
n 1980年貝爾實驗室的Bjarne
Stroustrup對C語言進行了擴充,推出了「帶類的C」,多次修改後起名為C++。以後又經過不斷的改進,發展成為今天的C++。
C++改進了C的不足之處,支持面向對象的程序設計,在改進的同時保持了C的簡潔性和高效性。
C. c語言二進制數的加減運算
1、二進制加法基本指令
(1)ADD指令
格式:ADD DST,SRC
該指令把源操作數(SRC)指向的數據與目的操作數(DST)相加後,將結果放到目的操作數(DST)中,所執行的操作:(DST)ß(SRC)+(DST)
SRC和DST不能同時為存儲器操作數和段寄存器,同時SRC和DST的數據類型要匹配,要同是位元組或字。受影響的標志位有:OF,SF,ZF,AF,PF,CF。
(2)ADC指令
格式:ADC DST,SRC
所執行的操作:(DST)ß(SRC)+(DST)+CF 了解清楚進位是怎樣加的
該指令把兩個操作數(SRC和DST)相加以後,再加上進位標志CF,將結果放到目的操作數(DST)中。受影響的標志位有:OF,SF,ZF,AF,PF,CF。ADC指令多用於多精度數據相加。
2、二進制減法基本指令
(1)SUB指令
格式:SUB DST,SRC
所執行的操作:(DST)ß (DST)-(SRC)
該指令把源操作數(SRC)指向的數據與目的操作數(DST)相減後,將結果放到目的操作數(DST)中,SRC和DST不能同時為存儲器操作數和段寄存器(,同時SRC和DST的數據類型要匹配,要同是位元組或字。受影響的標志位有:OF,SF,ZF,AF,PF,CF。
(2)SBB指令
格式:SBB DST,SRC
(DST)ß (DST)-(SRC)-CF 了解清楚進位是怎樣減的
該指令把兩個操作數(SRC和DST)相減以後,再減去CF,將結果放到目的操作數(DST)中。受影響的標志位有:OF,SF,ZF,AF,PF,CF。SBB指令多用於多精度數據相加。
D. C語言sizeof()和strlen(cf)怎麼獲取的大小顯示出來,我顯示出來是亂碼
首先你這個代碼有上下文的,一下子沒法理解。
我首先告訴你一些知識,你理解一下就知道怎麼做了。
sizeof是一個關鍵字,不是函數,是求括弧裡面的內容所佔內存的大小,單位是位元組。
strlen是函數,求一個以\0結尾的字元(char)數組的長度。
其它奇葩用法都不對。
E. 關於用C語言編程,高分求教最簡單程序。
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(struct scorenode)
#define DEBUG
#include <string.h>
struct scorenode
{int number;/*學號*/
char name[10];/*姓名*/
float yuwen;/*語文成績*/
float yingyu;/*英語成績*/
float shuxue;/*數學成績 */
struct scorenode *next;
};
typedef struct scorenode score;
int n,k;/*n,k為全局變數,本程序中的函數均可以使用它*/
/*==============================================================================================*/
score *creat2311(void)
/*函數creat2311,功能:創建鏈表,此函數帶回一個指向鏈表頭的指針*/
{
score*head;
score *p1,*p2,*p3,*max;
int i,j;
float fen;
char t[10];
n=0;
p1=p2=p3=(score *)malloc(LEN);head=p3; /*開辟一個新單元*/
printf("請輸入學生資料,輸0退出!\n");
repeat1: printf("請輸入學生學號(學號應大於0):");/*輸入學號,學號應大於0*/
scanf("%d",&p1->number);
while(p1->number<0)
{getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&p1->number);}
/*輸入學號為字元或小於0時,程序報錯,提示重新輸入學號*/
if(p1->number==0)
goto end;/*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(p1->number!=p3->number)
p3=p3->next;
else
{printf("學號重復,請重輸!\n");
goto repeat1;
/*當輸入的學號已經存在,程序報錯,返回前面重新輸入*/
}
}
}
}
printf("請輸入學生姓名:");
scanf("%s",&p1->name);/*輸入學生姓名*/
printf("請輸入語文成績(0~100):");/*輸入語文成績,成績應在0-100*/
scanf("%f",&p1->yuwen);
while(p1->yuwen<0||p1->yuwen>100)
{getchar();
printf("輸入錯誤,請重新輸入語文成績");/*輸入錯誤,重新輸入語文成績直到正確為止*/
scanf("%f",&p1->yuwen);}
printf("請輸入英語成績(0~100):");/*輸入英語成績,成績應在0-100*/
scanf("%f",&p1->yingyu);
while(p1->yingyu<0||p1->yingyu>100)
{getchar();
printf("輸入錯誤,請重新輸入英語成績");/*輸入錯誤,重新輸入英語成績直到正確為止*/
scanf("%f",&p1->yingyu);}
printf("請輸入數學成績(0~100):");/*輸入數學成績,成績應在0-100*/
scanf("%f",&p1->shuxue);
while(p1->shuxue<0||p1->shuxue>100)
{getchar();
printf("輸入錯誤,請重新輸入數學成績");
scanf("%f",&p1->shuxue);}/*輸入錯誤,重新輸入數學成績直到正確為止*/
head=NULL;
while(p1->number!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(score *)malloc(LEN);
printf("請輸入學生資料,輸0退出!\n");
repeat2:printf("請輸入學生學號(學號應大於0):");
scanf("%d",&p1->number);/*輸入學號,學號應大於0*/
while(p1->number<0)
{getchar();
printf("輸入錯誤,請重新輸入學生學號:");
scanf("%d",&p1->number);}
/*輸入學號為字元或小於0時,程序報錯,提示重新輸入學號*/
if(p1->number==0)
goto end;/*當輸入的學號為0時,轉到末尾,結束創建鏈表*/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(p1->number!=p3->number)
p3=p3->next;
else
{printf("學號重復,請重輸!\n");
goto repeat2;
/*當輸入的學號已經存在,程序報錯,返回前面重新輸入*/
}
}
}
}
printf("請輸入學生姓名:");
scanf("%s",&p1->name);/*輸入學生姓名*/
printf("請輸入語文成績(0~100):");
scanf("%f",&p1->yuwen);/*輸入語文成績,成績應在0-100*/
while(p1->yuwen<0||p1->yuwen>100)
{getchar();
printf("輸入錯誤,請重新輸入語文成績");
scanf("%f",&p1->yuwen);}/*輸入錯誤,重新輸入語文成績直到正確為止*/
printf("請輸入英語成績(0~100):");
scanf("%f",&p1->yingyu);/*輸入英語成績,成績應在0-100*/
while(p1->yingyu<0||p1->yingyu>100)
{getchar();
printf("輸入錯誤,請重新輸入英語成績");
scanf("%f",&p1->yingyu);}/*輸入錯誤,重新輸入英語成績直到正確為止*/
printf("請輸入數學成績(0~100):");
scanf("%f",&p1->shuxue);/*輸入數學成績,成績應在0-100*/
while(p1->shuxue<0||p1->shuxue>100)
{getchar();
printf("輸入錯誤,請重新輸入數學成績");
scanf("%f",&p1->shuxue);}/*輸入錯誤,重新輸入數學成績直到正確為止*/
}
本文來自: 乘風原創程序(http://www.qqcf.com) 詳細出處參考:http://study.qqcf.com/web/174/20462.htm
F. C語言 新手問題~~ 大一學C語言老師幫不了我
改了很多,對照看看吧。
充分說明寫的東西有多不可靠(錯多),自己有個編譯環境是多重要。
#include "Stdio.h"
struct xuesheng
{
char mingzi[20];
int xuehao;
int score1;
int score2;
int score3;
int total;
float average;
};
struct xuesheng input()
{
struct xuesheng stu;
scanf("%s",stu.mingzi);
scanf("%d",&stu.xuehao);
scanf("%d",&stu.score1);
scanf("%d",&stu.score2);
scanf("%d",&stu.score3);
stu.total=0;
stu.average=0;
return(stu);
}
struct xuesheng average(struct xuesheng a)
{
struct xuesheng b;
b=a;
b.total=b.score1+b.score2+b.score3;
b.average=b.total/3.0;
return(b);
}
struct xuesheng maximum(struct xuesheng* q, int y)
{
int a,b,c;
struct xuesheng d;
d=q[0];
for(a=0;a<y;a++)
if(q[a].total>d.total)
d=q[a];
return(d);
}
void main()
{
int a,b;
float f=0;
struct xuesheng xues[10];
for(a=0;a<10;a++)
{
b=1+a;
printf("shu ru %d wei xue sheng de xin xi\n",b);
xues[a]=input();
}
for(a=0;a<10;a++)
{xues[a]=average(xues[a]);}
for(a=0;a<10;a++)
{
f=f+xues[a].score1+ xues[a].score2+ xues[a].score3;
}
f=f/3.0/10;
struct xuesheng xueshengmax;
xueshengmax=maximum(xues,10);
printf("no. name score1 score2 score3 total\n");
for(a=0;a<10;a++)
printf("%4d %s %4d %4d %4d %4d %4f\n",xues[a].xuehao,xues[a].mingzi,xues[a].score1,xues[a].score2,xues[a].score3,xues[a].total,xues[a].average);
printf("average=%f\n",f);
printf("the highest score:%s,score total:%4d",xueshengmax.mingzi,xueshengmax.total);
getchar();
}
G. 什麼是C語言
C語言是目前世界上流行、使用最廣泛的高級程序設計語言。
C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫它是數值計算的高級語言。
常用的編譯軟體有MicrosoftVisualC ,BorlandC ,WatcomC ,BorlandC ,BorlandC Builder,BorlandC 3.1forDOS,WatcomC 11.0forDOS,GNUDJGPPC ,Lccwin32CCompiler3.1,MicrosoftC,HighC,等等......
C語言的發展歷史
C語言的發展頗為有趣。它的原型ALGOL60語言。
1963年,劍橋大學將ALGOL60語言發展成為CPL(CombinedProgrammingLanguage)語言。
1967年,劍橋大學的MatinRichards對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的KenThompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。
而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BGPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年DennisM.Ritchie發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
1978年BrianW.Kernighian和DennisM.Ritchie出版了名著《TheCProgrammingLanguage》,從而使C語言成為目前世界上流行最廣泛的高級程序設計語言。
1988年,隨著微型計算機的日益普及,出現了許多C語言版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准,成為現行的C語言標准3.C語言的主要特點。C語言發展迅速,而且成為最受歡迎的語言之一,主要因為它具有強大的功能。許多著名的系統軟體,如DBASEⅢPLUS、DBASEⅣ都是由C語言編寫的。用C語言加上一些匯編語言子程序,就更能顯示C語言的優勢了,象PC-DOS、WORDSTAR等就是用這種方法編寫的。
C語言的特點
1.簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C語言可以象匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2.運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3.數據結構豐富
C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4.C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
5.C語法限制不太嚴格、程序設計自由度大
一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6.C語言允許直接訪問物理地址,可以直接對硬體進行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟體。
7.C語言程序生成代碼質量高,程序執行效率高
一般只比匯編程序生成的目標代碼效率低10へ20。
8.C語言適用范圍大,可移植性好
C語言有一個突出的優點就是適合於多種操作系統,如DOS、UNIX,也適用於多種機型。
H. c語言問題!途中cf,fs表示什麼c表示輸出字元,但後面加一個f又表示什麼_後面那個也是同問
你分開看就豁然開朗了 c=%c f=%f s=%s %c%f%s分別是字元、浮點型、字元串的輸出格式。
I. 編寫一個C語言程序,調用FUN函數實現華氏---攝氏溫度轉換。並在主函數中輸入12個華氏溫度轉換後再輸出!
#include <stdio.h>
void fun(float *h)
{
for(int i=0;i<12;i++)
h[i]=(h[i]-32)/1.8;
}
void main()
{
float h[12];
printf("請輸入華氏溫度:");
for(int i=0;i<12;i++)
scanf("%f",&h[i]);
fun(h);
printf("華氏溫度轉為攝氏溫度為:\n");
for(i=0;i<12;i++)
printf("%f\t",h[i]);
}
J. CFC語言合成器怎麼編程
使用聲音函數編程,C語言的聲音函數是sound加DOS.h頭文件。