第二部分 习题篇 第一章 C语言概述 一.单项选择题 1.A) 2.A) 3.A) 4.B)5.C)6.D) 7.C) 8.A) 9.D)10.C) 11.C) 12.D)13.B) 14.D)15.A) 二.填空题 1.高级语言 2.main( ) 3.main( ) 4.{ } 5.分号 6.换行 7.*/ 8.函数 9.编译 10..exe 三.判断题 1.(对)2.(对)3.(错)4.(对) 5.(对)6.错) 7.(对) 8.(错) 9.(对)10.对)
第二章 数据类型与表达式 一.单项选择题 1.A) 2.C 3.D)4.A) 5.C) 6.D) 7.C) 8.C) 9.A) 10.A) 11.B) 12.C) 13.C) 14.D) 15.B)16.B)17.C) 二.填空题 1.Double 2.不同 3.27 4.35 5.5 6.double 7.43 8.53 9.12,10,18 10.12.20 11.1,3,3,1 12.4,8 三.判断题 1.(对 )2.(对 )3.(错 ) 4.(对 ) 5.(对 ) 6.(错 ) 7.(对 ) 8.(错 ) 9.(对 )10.(对 )
第三章 顺序结构程序设计 一.单项选择题 1.D)15.0,25.0,35.0 2.C)x=1.23,y=1.26 3.B)scanf(“%d%d%d”,&a,&b,&c); 4.A)scanf("%f",&a); 5.D)程序输出小写字母d 6.B)3 二.填空题 1.5.5 2.c+25 3.1,2,A,a 4.2D
三.判断题
1.顺序结构、选择结构和循环结构可以组成所有的各种复杂程序。 (对 ) 2.复合语句就是多条语句,不必须用花括号括起来。 (错 ) 3.在变量说明中,允许连续给多个变量赋初值。 (错 ) 4.scanf函数和printf函数的原型在头文件“stdio.h”中。 (对 ) 5.printf函数格式字符串中%4d表示输出一定是四位十进制整数。 (错 ) 6.putchar 函数的功能是在显示器上输出一个字符。 (对 ) 7.在scanf函数的格式串中,如果是“%d%d%d”, 在输入三个十进制整数时要用一个以上的空格键、回车键和Tab键作为每两个输入数之间的间隔。 (对 ) 8.在scanf函数的格式串中,如果是“%c%c%c”, 在输入三个字符时要用一个以上的空格键、回车键、Tab键和逗号作为每两个输入字符之间的间隔。 (错 ) 9.scanf("%5.2f",&a);是合法的,目的是输入小数为2位的实数。 (错) 10.getchar函数的功能是从终端输入一个字符。 (对 )
第四章 选择结构程序设计 一.单项选择题 1.C)算术运算、关系运算、逻辑运算 2.A)% 3.B)x= =0 4.B)!、&&、|| 5.D)(x<=y)&&(y<=z) 6.D)(x<=-10)||(x>=7) 7.A)68.D)(x>='A')&&(x<='Z') 9.A)0,0 10.C)1,0 11.C)2 12.B)1,0,0,1 13.C)1 14.A)0,0 15.B)2323 16.B)10,20,# 17.B)x=3,y=5 二.填空题 1.x=-x 2.7 3.$$$ 4.default 5.2,3,3 三.判断题 1.关系运算符的优先级低于算术运算符,高于赋值运算符。 (对 ) 2.关系表达式的值是“真”和“假”,用“T”和“F”表示。 (错 ) 3.关系表达式3>2>1的值为真。 (错 ) 4.逻辑非运算符!为单目运算符,具有右结合性。 (对 ) 5.逻辑运算符和其它运算符优先级的关系从高到低为: !(非)→算术运算符→关系运算符→&&和||→赋值运算符 (对 ) 6.if(表达式) 语句1; else 语句2; 其语义是:如果表达式的值为真,则执行语句1,否则执行语句2。 (对 ) 7.在if关键字之后均为表达式。该表达式可以是任意表达式,但不能是变量。(错 ) 8.当程序中有多对if和else时,它们是按照顺序配对的。如第一个if与第一个else配对,第二个if与第二个else配对,以此类推。 (错 ) 9.条件运算符的结合方向是自左至右。 (错) 10.在switch多分支语句中,break语句用于跳出switch语句。 (对 )
四.改错题 1、下面程序的功能是判断输入的一个整数是否能被5和7同时整除,若能整除,输出“YES”,否则,输出“NO”。 错误语句:if(x%5==0||x%7==0) 正确语句:if(x%5==0&&x%7==0) 2.下面程序的功能是输出一个4位整数的后两位数值,例如输入5678,输出78。 错误语句:scanf("%d",x); 正确语句:scanf("%d",&x);
3.下面程序的功能是从键盘输入三个整数,输出其中最小的数。 错误语句:min=(temp>c)?temp:c ; 正确语句:min=(temp
4.下面程序的功能是判断某一年是否为闰年。 错误语句:if (year%400!=0) 正确语句:if (year%400==0) 第五章 循环结构程序设计 一.单项选择题 1.C)21 2.D)for(表达式1;1;表达式3) 3.D)在do-while循环中,当while后的表达式为0时结束循环 4.C)do-while的循环体至少无条件执行一次 5.A)60 6.C)1 7.B)1 8.A)-1 9.C)5050 二.填空题
1.i++ 2.0 3.1.0/i 4.num++ 5.|| 6.e 7.A 8. 23 9.month 10.sum=0 三.判断题 1、“当型”循环是先判断表达式后执行循环体,“直到型”循环是先执行循环体后判断表达式。 (对 ) 2、如果循环体内包含一个以上的语句,应该用花括弧括起来,组成复合语句。(对 ) 3、do-while语句和while语句可以互相转换,运行结果相同。 (错 ) 4、for(循环变量赋初值;循环条件;循环变量增值)中的循环条件不允许省略。(错 ) 5、for (f=1,i=1;i<=10; f=f*i,i++) ;是非法语句。 (错 ) 6、三种循环while循环、do-while循环和for循环可以互相嵌套。 (对 ) 7、在循环结构中,break语句可以使流程跳出循环体,即提前结束循环。 (对) 8、在循环结构中,continue语句是结束本次循环,即跳过循环体中下面未执行的语句,接着进行循环条件的判定。 (对) 9、continue语句和break语句的区别是break语句只结束本次循环,继续进行下一次循环,而continue语句则是结束整个循环,不再判断循环条件是否成立。 (错 ) 10、goto语句能构成循环,可以随意使用。 (错 ) 四.改错题 1.下面程序的功能是求10!。 错误语句:for (i=10; i>=0; i++) 正确语句:for (i=10; i>0; i--)
2.下面程序的功能是输出1~100之间所有能被3整除的数。 错误语句:if(i%3) beeak; 正确语句:if(i%3) continue;
3.下面程序的功能是求1!+2!+…+n!。 错误语句:while(i>=n); 正确语句:while(i<=n);
4.下面程序的功能是利用公式π/4≈1-1/3+1/5-1/7+„求π的近似值,直到某一项的绝对值小于10-7为止。 错误语句:while(fabs(temp)>10-7) 正确语句:while(fabs(temp)>1e-7)
第六章 数 组 一.单项选择题 1.D)数组的首地址 2.D)在程序运行时,如果数组元素的下标超出了所定义的下标范围时,系统将给出“下标越界”的出错信息 3.C)x[2][1] 4.B)scanf("%d%s",&x,y); 5.D)#define N 50; 6.A)int a[2][ ]={{1,2},{3,4}}; 7.A)a[0][0]=0,a[0][1]=1,a[1][0]=2,a[1][1]=3 8.D)char a[ ]={1,2,3,4,5,6}; 9.C)数组a的长度大于数组b的长度 10.D)把字符串str2复制到字符串str1中再把字符串str3连接到字符串str1之后 11.D)对于字符型数组,可以在赋值语句中通过运算符“=”进行整体赋值
二.填空题 1. 同一个 2.方括号 3.连续 4.0 19 5.行 6.一 7.\0 8. 字符数组名 9.10,6 10.2 11.fibonacci[i-1]+fibonacci[i-2];
12.y[j][i]=x[i][j]
13.98 14.-21 15.i
16.i—
17.str[i]=str[i+1]
18.string2[i]=string1[i];
19. j++;
三.判断题 1.在C语言中,数组属于构造类型的数据。 (对) 2.一个数组的各个元素的数据类型可以不完全相同。 (错) 3.数组在内存中占有连续的存储单元,数组名表示数组在内存中的首地址。 (对 ) 4.使用语句int a[5];定义了一个一维数组a,其中有5个元素,为a[1],a[2],a[3],a[4],a[5]。 (错 ) 5.数组名后是用方括号或圆括号括起来的常量表达式。 (错 ) 6.C语言编译程序不对数组作边界检查,如果程序中出现了下标越界,可能会造成程序运行结果的错误。因此要注意下标不能过界。 (对 ) 7.C语言允许对数组的长度作动态定义,即数组长度可以是变量。 (错 ) 8.在C语言中,使用数值型数组时,只能逐个引用数组元素而不能一次引用整个数组。 (对 ) 9.为数组元素赋值时,若所有元素值全部相同,则可以给数组整体赋初值。(错 ) 10.对数组的全部元素赋初值时,也可以不指定数组长度。 (对 ) 11.C语言中二维数组的元素在内存中排列的顺序是按行存放。 (对 ) 12.如果对二维数组中全部元素赋初值,则数组的第一维和第二维长度均可以省略。(错 ) 13.在C语言中,字符串是借助于字符数组来存放的。 (对 ) 14.在字符串常量的末尾,系统会自动加一个‘\0’作为结束符。 (对 ) 15.用字符串常量对字符数组初始化时,数组的长度至要与字符串长度相同。(错)