基本习题练习
- 格式:doc
- 大小:59.00 KB
- 文档页数:7
第二章 基本数据类型及运算 一、选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是 。 A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 答案:C 2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是 。 A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0 答案:C 3. 下列C语言中运算对象必须是整型的运算符是 。 A) %= B) / C) = D) *= 答案:A 4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是 。 A) 0 B) 0.5 C) 1 D) 2 答案:A 5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是 。 A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 答案:D 6. 下列变量定义中合法的是 。 A)short_a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3; 答案:A 7. 以下4个选项中,不能被看作是一条语句的是 。 A) {;} B) a=0,b=0,c=0; C) if (a>0); D) if (b==0)m=1;n=2; 答案:D 8. 设x=1,y=-1,下列表达式中解为8的是 。 A)x&y B)~x│x C)x^x D)x<<=3 答案:D 9. 在C语言中不合法的整数是 。 A)20 B)0x4001 C)08 D)0x12ed 答案: C 10. 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2 答案:B) 11.若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B) 12.以下十六进制数中不合法的是 A)oxff B)0Xabc C)0x11 D)0x19 答案:A) 13. 设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=ik)&&(c=i,j,k)后,c值是 。 A)0 B)1 C)2 D)3 答案:D 14. 下列程序的运行结果是 。 # include “stdio.h” void main( ) { int i=23; do{++i;} while(i); printf(“%d”,i); } A)23 B)24 C)死循环 D)无任何结果 答案:C 15.设int a=3,b=4,c=5;,下列表达式的值不为1的是 。 A)a+b>c&&b==c B)a||b+c&&b-c C)!(a>b)&&!c||1 D)!(a+b)+c-1&&b+c/2 答案:A
第三章 控制语句
一、选择题 1. 以下语句中无限循环语句是 。 A)for(;2&5;); B)while(1,2,3); C)while(‘\0’); D)for(;’\0’;); 答案:B 2. 若有程序段如下: a=b=c=0;x=35; if(!a)x--; else if(b);if(c)x=3; else x=4; 执行后,变量x的值是( ) A.34 B.4 C.35 D.3 答案:B
3. 下列if语句中,不正确的是( ) A.if (x B.if (x C.if (x==y)x+=y; D.if (x答案:A
4. 若有int x,y;,执行程序段: for(x=1,y=1;y<50;y++) { if (x>=10) break; if(x%2==1) { x+=5; continue; } x-=3; } 变量x的值最终为( ) A.11 B.12 C.13 D.10 答案:D
5. 若有int x=3;,执行程序段: do { printf("%3d",x-=2);`` }while(!(--x)); 输出的结果是( ) A.1 3 B.1 -1 C.1 -2 D.1 -3 答案C
6. 有程序段: int a; for (scanf (“%d”,&a);!a;) printf (“continue”); 则for语句中的!a等价于( )。 (A)a!=0 (B)a= =0 (C)a>0 (D)a>=0 答案:(B)
7. 有如下程序段: int x=1,y=1; int m,n; m=n=1; switch (m) { case 0:x=x*2; case 1: { switch (n) { case 1:x=x*2; case 2:y=y*2;break; case 3:x++; } } case 2:x++;y++; case 3:x*=2;y*=2;break; default:x++;y++; } 执行完成后,x和y的值分别是( )。 (A)x=6 y=6 (B)x=2 y=1 (C)x=2 y=2 (Dx=7 y=7 答案:(A)
8. 以下描述不正确的是 。 A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成 B.while循环是先判断表达式,后执行循环语句 C.do-while 和for循环均是先执行循环语句,后判断表达式 D.for、while 和do-while循环中的循环体均可以由空语句构成 答案:C
9. 若x是int型变量,以下程序的输出结果是 。 for (x=3;x<6;x++) printf ((x%2)?(“**%d”):( “##%d\n”),x); printf (“\n”); A.* * 3 B.# # 3 C.# # 3 D.* * 3 # # 4 # # 4 * * 4 * * 4# # 5 * * 5 * * 5 # # 5 答案:D
10.与“for (i=0;i<10;i++)putchar ('a'+i);”功能不同的语句是 。 A)for (i=0;i<10;)putchar ('a'+(++i)); B)for (i=0;i<10;) putchar ('a'+(i++)); C)for (i=0;i<10;putchar ('a'+i),i++); D)for (i=0;i<=9;i++)putchar ('a'+i); 答案:A
11.循环控制语句“while (!scanf (“%d”,&i)getchar ( );”执行的情况是 。 A)循环输入字符,遇文件结束符EOF退出 B)循环条件有错,不能执行 C)若输入数据i有错,暂停等待处理 D)键入i值后,回车退出循环 答案:A
12. 已知x=3、y=2,则表达式 x*=y+8的值为 。 A)3 B)2 C)30 D)10 答案:C 13. 设x为int型变量,则执行以下语句后,x的值为 。 x=10;x+=x- =x-x; A)10 B)20 C)40 D)30 答案:B
14. 在下列描述中,正确的一条是 。 A)if (表达式)语句中,表达式的类型只限于逻辑表达式 B)语句“goto 12;”是合法的 C)for(;;)语句相当于while(1)语句 D)break语句可用于程序的任何地方,以终止程序的执行 答案:C
15. 下面程序的输出结果是 。 #include void main( ) { int i,j,m=0,n=0; for (i=0;i<2;i++) for (j=0;j<2;j++) if (j>=i)m=1;n++; printf("%d\n",n); } A)4 B)2 C)1 D)0 答案:C 4.下列函数在一维数组v上将x插入到下标为i的元素前,i≥0。如果i≥元素的个数,则x插到末尾。原有的元素个数存放在指针n所指向的变量中,插入后元素个数加1。请填空。 void insline(int v[ ],int *n,int x,int i) { int j; if( 【1】 ) for(j=*n-1; 【2】 ;j--) 【3】 =v[j]; else i=*n; v[i]= 【4】 ; *n=(*n)+1; return; } 答案:【1】i<*n 【2】j>=i 【3】 v[j+1] 【4】 x
6.下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在main()函数的max和min中,请填空。