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

  • 格式:pdf
  • 大小:107.09 KB
  • 文档页数:9

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

C语⾔程序设计试题

(2008 /2009 学年第⼆学期)

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

都定义为int类型且初值为0,则以下不正确得赋值语句就是 D 。A、a=b=c+8; B、 a+=y+3;

C、 c++;

D、a+b+c

2、已知int j,i=1;执⾏语句“j=i++;”后,变量i得值就是B .

A、 1 B、 2 C、–1 D、-2

3、执⾏下⾯程序:

#include "stdio、h”voidmain()

{int a=1,b=2,c=3;

c=(a+=a+2),(a=b,b+3);

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

则输出结果就是: A 。A、 2,2,4 B、 4,2,3 C、5,5,3 D、4,2,5

4.若要求在if后⼀对圆括号中表⽰a不等于0得关系,则能正确表⽰这⼀关系得表达式为 D 。

A、 a〈〉0

B、!a

C、a=0

D、 a

5、 for (j=0;j〈11;j++);循环结束后,j得值就是 B 。

A、12

B、 11

C、 10

D、 9

6、C语⾔中函数返回值得类型由D决定得。

A、 return语句中得表达式类型B、调⽤该函数得主调函数得类型

C、调⽤函数时临时决定

D、定义函数时所指定得函数类型

7、下列说法中正确得就是 B 。

A 在调⽤⽤户⾃定义函数时,必须对其进⾏声明.

B 函数可以返回⼀个值,也可以什么值也不返回。

C 说明函数时,必须明确参数得类型与返回值。

D 在程序设计中空函数没有什么作⽤。

8、若int i=10;执⾏下列程序后,变量i得正确结果就是 D 。

switch (i )

{case 0:i+=1;

case 10: i+=1;

case 11: i+=1;default:i+=1;

}A、 10

B、11

C、 12

D、13

9、下列语句中不正确得字符串赋值或初始化得就是 C 。

A.char str[10]={”strings"}; B、char str[8]={’s','t’,'r','i','n’,'g’,'s’,’\0'};

C、char str[10]; str= "strings";

D、charstr[]=”strings";

10、有如下程序:

#include

void main(){

int a=1,b=0,c=0;

if(a<b)if (b〈0) c=0;

else c++;

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

该程序得运⾏结果就是D。

A、 3 B、 2 C、 1 D、011、在函数调⽤,对参数传递得说法正确得就是 A .

A 实参与形参各占⼀个独⽴得存储单元。

B实参与形参始终共⽤⼀个相同得存储单元。C 可以由⽤户指定实参与形参就是否共⽤⼀个存储单元。

D 可以由系统指定实参与形参就是否共⽤⼀个存储单元

12、以下正确得程序段就是 C 。

A、 char str1[ ]= ”12345", str2[ ]= "abcdef"; strcpy(str

1,str2);B、char str[10],*st="abcde"; strcat(str, st);

C、char str[10]=””,*st=”abcde"; strcat(str, st);

D、char*st1="12345”, *st2="abcde”;strcat(st1,

st2);

13、若有定义:int *p[4];则标识符p B。A、就是⼀个指向整型变量得指针

B、就是⼀个指针数组名

C、就是⼀个指针,它指向⼀个含有四个整型元素得⼀维数组

D、说明不合法

装订线

14、以下程序得运⾏结果就是 C 。

typedef union

{longa[1];

intb[2];

char c[8];

} TEST;

TESTm;

main( ){

printf(“%d\n”,sizeof(m));

}A、32

B、 16

C、 8

D、24

15、设有以下结构体类型:struct st

{char??name[8];

int ?num;

float ?s[4];

}student[50];

并且结构体数组student中得元素都已有值,若要将这些元素写到硬盘⽂件中,以下不正确得形式就是 C 。A、fwrite(student,sizeof(struct st),50,fp);

B、fwrite(student,50*sizeof(struct st),1,fp);C、 fwrite(student,25*sizeof(struct st),25,fp);

D、for(i=0;i〈50;i++)

fwrite(student+i,sizeof(struct st),1,fp);

⼆、填空题(满分20分,每空2分),并且只能有⼀个主函数。

2.设x与y均为int型变量,且x=1,y=2,则表达式3+x/y得值为3。

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

4.设x=0xAB,若要通过x|y使x低4位置1,⾼4位不变,则y= 0x0F .

5.测试char型变量m得最⾼位数据就是否为1得表达式就是a&0x80。

6.若x=2,y=-3则x&&y得结果就是1。

7.与⼆进制数101等值得⼗进制数为 5 .

8.定义int i=1;执⾏语句 while(i++<5);后,i得值为6。

9.下⾯程序得运⾏结果为22222。

#include 〈stdio、h〉

void main()

{

int i=2,j=5,s;

s=i;

for (;--j;)

s=s*10+i;

printf(“%d",s);

}10.写出程序得执⾏结果:i=10,j=11main ( ){ int i=0,j=0;

while (i〈10)

i++;

while (j++<10) ;printf(“i=%d, j=%d\n”,i,j);

三、读程序写结果(满分16分,每题4分).

#include〈stdio、h〉voidmain()

{

int a=0,b=1;

intfun(int a,intb);printf("%d\n”,fun(a,b));

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

}intfun(intm,int n)

{statics=1;

s++;

return(s*(m+n));}

2

程序运⾏得结果为: 3 。

装订线2、以下程序得输出结果就是 3,2 。

#include ”stdio、h"struct?chain

{intx;

int y;

struct chain?*p;

}m[2];void main( ){

m[0]、x=1;

m[0]、y=2;

m[1]、x=3;

m[1]、y=4;

m[0]、p=&m[1];m[1]、p=m;

printf(”%d,%d\n”,(m[0]、p)—〉x,(m[1]、p)->y);

}3、下⾯程序得运⾏结果就是。

#include#include 〈string、h〉

void?fun(char *w,int n)

{

char t,*s1,*s2;

s1=w;

s2=w+n—1;while(s1〈s2)

{

t=*s1;

*s1=*s2;

*s2=t;

s1++;

s2—-;}

}void?main( )

{

char p[]="1234567";fun(p, strlen(p));

puts(p);

}4、下⾯程序得输出结果为 4,2 .

#include?"stdio、h"struct ks {int a;int *b;

}s[4],*p;void main()

{

int n=1,i;

printf(”\n");for(i=0;i〈4;i++)

s[i]、a=n;

s[i]、b=&s[i]、a;

n=n+1;

}

p=&s[0];p++;

printf(”%d,%d\n",(++p)-〉a,(p++)->a);}

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

,判断某⼀年就是否为闰年。(6分)

#include 〈stdio、h〉void main()

{int year;

printf(“input year=”);

scanf(“%d”,&year);

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

printf(“%4d is a leap year \n",year);

else

printf(“%4dis not a leap year \n”,year);

}2、⽤公式求得近似值,直到最后⼀项得绝对值⼩于为⽌,请编程实现。(8

分)#include “math、h”voidmain(){

int s;float n,t,pi;

t=1; pi=0; n=1、0; s=1;

while((fabs(t))〉1E-6)

pi=pi+t;

n=n+2;

s=-s;

线

线

装t=s/n;

}

pi=pi*4;

printf(“pi=%10。6f\n”,pi);

3、编写程序,利⽤⼦函数实现计算字符串得长度。(10分)#include

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

{

chara[100];

int?i;

printf(”Please input thestring:\n");gets(a);

i=length(a);

printf("\nThe length of string is %d",i);}

intlength(char*s)