C语言程序设计7

合集下载

C语言程序设计实训教程第7章 指 针

C语言程序设计实训教程第7章 指 针

12
2)指针与一维数组 【例 7.6】 下列程序的运行结果是( )。[读 程序写结果,重庆市 2001年第 2次等级考试]
13
14
3)指向字符的指针
15
16
17
18
4)指针与二维数组
19
5)指向一维数组的指针(行指针) 【例 7.18】 对 int(﹡p)[5];的正确描述 是( )。[多选题,重庆市 2003年第 1次等级考 试] A. p是数组名 B. p是指针变量名 C. p数组中有 5个元素 D .p指向一个包含 5个元素的整型数组 E. p是一个整型数组 答案:B D
22
7)指针数组 当数组的元素类型为指针时,叫做指针数组。 【例 7.21】 下列程序的运行结果是( )。 [读程序写结果,重庆市 2004年第 2 次等级考试]
23
8)指针做函数参数 指针做函数参数的主要目的是利用在函数中, 利用指针去操作主调函数中的变量。 【例 7.22】 下列程序在数组中同时查找最大 值下标和最小值下标,并分别存放在 main函数的 变量 max和 min中,请填空。[读程序写结果,重 庆市 2003年第 2次等级考试]
10
【例 7.3】 由于指针的数据类型实际上是指定 指针所能指向对象的数据类型,所以不同数据类型 的指针变量不能相互赋值。( )[判断题,重庆市 2005年第 2次等级考试] 答案:对 分析:在某些特定情况下,可以在不同数据类 型指针之间通过强制类型转换赋值。
11
【例 7.4】 若有定义:long intj,﹡p;,则操 作 j=(long int)p;是合法操作。( )[判断题, 重庆市 2004年第 1次等级考试] 答案:对 【例 7.5】 在 C 语言中,程序

C语言程序设计第四版_谭浩强7章

C语言程序设计第四版_谭浩强7章

➢函数的功能
return z; }
函数体
函数首部,不是语 句,行尾无分号
精选课件ppt
函数的返回值,类 型与首部定义一致14
函数的定义
关于函数类型的说明
无返回值的函数类型为void; 有返回值的函数,其类型根据返回值 类型决定;省略类型时默认为int(建议 不要省略)
精选课件ppt
15
函数的调用
int main( )
{ int max(int a[ ],int n);
int x[6],i;
for(i=0;i<=5;i++)
scanf("%d",&x[i]);
printf("max=%d",max(x,6));
return 0;
}
实参为数组名
精选课件ppt
int max(int a[ ],int n) { int m,i; m=a[0]; for (i=1;i<n;i++)
float fac; fac=1; for(i=1;i<=n;i++)
fac=fac*i; return fac;
printf("c="); scanf("%d",&c);
}
sum=factorial(a)+factorial(b)+factorial(c);
printf("%d!+%d!+%d!=%.0f",a,b,c,sum);
函数1 函数2 函数3
函数1 函数2
精选课件ppt
34
变量作用域——局部变量和全局变量

C语言程序设计实验实验报告7

C语言程序设计实验实验报告7

C语言程序设计实验实验报告7实验名称:链表实现学生信息管理系统实验目的:通过设计链表实现学生信息管理系统,掌握链表的操作方法及其应用。

实验内容:设计一个学生信息结构体,包括学号、姓名、性别、年龄和成绩五个成员变量,并选择链式结构存储这些数据。

实现以下功能:1. 添加学生信息:从键盘输入学号、姓名、性别、年龄和成绩等信息,添加到链表中。

2. 删除学生信息:从链表中删除指定学号的学生信息。

5. 按成绩排序:按学生的成绩从高到低排序,并输出所有学生的信息。

7. 退出程序:退出学生信息管理系统。

实验方法:1. 设计学生信息结构体,定义链表节点结构体,并编写初始化链表和销毁链表的函数。

2. 编写添加学生信息函数,新建链表节点并插入链表末尾。

3. 编写删除学生信息函数,根据学号查找需要删除的节点,先将该节点从链表中删除,再释放节点空间。

4. 编写修改学生信息函数,根据学号查找需要修改的节点,并修改其成员变量。

6. 编写按成绩排序函数,使用冒泡排序法对链表进行排序,并输出所有学生的信息。

7. 编写输出所有学生信息函数,遍历链表并输出每个节点的信息。

