C语言第六章循环结构复习题
(完整版)c语言第六章循环结构程序设计(习题册答案)

第六章循环结构程序设计基础练习(A)一、选择题1、C语言中while和do-while循环的主要区别是(A)。
A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件严格C) C)do-while允许从外部转到循环体内D) do-while的循环体不能是复合语句2、以下描述中正确的是(C)。
A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while3、设有程序段int k=10;while(k) k=k-1;则下面描述中正确的是(A)。
A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次4、下列循环语句中有语法错误的是( D )。
A) while(x=y) 5;B) while(0) ;C) do 2;while(x==b);D) do x++ while(x==10);5、已知int i=1;执行语句while (i++<4) ;后,变量i的值为(C)。
A) 3 B) 4 C) 5 D) 66、语句while(!E);中的表达式!E等价于(A)。
A)E==0 B)E!=1 C)E!=0 D)E==17、下面程序段的运行结果是(A)。
a=1; b=2; c=2;while(a<b<c) { t=a; a=b; b=t; c--; }printf(“%d,%d,%d”,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,18、下面程序的运行结果是(C)。
#include <stdio.h>main(){int num=0;while(num<=2){num++;printf(“%d\n”,nu m);}}A)1 B)1 C)1 D)12 2 23 39、以下能正确计算1×2×3×…×10的程序段是(C)。
C语言单元复习题 第06部份 循环

C.用do...while语句构成循环时,在while后的表达式为零时不一定结束循环
D.用do...while语句构成循环时,在while后的表达式为零时结束循环
(知识点:do...while语句; 难度系数:1; 答案:D )
10.以下关于do...while语句的叙述中,正确的是:( )。
(知识点:循环的基本概念; 难度系数:1; 答案:D )
2.以下关于循环的描述中,错误的是:( )。
A.while、do...while和for语句的循环体都可以是空语句
B.for和do...while语句都是先执行循环体,后进行循环条件判断
C.while语句是先进行循环条件判断,后执行循环体的
D.使用while和do...while语句时,循环变量初始化的操作应在循环语句之前完成
A.break语句和continue语句都只能用于循环结构
B.break语句和continue语句都只能用于switch结构
C.break语句用于跳出循环体,continue语句用于跳出当次循环
D.continue语句用于跳出循环体,break语句用于跳出当次循环
(知识点:continue语句; 难度系数:1; 答案:C )
A.x==0B.x==1C.x!=lD.x!=0
(知识点:while语句; 难度系数:1; 答案:D )
5.在C语言中,当while语句构成的循环中的条件为( )时,结束循环。
A.0B.1C.真D.非0
(知识点:while语句; 难度系数:1; 答案:A )
6.有以下程序段:
int k=0;
while(k=1) k++;
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 循环结构23道题[含答案解析]
![C 循环结构23道题[含答案解析]](https://img.taocdn.com/s3/m/682b712acc7931b765ce1588.png)
题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出循环01:最大数写一个程序,可以输入一批正数,输入0时结束循环,并且输出最大的正数。
输入39 28 5 63 18 27 0输出63测试:输入153 26 963 28 75 90 156 0输出963#include<iostream>using namespace std;int main(){int i,max=0;cin>>i;while(i!=0){if(i>max)max=i;cin>>i;}cout<<max<<endl;return 0;}循环02:素数输入正数n,判断n是否为素数。
若为素数则输出1,否则输出0。
(提示:素数是指只可以被1和其本身整除的正数(1除外))输入10输出0输入7输出1测试:输入9输出0#include<iostream>using namespace std;int main(){int n,i,d;cin>>n;for(i=2;i<n;i++){d=n%i;if(n%i==0)break;}if(n==i)cout<<"1"<<endl;elsecout<<"0"<<endl;return 0;}循环03:数列求和输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10..+1/(3*n-2)。
输入5输出1.56978输入4输出1.49286#include<iostream>using namespace std;int main(){int i,n;double s=0;cin>>n;for(i=1;i<=n;i++)s+=1.0/(3*i-2);cout<<s<<endl;return 0;}循环04:西瓜卖几天n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。
循环结构习题

循环结构习题循环结构一.选择题1.下面程序段int k=2;while (k=0) {printf(“%d”,k);k--;}则下面描述中正确的是。
A)while循环执行10次B)循环是无限循环C)循环题语句一次也不执行D)循环体语句执行一次2.以下程序段的循环次数是。
for (i=2; i==0; ) printf(“%d” , i--) ;A)无限次B)0次C)1次D)2次4.下面程序的输出结果是。
main ( ){ char c=’A’;int k=0;do {switch (c++) {case ‘A’ : k++ ; break ;case ‘B’ : k-- ;case ‘C’ : k+=2 ; break ;case ‘D’ : k%=2 ; continue ;case ‘E’ : k*=10 ; break ;default : k/=3 ;}k++;} while (c<’G’) ;printf (“k=%d”,k) ;}A)k=3 B)k=4 C)k=2 D)k=05.下面程序的输出结果是。
main ( ){ int x=9;for (; x>0; x--) {if (x%3==0) {prin tf(“%d”,--x);continue ;}}}A)741 B)852 C)963 D)8754216.以下不是死循环的程序段是。
A)int i=100; B)for ( ; ; ) ;while (1) {i=i%100+1 ;if (i>100) break ;}C)int k=0; D)int s=36;do { ++k; } while (k>=0); while (s) ; --s ;7.下述程序段的运行结果是。
int a=1,b=2, c=3, t;while (a<b<="" p="" {t="a;">printf(“%d,%d,%d”,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,18.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择填空。
C语言第六章复习题(含答案)

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 )。
C语言第六章循环结构复习题

循环结构程序设计复习题一.选择题1.以下while循环中,循环体执行的次数是:()k=1;while (--k) k=10;a) 10次 b) 无限次 c) 一次也不执行 d) 1次2.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=0;while (!x!=0) x++;a) 退出while循环后,x的值为0b) 退出while循环后,x的值为1c) while的控制表达式是非法的d) while循环执行无限次3. 有以下程序段,其中n为整型变量,执行后输出结果是:()n=20 ;while(n--) ; printf(“%d”,n) ;a) 2 b) 10 c) -1 d) 04. 有以下程序段,其中t为整型变量,以下选项中叙述正确的是:()t=1;while (-1){ t--;if(t) break;}a) 循环一次也不执行b) 循环执行一次c) 循环控制表达式(-1)不合法d) 循环执行2次5. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=-1;do{;}while (x++);printf(“x=%d”,x);a) 该循环没有循环体,程序错误b) 输出x=1c) 输出x=0d) 输出x=-16. 有以下程序段,其中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=0解析:在开始时 x=0,y=0;进入循环判断(x<=1)&&(y= 1) 条件成立,同时把1赋给y,此时x=0,y=1; 然后执行 x++,y--,执行之后x=1,y=0;再进入循环判断(x<=1)&&(y= 1),条件成立,同时同时把1赋给y,此时x=1,y=1;然后执行 x++,y--,执行之后x=2,y=0;再进入循环判断(x<=1)&&(y= 1),条件不成立,跳出循环输出x=2,y=0 。
c语言循环试题及答案

