文档库

最新最全的文档下载
当前位置:文档库 > 08-09-1C语言期末考试试卷A

08-09-1C语言期末考试试卷A

南京工业职业技术学院

2008/2009 第一学期期末试卷(A卷)

课程:C语言程序设计出卷人:王萍考试类型:开卷【】

闭卷【√】适用班级:电子0711/21 通信0711/21

08-09-1C语言期末考试试卷A

一、单项选择题(每题2分, 共50分)

1、以下叙述中正确的是( )。

A)在C语言程序中,main函数必须位于程序的最前面

B)C语言程序书写格式严格,要求一行内只能写一个语句

C)C语言程序本身没有输入输出语句

D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误

2、以下合法的用户标识符是()。

A) int B) 2_int C) CHAR D) a#b

3、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八

进制表示的字符常量’\102’代表的是()。

A) A B) a C) B D) b

4、以下合法的赋值语句是()。

A) x=y=100 B) d=10; C) x+y; D) c=int(a+b)

5、若x和y据为int型变量,则语句“printf(“%d,%d”, x=8, y=9);”的输出

结果是()。

A) 8,9 B) 7,8 C) 8,8 D)7,9

6、设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A)k++ B)k+=1 C)++k D)k+1

7、设int类型数据长度为2个字节,则unsigned int的取值范围是( )。

A)0~255 B)-256~255 C)-32768~32767 D)0~65535

8、若变量已正确定义,有以下程序段

int a=3,b=5,c=7;

if(a>b)

a=b;

c=a;

if(c!=a)

c=b;

printf(”%d,%d,%d”,a,b,c);

其输出结果是()。

A) 程序有语法错B) 3,5,3 C)3,5,7 D)3,5,5

9、设有数组定义: char array [ ]="China"; 则数组array所占的空间为()。

A) 4个字节B) 5个字节C) 6个字节D) 7个字节

10、以下与if(!x)有相同功能的是()。

A) if(x)B) if(x==0) C) if(x>=0 && x<=1) D) if(x!=0)

11、有如下定义:

double max(double a , double b)

{if (a

else return a;}

那么函数调用语句max(3.4,6.5 )的返回值是()。

A) 6.5 B)3.4 C)3 D)6

12、当在源程序中使用到库函数printf()时,先要用inc lude命令将()头

文件包含进来。

A) stdio.h B) string.h C) math.h D) stdlib.h

13、有以下程序

#inc lude “stdio.h”

int main(void)

{ int x=1,y=0,a=0,b=0;

sw itc h(x)

{c ase 1: a++;

c ase 2: b++;

c ase 3:a++;b++;

}

sw itc h(y)

{c ase 0:a++;break;

c ase 1:b++;break;

}

printf(“a=%d,b=%d”,a,b);

return 0;

}

程序的运行结果是()。

A) a=1,b=0 B) a=3,b=2 C) a=1,b=2 D) a=2,b=1

14、若已定义c har s[5]; 则在下面表达式中不表示s[1]的地址的是()。

A) s+1 B)&s[0]+1 C) &s[1] D) s++

15、以下语句不构成无限循环的语句或语句组的是()。

A)n=0;

do{++n;}w hile(n<=0);

C)n=10;

w hile(n);{n--;} B)n=0;

w hile(1){n++;} D)for(n=0,i=1; ; i++)

n+=i

16、若有定义:int a[2][3];,以下选项中多a数组元素正确引用的是()。

A)a[2][!1] B) a[2][3] C)a[0][-1] D) a[1>2][!1]

17、以下描述中正确的是()。

A)goto语句只能用于退出多重循环

B)c ontinue语句可以退出循环

C)c ontinue语句可以结束本次循环

D)break语句可以结束本次循环

18、在定义任何一个函数时,下列选项中()是不可缺少的。

A)函数名之前的数据类型B)函数名之后一对圆括号

C)形式参数声明D)函数体中的语句

19、以下叙述正确的是()。

