C语言练习2(选择和循环结构)

合集下载

C语言循环结构选择题(新)2

C语言循环结构选择题(新)2

C语言循环结构选择题(新)2循环结构练习一1、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是for (i=5;i;i--)for (j=0;j<4;j++){...}A) 20 B) 25 C) 24 D) 302、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为for(i=0,j=10;i<=j;i++,j--) k=i+j;A) 12 B) 10 C) 11 D) 93、当执行以下程序段时x=-1;do { x=x*x;} while( !x);A) 循环体将执行一次 B) 循环体将执行两次C) 循环体将执行无限次 D) 系统将提示有语法错误4、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。

while((ch=getchar())=='e') printf("*");A) 5 B) 4 C) 6 D) 15、有以下程序段int k=0;while (k=1) k++;while循环执行的次数是A) 无限次 B) 有语法错,不能执行 C) 一次也不执行D) 执行一次6、语句while(!e);中的条件 !e 等价于( )。

A) e==0 B) e!=1 C) e!=0 D) ~e7、以下for循环是( )。

for(x=0,y=0;(y!=123) && (x<4);x++)A) 无限循环 B) 循环次数不定 C) 执行4次 D) 执行3次8、C语言中while 和do-while 循环的主要区别是( )。

A) do-while的循环体至少无条件执行一次B) while 的循环控制条件比do-while 的循环控制条件严格C) do-while 允许从外部转到循环体内D) do-while 的循环体不能是复合语句9、以下叙述正确的是( )。

A) continue语句的作用是结束整个循环的执行B) 只能在循环体内和switch语句体内使用break语句C) 在循环体内使用break语句或continue语句的作用相同D) 从多层循环嵌套中退出时,只能使用goto语句10、对下面程序段,描述正确的是( )。

c语言顺序结构和选择结构练习题

c语言顺序结构和选择结构练习题

C语言循环结构前的练习一、选择题:(2’*25=50)1、以下程序的输出结果为( C )# include “stdio.h”main(){ int i=4,a;a=i++;printf(“a=%d,i=%d”,a,i);}A)a=4,i=4 B)a=5,i=4 C)a=4,i=5 D)a=5,i=52、以下叙述中正确的是( C )。

A)C语言程序总是从第一个定义的函数开始执行。

B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行。

D)C语言程序中的main()函数必须放在程序的开始部分。

3、下列选项中不正确的实型常量是( B )A)7.375E-1 B)0.3108e 2 C)-44.44 D)123e-24、在C程序中,可以作为用户标识符的一组标识符是( B )A)void define B)as_b3 _224 ElseC)Switch -wer case D)4b DO SIG5、 int类型变量所占字节数是( D )A)1 B)2 C)3 D)46、以下选项中合法的用户标识符是( B )。

A)long B) _2test C)3dmax D) a.dat7、以下有4组用户标识符,其中合法的一组是( C )。

A) for –sub case B) 4d do sizeC) f2_g3 If abc D) WORD void define8、经char w; int x; float y; double z;说明后表达式 w*x+z-y的类型是( D )。

A) float B) char C) int D) double9、下述程序的输出结果是( C )main(){ int a=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf(“%d,%d,%d”,k,a,b);}A)0,0,3 B)0,1,2 C)1,0,3 D)1,1,2 10、定义int n=5;下面语句的输出结果为( B )。

c语言练习2

c语言练习2

练习2一、选择题1.下面关于语句的说法中,正确的是( A B D)。

A、对程序中使用的变量、数组、函数等进行定义、声明的语句属于说明性语句B、表达式后面加;号构成表达式语句C、复合语句中不允许包含另一条复合语句D、对程序执行流程起控制作用的语句属于控制语句2.下面语句中,错误的是( B )。

A、m=x>y>z;B、float x=y=z;C、m=x,m>y;D、{k=m>n;k?:x,y;}3.下面不正确的if语句形式是( A )。

A、if (x=y;) m++;B、if (x<=y) m++;C、if (x-y) m++;D、if ( x ) m++;4.下面不正确的if语句形式是( C )。