8. 完成学生信息管理系统的主函数,实现菜单及相应功能的选择。

实验结果:依次选择菜单中的各个功能,添加、修改、删除、查找、排序和输出学生信息都能实现。

经测试,程序稳定运行,功能正常,符合需求。

本次实验主要让我们掌握了链式结构的概念、链表节点的定义、链表的初始化、插入、查找、删除和销毁链表的操作方法,以及在实际应用中如何使用链表来实现数据管理。

虽然链表操作相对于数组稍微有些繁琐,但其可以灵活处理数据结构的长度变化,具有更高的可扩展性和更好的操作效率,可以更好的适应各种实际需求。

在实验中,还需要注意节点指针的正确使用、各个函数之间的调用关系和输入输出数据格式的合理选择等问题,以保证程序能够正常运行。

同时,还需要保持认真细致的态度,严格按照实验需求和要求来完成每个步骤,以达到更好的实验效果和运行效率。

大学生C语言程序设计(第四版 谭洪强)实验7 答案

大学生C语言程序设计(第四版 谭洪强)实验7 答案

实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。

例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。

注意:n 的值要求不大于100。

算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。

注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。

n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。

参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。

合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。

例如,当a=45,b=12,调用该函数后,c=5241。

算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。

二级C语言程序设计-7_真题-无答案

二级C语言程序设计-7_真题-无答案

