程序设计考试试题

发布时间 : 星期一 文章程序设计考试试题更新完毕开始阅读

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 void main(void) {

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 #include float fun1(float,float); void main(void) {

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 #include void main(void)

联系合同范文客服:xxxxx#qq.com(#替换为@)