A、if (x=y) ;B、if (x==y) m=0,n=1;C、if (x>=y) m=0 else n=1;D、if ( x!=y ) m=n;5.下面程序的运行结果是(A)。

void main(){int x=7,y=8,z=9;if(x>y)x=y,y=z; z=x;printf("x=%d y=%d z=%d\n",x,y,z);}A、x=7 y=8 z=7B、x=7 y=9 z=7 D、x=8 y=9 z=7 D、x=8 y=9 z=86.下面程序的运行结果是(B)。

void main(){int x=6,y=6;if(++x<y++)printf(“%d\n”,x++);elseprintf(“%d\n”,y++);}A、6B、7C、8D、97.下面程序的运行结果是(D)。

void main(){int x=1,y=2,z=3,m=1if(!x)m--;else if(!y)m=2;else if(!z);else m=3;printf(“m=%d\n”,m);}A、0B、1C、2D、38.在下面的if语句中,功能上具有等价关系的两条if语句是(B)。

C语言循环结构选择题(新)

C语言循环结构选择题(新)
while ((ch=getchar( ))!='\n') { if (ch>='A' && ch<='Z') ch=ch+32;
else if (ch>='a' && ch<'z') ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
A) ABCdef
B) abcDEF
i++;
} while(i!=0);
}
A) 7
B) 6
C) 5
D) 4
C
31、下面程序的运行结果是( )。
main( )
{ int s=0,i=1;
while (s<=10)
{ s=s+i*i;
i++;
}
printf("%d",--i);
}
A) 4
B) 3
C) 5
D) 6
B
32、以下程序的输出结果是( )。
{ int s=0,k;
for(k=7;k>=0;k--)
{switch(k)
{
case 1:
case 4:
case 7: s++; break;
case 2:
case 3:
case 6: break;
case 0:
case 5: s+=2; break; }
}
printf("s=%d\n",s);
for(t=1;t<=100;t++) { scanf("%d",&x);

C语言基础练习题(含答案)

C语言基础练习题(含答案)

第一章C语言基础知识1.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_b3C.For D.2a define _123 -abcDOWORD IF Casesizeof5.下列符号中,不属于转义字符的是()。

A.\\ B.\0xAA C.\tD.\06.不属于C语言关键字的是()。

A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。

A.Float B.signedC.integer D.Char8.以下不能定义为用户标示符的是()。

A.scanf B.Void C._3com_ D.int9.一个C程序是由()。

A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。

A.程序行B.语句C.函数D.字符11.下列说法中,错误的是()。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()。

A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。

计算机二级c语言经典练习题及解析答案

计算机二级c语言经典练习题及解析答案

计算机二级c语言经典练习题及解析答案计算机二级c语言经典练习题及解析答案一、单选题1. C语言中的三大基本数据类型包括( B )A.整型、实型、逻辑型B.整型、实型、字符型C.整型、逻辑型、字符型D.整型、实型、逻辑型、数组型2. 在C语言中,以下合法的字符常量是( c )A. '\048'B. 'ab'C. '\43'D. "\0"3.设x 为 int 型变量,执行下列语句: x=10; x+=x-=x-x; 则x的值为 ( B )A. 15B. 20C. 25D. 304. 定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的输出结果是( C )A. 1 4 7B. 1 5 9C. 3 5 7D. 3 6 95.逗号表达式(a=3*5,a*4),a+15的值是( b )A.15B. 30D. 756. .以下程序的输出结果是( c )。

main( ){ int x=10,y=11;printf("%d,%d\n",x--,--y);}A. 11,11B. 10,11C. 10, 10D.11,107.若一个外部变量的定义形式为static int x ; 其中static的作用是( d )A.将变量存放在静态存储区,使x的值可以永久保留B.使变量x可以由系统自动初始化C.使x的值可以永久保留D.使x只能在本文件内引用8.有如下变量说明:int k=2;则下面的循环共执行多少( d )次while (k!=0) {printf("%d",k);k--;}A.无限多次 B.0次 C.1次 D. 2次9.设有变量说明:int a=7,b=8;那么语句:printf("%d,%d\n",(a+b,a),(b,a+b));的输出应该是( a )A. 7,15B. 8,15C. 15,7D.15,810.若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是( b )A. p+1C. a+1D. ++p11. C语言变量名中不能使用的字符是( d )A. 数字B. 字母C. 下划线D. 关键字12.以下变量定义中合法的是( a )A.short a=2.1e-1;B. double b=1+5e0.5;C. long do=0xffe ;D. float 3_end=1-e3;13.若有说明语句char ch1=′\x79′;则ch1( c )A.包含4个字符B.包含3个字符C. 包含2个字符D.包含1个字符14.C语言中的函数( b )A. 可以嵌套定义B.嵌套调用和递归调用均可C. 不可以嵌套调用D. 可以嵌套调用但不可以递归调用15. 设整形变量a=12;则执行完语句a+=a-=a*a后a的值为( c )A. 552B. 264C. -264D. 14416.设a=1,b=2,c=3,d=4,则表达式:a>b?a:cA.1 B.2 C.3 D.417.若有说明语句:int b[][4]={ 3,1,2,5,7,6,4}; 则b数组的行数为( b )A. 3B. 2C.无确定值D. 118. 若有定义:char c[10];从键盘输入“LiFang”,则正确的函数引用是( c )A. scanf(″%c″,&c[10]);B. gets(c);C. scanf(″%s″,&c);D. gets(c[10]);19. 两个基类型相同的指针变量之间,不能进行的运算是( c )A. <B. =C. +D.-20. 下面程序段执行结果是( b )int i=5,k; k=(++i)+(++i)+(i++); printf("%d,%d",k,i);A. 24,8B. 21,8C. 21,7D. 24,721.以下选项中属于C语言的数据类型是( b )。

国家二级C语言选择结构循环结构机试模拟试卷1_真题(含答案与解析)-交互

国家二级C语言选择结构循环结构机试模拟试卷1_真题(含答案与解析)-交互

国家二级C语言(选择结构、循环结构)机试模拟试卷1(总分66, 做题时间90分钟)1. 选择题1.下列选项中,当x为大于1的奇数时,值为0的表达式是( )。

SSS_SINGLE_SELA x%2==0B x/2C x%2!=0D x%2==1分值: 2答案:A解析:算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。

B选项的值为不定值,但绝对不是O。

C选项的值为真,即1。

D选项的值为真,即1。

2.若a是数值类型,则逻辑表达式(a==1)‖(a!=1)的值是( )。

SSS_SINGLE_SELA 1B 0C 2D 不知道a的值,不能确定分值: 2答案:A解析:逻辑或“‖”要求只要两边的运算对象有一个非零,结果就为真。

虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是l,则右边运算对象的值为1,所以总能保证一边非零。

3.当变量e的值不为2、4、6时,值为“真”的表达式是( )。

SSS_SINGLE_SELA (c>=2&&e<=6)&&(c%2 1=1)B (c==2)‖(c==4)‖(c==6)C (c>=2&&c<=6)&&!(c%2)D (c>=2&&c←6)‖(c!=3)lI(c!=5)分值: 2答案:D解析:逻辑或运算符中只要有一个运算量为真,结果就是真,当c>=2&&c<=6条件不成立时,c的值肯定不是2、3、4、5、6,所以c!:3与c!:5均成立,所以D选项的结果一定为真。

4.有以下程序: #include main() { int a=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2‖c一!=3) prinff(“%d,%d,%d\n”,a,b,c);else prinff(“%d,%d,%d\n”,a,b,c);else prinff(“%d,%d,%d\n”,a,b,c); } 程序的运行结果是( )。

C语言练习题

C语言练习题

0《C程序设计》单元练习(基本概念、顺序结构)一、选择题1、C语言程序的基本单位 3 。

(1)程序行(2)语句(3)函数(4)字符2、下列说法中正确的是 3 。

(1)C语言程序总是从第一个定义的函数开始执行。

(2)在C语言程序中要调用的函数必须在main()函数中定义(3)C语言程序总是从main()函数开始执行(4)C语言程序中的main()函数必须在程序的开始部分3、设有语句int a=3,则执行语句a+=a-=a*a以后变量a的值是 4 。

(1)3 (2)0 (3)9 (4)-124、在C语言中,要求运算数必须是整数的运算符是 1 。

(1)% (2)/ (3)< (4)15、C语言中最简单的数据类型包括 2 。

(1)整型、实型、逻辑型(2)整型、实型、字符型(3)整型、字符型、逻辑型(4)整型、实型、逻辑型、字符型6、C语言提供的合法的数据类型关键字是 124 。

(1)double (2)short (3)integer (4)char7、合法的C语言字符常量是 1 。

(1)‘t’(2)“A”(3)65 (4)A8、在C语言中,合法的字符常量是 2 。

(1)‘\084’(2)‘\X43’(3)‘ab’(4)“\0”9、设有语句char a=‘\72’,则变量a是 1 。

(1)包含1个字符(2)包含2个字符(3)包含3个字符(4)说明不合法10、以下程序的输出结果是 2main(){ int i=010 ,j=10;printf(“%d,%d\n”,++i,j--);}(1)11、10 (2)9、10 (3)010,9 (4)10,911、下面程序的输出是 3 。

main(){ unsigned a=32768;print(“a=%d\n”,a);}(1)a=32768 (2)32767 (3)a=-32768 (4)a=-112、设X,Y,Z和K是int型变量,则执行表达式:X=(Y=4,Z=16,K=32)后,X的值为 3 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言(分支和循环结构)一、选择题1.以下程序输出结果是( )main(){ int m=5;if(m++>5) printf("%d\n",m);else printf("%d\n",m--);}A)7 B)6 C)5 D)42以下程序的输出结果为( )# include <stdio.h>main ( ){ int i=0, j=0, a=6;if ((++i>0)&&(++j>0)) a++;printf ("i=%d, j=%d, a=%d\n", i,j,a);}A) i=0, j=0, a=6 B) i=1, j=1, a=7C) i=1, j=0, a=7 D) i=0, j=1, a=73有如下程序main(){ int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是( )4若i为int型,且有程序如下,则输出结果是( )i=111;if(i%3==0)printf("####");printf("****");A) #### B) **** C) ####**** D) 无输出结果5若运行时x=12,则运行结果为( ){int x, y;scanf("%d", &x);y=x>12 ? x+10:x-12;printf("%d\n", y);}A) 0 B) 22 C) 12 D) 106以下程序的输出结果是( )main(){ int i=0, j=0, k=6;if ((++i>0)||(++j>0)) k++;printf("%d, %d, %d\n", i, j, k);}A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 77若变量都已正确说明,则以下程序段输出为( )int a=1,b=2,c=3;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c);C)a=1 b=3 c=1 D)a=2 b=3 c=28当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( ) if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;else x=3;else x=6;else x=7;A) 1 B)2 C)3 D)69以下不正确的语句为( )A)if(x>y);B)if(x==y)&&(x!=0)x+=y;C)if(x!=y)scanf("%d",&x);else scanf("%d",&y);D)if(x<y){x++;y++;}10有以下程序:#include"stdio.h"main( ){char i;for (; (i=getchar ())!='\n';){switch (i-'a'){case 0: putchar (i);case 1: putchar (i+1);break;case 2: putchar (i+2);case 3: break;default: putchar (i);break;}printf ("\n");}输入下列数据后,程序的输出结果是( )abcde<CR>A) abcde B) abceeC) abbde D) abccdd11若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( ) A) switch(a+b); B) switch(a*a+b*b){ case 1:y=a+b; break; {case 3:case 0:y=a-b; break; case 1:y=a+b;break;} case 3:y=b-a,break;}C) switch a D) switch(a-b){ case 1 :y=a-b; break {case 2: x=a*d; break case c1:case 4:x=a+b;break; default:x=a+b; case c2:case 11:y=a-b;break; } default:y=a*b;break;}12写出下面程序输出结果( ){int x=1, y=0, a=0, b=0;switch(x){case 1:switch(y){case 0: a++;case 1: b++; }case 2: a++; b++;}}A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=213 C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。

