复习试题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
{ 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