发布时间 : 星期一 文章程序设计考试试题更新完毕开始阅读
20. 以下关于do-while循环的不正确描述是( ① )。 A. do-while的循环体至少执行一次
B. do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C. 在do-while循环体中,一定要有能使while后面表达式的值变为零(\假\的操作
D. do-while的循环体可以是复合语句
二、是非判断题(每题1分,共15分)
1. C语言规定,标识符中的字母一般区分大、小写。 2. 控制台标准输入设备一般是指键盘。
3. 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前处理。
4. 循环体中continue语句的作用是结束整个循环的执行。 5. 关系表达式的值是0或1。
6. 若有说明:int a[3][4]={0},则只有元素a[0][0]可得到初值0。 7. 字符串作为一维数组存放在内存中。 8. 字符数组中的一个元素存放一个字符。 9. 字符数组中的最后一个字符必须是'\\0'。 10. 形参为指针变量时,实参必须是数组名。 11. 用数组名作函数参数时传递的是数组的值。
12. 全局变量可以被任何一个函数中的任何一个表达式使用。
13. 一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。
14. 表达式i++与++i在任何场合功能完全相同。 15. 在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。
三、多项选择题(每题1分,共5分)
1. 若要求在if 后一对圆跨括号中表示a不等于0的关系,则不能正确表示这一关系
的表达式为( ① ). A.a<>0 B.!a C.a=0 D.a E.a!=0
2. 选出所有合法的常量( ① )。 A.3e22.5 B.-e-3 C.-.1e-1
D.'BASIC' E.'\\045' F.0fd G.0xfdaL H.e8 I.'\\\\' J.\
3. 以下关于函数原型说法错误的是:
(1)对变量的定义”和“声明”是一回事,对函数的“定义”和“声明”也是一回事。 (2)在声明函数原型时,允许只写出参数的类型,而不必写出参数的名称。 (3)如果在定义函数时不指定函数类型,系统会隐含指定函数类型为int型。 (4)调用一个函数时,函数名、实参个数、实参类型必须与函数原型一致。 (5)如果被调函数的定义出现在主调函数之前,可以不必加以声明。 (6)所有的函数之间可以互相调用。
(7)在C语言中,所有函数都是平行的,一个函数不能从属于另一个函数,即不能嵌套定义的。
(8)如果函数没有返回值,在定义时可以省略函数类型。 (9)在C语言中,任何函数的定义都不允许为空。
(10)C语言规定,实参变量对形参变量的数据传递是“值传递”。
4. 请从下面关于指针的叙述中, 选出5个正确的叙述。 (1)指针即地址。
(2)指针须先赋值后使用。
(3)当指针p指向数组a的首址后,由于p[i]和a[i]都能引用数组元素,所以这里p和a是等价的。
(4)int *p表示定义了一个指向int类型数据的指针变量p。 (5)数组的指针是指数组的起始地址。
(6)若有定义int a[4],*p=a,则p++后p指向数组a所占内存的第二个字节。 (7)使用指针变量作函数参数采取的是\值传递\的方式。 (8)相同类型的指针可以进行减法运算。
(9)指针变量和许多变量一样可以进行四则运算。
(10)指针p指向数组元素a[2],若要其指向a[4],执行p=p*2即可。
5. 以下关于数组的叙述中,5个最确切的说法是: (1)在声明一个数组变量时必须指定大小。
(2)必须用常量表达式来说明一个数组变量的大小。
(3)在对数组进行初始化时大括号中的数据个数必须和数组的大小相同。
(4)有变量定义int a[3]={0,1,2},b[3];,可以用b=a,使数组b的每个元素和a的每个元素相等。
(5)在C语言中,可以将字符串作为字符数组来处理。
(6)定义了字符数组char c[11];为了给它赋值,可以用c=\。
(7)如果有char s[15]={\则strlen(s)的值为6。 (8)C语言中,二维数组中元素排列的顺序是:按行存放。 (9)在C语言中,不能对局部的数组变量进行初始化。 (10)在声明时对数组进行进行初始化必须指定数组大小。
四、程序运行结果题(每题4分,共20分) 1. (4分)
下面程序的运行结果是( ① ) 。 #include
int i;
char a[]=\ for(i=0;a[i]!='\\0'&&b[i]!='\\0';i++) if (a[i]==b[i])
if (a[i]>='a' && a[i]<= 'z') printf(\ else printf(\ else printf(\ }
2. (4分)
下面程序段的运行结果是( ① ) 。 i=1;s=3 do {
s+=i++;
if (s%7==0) continue; else ++i; } whlie(s<15); printf(\
3. (4分)
若运行时输入:5999,则以下程序的运行结果(保留小数点后一位)是( ① )。 void main(void) {
int x; float y;
scanf(\
if (x>=0 && x<=2999) y=18+0.12 * x; if (x>=3000 && x<=5999) y=36+0.6*x; if (x>=6000 && x<=10000) y=54+0.3*x; printf(\
}
4. (4分)
以下程序的运行结果是( ① )。 void main(void) {
int a=1,k;
for(k=0;k<3;k++) printf(\ }
int f1(int x) {
static int z=3,y=0; y++; z++;
return(x+y+z); }
5. (4分)
以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。 #include
float x,y,z,sum;
scanf(\
sum=fun1( ① )+ fun1 ( ② ); printf(\ }
float fun1(float a,float b) {
float num; num=a/b; return num; }
五、程序填空题(每题2分,共20分)
1.下面程序的功能是用公式:π×π/6=1/(1×1)+1/(2×2)+1/(3×3)+...... 求π的近似值, 直到最后一项的值小于10e-6为止。 #include