int main()
{ int a = 2, b =5;
printf(“a=%%d,b=%%d\\n”,a, b); reture 0; }
A)a=%2,b=%5 B)a=2,b=5 C)a=%%d,b=%%d D)a=%d,b=%d D39.若int类型占两个字节,则以下程序段的输出是 int a=-1;
printf(“%d, %u\\n”, a, a);
A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535 A40.以下程序段的输出是 int x = 496;
printf(“*%-06d*\\n”, x);
A)*496 * B)* 496*
C)*000496* D)输出格式不合法 C41.以下程序段的输出是 float a=3.1415;
printf(“|%6.0f|\\n”, a);
A)|3.1415| B)| 3.0| C)| 3| D)| 3.| C42.以下程序段的输出是 printf(“|.5f|\\n”, 12345.678);
A)|2345.67800| B)|12345.6780| C)|12345.67800| D)|12345.678| D43.若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是
A)scanf(%f”,c) B)scanf(%8.4f”, &c); C)scanf(%6.2f”, &c); D)scanf(?”, &c); C44.若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是
scanf(“a=%f,b=%f”,&a, &b);
A)3.12 9.0 B)a= 3.12b= 9 C)a=3.12,b=9.0 D)a=3.12 ,b=9 B45.以下程序的输出结果是 #include “math.h”
int main()
{ double a = -3.0, b = 2;
printf(“%3.0f %3.0f\\n”, pow(b,fabs(a)), pow(fabs(a), b) ); return 0;
}
A)9 8 B)8 9
C)6 6 D)以上三个都不对 D46.以下程序的输出结果是 int main()
{ char c1 = ‘A’, c2 = ‘Y’; printf(“%d,%d\\n”, c1, c2); return 0; }
A)因输出格式不合法,无正确输出 B)65,90
6
C)A,Y D)65,89 B47.以下程序段的输出结果是 int main()
{ char x = ‘A’;
x = (x>=’A’ && x<=’Z’)?(x+32):x; printf(“%c\\n”, x); return 0; }
A)A B)a C)Z D)z A48.以下程序段的输出结果是 int main()
{ char ch1, ch2;
ch1 = ‘A’ + ‘5’ - ‘3’; ch2 = ‘A’ + ‘5’ - ‘3’;
printf(“%d,%c\\n”, ch1,ch2); return 0; }
A)67, C B)B,C C)C,D D)不确定的值
BD49.若变量已正确说明,要求用以下语句给c1赋予字符%、给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是 scanf(“%f%c%f%c”, &a, &c1, &b, &c2);
A)2.0 % 4.0 # B)2.0%4.0# C)2 % 4# D)2 % 4 # A50.以下程序的输出结果是
int main()
{ int w = 4, x = 3, y = 2, z = 1;
printf(“%d\\n”, (w < x) ? w: z < y ? z: x)); return 0 ; }
A)1 B)2 C)3 D)4 C51.下列程序段的输出结果是
int a=1234;
float b=123.456;
double c=12345.54321;
printf(\); A)无输出
B)12,123.5,12345.5 C)1234,123.5,12345.5 D)1234,123.4,1234.5
二、填空题
1.若k为int型变量且赋值11,请写出运算k++后表达式的值 11 和变量的值 12 。
7
2.若x为double型变量,请写出运算x = 3.2, ++x后表达式的值 4.2 和变量的值 4.2 。
3.函数体由符号 { 开始,用符号 } 结束。
4.函数体的前面是 声明部分 部分,其后面是 执行部分 部分。
5.在C语言程序中,用关键字 int 定义基本整型变量,用关键字 float 定义单精度实型变量,用关键字 double 定义双精度实型变量。
6.把a1、a2定义成单精度实型变量,并赋初值1的说明语句是 float a1=1.0,a2=1.0; 。
7.C程序中定义的变量,代表内存中的一组 存储单元 。 8.表达式3.5 + 1 / 2的计算结果是 3.5 。
9.对以下数学式,写出三个等价的C语言表达式是 a/(b*c) 、 a/b/c 、 a/c/b 。
10.表达式s = 10应当读做“ 将10赋值给变量 ”。
11.计算机中内存储器的最小单位称为 位 ,其中能容纳的数是 0和1 个
12.通常一个字节包含 8 个二进制位。在一个字节中能存放的最大十进制整数是 255 ,它的二进制数的形式是 1111 1111 ;最小十进制整数是-128 ,它的二进制形式是 1000 0000 。
13.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是 65535 、最小十进制整数是 -32768 ,它们的二进制形式是 1111 1111 1111 1111,1000 0000 0000 0000 。
14.以下程序的输出结果是 16 。
int main() { int a=0;
a+=(a=8);
printf(\\n\); return 0; }
15.若有以下定义,请写出以下程序段中输出语句执行后的结果。 (1) -200 2500 (2) i=-200,j=2500 (3) i=-200 J=2500 int i = -200, j =2500; printf(“(1) %d %d”, i, j);
printf(“(2) i = %d, j = %d\\n”, i, j);
printf(“(3) i = %d\\n j = %d\\n”, i, j);
16.变量i、j、k已定义为int类型并赋初值0,用以下语句输入时 scanf(“%d”, &i); scanf(“%d”, &j); scanf(“%d”, &k); 当执行第一个输入语句时从键盘输入: 12.3
17.复合语句在语法上被认为是 一条语句 。空语句的形式是 ; 。
8
18.以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式 100 25.81 1.8923 、100 25.81 、 。 int k; flaot a; double x;
scanf(“%d%f%lf”, &k, &a, &x);
printf(“k = %d, a = %f, x = %f\\n”, k, a, x);
19.以下程序段的输出结果是 x=127,x= 127,x= 177,x= 7f,x= 127 。 int x = 0177;
printf(“x = =, x = m, x = %6o, x = %6x, x = %6u\\n”, x, x, x, x, x);
20.以下程序段的输出结果是 a=513.789215,a= 523.79,a= 513.78921500,a= 513.78921500 。 double a = 513.789215;
printf(“a = %8.6f, a = %8.2f, a = .8f, a = .8lf\\n”, a, a, a, a);
21.若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是 10A20B30C40D
scanf(“%d%c%d%c%d%c%d%c”, &w, &a, &x,&b, &y, &c, &z, &d);
22.若有以下说明和输入语句,要求给c1、c2输入字符A和B,给a1、a2输入7.29和101.298,从键盘正确输入数据的形式是 7.29 101.298AB
scanf(“%c%c”, &c1, &c2);
23.若有以下说明和输入语句,要求给c1、c2、c3输入字符A、B和C,请写出从键盘正确输入数据的形式是 AAAABBBBCCCC 。 char c1, c2, c3; scanf(“L”, &c1);
scanf(“L”, &c2); scanf(“L”, &c3);
24.下列程序的输出结果是16.00,请填空。6.6
int main() { int a=9, b=2;
float x= , y=1.1,z; z=a/2+b*x/y+1/2;
printf(\\n\); return 0; }
第四章 选择结构程序设计
一、选择题
C1.下面的程序片断所表示的数学函数关系是
9
y = -1;
if(x != 0) y = 1; if(x > 0) y = 1; else y = 0;
-1 (x < 0) 1 (x < 0) A)y = 0 (x = 0) B)y = -1 (x = 0) 1 (x > 0) 0 (x > 0) 0 (x < 0) -1 (x < 0) C)y = 0 (x = 0) D)y = 1 (x = 0) 1 (x > 0) 0 (x > 0) A2.运行以下程序后,输出的结果是
int main() { int k = -3; if(k <= 0)
printf(“****\\n”), else printf(“&&&&\\n”); return 0; }
A)**** B)&&&&
C)****&&&& D)有语法错误不能通过编译 A3.有如下程序
int main() {
int x=1,a=0,b=0; switch(x) {
case 0: b++; case 1: a++; case 2: a++;b++; }
printf(\\n\); return 0; }
该程序的输出结果是
A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2 B4.有以下程序 int main()
{
int a=5, b=4, c=3, d=2;
if(a>b>c)
printf(\
else if((c-1 >= d) == 1) printf(\
else printf(\
10