C语言循环习题答案
- 格式:doc
- 大小:33.00 KB
- 文档页数:11
c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。
b) 一个C程序中至少应包括一个 main函数。
c) 在C语言中,输出操作是有库函数 printf( )函数完成。
二、单选题1、A2、C3、B解析:第1题答案:A 。
因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。
且到main函数结束。
第2题答案:C 。
因为 main函数没有限制必须位于程序的最前面。
C程序书写自由,一行内可写几个语句。
在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。
不过C语言本身并没有输入输出语句,输入输出是由函数完成的。
第3题答案:B。
因为一个C语言程序是由若干个函数组成的。
但至少包含一个main 函数,且main函数的位置不限。
三、编程题1、编写一个输出“Welcome to C!”信息的小程序。
解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。
海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。
*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。
*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。
《C程序设计》复习题集第2章基础概念一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前定义正确答案: A以下说法正确的是A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: CC语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后正确答案: C以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面正确答案: D下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用正确答案: D以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符正确答案: D下列关于C语言的说法不正确的是A)C语言既具有高级语言的一切功能,也具有低级语言的一些功能B)C语言中的每一条执行语句都必须用分号结束,但分号不是C语言的一部分,是语句之间的分隔符号C)注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句正确答案: B以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每一种高级语言都有它对应的编译程序正确答案: CC语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-while D)if,for,continue正确答案: A第3章数据类型运算符与表达式一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的)C语言提供的基本数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: BC语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符正确答案: C下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof正确答案: B下面四个选项中,均是不正确的8进制数或16进制数的选项是A)016 0x8f 018 B)0abc 017 0xaC)010 -0x11 0x16 D)0a12 7ff -123正确答案: D下列数据中,不合法的C语言实型数据的是A) B)123e3 C) D)正确答案: C若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A有字符串如下,"\n\\\407as1\"\xabc",则字符串的长度为A)6 B)7 C)8 D)9正确答案: DC语言中运算对象必须是整型的运算符是A)%= B)/ C)= D)<=正确答案: A若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b正确答案: B若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1 B)++i; C)a=a++=5; D)a=int(i);正确答案: B若有定义:int a=7;float x=,y=;则表达式x+a%3*(int)(x+y)%2/4的值是A) B) C) D)正确答案: A若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是A)sizeof,&=,<<,^ B)sizeof,<<,^,&= C)^,<<,sizeof,&= D)<<,^,&=,sizeof正确答案: B以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案: D已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为A)2 B)3 C)4 D)5正确答案: C设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为A)int B)float C)double D)不确定正确答案: C在C语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII码正确答案: D字符型数据在机器中是用ASCII码表示的,字符’5’和’7’在机器中表示为A)和 01110111 B)01000101和01100011C)00110101和00110111 D)01100101和01100111正确答案: C不能进行++和- -运算的数据类型为A)指针B)整型C)长整型D)常量正确答案: D设有int x=11;则表达式(x++*1/3)的值是A)3 B)4 C)11 D)12以下程序的输出结果是main(){ int a=21,b=11;printf("%d\n",- -a+b,- -b+a);}A)30 B)31 C)32 D)33正确答案: A假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为A)17 B)16 C)15 D)14正确答案: C已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36 B)0 C)-24 D)-60正确答案: D设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)n=(n*100+/ B)m=n*100+,n=m/C)n=n*100+ D)n=(n/100+*正确答案: Bsizeof(float)是A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式正确答案: B下列关于字符串的说法中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志B)′\0′作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入′\0′D)在C语言中,字符串常量隐含处理成以′\0′结尾正确答案: B以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C 语言表达式是A)x/y*z B)x*(1/(y*z)) C)x/y*1/z D)x/y/z正确答案: A下列关于语句的说法错误的是A)复合语句是由“{”开头,由“}”结尾的B)复合语句在语法上视为一条语句C)复合语句内,可以有执行语句,不可以有定义语句部分D)C程序中的所有语句都必须由一个分号作为结束正确答案: C二、填空题以下程序的输出结果是【1】。
c语言程序设计课后习题及答案C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。
课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。
习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。
```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。
```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。
1.t为int类型,进入下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是( B )(A) 循环控制表达式的值为0 (B) 循环控制表达式的值为1(C) 循环控制表达式不合法(D) 以上说法都不对2.有以下程序main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是 ( D )。
(A) 自然数1~9的累加和 (B) 自然数1~10的累加和(C) 自然数1~9中的奇数之和 (D) 自然数1~10中的偶数之和3.以下程序段的输出结果是( C )。
int x=3;do{ printf("%3d",x-=2); }while(!(- -x));(A)1 (B)30 (C)1 -2 (D)死循环4.以下程序中,while循环的循环次数是( D)。
main(){ int i=0;while(i<10){ if(i<1) continue;if(i==5) break;i++;}......}(A) 1 (B) 10(C) 6 (D) 死循环,不能确定次数5.下面程序的输出是( B )。
(A)741 (B)852 (C)963 (D)875421main(){int y=9;for(;y>0;y--){if(y%3==0){printf("%d",--y);continue;}}}6.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是( A)。
for (i=5;i;i--)for(j=0;j<4;j++){...}(A)20 (B)25 (C)24 (D)307.执行语句: for(i=l;i++<4;;);后,变量i的值是(C)。
(A) 3 (B) 4 (C) 5 (D) 不定8.假定a和b为int型变量,则执行以下语句后b的值为( D )。
第五章习题答案一、选择题1) 有以下程序#include <stdio.h>main(){ int n=2,k=0;while(k++&&n++>2);printf("%d %d\n",k,n);}程序运行后的输出结果是A)0 2 B)1 3 C)5 7 D)1 22)有以下程序:main(){ int k=5;while(--k) printf("%d",k-=3);printf("\n");}执行后的输出结果是()。
A)1 B)2 C)4 D)死循环3)有以下程序#include<stdio.h>main(){int y=10;while(y--);printf(”y=%d\n”,y);}程序执行后的输出结果是A)y=0 B)y= -1 C)y=1 D)while构成无限循环4) 若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环5)有以下程序:main(){ int i;for(i=1;i<=40;i++){ if(i++%5==0)if(++i%8==0) printf("%d",i); }printf("\n");}执行后的输出结果是()。
A)5 B)24 C)32 D)406) 有以下程序#includes <stdio.h>main(){ int a=1,b=2;for(;a<8;a++) {b+=a; a+=2;}printf ("%d,%d\n",a,b);}程序运行后的输出结果是(A)9,18 (B)8,11 (C)7,11 (D)10,147) 有以下程序#include<stdio.h>main(){int y=9;for( ; y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)8754218) 一下程序段中的变量已正确定义for(i=0;i<4;i++,j++)for(k=1;k<3;k++); printf("*");程序段的输出结果是A)******** B)**** C)** D)*9) 有以下程序#iinclude <stdio.h>main(){ int i,j;for(i=3; i>=1; i--){ for (j=1;j<=2;j++) printf(“%d”,i+j);printf(“\n”);}}程序的运行结果是()A) 2 3 4 B) 4 3 2 C) 2 3 D) 4 53 4 5 5 4 3 3 4 3 44 5 2 3 答案:D 10)有以下程序main(){int i,j;for(i=1;i<4;i++){for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j);printf(“\n”);}}程序运行后的输出结果是A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=32*1=2 2*2=4 2*2=4 2*3=63*1=3 3*3=9C) 1*1=1 D) 1*1=11*2=2 2*2=4 2*1=2 2*2=41*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=911) 有以下程序#include<stdio.h>main(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)312) 有以下程序#include <stdio.h>main(){ int i=5;do{ if (i%3= =1)if (i%5= =2){printf(“*%d”,i); break; }i++;}while(i!=0);printf(“\n”);}程序的运行结果是A)*7 B)*3*5 C) *5 D)*2*6 答案:A13) 有以下程序#include <stdio.h>main(){ int c=0,k;for(k=1;k<3;k++)switch(k){ default:c+=k;case 2:c++;break;case 4:c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是A)3 B)5 C)7 D)914) 设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是A)n=0;while((ch=getchar())!='\n')n++;B)n=0;while(getchar()!='\n')n++;C)for(n=0;getchar()!='\n';n++);D)n=0;for(ch=getchar();ch!='\n';n++);15)有以下程序#includemain(){int a=1,b=2;while(a<6){b+=a;a+=2;b%二10;}printf(”%d,%d\n”,a,b);}程序运行后的输出结果是A)5,11 B)7,1 C)7,11 D)6,116) 要求通过while循环不断读入字符,当读入字母N时结束循环。
一、选择题1.设有程序段”int k=10;while(k=0)k=k-1;”,则下面叙述正确的是D 循环体语句一次也不执行2.设有程序段”int x=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);”则A 运行程序段后输出13.若有语句”int x=3;do{printf(“%d\n”,x-=2);}while(!(--x));”,则该程序段C 输出的是1和-24.下面循环语句中,错误的是D int a=1,b=2;do b--while(b= =0);5.已知”int i=5;”,下列do…while循环语句的循环次数为C 5do{printf(“%d\n”,i--);}while(i!=0);6.循环语句”for(int i=0,j=10;i=j=10;i++,j--)”的循环次数是D 无限7.循环语句”while(int i=0;)i--;”的循环次数是A 08.下述有关break语句的描述中,不正确的是C break语句用于if语句的内嵌语句内,它结束该if语句9.下面关于循环语句的描述中,错误的是B 循环体内必须同时出现break语句和continue语句10.以下不是死循环的是D for(;(c=getchar()!=’\n’);)printf(“%c”,c);11.执行语句”for(i=0;i++<3;);”后,变量i的值为C 412.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C 循环4次13.与语句”while(!x);”等价的语句是A while(x= =0);14.执行下列程序段后a的值为B 2int a=1,b=10;do{b-=a;a++;}while(b--<0)二、编程题1.读入用户输入的6个整数并显示其平均值。
#include<stdio.h>main(){float sum=0;int tmp;int i;for(i=0;i<6;i++){printf("输入第%d个数:",i+1);scanf("%d",&tmp);sum=sum+tmp;}printf("平均值是:%f",sum/6);}2.先读入一个正整数n,然后计算并显示前n个偶数的和。
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成二、数据类型、运算符与表达式选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为。
x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 522.下列四组选项中,均不是C语言关键字的选项是。
A) define IF type B) getc char printfC) include case scanf D) while go pow3.下列四组选项中,均是不合法的用户标识符的选项是。
(C语言标识符由字母,数字,下划线组成,开头不能是数字)A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP8.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为。
A) D B) 68 C) 不确定的值 D) C填空 1.若有以下定义,则计算表达式y+=y-=m*=y后的y值是【1】。
C 语言习题及解答1、输入一个华氏温度,要求输出摄氏温度。
公式为#include <stdio 。
h> void main ( ) {float C ,F;printf(”Input F :"); scanf ("%f”,&F ); C=5.0/9*(F-32); printf ("C=%.2f\n”,C);}2、编写程序,从键盘输入一个大写字母,将它转换为对应的小写字母后输出。
(提示:同一个字母的大写比小写小32)#include 〈stdio 。
h 〉 void main ( ) { char ch ;printf("Input ch:”); scanf("%c”,&ch); ch=ch+32;printf (“ch=%c\n",ch);}3、编写程序,输入梯形的上底、下底和高,计算并输出梯形的面积。
#include <stdio 。
h 〉void main ( ) { float a ,b,h ,area;printf (”Input a ,b ,h : ”); scanf(”%f%f%f", &a ,&b ,&h ); area=(a+b )*h/2;printf (”area=%.2f\n", area );}4、编写程序,输入圆半径r ,求圆周长、圆面积、圆球表面积、圆球体积. #include 〈stdio.h>#define PI 3.1415926 void main( ){float r,L ,s1,s2,V;printf (”Input r :"); scanf(”%f”, &r ); L=2*PI *r ; s1=PI*r*r ; s2=4*PI *r *r; V=4。
0/3*PI *r *r *r ;printf (”L=%.2f , s1=%.2f, s2=%。
C语言程序设计习题集东华理工大学2014.9基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。
A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。
A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。
A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。
A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。
A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。
A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。
int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。
A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。
A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。
y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。
A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。
printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。
循环习题集锦
一、 选择题
1、for(i=0;i〈10;i++);结束后,i的值是;(10)
A 9 B 10 C 11 D 12
2、下面程序的循环次数是:(D)
int k=0;
while(k<10)
{if(k<1) continue;
if(k==5) break;
k++;
}
A、 5 B 6 C 4 D 死循环,不能确定循环
次数
3、下面程序的输出结果是(10)
main()
{
int s,k;
for(s=1,k=2;k<5;k++)
s+=k;
printf(“%d\n",s);
}
A 1 B 9 C 10 D 15
4、要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)
for(i=0;i〈= ;)
printf(“%d\n”,i+=2);
A 9 B 10 C 18 D 20
5、运行下面程序:(B)
main()
{ int i=10,j=0;
do
{ j=j+i;
i——;
}while(i>5);
printf(“%d\n”,j);
}
输出结果是:
A 45 B 40 C 34 D 55
6、运行下面程序
#include “stdio、h”
main()
{ int k=0,a=1;
while(k〈10)
{
for( ; ;)
{ if((k%10)==0)
break;
else
k-—;
}
k+=11;
a+=k;
}
printf(“%d %d\n”,k,a);
}
则输出的结果是(C)
A 21 32 B 21 33 C 11 12 D 1
0 11
7、以下叙述正确的是:(D)
A、 do-——while语句构成的循环不能用其她语句构成的循环
来代替。
B、 do-——while语句构成的循环只能用break语句退出。
C、用do—--while语句构成的循环,在while 后的表达式为非
零时结束循环。
D、用do---while语句构成的循环,在while后的表达式为零时结束
循环。
8、有如下程序:
main()
{ int x=3;
do{
printf(“%d”,x--);
}while(!x);
}
该程序的执行结果是:(C)
A 3 2 1 B 2 1 0 C 3 D 2ﻩ
9、若k为整型变量,则下面while循环执行的次数为:(A)
k=10;
while(k==0) k=k—1;
A 0 B 1 C 10 D无限次
10、下面有关for循环的正确描述是(D)
A、for循环只能用于循环次数差不多确定的情况
B、for循环是先执行循环体语句,后判断表达式
C、在for循环中,不能用break语句跳出循环体。
D、for循环的循环体语句汇总,能够包罗多条语句,但必须用花括号
括起来。
11、对for(表达式1;;表达式3)可理解为(B)
A for(表达式1;0;表达式3)
B for(表达式1;1;表达式3)
C for(表达式1;表达式1;表达式3)
D for(表达式1表达式2;表达式3)
12、若i为整型变量,则以下循环执行的次数是(B)
for(i=2;i==0;)printf(“%d”,i—-);
A、无限次 B 0次 C 1次 D 2次
13、以下循环体的执行次数是;(B)
main()
{
int I,j;
for(i=0,j=3;i〈=j;i+=2,j-—)
printf(“%d\n",i);
}
A 3 B 2 C 1 D 0
14、执行以下程序后,输出结果是:(D)
main()
{ int y=10;
do { y--;}while(—-y);
printf(“%d",y--);
}
A -1 B 1 C 8 D 0
15 以下程序的输出结果是:(C)
mian()
{ int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b〉=10) break;
if(b%3==1) {b+=3; continue;}
}
printf(“%d”,a);
}
A 101 B 3 C 4 D 5
二、填空题
1、 循环的3个常见语句分不是?(for,while,do,break,continu
e)
2、 下面程序的运行结果为:(14,26)
main()
{int a=10,y=0;
do
{a+=2;y+=a;
if(y〉50) break;
}while(a<14);
printf(“a=%d,y=%d\n”,a,y);
}
3、从键盘输入1 2 3 4 5 —1 回车,则下面程序运行的结果
是:(14,—1)
main()
{ int n,k=0;
do
{ scanf(“%d”,&n);
k+=n;
}while(n!=-1);
printf(“k=%d,n=%d”,k,n);
}
4、下面程序的运行结果为:39 (——i= 1,i=2两次循环)
main()
{int i,j,s=0;
for(i=1,j=5;i〈j;i++,j—-)
s+=i*10+j;
printf(“\n%d”,s);
}
5、下面程序的运行结果是 19 (i=9,s=9;i=6,s=15;i=3,s=1
8)
main()
{
int i=10,s=0;
for(;--i;)
if(i%3==0)
s+=i;
s++;
printf(“\ns=%d",s);
}
6、下面程序的运行结果是 – 22222(n=4,s=22; n=4,s=22
2;n=2,s=2222;n=1,s=22222)
main()
{int a=2,n=5,s;
s=a;
for(;—-n;)
s=s*10+a;
printf(“%d”,s);
}
7、下面的程序运行时,循环体语句“a++”运行的次数为:10
main()
{int i,j,a=0;
for(i=0;i〈2;i++)
for(j=4;j〉=0;j——)
a++;
}
8、下面的程序运行后,a的值为:7
main()
{ int i,j,a=0;
for(i=0;i〈2;i++) a++;
for(j=4;j〉=0;j-—) a++;
}
9、下面程序的运行结果为:(8) -—(s=4,i=3;s=7,i=4;s=1
1,i=6;s=17,i=8)
int i=1,s=3;
do{
s+=i++;
if(s%7==0) continue;
else ++i;
}while(s〈15);
printf(“%d”,i);
10、当运行以下程序时,从键盘输入China# 回车,则下面程序的运
行结果是:5,5
#include “stdio、h”
main()
{ int v1=0,v2=0;
char c;
while((c=getchar())!=’#’)
{ switch(c)
{ case ‘a':
case ‘h':
default:v1++;
case ‘o':v2++;
}
}
printf(“%d,%d\n”,v1,v2);
}
三、改错题
1、 for(i—0,i<5,i++) j++;
2、 while(j<10); {j++;i=j;}
3、 do {j++;a=j;}while(j〈10)
4、 用下面程序来实现5!
int s=1,i=1;
while(i〈=5)
s*=i;
i++;
5、下面程序段实现求半径r=1到r=10的圆面积,直到面积大于10
0为止。
For(r=1;r<=10;r++)
{s=3、14*r*r;
if(s〉100) continue;
printf(“%f",s);
}
四、编程题
1、 求1-2+3—4+…+99—100。
2、 任意输入10个数,分不计算输出其中的正数与负数之与。
3、 计算1——-100以内的所有含6的数的与、
4
、
输出所有的3位水仙花数、所谓水仙花数是指所有位的数字的立
方之与等于该数,例如:153=13+33+5
3
5、 编写程序输出下面图形。
1
23
456
7890
6、 编写程序输出下面图形
*
***
*****
*******
*****
***
*