C语言基本程序1

合集下载

C语言程序设计第一章(何钦铭版)

C语言程序设计第一章(何钦铭版)

1.2.1 程序与指令

(1) 输入3个数A, B和C,求A+C和B +C的 结果
Input A; 输入第1个数据到存储单元A中 Input B; 输入第2个数据到存储单元B中 Input C; 输入第3个数据到存储单元C中 Add A C D; 将A、C相加并将结果存在D中 Add B C E; 将B、C相加并将结果存在E中 Output D E; 输出D,E的内容

关于程序与指令,下面举1道例题
例1-2 编写程序,分别求和与乘积 先介绍:虚拟的计算机指令系统(共7条指令 )



指令1:Input X 将当前输入数据存储到内存的X单元 指令2:Output X 将内存X单元的数据输出。 指令3:Add X Y Z 将内存X单元的数据与Y单元的数据相加并将 结果存储到Z单元。 指令4:Sub X Y Z 将内存X单元的数据与Y单元的数据相减并将结 果存储到Z单元。 指令5:BranchEq X Y P 比较X与Y,若相等则程序跳转到P处执 行,否则继续执行下一条指令。 指令6:Jump P 程序跳转到P处执行。 指令7:Set X Y 将内存Y单元的值设为X。 对以上7条指令进行不同组合就可以实现多项功能,具体请看下面的 例题:
C语言程序设计
C语言程序设计

教学要求
知识:掌握程序设计语言的基本知识 素质:常用算法
能力:初步的程序设计能力

学习方法
自主学习 重视上机实践 学生要按时上课和上机、课后要看书、认真独立完成
作业

成绩评定方式:平时成绩占40%(包括平时考勤、上机
作业情况、期中考试);期末成绩占60%
以下是不合法的标识符:

C语言程序设计 第一章C语言概述

C语言程序设计 第一章C语言概述
7.允许直接访问物理地址,能进行位(bit)操作
8.目标代码质量好,程序执行效率高
9.可移植性好
1.2 c语言的基本语法成分
1.C语言字符集:字符是C语言的最基本的元素,C语言字符 集由字母、数字、空白、标点和特殊字符组成(在字符串 常量和注释中还可以使用汉字等其它图形符号)。由字符 集中的字符可以构成C语言进一步的语法成分(如,标识 符,关键词,运算符等)
2.标识符 标识符用来标识变量名、符号常量名、函数名、
类型名、文件名等的有效字符序列。
3.关键字 C语言中一些具有特殊意义的标识符称为关键字。
这些关键字在任何时候都不得用作变量名、符号常量 名、函数名、类型名、文件名等。
4.运算符: 运算符将常量、变量、函数连接起来组成表达式,
表示各种运算。
5.分隔符:分号,空格。起分隔、间隔作用。
int x, y; /*对形参x、y作类型定义*/
{ int z;
/*max函用到的变量z,也要加以定义*/
z=y;
if (x>y) z=x;
return (z); /*将z的值返回,通过max带回调用处*/
}
通过分析,初步看出:
1. C程序全部由一个一个的函数构成。至少有一个 主函数main ( ), 其它函数可被主函数调用或相 互调用。其它函数可为C 函数库中函数,也可为自
1.1 c语言的特点 1.2 c语言的基本语法成分 1.3 c语言的程序结构
1.1 C语言的特点
C语言是在B语言的基础上发展起来的一种中级语 言。它具有高级语言和低级语言(汇编语言)双重功能的 特点,被广泛用于系统软件和应用软件的开发,成为目 前生命力最旺盛的高级语言之一。其主要特点有:
1.C语言源程序由多个相互独立的函数组成 2.语言简洁、紧凑,使用方便、灵活

c语言.实验1 基本操作及调试

c语言.实验1 基本操作及调试

实验1、C程序的编程环境和运行方法一、实验目的1、编辑简单的C程序,以此熟悉Dev-C++( 或Visual C++6.0)集成开发环境,并初步认识C程序的组成及书写风格;2、熟悉C语言源程序在Dev-C++( 或Visual C++6.0)中编辑、编译、连接和运行的全过程以及每一步骤的作用;3、了解编译过程中的语法错误信息并了解修改语法错误的方法;4、理解程序调试的概念,初步熟悉C程序的调试方法。

二、实验内容㈠基本操作1、创建工作目录在D盘新建一个实验1的工作文件夹,文件夹以班名+学号后两位+sy1来命名(例如:17数媒1班3号同学的实验1工作文件夹命名为sm103sy1。

注意:文件夹及文件的命名尽量不要用汉字!);2、安装Dev-C++用拷贝的编译软件压缩包(注意:用本次实验文件夹中提供的低版本编译软件Dev-Cpp 5.10 TDM-GCC 4.8.1 Setup.exe),在机房电脑(或自带笔记本)上练习安装Dev-C++并做必要的设置。

3、编译软件的基本操作启动Dev-C++,熟悉其中常用菜单、工具按钮的功能;㈡简单C程序的编辑、编译、连接和运行(以Dev-C++环境为例)1、创建一个简单的C源程序(1)启动Dev-C++后,单击“文件”菜单下的“新建”命令,选择“源代码”即创建了一个C源文件(2)在代码编辑窗口输入以下代码(注释语句不用输入):#include <stdio.h> // 这是编译预处理命令int main( ) //主函数{ // 函数体开始的标志printf ("This is a C program.\n"); // 输出双引号里面的文字信息return 0; // main函数的返回值为0}检查是否有编辑错误,确定无错误后单击“文件”菜单下的“保存”命令,以sy1-1为文件名,选择文件类型为c,将源文件保存到工作文件夹中(见下图)。

C语言程序设计1