二级C语言程序设计-7(总分100,考试时间90分钟)一、选择题1. 构成C程序的三种基本结构是A.顺序结构、转移结构、递归结构 B.顺序结构、嵌套结构、递归结构 C.顺序结构、选择结构、循环结构 D.选择结构、循环结构、嵌套结构2. C语言编译程序的功能是A.执行一个C语言编写的源程序 B.把C源程序翻译成ASCII 码 C.把C源程序翻译成机器代码 D.把C源程序与系统提供的库函数组合成一个二进制执行文件3. 下列形式中不合法的常量是A.2.E8 B.-.28 C.-028 D.2e-84. 以下不是C语言字符型或字符串常量的是A."It's" B."0" C.'a=0' D.'\010'5. C语言程序中,若函数无返回值,则应该对函数说明的类型是A.intB.doubleC.charD.void6. 若变量已正确定义并赋值,则错误的赋值语句是A.a+=a+1;B.a=sizeof(double);C.a=d‖c;D.a+1=a;7. 若有定义:int a=1,b=2,c=3;,则执行表达式(a=b+c)‖(++b)后a,b,c的值依次为A.1,2,3 B.5,3,2 C.5,2,3 D.5,3,38. 有以下程序#include <stdio.h>main(){ int k=10;printf("%4d, %o, %x\n", k, k, k);}程序的运行结果是(□代表一个空格)A.10,12,a B.□□10,012,a C.010,12,a D.□□10,12,a9. 设有:char s[5], c;,则调用函数scanf能正确给s和c读入数据的是A.scanf("%s%c", s,c); B.scanf("%d%c", &s, &c); C.scanf("%d%c", s, &c); D.scanf("%s%c", s, &c);10. 设x,y,z均为实型变量,代数式在C语言中的正确写法是A.x/y*zB.x%y%zC.x/y/zD.x*z/y11. 有以下程序#include<stdio.h>main(){ int i, j, k, a=5, b=6;i=(a==b)?++a: --b;j=a++; k=b; printf("%d, %d, %d\n", i, j, k);}程序的运行结果是A.7,6,5 B.5,5,5 C.7,5,5 D.5,6,512. 设变量x为long int型并已正确赋值,以下表达式中能将x的百位上的数字提取出的是A.x/10%100B.x%10/100C.x%100/10D.x/100%1013. 有以下程序#include<stdio.h>main(){ int i, j, x=0;for(i=0; i<2; i++){ x++;for(j=0; j<=3; j++){if(j%2==0) continue; x++; }x++;}printf("x=%d\n", x);}程序的运行结果是A.x=4 B.x=6 C.x=8 D.x=1214. 有以下程序#include<stdio.h>main(){ int sum=0, x=5;do{sum+=x; }while(!--x);printf("%d\n", sum);程序的运行结果是A.0 B.5 C.14 D.1515. 有以下程序#include<stdio.h>main(){ char ch='Z';ch=(ch-'A'+1)%26+'A'; putchar(ch);程序的运行结果是A.Z B.Y C.B D.A16. 以下函数的功能是:计算a的n次方作为函数值返回double fun(double a, int n){ int i; double s=1.0;for(i=1; i<=n; i++) s=______;return 8;}为实现上述功能,函数中下划线处应填入的是A.s*i B.s*a C.s+i*i D.s+a*a17. 在C语言程序中,下列说法正确的是A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和调用均不可以嵌套 D.函数的定义和调用均可以嵌套18. 若主函数中有定义语句:int a[10],b[10],c;,在主函数前定义的fun函数首部为:void fun(int x[]),则以下选项中错误的调用语句是A.fun(b); B.fun(&c); C.fun(&a[3]); D.fun(b[1]);19. 有以下程序#include<stdio.h>main(){int k, n=0; char c, str[]="teach";for(k=0; str[k]; k++){ c=str[k];switch(k){case 1: case 3: case 5: putchar(c); printf("%d", ++n); break;default: putchar('N');}}}程序的运行结果是A.Ne1NN B.e1a2e3 C.Ne1Nc2N D.Na1NNNN20. 以下叙述中错误的是A.同一个数组中所有元素的类型相同 B.不可以跳过前面的数组元素,给后面的元素赋初值 C.定义语句:int a[10]={0};,给a数组中所有元素赋初值0 D.若有定义语句:int a[4]={1, 2, 3, 4, 5};,编译时将忽略多余的初值21. 执行以下程序段后,s的值为int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9}, s=0, k;for(k=0; k<8; k+=2) s+=*(a+k);A.13 B.16 C.17 D.4522. 有以下程序#include<stdio.h>#define N 4void fun(int a[][N], int b[]){ int i;for(i=0; i<N; i++) b[i]=a[i][N-1-i];}main(){ int x[N][N]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}, y[N], i;fan(x, y);for(i=0; i<N; i++) printf(:%d,", y[i]);printf("\n");}程序的运行结果是A.1,2,3,4, B.3,6,9,12, C.4,7,10,13, D.1,5,9,13,23. 有以下程序#include <stdio.h>#include<string.h>main(){char str[]={"Hello, Beijing"};printf("%d, %d\n", strlen(str), sizeof(str));}程序的运行结果是A.13,13 B.13,14 C.13,15D.14,1524. 有以下程序#include<stdio.h>void fun(char(*p)[6]){ int i;for(i=0; i<4; i++) prinff("%c", p[i][i]);printf("\n");}main(){ char s[6][6]={"ABCDE", "abcde", "12345", "FGHIJ", "fghij", "54321"};fun(s);}程序的运行结果是A.A a 1 F B.A b 3 I C.A B C D D.f g h i j25. 有以下程序#include<stdio.h>int fun(int n){ if(n) return fun(n-1)+n;else return 0;}main(){printf("%d\n", fun(3)); }程序的运行结果是A.4 B.5 C.6 D.726. 有以下程序#include<stdio.h>#define M 5#define f(x, y) x*y+Mmain(){ int k;k=f(2, 3)*f(2, 3);printf("%d\n", k);}程序的运行结果是A.22 B.41 C.100 D.12127. 有以下定义struet data{ int i; char c; double d; } x;以下叙述中错误的是A.x的内存地址与x.i的内存地址相同 B.struct data是一个类型名 C.初始化时,可以对x的所有成员同时赋初值 D.成员i、c和d占用的是同一个存储空间28. 有以下程序#include <stdio.h>#include<string.h>typedef struet{ char name[9]; char sex; float score[2]; }STU;void f(STU *a){ strcpy(a->name, "Zhao");a->sex='m'; a->score[1]=90.0;main(){ STU c={"Qian", 'f', 95.0, 92.0}, *d=&c;f(d); printf("%s, %c, %2.0f, %2.0f\n", d->name, c.sex, c.seore[0], c.score[1]);}程序的运行结果是A.Qian,f,95,92 B.Zhao,f,95,90 C.Zhao,m,95,90 D.Zhao,f,95,9229. 若有以下定义struet tt{char name[10]; char sex; } aa={"aaaa", 'F'}, *p=&aa;则错误的语句是 A.scanf("%c", aa.sex); B.aa.sex=getchar(); C.printf("%c\n", (*p).sex); D.printf("%c\n", p->sex);30. 若有说明:typedef struet {int a; char c; }W;则以下叙述正确的是A.编译后系统为W分配5个字节 B.编译后系统为W分配6个字节 C.编译后系统为W分配8个字节 D.编译后系统不为W分配存储空间二、程序填空题1. 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。