c语言循环试题及答案C语言循环试题及答案1. 以下哪个选项是C语言中实现循环的关键字?A. switchB. caseC. whileD. do答案:C2. 写出一个使用for循环的程序段,计算1到100之间所有奇数的和。
```cint sum = 0;for(int i = 1; i <= 100; i += 2) {sum += i;}printf("The sum of odd numbers from 1 to 100 is %d", sum);```3. 以下哪个语句是正确的while循环的语法?A. while (condition) statementB. do statement while (condition)C. for (initialization; condition; iteration)D. if (condition) statement答案:A4. 假设有一个数组arr[10],以下哪个循环可以用来遍历这个数组?```cint i;for(i = 0; i < 10; i++) {// 遍历数组}```5. 如果要使用do-while循环打印出1到5的数字,以下哪个程序段是正确的?```cint i = 1;do {printf("%d ", i);i++;} while (i <= 5);```6. 以下哪个选项是break语句的正确用法?A. 用于跳出switch语句B. 用于跳出循环C. 用于进入循环D. 用于结束程序答案:B7. 写出一个使用while循环的程序段,计算1到10的乘积。
int product = 1;int i = 1;while(i <= 10) {product *= i;i++;}printf("The product of numbers from 1 to 10 is %d", product); ```8. 以下哪个选项是continue语句的正确用法?A. 跳过当前循环的剩余部分,开始下一次循环B. 用于跳出循环C. 用于进入循环D. 用于结束程序答案:A9. 假设有一个字符串str,以下哪个循环可以用来遍历这个字符串?```cchar str[] = "Hello";int i = 0;while(str[i] != '\0') {// 遍历字符串i++;}```10. 以下哪个程序段将打印出2到10之间的所有偶数?for(int i = 2; i <= 10; i += 2) { printf("%d ", i);}```。
C语言题库-循环结构

一、选择题1.以下叙述正确的是A: do-while 语句构成的循环不能用其它语句构成的循环来代替。
B: do-while 语句构成的循环只能用break 语句退出。
C: 用do-while 语句构成的循环,在while 后的表达式为非零时结束循环。
D: 用do-while 语句构成的循环,在while 后的表达式为零时结束循环。
2.下面有关for 循环的正确描述是A: for 循环只能用于循环次数已经确定的情况B: for 循环是先执行循环体语句,后判定表达式C: 在for 循环中,不能用break 语句跳出循环体D: for 循环体语句中,可以包含多条语句,但要用花括号括起来3.C 语言中while 和do-while 循环的主要区别是A: do-while 的循环体至少无条件执行一次B: while 的循环控制条件比do-while 的循环控制条件严格C: do-while 允许从外部转到循环体内;D: do-while 的循环体不能是复合语句;4.下列关于switch 语句和break 语句的结论中,正确的是A: break 语句是switch 语句中的一部分B: 在switch 语句中可以根据需要使用或不使用break 语句C: 在switch 语句中必须使用break 语句D: switch 语句是break 语句的一部分5..以下正确的描述是A: continue 语句的作用是结束整个循环的执行;B: 只能在循环体内和switch 语句体内使用break 语句;C: 在循环体内使用break 语句或continue 语句的作用相同;D: 从多层循环嵌套中退出时,只能使用goto 语句;6.语句while(!e);中的条件!e 等价于A: e==0B: e!=0C: e!=1D: ~e7.在以下给出的表达式中,与while(E)中的E不等价的表达式是A: !E=0B: E>0||E<0C: E==0D: E!=08.在C 语言中,当do-while 语句中的条件为()时,结束该循环。
C语言循环结构练习题

1编写一个程序;求100199********-++-+- 之值.. 2编写一个程序;求s=1+1+2+1+2+3+…+1+2+3+…+n 的值..3编写一个程序;用户输入一个正整数;把它的各位数字前后颠倒一下;并输出颠倒后的结果..4编写一个程序;求出200到300之间的数;且满足条件:它们三个数字之积为42;三个数字之和为12..5编写一个程序;求出满足下列条件的四位数:该数是个完全平方数;且第一、三位数字之和为10;第二、四位数字之积为12..6编写一个程序;求e 的值..7编写一个程序;求满足如下条件的最大的n :8某人摘下一些桃子;卖掉一半;又吃了一只;第二天卖掉剩下的一半;又吃了一只;第三天、第四天、第五天都如此办理;第六天一看;发现就剩下一只桃子了..编写一个程序;采用迭代法问某人共摘了多少只桃子..(9) 输入一批非0数;直到输入0时为止;计算其中奇数的平均值和偶数的乘积..东师大;01年10求一组整数中的正数之积与负数之和;直到遇到0时结束..东师大;03年11输入一组实数;求前10个正数的平均值..东师大;02年12编程求1~200中能被2;3;5除余1的前10个整数..东师大;02年13输入100个整数;统计这些数中能被3或5整除数所占的百分比..东师大;02年14计算并输出200—600中能被7整除;且至少有一位数字是3的所有数的和..东师大;01年15输出1~999中能被5整除;且百位数字是5的所有整数..东师大;04年16设N 是一个四位数;它的9倍恰好是其反序数例如:1234的反序数是4321;求N 值..东师大;03年\17有这样一个三位数;该三位数等于其每位数字的阶乘之和;即abc=a+b+c..如:145=1+4+5东师大;04年18编写程序求出满足下列条件的四位数:该数是个完全平方数;千位、十位数字之和为10;百位、个位数字之积为12..东师大;05年19已知abc+cba=1333;其中a;b;c 均为一位数;编写一个程序求出abc分别代表什么数字..东师大;05年20100匹马驮100担货;大马一匹驮3担;中马一匹驮2担;小马两匹驮1担..试编写程序计算大、中、小马的数目..东师大;06年21求1~100之间数的每位数的乘积大于每位数的和的数..东师大;07年22一个正整数与3的和是5的倍数;与3的差是6的倍数;编写一个程序求符合条件的最小数..东师大;08年23 已知平方根迭代公式;设初值x=a/2..编写程序输入a值计算其平方根..迭代的结束条件是x n+1-xn<10-15;结果要求输出15位有效位数24.有一口深度为h米的水井;井底有一只青蛙;它每天白天能够沿井壁向上爬m米;夜里则顺井壁向下滑n米;若青蛙从某个早晨开始向外爬;试编写一个函数:对于任意指定的h;m;n值均为自然数;计算青蛙多少天能够爬出井口并简要说明程序实现的基本思想..南师大09P141 16质数数的反序输出。
c语言循环试题及答案

c语言循环试题及答案C语言是一种广泛应用于计算机编程领域的编程语言。
在学习C语言的过程中,掌握循环语句是非常重要的,因为循环可以使程序重复执行特定的代码块。
下面将介绍几道C语言循环试题及其详细答案,希望对你的学习有所帮助。
试题一:编写一个程序,要求用户输入一个整数n,计算并输出1到n之间的所有自然数的和。
答案一:```c#include <stdio.h>int main() {int n, i, sum = 0;printf("请输入一个整数n: ");scanf("%d", &n);for (i = 1; i <= n; i++) {sum += i;}printf("1到%d之间的所有自然数的和为:%d\n", n, sum);return 0;}```试题二:编写一个程序,要求用户输入一个正整数n,计算并输出n的阶乘。
答案二:```c#include <stdio.h>int main() {int n, i;unsigned long long factorial = 1;printf("请输入一个正整数n: ");scanf("%d", &n);for (i = 1; i <= n; i++) {factorial *= i;}printf("%d的阶乘为:%llu\n", n, factorial);return 0;}```试题三:编写一个程序,要求用户输入一个整数n,判断并输出n是否为素数(质数)。
答案三:```c#include <stdio.h>int main() {int n, i, isPrime = 1;printf("请输入一个整数n: ");scanf("%d", &n);for (i = 2; i <= n / 2; i++) {if (n % i == 0) {isPrime = 0;break;}}if (isPrime == 1) {printf("%d是素数。
C语言循环结构练习题

(1)编写一个程序,求100199********-++-+-Λ之值。
(2)编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。
(3)编写一个程序,用户输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果。
(4)编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。
(5)编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12。
(6)编写一个程序,求e 的值。
!1!21!111n e ++++≈Λ (7)编写一个程序,求满足如下条件的最大的n :10003212222≤++++n Λ(8)某人摘下一些桃子,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又吃了一只;第三天、第四天、第五天都如此办理,第六天一看,发现就剩下一只桃子了。
编写一个程序,采用迭代法问某人共摘了多少只桃子。
(9) 输入一批非0数,直到输入0时为止,计算其中奇数的平均值和偶数的乘积。
(东师大,01年)(10)求一组整数中的正数之积与负数之和,直到遇到0时结束。
(东师大,03年)(11)输入一组实数,求前10个正数的平均值。
(东师大,02年)(12)编程求1~200中能被2,3,5除余1的前10个整数。
(东师大,02年)(13)输入100个整数,统计这些数中能被3或5整除数所占的百分比。
(东师大,02年)(14)计算并输出200—600中能被7整除,且至少有一位数字是3的所有数的和。
(东师大,01年)(15)输出1~999中能被5整除,且百位数字是5的所有整数。
(东师大,04年)(16)设N 是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321),求N 值。
(东师大,03年)\(17)有这样一个三位数,该三位数等于其每位数字的阶乘之和,即abc=a !+b !+c !。
(如:145=1!+4!+5!)(东师大,04年)(18)编写程序求出满足下列条件的四位数:该数是个完全平方数;千位、十位数字之和为10,百位、个位数字之积为12。
ch62

do-while语句 do-while语句 … break; …
表达式? 表达式?
Y N
for语句 for语句 计算表达式1 计算表达式1
表达式2? 表达式2?
Y N
… break; …
… break; …
计算表达式3 计算表达式3 后续语句
2010-12-4
后续语句
后续语句
26
输出半径为 半径为1 10的圆面积,面积大于100 100时停止 例:输出半径为1到10的圆面积,面积大于100时停止
1234
4
)
2010-12-4
5
2.C语言中while和do-while循环的主要区别 2.C语言中 语言中while和do-while循环的主要区别 是( A ) A.do-while的循环体至少无条件执行一次 A.do-while的循环体至少无条件执行一次 B.While的循环控制条件比 -while的循环 B.While的循环控制条件比do-while的循环 的循环控制条件比do 控制条件严格 C.doC.do-while 允许从外部转到循环体内 D. do-while 的循环体不能是符合语句 do-
2010-12-4
9
6.以下程序段() 6.以下程序段() 以下程序段 C
x=-1; x=do {x=x*x;} while(!x);
A.是死循环 A.是死循环 C.循环执行1次 C.循环执行 循环执行1
B.循环执行2次 B.循环执行 循环执行2 D.有语法错误 D.有语法错误
2010-12-4
10
B 7.若i为整型变量,则以下循环执行次数是() 7.若 为整型变量,则以下循环执行次数是() for(i=2;i==0;)printf(“%d\ ,i--); for(i=2;i==0;)printf(“%d\n”,i--); A. 无限次 B. 0次 C. 1次 D. 2次 0次 1次 2次
C语言循环结构练习题带答案

.. 第5章循环结构程序设计练习题1. 单项选择题(1)语句while (!e);中的条件!e等价于 A 。
A. e==0B. e!=1C. e!=0D. ~e(2)下面有关for循环的正确描述是 D 。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中 D 。
A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是 A 。
A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句(5)以下程序段 C 。
int x=-1;do{x=x*x;}while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误(6)下列语句段中不是死循环的是__C__。
第5章循环结构程序设计35A. i=100;while (1){i=i%100+1;if (i==20) break;}B. for (i=1;;i++)sum=sum+1;C. k=0;do{++k;} while (k<=0);D. s=3379;while (s++%2+3%2)s++;(7)与以下程序段等价的是__A__。
while (a){if (b) continue;c;}A. while (a)B. while (c){ if (!b) c; } { if (!b) break; c; }C. while (c)D. while (a){ if (b) c; } { if (b) break; c; }(8)以下程序的输出结果是_B___。
C语言循环结构程序设计习题与答案

一、单选题1、计算1!+2!+3!+4!+5!编程如下,程序中下划线处应填写#include <stdio.h>void main(){int i;int t= z s=;for(i=l;i<6;i++){t=t*i;s=s+t;)printf("l!+2!+3!+4!+5!=%d\n"z s);)A.l 1B.O 0C.O 1D.l 0正确答案:D2、下面代码段的输出是一int k,m;for(k=0;k<10;k++ ){if(m>50) continue;m=k*k;)printf("%d,%d\n”,k,m);A. 10,64B.9,81C.10,81D.8,64正确答案:A3、对于以下代码:int i;for(i=0;i<10;i++)pnntf("%d",i);for循环结束后,i的值是—A.llB.10C.9D.i不再存在了正确答案:B4、对于以下代码:int i=6;do{printf("%d", i-);}while(i-);正确的是—A,输出6420-2-4…,程序无法停机B,输出6420C.输出6420-2D输出642正确答案:A5、对于以下代码:int i=6;do{printf("%d", i-);}while(i);最后一个输出的值是—A.2B.3C.OD.l正确答案:D6、在代码:while(e)中,e等价于_A.e == 0B.e != 1C.e == 1D.e!=0正确答案:D7、在代码:while© |1)中,e等价于_A.e!=0B.e == 1C.e取任何值D.e == 0正确答案:C8、设有程序段int k=5;while(k=0) k=k-l;则下面描述中正确的是A,循环体语句一次也不执行B.while循环执行5次C.循环体语句执彳亍一次D彳盾环是无限循环正确答案:A9、下面程序段的运行结果是int n=0;while(n++<=2);printf("%d",n);A.有语法错B.2C.4D.3正确答案:C10、若有如下语句int x=3;do{ printf("%d\n"z x -=2);} while(!(-x));则上面程序段—A,是死循环B,输出的是1C.输出的是3和0D,输出的是1和・2正确答案:D11、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空,答案是#includemain()int n,sum=0;n=2345;sum=sum+(n%10)*(n%10);n=_;}while(n);printf("sum=%d"/sum);}A.n/10B.n%10C.n/100D.n/1000正确答案:A12、下面程序段—for(t=l;t< = 100;t++){scanf("%d",&x);if(x<0) continue;printf("%3d",t);)A.最多允许输出100个非负整数B.x>=0时什么也不输出C.printf函数永远也不执行D・当x<0时整个循环结束正确答案:A13、下列运算符中结合方向与其他不同的是A.+=B.< =c.>D.+正确答案:A14、下列运算符中结合方向与其他不同的是A.&&B.?:c.||D.+正确答案:B15、以下代码输出结果是—int x=0,y=20,z=30 ;if ( x||(y=50)>z ) printf("y=%d"z y); else printf("y=%d",y);A.代码错误,不能输出B.y=50C.y=20D,不确定正确答案:B16、以下代码输出结果是—int x=0z y=20,z=30if ( x||(y=50)>z ) printf("y=%d"z y); else printf("y=%d",y);A.y=20B.代码错误,不能执行C.y=50D,不确定正确答案:B17、下列程序段的输出结果是一int a=3,b=15;a+=b;b=b/2;}while(b>l);printf("%d\rT,a);正确答案:28二、多选题1、在c语言中,叙述正确的是()。
c语言循环练习题

c语言循环练习题C语言循环练习题C语言是一门广泛应用于计算机科学领域的编程语言,掌握好循环结构是学习C语言的重要一步。
循环结构允许我们重复执行一段代码,这在处理大量数据或需要重复操作的情况下非常有用。
接下来,我们将通过一些C语言循环练习题来巩固对循环结构的理解和应用。
1. 打印九九乘法表九九乘法表是一个经典的练习题,可以通过嵌套循环来实现。
我们可以使用两个循环,一个用于控制行数,另一个用于控制列数。
在每个位置上,将行数和列数相乘即可得到结果。
2. 计算阶乘阶乘是一个常见的数学运算,在C语言中可以使用循环结构来实现。
我们可以通过一个循环,从1开始逐步累乘,直到达到所需的数值。
可以使用一个变量来保存累乘的结果。
3. 判断素数素数是只能被1和自身整除的大于1的自然数。
判断一个数是否为素数可以通过循环结构来实现。
我们可以从2开始,逐个尝试除以每个小于该数的自然数,如果存在能整除的数,则该数不是素数。
4. 斐波那契数列斐波那契数列是一个经典的数列,在该数列中,每个数都是前两个数的和。
可以通过循环结构来实现斐波那契数列的计算。
可以使用两个变量来保存前两个数的值,并通过循环不断更新这两个变量的值。
5. 求最大公约数求最大公约数是一个常见的数学问题,可以通过循环结构来实现。
可以使用辗转相除法来求解最大公约数,即通过不断取两个数的余数,将较大的数替换为余数,直到余数为0。
6. 猜数字游戏猜数字游戏是一个简单而有趣的游戏,可以通过循环结构来实现。
可以随机生成一个目标数字,并让用户通过输入猜测的数字来进行游戏。
通过循环判断用户的猜测是否正确,并根据猜测的结果给出相应的提示。
通过以上的练习题,我们可以巩固对C语言循环结构的理解和应用。
循环结构在编程中非常重要,它可以帮助我们处理大量的数据和重复的操作。
通过不断练习和实践,我们可以逐渐掌握循环结构的技巧,并能够灵活运用到实际的编程项目中。
总结C语言循环练习题是提高编程技能的有效途径之一。
c语言循环题库

c语言循环题库一、在C语言中,以下哪个循环结构不是基于条件的循环?A. for循环B. while循环C. do-while循环D. goto语句(答案)二、以下哪个选项不是for循环的控制表达式?A. 初始化表达式B. 循环条件表达式C. 循环体D. 迭代表达式(答案:C是循环体,不是控制表达式)三、在C语言的while循环中,循环条件通常是一个什么类型的表达式?A. 赋值表达式B. 关系表达式或逻辑表达式(答案)C. 算术表达式D. 逗号表达式四、以下哪个选项描述的do-while循环的特点是不正确的?A. 循环体至少执行一次B. 循环条件在循环体之后判断C. 循环条件为真时,循环继续执行D. 循环条件通常是一个赋值表达式(答案)五、在C语言中,如何跳出当前所在的循环体?A. 使用continue语句B. 使用break语句(答案)C. 使用return语句D. 使用goto语句六、以下哪个选项不是使用循环结构时需要注意的问题?A. 循环条件的设置B. 循环体的设计C. 循环变量的初始化(答案:虽然重要,但相比其他选项更偏向于编程习惯)D. 避免无限循环的发生七、在嵌套循环中,如何跳出最外层的循环?A. 使用多次break语句B. 在最外层循环中使用goto语句配合标签跳出(答案)C. 使用continue语句D. 无法直接跳出,需要重新设计循环结构八、以下哪个选项描述的for循环的语法结构是不正确的?A. for(初始化表达式; 循环条件表达式; 迭代表达式) 循环体;B. for(循环条件表达式; 初始化表达式; 迭代表达式) 循环体;(答案)C. for(;;) 循环体; // 相当于一个无限循环D. for(初始化表达式; ; 迭代表达式) { 如果条件满足则执行循环体; } // 需要内部判断条件九、在C语言中,continue语句的作用是?A. 跳出当前循环体,继续执行下一轮循环(答案,但描述略有歧义,实际上是结束当前迭代,进入下一次迭代条件判断)B. 跳出当前函数C. 跳出所有循环D. 结束整个程序十、以下哪个选项不是循环结构在程序设计中的应用场景?A. 重复执行相同的操作直到满足某个条件B. 遍历数组或集合中的每个元素C. 实现递归算法(答案)D. 计算累加、累乘等需要重复计算的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环结构程序设计复习题一.选择题1.以下while循环中,循环体执行的次数是:()k=1;while (--k) k=10;a) 10次b) 无限次c) 一次也不执行d) 1次2.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=0;while (!x!=0) x++;a) 退出while循环后,x的值为0b) 退出while循环后,x的值为1c) while的控制表达式是非法的d) while循环执行无限次3. 有以下程序段,其中n为整型变量,执行后输出结果是:()n=20 ;while(n--) ; printf(“%d”,n) ;a) 2 b) 10 c) -1 d) 04. 有以下程序段,其中t为整型变量,以下选项中叙述正确的是:()t=1;while (-1){ t--;if(t) break;}a) 循环一次也不执行b) 循环执行一次c) 循环控制表达式(-1)不合法d) 循环执行2次5. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=-1;do{;}while (x++);printf(“x=%d”,x);a) 该循环没有循环体,程序错误b) 输出x=1c) 输出x=0d) 输出x=-16. 有以下程序段,其中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=0解析:在开始时 x=0,y=0;进入循环判断(x<=1)&&(y= 1) 条件成立,同时把1赋给y,此时x=0,y=1;然后执行 x++,y--,执行之后x=1,y=0;再进入循环判断(x<=1)&&(y= 1),条件成立,同时同时把1赋给y,此时x=1,y=1; 然后执行 x++,y--,执行之后x=2,y=0;再进入循环判断(x<=1)&&(y= 1),条件不成立,跳出循环输出x=2,y=0 。
7. 有以下程序:main(){ 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,48. 有以下程序:main(){ int num=0;do{ num++ ;printf(“%d\n”,num); }while(num<=2);}程序的输出结果是:()a) 1 b) 1c) 1 d) 12 2 23 349. 有以下程序:main(){ int x=3;do{ printf(“%d”,x-=2); }while(!(--x));}程序的输出结果是:()a) 1 b) 3 0 c) 1 -2 d) 死循环10. 有以下程序:main(){ int y=10;do { y--; } while(--y);printf(“%d\n”,y--);}程序的输出结果是:()a) 1 b) -1 c) 8 d) 011. 有以下程序:main(){ int x=3,y;do{ y=--x;if( !y) printf(“x”) ;else printf(“y”) ;} while(x);}程序的输出结果是:()a) xyx b) yyx c) yxx d) yxy12. 有以下程序段,此处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的值大于等于313. 有以下程序: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,414. 有以下程序: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,-315. 有以下程序: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=016. 有以下程序: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) 9117. 有以下程序: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,218. 有以下程序: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) 3219. 有以下程序: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) 420. 有以下程序: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.要求使以下程序段输出10个整数,请填空。
for(i=0;i<=_18_;printf(“%d\n”,i+=2));2. 执行下面程序段后,k的值是_____0_____。
r=1; n=203; k=1;do {k*=n%10*r; n/=10; r++;} while(n);3. 下面程序的输出结果是_1 2 5 10_。
main(){ int i,x=10;for(i=1;i<=x;i++)if(x%i==0) printf(“%d ”,i);}4. 下面程序的输出结果是___无定值________。
main(){ int i,sum;for(i=1;i<6;i++) sum+=i;printf(“%d”,sum);}5. 下面程序的输出结果是_20__。
main(){ int i,sum=0;for(i=2;i<10;i++){ if((i%2)!=0) continue;sum+=i;}printf(“%d\n”,sum);}6.下面程序的输出结果是**!*!!__!!!____。
main(){ int i,j;for(i=2;i>=0;i--){ for(j=1;j<=i;j++) printf(“*”);for(j=0;j<=2-i;j++) printf(“!”);printf(“\n”);}}7. 下面程序的输出结果是___1,1____。
main(){ int i,j=0,a=0;for(i=0;i<5;i++)do{ if(j%3) break;a++; j++;} while(j<10);printf(“%d,%d\n”,j,a);}8. 下面程序的输出结果是___852____。
main(){ int x=9;for(;x>0;){ if(x%3==0){ printf(“%d”,--x); continue; }x--;}}9. 下面程序的输出结果是____***#____。
main(){ int i,j=2;for(i=1;i<=2*j;i++)switch(i/j){ case 0: case 1: printf(“*”); break;case 2: printf(“#”);}}三.操作题1.计算1到10之间的奇数之和以及偶数之和。
2.输出100以内能被3整除且个位数为6的所有整数。
3.找出2至99之间的全部同构数。
同构数是这样一组数:它出现在其平方数的右边,例如,5是25右边的数,25是625右边的数,5和25都是同构数。
4.根据以下近似公式求∏值。
22221......312116n ++++=π5.根据以下公式求S 的值。
121......7151311++-+-=n S6.根据以下公式求S 的值。
!1......!31!211n S ++++=。