C语言程序设计1
会怎么样? 分析:设鸡x只,兔y只 则:x+y=h 解得:x=2h-f/2 2x+4y=f y=f/2-h please input h, f: 8 22 头=8, 脚=22 鸡=5, 兔=3
N-S图描述算法:
程 序 设 计
输入h,f
计算x,y 输出x,y 顺序结构
#include <stdio.h> void main( ) 程序的 { 健壮性 int x, y, h, f; printf(“please input h, f:\n”); scanf(“%d%d”,&h,&f); x=2*h-f/2; y=f/2-h; 程序 printf(“头=%d, 脚=%d\n”,h, f); 4_1.cpp printf(“鸡=%d, 兔=%d\n”,x, y); 5 }
程 序 设 计
C
例子
例:求方程ax2+bx+c=0方程的根。 由此可见:计算机的智能是在人类 (2 算法 )的支配下的智能。 a、b、c由键盘输入,设b -4ac>0 。
分析:一元二次方程的根为:
-b+ b2 -4ac x1 = 2a
将上式分解为:
-b- b2 -4ac x2 = 2a
15
二、 输入输出
说明: (1) 所谓输入输出是以计算机主机为主体。
默认的输入设备——键 盘 默认的输出设备——显示器
程 序 设 计
(2) C语言没有输入/输出语句,I/O操作通过调 用C函数库中的函数来实现。 (3) 在使用系统库函数时,要用编译命令 “#include”将有关的“头文件”包括到用 户 standard input & output head 源文件中。 如:在程序开头要有:#include “stdio.h”

C语言1-7章复习程序

C语言1-7章复习程序