电大C语言程序设计 第7章 结构和联合

电大C语言程序设计 第7章 结构和联合

第7章 结构和联合 章 7.3 结构成员的访问 1.访问结构成员:通过点操作符“.”进行。 访问结构成员: 进行。 访问结构成员 通过点操作符“ 进行 访问code成员 例:person.code//访问 访问 成员 person.salary//访问 访问salary成员 访问 成员 2. 同类型的结构变量可相互赋值。 同类型的结构变量可相互赋值。 struct person { char name[20]; unsigned long id; float salary; }; person pr1={“Frank voltaire”,12345678,3.35}; person pr2; pr2=pr1; //同类型的结构变量可相互赋值 同类型的结构变量可相互赋值
第7章 结构和联合 章 7.2 结构变量的定义和初始化 结构变量定义方法有三种。 结构变量定义方法有三种。 1. 先定义结构类型,再定义变量 先定义结构类型, struct Arith { char op; int a,b; }; int xx=40; (1)struct Arith x,y; (2)struct Arith z1={'+',10,xx},z2={'*',60},z3=z1; (3)struct Arith *d=&z1; (4)struct Arith a[4]={{'+',3,7},{'-',10,5},{'*',6,4}, {'/',8,5}}; (5)struct Arith *b[ ]={&z1,&z2,a+2,&a[3]};
struct D{ int * a; int * ap; int maxsize; }; struct E{ int d,* e; struct B b; }; struct F{ double data; struct F * next; };

C语言程序设计(向华主编)_第7章_函数

C语言程序设计(向华主编)_第7章_函数

fun1_2() {…… }
fun2() { …… fun2_1(); …… fun2_2(); …… }
fun2_1() {…… }
fun2_2() {…… }
《C语言程序设计》 语言程序设计》
清华大学出版社
第7章
函数
7.1
二、C 二、C函数的分类
1.从函数定义的角度分类 从函数定义的角度分类
函数概述
《C语言程序设计》 语言程序设计》
清华大学出版社
第7章
函数
习题
P187 3.(1)(2)(3)
《C语言程序设计》 语言程序设计》
清华大学出版社
第7章
函数
7.3
一、函数参数
函数参数及返回值
参数的作用: 参数的作用: 函数的参数用于建立函数之间的数据联系。当一个函数调用另一个函数时, 实际参数的值会传递给形式参数,以实现主调函数与被调函数之间的数据通 信。同时,函数参数的运用还可提高一个函数的灵活性和通用性。 [例7.3] 编写一个函数,打印一条由星号构成的横线。 例 编写一个函数,打印一条由星号构成的横线。 main() { pstar() ; /* 第一次调用pstar函数 */ printf(" 欢迎使用本程序!\n") ; 运行结果: 运行结果: pstar() ; /* 第二次调用pstar函数 */ ******************** } 欢迎使用本程序! pstar() /* 定义pstar函数 */ ******************** { printf("********************\n") ; }
《C语言程序设计》 语言程序设计》
清华大学出版社
第7章

c语言程序设计课后习题答案第7章

c语言程序设计课后习题答案第7章

