C++语言-南开大学ch3
南开大学C语言与数据结构考研大纲及考题真题资料-历年真题集
南开大学C语言与数据结构考研大纲及考题真题资料南开大学C语言与数据结构考研复习都是有依据可循的,考研学子关注事项流程为:考研大纲-参考书-真题资料-复习经验-辅导-复试-导师,缺一不可。
咱们今日分享南开大学C语言与数据结构考研大纲及考题真题资料,帮助大家找到报考学校的命题规律、题型考点、分值分布、难易程度、重点章节、重要知识点等,从而使我们的复习备考更具有针对性和侧重点,提高复习备考效率。
下面是南开大学C语言与数据结构考研考试大纲815C语言与数据结构《C语言与数据结构》之C语言部分考试大纲一、考试目的本考试是全日制软件工程硕士专业学位研究生的入学资格考试之专业基础课,各语种考生统一用汉语答题。
招生院校根据考生参加本考试的成绩和其他三门考试的成绩总分来选择参加第二轮,即复试的考生。
二、考试的范围以下是本科目的考试范围。
1.数据类型,不同类型数据之间的转换和混合运算,类型定义,运算符的运算规则和优先级,表达式;2.程序结构,包括循环,嵌套,和递归;3.函数的定义,调用,和传参数;4.标准函数库中定义的常用函数,包括输入输出函数,数学计算函数,内存操作函数,字符串操作函数等;5.数组和字符串的定义和操作;6.指针的各种用法,包括对字符串指针,数组指针,函数指针等的定义和操作,将指针用作函数参数,以及使用指针进行动态内存管理;7.宏定义和头文件;8.结构体的定义和操作;9.文件操作;10.程序调试技术。
三、考试基本要求1.掌握C语言的基本语法知识。
2.熟练运用C语言进行程序设计的能力。
四、考试形式本考试包括5道编程题考试要求该部分包含5道编程题,要求考生综合运用C语言知识解决面向应用的问题。
编程题不涉及复杂的数据结构、算法,代码行数在100行以内,编程中会用到C标准库中定义的常用函数。
答题和计分要求考生用钢笔或圆珠笔做在答题卷上。
《C语言与数据结构》之数据结构部分考试大纲一、考试目的本考试是全日制软件工程硕士专业学位研究生的入学资格考试之专业基础课,各语种考生统一用汉语答题。
南开C语言100题附带答案
1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。
请编写函数num(int m,int k,int xx[])实现函数的要求 ,最后调用函数readwriteDAT()把结果输出到文件out.dat中。
例如:若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序已给出。
请勿改动主函数main()和函数readwriteDAT()的内容。
---------类型:素数。
void num(int m,int k,int xx[]) /*标准答案*/ {int data=m+1;int half,n=0,I;while(1){half=data/2;for(I=2;I<=half;I++)if(data%I==0)break;if(I>half){xx[n]=data;n++;}if(n>=k)break;data++;} }或者:void num(int m,int k,int xx[]){int i,j,s=0;for(i=m+1;k>0;i++){for(j=2;j<i;j++)if(i%j==0) break; /*注:素数为只能被自己和1整除的数.如果i%j等于0,说明i不是素数,跳出本层循环*/if(i==j){xx[s++]=i;k--;}} }或者:void num(int m, int k, int xx[]){ int i=0;for(m=m+1;k>0;m++)if(isP(m)){ xx[i++]=m;k--; } }原程序如下:#include <conio.h>#include <stdio.h>void readwriteDAT() ;int isP(int m){ int i ;for(i = 2 ; i < m ; i++)if(m % i == 0) return 0 ;return 1 ;}void num(int m,int k,int xx[]){} main(){ int m, n, xx[1000] ;clrscr() ;printf("\nPlease enter two integers:") ; scanf("%d,%d", &m, &n ) ;num(m, n, xx) ;for(m = 0 ; m < n ; m++)printf("%d ", xx[m]) ;printf("\n") ;readwriteDAT() ;system("pause");}void readwriteDAT(){ int m, n, xx[1000], i ;FILE *rf, *wf ;rf = fopen("in.dat", "r") ;wf = fopen("out.dat", "w") ;for(i = 0 ; i < 10 ; i++) {fscanf(rf, "%d %d", &m, &n) ;num(m, n, xx) ;for(m = 0 ; m < n ; m++) fprintf(wf, "%d ",xx[m]) ;fprintf(wf, "\n") ;}fclose(rf) ;fclose(wf) ;}2:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 如果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。
奥鹏南开大学 22秋学期《C语言程序设计》在线作业分数100(48)
22秋学期(高起本1709-1803、全层次1809-2103)《C语言程序设计》在线作业1.如果在C语言中一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为( )。
A.0~255B.0~32 767C.0~65 535D.0~2 147 483 647【参考答案】:C2.在C语言中,要求运算数必须是整型的运算符是( )。
A./B.&&C.!=D.%【参考答案】:D3.for (i=2; i==0; ) printf(“%d” , i--) ; 以上程序段的循环次数是( )A.2次B.无限次C.0次D.1 次【参考答案】:C4.设有以下说明语句 struct stu {int a;float b;}stutype; 则以下叙述不正确的是( )A.stutype 是用户定义的结构体类型名B.a 和 b 都是结构体成员名C.struct 是结构体类型的关键字D.struct stu 是用户定义的结构体类型【参考答案】:A5.C语言中规定,if语句的嵌套结构中,else总是与( )配对A.与最近的if 配套B.与第一个if 配套C.按缩进位置相同的if配套D.与最近的且尚未配对的if 配套6.从用户使用的角度看,函数有两种,它们是( )A.库函数和用户自定义函数B.库函数和主函数C.用户自定义函数和主函数D.主函数和子函数【参考答案】:A7.C程序的执行从哪里开始( )A.第一条语句B.第一个函数C.最后一个函数D.主函数【参考答案】:D8.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式【参考答案】:C9.已知字母A的ASCII码为十进制数65,且定义c2为字符型变量,则执行语句c2='A'+'6'-'3';后,c2中的值为( )A.DB.68C.不确定的值D.C【参考答案】:A10.若定义语句:int a=7;float x=2.5;y=4. 7; 则表达式x+a%3*(int)(x+y)%2/4的值是( )A.2.500000B.2.750000C.3.500000D.0.000000【参考答案】:A11.下列哪个是字符写函数( )。
南开大学100题c语言
1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;/lugoi6liilyrf67for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;xcfb}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
[南开大学]《C语言程序设计》19秋期末考核(答案参考)
【奥鹏】-[南开大学]《C语言程序设计》19秋期末考核试卷总分:100 得分:100第1题,putchar函数可以向终端输出一个:A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值正确答案:D第2题,以下对C语言中共用体类型数据的叙述正确的是( )A、可以对共用体变量名直接赋值B、一个共用体变量中可以同时存放其所有成员C、一个共用体变量中不能同时存放其所有成员D、共用体类型定义中不能出现结构体类型的成员正确答案:C第3题,在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、原码D、ASCII码正确答案:D第4题,从用户使用的角度看,函数有两种,它们是( )A、库函数和用户自定义函数B、库函数和主函数C、用户自定义函数和主函数D、主函数和子函数正确答案:A第5题,若调用fputc函数输出字符成功,则其返回值是( )A、EOFB、1C、0D、输出的字符正确答案:D第6题,变量的指针,其含义是指该变量的( )A、地址B、值C、名字D、标识正确答案:A第7题,main() {int x=2,y=-1,z=2; if(xy) if(y0) z=0; else z+=1; printf("%d\n",z); } 以上程序的输出结果为( )。
A、3B、2C、1D、0正确答案:B第8题,#includestdio.h main() {union { long a; int b; char c;}m; printf("%d\n",sizeof(m));} 以上程序的运行结果是( )。
A、2B、4C、6D、8正确答案:B第9题,设有以下说明语句 struct stu {int a;float b;}stutype; 则以下叙述不正确的是( )A、stutype 是用户定义的结构体类型名B、a 和 b 都是结构体成员名C、struct 是结构体类型的关键字D、struct stu 是用户定义的结构体类型正确答案:A第10题,若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10};则下列哪个是对该数组元素的正确引用( )A、a[10]B、a[a[3]-5]C、a[a[9]]D、a[a[4]+4]正确答案:D第11题,以下正确的叙述是( )A、在C语言中,每行只能写一条语句B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C、在C程序中,无论整数还是实数,都能被准确无误的表示D、在C程序中,%是只能用于整数运算的运算符正确答案:D第12题,关于return语句,下列说法正确的是( )。
[南开大学]21春学期《C语言程序设计》在线作业-(资料答案)1
[南开大学]21春学期《C语言程序设计》在线作业试卷总分:100 得分:100一、单选题 (共 40 道试题,共 80 分)1.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。
<A>项.整型常量<B>项.整型表达式<C>项.整型常量或整型表达式<D>项.任何类型的表达式[-标准答案-]:C2.main( ) {int n=4; while(n)printf("%d ",--n); } 以上程序的输出结果是( )。
<A>项.2 0<B>项.3 1<C>项.3 2 1 0<D>项.2 1 0[-标准答案-]:C3.当说明一个结构体变量时系统分配给它的内存是( )<A>项.各成员所需内存的总和<B>项.结构中第一个成员所需内存量<C>项.成员中占内存量最大者所需的容量<D>项.结构中最后一个成员所需内存量[-标准答案-]:A4.以下不正确的语句为( )<A>项.if(x>y);<B>项.if(x>y){x++;y++;}<C>项.if(x=y)&&(x!=0)x+=y;<D>项.if(x!=y) scanf("%d",&x); else scanf("%d",&y);[-标准答案-]:C5.#include<stdio.h> main() {union { long a; int b; char c;}m; printf("%d\n",sizeof(m));} 以上程序的运行结果是( )。
<A>项.2<B>项.4<C>项.6<D>项.8[-标准答案-]:B6.以下对一维整型数组 a 的正确说明是( )<A>项.int a(10) ;<B>项.int n=10,a[n];<C>项.int n;<D>项.define SIZE 10 int a[SIZE];[-标准答案-]:D7.设有如下程序# include<stdio.h> main() { char ch1='A',ch2='a'; printf("%c\n",(ch1,ch2)); } 则下列叙述正确的为( )<A>项.程序的输出结果为大写字母A<B>项.程序的输出结果为小写字母a<C>项.运行时产生错误信息<D>项.格式说明符的个数少于输出项的个数,编译出错[-标准答案-]:B8.已知各变量的类型说明如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是:<A>项.a十=a一=(b= 4)*(a=3)<B>项.a=a*3=2<C>项.x%(一3)<D>项.y=f1oat(i)[-标准答案-]:A9.下列哪个是读写文件出错检测函数( )。
南开大学100题c语言
1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;/lugoi6liilyrf67for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;xcfb}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
[南开大学]21春学期《C语言程序设计》在线作业-参考答案1
南开21春学期(1709-2103)《C语言程序设计》在线作业提示:南开大学课程学习已经开启,本套试卷是课程学习辅导资料,只作参考学习使用!!!一、单选题 (共 40 道试题,共 80 分)1.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式[提问:仔细分析上述试题,并从选项中选择一项,填写在答题卡上]参考答案是:C2.main( ) {int n=4; while(n)printf("%d ",--n); } 以上程序的输出结果是( )。
A.2 0B.3 1C.3 2 1 0D.2 1 0[提问:仔细分析上述试题,并从选项中选择一项,填写在答题卡上]参考答案是:C3.当说明一个结构体变量时系统分配给它的内存是( )A.各成员所需内存的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量[提问:仔细分析上述试题,并从选项中选择一项,填写在答题卡上]参考答案是:A4.以下不正确的语句为( )A.if(x>y);B.if(x>y){x++;y++;}C.if(x=y)&&(x!=0)x+=y;D.if(x!=y) scanf("%d",&x); else scanf("%d",&y);[提问:仔细分析上述试题,并从选项中选择一项,填写在答题卡上]参考答案是:C5.#include<stdio.h> main() {union { long a; int b; char c;}m; printf("%d\n",sizeof(m));} 以上程序的运行结果是( )。
A.2B.4C.6D.8[提问:仔细分析上述试题,并从选项中选择一项,填写在答题卡上]参考答案是:B6.以下对一维整型数组 a 的正确说明是( )A.int a(10) ;B.int n=10,a[n];C.int n;D.define SIZE 10 int a[SIZE];[提问:仔细分析上述试题,并从选项中选择一项,填写在答题卡上]参考答案是:D7.设有如下程序# include<stdio.h> main() { char ch1='A',ch2='a'; printf("%c\n",(ch1,ch2)); } 则下列叙述正确的为( )A.程序的输出结果为大写字母AB.程序的输出结果为小写字母aC.运行时产生错误信息D.格式说明符的个数少于输出项的个数,编译出错[提问:仔细分析上述试题,并从选项中选择一项,填写在答题卡上]参考答案是:B8.已知各变量的类型说明如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是:A.a十=a一=(b= 4)*(a=3)B.a=a*3=2C.x%(一3)D.y=f1oat(i)[提问:仔细分析上述试题,并从选项中选择一项,填写在答题卡上]参考答案是:A9.下列哪个是读写文件出错检测函数( )。
南开大学(2020-2021 )《C语言程序设计》在线作业-答案1
南开大学(2020-2021 )《C语言程序设计》在线作业提示:本科目有多套试卷,请认真核对是否是您需要的材料!!!一、单选题 (共 40 道试题,共 80 分)1.C语言结构体类型变量在程序执行期间( )。
[A.]所有成员一直驻留在内存中[B.]只有一个成员驻留在内存中[C.]部分成员驻留在内存中[D.]没有成员驻留在内存中提示:认真复习课本知识302,并完成以上题目【参考选择】:A2.设以下变量均为int类型,则值不等于7的表达式是( )[A.](x= y= 6, x+y,x+1)[B.](x= y= 6,x+y,y+1)[C.](x= 6,x+1,y= 6,x+y)[D.](y=6,y+l,x = y,x+1)提示:认真复习课本知识302,并完成以上题目【参考选择】:C3.main() { int x,y,z; scanf (“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\n”,x+y+z); } 输入数据的形式是25,13,10<回车>,则程序的输出结果是( )[A.]x+y+z=48[B.]x+y+z=35[C.]x+z=35[D.]不确定值提示:认真复习课本知识302,并完成以上题目【参考选择】:A4.若执行fopen函数时发生错误,则函数的返回值是( )[A.]地址值[B.]null[C.]1[D.]EOF提示:认真复习课本知识302,并完成以上题目【参考选择】:B5.若已有定义int x=2; int *p=&x;则*p的值为( )[A.]2[B.]&x[C.]*x[D.]&p提示:认真复习课本知识302,并完成以上题目【参考选择】:A6.设有以下说明语句 struct stu {int a;float b;}stutype; 则以下叙述不正确的是( )[A.]stutype 是用户定义的结构体类型名[B.]a 和 b 都是结构体成员名[C.]struct 是结构体类型的关键字[D.]struct stu 是用户定义的结构体类型提示:认真复习课本知识302,并完成以上题目【参考选择】:A7.x=-2; y=-1; if(x!=0) if(x>0) y=1; else y=0; 该程序段的输出结果为( )。
南开大学智慧树知到“计算机科学与技术”《C语言程序设计》网课测试题答案卷2
南开大学智慧树知到“计算机科学与技术”《C语言程序设计》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共10题)1.设有说明语句:char w; int x; float y; double z; w*x+z-y 值的数据类型为()。
A.floatB.charC.intD.double2.已知各变量的类型说明如下:int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是()。
A.a+=a-=(b=4)*(a=3)B.a=a*3=2C.x%(-3)D.y=f1oat(i)3.若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}; 则下列哪个是对该数组元素的正确引用?()A.a[10]B.a[a[3]-5]C.a[a[9]]D.a[a[4]+4]4.从用户使用的角度看,函数有两种,它们是()。
A.库函数和用户自定义函数B.库函数和主函数C.用户自定义函数和主函数D.主函数和子函数5.判断字符串a是否大于b,应当使用()。
A.if(a>b)B.if(strcmp(a,b)C.if(strcmp(b,a)>0)D.if(strcmp(a,b)>0)6.下列关于数组的特征错误的是()。
A.先定义后使用B.可以有多维C.定义数组长度时可以用常量或变量D.可以作参数传递7.若调用fputc函数输出字符成功,则其返回值是()。
A.EOFB.1C.0D.输出的字符8.按现代风格设计的C程序中,main中对函数声明的信息与定义此函数时第一行的信息完全相同。
()A.错误B.正确9.下面程序段:int k=2; while (k==0) {printf(“%d”,k); k--;} 则下面描述中正确的是()。
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次10.x=-2; y=-1; if(x!=0) if(x>0) y=1; else y=0; 该程序段的输出结果为()。
南开大学智慧树知到“计算机科学与技术”《C语言程序设计》网课测试题答案5
南开大学智慧树知到“计算机科学与技术”《C语言程序设计》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.以下符合C语言语法的赋值表达式是()。
A.d=9+e+f=d+9B.d=9+e,f=d+9C.d=9+e,e++,d+9D.d=9+e++=d+72.#include“stdio.h”void main() int sum=0,a=1; while(a=10) {sum=sum+a; a++;} printf(“sum=%d\n”,sum);} 以上程序段的运行结果是()。
A.sum=0B.sum=55C.sum=10D.sum=113.main(){int x,y,z; scanf(“%d%d%d”,&x,&y,&z),printf(“x+y+z=%d\n”,x+y+z);} 输入数据的形式是25,13,10回车,则程序的输出结果是()。
A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值4.int k=1; while(k=10); 上述语句执行后,变量k的值是()。
A.10B.11C.9D.无限循环,值不定5.若已有定义int x;下列说明指针变量p指向x的正确语句是()。
A.int p=&xB.int *p=&xC.int p=xD.int *p=x6.以下不正确的叙述是()。
A.在C程序中,逗号运算符的优先级最低B.在C程序中,APH和aph是两个不同的变量C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7.已知字母A的ASCII码为十进制数65,且定义c2为字符型变量,则执行语句c2=‘A’+‘6’-‘3’; 后,c2中的值为()。
A.DB.68C.不确定的值D.C8.putchar函数可以向终端输出一个()。
南开大学100题c语言
1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;/lugoi6liilyrf67for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;xcfb}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
3.2 按条件进行判断 -- 参看书p90的4.2.2小节 参看书p90的4.2.2小节 p90 编程序,输入一个温度值, 编程序,输入一个温度值,若输入的是摄氏值则 将其转换为华氏值, 将其转换为华氏值,若输入的是华氏值则将其转换为 摄氏值,并将转换结果显示出来。 摄氏值,并将转换结果显示出来。 例如,程序执行后的输入输出界面可设计为: 例如,程序执行后的输入输出界面可设计为: temperature:40. Enter temperature:40.2C is:40. C=104 36F 104. The temperature is:40.2C=104.36F 转换公式如下(其中tc表示摄氏度,tf表示 tc表示摄氏度 注:转换公式如下(其中tc表示摄氏度,tf表示 华氏度) 华氏度) 32; tf = tc * 1.8 + 32; (tf–32 32) tc = (tf 32) / 1.8。
输出数值型变量a与b中的较大者。 输出数值型变量a 中的较大者。 cout<<a; if( a>b) cout<<a; cout<<b; else cout<<b; 思考: 思考 : 使用如下的语句也能实现相同功能 有错的话请修改) 吗(有错的话请修改)? cout<<a>b?a: cout<<a>b?a:b; 注意,if句中所含的 句中所含的“ 语句> 注意,if句中所含的“<语句>”(或“<语 语句2 可以是任意语句, 句 1>”或“ <语句 2>” )可以是任意语句 ,如 , 一个复合语句或者又是一个if语句等。 if语句等 一个复合语句或者又是一个if语句等。
6
例3
若int型变量x的值小于y的值时,则将x与y int型变量x的值小于y的值时,则将x 型变量 的值互换;否则, 的值各加上100 100。 的值互换;否则,将x与y的值各加上100。
if后的“ 语句1 为一个复合语句 复合语句。 if后的“<语句1>”为一个复合语句。复合 后的 语句以左花括号“{”开始,以右花括号“}” 语句以左花括号“ 开始, 以右花括号“ 结束, 花括号中为一个语句序列 或称语句 语句序列( 结束 , 花括号中为一个 语句序列 ( 或称 语句 复合语句在逻辑上属于一个语句( 组)。复合语句在逻辑上属于一个语句(参看 86的 小节) 书p86的4.1.3小节)。
18
用于多分支的switch switch语句 3.3 用于多分支的switch语句 -- 参看书p88的4.2.1小节的2 参看书p88的4.2.1小节的2 p88 小节的
switch语句又称开关选择语句或分情况语句, switch语句又称开关选择语句或分情况语句, 它 语句又称开关选择语句 是一种多分支选择语句。该语句的使用格式如下: 是一种多分支选择语句。该语句的使用格式如下: <条件表达式 条件表达式> switch( <条件表达式> ) { <常量表达式 常量表达式1> <语句组 语句组1> case <常量表达式1> : <语句组1> <常量表达式 常量表达式2> <语句组 语句组2> case <常量表达式2> : <语句组2> . . . <常量表达式 常量表达式n> <语句组 语句组n> case <常量表达式n> : <语句组n> <语句组 语句组n+1> default: <语句组n+1> }
1
用于分支的if if语句 3.1 用于分支的if语句
if语句又叫做条件语句, if语句又叫做条件语句,它的功能是根据 语句又叫做条件语句 给定的条件,来选择执行其中的某一分支。 给定的条件,来选择执行其中的某一分支。 允许使用如下两种格式的if语句: 允许使用如下两种格式的if语句: if语句 表达式> 语句> if ( <表达式> ) <语句> 表达式> 语句1 语句2 if ( <表达式> ) <语句1> else <语句2>
3
语句功能(语义) 语句功能(语义)
第一种不出现else的if语句是一种单分支 第一种不出现else的if语句是一种单分支 else 选择结构, 表达式> 结果为非0 选择结构,当“<表达式>”结果为非0值(即 当条件成立) 执行其中的“ 语句> 当条件成立)时,执行其中的“<语句>”,否 即当条件不成立时),什么事也不做( ),什么事也不做 则(即当条件不成立时),什么事也不做(而 结束该if语句)。 if语句 结束该if语句)。 第二种具有else if语句是一种二分支选 else的 第二种具有else的if语句是一种二分支选 择结构, 表达式> 结果为非 择结构 , 当 “ < 表达式 > ” 结果为 非 0 值 时 ( 即 当条件成立时) 执行其中的“ 语句1 当条件成立时 ) , 执行其中的 “ < 语句 1 > ” , 否则( 即当条件不成立时) 执行其中的“ 否则 ( 即当条件不成立时 ) , 执行其中的 “ < 语句2 语句2>”。
第 3章 分支与循环处理
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 用于分支的if语句 用于分支的if语句 if 按条件进行判断 用于多分支的switch switch语句 用于多分支的switch语句 简单的计算器程序_1 简单的计算器程序_1 用于循环的while while语句 用于循环的while语句 简单的计数器程序_2 简单的计数器程序_2 用于循环的do while语句 do用于循环的do-while语句 计算e 计算e的值 用于循环的for for语句 用于循环的for语句 循环处理程序实例 实现跳转的break、continue、goto及return语句 实现跳转的break、continue、goto及return语句 break
15
if(corf=='c'||corf=='C'){ tc=t; tc=t; tf=t*fac+inc; tf=t*fac+inc; } else if(corf=='f'||corf=='F'){ tf=t; tf=t; tc=(t-inc)/fac; tc=(t-inc)/fac; } //字母输入有错 字母输入有错! else //字母输入有错! tc=tf=0 //将tc及tf均置为 均置为0 tc=tf=0; //将tc及tf均置为0 is: cout<<"The temperature is:"; cout<<tc<<"C="<<tf<<"F\n"; cout<<tc<<"C="<<tf<<"F\n"; }
2
紧随if 后括号中的 紧随 if后括号中的 “ < 表达式 > ” 即 if 后括号中的“ 表达式> 条件, 为给定的条件 为给定的条件,通常为一个关系或逻辑表 达式,也可为任一数值表达式。 达式 , 也可为任一数值表达式 。 当 “ < 表 达式> 结果为非0 认为条件成立 条件成立, 达式>”结果为非0值时,认为条件成立, 否则认为条件不成立。 否则认为条件不成立。
17
注意
比较相等的运算符“==” 1.比较相等的运算符“==”和进行赋值的 运算符“ 的使用区别。 运算符“=”的使用区别。 if语句中 语句中, 2. if语句中,作为条件的表达式结果值非 意味着条件成立呢,还是不成立? 0时,意味着条件成立呢,还是不成立? 空语句”的表现形式及使用含义。 3.“空语句”的表现形式及使用含义。
12
这是由于“ 表达式2 语句1 这是由于 “ if ( <表达式 2 > ) <语句 1 >” 表达式2 语句1 语句2 与 “ if ( <表达式 2> ) <语句 1> else <语句 2>” 都为合法的一个语句,那么若按“ 都为合法的一个语句,那么若按“if ( <表达式 语句1 分解”的话,第一个if if则将 2> ) <语句1>”来“分解”的话,第一个if则将 去匹配else!( 但有了规定后, 只能是第二个if 去匹配 else!( 但有了规定后 , 只能是第二个 if else! 与其后的else相匹配) 与其后的else相匹配)。 else相匹配
14
程序编制如下: 程序编制如下:
#include <iostream.h> <iostream. void main(){ t,tc,tf; //t用于存放初始输入值 float t,tc,tf; //t用于存放初始输入值 //tc存放摄氏值 tf存放华氏值 存放摄氏值, //tc存放摄氏值,tf存放华氏值 corf; //取值大小写字母 取值大小写字母‘ char corf; //取值大小写字母‘C’或‘F’ //表示t值为摄氏值或华氏值 //表示t 表示 fac=1 ,inc=32 32. //转换时所需常数 const float fac=1.8,inc=32.0;//转换时所需常数 temperature: //提示进行输入 cout<<"Enter temperature:"; //提示进行输入 cin>>t; //温度值 温度值t cin>>t; //温度值t cin>>corf; //摄氏或华氏的字母 cin>>cortemp; int temp; //说明性语句 变量temp 说明性语句, temp仅在该复合语句内有效 //说明性语句,变量temp仅在该复合语句内有效 temp=x; temp=x; x=y; x=y; y=temp; y=temp; } else { x=x+100 100; x=x+100; y=y+100 100; y=y+100; }