但当三个表达式均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。

A) < B) ++ C) ; D) ,14下面有关for循环的正确描述是( )。

A) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判定表达式C) 在for循环中,不能用break语句跳出循环体D) for循环体语句中,可以包含多条语句,但要用花括号括起来15以下程序段( )。

x=-1;do{ x=x*x;}while(!x)A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误16设有程序段int k=10;while(k=0) k=k-1;则下面描述正确的是( )。

A) while 循环执行10次B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次17下列程序段的运行结果是( )int n=0;while(n++<3);A. 2B. 3C. 4D. 以上都不对18设有程序段t=0;while(printf("*"));{ t++;if (t<3) break;}下面描述正确的是( )。

A) 其中循环控制表达式与0等价B) 其中循环控制表达式与'0'等价C) 其中循环控制表达式是不合法的D) 以上说法都不对19 下面程序的运行结果是( )。

#include <stdio.h>main(){ int y=10;do { y--;} while(--y);printf("%d\n",y--);}A) -1 B) 1 C) 8 D) 020以下程序段的输出结果是( ).main(){ int i=5;for ( ;i<=15; ){ i++;if (i%4==0) printf("%d ",i);else continue;}}A. 8 12 16B. 8 12C. 12 16D. 821以下不是无限循环的语句为( )。