#include<stdio.h>main(){int a[10],n,sum=0,i;float ave;printf("enter n:\n");scanf("%d",&n);printf("enter %d ge zheng shu:\n",n);for(i=0;i<n;i++){scanf("%d",&a[i]);sum=sum+a[i];}ave=1.0*sum/n;printf("ave=%.2f\n",ave);}/*练习7-2*/#include<stdio.h>main(){int a[10],n,i;printf("enter n:\n");scanf("%d",&n);printf("enter %d ge zheng shu:\n",n);for(i=0;i<n;i++){printf("第%d个:\n",i+1);scanf("%d",&a[i]);printf("倒序:\n");while(a[i]!=0){printf("%d",a[i]%10);a[i]=a[i]/10;}printf("\n");}}#include<stdio.h>main(){int a[5],x,i,k=0;printf("enter 5 ge zheng shu:\n");for(i=0;i<5;i++)scanf("%d",&a[i]);printf("enter x:\n");scanf("%d",&x);for(i=0;i<5;i++)if(a[i]==x){printf("xia biao wei : %d\n",i);k=1;}if(k==0)printf("Not Found\n");}/*练习7-4*/#include<stdio.h>main(){int a[10],n,i,k=0,x,max;printf("enter n:\n");scanf("%d",&n);printf("enter %d ge zheng shu:\n",n);for(i=0;i<n;i++)scanf("%d",&a[i]);max=a[0];for(i=1;i<=n-1;i++)if(max<a[i]){max=a[i];k=i;}printf("max=%d xia biao=%d",max,k);x=a[n-1];a[n-1]=a[k];a[k]=x;printf("\n");for(i=0;i<n;i++)printf(" %d ",a[i]);printf("\n");}/*练习7-11*/#include<stdio.h>main(){char str[80];int i,j,count=0;printf("输入一个以回车符结束的字符串:\n");i=0;while((str[i]=getchar())!='\n')i++;str[i]='\0';printf("再输入一个字符:\n");str[80]=getchar();for(j=0;j<=i-1;j++)if(str[80]==str[j])count++;printf("%c字符在字符串中出现的次数为:%d\n",str[80],count);for(j=0;j<=i-1;j++)putchar(str[j]);printf("\n");}/*习题七1*/#include<stdio.h>main(){int x,y,n,a[10],i,min,max;printf("输入n:\n");scanf("%d",&n);printf("输入%d个整数:\n",n);for(i=0;i<n;i++)scanf("%d",&a[i]);min=0;for(i=1;i<n;i++)if(a[min]>a[i])min=i;max=0;for(i=1;i<n;i++)if(a[max]<a[i])max=i;x=a[min];a[min]=a[0];a[0]=x;y=a[max];a[max]=a[n-1];a[n-1]=y;for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n");}/*习题七2*/#include<stdio.h>main(){int x,n,a[10],i,j,max;printf("输入n:\n");scanf("%d",&n);printf("输入%d个整数:\n",n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=1;i<n;i++){ max=i-1;for(j=i;j<n;j++)if(a[max]<a[j])max=j;x=a[max];a[max]=a[i-1];a[i-1]=x;}for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n");}/*习题七4*/#include<stdio.h>main(){int m,n,a[6][6],i,j,b[6]={0};printf("输入m:\n");scanf("%d",&m);printf("输入n:\n");scanf("%d",&n);printf("输入%d和%d的矩阵:\n",m,n);for(i=0;i<m;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);b[i]=b[i]+a[i][j];}}printf("shu chu:\n");for(i=0;i<m;i++){for(j=0;j<n;j++)printf(" %d",a[i][j]);printf("\n");}printf("shu chu hang he :\n");for(i=0;i<m;i++)printf("%4d",b[i]);printf("\n");}/*习题7.6*/#include<stdio.h>main(){char str[80];int i,j;printf("输入一个以回车符结束的字符串:\n");i=0;while((str[i]=getchar())!='\n')i++;printf("倒序输出:\n");for(j=i-1;j>=0;j--)putchar(str[j]);printf("\n");}/*新7.6*/#include<stdio.h>main(){int a[10],i,n;printf("输入整数n:\n");scanf("%d",&n);printf("输入%d个整数:\n",n);for(i=0;i<n;i++){scanf("%d",&a[i]);}printf("倒序输出:\n");for(i=0;i<n;i++){printf("%5d",a[n-1-i]);}printf("\n");}/*习题7.7*/#include<stdio.h>main(){char str[80];int i,j,count=0;printf("输入一个以回车符结束的字符串:\n");i=0;while((str[i]=getchar())!='\n')i++;printf("输出其中的大写辅音字母:\n");for(j=0;j<=i-1;j++)if(str[j]>='B'&&str[j]<='Z'&&str[j]!='E'&&str[j]!='I'&&str[j]!='O'&&str[j]!='U'){putchar(str[j]);count++;}printf("\n");printf("大写辅音字母数量为:%d\n",count);}/*习题7.8*/#include<stdio.h>main(){char str[80];int i,j,count=0;printf("输入一个以回车符结束的字符串:\n");i=0;while((str[i]=getchar())!='\n')i++;printf("输出相应交换后的字符串:\n");for(j=0;j<=i-1;j++)if(str[j]>='A'&&str[j]<='Z')str[j]=155-str[j];for(j=0;j<=i-1;j++)putchar(str[j]);printf("\n");}上文已完。

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

