该程序运行的结果是:
3.程序: # include
{ int a=1,b=4,c=2;
float x=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(“%f\\n”,z); }
该程序运行的结果是:
4.程序 #include
x=-3+4*5-6; printf(“%d,\\t”,x); x=3+4%5-6; printf(“%d,\\t”,x); x=(7+6)%5%2; printf(“%d,\\n”,x); }
该程序运行的结果是:
5. 下面程序运行后,若输入a=2,b=3结果是 main( ) { float a ,b ,x1, x2 ;
scanf (“a=%f,b=%f “ ,&a ,&b ) ; x1=a*b ; x2=a/b ;
printf (“x1=%5.2f \\nx2=%5.2f \\n” ,x1,x2 ); }
6. 下面程序运行结果是 (已知‘A’的ASCII码为65) # include
{ char d=?C?; int c=68; putchar(d); putchar(c); }
7.下面程序运行结果是 main ( )
{ printf (“ \\ta\\n”);
printf (“ \\t\\b \\?b\\?\\n”); printf (“ \\t\\b\\\\c\\\\\\n”);
6
}
8. 下面程序运行结果是 # include “stdio.h” main()
{ int m=7, n=4 ;
float a=38.4, b=6.4, x ; x=m/2+n*a/b+1/2 ; printf(“%f\\n”,x) ; }
五、程序填空题
1. 以下程序的功能是根据所输入半径值求圆面积,并输出面积值,请将程序补上必要
的语句:
#define ________________ main( )
{ float r ,s ;
printf (“enter a number _r :”); ; ; ; }
2.若输入10,20,30则程序的执行结果是 20,30,10 请填充程序。 # include “stdio.h” main( )
{ int a, b, c ; ______________;
_________________;
_________; a=b ; b=c ; __________; printf ( “%d,%d,%d” ,a, b, c ); }
3.以下程序不借助任何变量进行a与b的交换
# include “stdio.h” main( )
{ int a , b ;
printf( “?nput a and b”) ; scanf (“%d,%d”,___________) ;
a+=_______; b=_______ ; a-=_______; printf(“%d,%d\\n”,a,b);
}
第三章 流程控制
7
一、 单项选择题:
1. 两次运行下面的程序,如果从键盘上分别输入6和4,输出的结果是 。 main()
{ int x; scanf(“%d”,&x); if(x++>5) printf(“%d”,x); else prinf(“%d\\n”,x--); }
2. 设a为整型变量,不能正确表达数学关系: 1010&&a<15 D. !(a<=10)&&!(a>=15) 3. 在以下一组运算符中,优先级最高的是 。 A. <= B. = C. % D. &&
4. 设a,b,c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式
是 。 A. ?a?&&?b? B. a<=b C. c||+c&&b-c D. !((a
A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式 6.在以下运算符中,优先级最高的运算符是 。
A. <= B. / C. != D. &&
7.假设所有变量均为整型,表达式(a=2,b=5,a>b? a++:b++,a+b)的值
是: 。
A. 7 B. 8 C. 9 D. 2 8.在C语言中,能代表逻辑值\真\的是 。
A. true B. 大于0的数 C. 非0整数 D. 非0的数 9.在以下运算符中,优先级最高的运算符是 。
A. ! B. = C. + D. || 10.逻辑运算符两侧运算对象的数据类型 。
A. 只能是0或1 B. 只能是0或非0正数
C. 只能是整型或字符型数据 D. 可以是任何类型的数据 11.当执行以下程序段时,供选择的答案是___________。 x=-1; do { x=x*x; } while(!x);
A. 循环体将执行一次 B. 循环体将执行两次 C. 循环体将执行无限次 D. 系统提示有语法错误
12.执行语句: for(i=1;i++<4;);后,变量i的值,供选择的答案是___________。
8
A. 3 B. 4 C. 5 D. 不定
13. 以下for循环是:
for(x=0,y=0;(y!=123)&&(x<4);x++);
A. 无限循环 B. 循环次数不变 C. 执行4次 D. 执行3次 14.若i,j已定义为int类型,则以下程序段中
for(i=5;i;i--)
for(j=0;j<4;j++) {…}
内循环体的总的执行次数,供选择的答案是___________。
A. 20 B. 24 C. 25 D. 30
15.执行下列程序段后,变量i的正确结果, 供选择的答案是___________。
int i=10,j=0; do { switch(i)
{ case 9 : i++; case 10 : i++; case 11 : i++; defaut : i++;
} } while (j);
A. 10 B. 11 C. 12 D. 13 16.若a,b均为int型变量,且a=100,则关于循环语句 for(b=100;a!=b;++a,b++) printf(“---“); 的正确说法, 供选择的答案是___________。
A. 循环体只执行一次, B. 是死循环,
C. 循环体一次也不执行, D. 输出---. 17.以下不正确的描述, 供选择的答案是___________。
A. 用while和do-while循环时,循环变量初绐化的操作应在循环语句之前完成; B. while循环是先判断表达式,后执行循环语句;
C. do-while和for循环均是先执行循环体语句,后判断表达式;
D. for,while和do-while循环中的循环体均可以由空语句构成.
18. C语言中while和do-while循环的主要区别是 A.do-while的循环体至少无条件循环一次. B.while的循环控制条件比do-while严格. C.do-while允许从外部转到循环体内. D.do-while的循环体不能是复合语句.
19.在下列选项中,没有构成死循环的程序段,供选择的答案是___________。 A. int i=100; B. for ( ; ; ); while (1) { i=i0+1; if(i>100) break;
9
}
C. int k=1000; D. int s=36; do {++k;} while (k>=10000); while (s); --s; 20.以下程序的输出结果是: 。 #include “stdio.h” main() { int i;
for ( i=1;i<=5;i++)
{ if (i%2) printf(“*”); else continue;
printf(“#”); }
printf(“$\\n”); }
A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$ 21. 以下程序执行 次 #include “stdio.h” #define N 2 #define M N+1
#define NUM (M+1)*M/2 main()
{ int i,n=0;
for(i=1;i<=NUM;i++) { n++;printf(“%d”,n);} printf(“\\n”); }
A.5 B.6 C.8 D.9
二、填空题:
1. 表示条件:10 2. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 。 3. 为表示关系x?y?z,应使用C语言表达式是 。 4. 表达式:10!=9的值是 。 5. 能正确表示a?10或a?0的关系表达式是 。 6. 若已知a=10,b=20,则表达式!a 7. 为了避免嵌套的条件语句if-else的二义性,C语言规定:else与 匹配。 8. C语言用 表示逻辑“真”值。 9.当a=3,b=2,c=1时,表达式f=a>b>c的值是 。 10.设y为int型变量,请写出描述“y是奇数”的表达式 。 10