1(实现简单的加法)#include <stdio.h> // 这是编译预处理命令int main( ) // 定义主函数{ // 函数开始int a,b,sum; // 本行是程序的声明部分,定义a、b、sum为整型变量a = 123; // 对变量a赋值b = 456; // 对变量b赋值sum = a + b; // 进行a+b 的运算,并把结果存放在变量sum 中printf("sum is %d\n",sum); // 输出结果return 0; // 使函数返回值为0} // 函数结束2(两个数比大小输出大值)#include <stdio.h>int main( ) // 定义主函数{ // 主函数体开始int max(int x,int y); // 对被调用函数max的声明int a,b,c; // 定义变量a,b,cscanf("%d,%d",&a,&b); // 输入变量a和b的值c = max(a,b); // 调用max函数,将得到的值赋给cprintf("max=%d\n",c); // 输出c的值return 0; // 返回函数值为0}int max(int x,int y) //定义max函数,函数值为整型, 形式参数x和y为整型{int z; // max函数中的声明部分,定义本函数中用到的变量z为整型if (x > y) z = x;else z = y;return(z); //将z的值返回,通过max带回到调用函数的位置}3(算1-1/2+1/3-1/4........+1/99-1/100)#include <stdio.h>int main( ){int sign=1;double deno=2.0,sum=1.0,term; // 定义deno,sum,term为双精度变量while (deno<=100){sign=-sign;term=sign/deno;sum=sum+term;deno=deno+1;}printf("%f\n",sum);return 0;}4#include <stdio.h>int main ( ){char c1,c2;c1='A'; // 将字符'A'的ASCII代码放到c1变量中c2=c1+32; // 得到字符'a'的ASCII代码,放在c2变量中printf("%c\n",c2); // 输出c2的值,是一个字符printf("%d\n",c2); // 输出c2的值,是字符'a'的ASCII代码return 0;}5(方程求根)#include <stdio.h>#include <math.h> // 程序中要调用求平方根函数sqrt int main ( ){double a,b,c,disc,x1,x2,p,q; // disc是判别式sqrt(b*b-4ac)scanf("%lf%lf%lf",&a,&b,&c); // 输入实型变量的值要用格式声明"%f" disc=b*b-4*a*c;if (disc<0) printf("This equation hav't real roots\n");else{ p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q; // 求出方程的两个根printf("x1=%7.2f\nx2=%7.2f\n",x1,x2); // 输出方程的两个根}return 0;}6(输出BOY)#include <stdio.h>int main ( ){char a='B',b='O',c='Y'; // 定义3个字符变量,并初始化putchar(a); // 向显示器输出字符Bputchar(b); // 向显示器输出字符Oputchar(c); // 向显示器输出字符Yputchar ('\n'); // 向显示器输出一个换行符return 0;}7#include <stdio.h>int main ( ){ char a,b,c; // 定义字符变量a,b,ca=getchar(); // 从键盘输入一个字符,送给字符变量ab=getchar(); // 从键盘输入一个字符,送给字符变量bc=getchar(); // 从键盘输入一个字符,送给字符变量cputchar(a); // 将变量a的值输出putchar(b); // 将变量a的值输出putchar(c); // 将变量a的值输出putchar('\n'); // 换行return 0;}8 (同5,不同写法)#include <stdio.h>#include <math.h> // 程序中要调用求平方根函数sqrtint main ( ){double a,b,c,disc,x1,x2,p,q; // disc是判别式sqrt(b*b-4ac)scanf("%lf%lf%lf",&a,&b,&c); // 输入双精度浮点型变量的值要用格式声明"%lf"disc=b*b-4*a*c;if (disc<0) printf("This equation hav't real roots\n");else{ p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q; // 求出方程的两个根printf("real roots:\nx1=%10.6f\nx2=%10.6f\n",x1,x2); // 输出方程的两个根}return 0;}9(实现三个数从小到大排列)#include <stdio.h>int main(){float a,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;} // 实现a和b的互换if(a>c){t=a;a=c;c=t;} // 实现a和c的互换if(b>c){t=b;b=c;c=t;} // 实现b和c的互换printf("%5.2f,%5.2f,%5.2f\n",a,b,c);return 0;}10(swich 语句应用)#include <stdio.h>int main(){char grade;scanf("%c",&grade);printf("Your score:");switch(grade){ default: printf("data error!\n");break;case 'A': printf("85~100\n");break;case 'B': printf("70~84\n");break;case 'C': printf("60~69\n");break;case 'D': printf("<60\n");break;}return 0;}11(break swich复合语句)#include <stdio.h>int main(){void action1(int,int),action2(int,int);char ch;int a=15,b=23;ch=getchar();switch(ch){case 'a':case 'A': action1(a,b);break;case 'b':case 'B': action2(a,b);break;default: putchar('\a');}return 0;}void action1(int x,int y){printf("x+y=%d\n",x+y);}void action2(int x,int y){printf("x*y=%d\n",x*y);}12(判断闰年)#include <stdio.h>int main(){int year,leap;scanf("%d",&year);if (year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if (leap)printf("%d is ",year);elseprintf("%d is not ",year); printf("a leap year.\n");return 0;13(同上)#include <stdio.h>int main(){int year,leap;printf("enter year:");scanf("%d",&year);if((year%4==0 && year%100!=0) || (year%400==0)) leap=1;elseleap=0;if (leap)printf("%d is ",year);elseprintf("%d is not ",year);printf("a leap year.\n");return 0;}14(同上)#include <stdio.h>#include <stdbool.h>int main(){int year;bool leap;scanf("%d",&year);if (year%4==0){if(year%100==0){if(year%400==0)leap=true;elseleap=false;}elseleap=true;}elseleap=false;if (leap==true)printf("%d is ",year);elseprintf("%d is not ",year);printf("a leap year.\n");return 0;}15(求根,并且要先判断是否有根)#include <stdio.h>#include <math.h>int main(){double a,b,c,disc,x1,x2,realpart,imagpart;scanf("%lf,%lf,%lf",&a,&b,&c);printf("The equation ");if(fabs(a)<=1e-6)printf("is not a quadratic\n");else{disc=b*b-4*a*c;if(fabs(disc)<=1e-6)printf("has two equal roots:%8.4f\n",-b/(2*a));elseif(disc>1e-6){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);}else{realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(" has complex roots:\n");printf("%8.4f+%8.4fi\n",realpart,imagpart);printf("%8.4f-%8.4fi\n",realpart,imagpart);}}return 0;}16(折扣问题)#include <stdio.h>int main(){int c,s;float p,w,d,f;printf("please enter price,weight,discount:"); // 提示输入的数据scanf("%f,%f,%d",&p,&w,&s); // 输入单价、重量、距离if(s>=3000) c=12; // 3000km以上为同一折扣else c=s/250; // 3000km以下各段折扣不同,c的值不相同switch(c){case 0: d=0; break; // c=0,代表250km以下,折扣d=0 case 1: d=2; break; // c=1,代表250到500km以下,折扣d=2%case 2:case 3: d=5; break; // c=2和3,代表500到1000km 以下,折扣d=5%case 4:case 5:case 6:case 7: d=8; break; // c=4-7,代表1000到2000km以下,折扣d=8%case 8:case 9:case 10:case 11: d=10; break; // c=8-11,代表2000到3000km以下,折扣d=10%case 12: d=15; break; // c12,代表3000km以上,折扣d=15%}f = p * w * s * (1 - d / 100); // 计算总运费printf("freight=%10.2f\n",f); // 输出总运费,取两位小数return 0;}5——6章1(1,2两题注意直道型和当型的区别)#include <stdio.h>int main(){int i=1,sum=0; // 定义变量i的初值为1,sum的初值为0while (i<=100) // 当i>100,条件表达式i<=100的值为假,不执行循环体{ // 循环体开始sum=sum+i; // 第一次累加后,sum的值为1i++; // 加完后,i的值加1,为下次累加作准备} // 循环体结束printf("sum=%d\n",sum); // 输出1+2+3…+100的累加和return 0;}2#include <stdio.h>int main(){int i=1,sum=0;do{sum=sum+i;i++;}while(i<=100);printf("%d\n",sum);return 0;}3#include <stdio.h>#define SUM 100000int main(){float amount,aver,total;int i;for (i=1,total=0;i<=1000;i++){printf("please enter amount:");scanf("%f",&amount);total= total+amount;if (total>=SUM) break;}aver=total/i;printf("num=%d\naver=%10.2f\n",i,aver);return 0;}4(continue的用法输出100-200所有不被3整除的数)#include <stdio.h>int main(){int n;for (n=100;n<=200;n++){if (n%3==0)continue;printf("%d ",n);}printf("\n");return 0;}5#include <stdio.h>int main(){int i,j,n=0;for (i=1;i<=4;i++)for (j=1;j<=5;j++,n++){ if(n%5==0)printf("\n"); //控制在输出5个数据后换行if (i==3 && j==1) break; //遇到第3行第1列,终止内循环printf("%d\t",i*j);}printf("\n");return 0;}6(用π/4=1-1/3+1/5-1/7+.......+1/n²求π的近似值,直到发现某项的绝对值小于10的六次方)#include <stdio.h>#include<math.h>int main(){int sign=1; // sign用来表示数值的符号double pi=0.0,n=1.0,term=1.0; // pi代表π,n代表分母,term代表当前项的值while(fabs(term)>=1e-8) // 检查当前项term的绝对值是否大于或等于10的(-6)次方{pi=pi+term; // 把当前项term累加到pi中n=n+2; // n+2是下一项的分母sign=-sign; // sign代表符号,下一项的符号与上一项符号相反term=sign/n; // 求出下一项的值term}pi=pi*4; // 多项式的和pi乘以4,才是π的近似值printf("pi=%10.8f\n",pi); // 输出π的近似值}7#include <stdio.h>int main(){int f1=1,f2=1,f3;int i;printf("%12d\n%12d\n",f1,f2);for(i=1; i<=38; i++){f3=f1+f2;printf("%12d\n",f3);f1=f2;f2=f3;}}8(兔子问题)#include <stdio.h>int main(){int f1=1,f2=1;int i;for(i=1; i<=20; i++) // 每个循环中输出2个月的数据,故循环20次即可{printf("%12d %12d ",f1,f2); // 输出己知的两个月的兔子数if(i%2==0) printf("\n");f1=f1+f2; // 计算出下一个月的兔子数,并存放在f1中f2=f2+f1; // 计算出下两个月的兔子数,并存放在f2中}return 0;}9 注:9 10 两题为判断输入的数是否为素数#include <stdio.h>int main(){int n,i;printf("please enter a integer number,n=?");scanf("%d",&n);for (i=2;i<=n-1;i++)if(n%i==0) break;if(i<n) printf("%d is not a prime number.\n",n);else printf("%d is a prime number.\n",n);return 0;}10#include <stdio.h>#include <math.h>int main(){int n,i,k;printf("please enter a integer number:n=?");scanf("%d",&n);k=sqrt(n);for (i=2;i<=k;i++)if(n%i==0) break;if(i<=k) printf("%d is not a prime number.\n",n);else printf("%d is a prime number.\n",n);}11(此为输出100-200的所有素数)# include <stdio.h># include <math.h>int main(){int n,k,i,m=0;for(n=101;n<=200;n=n+2) // n从100变化到200,对每个n进行判定{ k=sqrt(n);for (i=2;i<=k;i++)if (n%i==0) break; // 如果n被i整除,终止内循环,此时i<k+1if (i>=k+1) // 若j>=k+1,表示n未被整除{printf("%d ",n); // 应确定n是素数m=m+1; // m用来控制换行,一行内输出10个录素数}if(m%10==0) printf("\n"); // m累计到10的倍数,换行}printf ("\n");return 0;}12#include <stdio.h>int main(){char c;c=getchar();while(c!='\n'){if((c>='a' && c<='z') || (c>='A' && c<='Z')){ if(c>='W' && c<='Z' || c>='w' && c<='z') c=c-22;else c=c+4;}printf("%c",c);c=getchar();}printf("\n");return 0;}13(将10个元素的数组依次赋值并且输出各元素的值)#include <stdio.h>int main(){int i,a[10];for (i=0; i<=9;i++)a[i]=i;for(i=9;i>=0; i--)printf("%d ",a[i]);printf("\n");return 0;}14(具有20个元素的数组,前两个元素为1 ,1 以后每个元素的大小为前两个元素大小之和,输出该数组)#include <stdio.h>int main(){int i;int f[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0) printf("\n");printf("%12d",f[i]);}printf("\n");return 0;}15.#include <stdio.h>int main(){int a[10];int i,j,t;printf("input 10 numbers :\n");for (i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++) // 进行9次循环,实现9趟比较for(i=0;i<9-j;i++) // 在每一趟中进行9-j次比较if (a[i]>a[i+1]) // 相邻两个数比较{t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("the sorted numbers :\n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\n");return 0;}16(保持数值不变,将2行3列的数组变成3行2列的数组)#include <stdio.h>int main(){int a[2][3]={{1,2,3},{4,5,6}};int b[3][2],i,j;printf("array a:\n");for (i=0;i<=1;i++){for (j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}printf("array b:\n");for (i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}return 0;}17(利用数组输出字符串)#include <stdio.h>int main(){char c[15]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.'};int i;for(i=0;i<15;i++)printf("%c",c[i]);printf("\n");return 0;}18#include<stdio.h>#include<string.h>int main ( ){char str[3][20]; // 定义二维字符数组char string[20]; // 定义一维字符数组,作为交换字符串时的临时字符数组int i;for (i=0;i<3;i++)gets (str[i]); // 读入3个字符串,分别给str[0],str[1],str[2]if (strcmp(str[0],str[1])>0) // 若str[0]大于str[1]strcpy(string,str[0]); // 把str[0]的字符串赋给字符数组stringelse // 若str[0]小于等于str[1]strcpy(string,str[1]); // 把str[1]的字符串赋给字符数组stringif (strcmp(str[2],string)>0) // 若str[2]大于stringstrcpy(string,str[2]); // 把str[2]的字符串赋给字符数组stringprintf("\nthe largest string is:\n%s\n",string); // 输出stringreturn 0;}第7章1 **************(输出How do you do!)**************#include <stdio.h>int main(){void printstar();void print_message();printstar();print_message();printstar();return 0;}void printstar(){printf("******************\n");}void print_message(){printf(" How do you do!\n");}2(输入两个数输出较大值)#include <stdio.h>int main(){ int max(int x,int y);int a,b,c;printf("please enter two integer numbers:");scanf("%d,%d",&a,&b);c=max(a,b);printf("max is %d\n",c);}int max(int x,int y) // 定义max函数{int z; // 定义临时变量z=x>y?x:y; // 把x和y中大者赋给zreturn(z); // 把z作为max函数的伦值带回main函数}3(3与4都为建立个函数可以比较四个数大小并且输出最大值)#include <stdio.h>int main(){ int max4(int a,int b,int c,int d); // 对max4的函数声明int a,b,c,d,max;printf("Please enter 4 interger numbers:"); // 提示输入4个数scanf("%d %d %d %d",&a,&b,&c,&d); // 输入4个数max=max4(a,b,c,d); // 调用max4函数,得到4个数中的最大者printf("max=%d \n",max); // 输出4个数中的最大者return 0;}int max4(int a,int b,int c,int d) // 定义max4函数{int max2(int a,int b); // 对max2的函数声明int m;m=max2(a,b); // 调用max2函数,得到a和b两个数中的大者,放在m中m=max2(m,c); // 调用max2函数,得到a,b,c三个数中的大者,放在m中m=max2(m,d); // 调用max2函数,得到a,b,c,d四个数中的大者,放在m中return(m); // 把m作为函数值带回main函数}int max2(int a,int b) // 定义max2函数{if(a>=b)return a; // 若a>=b,将a为函数返回值elsereturn b; // 若a<b,将b为函数返回值}4#include <stdio.h>void main(){ int max4(int a,int b,int c,int d);int a,b,c,d,max;printf("Please enter 4 interger numbers:");scanf("%d %d %d %d",&a,&b,&c,&d);max=max4(a,b,c,d);printf("max=%d \n",max);}int max4(int a,int b,int c,int d){int max2(int a,int b);int m;m=max2(max2(max2(a,b),c),d); /* 仔细分析此行*/return(m);}int max2(int a,int b){return(a>b?a:b);}5#include <stdio.h>int main(){ int age(int n);printf("NO.5,age:%d\n",age(5)); //输出第5人的年龄return 0;}int age(int n) //定义递归函数{int c;if(n==1) // 如果n等于1c=10; // 年龄为10else // 如果n不等于1c=age(n-1)+2; // 年龄是前一人的年龄加2(如第4人年龄是第3人年龄加2)return(c); // 返回年龄}6(建立个Fac函数使得输入任意数N 输出Y=n*(n-1)*..........*2*1)#include <stdio.h>int main(){ int fac(int n);int n;int y;printf("input an integer number:");scanf("%d",&n);y=fac(n);printf("%lld!=%d\n",n,y);return 0;}int fac(int n){int f;if(n<0)printf("n<0,data error!");else if(n==0||n==1)f=1;else f=fac(n-1)*n;return(f);}7(构造具有10个元素的数组,输出数组的平均值)#include <stdio.h>int main(){ float average(float array[10]); // 函数声明float score[10],aver;int i;printf("input 10 scores:\n");for(i=0;i<10;i++)scanf("%f",&score[i]);printf("\n");aver=average(score); // 调用average函数printf("average score is %5.2f\n",aver);return 0;}float average(float array[10]) // 定义average函数{int i;float aver,sum=array[0];for(i=1;i<10;i++)sum=sum+array[i]; // 累加学生成绩aver=sum/10;return(aver);}8#include <stdio.h>int main(){ int max_value(int array[][4]);int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};printf("Max value is %d\n",max_value(a));return 0;}int max_value(int array[][4]){int i,j,max;max=array[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++)if(array[i][j]>max)max=array[i][j];return (max);}9。

