四、编程题
(1)编程实现:输入一个整数,判断它能否被子3,5,7整除,并输出 以下信息之一:
1)能同时被3,5,7整除;
2)能被其中两数(要指出哪两个)整除; 3)能被其中一个数(要指出哪一个)整除; 4)不能被3,5,7任一个整除。
(2)用switch编程实现: -1 (x<0)
y= 0 (x=0) 1 (x.0)
第五章 循环控制 一、单选题 (1)设有程序段 int k=10
while (k=0) k=k-1
则下面描叙正确的是 。 A) while (k=0) k=k-1; B) 循环是无限循环
C) 循环体语句一次也不执行 D) 循环体语句执行一次
(2)下面程序段的运行结果是 。 int n=0;
while(n++<=2); printf(―%d‖,n); A) 2 B) 3 C) 4
D) 有语法错
(3)C语言中while和do-while循环的主要区别是 。 A) do-while的循环体至少无条件执行一次
B) while 的循环控制条件比do-while的循环控制条件严格 C) do-while允许从外部转到循环体内 D) do-while允许从外部转到循环体内
(4)以下能正确计算1*2*3*…*10的程序段是 。 A) do {i=1;s=1;
s=s*i; i++;
}while(I<=10); B) do {i=1;s=0;
s=s*i; i++;
}while(I<=10); C) i=1;s=1;
do {s=s*i; i++;
}while(I<=10); D) i=1;s=0;
do {s=s*i; i++;
}while(I<=10); 二、填空题
(1) 执行下面程序段后,K值是( )。
K=1; n=263;
Do{ k*=n ; n/=10} while(n); (2)下面程序段中循环体的执行次数是( )。 A =10; B=0;
Do { b+=2; a-=2+b;} while(a>=0); (3) 下面程序段的运行结果是( )。 X=2‘
Do { printf (―*‖); x--;} while (! x= =0); (4) 下面程序段的运行结果是( )。 I=1; a=0; s=1;
Do { a=a+s*i; s=-s; i++; } while(i<=10) Printf (―a=%d, a‖);
(5)鸡兔共有30只,脚共有90 个,下面程序段是计算鸡兔各有多少只,请填空。 For(x=1;x<=29;x++) {y=30-x;
if( ) printf (―%d, %d\\n ‖, x , y) ; }
三、判断题
(1) 设有以下程序段: int x=0,s=0;
while(!x!=0) s+=++x; printf(―%d‖,s);
则运行该程序段后输出为:0
(2) for循环只能应用于循环次数已经确定的情况。 (3) goto语句只能用于退出多层循环。 (4) switch语句中不能出现continue语句。 (5) 只能用continue语句终止本次循环。 四、编程题
(1)每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一天的倍,直至购买的苹果个数达
到不超过100的最大值。编写程序求每天平均花多少钱?
(2)编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。 第六章 数组 一、选择题
(1)在c语言中,引用数组元素时,其数组下标的数据类型允许是____。 A) 整型常量 B) 整型表达式
C) 整型常量或整型表达式 D) 任何类型的表达式
(2)以下能对二维数组a进行正确初始化的语句是____。 A) int a[2][ ]={{1,0,1},{5,2,3,}}; B) int a[ ][3]={{1,2,3},{4,5,6}}; C) int a[2][4]={1,2,3,},{4,5},{6}}; D) int a[ ][3]={{1,0,1},{},{1,1}};)
(3)若有说明:int a[3][4]={0};则下面正确的叙述是____。
A) 只有元素a[0][0]可得到初值0 B) 此说明语句不正确 C) 数组a中各元素都可得到初值,但其值不一定为0 D) 数组a中每个元素均可得到初值0
(4)下面程序___(每行程序前面的数字表示行号)。
1 main() 2 {
3 float a[10]={0}; 4 int i
5 for(i=0;i<3;i++) scanf(―%d‖,&a[i]; 6 for(i=1;i<10;i++) a[0]=a[0]+a{i}; 7 printf(―%f\\n‖,a[0]); 8 } A) 没有错误 B) 第3行有错误 C) 第5行有错误 D) 第7行有错误 (5)若二维数组a有m列,则计算机一元素a[i][j]在数组中位置的公式为____。(假设a[0][0]位于数组的第一个位置上。)
A) i*m+j B) j*m+i C) i*m+j-1 D) i*m+j+1 二、填空题
(1)在C语言中,二维数组的定义方式为:类型说明符 数组名( ) ( ); (2)在C语言中, 二维数组元素在内存中的存放顺序是( )。
(3)若有定义:double x[3][5];则x数组中行下标的下限为( ),列下标的上限为( )。 (4)若二维数组a有m列,则计算机任一元素a [i][j]在数组中位置的公式为:( ).(假设a[0][0]
位于数组的第一个位置上。)
(5)若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是( ),a[2][1]
得到初值是( )。 三、判断题
(1) 两个字符串中所包含的字符个数相同时,才能比较字符串。 (2) 字符数组可以存放字符串。
(3) 不能用关系运算符对字符数组中的字符串进行比较。
(4) 如果定义了一个指向数组的指针,则该指针可以相当于数组名使用。 (5) 如果没有给一个整型数组的元素赋初值,则其元素的缺省初值全部为0。 四、编程题
(1)从键盘输入若干整数(数据个数应少于50),其值在0至4的范围内,用-1作为输入结束
的标志。统计每个整数的个数。试编程。
(2)若有说明:int a[2][3]={{1,2,3},{4,5,6}};现要将a 的行和列的元素互换后存到另一个二维数
组b中。试编程。 第七章 函数 一、选择题
(1)以下正确的函数定义形式是 。 A)double fun(int x,int y) C) double fun(int x;int y) D) double fun(int x,int y) E) double fun(int x,y);
(2) 以下正确的函数形式是 。 A) double fun(int x,int y)
{z=x+y; return z;} B) fun(int x,y)
{int z; return z;} C) fun(x,y)
{int x,y; double z; z=x+y;return z;}
D) double fun(int x,int y)
{double z;
z=x+y;return z;}
(3) C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 A)地址传递 B)单向值传递
C)由实参传给形参,再由形参传回给实参
D)传递方式
(4)C语言允许函数值型缺省定义,此时该函数值隐含的类型是 。 A)float型 B)int型 C)long型 D)double型
(5)下面函数调用语句含有实参的个数为 。 func((exp1,exp2),(exp3,exp4,exp5)); A)1 B)2 C)4 D)5
二、填空题
(1)C语言规定,可执行程序的开始执行点是( )。
(2)在C语言中,一个函数一般由两个部分组成,它们是( )和( )。
(3)下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是( );改正后为( )。
Void add(float a,float b) {float c; c=a+b; return c‘ }
(4)以下程序的运行结果是( )。 main()
{increment(); increment(); increment(); }
increment(); {int x=0; x+=1;
printf(―%d‖,x); } (5)以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示“WELL DONE!!”,否则显示计算后的值。已有函数调用语句Check (ponse,value);请填空。 Void Check (int ponse,value) {int val; val=( );
printf(―计算后的值:%d‖,val);