大一c语言期末考历年试卷整理(含答案+复习题)_第1页
大一c语言期末考历年试卷整理(含答案+复习题)_第2页
大一c语言期末考历年试卷整理(含答案+复习题)_第3页
大一c语言期末考历年试卷整理(含答案+复习题)_第4页
大一c语言期末考历年试卷整理(含答案+复习题)_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《C语言程序设计》期末考试模拟试卷(A)

一、单选题(四个选项中,只有一个选项是正确的,请将正确选项涂写在

答题卡相应位置上,答在试卷上不得分.共50道小题,80分,其中1-20题每

题1分,21-50题每题2分)

1.下列4个选项中,(d)是合法的用户自定义标识符。

A.b-bB.floatC.2aD._isw

2.下列表达式中值为0的是(c)o

A.3%5B.3/5.0C.3/5D.3.0/5

3.在C程序中,用(b)表示逻辑值“真

A.1B.非0的数C.非1的数D.大于0的数

4.假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列

能正确表示代数式—的表达式是(b

abc

A.l/a*b*cB.1/(a*b*c)C.1/a/b/(float)c

D.1.0/a/b/c

5.若有说明和语句:

inta=5;

++a;

此处表达式++a的值是(6)

A.7B.6C.5D.4

6.以下所列的C语言常量中,错误的是(b)

A.OxFFB.1.2e0.5C.2LD.'c'

7.以下程序段的输出结果是(c)

inta=1234;

printf("%2d\n”,a);

A.12B.34C.1234D.提示出错、无结果

8.若a为int类型,且其值为3,则执行完表达式a-=a*a后,a的值是(c)

A.-3B.9C.-6D.6

9.若变量c为char类型,能正确判断出c为小写字母的表达式是(d)

A.a<=c<='zB.(c>='a')||(c<='z)

C.(*a<=c)and('z'>=c)D.(c>=*a)&&(c<='z')

10.有以下程序段

intn=0,p;

do{scanf&p);n++;}while(p!=12345&&.n<3);

此处do-while循环的执行条件是(a)。

A.p的值不等于12345并且n的值小于3

B.p的值等于12345并且n的值大于等于3

C.p的值不等于12345或者n的值小于3

D.p的值等于12345或者n的值大于等于3

11.若定义:inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为(d)

A.无确定值B.a的地址C.512D.511

12.以下所列的各函数首部中,正确的是(c)

A.voidplay(var:Integer,varb:Integer)