第1章 C语言程序设计基础

第1章 C语言程序设计基础

1.2 C语言的基本构成
(4)C语言程序的书写格式比较自由,没有固定的格式要求。
在一行内,既可以写一个语句,也可以写多个语句。为了提高
程序的可读性,往往根据语句的从属关系,以缩进书写的形式 来体现出语句的层次性。
(5)#include是编译预处理指令。其作用是将由双引号或尖
括号括起来的文件中的内容,读入到该语句的位置处。
1.4 集成开发环境Visual C++简介
全国计算机等级考试是由中国教育部考试中心负责组织实施的计 算机能力等级认证考试。从 2008 年开始,该考试的C语言上机环境 由此前的 Borland TC2.0 改为 Microsoft Visual C++ 6.0。 C语言都将以其优雅的设计、广泛的应用继续存在和被使用;因为 在基础软件领域,C语言几乎是唯一可以选择的语言。 由于大多数 高级语言基本都是以C语言的语法为蓝图的,其底层运行环境多为采 用C语言开发,因此学会了C语言,很容易就可以触类旁通。事实上 相对于目前流行的几种编程语言来说,C语言的语法应该是最简洁的。
了便利。
1.1 C语言的发展历史和特点
(5)语法限制不太严格,程序设计自由度大
C语言允许程序编写者有较大的自由度,因此放宽了语法
检查。程序员在编程时不要过分依赖C编译程序去查错。 (6)生成目标代码质量高,程序执行效率高
(7)可移植性好
C程序基本上不作修改就可以运行于各种型号的计算机和 各种操作系统。 (8)C语言是具有低级语言功能的高级语言
程序设计的能力,逐步理解和掌握程序设计的思想和方法,利 用计算机解决实际问题。 学好程序设计,贵在平时练习,应该做到功夫化在平时,努 力多编程,编好程。
教学导航

