C语言期末考试真题2.docx

上传人:b****3 文档编号:12902241 上传时间:2023-04-22 格式:DOCX 页数:16 大小:24.76KB
下载 相关 举报
C语言期末考试真题2.docx_第1页
第1页 / 共16页
C语言期末考试真题2.docx_第2页
第2页 / 共16页
C语言期末考试真题2.docx_第3页
第3页 / 共16页
C语言期末考试真题2.docx_第4页
第4页 / 共16页
C语言期末考试真题2.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言期末考试真题2.docx

《C语言期末考试真题2.docx》由会员分享,可在线阅读,更多相关《C语言期末考试真题2.docx(16页珍藏版)》请在冰豆网上搜索。

C语言期末考试真题2.docx

C语言期末考试真题2

2008-2009学年度第二学期

华中科技大学《C语言程序设计》试卷(B)

(考试时间:

150分钟考试方式:

闭卷)

所有答案必须写在答题纸上

一、选择题(每题1.5分,共39分)

1.以下叙述中正确的是()。

A.C语言比其他语言高级。

B.C语言可以不用编译就能被计算机识别执行。

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式。

D.C语言出现的最晚,具有其他语言的一切优点.。

2.若有定义:

inta=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为(   ).

A.1.4   B.1   C.2.0    D.2

3.若变量a是int类型,并执行了语句:

a='A'+1.6;,则正确的叙述是(  ).

A.a的值是字符B      B.a的值是字符C

C.不允许字符型和浮点型相加   D.a的值是字符‘A’的ASCII值加上1

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

#include

voidmain()

{inta=5,b=4,c=6, d;

printf("%d\n",d=a>b?

(a>c?

a:

c):

(b));

}

A.5     B.4    C.6    D.不确定

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

#include

voidmain()

{inta=4,b=5,c=0,d;

d=!

a&&!

b||!

c;

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

}

A.1  B.0   C.非0的数  D.-1

6.以下选项中合法的实型常数是(  ).

A.5E2.0 B.E-3    C..2E0    D.1.3E

7.若有以下程序:

#include

voidmain()

{intk=2,i=2,m;

m=(k+=i*=k);

printf("%d,%d\n",m,i);

}

执行后的输出结果是(   ).

A.8,6B.8,3   C.6,4    D.7,4

8.以下选项中非法的表达式是(   ).

A.0<=x<100         B.i=j==0

C.(char)(65+3)       D.x+1=x+1

9.若整型变量a、b、c、d中的值依次为:

1、4、3、2。

则条件表达式a

a:

c

c:

d的值是(   ).

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

10.请读程序:

#include

main()

{inta;floatb,c;

scanf("%2d%3f%4f",&a,&b,&c);

printf("\na=%d,b=%f,c=%f\n",a,b,c);

}

若运行时从键盘上输入9876543210表示回车),则上面程序的输出结果是_____。

A.a=98,b=765,c=4321       B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000D.a=98,b=765.0,c=4321.0

11.有以下程序

main()

{inta=5,b=4,c=3,d=2;

if(a>b>c)

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

elseif((c-1>=d)==1)

printf("%d\n",d+1);

else

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

}

执行后输出结果是_______。

A.2   B.3   C.4   D.编译时有错,无结果

12.有以下程序

main()

{intk=4,n=4;

for(;n

{n++;

if(n%3!

=0)continue;

k--;}

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

}

程序运行后的输出结果是______。

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

13.有以下程序:

main()

{inta=5,b=0,c=0;

if(a=b+c)  printf("****\n");

else  printf("$$$$\n");

}

以上程序________。

A.有语法错不能通过编译。

    B."可以通过编译但不能通过连接。

C"输出****           D.输出$$$$

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

main()

{intm=5;

if(m++>5)printf("%d\n",m++);

elseprintf("%d\n",m--);

}

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

15.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:

else子句总是与________匹对。

A.缩排位置相同的if        B.其之前最近的if

C.其之后最近的if        D.同一行上的if

16.若i,j已定义为int型,则以下程序段中循环体的总的执行次数是。

For(i=0;i<5;i++)

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

{……}

A.20   B.24   C.25   D.30

17.C语言程序的三种基本结构是(   )。

A.顺序结构,选择结构,循环结构是

B.递归结构,循环结构,转移结构

C.嵌套结构,递归结构,顺序结构

D."循环结构,转移结构,顺序结构

18.以下关于do-while循环的不正确描述是(   )。

A.do-while的循环体至少执行一次

B.do-while循环由do开始,用while结束,在while(表达式)后面必须有分号

C.在do-while循环体中,一定要有能使while后面表达式的值变为零(""假"")的操作D.do-while的循环体有可能执行0次

19.以下叙述正确的是(   )。

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判断表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

20.有定义语句:

intb;  charc[10];,则正确的输入语句是_____.

A.scanf("%d%s",&b,&c);   B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);   D.scanf("%d%s",b,&c);

21.已有定义:

chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是_____.

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

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

22.有以下程序

main()

{

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

inti,j,k=2;

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

{

printf(""%d"",m[k][i]);

}

}执行后输出结果是______。

A.456  B.258 C.369 D.789

23.当执行下面的程序时,如果输入ABC,则输出结果是(   ).

#include"stdio.h"

#include"string.h"

main()

