C语言循环数组练习题
C语言循环习题
循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;A 9B 10C 11D 122.下面程序的循环次数是:#include<>void main(){int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}printf(“k=%d\n”,k);}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是()#include<>void main(){int s,k;for(s=1,k=2;k<5;k++)s=s+k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:#include<>void main(){int i;for(i=0;i<= ;)printf(“i=%d\n”,i=i+2);} (显示的是:2,4,6,8,10,12, (20)A 9B 10C 18D 205.运行下面程序:#include<>void main(){int i=10,j=0;do{j=j+i; /*第一:10,第二:19第三:27第四:34第五:40*/i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include <>main(){int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)/*当循环开始的时候时,k=0,此时和10取3余的结果就等于0,就跳出了for循环开始下面的循环*/ break;elsek--;}k=k+11;a=a+k;printf(“k=%d \n a=%d\n”,k,a);}则输出的结果是()A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:A. do---while语句构成的循环不能用其他语句构成的循环来代替。
3C语言循环+数组习题
第一部分循环题目大纲:while语句。
do—while语句。
for语句。
循环的嵌套。
break语句和continue语句。
循环语句程序举例。
一:选择题1.下面有关for循环的正确描述是( )A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判定表达式C.在for循环中,不能用break语句跳出循环体D.for循环体语句中,可以包含多条语句,但要用花括号括起来[解答]:D。
2.对于for(表达式1;;表达式3)可理解为()A.for(表达式1;1;表达式3)B.for(表达式1:1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)[解答]:B。
3.以下正确的描述是()。
A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句[解答]:B。
4.C语言中( )。
A.不能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环D.do—while语句构成的循环,当while语句中的表达式值为零时结束循环[解答]:D。
5.C语言中while和do-while循环的主要区别是( )A.do—while的循环体至少无条件执行一次B.while的循环控制条件比do—while的循环控制条件严格C.do—while允许从外部转到循环体内D.do-while的循环体不能是复合语句[解答]:A。
6.下面程序段不是死循环的是()。
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(s);while(k>=0); --s;[解答]:A。
c语言循环结构上机习题
1、计算n的阶乘(n!),n的取值在1~10之间。
分别使用while、do…while和for 语句实现。
(三个程序)给循环变量赋初值循环条件循环体循环变量的增值2、输入一行字符,分别统计输入了多少个字母、数字、空格和其他字符。
3、假设函数f(x)=3x2+2x+1,试利用for循环语句分别求出1<=x<=9的f(1)~f(9)各函数值。
4、有分数序列2/1,3/2,5/3,8/5,13/8,21/13…求这个数列的前20项和。
(分析提示:每个分子等于前一个数据分子与分母的和,每个分母等于前一个数据的分子)5、输出显示1~100之间可以被n整除的所有整数,运行时n由键盘输入。
要求每一行显示5个数,并且统计一共有多少个整数能被n整除。
6、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。
main(){ float x,amax,amin;scanf("%f",&x);amax=x;amin=x;while( ①){ if(x>amax) amax=x;if( ②) amin=x;scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,a min);}7、使用循环语句输出以下图形8、有一个数学等式:AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。
8、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。
分析:这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组:100=x*5+y*3+z/3100=x+y+z这里x,y,z为正整数,且z是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z 的取值范围:1) x的取值范围为1~202) y的取值范围为1~333) z的取值范围为3~99,步长为3对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。
c语言数组编程题目
c语言数组编程题目含详解共5道1. 计算数组元素的和编写一个程序,计算给定数组中所有元素的和。
```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);int sum = 0;for (int i = 0; i < n; ++i) {sum += arr[i];}printf("数组元素的和: %d\n", sum);return 0;}```2. 查找数组中的最大值和最小值编写一个程序,查找给定数组中的最大值和最小值。
```c#include <stdio.h>int main() {int arr[] = {5, 2, 8, 1, 4};int n = sizeof(arr) / sizeof(arr[0]);int max = arr[0];int min = arr[0];for (int i = 1; i < n; ++i) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}printf("最大值: %d\n", max);printf("最小值: %d\n", min);return 0;}```3. 反转数组元素的顺序编写一个程序,反转给定数组的元素顺序。
```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);int temp;for (int i = 0; i < n / 2; ++i) {temp = arr[i];arr[i] = arr[n - i - 1];arr[n - i - 1] = temp;}printf("反转后的数组: ");for (int i = 0; i < n; ++i) {printf("%d ", arr[i]);}return 0;}```4. 删除数组中的指定元素编写一个程序,删除给定数组中的指定元素。
C语言阶段性测验(选择循环数组字符串)
A.1
B.2
C.3
D.4
20.执行以下程序段后,变量 x,y,z 的值分别为( )。
int a=1,b=0, x, y, z;
x=(--a==b++)?--a:++b;
y=a++; z=b;
A.x=0,y=0,z=0
B.x= -1,y= -1,z= 1
C.x=0,y=1,z=0
D.x= -1,y= 2, z= 1
}
A.10192
B.9876
C.10990
D.101091
32.当执行以下程序段时(
)。
x=-1;
do
{x=x*x;}
while (!x);
A.循环体将执行一次
B.循环体将执行两次
C.循环体将执行无数多次
D.系统将提示有语法错误
33.执行以下程序后输出的结果是(
)。
main()
{ int y=10;
)。
1
x>0
A.if (x>0) y=1; else if (x==0) y=0; else y= -1;
B.y=0; if (x>0) y=1;
else if (x<0) y= -1;
C.y=0; if (x>=0)
if(x>0) y=1; else y= -1;
D.if (x>=0) if (x>0) y=1;
}
A.x=4,y=4,a=1
B.x=5,y=5,a=1
C.x=5,y=4,a=3
D.x=5,y=4,a=1
35.若 i,j 已定义为 int 类型,则以下程序段中内循环的总的执行次数是 (
c语言循环语句例题
c语言循环语句例题以下是一些关于C语言循环语句的例题:1. 请编写一个程序,利用for循环计算1到10的累加和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 10; i++) {sum += i;}printf("1到10的累加和为:%d\n", sum);return 0;}```2. 请编写一个程序,利用while循环求出用户输入的正整数的阶乘。
```c#include <stdio.h>int main() {int n, fact = 1;printf("请输入一个正整数:");scanf("%d", &n);int i = 1;while (i <= n) {fact *= i;i++;}printf("%d的阶乘为:%d\n", n, fact);return 0;}```3. 请编写一个程序,利用do-while循环输出1到10之间的所有偶数。
```c#include <stdio.h>int main() {int i = 1;do {if (i % 2 == 0) {printf("%d ", i);}i++;} while (i <= 10);printf("\n");return 0;}```4. 请编写一个程序,利用嵌套循环输出如下图案:```***************``````c#include <stdio.h>int main() {int rows = 5;for (int i = 1; i <= rows; i++) {for (int j = 1; j <= i; j++) {printf("*");}printf("\n");}return 0;}```这些例题涵盖了for、while、do-while等不同类型的循环语句,希望能对您的学习有所帮助!。
C语言练习3(数组)=参考解答
C语言(数组)一、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填入:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%d\n",a[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后面的常量表达式用一对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后一个数组元素为( C ).A) a[0]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义一个一维数组时,不能用来表示数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占用的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪一个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪一个不成立( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后一个元素的引用C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( C ).for(i=0;i<3;i++) printf("%d",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该二维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输入字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( D ).A) int a[ ] = "string";B) int a[5]={0,1,2,3,4,5};C) char a= "string";D) char a[ ]={'0','1','2','3'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪几个语句成立( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a[10];D) a数组第一个元素的引用方法是a[1];二、判断题1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。
C语言循环数组练习题
C语言循环数组练习题循环数组练习题一.选择题1.for(i=0;i<10;i++);结束后,i的值是;BA 9B 10C 11D 122.下面程序的循环次数是:Dint k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是()main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;else}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是()A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是: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);}该程序的执行结果是:A 3 2 1B 2 1 0D 29.若k为整型变量,则下面while循环执行的次数为:k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环的正确描述是A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。
C语言全国试题(五-循环结构程序设计)
填空题(全国二级C 2008C2-8)
若有定义:int k;,以下程 序段的输出结果是__#_#_2_#_#_4__。
for (k=2; k<6; k++,k++ ) printf (“##%d”,k);
选择题(全国二级C 2007Q1-22)
C 有以下程序,程序的运行结果是 。
#include <stdio.h>
{ 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) 40
选择题(全国二级C 2005Q1-27)
设变量已正确定义,则以下能正确
计算f=n!的程序段是 D 。
有以下程序段,且变量已正确定义和赋值
for ( s=1.0,k=1;k<=n; k++ ) s=s+1.0/(k*(k+1));
printf(“s=%f\n\n”,s); 请填空,使下面程序段的功能与之完全相同
s=1.0; k=1; while ( ___k_<_=_n__ ) { s=s+1.0/(k*(k+1)); __k_+_+__ ; } printf(“s=%f\n\n”,s);
以下程序的功能是计算: s=1+12+123+1234+12345。请填空。 main( ) { int t=0, s=0, i; for(i=1; i<=5; i++)
数组c语言试题库及答案
数组c语言试题库及答案1. 请解释C语言中数组的概念。
答:在C语言中,数组是一种数据结构,它允许将多个相同类型的数据项存储在连续的内存位置。
数组可以是一维的,也可以是多维的。
2. 如何声明一个整型数组?答:声明一个整型数组的语法是 `int array_name[size];`,其中`array_name` 是数组的名字,`size` 是数组中元素的数量。
3. 请写出一个程序,用于计算一个整型数组中所有元素的和。
```c#include <stdio.h>int main() {int array[] = {1, 2, 3, 4, 5};int sum = 0;for(int i = 0; i < 5; i++) {sum += array[i];}printf("Sum of array elements: %d\n", sum);return 0;}```4. 如果一个数组的元素数量是动态的,应该如何声明?答:在C语言中,可以使用指针来处理动态数组。
声明方式为`int *array_name;`,然后在程序中使用 `malloc` 或 `calloc` 函数分配内存。
5. 请解释数组的索引。
答:数组的索引是从0开始的,它表示数组中元素的位置。
例如,对于一个名为 `array` 的数组,`array[0]` 是数组的第一个元素。
6. 如何初始化一个整型数组?答:可以使用花括号 `{}` 来初始化数组,例如 `int array[] = {1, 2, 3, 4, 5};`。
7. 请写出一个程序,用于交换数组中的两个元素。
```c#include <stdio.h>int main() {int array[] = {1, 2, 3, 4, 5};int temp;int index1 = 1; // 第二个元素int index2 = 3; // 第四个元素temp = array[index1];array[index1] = array[index2];array[index2] = temp;for(int i = 0; i < 5; i++) {printf("%d ", array[i]);}return 0;}```8. 在C语言中,数组的元素可以是什么数据类型?答:数组的元素可以是任何数据类型,包括整型、浮点型、字符型、结构体等。
(完整版)C语言基础练习题(含答案)
目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。
(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.Void C._3com_ D.int9.一个C程序是由()。
(完整版)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 556.运行下面程序#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 10D 无限次10.下面有关for 循环的正确描述是(D)A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for 循环中,不能用break 语句跳出循环体。
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,下列语句序列执行后,i的值是:( )int i = 10;do {i = i/2;i--;} while( i> 1 );A. 1B. 5C. 2D. -12,假设代码完整,执行下面代码结果()for(int k=0; ; k++){printf(“这是:%d”,k);}A, 语法错误,缺少条件B, 程序什么都不输出C,死循环D, 输出:这是03,阅读下面代码,正确的运行结果是()int num = 6;for(int i=1; i<= 10; i++){if((i+num)>8){break;}printf(”%d\t”,i);}A,1 2B,7 8 9 10C,1 2 3 4D,5 6 7 84,关于以下说法正确的是()(选择两项)for(①; ②; ③){if(条件){continue ;}④}A,if条件不成立时到④,再到②B,if条件不成立时到④,再到③C,if条件成立时到③,再到②D,if条件成立时到④,再到③5,关于以下说法正确的是()(选择两项)for(①; ②; ③){if(条件){break;}④}⑤A,if条件不成立时到④,再到②B,if条件不成立时到④,再到③C,if条件成立时到④,再到⑤D,if条件成立时到⑤6,下列代码输出结果是( )int i=10;while(i>0){i=i+1;if(i= =10){break;}}A.while循环执行10次B.死循环C.循环一次都不执行D.循环执行一次7,下面有关for循环的描述正确的是().A.for循环体语句中,可以包含多条语句,但要用大括号括起来B.for循环只能用于循环次数已经确定的情况C.在for循环中,不能使用break语句跳出循环D.for循环是先执行循环体语句,后进行条件判断8,以下关于循环结构特点描述不正确的是()A. 循环结构需要循环操作B. 循环结构需要循环条件C. 循环结构可以不要循环变量D. 循环结构如果不改变循环变量会出现死循环9,执行下面代码结果()for(int i=0;;){printf("这是%d",i);break;}A 语法错误,缺少表达式2和表达式3B 死循环C 程序什么都不输出D 输出:这是0;10,执行下面代码结果()for(int i=1;i<100;i++){switch(i){case 1:if(i==1){i=i+10;break;}break;case 2:if(i==2){i+=10;break;}break;}printf(“%d\t”,i);}A.输出11到99B.输出10 20 30 40 50 60 70 80 90C.语法错误在一个case中有两个break;D.输出11结束循环11,下面关于跳转语句说法不正确的是()(选择两项)A. break语句只终止一次循环不影响下一次循环的进行B. break语句可以终止循环的进行C. continue语句只终止一次循环D. continue语句可以终止循环的进行12,下面代码输出结果是()。
c语言数组程序结果题
c语言数组程序结果题
以下是一个简单的C 语言程序,演示了如何使用数组来存储和输出一些数字:
c
#include<stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5}; // 声明一个包含5个整数的数组
int i;
printf("数组元素为:\n");
for (i = 0; i < 5; i++) {
printf("%d ", arr[i]); // 输出数组元素
}
printf("\n");
return0;
}
这个程序首先声明了一个包含5个整数的数组arr,并初始化了一些值。
然后使
用for循环遍历数组中的每个元素,并使用printf函数将它们输出到屏幕上。
程序的输出将是:
数组元素为:
1 2 3 4 5
需要注意的是,数组的索引从0开始,因此在这个例子中,数组arr的第一个元素是arr[0],第二个元素是arr[1],以此类推。
数组练习题及答案
数组练习题及答案问题1:数组的基本操作题目:编写一个程序,实现以下功能:1. 初始化一个整型数组,大小为10,所有元素初始化为0。
2. 将数组中的元素依次设置为1到10。
3. 输出数组中的所有元素。
答案:```c#include <stdio.h>int main() {int arr[10] = {0};for (int i = 0; i < 10; i++) {arr[i] = i + 1;}for (int i = 0; i < 10; i++) {printf("%d ", arr[i]);}return 0;}```问题2:数组的反转题目:编写一个函数,实现对整数数组的反转。
答案:```cvoid reverseArray(int arr[], int size) {int start = 0;int end = size - 1;while (start < end) {int temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}}```问题3:数组的查找题目:编写一个函数,实现在数组中查找特定元素的索引,如果找到返回该元素的索引,如果未找到返回-1。
答案:```cint findElement(int arr[], int size, int element) {for (int i = 0; i < size; i++) {if (arr[i] == element) {return i;}return -1;}```问题4:数组的排序题目:使用冒泡排序算法对整数数组进行排序。
答案:```cvoid bubbleSort(int arr[], int size) {for (int i = 0; i < size - 1; i++) {for (int j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}```问题5:数组的动态扩展题目:编写一个函数,实现对数组的动态扩展,使其能够存储更多的答案:```cvoid dynamicArrayExpansion(int *arr, int *size, int capacity, int newElement) {if (*size >= capacity) {int newCapacity = capacity * 2;int *newArr = (int *)malloc(newCapacity *sizeof(int));for (int i = 0; i < *size; i++) {newArr[i] = arr[i];}free(arr);arr = newArr;capacity = newCapacity;}arr[(*size)++] = newElement;}```结束语:这些练习题涵盖了数组的基本操作、查找、排序和动态扩展等常见问题,希望能够帮助您更好地理解和掌握数组的使用。
c语言循环训练题
c语言循环训练题以下是C语言循环训练题:计算1到100之间所有奇数的和。
输出1到100之间的所有偶数。
求出1到100之间所有3的倍数的和。
输出一个5x5的矩阵,其中每个元素都是从1到25的随机整数。
计算一个数列中所有数字的和,其中数列中的数字依次为1、2、3、...、n。
输出一个数列中所有数字的积,其中数列中的数字依次为1、2、3、...、n。
计算一个数列中所有数字的阶乘之和,其中数列中的数字依次为1、2、3、...、n。
输出一个数列中所有数字的阶乘之积,其中数列中的数字依次为1、2、3、...、n。
计算一个数列中所有数字的平方和,其中数列中的数字依次为1、2、3、...、n。
输出一个数列中所有数字的平方积,其中数列中的数字依次为1、2、3、...、n。
计算一个数列中所有数字的立方和,其中数列中的数字依次为1、2、3、...、n。
输出一个数列中所有数字的立方积,其中数列中的数字依次为1、2、3、...、n。
计算一个数列中所有数字的倒数的和,其中数列中的数字依次为1、2、3、...、n。
输出一个数列中所有数字的倒数的积,其中数列中的数字依次为1、2、3、...、n。
计算一个数列中所有数字的四次方和,其中数列中的数字依次为1、2、3、...、n。
输出一个数列中所有数字的四次方积,其中数列中的数字依次为1、2、3、...、n。
计算一个数列中所有数字的绝对值之和,其中数列中的数字依次为1、2、3、...、n。
输出一个数列中所有数字的绝对值之积,其中数列中的数字依次为1、2、3、...、n。
计算一个数列中所有数字的平方根之和,其中数列中的数字依次为1、2、3、...、n。
输出一个数列中所有数字的平方根之积,其中数列中的数字依次为1。
c语言练习题——循环和数组
}if(sum == n){printf("%d ", n);}}return0;}运行结果:6 28 496--------------------------------Process exited after 0.1057 seconds with return value 0请按任意键继续. . .2.程序代码:#include<stdio.h>int main(void){/*********Begin*********/int m,n,a,b,t;scanf("%d%d",&m,&n);t=m%n;if(m<n){t=m;m=n;n=t;}a=m;b=n;while(b!=0){t=a%b;a=b;b=t;}printf("最大公约数是:%d\n最小公倍数是:%d",a,m*n/a);return0;}运行结果:14 36最大公约数是:2最小公倍数是:252--------------------------------Process exited after 6.1 93 seconds with return value 0 请按任意键继续. . .3.程序代码:#include<stdio.h>int main(){int i;double f=1,sum=0;for(i=1;i<=20;i++){f=f*i;sum+=f;}printf("%f",sum);return0;}运行结果:2561327494111820300.000000--------------------------------Process exited after 0.03475 seconds with return value 0 请按任意键继续. . .4.程序代码#include<stdio.h>int main(){ int i;double a,b,s,t;a=2;b=1;s=a/b;for(i=1;i<20;i++) {t=b;b=a;a=a+t;s=s+a/b;}printf("sum=%.2lf\n",s);return0;}运行结果sum=32.66--------------------------------Process exited after 0.03287 seconds with return value 0 请按任意键继续. . .5.程序代码#include<stdio.h>#define N 50int main(){int a[N][N],i,j,n;scanf("%d",&n); //输入打印行数for(i=0;i<=n;i++){a[i][0]=1;a[i][i]=1;}for(i=1;i<n;i++)for(j=1;j<n;j++){a[i][j]=a[i-1][j]+a[i-1][j-1];}for(i=0;i<n;i++){for(j=0;j<i+1;j++){printf("%d\t",a[i][j]);}printf("\n");}return0;}运行结果611 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1--------------------------------Process exited after 12.06 seconds with return value 0 请按任意键继续. . .6.程序代码#include<stdio.h>#define M 5#define N 3int main(){/*********Begin*********/double average,sum;int a[M][N],i,j;for(i=0;i<M;i++){for(j=0;j<N;j++)scanf("%d",&a[i][j]);}printf("每个学生的平均分:\n");for(i=0;i<M;i++){for(j=0,sum=0;j<N;j++){sum+=a[i][j];average=sum/N;printf("%d ",a[i][j]);}printf("%.1f",average);printf("\n");}printf("每门课的平均分:\n");for(j=0;j<N;j++){for(i=0,sum=0;i<M;i++){sum+=a[i][j];average=sum/M;}printf("%.1f ",average);}return0;}运行结果85 78 88 60 90 80 91 79 92 50 84 83 45 86 80每个学生的平均分:85 78 88 83.760 90 80 76.791 79 92 87.350 84 83 72.345 86 80 70.3每门课的平均分:66.2 83.4 84.6--------------------------------Process exited after 19.6 seconds with return value 0 请按任意键继续. . .7.程序代码#include<stdio.h>int main() {int a[3][3];int i, j;int sum;for(i = 0; i < 3; i++)for(j = 0; j < 3; j++)scanf("%d", &a[i][j]);for(i = 0; i < 3; i++)for(j = 0; j < 3; j++)if((i == j) || (i + j == 2))sum = sum + a[i][j];printf("%d",sum);return0;}运行结果1 2 3 4 5 6 7 8 925--------------------------------Process exited after 25.93 seconds with return value 0请按任意键继续. . .8.程序代码#include<stdio.h>#include<stdlib.h>#define M 10#define S 10#define N 10int main(){/********** Begin **********/int a[M][S], b[S][M], c[M][N], i,j,k;int m,s,n;scanf("%d", &m);scanf("%d", &s);scanf("%d", &n);for(i=0; i<m ;i++){for(j=0; j<s; j++){scanf("%d", &a[i][j]);}}for(i=0; i<s; i++){for(j=0; j<n; j++){scanf("%d", &b[i][j]);}}for(i=0; i<m; i++){for(j=0; j<n; j++){c[i][j] = 0;for(k=0; k<s; k++){c[i][j] = c[i][j]+a[i][k]*b[k][j] ;}}}for(i=0; i<m; i++){for(j=0; j<n; j++){printf("%d\t", c[i][j]);}printf("\n") ;}/********** End **********/return0;}运行结果3 2 32 3 1 -2 3 11 -2 -3 2 -1 08 -7 -6-3 0 -35 -7 -9--------------------------------Process exited after 21.96 seconds with return value 0请按任意键继续. . .9.程序代码#include<stdio.h>#define N 100int main(){/********** Begin **********/int a[N],i,n,x,j;scanf("%d\n",&n);for(i=0;i<n;i++){scanf("%d \n",&a[i]);}scanf("%d",&x);while( a[j]<=x && j<n ){j++; //找不到比x大的元素时也要退出循环}for(i=n-1;i>=j;i-- ){a[i+1]=a[i];}a[j]=x;for(i=0;i<=n;i++)printf("%d ",a[i]);/********** End **********/return0;}运行结果1010 15 42 52 59 64 67 73 82 886010 15 42 52 59 60 64 67 73 82 88--------------------------------Process exited after 1.863 seconds with return value 0 请按任意键继续. . .10.程序代码#include<stdio.h>int main()。
c语言循环语句训练题
printf("%c ",c1-l);
c1-=1;
printf("\n");
d-=1;
}
}
9.判断n!末尾零的个数;
#include<stdio.h>
int main()
{ int n,x,num,i;
scanf("%d",&n);
x=1;num=0;
//getchar();
else printf("不包含");
4.找出1至n所有能被3整除且仅含有一个5的整数(修改)
#include<stdio.h>
int main()
{
int i,ii,x,flag;
scanf("%d",&x);
for(i=1;i<=x;++i)
{ flag=-1;
ii=i;
while(ii)
{
if(ii%10==5) flag++;
for(i=1;i<=n;++i)
x*=i;
while(!(x%10))
{
num++;
x/=10;
}
printf("the number of background zero is %d",num);
}
10.
11.此处文件的作用在未学习数组时顶替其作用)(#include<stdio.h>
int main()
输入r进制小数字串将其转换为十进制小数输出打印下边两个图形末尾零的个数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环数组练习题一.选择题1.for(i=0;i<10;i++);结束后,i的值是;BA 9B 10C 11D 122.下面程序的循环次数是:Dint k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是()main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 556.运行下面程序#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);}则输出的结果是()A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是: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);}该程序的执行结果是:A 3 2 1B 2 1 0C 3D 29.若k为整型变量,则下面while循环执行的次数为:k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环的正确描述是A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。
D.for循环的循环体语句汇总,可以包含多条语句,但必须用花括号括起来。
11.运行下面程序#include<stdio.h>int 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);return 0;}则输出的结果是()。
A. 21 32B. 21 33C. 11 12D. 10 11 12.若i为整型变量,则以下循环执行的次数是()for(i=2;i==0;)p rintf(“%d”,i--);A.无限次 B 0次 C 1次 D 2次13.以下循环体的执行次数是;main(){int I,j;for(i=0,j=3;i<=j;i+=2,j--)printf(“%d\n”,i);}A 3B 2C 1D 014.执行以下程序后,输出结果是:main(){ int y=10;do { y--;}while(--y);printf(“%d”,y--);}A -1B 1C 8D 015 以下程序的输出结果是: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 101B 3C 4D 516、以下程序的运行结果是()。
#include <stdio.h>int main( ){int n[5]={0,0,0},i,k=2;for (i=0;i<k;i++) n[i]=n[i]+1;printf (”%d\n”,n[k]);return 0;}A. 不确定的值B. 2C. 1D. 017、若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是()。
A. a[2][!1]B. a[2][3]C. a[0][3]D. a[1>2][ !1]18、以下程序的运行结果是()。
#include <stdio.h>int main( ){int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;for(i=0;i<3;i++)for(k=i+i;k<4;k++)if(a[i][i]<a[k][k]){t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}for(i=0;i<4;i++) printf(“%d,”,a[0][i]);return 0;}A.6,2,1,1,B. 6,4,3,2,C. 1,1,2,6,D. 2,3,4,6,19、若有说明:int a[3][4]={0};则下面正确的叙述是()。
A. 只有元素a[0][0]可得到初值0B. 此说明语句不正确C. 数组a中各元素都可得到初值,但其值不一定为0D. 数组a中每个元素均可得到初值020、设有数组定义:char array[]=“china”,则数组array所占的空间为()。
A. 4个字节B. 5个字节C. 6个字节D. 7个字节21、当执行下面的程序时,若输入ABC,则运行结果是()。
#include <stdio.h>#include<string.h>int main( ){char ss[10]=“1,2,3,4,5”;gets (ss);strc at(ss, “6789”);printf(“%s\n”,ss);}A.ABCB.ABC6789C.123456789D.ABC,3,4,522、为了判断两个字符串str1和str2是否相等,应当使用()。
A.if(str1==str2)B.if(str1=str2)C.if(strcmp(str1,str2))D.if(strcmp(str1,str2)==0)23、以下程序的运行结果是()。
#include <stdio.h>voidmain( ){char arr[2][4];strcpy(arr[0],”you”);strcpy(arr[1],”me”);arr[0][3]=…&‟;printf(“%s\n”,arr);}A.you&meB.youC.meD.err24、以下程序段的运行结果是()。
printf(“%d\n”, strlen(“ATS\n012\1\\”));A. 11B. 10C. 9D. 825、当执行下面的程序时,若输入ABC,则运行结果是()。
#include <stdio.h>#include<string.h>int main( ){char ss[10]=“1,2,3,4,5”;gets (ss);strc at(ss, “6789”);printf(“%s\n”,ss);}A.ABCB.ABC6789C.123456789D.ABC,3,4,5二、填空题1.以下程序的运行结果是。
#include <stdio.h>intmain( ){ int a=2,b=8;while(b--<0)b-=a ;a++ ;printf(“a=%d,b=%d\n”,a,b);return 0;}2.下面程序的运行结果为: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 回车,则下面程序运行的结果是:main(){ int n,k=0;do{ scanf(“%d”,&n);k+=n;}while(n!=-1);printf(“k=%d,n=%d”,k,n);}4.下面程序的运行结果为:main(){int i,j,s=0;for(i=1,j=5;i<j;i++,j--)s+=i*10+j;printf(“\n%d”,s);}5.下面程序的运行结果是main(){int i=10,s=0;for(;--i;)if(i%3==0)s+=i;s++;printf(“\ns=%d”,s);}6.下面程序的运行结果是main(){int a=2,n=5,s;s=a;for(;--n;)s=s*10+a;printf(“%d”,s);}7.下面的程序运行时,循环体语句“a++”运行的次数为:main(){int i,j,a=0;for(i=0;i<2;i++)for(j=4,j>=0;j--)a++;}8.下面的程序运行后,a的值为:main(){ int i,j,a=0;for(i=0;i<2;i++) a++;for(j=4,j>=0;j--) a++;}9.下面程序的运行结果为:int i=1,s=3;do{s+=i++;if(s%7==0) continue;else ++i;}while(s<15);printf(“%d”,i);10.当运行以下程序时,从键盘输入China# 回车,则下面程序的运行结果是:#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);}11、以下程序若输入AabD↙,运行结果是:。
#include <stdio.h>int main( ){char s[80];int i=0;gets(s);while (s[i]!=…\0‟){if (s[i]<=…z‟ && s[i]>=…a‟)s[i]=…z‟+‟a‟-s[i] ;i++;}puts(s);return 0;}12、以下程序若输入7 4 8 9 1 5↙,运行结果是:。