1.最简单的C语言程序

1.最简单的C语言程序

1.最简单的C语⾔程序最简单的C语⾔程序例1.在屏幕上输出⼀下⼀⾏字This is a C program在主函数中⽤ printf 函数输出 printf 打印#include <stdio.h> //这是编译预处理指令int main() //定义主函数{ //函数开始的标志printf("This is C program\n"); //输出指定的⼀⾏信息getchar();getchar(); //执⾏完停留等待按下键盘再结束getchar();//执⾏完停留等待按下键盘再结束getchar();//执⾏完停留等待按下键盘再结束return 0; //函数执⾏完毕时返回函数值0} //函数结束标志例2.求两个变量之和#include <stdio.h> //这是编译预处理指令int main() //定义主函数{ //函数开始的标志int a,b,c; //定义a,b,c为整型变量(int)浮点数(float)printf("请输⼊两个数字,并⽤空格隔开\n"); //打印⽂字说明scanf("%d %d",&a,&b); //输⼊变量a b (若是浮点数fioat 这⾥%d为%f) c=a+b;printf("他们之和=%d\n",c); //输出ab之和cgetchar();getchar(); //执⾏完停留等待按下键盘再结束return 0; //函数执⾏完毕时返回函数值0} //函数结束标志#include <stdio.h>int main(){int a,i;while (i<10){a=a+i;i=i+1;}printf("1*2*3*4*5*6*7*8*9的结果是%d",a); getchar();getchar();return 0;}。

C语言-1基础

C语言-1基础

C语言程序设计 ◆C语言程序结构
1. C程序是由函数构成的。一个C源程序至少包含一个主函数
(main或主程序)和若干个其它函数(子函数或子程序) 2. 3. 一个函数由两部分程序组成:说明部分和函数体 一个C程序总是从main函数开始执行,不论main函数放在 程序中的什么位置。程序的流程是通过主函数main调用其 它子函数,或子函数间的相互调用 4. C程序书写格式自由,一行内可以写多条语句,但每一语 句必须用分号(“;”)结束
(2)C语言是贝尔实验室于70年代初研制出来的,后来又被多次
改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI), 根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSI C标 准(1989年再次做了修订)。 本课以ANSI C 标准来介绍。
C语言程序设计
一 、 C 语 言 发 展 过 程
d<0
no x1=(-b+sqrt(d))/2/a x2=(-b-sqrt(d))/2/a 输出实根
x1=(-b+sqrt(-d)i)/2/a x2=(-b-sqrt(-d)i)/2/a 输出虚根
结束
C语言程序设计
开始 流程图二 输入a,b,c yes a=0 no
x=-c/b yes 输出 x
d=b*b-4*a*c
优点:比机器语言较易理解,执行速度快。
缺点:难度大,非专业人士难以掌握。
C语言程序设计
第三代:面向过程的高级语言= =〉或称算法语言。如:
Fortran,Basic,Pascal,C 等等。 优点:灵活,易于理解,容易查错。
缺点:对大型程序而言维护性较差,对“拟定”好的
程序难以扩充,修改(所谓牵一而动百)。 第四代:非过程化的高级语言==〉是一种面向对象的设计