A) for(y=0,x=1;x>++y;x=i++) i=x;B) for( ; ;x++=i);C) while(1){x++;}D) for(i=10; ; i--) sum+=i;22有如下语句int x=3;do{ printf("%d\n",x-=2);} while(!(--x));则上面程序段( )A. 输出的是1B. 输出的是1和-2C. 输出的是3和0D. 是死循环23 以下正确的描述是( )。

A) continue语句的作用是结束整个循环的执行B) 只能在循环体内和switch语句内使用break语句C) 在循环体内使用break语句或continue语句的作用相同D) 从多层循环嵌套中退出时,只能使用goto语句24以下程序输出结果为( )#include "stdio.h"main(){int i,b,k=0;for(i=1;i<=5;i++){ b=i%2;while (b-->=0) k++;}printf("%d,%d\n",k,b);}A. 3,-1B. 8,-1C. 3,0D. 8,-225以下程序段中循环体总的执行次数是( )int i,j;for(i=7;i;i--)for(j=0;j<6;j++){......}A) 42 B) 21 C) 13 D) 3626以下不正确的描述是( )A. break 语句不能用于循环语句和switch语句外的任何其他语句B. 在switch语句中使用break语句或continue语句的作用相同C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环二、判断题1 else语句总是和靠它最近的if匹配。

