您的当前位置:首页正文

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

2023-07-21 来源:好走旅游网
 8.若inti=10;执行下列程序后,变量i的正确结果是」2

C语言程序设计

(2008/2009学年第二学期)

1 . switch(i) {case0:i+=l; case 10: case 11:

1+=1; i+=l; i+=l;

B.11C.12D.13

四 五 八 七 八 九 十 总分 default: } A.10

9.下列语句中不正确的字符串赋值或初始化的是_L。

得分

一.选择题(满分30分,每题2分)

1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是―D

A.a=bB.a+=y+3; 二c+8; C.c++;

D.a+b+c

2.已知intj,i=l;执行语句\"j=i++;”后,

变量i的值是B

A.1B.2 C.-1D.-2 3.执行下面程序:

-include\"stdio.h〃 、

voidmain()

一 ,

inta=l,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(u

%d,%d,%dw

,a,b,c); }

则输出结果是:

A

C. 4.若要求在A.2,2,4 if后一对圆括号中表示B.4,2,3

5,5,3

D.4,2,5

a不等于。的关系,则能正确表示这一关系的表达式 为Do

A. a<>0B.

!a

C.a=0D.a

5. for (j=0;

j++);循环结束后,j的值是B A. 12

B.11

C.10D.9

6. C语言中函数返回值的类型由

D决定的。

A.return语句中的表达式类型

B.调用该函数的主调函数的类型 C.调用函数时临时决定 D.定义函数时所指定的函数类型

7. 下列说法中正确的是

B

A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。

C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。

A.charstr[10]={/,

strings//

};B.charstr[8]={,

s','t','r', C.charstr[10];str=\"strings”; D. charstr[]=\"strings”;

10.有如下程序:

#include voidmain() inta=l,b=0,c=0; if(aif(b<0)c=0; elsec++; printf(\"%d\\n”,c);

该程序的运行结果是D

A.3

B.2

C.1

D.0

11.在函数调川,对参数传递的说法正确的是

Ao

A 实参和形参各占一个独立的存储单元。

B 实参和形参始终共用一个相同的存储单元。 C 可以由用户指定实参和形参是否共用一个存储单元。 D 可以由系统指定实参和形参是否共用一个存储单元

12.以下正确的程序段是 C

A. char strl[]=\"12345〃,str2[]=〃abcdef〃;strcpy(strl,str2);

B. char str[10],*st=〃abcde〃;strcat(str,st);

C. char str[10]=〃\",*st=〃abed。\";strcat(str,st);

D. char *stl=”12345”,*st2二〃abcde〃;strcat(stl,st2);

13.若有定义:int*p[4];则标识符p B。

A.是一个指向整型变量的指针 B.是一个指针数组名

C.是一个指针,它指向一个含有四个整型元素的一维数组 D.说明不合法

14.以下程序的运行结果是 C.

typedefunion

(

longa[l]; intb[2];

charc[8];

}TEST; TESTm; main()

(

printf(<<

%d\\n,\"

,sizeof(m));

)

A.32B.16C.8D.24

15.设有以下结构体类型:

structst ( char

name[8];

intnum; float s[4];

}student[50];

并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件file,txt 中,以下不正确的形式是C.

A. fwrite(student,sizeof(structst),50,fp); B. fwrite(student,50*sizeof(structst),1,fp); C. fwrite(student,25*sizeof(structst),25,fp); D. for(i=0

i<50

i++)

fwrite(student+i,sizeof(structst),1,fp);

得分 二、填空题(满分20分,每空2分)

1 .每个C语言编写的程序必须有一个,并且只能有一个主函数。 2 .设x和y均为int型变量,且x=l,y=2,则表达式3+x/y的值为3 。

3 .若有定义:inta[]={2,4,6,8,10,12},*p;a;则*(p+1)的值是4 。

4 .设x=0xAB,若要通过x|y使x低4位置1,高4位不变,则一OxOF。 5 .测试char型变量m的最高位数据是否为1的表达式是a&0x80 。

6 .若x=2,尸一3贝ljx&&y的结果是 1

7 .和二进制数101等值的十进制数为

5

8 .定义inti=l;执行语句while(i++<5);后,i的值为6

9.下面程序的运行结果为22222

^include void main() (

int i=2, j=5, s; s=i; for (1—j;)

s=s*10+i; printf ( \"%d\",s); )

10.写出程序的执行结果:i=10,

main ()

{ int i=0, j=0;

while (i<10)

i++;

得分 三、读程序写结果(满分16分,每题1.判断下面程序的运行结果。

#include voidmain() (

int a=0,b=l;

int fun(int a,int b); printf(,'%d\\n,',fun(a,b));

printf(H%d\\nu

,fun(a,b)); )

int fun(int m, int n)

(

static s=l; s++;

retum(s*(m+n)); )

2

程序运行的结果为:3

4分)

2.以下程序的输出结果是

structchain

3,2

ttinclude〃stdio.h〃

intx; inty; structchain

voidmain() m[0].x=l m[0].y=2 m[l].x=3 m[l].y=4; m[0].p=&m[l]; m[l].p=m;

printf(/z%d,%d\\nz,,(m[0].p)->x,(m[l].p)->y);

3.卜.面程序的运行结果是7654321 ttinclude #include voidfun(char*w,intn)

chart,*sl,*s2; sl=w; s2=w+n-l; while(sit=*sl; *sl二*s2; *s2=t; sl++; s2一;

voidmain()

charp□二〃1234567〃;

fun(p,strlen(p)); puts(p);

4.下面程序的输出结果为4,2

ttinclude\"stdio.hstructks ( inta; int*b; }s[4],*p; voidmain() ( intn=l,i; printf((

s[i].a=n; s[i].b=a; n=n+l; } P=&s[0]; p++printf()

°

〃\\n〃);

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

z

%d,%d\\n

,z

,(++p)->a,(p++)->a);

得分 四、程序设计(满分34分)

1 .编写一个程序,判断某一年是否为闰年。(6分)

#include voidmain() (

intyear;

printf(\"inputyear=\"); scanf(,&year);

if((year%4==0&&year%100!0)||year%400==0)

printf(\"%4disaleapyear\\n\else

printf(isnotaleapyear\\n\

2.用公式求乃的近似值,直到最后一项的绝对值小于IO\"为止,请编程实

4.将一个整数字符串转换为一个整数,如〃-1234〃转换为-1234。(10分)

#include ttinclude int void (

chnum(char*p); main()

现。(8分)

#include\"math,h” voidmainO (

ints;floatn,t,pi; t=1;pi=0;n=l.0;s=l; chars[6]; intn; gets(s); while((fabs(t))>lE-6) (

pi=pi+t; n=n+2; s=一s; t=s/n; ) pi=pi*4;

printfC€pi=%10.6f\\n\

3.编写程序,利用子函数实现计算字符串的长度。线#include

int length(char*s); void main()

(

char a[100]; int i;

printf(/zPleaseinputthestring:\\nz/); gets(a); i=length(a);

printf(,z

\\nThelengthofstringis%d〃,i); )

intlength(char*s) (

char*p=s; while(*p) p++;

return(p-s);

分)

if

n=-chnum(s+l); else

n=chnum(s); printf(\"刎\\n〃,n); )

chnum(char*p) (

intnum=0,k,len,j; len=strlen(p); for(;*p!='\\0';p++) (

k二*p」O';

j=(-len); while(j—>0)

k=k*10; num=num+k; )

return(num); )

(10

因篇幅问题不能全部显示,请点此查看更多更全内容