B.voidplay(inta;b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

13.设intx=l,y=l;表达式(!x||y-)的值是(b)

A.0B.1C.2D.-1

14.当调用函数时,实参是一个数组名,则向函数传送的是(b)

A.数组的长度B.数组的首地址

C.数组每一个元素的地址D.数组每个元素中的值

15.设有以下说明语句

typedefstruct

{intn;

charch[8];

}PER;

则下面叙述中正确的是(b)

A.PER是结构体变量名B.PER是结构体类型名

C.typedefstruct是结构体类型D.struct是结构体类型名

16.若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋

给变量a^b、c的语句是(a)

A.scanf(〃%d%d%d”,&a,&b,d);B.scanf("%d%d%d”,&a,&b,&d);

C.scanf("%d%d%d”,a,b,d);D.scanf("%d%d%d”,a,b,*d);

17.对于基类型相同的两个指针变量之间,不能进行的运算是(c)

A.<B.=C.+D.-

18.在C语言中,局部变量的隐含存储类别是(a)

A.autoB.staticC.externD.无存储类别

19.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表

达式是(d)o

A.x||yB.x|yC.x&yD.x'y

20.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的

返回值是(c)

A.无返回值B.0C.非零值D.NULL

21.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程

序段是(b)。

A.for(i=l,p=l;i<=5;i++)p*=i;

B.for(i=l;i<=5;i++){p=l;p*=i;}

C.i=l;p=l;while(i<=5){p*=i;i++;}

D.i=l;p=l;do{p*=i;i++;}while(i<=5);

22.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x

的值为(c)

A.4B.16C.32D.52

23.假定有以下变量定义:

intk=7,x=12;则能使值为3的表达式是(d)

A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5

D.(x%=k)-(k%=5)

24.下列程序执行后的输出结果是(d)

A.6B.8C.10D.12

ttdefineMA(x)x*(x-l)

main()

{inta=4;printf("%d\n”,MA(a));}

25.以下程序的输出结果是(b)

mainO

{charcf⑶[5]={〃AAAA〃,〃BBB〃,”CC〃};

printf(//%s\n//,cf[1]);

)

A.AAAAB.BBBC.BBBCCD.CC

26.假定a和b为int型变量,则执行以下语句后b的值为()

a=l;b=10;

do

{b-=a;a++;}

while(b一<0);

A.9B.-2C.-1D.8

27.下列程序的输出结果是(c)o

mainO

{doubled=3.2;intx,y;

x=l.2;y=(x+3.8)/5.0;

printfC%d\n”,d*y);

)

A.3B.3.2C.0D,3.07

28.以下程序的输出结果为()o

main()

{charA';

x=(x>=,A,&&x<=,V)?(x+,a,-”,):x;

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

}

A.AB.aC.zD.Z

29.以下程序执行后的输出结果是()。

main()

{inti=0,s=0;

do{

if(i%2){i++;continue;}

i++;

s+=i;

}while(i<7);

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

A.16B.12C.28D.21

30.设有如下定义:

intarr[]={6,7,8,9,10};

int*ptr;

则下列程序段的输出结果为()

ptr=arr;

*(ptr+2)+=2;

printf("%d,%d\n”,*ptr,*(ptr+2));

A.8,10B.6,8C.7,9D.6,10

31.以下程序的运行结果是()o

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(5,2,a);

printfa);

)

A.0B.29C.31D.无定值

32.定义如下变量和数组:

inti;

intx[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是()o

for(i=0;i<3;i++)printfx[i][2-i]);

A.159B.147C.357D.369

33.有以下程序段

chararr[]="ABCDE”;

char*ptr;

for(ptr=arr;ptr<arr+5;ptr++)printf("%s\n",ptr);

输出结果是()

A.ABCDB.AC.ED.ABCDE

BDBCDE

CCCDE

DBDE

EAE

34.有以下程序

main()

{chark;inti;

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

{scanf&k);

switch(k)

{caseO':printf('###'n");

case'r:printf("***\n");

)

)

程序运行时,从键盘输入:Ok回车),程序执行后的输出结果是()

A.###B.###C.###D.***

###***

35.以下程序运行后,输出结果是

A.8,15B.8,16C.8,17D.8,8

func(inta,intb)

{staticintm=0,i=2;

i+=m+l;

m=i+a+b;

return(m);

)

main()

{intk=4,m=l,p;

p=func(k,m)jprintf(<<%dw,p);

p=func(k,m);printf("%d\n",p);

)

36.若有以下定义和语句:

char*sl="1234",*s2="12345”;

printf("%d\n",strlen(strcpy(sl,s2)));

则输出结果是

A.4B.5

C.9D.10

37.有以下程序

^include<stdio.h>

main()

{inta,b,c=246;

a=c/100%9;

b=(-l)&&(-!);

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

)

输出结果是()

A.2,1B.3,2C.4,3D.2,-1

38.以下程序运行后,输出结果是()

A.10000B.10010C.00110D.10100

main()

{inty=18,i=0,j,a[8];

do

{a[i]=y%2;i++;

y=y/2;

}while(y>=l)

for(j=i-l;j>=0;j")printf("%d”,a[j]);

printf("\n");

)

39.有以下程序

#include<stdio.h>

structstu

{intnum;

charname[10];

intage;

};

voidfun(structstu*p)

{printf("%s\n〃,(*p).name);}

main()

(

structstustudents[3]={{9801,"Zhang”,20},

{9802,"Wang",19},

{9803,"Zhao",18}};

fun(students+2);

)

输出结果是()

A.ZhangB.ZhaoC.WangD.18

40.以下程序输出的是()

A.0B.44C.17D.37

main()

{inta[10]={19,23,44,17,37,28,49,36},*p;

P二a;

printf("%d\n",p[3]);

)

41.有以下程序

main()

{chara口=“programming",b[]="language”;

char*pl,*p2;

inti;

pl=a;p2=b;

for(i=0;i〈7;i++)

if(*(pl+i)=*(p2+i))printf*(pl+i));

)

输出结果是

A.gmB.rgC.orD.ga

42.以下程序输出的是()

A.2143B.1212C.1234D.2112

voidfun(int*x,int*y)

{printf("%d%d”,*x,*y);*x=3;*y=4;}

mainO

{intx=l,y=2;

fun(&y,&x);

printf(z,%d%d〃,x,y);

)

43.以下程序输出的是()

A.6B.7C.8D.9

#include“stdio.h"

intabc(intu,intv);

main()

{inta=24,b=16,c;

c=abc(a,b);

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

intabc(intu,intv)

{intw;

while(v)

{w=u%v;u=v;v=w}

returnu;

)

44.若有以下定义:

chars[20]="programming",*ps=s;

则不能代表字符。的表达式是()

A.ps+2B.s[2]

C.ps[2]D.ps+=2,*ps

45.以下对C语言函数的有关描述中,正确的是

A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传

送给实参

B.C函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中

46.以下程序的输出结果是()

A.1B.2C.3D.4

longfun(intn)

{longs;

if(n==l||n==2)s=2;

elses=n-fun(n-l);

returns;

)

main()

{printf("%ld\n”,fun(3));}

47.以下程序的输出是()

A.10B.11C.50D.60

structst

{intx;int*y;}*p;

intdt[4]={10,20,30,40);

structstaa[4]={509&dt[0]9609&dt[0],609&dt[0]9609&dt[0]};

main()

{P=aa;

printf("%d\n",p->x);

}

48.若有说明:inti,j=7,*p=&i;,则与i=j;等价的语句是

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

49.不能把字符串:Hello!赋给数组b的语句是

A.charb[10]={'H','e','l','l','o','!'};

B.charb[10];b="Hello!”;

C.charb[10];strcpy(b,"Hello!”);

D.charb[10]=/,Hello!//;

50.下面程序的功能是输出以下形式的金字塔图案,应在下划线处填入的是

()o

*

***

main()

{inti,j;

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

{for(j=l;j<=4-i;j++)printf(w");

for(j=l;j<=;j++)printf("*");

printf(“\n”);

)

)

A.iB.2*i-lC.2*i+lD.i+2

二、填空题(每空2分,共20分)请将每一个空的正确答案写在答题卡【1】至

[10]序号的横线上,答在试卷上不得分。)

1.假定所有变量均已正确说明,下列程序段运行后x的值是11】

a=b=c=0;x=35;

if(!a)x--;

elseif(b);

if(c)x=3;

elsex=4;

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

main()

{intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n”,*(p+3));

)

3.下列程序的输出结果是16.00,请填空。

main()

{inta=9,b=2;

floatx=[3],y=l.1,z;

z=a/2+b*x/y+l/2;

printf("%5.2f\n",z);

)

4.下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。

^include"stdio.h”

main()

{inta,b,c,i;

a=c=O;

for(i=0;i<=10;i+=2)

{a+=i;

b=i+l;

[4];

}

printf("偶数之和=%d\n”,a);

printf(”奇数之和=%d\n”,c-U);

}

5.下面程序是从键盘输入一串字符,以作为结束,将其保存到文本

文件中,请填空

main()

{FILE*fp;

charch,fname[10];

printf(/zInputthenameoffile\n");

gets(fname);

if((fp=fopen(fname,【5]))==NULL)

{printf("Cannotopen\n");exit(O);}

printf(/zEnterdata'n");

while((ch=getchar())!='#')

fputc([6],fp);

fclose(fp);

)

6.有以下语句段

intnl=10,n2=20;

printf("[7]”,nl,n2);

要求按以下格式输出nl和n2的值,请填空。

nl=10,n2=20

7.函数pi的功能是根据以下近似公式求n值:

(五*ji)/6=1+1/(2*2)+1/(3*3)+..+l/(n*n)

现在请你在下面的函数中填空,完成求n的功能。

ttinclude"math,h"

doublepi(longn)

{doubles=0.0;longi;

for(i=l;i<=n;i++)s=s+[8];

return(sqrt(6*s));

)

8.以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组

中,找出每一行上的最大值。请填空。

ttdefineN3

#defineM4

voidLineMax(intx[N][M])

{inti,j,p;

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

{P=0;

for(j=l;j<M;j++)

if(x[i][p]<x[i][j])19]:

printf("Themaxvalueinline%dis%d\n”,i,[10]);

B卷

一、选择题(每题2分,共30分)

1、#include<stdio.h>的结果是D_

voidmain()

{inta[3][3]={l,2,3,4,5,6,7,8,9);

ints=0,i;

for(i=0;i<3;i-H-)

s+=(*(a+i))[i];

printf("%d",s);

}

A)9B)12C)14D)15

2、设有说明语句:chara='\123abc';则变量a题目错了一

A)包含7个字符B)包含6个字符C)包含5个字符D)包含4个字符

3、有以下程序段

intk=0

while(k=l)k++;

while循环执行的次数是C

A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次

4、在C语言中,D_。

A)函数定义可以嵌套,但函数调用不能嵌套B)函数定义不可以嵌套,但函数

调用可以嵌套C)函数定义和调用均不能嵌套D)函数定义和调用均可以嵌套

5、以下叙述正确的是—D

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

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

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

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

6、以下关于函数叙述中,正确的是Ao

A.在函数体中可以直接引用另•个函数中声明为static类别的局部变量的值

B.在函数体中至少必须有一个return语句

C.在函数体中可以定义另一个函数

D.在函数体中可以调用函数自身

7、以下数组声明语句中正确的是无正确

A.inta,a[n];B.inta[];C.inta[2][3]={{l},{2},{3}};D.inta[][3]={{1},{2},{3}};

8、以下不能正确进行字符串赋初值的语句是A_

A)charstr[5]=/zgood!"B)charstr[]="good!”;C)char*str="good!”;D)

charstr[5]={'g','o','o','d'};

9、以下关于switch语句和break语句的描述中,只有A_是正确的。

A)在switch语句中必须使用break语句

