C语言单元复习题 第06部份 循环解析
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语言for循环语句例题及解析
标题:深度解析C 语言中的 for 循环语句及例题在C 语言编程中,for 循环语句是最常用的循环结构之一。
它可以让程序重复执行一段代码,直到达到指定的条件。
在本文中,我将深入探索 C 语言中 for 循环语句的概念、语法结构和实际应用,并通过例题解析帮助您更好地理解和掌握这一重要的编程知识。
1. for 循环语句的基本结构在C 语言中,for 循环语句的基本结构如下:```for (初始化表达式; 条件表达式; 更新表达式){循环体语句;}```其中,初始化表达式用于初始化循环变量的初始值;条件表达式是循环执行的条件,如果条件为真,则执行循环体语句;更新表达式用于更新循环变量的值,以便控制循环的次数。
2. for 循环语句的实际应用下面通过一个简单的例题来演示 for 循环语句的实际应用场景:```#include <stdio.h>int main() {int i;for (i=1; i<=5; i++) {printf("This is iteration %d\n", i);}return 0;}```在以上示例中,我们使用 for 循环语句实现了输出 "This is iteration i" 的功能,其中 i 从 1 到 5 依次递增。
通过这个例题,我们可以清晰地看到 for 循环语句的执行过程和效果。
3. for 循环语句的深入解析在实际编程中,for 循环语句还可以嵌套使用,或者与 break、continue 等关键字配合使用,以实现更复杂的控制流程。
我们还可以在条件表达式中使用逻辑运算符或者关系运算符,以实现更灵活的循环控制。
这些深入的应用将在后续的例题中逐一讲解。
总结 & 理解通过本文的深度解析和相关例题的讲解,相信您已经对 C 语言中的for 循环语句有了更加全面和深入的了解。
在实际开发中,for 循环语句是必不可少的一部分,熟练掌握它将有助于提高编程效率和代码质量。
(完整版)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语言第六章复习题(含答案)
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、输入3个整数,排序后输出。
#include <stdio.h>void main(){int x,y,z,t;scanf("%d%d%d",&x,&y,&z);if (x>y){t=x;x=y;y=t;} /*交换x,y的值*/if(x>z){t=z;z=x;x=t;} /*交换x,z的值*/if(y>z){t=y;y=z;z=t;} /*交换z,y的值*/printf("small to big: %d %d %d\n",x,y,z);}2、求解一元二次方程ax2+bx+c=0。
#include <stdio.h>#include <math.h>void main(){double a,b,c,deta,x1,x2;printf("Enter a,b,c:");scanf("%lf%lf%lf",&a,&b,&c);if(fabs(a)>1e-6){deta=b*b-4*a*c;if(deta>0){x1=-b/(2*a)+sqrt(deta)/(2*a);x2=-b/(2*a)-sqrt(deta)/(2*a);;printf("有两个不同的实根:x1=%.2f ,x2=%.2f\n",x1,x2);}else if(deta==0){x1=x2=-b/(2*a);printf("有两个相同的根:x1=x2=%.2f\n",x1);}else{x1=-b/(2*a);x2=sqrt(-deta)/(2*a);printf("有两个虚根:x1=%.2f + %.2f*i,x2=%.2f - %.2f*i\n",x1,x2,x1,x2);}}elseprintf("二次项系数为0,不是一元二次方程!");}3、已知银行整存整取存款不同期限的月息利率分别为:0.315% 期限一年0.330% 期限二年0.345% 期限三年0.375% 期限五年0.420% 期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
C语言程序设计教程第六章课后习题参考答案
C语⾔程序设计教程第六章课后习题参考答案P158 1求三个实数最⼤值#includefloat max(float,float,float);int main(){float a,b,c,m;printf("请输⼊三个实数:");scanf("%f %f %f",&a,&b,&c);printf("最⼤数为%f\n",max(a,b,c));return 0;}float max(float a,float b,float c){float t;if(a>b&&a>c)t=a;else if(b>a&&b>c)t=b;elset=c;return t;}P158 2求最⼤公约数最⼩公倍数#includeint fun1(int a,int b);int fun2(int a,int b);int main(){int a,b;printf("请输⼊两个整数:");scanf("%d %d",&a,&b);printf("最⼤公约数为:%d\n",fun1(a,b));int t,r;if(a{t=a;a=b;b=t;}while((r=(a%b))!=0) {a=b;b=r;}return b;}int fun2(int a,int b) {int n;n=(a*b)/fun1(a,b); return n;}P158 3求完全数#includevoid wan(int n); void main(){int n;for(n=1;n<1000;n++) wan(n);printf("\n");}void wan(int n){if(n%i==0)s=s+i;}if(n==s)printf("%d\t",n); }P158 4⽆暇素数#include#includeint nixvshu(int n);int isPrime(int n);int main(){int n,t;printf("⽆暇素数:\n");for(n=100;n<=999;n++) {t=nixvshu(n);if(isPrime(n)&&isPrime(t)) printf("%d\t",n);}printf("\n");return 0;}int nixvshu(int n){int x=0;while(n){x=x*10+n%10;n=n/10;}return x;int i;for(i=2;i<=sqrt(n);i++)if(n%i==0) return 0;return n;}P158 7递归函数#includeint Y(int n){if(n==0)return 0;if(n==1)return 1;if(n==2)return 2;elsereturn (Y(n-1)+Y(n-2)+Y(n-3)); } int main(){int n,k=0;for(n=0;n<=19;n++){printf("%d\t",Y(n));k++;if(k%5==0)printf("\n");}return 0;}P124 6分解质因数#include#includevoid fenjie(int );int main(){int n;printf("请输⼊⼀个正整数:"); scanf("%d",&n);if(isPrime(n)){printf("%d=1*%d\n",n,n);}else{fenjie(n);printf("\n");}return 0;}int isPrime(int n){int i;for(i=2;i<=sqrt(n);i++){if(n%i==0) return 0;}return 1;}int zhi(int n){int m;for(m=2;m<=n;m++){if(isPrime(m)&&(n%m==0)) break;void fenjie(int n){int m;printf("%d=%d",n,zhi(n));while(n>zhi(n)){m=zhi(n);n=n/m;printf("*%d",zhi(n));}}P47 1输出闰年#includeint f(int year);int main(){int year,k=0;for(year=1900;year<=2000;year++){if(f(year)){printf("%d\t",year);k++;if(k%5==0)printf("\n");}}return 0;}int f(int year){if((year%4==0&&year%100!=0)||(year%400==0)) return year;P47 2输出回⽂数#includeint fun(int n);int main(){int n,k=0;for(n=10;n<=2000;n++) {if(n == fun(n)){printf("%d\t",n);k++;if(k%5==0)printf("\n");}}return 0;}int fun(int n){int i=0;while(n>0){i=i*10+n%10;n=n/10;}return i;}P47 3进制转换#includevoid trans(int n,int base); int main()printf("请输⼊要转换的⼗进制数:"); scanf("%d",&n);printf("请输⼊转换的进制:"); scanf("%d",&base);trans(n,base);printf("\n");return 0;}(⽅法⼀)void trans(int n,int base){if(n){trans(n/base,base);if(n%base>=10)switch(n%base){case 10:printf("A");break;case 11:printf("B");break;case 12:printf("C");break;case 13:printf("D");break;case 14:printf("E");break;case 15:printf("F");break;}elseprintf("%d",n%base);}}(⽅法⼆)void trans(int n,int base){int r;char c;trans(n/base,base); r=n%base;if(r>=10)c='A'+r-10;elsec='0'+r;printf("%c",c);}}。
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语言循环试题及答案
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语言循环结构练习题集带答案解析
第5章循环结构程序设计5.1 基本知识点while语句的使用格式和注意事项do-while语句的使用格式和注意事项for语句的使用格式和注意事项break和continue语句在循环语句中的应用循环结构的嵌套使用goto语句实现循环结构穷举法程序设计方法迭代程序设计方法5.2 练习题51. 单项选择题(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__。
A. 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__。
C语言第六章答案及详解
第六章指针一、选择题1 答案:A分析:本题主要考指针赋值,n2=n1;是把n2的值赋给n1,故根据指针赋值的定义可知选A,即把q所指对象的值赋给p所指对象。
2 答案:B分析:本题主要考指针定义,因为p指向变量x,故输出其值的时候应该是x的值。
3 答案:C分析:本题主要考指针的定义和赋值,C前面是定义一个量a并赋值为10,后面定义一个指针,并把a的值赋给这个指针。
4 答案:C分析:本题主要考指针的定义及赋值,开始时使p指向a,q指向b,把它们的值交换,然后再显示。
故得正确答案C。
5 答案:C分析:本题主要考函数指针的定义,函数前面的*号表求返回值是指针类型,void表示返回无值弄的。
故选C。
6 答案:A分析:本题主要考的是指针的变量的赋值,在使用scanf()函数的时候,后面跟的是一个地址,由于pa本身保存的是地址,故选A7 答案:D分析:本题主要考的指针的赋值及指向指针的指针的赋值,根据定义知选D。
B的正确形式是**q=2;C的正确形式应该是q=&p。
8 答案:C分析:本题主要考的是全局变量和局部变量,以及指针的用法,第一个f(&a)的返回值是5,第二个返回值是2。
9 答案:A分析:本题主要考的是变量自加,指针传值,以及指针的赋值。
通过第二行a=b可知p1,p2指向的变量的值相同,都指向了b所指的对象,也是p2所指的对象’a’,由于(*a)++;是实现a所指对象的自加,故由’a’变成’b’,故最终选A。
10 答案:A分析:本题主考NULL,一般来说当我们把一个空值以整数的形式输出出来的时候,默认的情况是0。
11 答案:C分析:本题考的是指针变量的赋值,虽然p没有赋值,表示没有指向某个具体的对象,但事实上系统会让它随机的指向存储单元里的一个对象,那么它的返回值应该是所指存储单元中的值。
12 答案:B分析:本题主要考函数中参数变量的定义,在B中连续定义两个变量,这在函数中是不可以的。
C语言知识学习知识题答案解析
C 语言章节习题C 语言章节习题..........................................1 ..........................................第一章 C 语言概述.......................................2 .......................................第三章数据类型、运算符和表达式 4 第四章顺序结构程序设计 7第五章选择结构程序设计.................................1..5.. .第六章循环结构程序设计.................................2..5.. .第7章数组习题3..7第8章函数习题5..4第九章预处理6...7 ..............................................第十章指针7..0 ..............................................第一章C 语言概述一、选择题:1、一个 C 程序的执行是从( A )。
A 本程序的main 函数开始,到main 函数结束B 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C 本程序的main 函数开始,到本程序文件的最后一个函数结束D 本程序文件的第一个函数开始,到本程序main 函数结束2、在 C 语言中,每个语句必须以( D )结束。
A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main 函数的位置(C)。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个 C 语言程序是由(B)。
A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是(D )。
A.主函数可以分为两个部分:主函数说明部分和主函数体B.主函数可以调用任何非主函数的其他函数C.任何非主函数可以调用其他任何非主函数D.程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。
c语言第六章函数习题答案
c语言第六章函数习题答案
C语言第六章函数习题答案
在C语言学习的过程中,函数是一个非常重要的概念。
函数可以帮助我们将程序分解成模块化的部分,使得代码更加清晰和易于维护。
在第六章的函数习题中,我们将会通过一些练习来巩固对函数的理解和运用。
第一道习题是编写一个函数,计算两个整数的最大公约数。
这个习题考察了我们对函数的参数传递和返回值的运用。
我们可以使用欧几里德算法来实现这个函数,通过递归的方式不断求解两个数的余数,直到余数为0,此时较小的数就是最大公约数。
第二道习题是编写一个函数,判断一个数是否为素数。
这个习题需要我们对循环和条件判断的运用。
我们可以遍历2到该数的平方根之间的所有数,如果能被整除,则该数不是素数;否则就是素数。
第三道习题是编写一个函数,将一个字符串中的大写字母转换为小写字母。
这个习题考察了我们对字符数组和指针的操作。
我们可以使用循环遍历字符串中的每一个字符,然后通过条件判断来进行大小写转换。
通过这些习题的练习,我们可以更加熟练地运用函数来解决问题。
函数的灵活运用可以让我们的程序更加模块化和易于理解。
希望大家在学习C语言的过程中能够多加练习,不断提升自己的编程能力。
《C语言程序设计》第6章习题答案
1、选择题(1)A(2)C(3)A(4)B(5)B(6)D(7)D(8)B(9)D(10)B2、填空题(1)a=10,b=20a=20,b=10(2)**pp=603、程序设计题(1)#include<stdio.h>char *month_name(int n);void main(){int n;printf("\nPlease enter 1 integer:");scanf("%d",&n);printf("%d month :%s\n",n,month_name(n));}char *month_name(int n){static char*name[]={"illegal month","Jan","Feb","Mar","Apr","May","Jun","July","Aug","Sept","Oct","Nov","Dec"};return ((n<1||n>12)?name[0]:name[n]);}(2)#include<stdio.h>#define N 10sort(int data[]){int i,j,min_a,temp;for(i=0;i<N;i++){min_a=i;for(j=i+1;j<N;j++)if(*(data+j)<*(data+min_a))min_a=j;if(min_a!=i){temp=*(data+min_a);*(data+min_a)=*(data+i);*(data+i)=temp;}}}main(){int i,j,data[N],temp;int min_a;printf("\nPlease input %d int:\n",N);for(i=0;i<N;i++)scanf("%d",&data[i]);sort(data);printf("After sorted:\n");for(i=0;i<N;i++)printf(" %d",data[i]);}(3)#include <stdlib.h>void reverse(char *c);void main(){char str[80];puts("Please enter 1 string\n");gets(str);reverse(str) ;puts("After reversed\n");puts(str);}void reverse(char *c){char *p,*q,temp;int size=0;for(p=c;*p!='\0';p++)size++;size=size/2;for(q=c,p--;q<c+size;q++,p--){temp=*q;*q=*p;*p=temp;}}(4)#include<stdio.h>#include<string.h>void sort(char *keyword[],int size);void print(char *keyword[],int size)void main(){char *keyword[]={"if","else","case","switch","do","whlie","for","break","continue"};sort(keyword,9);print(keyword,9);}void sort(char *keyword[],int size){int i,j,min_location;char *temp;for(i=0;i<size-1;i++){min_location=i;for(j=i+1;j<size;j++)if(strcmp(keyword[min_location],keyword[j])>0) min_location=j;if(min_location!=i){temp=keyword[i];keyword[i]=keyword[min_location];keyword[min_location]=temp;}}}void print(char *keyword[],int size){int i;for(i=0;i<size;i++)printf("\n%s",*(keyword+i));}(5)#include<stdio.h>void fun_char(char str1[],char str2[],char str3[]);void main(){char str1[80],str2[80],str3[80],c,i;printf("\nPlease enter 2 string:");scanf("%s%s",str1,str2);fun_char(str1,str2,str3);printf("Third string is %s.",str3);}void fun_char(char *str1,char *str2,char *str3){int i,j,k,flag;i=0,k=0;while(*(str1+i)!='\0'){j=0;flag=1;while(*(str2+j)!='\0'&&flag==1){if(*(str2+j)==*(str1+i)) flag=0;j++;}if(flag){*(str3+k)=*(str1+i); k++;}i++;}*(str3+k)='\0';}(6)#include<stdio.h>int count_word(char *str);void main(){char str1[80],c,res;puts("\nPlease enter a string:");gets(str1);printf("There are %d words in this sentence",count_word(str1)); }int count_word(char *str){int count ,flag;char *p;count=0;flag=0;p=str;while(*p!='\0'){if(*p==' ')flag=0;else if(flag==0){flag=1;count++;}p++;}return count;}(7)#include<stdio.h>#include<string.h>char *encrypt(char *string);char *decrypt(char *string);main(){char item[80];char *point;char *pEncrypted;char *pDecrype;printf("Please enter the string need to encrypt:\n");gets(item);point=item;pEncrypted=encrypt(point);printf("\nThe string after encrypted is:\n%s\n",pEncrypted); pDecrype=decrypt(pEncrypted);printf("\nThe string after decrypted is:\n%s\n",pDecrype);free(pEncrypted);free(pDecrype);}char *encrypt(char *string){char *q,*t;q=(char *)malloc(sizeof(char)*80);if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string-2;string++;q++;}*q='\0';return t;}char *decrypt(char *string){char *q,*t;q=(char *)malloc(sizeof(char)*80); if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string+2;string++;q++;}*q='\0';return t;}。
C语言循环习题集答案解析
循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(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 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 55 6.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(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 1B 2 1 0C 3D 29.若k为整型变量,则下面while循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环的正确描述是(D)A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。
C语言谭浩强版本第6章课后练习题答案
第6章课后练习题一、单项选择题1.以下程序执行后,a是:int a =0,i,j;for (i=5;i>0;i--)for(j=0;j<4;j++) a++;A)20B)25C)24D)302.执行以下程序段,正确的是:int x=-1;do {x=x*x; } while(! x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误3.执行以下程序int y=10; do { y - -;} while(- - y); printf("%d\n",y - -);输出的结果是:A)-1B)1C)8D)04.在下列选项中,没有构成死循环的程序段是:A)int i=100 ;while(1){ i=i%100+1;if(i>100) break; }B)for( ; ;) ;C)int k=1000; do{++k;} while(k>=10000);D)int s=36; while(s);--s;5.执行语句: for(i=l;i<4;i++);后,变量i的值是:A)3B)4C)5D)不定6.以下叙述正确的是:A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
7.下列程序执行后,输出结果是:main(){ int i, j, m=0;for(i=0; i<2; i++)for(j=0; j<2; j++)if(j>=i) m++;printf("%d \n",m);}A)1B)2C)3D)48.以下程序段的执行结果是:int a, y;a=10; y=0;do{ a+=2; y+=a;printf("a=%d y=%d\n",a,y);if(y>20) break;} while(a=14);A)a=12 y=12B)a=12 y=12回车换行a=16 y=28C)a=12 y=12回车换行a=14 y=26D)a=12 y=12回车换行a=14 y=26回车换行a=16 y=28 9.Break语句的正确的用法是:A)无论在任何情况下,都中断程序的执行,退出到系统下一层。
北理工《C语言程序设计》期末考试精选题汇总【含答案解析】 06
[试题分类]:C语言程序设计
1.下列叙述中,错误的是
A. 分号是C语言语句的必要组成部分
B. C语言程序的入口不一定是主函数main
C. C语言程序基本组成单位是函数
D. C语言程序的注释可以写在语句后面
答案:B
题型:单选题
知识点:第2章 C语言概述
难度:1
2.下列选项中,所有符号均不是C语言关键字是
A. scanf,define
B. auto,if
C. else,for
D. switch, do
答案:A
题型:单选题
知识点:第2章 C语言概述
难度:1
3.下列选项中,不能作为C语言常量的是
A. 0xA5
B. 2.5e-2
C. 3e2
D. 0582
答案:D
题型:单选题
知识点:第3章数据类型与运算规则
难度:1
4.C语言中,不能进行++和--运算的数据类型是
A. int
B. long
C. double
D. 指针。
C语言-习题集参考答案全部
目录- 1 -目录第一章C语言基础知识参考答案 ................................................................................ - 2 - 第二章顺序结构参考答案.......................................................................................... - 5 - 第三章选择结构参考答案.............................................................................................. - 7 - 第四章循环结构参考答案............................................................................................ - 11 - 第五章函数参考答案................................................................................................ - 15 - 第六章指针参考答案.................................................................................................... - 18 - 第七章一维数组参考答案............................................................................................ - 21 - 第八章二维数组参考答案.......................................................................................... - 28 - 第九章字符串参考答案.......................................................................................... - 31 - 第十章对C语言的深入讨论参考答案 ....................................................................... - 33 - 第十一章结构体与共用体参考答案............................................................................ - 34 - 第十二章文件参考答案........................................................................................ - 35 -全国计算机等级考试二级教程C 语言习题集参考答案- 2 - 第一章C语言基础知识参考答案一,选择题1 C2 D3 A4 C5 A6 D7 C 分析:C答案以数字开头了8 D 分析:int 是关键字9 C 10 D 11 B12 D 分析:Visual C++6.0中int类型的变量占的字节数为4。
c语言循环语句例题讲解
假设我们有一个简单的例题,要求使用C语言编写一个程序来计算并输出1到10的所有整数的平方值。
以下是一个使用循环语句的C程序来解决这个问题:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
int square = i * i;
printf("%d 的平方是%d\n", i, square);
}
return 0;
}
在这个例子中,我们使用了for循环语句来迭代1到10的所有整数。
循环的初始条件是`i = 1`,循环终止条件是`i <= 10`,每次循环后`i`的值会自增。
在循环体内,我们计算了`i`的平方值,并使用`printf`函数输出结果。
运行这个程序,将会得到如下输出:
1 的平方是1
2 的平方是4
3 的平方是9
4 的平方是16
5 的平方是25
6 的平方是36
7 的平方是49
8 的平方是64
9 的平方是81
10 的平方是100
这个例题展示了如何使用C语言的循环语句来解决一个简单的问题。
除了for循环外,C 语言还提供了while循环和do-while循环,它们也可以用来解决类似的问题。
C语言(分支与循环)习题与答案
printf(“%d%d%d\n”,a,b,c);
else printf(“%d%d%d\n”,a,b,c);
else printf(“%d%d%d\n”,a,b,c);
}
程序运行后的输出结果是()。
A.1 3 3
B.3 2 1
C.1 2 3
D.1 3 2
正确答案:A
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出结果是()。
A.4
B.3
C.编译时有错,无结果
D.2
正确答案:B
5、若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是()。
if(x>y)
if(y<z) printf("%d", ++z);
else printf("%d", ++y);
printf("%d\n", x++);
}
程序的运行结果是()。
A.2
B.1
C.41
D.331
正确答案:B
解析:B、注意if-else配对问题,else总是和它上面为未配对的if形成一个语句。
D.875421
正确答案:B
8、int a=1,b=2, c=3, t;
while (a<b<c) {t=a; a=b; b=t; c--;}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单选题
1.以下关于循环的描述中,错误的是:( )。
A.可以用for语句实现的循环一定可以用while语句实现
B.可以用while语句实现的循环一定可以用for语句实现
C.可以用do...while语句实现的循环一定可以用while语句实现
D.do...while语句与while语句的区别仅仅是关键字while的位置不同
for(i=0,j=0; (j!=10)&&(i<5); i++);
A.无限次B.4次C.5次D.6次
(知识点:for语句; 难度系数:1; 答案:C )
18.下述语句执行后,变量i的值是:( )。
int i;
for(i=1;i++<3;);
printf("%d",i);
A.1B.2C.3D.4
(知识点:for语句; 难度系数:2; 答案:D )
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
(知识点:for语句; 难度系数:1; 答案:D )
15.对于for(表达式1;;表达式3)可理解为:( )。
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式3;表达式3)
(知识点:循环的基本概念; 难度系数:1; 答案:B )
3.以下关于循环体的描述中,错误的是:( )。
A.循环体中可以出现break语句
B.循环体中可以出现continue语句
C.循环体中不能出现switch语句
D.循环体中还可以出现循环语句
(知识点:循环的基本概念; 难度系数:1; 答案:C )
4.在while(x)语句中的x与下面条件表达式等价的是:( )。
则以下说法正确的是:( )。
A.程序段执行无限次B.程序段中的do...while表达式不合法
C.程序段运行后输出0D.程序段运行后输出1
(知识点:do...while语句; 难度系数:1; 答案:A )
13.有以下程序段:
int x=-1;
do
{
x=x*x;
}while(!x);
则以下说法正确的是:( )。
B.只有do...while语句构成的循环能用break语句退出
C.用do...while语句构成循环时,在while后的表达式为零时不一定结束循环
D.用do...while语句构成循环时,在while后的表达式为零时结束循环
(知识点:do...while语句; 难度系数:1; 答案:D )
10.以下关于do...while语句的叙述中,正确的是:( )。
while循环执行的次数是:( )。
A.无限次B.有语法错,不能执行
C.一次也不执行D.执行一次
(知识点:while语句; 难度系数:1; 答案:A )
7.有以下程序段:
int x=0;
while(x=1)
{……}
则以下叙述中正确的是:( )。
A.循环控制表达式的值为0B.循环控制表达式的值为1
C.循环控制表达式不合法D.以上说法都不正确
A.是无限循环B.循环执行两次
C.循环执行一次D.循环条件不合法
(知识点:do...while语句; 难度系数:1; 答案:C )
14.下面有关for循环的正确描述是:( )。
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
19.以下程序段中,内重循环总的执行次数是:( )。
int i,j;
for(i=5;i>0;i--)
for(j=0;j<4;j++)
{……}
A.20次B.24次C.25次D.30次
(知识点:循环的嵌套; 难度系数:1; 答案:A )
20.以下程序段的输出结果是:( )。
(知识点:while语句; 难度系数:1; 答案:B )
8.下述语句执行后,变量k的值是:( )。
int k=0;
while(k++<2);
printf("%d",k);
A.2B.3C.01D.12
(知识点:while语句; 难度系数:2; 答案:B)
9.以下叙述正确的是:( )。
A.do...while语句构成的循环不能用其他语句构成的循环代替
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++;
A.do...while的循环体至少无条件执行一次
B.while的循环控制条件比do...while的循环控制条件严格
C.do...while允许从外部转到循环体内
D.do...while的循环体不能是复合语句
(知识点:do...while语句; 难度系数:1; 答案:A )
11.该程序段的输出结果是:( )。
(知识点:for语句; 难度系数:1; 答案:B )
16.以下循环体的执行次数是:( )。
main()
{
int i,j;
for(i=0,j=1;i<=j+1;i++,j--)
printf("%d\n",i);
}
A.3B.2C.1D.0
(知识点:for语句; 难度系数:1; 答案:B )
17.以下for语句运行时循环次数是:( )。
main()
{
int n=9;
do
{
n--;
printf("%d",n);
}whilห้องสมุดไป่ตู้(n>6);
}
A.987B.876C.8765D.9876
(知识点:do...while语句; 难度系数:1; 答案:B )
12.有以下程序段:
int i=0,s=0;
do
{
s=++i;
}while(i!=0);
printf("%d",s);
(知识点:循环的基本概念; 难度系数:1; 答案:D )
2.以下关于循环的描述中,错误的是:( )。
A.while、do...while和for语句的循环体都可以是空语句
B.for和do...while语句都是先执行循环体,后进行循环条件判断
C.while语句是先进行循环条件判断,后执行循环体的
D.使用while和do...while语句时,循环变量初始化的操作应在循环语句之前完成