c程序的控制结构习题复习资料
C++第三章 基本控制结构程序设计习题解答
第三章基本控制结构程序设计习题一.基本概念与基础知识自测题3.1 程序阅读题3.1.3 请看如下程序段:if(num==1) cout<<”Alpha”;else if(num==2) cout<<”Bata”;else if(num==3) cout<<”Gamma”;else cout<<”Delta”;当num的值分别为1、2、3时,上面程序段的输出分别为(1)、(2)、(3)。
解答:检查条件语句与字符串输出概念:(1)Alpha(2)Bata(3)Gamma3.1.4 执行下面程序段后,m和k的值分别为(1)、(2)。
int m,k;for(k=1,m=0;k<=50;k++){if(m>=10) break;if(m%2==0){m+=5;continue;}m-=3;}(2)6二.编程与综合练习题3.2 编程求一元二次方程ax2+bx+c=0的根。
包括以下判断和结果:若输入a=0,给出提示;若∆>0,输出两个不等实根;若∆=0,输出两个相等实根;若∆<0,输出两个复数根。
解:本题以一个绝对值极小的数作为实数0。
#include <iostream.h>#include <math.h>#include <stdlib.h>void main(){double a,b,c;double delta,x1,x2;const double zero=1e-9; //定义一个很小的常数int sign;cout<<"输入三个系数a(a!=0), b, c:"<<endl;cin>>a>>b>>c;if(fabs(a)<zero){cout<<"二次项系数为0,方程根是-c/b";exit(0);}cout<<"a="<<a<<'\t'<<"b="<<b<<'\t'<<"c="<<c<<endl;delta=b*b-4*a*c;if(fabs(delta)<zero){//绝对值很小的数即被认为是0cout<<"方程有两个相同实根:";cout<<"x1=x2="<<-b/(2*a)<<endl;}else {if(delta>0)sign=1;elsesign=0;delta=sqrt(fabs(delta));x1=-b/(2*a);x2=delta/(2*a);if(sign){cout<<"方程有两个不同实根:";cout<<"x1="<<x1+x2<<'\t'<<"x2="<<x1-x2<<endl;}else{//delta<0cout<<"方程无实根!有两个不同复数根:";cout<<"x1="<<x1<<"+i"<<x2<<'\t'<<"x2="<<x1<<"-i"<<x2<<endl;}}}3.3 设计程序将输入的百分制成绩转换为五分制输出,90分以上为5分,80~89分为4分,70~79分为3分,60~69分为2分,60分以下为1分。
C语言考试习题及答案
1. C语言程序的基本结构是【 】。 A) 函数 B) 语句 C) 字符 D) 程序行 2. 下列四个叙述中,正确的是【 】 A)在C程序中,主函数必须位于其他函数的最前面 B)在C程序中,一行只能写一条语句 C)C程序的基本结构是程序行 D)C语句是完成程序功能的最小单位 3. C语言规定,在一个C程序中,main()函数的位置是【 】 A) 必须在开始 B) 必须在最后 C) 可以任意 D) 必须在系统调用的库函数之后 4. 以下叙述中,正确的是【 】 。 A) C语言程序总是从第一个定义的函数开始执行 . B) C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分 5. 在C语言提供的合法的关键字是【 】 A) switch B) cher C) Case D) FLOAT 6. 以下用户标识符,其中合法的是【 】 A) For B) 4d C) f2.G3 D) _f#
A)4 B) –4 C) 1 D) 0 7. 设int a,b;则表达式a=2,b=++a*2的值为【 】。 A)6 B) 4 C) 8 D) 2 8. 列四组数据类型中,C语言允许的一组是【 】 A) 整型、实型、逻辑型,双精度型 B) 整型、实型、字符型,无值类型 C) 整型、双精度型、布尔型,无值类型 D) 整型、实型、复型、字符型 9. 以下能正确定义变量a, b和c并为它们赋值的语句是【 】 A) int a=5; b=5; c=5; B) int a,b,c=5; C) a=5,b=5,c=5; D) int a=5, b=5, c=5; 10. C语言所提供的五种基本数据类型包括:字符型、整型、双精度 型、浮点型和【 】。 A) 指针型 B) 结构型 C) 数组型 D) 无值类型 11. 设变量a为整型,f为实型,i为双精度型,则表达式10+‘a’+i*f 的 数据类型是【 】。 A) int型 B) float 型 C) double型 D) 不确定 12. 若有定义: int x=3, y=2; float a=2.5, b=3.5; 则表达式 (x+y)%2+(int)a/(int)b的值是【 】。 A) 0 B) 2 C) 1.5 D) 1 13. 若d为double型, 表达式 d=1, d+5, d++ 的值是【 】。 A) 1 B) 6.0 C) 2.0 D) 1.0 14. 设int a=1, d=4;float b=2.0, c=3.0, 则表达式: a+b*c-d%2 的值 是【 】。 A) 5 B) 6 C) 5.0 D) 6.0 15. 下列运算符中,优先级最高的是【 】。 A) * B) ++ C) + D) /= 16. 若希望当整型变量A的值为5时, 表达式的值为1, 则下面不能满足 要求的表达式是【 】。 A) A/2-1 B) A%2 C)(A-2)/2 D) (A+3)%2 17. a、b均为整数, 且b≠0, 则表达式 a/b*b+a%b的值是【 】。 A) a B) b C) a被b除的余数部分 D) a被b除商的整数部 分 18. 设x、y、z、s均为int型变量,且初值均为1,则执行语句s=(++x)+ (++y)-(++z);后, s的值为【 】。
C语言第四章程序控制结构复习题
C语言第四章程序控制结构复习题选择结构程序设计复习题一.选择题1.已有定义语句:int x=3,y=4,z=5;,则值为0的表达式是:()a) x>y++ b) x<=++y c) x !=y+z>y-z d) y%z>=y-z 2.已有定义语句:int x=3,y=0,z=0;,则值为0的表达式是:()a) x&&y b) x||z c) x ||z+2&&y-z d) !((x<y)&& !z||y)<="" bdsfid="66" p=""></y)&&>3. x为奇数时值为“真”,x为偶数时值为“假”的表达式是:()a) !(x%2==1) b) x%2==0 c) x%2 d) !(x%2)4. 已有定义语句:int a=3,b=4;,则执行下述表达式后,变量b 的值是:()(a++==4)&&(b++==5)a) 3 b) 4 c) 5 d) 65. 已有定义语句:int a=4,b=6;,则执行下述表达式后,变量b 的值是:()(a++==4)||(b++==6)a) 4 b) 5 c) 6 d) 76. 已有定义语句:int x=6,y=4,z=5;,执行以下语句后,能正确表示x,y,z值的选项是:()if(xa) x=4,y=5,z=6b) x=4,y=6,z=6c) x=4,y=5,z=5d) x=5,y=6,z=47. 以下程序的运行结果是:()main(){ int i=0;if(i==0) printf(“**”);else printf(“$”); printf(“*\n”);}a) * b) $* c) ** d) ***8. 若变量a,b,c都为整型,且a=1、b=15、c=0,则表达式a==b>c的值是()a) 0 b) 非零c) “真”d) 19. a为0时,值为“真”的表达式是()a) a b) !(++a) c) a=0 d) a==010. 若有定义和语句:int a=4,b=5,c=0d; d=!a&&!b||!c;,则d 的值是()a) 0 b) 1 c) -1 d) 非0的数11. 以下选项不能正确判断a为偶数的表达式是()a) a%2==0 b) !a%2!=0c) a/2*2-a==0 d) !(a%2)12. 有以下程序:main(){ int a=2,b=1,c=2;if(b<a)< bdsfid="99" p=""></a)<>if(b<0) c=0,c++;b++;printf(“b=%d,c=%d\n”,b,c);}程序的输出结果是:()a) b=1,c=2 b) b=1,c=0c) b=2,c=2 d) b=1,c=113. 有以下程序:main(){ int n;scanf(“%d”,&n);if(n++<5) printf(“%X\n”,n);else printf(“%X\n”,n--);}若执行程序时从键盘上输入9,则输出结果是:()a) 11 b) A c) 9 d) 814. 有以下程序:main(){ int m=5;if(++m>5)if(m++>5) printf(“%d\n”,m+5); else printf(“%d\n”,m--);else printf(“%d\n”,--m);}程序的输出结果是:()a) 8 b) 5 c) 10 d) 1215. 有以下程序:main(){ float x=2.0,y;if(x<0.0) y=0.0;else if(x<5.0)&&(!x)) y=1.0/(x+2.0); else if(x<10.0) y=1.0/x;else y=1.0;printf(“%f\n”,y);}程序的输出结果是:()a) 0.000000 b) 0.250000c) 0.500000d) 1.00000016. 假设所有变量均已正确说明:a=b=c=0; x=35;if(!a) x--;else if(b) ; if(c) x=3;else x=4;以上程序段运行后,x的值是:()a) 34 b) 35 c) 4 d) 317. 当a=1、b=3、c=5、d=4时,执行下面一段程序:if(a<b)< bdsfid="147" p=""></b)<>if(celseif(a<c)< bdsfid="152" p=""></c)<>if(belse x=3;else x=6;else x=7;以上程序段运行后,x的值是:()a) 1 b) 2 c) 3 d) 618. 执行以下程序:main(){ int s,t,a,b;scanf(“%d,%d”,&a,&b);s=1;t=1;if(a>0) s=s+1;if(a>b) t=s+t;else if(a==b) t=5;else t=2*s;printf(“t=%d\n”,t);}要使输出结果为:t=4,给a和b输入的值应满足的条件是:()a) a>b b) a<b<a a>b</b19. 以下程序的输出结果是:()main(){ int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b ?(a>c ? a:c) : (b));}a) 5 b) 4 c) 6 d) 不确定20. 若有定义语句:int x=3,y=2,z=1; 则以下表达式的值是:()z*=(x>y ? ++x :y++)a) 0 b) 1 c) 4 d) 321. 有以下程序:main(){ int a=15,b=21,m=0;switch(a%3){ case 0: m++;break;case 1: m++;switch(b%2){ default: m++;case 0: m++;break;}}printf(“%d\n”,m);}程序的输出结果是:()a) 1 b) 2 c) 3 d) 422.以下while循环中,循环体执行的次数是:()k=1;while (--k) k=10;a) 10次b) 无限次c) 一次也不执行d) 1次23.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=0;while (!x!=0) x++;a) 退出while循环后,x的值为0b) 退出while循环后,x的值为1c) while的控制表达式是非法的d) while循环执行无限次24. 有以下程序段,其中n为整型变量,执行后输出结果是:()while(n--) ; printf(“%d”,n) ;a) 2 b) 10 c) -1 d) 025. 有以下程序段,其中t为整型变量,以下选项中叙述正确的是:()t=1;while (-1){ t--;if(t) break;}a) 循环一次也不执行b) 循环执行一次c) 循环控制表达式(-1)不合法d) 循环执行2次26. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=-1;do{;}while (x++);printf(“x=%d”,x);a) 该循环没有循环体,程序错误b) 输出x=1c) 输出x=0d) 输出x=-127. 有以下程序段,其中x,y为整型变量,程序输出结果是:()for(x=0,y=0;(x<=1)&&(y=1);x++,y--) ;printf(“x=%d,y=%d”,x,y);a) x=2,y=0 b) x=1,y=0c) x=1,y=1 d) x=0,y=028. 有以下程序:{ int x=0,y=0;while(x<5&&++y) y--,x++; printf(“%d,%d”,y,x);}程序的输出结果是:()a) 0,5 b) 1,5 c) 0,4 d) 1,429. 有以下程序:main(){ int num=0;do{ num++ ;printf(“%d\n”,num); } while(num<=2);}程序的输出结果是:()a) 1 b) 1c) 1 d) 12 2 23 3430. 有以下程序:main(){ int x=3;do{ printf(“%d”,x-=2); }while(!(--x));}程序的输出结果是:()a) 1 b) 3 0 c) 1 -2 d) 死循环31. 有以下程序:main(){ int y=10;do { y--; } while(--y);printf(“%d\n”,y--);}程序的输出结果是:()a) 1 b) -1 c) 8 d) 032. 有以下程序:main(){ int x=3,y;do{ y=--x;if( !y) printf(“x”) ;else printf(“y”) ;} while(x);}程序的输出结果是:()a) xyx b) yyx c) yxx d) yxy33. 有以下程序段,此处do-while循环的结束条件是:()int n=0,p;do {scanf(“%d”,&p);n++;} while (p!=12345&&n<3);a) p的值不等于12345并且n的值小于3b) p的值等于12345并且n的值大于等于3c) p的值不等于12345或者n的值小于3d) p的值等于12345或者n的值大于等于334. 有以下程序:main(){ int a,b,t;for(a=3,b=0 ;!a==b ;a--,b++)if(a>b) { t=a;a=b;b=t;}printf(“%d,%d\n”,a,b);程序的输出结果是:()a) 4,1 b) 1,4 c) 4,-1 d) -1,435. 有以下程序:main(){ int x=3,y=0;do{ while( !y) y=-x;} while(x--);printf(“%d,%d\n”,x,y);}程序的输出结果是:()a) -1,3 b) -1,-3c) 0,0 d) 1,-336. 有以下程序:main(){ int m,n;printf(“Enter m,n:”) ; scanf(“%d%d”,&m,&n); while(m!=n){while(m>n) m-=n;while(n>m) n-=m;}printf(“m=%d\n”,m);}程序的输出结果是:()a) m=3 b) m=2 c) m=1 d) m=037. 有以下程序:main(){ int i,s=1;for(i=1 ;i<=50 ;i++)if( !(i%5)&& !(i%3)) s+=i;printf(“%d\n”,s);程序的输出结果是:()a) 409 b) 277 c) 1 d) 9138. 有以下程序:main(){ int x=0,y=0,i;for(i=1 ; ;++i){ if(i%2==0) {x++ ;continue ;} if(i%5==0) {y++ ;break ;}}printf(“%d,%d”,x,y);}程序的输出结果是:()a) 2,1 b) 2,2 c) 2,5 d) 5,239. 有以下程序:main(){ int i=0,a=0;while(i<30){for(;;){if((i%10)==0) break;else i--;}i+=11; a+=i;}printf(“%d\n”,a);}程序的输出结果是:()a) 66 b) 63 c) 33 d) 3240. 有以下程序:main(){ int a,b;for(a=1,b=1 ;a<=100 ;a++){ if(b>=10) break;if(b%3==1){ b+=3; continue; }}printf(“%d\n”,a);}程序的输出结果是:()a) 101 b) 6 c) 5 d) 441. 有以下程序:main(){ int i=0;for(i+=3 ;i<=5 ;i=i+2)switch(i%5){ case 0: printf(“*”);case 1: printf(“#”); break;default: printf(“!”); break;case 2: printf(“&”);}}程序的输出结果是:()a) *# b) !& c) !*# d) *#*二.填空题1.设y是int型变量,请写出当y是奇数时值为1的关系表达式_ y%2 或y%2==0 或y%2!=0_.2. 表示“整数x的绝对值大于5”时值为“真”的C语言表达式是__ x>5||x<-5__.3. 若x为int类型,请以最简单的形式写出与!x等价的C语言表达式___ x==0__.4. 设x,y,z,t均为int型变量,则执行下述语句后,x的值是__4__,y的值是__3__,z的值是__4__,t的值是__1__。
第3章C语言程序的控制结构
延时功能。
第3章 C语言程序的控制结构 3.2.4 注释行 注释行的一般形式如下: /*注释内容*/ 其中,注释内容是对程序段或程序行的注释说明。注释行可以 作为单独的一行出现在程序中, 也可以出现在某个语句之后。
第3章 C语言程序的控制结构 例3.1 少只。 已知鸡兔总头数为h,总脚数为f,求鸡兔各有多
v=3.14*r*r*h/3; printf("v=%f\n",v);
}
第3章 C语言程序的控制结构
3.3 分支结构
3.3.1 关系运算符和关系表达式 所谓关系运算实际上是比较运算。关系运算将两个数值进 行比较,并判断比较的结果是否符合规定的条件。
第3章 C语言程序的控制结构 表 3-1 关系运算符
↑↑ ↑↑↑ ↑
① ⑤ ⑥④③ ② 该表达式的值为1。 运算顺序为圆圈内数字标明的优先顺序。
第3章 C语言程序的控制结构
实际上,逻辑运算符两侧的不等式,不但可以是0和1,
或者是0和非0的整数,也可以是任何类型的数据。例如,可以 是字符型、 实型或指针型等。系统最终以0或非0来判断它们 属于“真”或“假”。 例如: ′a′&&′b′ 该逻辑表达式的值为1。 因为′a′和′b′的ASCII码均不为0。
第3章 C语言程序的控制结构
(b>a)==c
为真, 表达式的值为1, 因为b>a的值为1
(真),等于c的值; a>b+c 为假,表达式的值为0。
如果有以下赋值表达式,则 d=a>b e=a<b<c d的值为0; e的值为0,因为a<b的值为1, 而1不小于c;
C++作业2-控制结构
一、判断题(每小题2分,共20分)1.switch结构case语句后的多个语句必须放在花括号中。
答案:F。
2.要在if选择结构体中包括多条语句,就要把这些语句放在花括号中。
复合语句可以放在程序中出现单个语句的任何地方。
答案:T3.空语句就是在正常语句出现的地方放一个分号(;),表示不采取任何操作。
答案:T4.do/while重复结构执行循环体之后再测试循环条件,因此,do/while结构至少执行循环体一次。
答案:T5. break语句在while、for和do/while结构中执行时,将使程序立即退出这些结构。
答案:T6.大多数程序中,每个case面的语句之后要包括一个break语句。
几个case可以不执行相同语句。
答案:F7.continue语句用于循环语句中,并不终止本层循环,而只是绕过本次循环。
答案:T8.如果表达式x>y为true或a<b为true,则表达式(x>y&&a<b)为true。
答案:F9.for重复结构处理计数器控制循环的所有细节。
for结构的一般格式如下: for(expression1, expression2, expression3)statement其中expression1初始化循环控制变量,expression2是循环条件,expression3递增控制变量。
答案:F10.goto语句只能从循环体内跳到循环体外,不能从循环体外跳到循环体内。
答案:T二、选择题(每题3分,共45分)1.若k为整型,以下while循环体中的语句执行( )。
k=2;while(k=0){cout<<k;k--;cout<<" ";}A.无限次B.0次C.1次D.2次答案:B2.在下列选项中,会构成死循环的是( )。
A. int i=100;B. for(;;);C. int k=10000;D. int s=36;答案:B3.为了避免在嵌套的条件语句if…else中产生二义性,C++规定else子句总是与()配对。
C++(练习)第2章,程序控制结构
一,单选题1. 有如下语句序列:int k=0;do{k+=5;cout<<'$';}while(k<19);while(k-->0)cout <<'*';执行上面的语句序列输出字符“$”和“*”的个数分别是()。
A 4和20B 5和20C 4和21D 5和21参考答案A2. 循环体被至少执行一次的循环语句为_______。
A whileB forC do ...whileD 多重循环参考答案C3. 有如下程序:int x=3;do{x-=2;cout<<x;} while(!(--x));执行这个程序的输出结果是()。
A 1B 3 0C 1-2D 死循环参考答案C4. 有如下程序段:int i=1;while(1){ i++;if (i%3==0) cout<<"*";}执行这个程序段输出字符*的个数是( )。
A 1B 2C 3D 4参考答案C5. 以下为死循环的程序段是()。
Afor ( int x=0; x<3; x-- )x+=2;Bint k = 0;do{ ++k; } while ( k>=0 );Cint a = 5;while ( a ){ a--; }Dint i = 3;for ( ; i; i-- );参考答案B6. C++语言的跳转语句中,对于break和continue说法正确的是__________。
A break语句只应用于循环体中B continue语句只应用于循环体中C break是无条件跳转语句,continue不是D break和continue的跳转范围不够明确,容易产生问题参考答案B7. 有如下程序段:int i=1;while(1){ i++;if (i%3==0) cout<<"*";}执行这个程序段输出字符*的个数是( )。
(3)程序控制结构(选择结构)-田媚
17
例:设1990年我国工业产值是100,如果每年以7.4% 的速度增长,求20年后我国的工业产值是多少?
1.
分析:计算产值的公式是:
p1=p0(1+r)n 其中:p1为n年后的产值,p0为初始值, r为增长率,n 为年数。
2. 3.
安排计算步骤 写出完整的程序
18
5
6ቤተ መጻሕፍቲ ባይዱ
1
主 函数一个C 1. 一个 C 程序必须有一个_____
二、填空:
主 函数开始执行。 程序必定从______
7
8
2. C 语言中的标识符可分为
用户标识符 关键字 、______________ _______
3. C 语言程序中的数据,在计算机内存储器中
位 ,其中只能存 最小的存储单位称为______
if
if 语句
if–else else–if
if(表达式)语句; if (表达式)语句; if(表达式)语句1 if(表达式)语句 1; else 语句2 语句2; if(表达式1 if(表达式 1)语句 )语句1 1; else if(表达式 if(表达式2 2)语句 )语句2 2; … else if(表达式 if(表达式m m)语句 )语句m m; else 语句 n; 36
23
一、关系运算符和关系表达式
关系表达式概念:
用关系运算符将两个表达式(可以是算术 用关系运算符将两个表达式 (可以是算术 表达式、关系表达式、赋值表达式或逻辑表达 式)连接起来的式子,称为关系表达式。 式) 连接起来的式子,称为关系表达式。
关系表达式 逻辑表达式
关系运算符:
< <= > >=
C程序设计复习资料(含答案)
C程序设计复习资料(含答案)C程序设计复习要点第一章概述1.C程序的构成与结构特点2.C程序上机调试过程与流程第二章数据类型、运算量与表达式1.数据类型的种类(基本数据类型和构造数据类型)2.常量的数据类型及其表示(表示方法、存储字节数与表数范围)——整、实、字符、字符串和转义字符3.变量的命名、定义方法与赋初值4.各种表达式及其运算规则——优先级、结合性、类型自动转换与强制转换●算术运算符、表达式及其构造(注意“/”和“%”特殊性)●自增、自减运算符及其简单表达式运算●赋值运算符及其表达式(注意复合赋值运算符的运算方法)●逗号运算符及其表达式第三章流程控制1.赋值语句的一般形式、赋值过程及赋值规则(注意左右数据类型的一致或兼容)2.输入和输出函数的格式、功能及用法(只要求常用的格式控制符d, f, c, s),提醒注意:●格式输出中域宽和小数位数的控制●格式输入与输出中普通字符的原样输入和输出问题●熟悉并区别以下函数:putchar()、printf()、puts();getchar()、scanf()、gets()3.关系运算符及其表达式、逻辑运算符及其表达式和条件运算符及其表达式的运算规则(优先级、结合性)4.关系表达式与逻辑表达式的构造(根据已知条件写表达式)5.if语句的三种形式:if …语句、if …else …语句、if 语句的嵌套●if 语句的格式与用法:简单if、嵌套if、并列if●逻辑关系与执行过程●嵌套规则(重点掌握if …else …if …else …if …else)6.switch语句的格式与用法7.*熟练使用if和switch语句阅读和编写较为简单的选择结构程序8.三种循环语句:while() …、do …while()、for()的格式、执行过程及其用法●循环变量初始化、循环条件构造、循环体所要实现的任务和控制变量修改注意循环期间与结束时循环控制变量的取值问题9.结合例题理解和区别break与continue语句的作用及其用法10.本章涉及的主要算法:累加(计数)、累乘、递推、穷举、判素数、求最大公约与最小公倍等11.*熟练使用三种循环语句并结合以上算法阅读和编写较为简单的循环结构及其嵌套程序第四章复杂数据类型1.一维、二维数组的定义、初始化及其引用方法(数据输入、输出、存储与处理)2.字符数组的定义、初始化及其引用(字符串输入、输出、存储与处理)3.常用字符串处理函数:gets()、puts()、strlen()、strcmp()、strcpy()4.数组涉及的主要算法:排序、极值、逆序、回文和字符串的连接、复制、求长度等5.*熟练使用数组并结合以上算法阅读和编写较为简单的程序6.指针的概念:指针、指针变量、指针运算(*、&、++、--、+、-)7.变量、数组和字符串指针的定义、指向与引用(仅限于一维数组)8.了解指针数组与二级指针的概念和定义9.*能够阅读并理解使用指针进行数据处理的相关程序(极值、逆序、回文和字符串的连接、复制、求长度等)10.结构体与共用体的概念、定义与引用(仅限概念)第五章结构化程序设计与应用1.熟悉程序的三种基本结构:顺序、选择和循环2.*通过其中部分例题掌握选择、循环语句的使用以及循环和数组涉及的主要算法第六章函数与编译预处理1.掌握函数的定义、声明和调用方法及参数传递方式2.*结合相关例题掌握一般函数和递归函数的定义与使用3.熟悉局部变量与全局变量的定义及作用范围,了解各种静态与动态变量的定义、作用范围与生存期4.了解内部函数与外部函数的定义及调用规则5.掌握宏定义与宏展开(重点掌握带参数宏的定义与展开)6.了解文件包含的作用及其使用场合第七章文件1.了解文件的概念2.熟悉文件打开、关闭及各种与文件读写有关函数的格式与用法特别提醒:以上带*部分主要涉及程序阅读、程序填空和编写程序,其余部分主要以选择和概念填空题出现3ae bc C语言程序设计参考题型说明:★本题仅反映考试的题型,作为考前复习参考。
C语言程序控制结构资料
scanf("%d,%d", &num1, &num2);
sum=(float)num1+num2; /*求累计和*/
aver=sum/2.0;
/*求平均值*/
printf("sum=%.0f, aver=%.2f\n", sum,
aver);
}
运行情况:
30000,5005
sum=35005, aver= 17502.50
C语句:以“;”作结束符,编译后产生机器指令。 C语句分类:
表达式语句 空语句 控制语句 复合语句
3
4.1.1表达式语句
表达式语句是在表达式的末尾加上分号构成的语句。
z=x+sin(y);
如:
a-=a*a;
赋值语句
printf("This is a C
i++;
自增1语句
statement.");
运行情况:
输入: a=1, b=3, c=2 输出: x1=-1.00
x2=-2.00
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q; x2=p-q;
printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2);
x=0,y=1;
逗号表达式语句 func(a,5);
x+y;
无意义
y=max(a,b);
printf(“This is a C program.\n”); 函数调用语句
第4章 控制结构习题(含答案及解析)
第4章控制结构习题一、选择题。
1.关于程序设计所要求的基本结构,以下选项中描述错误的是( )A)循环结构B)分支结构C)goto 跳转D)顺序结构正确答案: C解析:为了表示更复杂的处理逻辑,在Python程序中存在三种基本结构,它们分别是:顺序结构;分支结构;循环结构。
2.下面代码的输出结果是for s in “HelloWorld”:if s==“W”:continueprint(s,end="")A)HelloB)WorldC)HelloWorldD)Helloorld正确答案: D解析:Python通过保留字for实现“遍历循环”,for语句的循环执行次数是由遍历结构体中元素的个数确定的。
遍历循环可以理解为从要遍历的结构中逐一提取元素,并赋值给循环变量,对于所提取的每个元素执行一次循环体。
Python 提供了两个保留字:break和continue,用来辅助控制循环执行。
continue语句只结束本次循环,而不终止整个循环的执行。
3.关于Python循环结构,以下选项中描述错误的是()A)遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range()函数等。
B)break用来跳出最内层for或者while循环,脱离该循环后程序从循环代码后继续执行C)每个continue语句只有能力跳出当前层次的循环D)Python通过for、while等保留字提供遍历循环和无限循环结构正确答案: C解析:continue用来结束当前当次循环,但不跳出当前循环;每个break语句只有能力跳出当前层次的循环。
4.以下程序的输出结果是:()for i in "CHINA":for k in range(2):print(i, end="")if i == 'N':breakA)CCHHIINNAAB)CCHHIIAAC)CCHHIAAD)CCHHIINAA正确答案: D解析:每个break语句只有能力跳出当前层次的循环。
《C++控制结构》习题
《C++控制结构》习题学号姓名一、选择题1、若有整型变量x的当前值是3,则执行下列语句的结果是________________docout<<(x-=2);while(!(-x));A. 输出值0B. 输出值1C. 输出值3和0D. 陷入死循环2、在while(!a)中,其中!a与表达式________________等价A.a==0 B.a==1 C.a!=1 D.a!=03、int I=10,执行下列语句后I的值为________________switch(I){ case 9: I+=1;case 10: I+=1;case 11: I+=1;default: I+=1;}A. 10B. 11C. 12D. 134、对下面三条语句,正确的论断是________________(1)if(a)s1;else s2;(2)if(a==0)s2;else s1;(3)if(a!=0)s1;else s2;A.三者相互等价B.三者相互不等价C.只有(2)和(3)等价D.以上三咱说法都不正确5、设有程序段int x=10; while (x=0) x=x-1;则下面描述中正确的________________A.while 循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句只执行一次二、阅读理解题1、写出下列代码运行后的结果_______________int i, j;for(i=-3; i<=1; i++){j = i;while( j < 0 ){if(j == -1) break;j++;}}cout<<i<<'\t'<<j<<endl;2、下面程序的执行中共输出_______________个数,最后一个输出的数是_______________int y=9;for( ; y>0; y--)if(y%3==0)cout<< --y<<’\t’;3、运行下列代码并回答问题。
第2章 程序的控制结构(习题答案及解析)
习题2 参考答案一、选择题2.1 A 分析:算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。D选项的值为真,即1。2.2 C 分析:B选项和A选项中,对于逻辑表达式,其中b的值不会因为表达式的结果发生改变;D选项中,关系运算符的结果有"真"和"假"两种。
2.3 A 分析:!与==运算,!的优先级高于==,即等价于(!a)==0。
如果a≠0,则表达式为真,否则表达式为假。
2.4 A 分析:选项B中,x既要取值1~6,又要取值-6~-1,这是不可能的,所以选项B表达式的值始终为假,选项B错误;选项C无论x取何值,表达式的值始终为真;选项D中当x=-2时,表达式的值为假,选项D错误;选项A中,仅当x的绝对值在1~6内表达式的值才为真。
2.5 D 分析:if语句中的表达式可以是任意合法的数值,如常量,变量表达式。2.6 C 分析:A,B,D选项的含义均为:a的值如果为0时打印y的值,否则打印x的值。但是C选项的含义是:a的值为0时打印x的值,不为0时打印y的值,与其他选项正好相反。2.7 C 分析:本题中if(a=1)b=1;与else d=3;之间多了语句c=2;所以会出现else语句的位置错误的编译失败提示。
2.8 A 分析:当math≥60,没有输出pass,同时当math<60,engl≥60,程序输出pass,这些案例都是与题目的原意不符合的,因此选项A错误。
选项B、C、D,都可以正确输出。
2.9 B 分析:case常量表达式只是起语句标号作用,并不是该处进行条件判断。
在执行switch语句时,根据switch的表达式,找到与之匹配的case语句,就从此case子句执行下去,不在进行判断,直到碰到break 或函数结束为止。
所以执行内层switch(y)时只执行了a++,此时a的值为1。
《C++控制结构》习题参考答案
《C++控制结构》习题学号姓名一、选择题1、若有整型变量x的当前值是3,则执行下列语句的结果是__B______________docout<<(x-=2);while(!(-x));A. 输出值0B. 输出值1C. 输出值3和0D. 陷入死循环2、在while(!a)中,其中!a与表达式_____A___________等价A.a==0 B.a==1 C.a!=1 D.a!=03、int I=10,执行下列语句后I的值为___D_____________switch(I){ case 9: I+=1;case 10: I+=1;case 11: I+=1;default: I+=1;}A. 10B. 11C. 12D. 134、对下面三条语句,正确的论断是______A__________(1)if(a)s1;else s2;(2)if(a==0)s2;else s1;(3)if(a!=0)s1;else s2;A.三者相互等价B.三者相互不等价C.只有(2)和(3)等价D.以上三咱说法都不正确5、设有程序段int x=10; while (x=0) x=x-1;则下面描述中正确的___C__________A.while 循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句只执行一次二、阅读理解题1、写出下列代码运行后的结果___2________1____int i, j;for(i=-3; i<=1; i++){j = i;while( j < 0 ){if(j == -1) break;j++;}}cout<<i<<'\t'<<j<<endl;2、下面程序的执行中共输出______3_________个数,最后一个输出的数是_____2__________int y=9;for( ; y>0; y--)if(y%3==0)cout<< --y<<’\t’;3、运行下列代码并回答问题。
第3章 C语言程序的控制结构(2)
特点是:先判断表达式,后执行循环体语句。
例3.19 用while语句,求 1+2+3+……+99+100
分析:本题的关键是定义循环 的判断条件,实现100个自然 数求和。定义一个变量i,从1 开始,每循环一次加上1,直 到i>100为止;再定义一个变 量sum存放总和,将其清零, 然后,每循环一次加上一个自 然数到总和中。 流程图如图所示。
程序运行时,输出结果为: Enter a nonnegative integer:60↙ The number has 2 digit(s).
思考:如果用相似的while循环替换 do…while循环会发生什么?当n初始值为0 时,结果会一样吗?
3.6.3
for语句
for语句是C语言循环结构中功能最为强大、应用最 为灵活、最为广泛的一种形式,它不仅适用于循 环次数确定的情况,也适用于循环次数未知的情 况。while语句和do…while语句循环均可转换成 for循环 <stdio.h> main( ) { int i=1,sum=0; while (i<=100) { sum=sum+i; i++; } printf(“%d\n”,sum); }
例3.20
从键盘输入一个正整数, 计算其阶乘。
分析:本题的题意是要求n!,其中n从键盘 输入。利用while语句实现循环时,关键是 定义循环终止的条件,可以定义一个循环 变量i,i从1开始,每循环一次加上1,直到 i>n终止,while语句的表达式为i<=n;再 定义一个变量sum存放阶乘积,令sum的 初值为1(思考:为什么不能为0?),每 循环一次乘以一个i。
大学计算机C语言程序的控制结构共29页
56、极端的法规,就是极端的不公。 ——西 塞罗 57、法律一旦成为人们的需要,人们 就不再 配享受 自由了 。—— 毕达哥 拉斯 58、法律规定的惩罚不是为了私人的 利益, 而是为 了公共 的利益 ;一部 分靠有 害的强 制,一 部分靠 榜样的 效力。 ——格 老秀斯 59、假如没有法律他们会更快乐的话 ,那么 法律作 为一件 无用之 物自己 就会消 灭。— —洛克
谢谢!
60、人民的幸福是奢侈 。——CocoCha nel 62、少而好学,如日出之阳;壮而好学 ,如日 中之光 ;志而 好学, 如炳烛 之光。 ——刘 向 63、三军可夺帅也,匹夫不可夺志也。 ——孔 丘 64、人生就是学校。在那里,与其说好 的教师 是幸福 ,不如 说好的 教师是 不幸。 ——海 贝尔 65、接受挑战,就可以享受胜利的喜悦 。——杰纳勒 尔·乔治·S·巴顿
控制结构复习
注:当程序中存在嵌套的if-else结构时,每个else都与其前面最近的if配对, 由内层向外层依次处理;在写程序是if个数可以单数,但else个数不可以是 单数;为提高程序的易读性,在写if语句时,最好采用“锯齿”格式,即把 句子往后缩进几列;当所要表达的语句多余一条时,必须加{ }。
7
switch 语句
20
上机问题
上机注意事项
主函数main后需要加( );
return与0之间有空格 ‘’表示字符,“”表示显示在运行屏幕中的内容 cin表示输入,后面接>>;cout表示输出,后面接<< 表示1<x<100时,应写为x>1 &&x<100;表示x>10或x<5时,应写为 x>10 ||x<5 using namespace std是C++标准程序库中所有标识符定义的空间,使用 std命名空间,避免全局命名冲突 素数:又称素数。指在一个大于1的自然数中,除了1和此整数自身外, 没法被其他自然数整除的数 x=1代表将1赋值给x,x==1代表判断x的值是不是等于1 //表示注释,/n表示换行 在写do…while语句时,while后一定要加上“;” error C2018: unknown character ‘0xbb’这些错误都是指中文书写。 21
第3章程序控制结构习题(C语言程序设计)
第3章 程序控制结构
13、求标有/*******/语句的执行次数( C ) i y int y,i; 0 301 2 1 for i=0 i<20;i++ for(i=0;i<20;i++) { if(i%2==0) continue; if(i%2!=0) y+=i; /*******/ y+=i; } 奇数时语句执行
第3章 程序控制结构 10、 #include<stdio.h>
main(){ int d=0,a=2; float m,s=0; do{ a=2*a; m=0.8*a; s=s+m;
d++;
}while(a<=100); printf("%f\n\n",s/d); }
第3章 程序控制结构
有一数列:2/1,3/2,5/3,8/5,…,求前10项和
A. 20
B. 19 D. 9
√
C. 10
if(i%2=0) { } else y+=i;
第3章 程序控制结构
二、写出运行结果
第3章 程序控制结构
1. main(){
t
i 0 1 2 3 4 5
累乘公式n!=1*2*3*…
20 5 60 1 int t=1,i=5; 120
for(;i>0;i--) t*=i; (t=t*i;) for(i=1;i< n;i++) i-t=1*5; t=t*i; t=5*4; for(t=n;t>0;t++) printf(“%d\n”,t); t=20*3; y=y*t } t=60*2; 累加公式s=6+8+10+ t=120*1; for(i=6;i>n;i=i+2) s=s+i
程序控制结构习题C语言程序设计PPT文档33页
1、纪律是管理关系的形式。——阿法 纳西耶 夫 2、改革如果不讲纪律,就难以成功。
3、道德行为训练,不是通过语言影响 ,而是 让儿童 练习良 好道德 行为, 克服懒 惰、轻 率、不 守纪律 、颓废 等不良 行为。 4、学校没有纪律便如磨房里没有水。 ——夸 美纽斯
5、教导儿童服从真理、服从集体,养 成儿童 自觉的 纪律性 ,这是 儿童道 德教育 最重要 的部分 。—— 陈鹤琴
1、最灵繁的人也看不见自己的背脊。——非洲 2、最困难的事情就是认识自己。——希腊 3、有勇气承担命运这才是英雄好汉。——黑塞 4、与肝胆人共事,无字句处读书。——周恩来 5、阅读使人充实,会谈使人敏捷,写作使人精确。——培根
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void main() {
int x(1),a(0),b(0);
switch(x){
case 0:b++;
case 1:a++;
case 2:a++;b++;
}
cout<<”a=”<<a<<”,b=”<<b;
}
A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2
switch(a)
{case 0: switch(b)
{ case 0:cout<<”a=”<<a<<”b=”<<b<<endl; break;
case 1:cout<<”a=”<<a<<”b=”<<b<<endl; break;
}
case 1:a++; b++; cout<<"a= “<<a<<”b=”<<b<<endl;
}
}
a=0 b=1
a=1 b=2
4.3 #include <iostream.h>
void main()
{int i=1;
while(i<=10)
if(++i%3!=1)
continue;
else cout<<i<<endl;
}
4 7 10
4.4 #include<iostream.h>
void main()
{int i,j,x=0;
for(i=0;i<=3;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2) continue;
x++;
}
x++;
}
cout<<”x=”<<x<<endl;
}
x=16
5.编程题
5.1求100~200之间不能被3整除也不能被7整除的数。
#include<iostream>
2.2什么叫循环控制?归纳比较C++中各种循环控制语句的语法、循环条件和循环结束条件的表示形式及执行流程,比较其异同点。
2.3根据一个实际问题,用不同的循环语句编程,分析其优缺点。
3.选择题
3.1对if语句中的表达式的类型,下面描述正确的是(D)。
A.必须是关系表达式
B.必须是关系表达式或逻辑表达式
3.4已知int i=0,x=0;下面while语句执行时的循环次数为(D)。
while(!x && i<3) {x++;i++;}
A. 4 B.3 C.2 D.1
3.5以下形成死循环的程序段是(B )。
A. for(int x=0;x<3;){x++;};
B. int k=0; do{++k;} while(k>=0);
}emp;
下列对birth的正确赋值方法是( D)。
A.year=1980; month=5; day=1;
B.birth.year=1980; birth.month=5; birthday=1;
C.emp.year=1980; emp.month=5;emp.day=1;
D.emp.birth.year=1980; emp.birth.month=5;emp.birth.day=l;
using namespace std;
int main(){
int i ;
概念填空题
1.1任何算法的描述都可以分解为顺序结构、分支结构和循环结构。顺序结构的特点是各块按照书写次序依次执行。分支结构的特点是根据条件判断选择执行路径。循环结构用于实现重复性动作。根据算法的有穷性,循环必须在一定条件下进行,无条件必然会导致死循环。
1.2 switch语句执行流程是:①求表达式的值,其中表达式的值只能是整型、字符型、布尔型或枚举型等类型,而不能取实型这样的连续值;②在常量表达式中找与之相等的分支作为执行入口,并从该分支的语句序列开始执行下去,直到遇到break或switch的结束括号“}”为止;③当表达式的值与所有常量表达式的值均不相等时,若有default分支,则执行其语句序列;④若没有该分支,则结束switch语句,继续后续语句的执行;
1.4 C++中的文件有两个相互联系的概念:内部文件和外部文件。文件通常是指磁盘文件,这里称为外部文件;而在程序中运行的文件则称为内部文件,更正式的名称是文件流对象。程序中操作的是内部文件,最后保存的是外部文件。
2.简答题
2.1 C++中有什么形式的选择控制语句?归纳它们的语法形式、应用场合。根据一个实际问题使用不同的条件语句编程。
1.3 c++中提供了若干转向语句,可以改变程序原来的执行顺序。break语句只能用在switch语句和循环语句中,从该处跳出switch语句或循环语句,转去执行switch语句或循环语句之后的语句。continue语句只能用在循环中,程序执行到continue语句时,将跳过其后尚未执行的循环体语句,开始新的循环。return语句用在函数中,用来返回到函数调用处。
C.int a=5;while(a){a--;};
D.int i=3;结构变量emp定义为;
strnct Employee{
char name[20];
long code;
struct{
int year;int month;int day;
}birth;
void main()
{int a,b,c,d,x;
a=c=0; b=1;d=20;
if(a) d=d-10;
else if(!b)
if(!c)
x=15;
else x=25;
cout<<d<<endl;
}
20
4.2 #include <iostream.h>
void main()
{int a=0, b=1:
C.必须是关系表达式或算术表达式
D.可以是任意表达式
3.2与for(表达式1;表达式2;表达式3)功能相同的语句为(A)。
A.表达式1;B.表达式1;
while(表达式2){while(表达式2){
循环体;表达式3;
表达式3;}循环体;}
C.表达式1;D.do{
do{表达式1;
循环体;循环体;
表达式3;}while(表达式2);表达式3;} while(表达式2)
3.7下面的程序段循环执行了(A)次。
int k=10;
while (k=3) k=k-1;
A.死循环B.0次C.3次D.7次
3.8语句while(!E)中的表达式!E等价于(A)。
A.E==0B.E!=1C.E!=0D.E= =1
4.写出下列程序运行结果
4.1#include <iostream.h>