B)在switch语句中,可以根据需要使用或不使用break语句

C)break语句只能用于switch语句中

D)break语句是switch语句的一部分

10、判断变量ch中的字符是否为数字字符,最简单的正确表达式是—D—o

A)ch>=0&&ch<=9B)'O'<=ch<=,9'C)ch>='O'||ch<='9'D)

ch>='O'&&ch<=,9'

11、若执行以下程序时从键盘上输入9,则输出结果是—D—

A)11B)10C)9D)8

main()

{intn;scanf("%d”,&n);

if(n++<10)printf("%d\n",n);先N<10,然后n++

elseprintf("%d\n",n—);

)

12、若w=l,x=2,y=3,z=4;则条件表达式w>x?w:y<z?y:z的结果是__B_

A)4B)3C)

2D)1

13、以下程序的输出结果是_B—

main()

{intx=023;

printf-x);

A)18B)22C)23D)19

14、下列4个函数中,能实现交换变量值的功能。

A)voidfun_a(intx,inty)B)voidfun_b(int*x,int

*y)

int*p;int

*P;

*p=x;x=y;y=*p;*x=*y;*y=*x;

}

C)voidfun_c(int*x,int*y)D)voidfun_d(int

x,inty)

{*x=*x+*y;int

P;

*y=*x-*y;p=x;x=y;y=p;

*x=*x-*y;}