第一轮上机:1-2C语言基本操作

第一轮上机:1-2C语言基本操作

显示字母“A”、“g”和“j”后面的 字母
归 纳 分 析
部分ASCII码值: 0——48 1——49 3——50 …… 9——57 A——65 B——66 C——67 …… Z——90 a——97 b——98 c——99 …… z——122
字符型数据参与运算时, 用其ASCII码值
P12
动 手 练 习
在C语言中要将一批信息告诉 用户或给用户显示如下图案,就 用第一种格式的printf函数。
@@@ @@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@@
P2
1.1.1用printf函数控制输出一串字符
任 务 与 分 析
【实例1-1】编写程序,在屏幕 上显示如下问候语。
<-----C Programming-----> < > < How do you do? > < > < Nice to meet you! > < > <----- Good luck! ----->
第1章C语言基本操作
1.1用printf函数输出数据
P1
1.2正确使用常用基本数据类型的常量和变量
1.3从键盘输入数据
1.1用printf函数输出数据
1.1.1用printf函数控制输出一串字符
P2
1.1.2用printf函数按指定格式输出数据
返回
1.1.1用printf函数控制输出一串字符
问 题 的 提 出
操作步骤
#include <stdio.h> main() { 定义基本整型变量all int all; 定义双精度实型变量total和ave double total,ave; 计算购买总件数后存放在all变量中 all=1*3+2*5+3*7; 赋值运算符 左侧的 计算总销售额后存放在total变量中 total=26.8*3+50.5*5+68.8*7; 表示存 计算平均单价后存放在ave变量中 ave=total/all; 右侧的表示值 储单元 printf("%lf,:%lf\n",total,ave); 显示总销售额和平均单价 }

c语言入门代码1-21

c语言入门代码1-21

c语言入门代码注意:双斜杠后面表示注释,不参与编译/* */包含的单行或多行信息也表示注释,不参与编译1、计算a+b(整数类型)//首先加载一个头文件stdio.h用于输出#include <stdio.h>int main(){ int a=10,b=25,c;//定义三个整数变量c=a+b;//输出到屏幕,%d用来输出整数printf("%d+%d=%d\n",a,b,c);}//运行结果:10+25=35总结:int整数变量,vc中32位2进制%dfloat 单精度浮点,32位2进制%f double 双精度浮点,64位2进制%fchar 字符型变量,8位2进制%cprintf中的\n表示换行2、计算圆面积(双精度浮点类型)#include <stdio.h>int main(){double pi=3.14159;double r=3;double s=pi*r*r;printf("圆面积=%lf\n",s);}//运行结果:圆面积=28.2743103、运算加减乘除#include <stdio.h>int main(){/* 定义两个整型变量,用于存放左右操作数*/int lOperator,rOperator;/* 定义五个整型变量,用于存放结果*/int nResult1,nResult2,nResult3,nResult4,nResult5;lOperator = 4; rOperator = 5;nResult1= lOperator+rOperator;nResult2= lOperator-rOperator;nResult3= lOperator*rOperator;nResult4= lOperator/rOperator;nResult5= lOperator%rOperator;printf(" %d ", nResult1);printf(" %d ", nResult2);printf(" %d ", nResult3);printf(" %d ", nResult4);printf(" %d ", nResult5);}//运行结果:9 -1 20 0 4注意:4除以5等于0,因为4和5都是整数类型,一个运算式中如果都是整数,那么结果也是整数,自动截断小数部分。

大学课程《C语言程序设计基础》PPT课件:第1章

大学课程《C语言程序设计基础》PPT课件:第1章

第1章 C语言程序设计概述
机器语言是计算机能够直接识别的语言,它是一组二进 制编码指令。在计算机应用初期,人们用机器语言编写程序。 但是机器语言是冗长的二进制代码,难理解、难记忆、难编 程,只有少数计算机专业人员才会使用。随着计算机应用技 术的发展,计算机语言一直朝着“人性化”的方向发展,先 后出现了汇编语言和不同种类的高级语言。
第1章 C语言程序设计概述
1.2.1 数据结构与算法 数据结构与算法具有密切的联系。数据结构是加工对象,
算法则是对数据结构加工处理的方法。不同的数据结构可能 需要采取不同的算法,不同的算法可以对不同的数据进行加 工处理。
1.数据结构
何谓数据结构?数据结构在程序中如何表示?
数据结构指的是数据的组织形式,例如,字符数组、方 程组系数矩阵、人员的基本信息表、反映部门组织机构关系 的树形图、反映网络结构及信息的网状图等都是不同的数据 结构。
组织和存储数据的目的是能被计算机处理,即对数据施 加各种运算。因此,可以在逻辑结构上定义运算集合,而在 存储结构上实现这些运算。
第1章 C语言程序设计概述
2.算法
何谓算法?算法如何表示?
所谓算法,是解决某一问题所采取的方法和步骤。程序 设计中的算法把解决问题的每一步骤具体化为计算机的操作, 即算法解决计算机在什么情况下应该“做什么”和“怎样做” 的问题。
第1章 C语言程序设计概述
高级语言的种类很多,不同的语言各有不同的特点与使 用场合,但从原理上看,各种语言都包含一些相同的功能和 结构。对初学者来说,只要选择有代表性的语言,掌握了程 序设计语言的规律和内在功能结构,就很容易学习和应用其 他语言。现在一般都把C语言作为程序设计的入门语言。
第1章 C语言程序设计概述