4
复习
scanf((“格式控制”,地址列表) 如 scanf(“%d,%d”,&x,&y); 从键盘输入:3,4 格式控制要简洁,否则从键盘输入数据时要将多余内容 原样输入,否则结果出错。 如 scanf(“x=%d,y=%d”,&x,&y) 从键盘输入:x=3,y=4
复习
2) putchar( ):输出字符,形式一般为:putchar(变量)
百元百鸡
课后题 Fra bibliotek1 找出1-100中所有奇数和偶数之和 2 从5-100中找出能被5或者7整除的数 3 输入10个数,统计出正数,负数和0的个数。 4要求从键盘输入一个学生两门成绩,并算出 其平均分,如果平均分大于等60小于85,则为 合格,如果大于85则为优秀,小于60为不合格, 并统计出合格,不合格,优秀的学生的人数。 (全班的人数要求从键盘输入)(
综合题
main() { int x=3,y,t,m,n,k; t=(3%4,3/4); m=(t<=0?x++, --x); n=m++; k=(float) 3/4.0; y=!((t==k)||n<m); printf(“%d,%d,%d,%2.1f,%d”,t,m,n,k,y); }
复习
6 程序的三种结构 顺序结构:最简单的基本结构,按先后必且执行 每一条语句 选择结构:又称分支结构,根据逻辑条件的成立 与否,有选择的执行某些语句,做不同的处理。 循环结构:条件成立,反复执行循环体,直至条 件不成立,则退出循环。
复习



if 条件语句 switch 多条件语句 while/do-while/for:循环语句 break语句 contiunue语句
复习
主要复习循环,特别是for循环,看程序时 要先找出循环体,明白程序是如何运行的。
for循环语句

P78利用for打印出如图所示的九九乘法 表。

6 运算符 算术运算符:+,-,*,/,% 关系运算符:>,>=,<,<=,!=,==(经常用在条件表达式中) 赋值运算符:= 条件运算符:? : (相当于if else) 逗号运算符:, (赋值结果以后一个为准) 逻辑运算符:&&,||,! 强制转换运算符:(类型)表达式 自增,自减:++,-getchar():输入字符,形式一般为:变量=getchar()
C语言程序设计
主讲:林碧君
复习
一、 基本知识
1 最简单的程序构成: main() { 定义变量; 语句序列; }
2 C语言是一种函数结构, 一般由一个多或个函数 组成,必须有一个main 函数,程序执行时从 main开始 3 每条语句结束要加;
复习
4 变量在使用前要先定义。格式:类型 变量名; 定义变量时可以顺便赋值。如:int x=1; 或 float y=1.0; 变量的类型:(int,long,float ,char,double等等) 变量的命名:可以由字母,数字,下划线组成(首字母不能 为数字)并且关键字不能当变量名(如int,float,char等) 且C语言大小写是敏感的。 判断以下变量的定义是否正确 Int x,y; int Int=0; char char=„c‟; char _Char1=“b”
分析:该题不知道蛋的总数,所以最优于用循环来解题,从 1开始循环,让计算机做自增运算,当自增到某个数能满足 妇女所说的条件时,那个数就是鸡蛋的个数。
百元买百鸡
有100元要买100只鸡,其中公鸡若干只,母鸡若 干只,小鸡若干只,已知:公只5元一只,母鸡3 元一只,小鸡1元三只,总共有多少种买法(每 只鸡至少要有一只)? 分析:每种鸡的只数是不确定的,所以只能用循 环,因为每只鸡至少一只,所以从1开始循环。 此题应用三层循环嵌套。
请自己在纸上分析一下其运行过程 先找出哪些语句是第一个for的循环体,哪 些又是第二个for的循环体
for循环语句

例P80
一个人打碎了一个妇女一篮蛋,要赔钱,那妇女 说:她也不清楚到底有多少个蛋,只记得如果:每次拿2个 则余1个,每次拿3个则余2个,每次拿5个则余4个,如果每 只蛋以0.4元算,请编程帮忙算算要多少钱
复习
5 数据的输入输出 1) printf(“格式控制”,输出列表):输出 scanf((“格式控制”,地址列表):输入 格式控制由%和格式字符(如c,d,f,e等)以及普通字符 (原样输出)、转义字符等组成。 如已知int x=3,s;则下列输出结果为: printf(“x=%d,%f”,x,x) ; printf(“abc\b\t%d”,x); printf(“s=%d,s=%f”,x/2,x%2); 除此以外,printf还可以控制输出结果的宽度,此处再不 讨论。
相关文档
最新文档