15、以下所列的各函数首部中,正确的是—C_

A)voidplay(var:integer,varb:integer)

B)voidplay(inta,b)

C)voidplay(inta,intb)

D)Subplay(aasinteger,basinteger)

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

1、选择结构语句有if语句—、.switch语句两种语句。

2、二维数组有两处—下标—,分别用一对—方括句—号括起。

3、数组指针是指—数组在内存的首地址_____o

4、在访问一个结构元素前,你必须定义一结构变量______o

5、链表是以结构类型表示链中元素,以—指针—表示链的一种线性数据结构。

三、程序填空题(每空4分,共20分)

1、判断n是否是素数,若是,则返加1,否则返回0

intprim(intn)

{intm;for(m=2;m<=n/2;m++)

if(1)(n%m==0)return0;

(2)elsereturn1;

)

2、下述程序段是要实现在数组中查找最大元素和最小元素的下标,

#include<stdio.h>

voidfind(int*a,intn,int*max,int*min)

{inti;*max=*min=0;

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

if(a[i]>a[*max])

(3)*max]=i;;

else

if(a[i]<a[*min])

(4)*min=ai;

return;

)

voidmain()

{inta[]={5,8,7,6,2,7,3);

intmax,min;

find((5));

printf(〃\nmax=%d,min=%dz,,max,min);

四、看程序写结果(每题3分,共15分)

1、当a=l,b=3,c=5,d=4时,执行完下面一段程序后x的值是

if(a<b)

if(c<d)x=l;

else

if(a<c)

if(b<d)x=2;

elsex=3;

elsex=6;

elsex=7;

printf("x=%d”,x);

2、main()

{inti=l,s=3;

Do{s+=i++;

If[s%7=0)continue;

Else++i;

}while(s<15);

Printf(€ti=%d\n,,,i);

}

3、#include<stdio.h>

intxl=30,x2=40;

main()

{intx3=10,x4=20;

sub(x3,x4);

sub(x2,xl);

printf(€t%d,%d,%d,%d\n,\x3,x4,x1,x2);

)

sub(intx,inty)

{xl=x;x=y;y=xl;}

五、编程题:(共2小题,共25分)

1、编程打印如下的杨辉三角形(要求打印出10行):(15分)

1

121

1331

14641

15101051

1615201561

2、猴子吃桃问题,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一

半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘多少桃子。(10分)

参考答案

一、选择题

1、D2、D3、A4、B5、D6、D7、C8、A

9、B10、D11、B12、B13、A14、A15、C

二、填空题

1、if语句、switc语句2、卜标、方括句3、数组在内存的首地址4、结构变量5、指

三、程序填空题

1、(1)n%m==O;(2)return

2^(3)*max=(4)*min=I(5)a,7,&max,&niin

四、看程序写结果

1、x=22、i=83、10,20,40,40

五、编程题1、#defineN11

Main()

{inti,j,a[N[N];

For(i=l;i<N;i++)

{a[i][i]=l;

}

For(i=3;i<N;i++)

For(j=2;j<=i-l;j++)

a[i][j]=a[i-l][j-l]+a[i-l][j];

for(i=l;i<=N;i++)

{for(j=l;j<=i;j++)

Printf(44%6dw,a[i][j]);Printf(u\nw);

}

Printf,\n");

}

2main()

{intday,xl,x2;

day=9;

x2=l;

while(day>0)

{xl=(x2+l)*2;

x2=x1;

day--;

Printf(64total=%d\n,\xl);

广东工业大学考试试卷(A)

课程名称:c语言程序设计

考试时间:2007年1月19日(第20周星期五)

题号二三四/I,八七八九I-总分

评卷得分

评卷签名

复核得分

复核签名

一、判断题(正确打“V”,错误打“X”)(每题1分,共10分)

1.C程序是以函数为单位进行编译的。()

2.C语言中的函数可以进行嵌套定义。()

3.在不同的函数中可以使用相同名字的变量。()

4.在一个函数内定义的变量只在本函数范围内有效。()

5.每条链表都有一个头指针,用于指向链表中的第一个结点。()

6.for循环只能用于循环次数已经确定的情况。()

7.continue语句的作用是结束整个循环的执行。()

8.只能在循环体内和switch语句体内使用break语句。()

9.对结构体变量的成员可以像普通变量一样进行各种运算。()

10.可以将一个结构体变量作为一个整体进行输入和输出。()

二、单选题(每题2分,共50分)

1.结构化程序设计不应该使用

广东工业大学考试试卷(A)

C)

课程名称:C语言程序设计

考试时间:2007年1月19日(第20周星期五)

题号—•二三四五七八九十总分

评卷得分

评卷签名

复核得分

复核签名

一、判断题(正确打“J”,错误打“X”)(每题1分,共10分)

1.C程序是以函数为单位进行编译的。()

口2.C语言中的函数可以进行嵌套定义。()

3.在不同的函数中可以使用相同名字的变量。()

4.在一个函数内定义的变量只在本函数范围内有效。()

5.每条链表都有一个头指针,用于指向链表中的第一个结点。()

6.for循环只能用于循环次数已经确定的情况。()

7.continue语句的作用是结束整个循环的执行。()

8.只能在循环体内和switch语句体内使用break语句。()

9.对结构体变量的成员可以像普通变量一样进行各种运算。()

成10.可以将一个结构体变量作为一个整体进行输入和输出。()

部二、单选题(每题2分,共50分)

1.结构化程序设计不应该使用

A)自顶向下,逐步细化的方法

B)灵活、简洁的goto结构

C)模块化设计

D)三种基本结构:顺序结构、选择结构、循环结构的

