文档库 最新最全的文档下载
当前位置:文档库 › C语言期末试卷

C语言期末试卷

【HNCE网上考试系统 v9.6】 本套软件使用权属于:河南工业大学

考试课程:C程序设计 考试时间:100分钟 考场:未定义 考试日期:2004.08.05


--------------------------------------------------------------------------------


本卷共有3道大题:


一、单项选择题(40道小题,共45分)
1、设有说明语句:char w;int x;float y;double z;w*x+z-y值的数据类型为( )。(1分)
A、float B、char
C、int D、double

2、下面正确的字符串常量是()(1分)
A、'a' B、'376'
C、"\\n" D、376

3、下列定义变量的语句中错误的是( )。(1分)
A、int _int; B、double int_;
C、char for; D、float us$;

4、下列关于函数的叙述正确的是( )。(1分)
A、每个函数都可以被其他的函数调用(包含main函数)。 B、每个函数都可以被单独编译。
C、每个函数都可以单独运行。 D、在一个函数内部可以定义另一个函数。

5、设C语言中,float类型数据占4个字节,则double类型数据占( )个字节。(1分)
A、1 B、2
C、8 D、4

6、能正确表示“当x的取值范围在[1,10]和[100,110]范围内为真,否则为假”的表达式是( )。(1分)
A、(x>=1)&&(x<=10)&&(x>=100)&&(x<=110) B、(x>=1)||(x<=10)||(x>=100)||(x<=110)
C、(x>=1)&&(x<=10)||(x>=100)&&(x<=110) D、(x>=1)||(x<=10)&&(x>=100)||(x<=110)

7、以下选项中非法的字符常量是( )。(1分)
A、'\\' B、'\020"
C、'\xAA' D、'0'

8、以下程序的运行结果是( )。 #include main() { int a=3,b=4,c=8,d=4,m=1,n=3; printf("%d\n",(m=a>b)&&(n=c>d)); }(1分)
A、0 B、1
C、2 D、3

9、设变量已正确定义并赋值,以下正确的表达式是( )。(1分)
A、x=y*5=x+z B、int(15.8%3)
C、x=y+z+3,++y D、x=25%5.0

10、设a和b均为int型变量,且a=6,b=11,则能使值为3的表达式是( )。(1分)
A、b%(a%4) B、b%(a-a%5)
C、b%a-a%5 D、(b%a)-(a%4)

11、若有以下程序段,其输出结果是() int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%d\n",a,b,c);(1分)
A、0,0,-10 B、0,0,5
C、-10,3,-10 D、3,3,-10

12、有下列程序: main() {char a1='M',a2='m'; printf("%c\n",(a1,a2)); } 下列叙述正确的是( )。(1分)
A、程序输出M B、程序输出m
C、格式说明符不足,编译出错 D、程序运行时产生出错信息

13、以下合法的C语言赋值语句是()(1分)
A、A=B=58 B、k=int(a+b);
C、a=58,b=58 D、--i;

14、若i,j已定义成int型,则以下程序段中内循环体的总执行次数是()。 for(i=6;i>0;i--) for(j=0;j<4;j++){...}(1分)
A、20 B、24
C、25 D、30

15、执行语句 for (i=1;i++<4;) ; 后变量 i 的值是( )。(1分)
A、3 B、4
C、5 D、不定

16、下面4个关于C语言的结论中错误的是( )

。(1分)
A、可以用do...while语句实现的循环一定可以用while语句实现 B、可以用for语句实现的循环一定可以用while语句实现
C、可以用while语句实现的循环一定可以用for语句实现 D、do...while语句与while语句的区别是关键字“while”出现的位置不同

17、下列叙述中正确的是()。(1分)
A、break语句只能用于switch语句中 B、continue的作用是使程序的执行流程跳出包含它的所有循环
C、break语句只能用于循环体内和switch语句中 D、在循环体内使用break语句和continue语句的作用相同

18、若变量已正确定义,以下正确的程序段是( )。(1分)
A、while(ch=getchar()=='\N') putchar(ch); B、while((ch=getchar())=='\n')putchar(ch);
C、while((ch=getchar())!='\N')putchar(ch); D、while((ch=getchar())!='\n')putchar(ch);

19、以下不正确的定义语句是( )。(1分)
A、double x[5]={1.0,2.0,3.0,4.0,5.0}; B、int y[5]={0,1,2,3,4,5}};
C、char c[]={'1','2','3','4','5'}; D、char c2[]={'a','b','c'};

20、若有定义int a[3][4], 则对数组 a 元素的正确引用是( )。(1分)
A、a[2][4] B、a[1,3]
C、a[2][2] D、a[10-10]

21、在c语言中引用数组元素时,其数组下标的数组类型允许是()(1分)
A、整型常量 B、整型表达式
C、整型常量或整型表达式 D、任何类型的表达式

22、若要求定义具有10个int型元素的一维数组a,则下列定义语句中错误的是( )。(1分)
A、#define N 10 int a[N] B、#define n 5 int a[2*n]
C、int a[5+5] D、int n=10,a[n]

23、以下能对一维数组a进行正确初始化的语句是(1分)
A、int a[10]=(0,0,0,0,0); B、int a[10]={ };
C、int a[]={0}; D、int a[10]={10*1};

24、用数组名作为函数的实参时,传递给形参的是()(1分)
A、数组的首地址 B、数组的第一个元素
C、数组中的全部元素 D、数组的元素个数

25、在C语言中,函数调用时()。(1分)
A、实参和形参各占独立的存储单元 B、实参和形参共用存储单元
C、由系统自动确定实参和形参是否共用存储单元 D、由用户指定实参和形参是否共用存储单元