2 switch语句中一定有default分支。

3 case后只能跟常量,不能跟变量。

4 break语句的作用就是结束本层循环。

5 do-while语句构成的循环不能用其它语句构成的循环来代替。

6 用do-while语句构成循环时,只要while后的表达式为0时就结束循环。

7 for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。

8 for循环中,如果表达式2为空,则该循环一定是死循环。

9 while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。

10 for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。

三、填空题1若a、b均为int型变量,且a=100,则以下的for循环是【】循环.执行语句:for(i=1;i++<4;++i);后;变量i的值是【】。

2以下程序的运行结果是【】main(){int x,y,z;x=1;y=2;z=3;x=y--<=x||x+y!=z;printf("%d,%d",x,y);}3以下程序的运行结果是【】main(){int x,y,z;x=1;y=1;z=0;x=x||y&&z;printf("%d,%d",x,x&&!y||z);}4以下程序的运行结果是【】main(){int a,b,c;int s,w=0,t=5;a=-1;b=3;c=3;if(c>0)s=a+b;if(a<=0){if(b>0)if(c<=0)w=a-b;}else if(c>0)w=a-b;else t=c;printf("%d,%d,%d\n",s,w,t);}5阅读下面程序:{ 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("s=%d, t=%d", s, t);}为了使输出结果t=4, 输入量a和b应满足的条件是【】6 下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。

相关文档
最新文档