编码方法

2.一个C程序的执行是从

A)本程序文件的第一个函数开始,到本程序文件的最

后一个函数结束

B)本程序的main函数开始,到本程序文件的最后一

个函数结束

C)本程序的main函数开始,在main函数中结束

D)本程序文件的第一个函数开始,到本程序main函

数结束

3.C语言的基本数据类型包括

A)整型、实型、逻辑型B)整型、实型、字符型、

逻辑型

C)整型、字符型、逻辑型D)整型、实型、字符型

4.在C语言中,变量所分配的内存空间大小

A)均为两个字节B)由用户自己定义

C)由变量的类型决定D)是随意的

5.以下不能定义为用户标识符是

A)3_aB)_0C)_intD)max

6.以下选项中可作为C语言合法常量的是

A)-le3.0B)-081C)-4.0eD)-30.

7.有程序段:inta,b;scanf("%d,%d”,&a,&b);请为之选

择运行时正确的输入方法

A)12B)1,2C)1/2

D)l;2/

8.若x、i、j和k都是int型变量,则计算表达式x=(i=l,

j=2,k=3)

后,x的值为

A)1B)2C)3D)6

9.C语言规定,简单变量做实参时,它和对应形参之间的

数据传递方式为

A)由实参传给形参,再由形参传回给实参

