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头文件。