{charss[10]="1,2,3,4,5";

gets(ss);

strcat(ss,"6789");

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

A.ABC6789  B.ABC67 C.12345ABC6   D.ABC456789

24.下面程序的运行结果是()

sub(intx,inty,int*z)

{*z=y-x;}

main()

{inta,b,c;

sub(10,5,&a);

sub(7,a.&b);

sub(a,b,&c);

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

}

A.5,2,3B.-5,-12,-7

C.-5,-12-17 D.5,-2,-7

25.下面程序的运行结果是()

main()

{intk=4,m=1,p;

p=func(k,m);printf(“%d,”,p);

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

}

func(inta,intb)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

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

26.有以下程序执行后输出结果是(   ).

main()

{inta[][3]={{1,2,3},{4,5,0}},{*pa}[3],i;

pa=a;

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

if(i<2)pa[1][i]=pa[1][i]-1;

elsepa[1][i]=1;

printf("%d\n",a[0][1]+a[1][1]+a[1][2]);

}

A.7B.6C.8D.无确定值

 

二、填空题(20分每空2分)

1.以下程序的输出的结果__________.

intx=3;

main()

{inti;

for(i=1;i

}

incre()

{staticintx=1;

x*=x+1;

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

}

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

#include"stdio.h"

voidmain()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)puts(ps);

}

3.以下程序的输出的结果__________.

#include"stdio.h"

voidmain()

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

int*pa[3];int*p=a[0],i;

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

pa[i]=a[i];

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

printf("%d--%d\n",p[i],*(pa[i]+1));

}

4.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:

yesyes!

否则函数返回字符串:

no!

并在主函数中输出.所谓回文即正向与反向的拼写都一样,例如:

adgda.请填空.

#include  "string.h"

 【1】 huiwen(char  *str)

{

  char*p1,*p2;    int  i,t=0;

  p1=str;  p2=str+strlen(str)-1;

  for(i=0;i<=strlen(str)/2;i++)

      if(*p1++!

=*p2--)

      {  t=1;

【2】}

  if( 【3】 )  return("yes!

");

  else    return("no!

");

}

main()

{

  char  str[50];

  printf("Input:

");  scanf("%s",str);

  printf("%s\n",   【4】   );

}

5.以下程序在数组a中查找与x值相同的元素的所在位置,请填空。

#include"stdio.h"

voidmain()

{inta[10],x,i;

printf("Enter10integers,\n");

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

scanf("%d",【1】);

printf("Enterx:

");

scanf("%d",&x);

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

if(x==a[i])

【2】;

if(【3】)printf("%5d'spositionis%4d\n",x,i);

elseprintf("%dNotbeenfound!

\n",x);

}

 

三、改错题(共10分)

(以下程序中******和*******位置处有错误,请改正,但不能增减程序行)

1.下面程序的功能是计算:

s=1!

+1/2!

+1/3!

+…+1/10!

#include

voidmain()

{

   doubles;

   intn;

   s=0;

*************************

   for(n=1;n<10;n++)

       s+=fact(n);

*************************

   printf("s=%lf\n",s);

}

doublefact(intn)

{

   doublep;

   intk;

   p=1;

***************************

   for(k=1;k<=n;k++)

       p*=1/k;

**************************

   returnp;

}

2.#defineNULL0

voidmain()

{********************

int*p=NULL;

*p=25;

*********************

Printf(“%d\n”,*p);}

3.程序的功能是将数组x的元素倒序输出。

例如,输入12345,则输出为54321.

#include

#defineM20

main()

{

inti,x[M],n,m,*p,*k,*j;

printf("\nEntern:

");

scanf("%d",&n);

printf("\nEnterarrayx[i](i=0~n):

\n");

for(i=0;i

scanf("%d",x+i);

printf("\n");

m=n/2;

******************

k=x;

j=x+n;

p=x+m;

******************

for(;k<=p;k++,j--)

{********************

intt=*k;

k=j;

*j=t;

********************

}

printf("\nThearrayinverted:

\n");

for(i=0;i

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

getchar();

}

 

四、编程题(共30分)

1.试编程序,找出1至99之间的全部同构数。

同构数是这样一组数,它出现在平方数的右边。

例如:

5是25右边的数,25是625右边的数,5和25都是同构数。

(9分)

2.编写程序:

实现将十进制数转换成相应十六进制数。

(10分)

3.有4名学生,每个学生考4门课程,要求编写input()函数输入学生的成绩,search()函数输入学生序号以后能输出该学生的全部成绩。

(12分)

#include"stdio.h"

#include"string.h"

voidmain()

{intscore[4][4];

charname[4][8];

charstr[8];

int*search(intscore[4][4],charname[4][8],charstr[8]);

voidinput(intscore[4][4],charname[4][8]);

int*p;

inti,j;

input(score,name);

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

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

printf("%d\t",score[i][j]);

printf("Enterthenameofstudent:

");

scanf("%s",str);

printf("Thescoreofthestudent%sare:

\n",str);

p=search(score,name,str);

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

printf("%d\t",*(p+i));

}

voidinput(intscore[4][4],charname[4][8])

{

}

int*search(intscore[4][4],charname[4][8],charstr[8])

{

}

《C语言程序设计》答题纸(2009年9月12日)

时间:

150分钟满分100分闭卷B

班级________学号________________姓名__________

题目

总分

得分

一、选择题(用铅笔在正确的选项上涂黑,共39分)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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

【1】_____________________

【2】_____________________

【3】_____________________

【4】_____________________

【5】_____________________

【6】_____________________

【7】_____________________

【8】_____________________

【9】_____________________

【10】_____________________

三、改错题(每处2分,共10分)

【1】_____________________

【2】_____________________

【3】_____________________

【4】_____________________

【5】_____________________

四、编程题(31分)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1