当前位置:文档之家› C语言程序设计期末考试卷及答案

C语言程序设计期末考试卷及答案

C 语言程序设计期末考试卷及答案一、单项选择题。

从A 、B 、C 、D 四个选项中,选择一个最佳答案填入括号内( 每小题1分,共计30分)。

1.一个C 语言程序的执行是从( )。

A )本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B )本程序的main 函数开始,到main 函数结束C )本程序的main 函数开始,到本程序文件的最后一个函数结束D )本程序文件的第一个函数开始,到本程序的main 函数结束2.下列选项中不属于...C 语言关键字的是( )。

A )switch B )printf C )default D )case3.设有语句 int a = 4; ,则执行了语句 a += a -= a * a; 后,变量a 的值是( )。

A )24B ) -24C )4D )164.已知int i;float d;,则正确的表达式是( )。

A )(int d) B )int(d)%i C )(int)d%i D )int(d%i)5.已知int i,a;,执行语句i=(a=3*9,a/5),a+11; 后,变量i 的值是( )。

A )5B )16C )27D )386.下列选项中合法的字符型常量是( )。

A )"a"B )'\n'C )"\n"D )a7.下面程序的运行结果是( )。

#include <stdio.h> void main( ) { int k = 15;printf("k = %d,k = %o,k = %x\n",k,k,k); }A )k = 15,k = 15,k = 15B )k = 15,k = 17,k = 17C )k = 15,k = 017,k = 0xfD )k = 15,k = 17,k = f8.已知a,b,c 为int 类型,执行语句:scanf ("%d%d%d",&a,&b,&c );使得a 为10,b 为20,c 为30,以下不正确...的输入形式是( )。

A )10 B )10 C )10,20,30 D )10 20 20 20 30 30 309.已知int x=1,y=2,z=3;,执行下列程序段后,输出的结果是( )。

if(x>y) z=x;x=y;y=z; printf("%d,%d,%d",x,y,z); A )1,2,3B )2,3,3C )2,3,1D )2,3,210.若变量c 为char 类型,能正确判断出c 为大写字母的表达式是( )。

A )'A'<=c<='Z' B )('A'<=c)||(c<='Z') C )(A<=c)&&(c<=Z) D )('A'<=c)&&(c<='Z')11.有以下程序段:int k=0; while(k=1) k++;while 循环执行的次数是( )。

------------------------------------------第----------------------------2----------------------------装---------------------------------------线---------------------------------------------班级 姓名 学号------------------------------------------第----------------------------1----------------------------装A)无限次 B)有语法错,不能执行 C)一次也不执行 D)执行1次12.以下程序的输出结果是()。

void main( ){int x=1,a=0,b=0;switch(x){ case 0:b++;case 1:a++;case 2:a++;b++; }printf("a=%d,b=%d",a,b);}A)a=1,b=0 B)a=1,b=1 C)a=2,b=1 D)a=2,b=2 13.若有定义int i = 1;,执行语句while ( i < 10 ) i++; 后,i的值为()。

A)9 B)10 C)11 D)1214.有说明语句int a[ ]={1,2,3,4,5};,则数组a包括了()个元素。

A)10 B)5 C)6 D)不确定15.以下程序段执行后,输出结果是()。

char str[]="abc\n\012\\\n";printf("%d",strlen(str));A)5 B)6 C)7 D)1316.若有以下定义:float t[5][4];,能正确引用t数组元素的表达式是()。

A)t[1][4] B)t[5][0] C)t[0][0] D)t[0,0]17.执行下列程序段:int i,s = 0;int a[ ][3] = {{1,2},{3,4},{5,6}};for ( i = 0;i < 3;i++ )s = s + a[i][i];则s的值是()。

A)5 B)6 C)12 D)2118.下述对字符数组的描述中,错误..的是()。

A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入输出C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较19.设有宏定义#define Y(x) (x)+ 2 ,则下面程序段的运行结果是()。

int a = 2,b = 2,c = 1;printf("%d\n",a * Y( b + c ) );A)7 B)8 C)9 D)1020.若用数组名作为函数调用的实参,传递给形参的是()。

A)数组的长度B)数组第一个元素的值C)数组中全部元素的值D)数组的首地址21.下面叙述中,不正确...的是()。

A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效22.若在程序中定义了以下函数:float max( float a ,float b ){ return ( a>b?a:b); }并将其放在主调函数之后,则在调用之前应该对该函数进行声明,以下选项中错误..的声明是()。

A) float max( float a,b ); B) float max( float ,float );C) float max( float a ,float b ); D) float max( float x ,float y ); 23.要使函数体内的某局部变量能保留函数前一次调用后的值,供下一次调用时继续使用,该变量的存储类型应是()。

A) auto B) extern C) static D) register24.类型相同的两个指针变量之间不能..进行的运算是()。

A)+ B)- C)= D)==25.若有说明语句:int i, x[3][4] ;,则不能..将x[1][1]的值赋值给变量i的语句是()。

A)i = *( *( x + 1 ) + 1 ); B)i = x[1][1];C)i = *( *( x + 1 ) ); D)i = *( x[1] + 1 );26.有如下程序段:int a[6] = { 1,2,3,4,5,6 };int m,*ptr;ptr = &a[0];m = ( *ptr )*( *( ptr + 2 ) ) *( *( ptr + 4 ) );执行该程序段后,m的值为()。

A) 15 B)48 C)24 D)827.设有定义:enum team{ my,your=4,his,her = his+10};则枚举元素my、your、his、her的值分别是()。

A)0 1 2 3 B)0 4 0 10 C)0 4 5 15 D)1 4 5 15 28.下面程序的运行结果是()。

union myun{ struct{ int x,y,z; }u;int k;}a;void main( ){ a.u.x = 4;a.u.y = 5;a.u.z = 6;a.k = 0;printf("%d\n",a.u.x);}A)4 B)0 C)5 D)629.表达式11 & 18的值是()。

A)0 B)1 C)2 D)2730.当顺利执行了文件关闭操作后,fclose函数的返回值是()。

A) 0 B)true C) -1 D) 1二、填空题(每小题2分,共计20分)。

1.C语言源程序编译后生成程序,然后经过连接生成可执行程序。

2.实型常量有两种表示方法:小数形式和。

3.rewind函数的功能是。

4. 若ch是字符型变量,与ch=getchar();功能相同的语句是。

5.以下程序段要使指针变量p指向一个整型的动态存储单元,请填空。

int * p;p= malloc(sizeof(int));6.已知:int *p,a = 2,b = 1;,则执行程序段p = &a;a = *p + b; 后,a的值为。

7.已知:int x = 1, y = 2, z;,则执行z = x > y ? ++x : ++y;后,z的值为。

8.当执行下面程序且输入:ABC<回车>时,输出的结果是。

#include <stdio.h>void main( ){ char ss[10] ="12345";gets(ss);printf(“%s\n”,ss);}9.下面程序的功能是用函数的递归调用求n!(n≥1),请填空。

float f(int n){ if (n==1) return(1);else return ();}void main( ){ int n;scanf("%d",&n);printf("%.0f\n",f(n));}10.以下程序执行后的输出结果是。

void main( ){ int a = 3,b = 1,t;t = ( a << 2 ) | b;printf("%d\n",t );}三、程序阅读题(每小题4分,共计20分)。

相关主题