B)地址传递

C)单向值传递

D)由用户指定传递方式

10.执行语句for(i=l;i++<3;);后变量i的值是

A)2B)3C)4D)不定

11.若inta[][3]={1,2,3,4,5,6,7,8};则a数组第一

维的大小是

A)2B)3C)4D)无确

定值

12.若有定义:inta[2][3],则对a数组的第i行j列元素

的正确引用为

A)*(a[i]+j)B)(a+i)C)*(a+j)D)a[i]+j

13.用数组名作为函数调用时的实参,实际上传送给形参

的是______

A)数组首地址B)数组的第一个元素值

C)数组中全部元素的值D)数组元素的个数

14.若有以下说明和语句,则输出结果是哪一项?

(strlen(s)为求字符串s的长度的函数)

chars[12]="china";

printf("%d",strlen(s));

A)11B)12C)5D)6

15.设x=10,执行表达式x/=x+x后,x的值为

A)10B)0C)11D)0.5

16、假设指针p已经指向某个整型变量x,则*p相当于:—

A)&xB)&pC)xD)*x

17.有定义:floata[10],*pl,*p2;则下列运算中是

错误的.

A)p2=pl=aB)p2=a+1C)pl=&a[9]

D)pl=a[0]+l

18.若intn=3,贝执行语句n=(n%=2)+(4>n>2);后,n的值

是_______

A)1B)2C)3D)0

19.有程序段

inta=0;

switch(a+1)

{case1:a++;

case2:++a;break;

default:a=a+l;

}

运行该段程序后a的值是

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

20.若有程序段:

inta[2][3]={{0,1,2},{3}4,5}};int*p=

&a[0][0];

则下列哪个表达式的值是2

A)aB)*(a+2)C)*(p+2)

D)(*(a+1))[2]

21.以下对二维数组a的正确申明是.

A)inta[3][];B)floata(3,4);

C)doublea[l][4]D)floata(3)(4);

22.已有定义:chara[]="abc",b[]={'a','b','c');以下叙述中

正确的是

A)数组a和b的长度相同B)a数组长度小于b

数组长度

C)a数组长度大于b数组长度D)上述说法都不对

23.语句while(!e);等价于

A)while(e==O)B)while(e!=O)

C)while(e==1)D)while(e!=1)

24.以下语句中,不正确的是

A)chars[lO]="china";B)chars[]="china";

C)chars[10];s="china";D)char*s="china";

25.以下scanf函数调用语句中对结构体变量成员的不正

确引用是

structemployee