C语言程序设计教程(第二版第1章

C语言程序设计教程(第二版第1章

下一页 返回
1.3 C程序的上机步骤




在编好一个C源程序后,该怎样上机运行呢?在纸上写好一 个程序后,要经过以下几个步骤: ①上机输入与编辑源程序。 ②对源程序进行编译。 ③与库函数连接。 ④运行目标程序。 以上过程如图1-1所示。其中实线表示操作流程,虚线表示 文件的输入输出。例如,编辑后得到一个源程序文件f.c,然 后在进行编译时再将源程序文件f.c输入,经过编译得到目标 程序文件f.obj,再将目标程序文件f.obj输入内存,与系统 提供的库函数等连接,得到可执行的目标程序文件f.exe, 最后把f.exe调入内存并使其运行。
上一页 下一页 返回
1.2 简单的C程序介绍

④scanf功能是调用系统提供的标准库函数读入变量 integer1和integer2的值。 ⑤printf功能是调用系统提供的标准库函数输出计算结果 sum的值。 例1-2 阅读并分析下面的程序。 main( ) /*主函数*/ { int a,b,c; /*声明部分,定义变量*/ scanf(″%d,%d″,&a,&b);/*输入变量a和b的值*/ c=max(a,b);/*调用max函数,将得到的值赋给c*/ printf(″max=%d″,c); /*输出c的值*/ }
上一页 下一页 返回
1.2 简单的C程序介绍


下面来分析一下本程序的程序结构: ①本程序包括两个函数:主函数main和被调用的函数max。 max函数的作用是将x和y中较大者的值赋给变量z。 return语句将z的值返回给主调函数main。返回值是通过 函数名max带回到main函数的调用处。main函数中的 scanf是“输入函数”的名字(scanf和printf都是C系统 提供的标准输入输出函数)。程序中scanf函数的作用是输 入a和b的值。&a和&b中的“&”的含义是“取地址”,此 scanf函数的作用是将两个数值分别输入到变量a和b的地址 所标志的单元中,也就是输入给变量a和b。这种形式是与其 他语言不同的。它相当于BASIC语言中的INPUT a,b或 PASCAL语言中的Read(a,b)。&a和&b前面的 “%d,%d”的含义与前相同,只是现在用于“输入”。它 指定输入的两个数据按十进制整数形式输入。

第一章 C程序基础01

第一章 C程序基础01

/* 预处理命令 */
/* 定义本函数中用到的变量 */ /* 完成本函数功能的语句 */
其他函数以 后再讲
总结C语言的书写风格
1、一个C程序由一个或多个函数构成。一个C源程序必须包含 一个main( )函数,也可以包含其它函数(用户自定义)。函数 是C语言的基本单位。 2、一个C程序总是从main函数开始执行,而不论main函数在 整个程序中的位置如何;一般说来,又随着main函数的结束而 整个程序结束。
C语言编程入门的方法:模仿
社会学习理论认为,学习的产生是通过 模仿过程而获得的。 大量的心理学研究结果也表明,人类的 大多数行为都是通过观察学会的。 研究现成的例题,读得懂C源
码是学习C语言的第一步。
读得懂才可能自己编
编译预处理命令 #include <stdio.h> void main( ) { printf ("This is a Cprogram!\n"); }
编译时的提示信息将显示在输出窗口,双击错误信息则转 到相应出错处,修改完毕再重新编译,直到无任何错误后编译 成功,显示“0 error(s), 0 warning(s)”。 注意:编译成功只能说明程序无语法错误,不一定代表算 法正确或运行结果正确。
4、生成目标程序
用组建 菜单下的组建命令(F7)
5、运行源程序
1.5.2 C程序上机步骤
一、编辑:使用编辑工具(vc++6.0)将源程序输入计算机内 ,经过修改后保存。----扩展名为.C或.CPP(c++源程序) 二、编译:先进行语法检查,并将无语法错误的源程序翻译成 二进制形式的目标代码----扩展名为.OBJ(目标程序) 三、链接:将各模块的二进制目标代码与系统标准模块连接, 得到一个可执行文件----扩展名为.EXE(可执行程序) 四、执行:执行经过编译和连接的可执行目标文件。 五、得到最终结果。

1C语言程序基本框架_2

1C语言程序基本框架_2
上一页 下一页 返 回
1.1 初识C语言程序
• 1.1.2 C程序的组成
• 以上实例及实例分析已经反应出了C程序的基本框架及其组成要素。 • 1 . C程序是由函数构成的 • C程序通常由包括main( )在内的一个或多个函数组成,函数是构成C
程序的基本单位。其中,主函数必须有且只能有一个,被调用的其他 函数可以是系统提供的库函数,也可以是用户自定义的函数。C程序 的全部工作都是由函数来完成的,因此C语言被称为函数式语言。 • 2. 函数的构成 • C的函数由函数首部和函数体两大部分组成。以主函数为例: • main( ) ← 函数首部,指定函数名、函数参数等信息 • { ← 函数体从这里开始 • … … ← 函数体内的语句 • } ← 函数体到这里结束
c = max(a,b);
/ * 调用max()函数*/

printf("%d ,%d中的大数为:%d\n\n\n",a,b,c); / * 标准输从键盘提供两个整数12和21,得到的输出结果为:
• 程序执行时,如果从键盘提供的两个整数是31和13,那么得到的输出 结果则为:
1.2 C语言程序的实现
• 1.2.1 C程序实现过程
• 按照C语言语法规则编写的C程序称为源程序。设计好C的源程序后, 要将它输入到计算机并得到最终结果,必须经过编辑、编译、链接和 运行这几个主要环节,其实现过程如图1-1所示。
• 1. 编辑源程序 • 设计好的源程序要利用程序编辑器输入到计算机中,输入的程序一般
• 【程序代码】
• #include "stdio.h"
• main( )
•{

printf(" \nThis i s myf i r s t C program!\n");

《C语言程序设计》 第1章 概论

《C语言程序设计》 第1章 概论

Chapter 1
Introduction
1.2.2 C 程序的基本结构
实例:输入两个数及其算术运算关系,输出运算结果。 int fun(int x,char op,int y) /* This is my first C program { filename:first.c int z; */ switch(op) #include <stdio.h> { void main(void) case ‗+‘: z=x+y; break; { case ‗-‗ : z=x-y; break; char ch; case ‗*‘: z=x*y; break; int iA, iB, c; case ‗/‘ : z=x/y; scanf(―%d%c%d‖, 子 } &iA,&ch,&iB); 函 return z; /*返回运算结果*/ c=fun(iA,ch,iB); 数 } 主printf(―%d%c%d=%d‖,iA, 函 ch,iB,c); chp1ex1 数 }
Chapter 1
Introduction
C 语言程序设计
C Language Programming
但愿她是你知识大厦的又一块基石。 但愿她是开启你智慧的又一把钥匙!
Chapter 1
Introduction
学习目的
通过学习掌握C语言的语法结构,理解程序设计的一般 方法和基本技术。 学习算法的概念以及结构化程序设计的一般方法,提 高分析能力和综合能力。 能够用C语言编程解决一定的实际问题,提高计算能力。
0111000011 0101000010
Chapter 1
Introduction
学习的层次

C语言基本程序1

C语言基本程序1

C语言基本程序11.运输公司对用户计算运费路程(S)越远,每公里运费越低。

标准如下:s<250km没有折扣250≤S<5002%折扣500≤S<10005%折扣1000≤S<20008%折扣2000≤S<300010%折扣3000≤S15%折扣s#include<stdio.h> int main(){float s,c,f;//s路程,c折扣,f运费scanf("%f",&s);if(s<0)printf("error!");else if(s<250)c=0;else if(s<500)c=0.02;else if(s<1000)c=0.05;else if(s<2000)c=0.08;else if(s<3000)c=0.1;elsec=0.15;printf("%f\n",c);f=s*1.00*(1-c);//运费为1元/公里printf("%f\n",f);getchar();}输入3个数,如果第一个数不是0,打印后2个数中的数值大的数,如果如果第一个数是0,打印后2个数中的数值小的数,求最大值和求最小值分别用独立的函数实现#include<stdio.h>int main(){int a,b,c,t;int p,q;//p is max,q is minscanf("%d,%d,%d",&a,&b,&c);if(a!=0){t=(b>c)?b:c;}else{t=(b>c)?c:b;}printf("%d\n",t);p=max(a,max(b,c));q=min(a,min(b,c));printf("%d,%d\n",p,q);return0;}int max(a,b){int x;x=a>b?a:b;return(x);}int min(a,b){int y;y=a>b?b:a;return(y);}从键盘输入三个整数,将这三个数按从大到小的顺序排列起来,用两种方法实现,并分析2种方法的优劣#include<stdio.h>int main(){int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c); if(b>a){t=a;a=b;b=t;}else if(c>b){if(a>c){t=b;b=c;c=t;}else{t=c;c=b;b=a;a=t;}}printf("%d,%d,%d\n",a,b,c); getchar();return0;}#include<stdio.h>int main(){int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c); if(a>b){t=b;b=a;a=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%d,%d,%d\n",c,b,a);return0;}了解if分支结构,输入一个‘a’--‘z’的字符,打印出这个字符的前后2个字符,‘a’的前一个字符是‘z’,‘z’的后一个字符是'a'。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言基本程序1
1. 运输公司对用户计算运费
路程(S)越远,每公里运费越低。

标准如下:s<250km没有折扣
250≤S<500 2%折扣
500≤S<1000 5%折扣
1000≤S<2000 8%折扣
2000≤S<3000 10%折扣
3000≤S 15%折扣s#include <stdio.h> int main ()
{float s,c,f; //s路程,c折扣,f运费scanf ("%f",&s);
if (s<0)
printf("error!");
else if(s<250)
c=0;
else if(s<500)
c=0.02;
else if(s<1000)
c=0.05;
else if(s<2000)
c=0.08;
else if(s<3000)
c=0.1;
else
c=0.15;
printf("%f\n",c);
f=s*1.00*(1-c); //运费为1元/公里
printf("%f\n",f);
getchar();
}
输入3个数,如果第一个数不是0,打印后2个数中的数值大的数,如果如果第一个数是0,打印后2个数中的数值小的数,求最大值和求最小值分别用独立的函数实现
#include <stdio.h>
int main ()
{
int a,b,c,t;
int p,q; //p is max,q is min
scanf("%d,%d,%d",&a,&b,&c);
if (a!=0) {
t=(b>c)?b:c;
}
else
{t=(b>c)?c:b;}
printf("%d\n",t);
p=max(a,max(b,c));
q=min(a,min(b,c));
printf("%d,%d\n",p,q);
return0;
}
int max(a,b)
{ int x;
x=a>b?a:b;
return (x);}
int min(a,b)
{ int y;
y=a>b?b:a;
return (y);}
从键盘输入三个整数,将这三个数按从大到小的顺序排列起来,用两种方法实现,并分析2种方法的优劣
#include <stdio.h>
int main ()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(b>a)
{ t=a;
a=b;
b=t;}
else if (c>b)
{if(a>c)
{ t=b;
b=c;
c=t;}
else
{t=c;
c=b;
b=a;
a=t;}
}
printf("%d,%d,%d\n",a,b,c);
getchar();
return0;
}
#include <stdio.h>
int main ()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if (a>b) {t=b;
b=a;
a=t;}
if (a>c) {
t=a;
a=c;
c=t;}
if(b>c)
{t=b;
b=c;
c=t;}
printf("%d,%d,%d\n",c,b,a);
return0;
}
了解if分支结构,输入一个‘a’--‘z’的字符,打印出这个字符的前后2个字符,‘a’
的前一个字符是‘z’,‘z’的后一个字符是'a'。

#include <stdio.h>
int main ()
{
char a1,m,n;
scanf("%c",&a1); //a为输入,m为前字母,
n为后字母
if (a1<97||a1>122)
printf("enter data error!\n");
else if (a1=='a')
{ m='z';
n=a1+1;}
else if(a1=='z')
{m=a1-1;
n='a';}
else {m=a1-1;
n=a1+1;}
printf("%c,%c\n",m,n);
return0;
}。

相关文档
最新文档