副件(1)- c语言复习题 下载本文

复习试题C语言一

一、填空题:(每空2分,共20分)

1.设int x=17,y=5; 执行语句x* =x+ +/ - -y后x的值为____153/2_________。

2.表达式为6%2的值为________0_______。

3.continue 语句是用来结束__本次______循环的。

5.C语言中没有逻辑量,在给出逻辑运算结果时,以__1__代表\真\,用___0__代表\假\。

6.执行语句:for(i=1;i++<4;);后变量i的值是______1_______________。 8.空语句的表示形式是:____{__;__}________。 二、单选题:(每小题2分,共30分)

1.以下C语言运算符中优先级最高的是( A ) A. ++ B. == C. && D. %

2.已知’A’的ASCII代码是65,以下程序的输出结果是( C ) A.因输出格式不合法,输出错误信息 B.65 66 C.A,B D.65,66 #include \main()

{ int c1=65,c2=66;

printf(\, %c\; }

3.以下叙述中正确的是( D )

A. 输入项可以是一个实型常量,如 scanf(\,3.5); B. 只有格式控制,没有输入项,也能正确输入数据到内存,如: scanf(\,b=%d\);

C. 当输入一个实型数据时,格式控制可以规定小数点后的位数,如:scanf(\,f);

D. 当输入数据时,必须指明变量地址,例如: scanf(\,&f); 6.要为字符型变量a赋初值,下列语句中哪一个是正确的( B ) A.char a='3'; B.char a=\; C.char a=%; D.char a=*;

7.对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的( A )

A.0为假,非0为真 B.只有1为真

C.-1为假,1为真 C.0为真,非0为假 9.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式:( A ) A.只能用逻辑表达式 B.只能用关系表达式 C.只能用逻辑表达式或关系表达式 D.可用任意表达式

10.可在C程序中用作用户标识符的一组标识符是( A ) A.void B.as b3 C.For D.2c define -A123 -abc DO WORD sum case SIG 11.当执行以下程序段时( C )

A=-1;

do {a=a*a;} while(!a);

A.循环体将执行一次 B.循环体将执行两次

C.循环体将执行无限次 D.系统将提示有语法错误 12.设int a = 9,b = 8,c = 7, x = 1;则执行语句

if (a>7) if (b>8) if (c>9) x=2 ;else x = 3;后 x 的值是( D ) A.0 B.2 C.1 D.3 13.以下程序段执行后的,结果为( D ) for (I=1; I<36; I=I*I) { printf(“%d\\n”,I); I++; }

A.1 4 B.1 C.1 4 25 D. 1

4 4 25

14.以下程序运行结果为( D ) main()

{ int s=589,m; switch(s/100) {

case 0: case 1: case 2: case 3: case 4: case 5: m=1; case 6: m=3 ;

case 7: m=5; break; case 8: m=6; break; case 9: m=7; break; default: m=0; }

printf(“m=%d\\n”,m); }

A.m=1 B.m=5 C.m=3 D.m=1

m=3 m=5 15.表示关系x<=y<=z的c语言表达式为 ( A ) A.(X<=Y)&&(Y<=Z) B.(X<=Y)AND(Y<=Z) C.(X<=Y<=Z) D.(X<=Y)&(Y<=Z) 三、阅读程序:(每小题4分,共24分) 1.main( ) {

int i=5, s=10; s+=s-i;

printf(\; }

程序运行结果:____i=5,s=15___________________________

2.main()

{ int x,sum=3; for (x=1;x<7;x*=2) sum=sum+x;

printf(“sum=%d,x=%d”,sum,x); }

程序运行结果:____sum=4,x=2___________________________ 3.main()

{ int a,f1,f2; f1=0;f2=1;

for (a=1;a<=5;a++)

{ printf(“%d,%d,”,f1,f2); if (a%2==0) printf(“\\n”); f1=f1+f2; f2=f2+f1; } }

程序运行结果:__0,1,1,2 3,5,8,13

21,34_____________________________ 4.main() { int n=7;

while (n<=15) {n++;

if (n%2!=0) continue;

printf(“%d\\n”,n); } }

程序运行结果:____8 10 12

14___________________________ 5.main() {

int x = 1,a = 0,b = 0; switch(x) {

case 0: b + +; case 1: a + +; case 2: a + +; b + +; }

printf (“a = % d ,b = % d \\n”,a,b);

}

程序运行结果:___a=1,b=1____________________________ 四、程序填空:(每空3分,共24分)

1.由键盘输入三个数a,b,c,计算以这三个数为边长的三角形面积。 #include main ( )

{ float a, b, c, s, s1;

scanf(“%f%f%f”,_&a,&b,&c_____________ ); if ((a+b)>c && (a+c) > b && (b+c) >a) { s=(a+b+c)/2;

s1=(s-a)*(s-b)*(s-c)________________; s=sqrt(s1) ;

printf(“/n 三角形面积为:%f /n”,s); } else

______________________ }

2.输入两个正整数a和b,若a≥b时,求其积c并显示;若a<b时,求其商c并显示.

main( ) {

int a, b, c;

scanf(\; if( ) {

c=a*b;

printf(\; }

{

c=b/a;

printf(\; } }

3.输入三位正整数,分解为各个位数之和,例如423分解为4+2+3. main( ) {

int n, c,c1,c2,c3; printf(Enter n=\; scanf(\; printf(\;

c=0;c1=0;c2=0;c3=0;

c1 = ; /*求百位*/ c2=(n-c1*100)/10;

c3= ; /*求个位*/ c=c1+c2+c3;

printf(\; }

五、编程:(1小题10分,2小题12分,共22分)

1.编写程序求总人数和及格人数,成绩由键盘输入,以负数为结束标记。 2.计算S=20+21+22+?+2n,当S超过10时,求n的最小值及s的值。 《C语言程序设计》(二) 一、填空题:

1.已知直角三角形的直角边长a,b,计算其面积的算术表达式为_____________ 。

2.整型变量a,b的值分别为5,3,语句printf(″%d*%d=%d″,a,b,a*b);输出_____________。

3.设 a=12 则表达式a+=a和a*=2运行后a 的值分别为________________。 4.若已知a=10,b=15,c=1 表达式a*b&&c的运算结果________________。 5.在C语言中,能代表逻辑值\真\的是_________。

6.C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是______。

7.复合语句是由一对__________括起来的若干语句的组合,其在语法上与一个_________相同。

二、单选题:(每小题2分,共30分) 1.以下叙述中正确的是( )

A.在C程序中整型可表示任何一个数。 B.C程序有主函数组成。 C.C程序由函数组成。

D.C程序由函数和过程组成。 2.若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( ) A.a=a+b,b=a-b,a=a-b; B.t=a,a=b,b=t; C.a=t,t=b,b=a; D.t=b;b=a;a=t;

4.下列语句中,哪一个可以输出26个大写英文字母( ) A.for (a='A';a<='Z'; printf(\; B.for (a='A';a='Z';a++) printf(\; C.for (a='A';a<='Z'; printf(\; D.for (a='A';a<'Z'; printf(\; 5.C语言可执行程序的开始执行点是( )

A.程序中第一条可执行语言 B.程序中第一个函数 C.程序中的main函数 D.包含文件中的函数 6.C语言中运算对象必需是整型的运算符是( )

A.% B./ C.! D.*

7.为float类型变量a、b输入数据1.2和2.3,下列哪一组是正确的( ) A.scanf(%f%f,&a,&b); 输入1.2,2.3

B.scanf(″ò.1ò.1″,a,b); 输入12,23