A) do-while语句构成的循环不能用其它语句构成的循环来代替

B) do-while语句构成的循环只能用break语句退出

C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环

D) 用do-while语句构成的循环,在while后的表达式为零时结束循环

20、能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是()。

A) a>=10 or a<=0 B) a>=0|a<=10C) a>=10 &&a<=0 D) a>=10‖a<=0

21、有如下程序

long fib(int n)

{ if(n>2) return(fib(n-1)+fib(n-2));

else return(2);

}

main( )

{ printf(“%d \n”,fib(3));

该程序的输出结果是 ( )。

A) 2 B) 4 C) 6 D) 8

22、有以下程序段

int k=0

while(k=1)k++;

while 循环执行的次数是( )。

A) 无限次 B) 有语法错,不能执行

C) 一次也不执行 D) 执行1次

23、表达式(3>2)?4:5的值为( )。

A) 2 B) 3 C) 4 D) 5

24、设有以下变量定义

int s[3][4];

那么s 数组中共有( )个int 类型的数组元素。

A) 3 B) 4 C) 12 D) 24

25、以下程序的输出结果是

main()

{ char str[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A) "AAAA" B) "BBB" C) "BBBCC" D) "CC"

二、填空题(每空1分, 共15分)

1、C 源程序的基本单位是______。

2、在C 语言中,八进制整型常量以____开头,十六进制整型常量以____。

3、C 语言中提供三种结构化程序设计分别为:顺序结构、选择结构和______结构,

其中选择结构又分为两种格式分别为_______和________。

4、写出代数表达式ab

n

m 3的正确的C 语言表达式______________。

5、在C语言的语句执行printf(“%s”,”abc\n def”)后输出结果为_____________。

6、C语言中规定字符串的结束标志为_______。

7、设有变量定义:int a[5]={1,2,3},那么该数组中共有_______个元素,其中a[1]

的值为_______。

8、在C语言函数定义过程中,通过________语句带回返回值。

9、设有说明“int j;float x;”, 则执行语句“x=j=4.8;”后,x的值为_____。

10、在C语言中,当逻辑表达式成立时,则该逻辑表达式的值为______。

11、在C语言中,break可以应用到循环和开关语句sw itc h中,而c ontinue

只能应用于________之中。

三、阅读程序回答相关问题(共21分)

1、当执行以下程序时,输入123450<回车>,则其中while循环体将执行___ 次。(3分)

#include

main()

{char ch;

while((ch=getchar())!=’0’)printf(“#”);

}

2、下面程序的功能是计算1-2+3-4+5-6+7-8+9-10的值,请填空。(3分)

main( )

{ int i,sum=0,n=10 ,f=1;

for ( i=1;i<=n;i++)

{ sum=sum+i*f;

f=____________;

}

printf (“%d\n”,sum);

}

3、下面程序段的运行结果是_______________________。(3分)

#inc lude

main()

{ int x=1,y=0;

sw itc h (x)

{ c ase 1:printf(“first\n”);

c ase 2: printf("sec ond\n");

}

sw itc h(y)

{ c ase 0:printf(“third\n”);break;

c ase 1:printf(“fouth\n”);break;

}

}

4、下面程序段的运行结果是_______________________。(4分)

main()

{int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

for(i=1;i<3;i++)

for(j=0;j<=i;j++)

s+=a[i][j];

printf("%d\n",s);

}

5、下列程序执行后,x的值为___________________。(4分)

main()

{ int x,y;

for(x=1,y=1;x<=100;x++)

{ if(y>=20)break;

if(y%3==1){ y+=3;continue; }

y-=5;

}

printf("%d\n",x);

}

6、以下程序输出结果是_______________。(4分)

swap(int a,int b)

{ int c;

c=a;a=b;b=c;

}

main()

{int m=5,n=9;

swap(m,n);

printf(“m=%d n=%d”,m,n);

}

四、编程题(共14分)

1

08-09-1C语言期末考试试卷A

(7分)

2(7分)