{charname[20];

intage;

intsex;

}emp[5],*p;

p=emp;

A)scanf("%s”,emp[0].name);

B)scanf("%d”,&emp[0].age);

C)scanf("%d”,p->age);

D)scanf("%d“,&(p->sex));

三、阅读程序,写出运行结果(20分)

1、写出以下程序的运行结果(每空2分,共4分)

#include<stdio.h>

voidmain()

{intx=3;

do

{printf("%d\n",x-=2);

}while(!(—x));

)

运行结果是:

2.写出以下程序的运行结果(每空2分,共4分)

#include<stdio.h>

voidmain()

(intf(int);

inta=l,i;

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

printf("%d\n",f(a));

}

intf(inta)

{intb=0;

staticintc=0;

b=b+l;

c=c+1;

return(a+b+c);

}

运行结果:_________

3、写出以下程序的运行结果(2分)

#include<stdio.h>

voidfun(intx,inty,intz)

{z=x*x+y*y;

)

voidmain()

{inta=31;

fun(5,2,a);

printf("a=%d",a);

)

运行结果是:

4:若执行以下程序时输入1,1〈回车》,写出运行结果(3

分)

#include<stdio.h>

voidmain()

{inta[2][3]={l,2,3,4,5,6);

int(*p)[3],i,j;

P=a;

scanf("%d,%d”,&i,&j);

printf(“a[%d][%d]=%d\n”,i,j,*(*(p+i)+j));

}

运行结果是:

5.写出下面程序的运行结果(每空2分,共4分)

#include<stdio.h>

voidswap(int*ptl,int*pt2)

{intp;

p=*ptl;*ptl=*pt2;*pt2=p;

)

voidmain()

{inta=3,b=5,*pl,*p2;

pl=&a;p2=&b;

swap(pl,p2);

printf("a=%d,b=%d\n^^,a,b);

printf("*pl=%d,*p2=%d\n”,*pl,*p2);

)

运行结果是:______________

6.若运行以下程序时,从键盘输入321〈回车〉,写出运行

结果(3分)

#include<stdio.h>

voidmain()

{intc;

while((c=getchar())!=,\n,)

switch(c-,2,)

{case0:

case1:putchar(c-1);

case2:putchar(c-1);break;

default:putchar(c-l);

)

运行结果:____________

四.程序填空(每空2分,共20分)

1.下面的程序是求数组a中的最大值

#include<stdio.h>

voidmain()

{inta[5]={6,4,9,2,7},i,max;

max=(1);

for(i=l;i<5;i++)

if(max<a[i])(2);

printf(''max=%d\n”,max);

)

2.下面程序是对10个数排序(由小到大)

#include<stdio.h>

voidmain()

{inta[ll];

int

printf(,,input10numbers:\n");

for(i=l;i<ll;i++)

scanf("%d",&a[i]);

printf("\n");

fbr(j=l;j<10;j++)

for(i=1;i<=10-j;i++)

if(⑶)

{t=a[i];

⑷:

a[i+1]=t;

}

printR"thesortednumbers:\n");

for(i=l;i<ll;i++)

printf("%d",a[i]);

prin氓"\n");

)

3.有3个学生,各学3门课,计算总平均分数。

#include<stdio.h>

voidmain()

{voidaverage(float*p,intn);

floatscore[3][3]={{65,67,70},{80,87,90},{90,

99,100}};

⑸;/*求9个分数的平均分*/

}

voidaverage(float*p,intn)

{floatsum=0,aver;

float*pend=(6);

for(;p<p_end;p++)

⑺;

aver=sum/n;

printf("average=%5.2f\n”,aver);}

4.下面程序是统计文件中的字符个数

#include<stdio.h>

#include<stdlib.h>

voidmain()

f⑻;

lontintcount=0;

if((fp=fbpen("flel.txt”,(9)))==NULL)

{printff'cannotopenfile\n^^);

exit(O)

);

while(!feof(fp))

f⑩;

count++;

)

printff'Thereare%Idcharactersinfile1.txt55,count);

fclose(fp);}

广东工业大学考试试卷(A)

课程名称:C语言程序设计试卷满分100分

考试时间:2008年12月30日(第18周星期二)

题号一二三四五七A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论