26、关于函数参数,说法正确的是()(1分)
A、实参与其对应的形参各自占用独立的内存单元 B、实参与其对应的形参共同占用一个内存单元
C、只有当实参和形参同名时才占用同一个内存单元 D、形参是虚拟的,不占用内存单元

27、下面说法不正确的是()。(1分)
A、调用函数时,实参可以是表达式 B、调用函数时,实参和形参可以共用内存单元
C、调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等 D、调用函数时,实参与形参的类型必须一致

28、执行语句"char a[10] = {"abcd"}, *p = a;"后

,*(p+4)的值是(1分)
A、"abcd" B、'd'
C、'\0' D、不能确定

29、以下有关宏的不正确的是( )。(1分)
A、宏名无类型 B、宏定义不做语法检查
C、宏名必须用大写字母表示 D、双引号中出现的宏名不进行替换

30、在16位编译系统上,若有定义int a[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是( )。(1分)
A、p向高地址移了一个字节 B、p向高地址移了一个存储单元
C、p向高地址移了两个字节 D、p与n+1等价

31、当说明一个结构体变量时系统分配给它的内存是( )。(1分)
A、各成员所需内存的总和 B、结构中第一个成员所需内存量
C、成员中占内存量最大者所需的容量 D、结构中最后一个成员所需内存量

32、C语言结构体类型变量在执行期间()(1分)
A、所有成员一直驻留在内存中 B、只有一个成员驻留在内存中
C、部分成员驻留在内存中 D、没有成员驻留在内存中

33、若调用fputc函数输出字符成功,则其返回值是( )。(1分)
A、EOF B、1
C、0 D、输出的字符

34、当顺利执行了文件关闭操作时,fclose函数的返回值是( )。(1分)
A、false B、TRUE
C、0 D、1

35、fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是( )。(1分)
A、只写 B、追加
C、读或读写 D、答案B和C都正确

36、下列程序的运行结果是()。 main() {int a=1,b; for(b=1;b<=10;b++) {if(a>=8) break; if(a%2==1) {a+=5;continue;} a=3; } printf("%d\n",b);}(2分)
A、3 B、4
C、5 D、6

37、以下程序段给数组所有元素输入数据,应在下划线处填入的是() main() { int a[10],i=0; while(i<10) scanf("%d",_______); : : }(2分)
A、a+(i++) B、&a(i+1)
C、a+i D、&a[++i]

38、有下列程序: main() {int k=5; while(--k) printf("%d",k-=3); printf("\n"); } 执行后的输出结果是()。(2分)
A、1 B、2
C、4 D、死循环

39、以下程序的输出结果是() fun(int a,int b) {int c; c=a+b; retutn c; } main() {int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf("%d\n",r); }(2分)
A、11 B、20
C、21 D、31

40、以下程序的输出结果是() main() { int a[]={2,4,6,8},y=1,x,*p; *p=&a[1]; for(x=0;x<3;x++) y+=*(p+x); printf("%d\n",y); }(2分)
A、17 B、18
C、19 D、20



二、填空题(11道小题,共20分)
1、在C语言中的实型变量分为两种类型,它们是float和。

(1分)


--------------------------------------------------------------------------------

2、C语言源程序经过编译后,生成文件的后缀是。

(1分)


--------------------------------------------------------------------------------

3、若有定义:int a=4,b=5,c=6;接着顺序执行下列语句后,变量b中的值是。
c=(a-=(b-5));
c=(a%3)+

(b=1);


(1分)


--------------------------------------------------------------------------------

4、C语言中结束本次循环的语句是。


(1分)


--------------------------------------------------------------------------------

5、若有定义:double a[5], 则a数组的长度为。


(1分)


--------------------------------------------------------------------------------

6、欲将字符串S1复制到字符串S2中,其语句是。


(1分)


--------------------------------------------------------------------------------

7、为了保证被调用函数不返回任何值,其函数定义的类型应为


(1分)


--------------------------------------------------------------------------------

8、"*"称为运算符.

(1分)


--------------------------------------------------------------------------------

9、以下函数用以求x的y次方。请填空。
double fun(double x,int y)
{
int i;double z;
for(i=1;i;i++)
z=;
return z;
}


(4分)


--------------------------------------------------------------------------------

10、从键盘输入一个字符,并将其输出,完成填空。
main()
{char c;
c=;
putchar;
}


(4分)


--------------------------------------------------------------------------------

11、有下列程序段,且变量已正确定义和赋值:
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
请填空,使下列程序段的功能与之完全相同。
s=1.0;k=1;
while() {s=s+1.0/(k*(k+1));;}
printf("s=%f\n\n",s);


(4分)


--------------------------------------------------------------------------------



三、编程题(3道小题,共35分)
1、输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。

(10分)
(本题不要求填写运行结果)
请将你解答本题所写的源程序粘贴到下面或者上载源程序
#include<>stddio.hL
int main()
{int a,b,c;




--------------------------------------------------------------------------------

2、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想吃时就剩一个桃子了。求第一天共摘了多少个桃子。

(10分)
(本题不要求填写运行结果)
请将你解答本题所写的源程序粘贴到下面或者上载源程序




--------------------------------------------------------------------------------

3、用冒泡排序法对输入的10个数进行升序排序,并存入数组中。

(15分)
(本题不要求填写运行结果)
请将你解答本题所写的源程序粘贴到下面或者上载源程序





--------------------------------------------------------------------------------






--------------------------------------------------------------------------------



--------------------------------------------------------------------------------

强烈建议您使用IE5.0以上,屏幕分辨率800X600以上,真彩,小字体浏览



相关文档
相关文档 最新文档