文档库 最新最全的文档下载
当前位置:文档库 › C语言期末考试试题及答案

C语言期末考试试题及答案

个人收集整理资料,仅供交流学习,勿作商业用途

2008-2009学年第一学期期末考试试卷

考试说明:本课程为闭卷考试,可携带书写与修正文具,满分为:100 分。

考试结束后请将后页答题卡与试卷分开上交。

一、单选题<每题2分,共30分)

1.以下叙述正确的是 ______ 。

A)C程序的每行只能写一条语句 B>语言本身没有输入输出语句

C)在C程序中,注释说明只能位于一条语句的后面

D)在多函数的程序中,main函数必须放在其它子函数的定义之前

2.以下不正确的常量表示形式是 ______ 。

A> 0.45 B>0XF5 C>‘\85’D>

32.67E-5

3. 以下不正确的变量名是 ______ 。

A)R&B B> _max C> INT D>

SUM3

4. 以下正确的一组语句是 ________。

A> int x=y=5; B> int n;

scanf("%d",&n>;int a[n];

C> char a,*p; p=&a; D> char s[10];

s="hello";

5. 若以下变量均已正确定义和赋值,则正确的语句是

________。

A> a=b==5; B> y=x%2.0; C> x+y=10; D>

n=8=2*4;

6.下面各组中与给出的程序段功能不等价的是 ________。

if(a>0> b=1;

else if(a==0> b=0;

else b=-1;

A>if(a>0> b=1; B>if(a>0> b=1; C>if(a>0>

b=1; D>if(a>=0>

if(a==0> b=0; else if(a==0>

b=0; if(a>0> b=1;

if(a<0> b=-1; if(a<0> b=-1; else b=-1; if(a==0> b=0;

else b=0;

if(a<0> b=-1;

7. 运行下面程序段,若输入abc#,则程序输出是:

________。

char c;int v1=0,v2=0;

while((c=getchar(>>!='#'>

{ switch(c>

{ case 'a':v1++;

default :v1++;v2++;

case 'c':v2++;

}

}

printf("v1=%d,v2=%d\n",v1,v2>;

A>2,2 B>3,5 C> 3,4 D>2,5

8.对for(表达式1; ;表达式3>{…}可以理解为:________。

A>for(表达式1;1;表达式3>{…} B> for(表达式1;表达式1;表达式3>{…}

C>for(表达式1;0;表达式3>{…} D> for(表达式1;表达式3;表达式3>{…}

9.若有定义char

a[]=”china”,b[]={’c’,’h’,’i’,’n’,’a’};则下面正确的叙述为:

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

C>数组a的长度大于数组b的长度D>数组a和数组b中存储的内容完全一样

10. 已知a,b,m,n,c,d变量的定义如下,则执行完下列程序段后m,n的值为:_____。

int a=3,b=4,m=0,n=0,c=3,d=4;

(m=a||(n=c;

A> m=1 n=1 B> m=1 n=0 C> m=0 n=0 D> m=0 n=1

11.下面程序的输出结果是:________。

void main(>

{ char s[20]=”hello\0\t\\”;

printf(“%d”,strlen(s>>;

}

A> 8 B> 5 C> 11 D> 10;

12. 若有定义int a[3][3]={1,2,3,4,5,6,7,8,9},(*p>[3]=a;则

下面能正确引用数组元素的表达式为:________。

A> a[3][3] B> *(p+2>+2 C> p[2][1] D>

*(a+1+1>

13. 下面正确的函数定义是:________。

A> double fun(int x, int y> B> int fun(int x, y>

{ z=x+y; return z; } { int z; z=x+y; return z;}

C> double fun(x, y> D> fun(int x, int y>

return z;}

z=x+y; return z;}

14. 若有定义 int (*p>( >; 则下面叙述正确的是:________。

A> p是指向一维数组的指针变量

B> p是指向整型数据的指针变量

C> p是一个函数名,该函数的返回值是指向整型数据的指针

D> p是指向函数的指针变量,该函数的返回值是整型数据

15. 设有如下定义语句,则下面的叙述不正确的是 ______ 。

struct A

{ int a;

float x;

} s;

A)a 和 x 都是结构体成员名 B)s是用户定义的结构体类型名

C)struct A是用户定义的结构体类型 D)struct是结构体类型的关键字

共 8 页第 2 页

中国海洋大学 2008-2009学年第一学期期末考试试卷

二、填空题<每空2分,共20分)

1. 若要定义一个变量x来存储数据,存储的数据都是正整数,

最大值不超过65535,则变量x的定义为_【1】。

2. 设 float x=

3.5 , y=

4.8;int a =8; 则表达式 x + a % 3

* (int>(x+y> % 2 / 4 的值是___【2】。

3. 当执行下述程序段,从键盘上输入hello jack!后输出为 __【3】__。

注:表示回车符, 表示空格。

char a[20]; scanf("%s",a>; puts(a>;

4. 若i为整型变量,则循环语句for(i=0; i==0 ;>

printf("%d",--i>;的执行结果是____【4】____。

5. 下面程序对从键盘输入的两个串进行比较,输出两个串中第

一个不相同字符的ASCII值之差。请将程序补充完整。

void main(>

{ char a[20],b[20],c;

int i=0,s;

gets(a>;gets(b>;

while((a[i]==b[i]>&& (a[i]!=__【5】__>> i++;

printf("%d\n",___【6】___>; }

6.下面程序的功能是调用find函数查找某个串中是否包含指定的字符。若找到显示找到的第一个匹配字符的下标。

如输入字符串为:hello,查找字符为 l,则输出:

position=2 请补充程序。

#include

char *find(char *s, char c>

{ while(*s!='\0'>

{if(*s==c> ___【7】___;

s++;

}

return NULL;}

void main(>

{ char a[80],ch,*p;

p=find(a,ch>;

if(p==NULL> printf("no find.\n">; else printf("position=%d\n",___【8】___>; } 7.下面程序的功能是统计从键盘输入的一行英文中的单词个数,单词之间用空格分隔。请补充程序。 void main(> {int i,num=0,word=0; char s[80]; gets(s>; for(i=0;s[i]!='\0';i++> if(s[i]==' '> ___【9】___ ;

else if(word==0>

{ ___【10】__;num++;}

printf("%d",num>;}

三、读程序写结果<每题2分,共20分)

1.若系统为int 型分配2个字节

void main(>

{ unsigned int x=0xFFFF;

printf("%d",x>; }

2. void main(>

{int i=1,j; char ch='F';

j=!ch&&i++;

printf("i=%d,j=%d\n",i,j>;}

3. void main(>

{ int x,y;

for(x=1,y=2; y<=20;y++>

{ if(x>=10> break;

if(x%2==1> { x+=5; continue;}

x-=3; }

printf("%d,%d",y,x>;}

4.void main(>

{int a[3],i,j,k;

for(i=0;i<3;i++> a[i]=0;

k=2;

for(i=0;i

for(j=0;j a[j]=a[i]+1;

printf("%d\n",a[1]>;}

5. void swap(int *x,int *y>

void main(>

{int a=3,b=4;

swap(&a,&b>;

printf("a=%d,b=%d",a,b>;}

第 4 页

6. int a=1;

void fun2(>

{ static int c=6;

a=c++;

printf("a=%d,c=%d\n",a,c>;

}

void main(>

{fun2(>; fun2(>;}

7. #define N 3

#define Y(n> ((N+1>*n>

void main(>

{ int s;

s=2*(N+Y(5+1>>;

printf("s=%d",s>;}

8. #include

void f(char **,int>;

void main(>

{char a[2][10]={"China","America"},*p[2];

p[0]=&a[0][0];p[1]=&a[1][0];

f(p,2>;

}

void f(char **p,int n>

{ int i;

for(i=0;i

puts(*(p+i>>;}

9. int fun1(int x,int y> {return x+y;}

void main(>

{int a=5,b=8,s;

int (*p>(int,int>;

p=fun1;

s=(*p>(a,b>;

printf("s=%d",s>;

10. struct S{ int x; char n[10];};

void main(>

{ struct S a={1, "fox"} ;

printf("%d,%s",a.x,a.n>;}

计算

1._____-1_______2 ._____i=1,j=0____

3.___7,10_________

4.__3____________

a=6,c=7

a=7,c=8

5._____a=3,b=4_________

6.______________________

7._____s=48____________

China

America

8._____________________

9.______s=13___________10.__________1,fox______

四、编程题<分值依次为6、7、8、9分,共30分)

申明:

所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。

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