C语言考试题正题.docx

上传人:b****1 文档编号:2130446 上传时间:2023-05-02 格式:DOCX 页数:22 大小:42.10KB
下载 相关 举报
C语言考试题正题.docx_第1页
第1页 / 共22页
C语言考试题正题.docx_第2页
第2页 / 共22页
C语言考试题正题.docx_第3页
第3页 / 共22页
C语言考试题正题.docx_第4页
第4页 / 共22页
C语言考试题正题.docx_第5页
第5页 / 共22页
C语言考试题正题.docx_第6页
第6页 / 共22页
C语言考试题正题.docx_第7页
第7页 / 共22页
C语言考试题正题.docx_第8页
第8页 / 共22页
C语言考试题正题.docx_第9页
第9页 / 共22页
C语言考试题正题.docx_第10页
第10页 / 共22页
C语言考试题正题.docx_第11页
第11页 / 共22页
C语言考试题正题.docx_第12页
第12页 / 共22页
C语言考试题正题.docx_第13页
第13页 / 共22页
C语言考试题正题.docx_第14页
第14页 / 共22页
C语言考试题正题.docx_第15页
第15页 / 共22页
C语言考试题正题.docx_第16页
第16页 / 共22页
C语言考试题正题.docx_第17页
第17页 / 共22页
C语言考试题正题.docx_第18页
第18页 / 共22页
C语言考试题正题.docx_第19页
第19页 / 共22页
C语言考试题正题.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言考试题正题.docx

《C语言考试题正题.docx》由会员分享,可在线阅读,更多相关《C语言考试题正题.docx(22页珍藏版)》请在冰点文库上搜索。

C语言考试题正题.docx

C语言考试题正题

 

一、单项选择题(每题1分,共20分)

请将正确选项写在下表相应位置上,答在其他位置不得分。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

1.以下哪个符号在传统流程图中表示“判断框”()。

A.B.C.D.

2.在C语言中用()代表“真”。

A.0B.非0数C.trueD.TRUE

3.整形数x和y的初始值为intx=3,y=2;则表达式x

x++:

y++;执行后x和y的值为()。

A.x=3,y=2B.x=4,y=3C.x=4,y=2D.x=3,y=3

4.下面哪个数据类型不属于基本类型()。

A.intB.floatC.enumD.signedint

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

#definePOWER(X)X*X

intmain()

{inta=2,b=2;printf(“%d”,POWER(a+b));return0;}

A.8B.16C.12D.4

6.下面哪个变量名的命名是非法的()。

A.3YearNoB._iTotal

C.iIndex_1_2_3D.uMonth

7.下面程序的输出是()。

#include

intmain()

{

intk=1,i=3,n;

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

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

return0;

}

A.n=4,i=3B.i=3,n=4C.n=16,i=3D.n=4,i=4

8.已知字符A的ACSII码值为65,以下语句的输出结果是()。

charch=‘B’;

printf(“%c,%o\n”,ch,ch);

A.B,66B.B,BC.B,102D.A,B

9.表达式(x>y>0)等价于()。

A.(x>y)&&(y>0)B.x>0&&y>0

C.x>0||y>0D.x>y

10.有“C语言之父”之称的下面哪一位()。

A.DennisM.Ritchie;B.KenThompson;

C.AlanJ.Perlis;D.AlanTurning;

11.声明数组inta[4];下面哪条语句操作是错误的()。

A.a[2]=3;B.scanf(“%d”,&a);

C.scanf(“%d”,&a[2]);D.printf(“%d”,a[0]);

12.若二维数组a有x行,y列,则在a[i][j]之前的元素个数为()。

A.j*x+iB.i*y+jC.i*x+y-1D.i*y+j-1

13.有如下程序:

intf(intx){

inty;

if(x==0||x==1)return(3);

y=x*x-f(x-1);

returny;}

intmain(){

intz;

z=f(3);

printf(“%d\n”,z);return0;}

程序的运行结果是

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

14.如下程序:

structA{inta;charb[10];doublec;};

structAf(structAt);

intmain(){

structAa={1001,"ZhangSan",98.0};

a=f(a);

printf("%d,%s,%6.1f\n",a.a,a.b,a.c);return0;}

structAf(structAt){

t.a=1002;

strcpy(t.b,"LiSi");

t.c=92.0;returnt;}

程序运行后的输出结果是:

A.1001,ZhangSan,98.0B.1002,ZhangSan,92.0

C.1001,LiSi,98.0D.1002,LiSi,92.0

15.定义一个3行4列的二维整型元素数组a正确的方式是()。

A.inta[4][3];B.inta[3,4];C.inta[3][4];D.int*a[3][4];

16.下面哪个运算符表示”位与”运算符

A.&&B.|C.&D.~

17.以"只读"方式打开位于D盘根目录的文件a.dat,下列语句中哪一个是正确的(  )。

A.fp=fopen("d:

\\a.dat","a");B.fp=fopen("d:

\a.dat","a");

C.fp=fopen("d:

\a.dat","r");D.fp=fopen("d:

\\a.dat","r");

18.已知:

intb[2]={1,2},y=0;int*p=b;,则执行语句y=*p++;之后,变量y的值为()。

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

19.下面哪个语句是函数的原型声明

A.f(a,b)B.intf(inta,5);

C.intf(inta,intb);D.intf(inta=5,intb=6);

20.下面程序将输出:

()。

voidfun(inta,int*b){

a++;

(*b)++;

return;}

intmain()

{intx,y;

x=2;

y=3;

fun(x,&y);

printf("%d,%d",x,y);

}

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

 

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

请将正确选项写在下表相应位置上,答在其他位置不得分。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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

#include 

intmain(){

int c=0,k;

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

switch(k)

{

default:

c+=k;

case2:

c++;

case4:

c+=2;    

}

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

return0 ;}

2.C语言程序的三种基本结构是2。

3.下面这段程序运行的结果是:

3。

voidswap(int*x,int*y)

{

*x=*x^*y;

*y=*y^*x;

*x=*x^*y;

}

intmain()

{

inta=3,b=4;

swap(&a,&b);

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

return0;

}

4.下面这段程序运行的结果是:

4。

voidsum(int*a)

{a[0]+=a[1];}

intmain()

{

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

inti;

for(i=3;i>=0;i--)sum(&aa[i]);

printf("%d\n",aa[0]);

return0;

}

5.有以下程序,执行后输出结果是5。

intmain()

{

unsignedchara,b;

a=4|1;

b=4||0;

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

return0;

}

6.有如下程序,其中的“defau1t”的“1”实际上是数字1不是字母L,这样的情况下当程序运行后键盘输入3后回车,程序输出结果是6。

#include

intmain()

{

intiToTest;

scanf("%d",&iToTest);

switch(iToTest)

{

case1:

printf("whatyouinputis1.\n");

break;

case2:

printf("whatyouinputis2.\n");

break;

defau1t:

iToTest++;

break;

}

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

return0;}

7.下列程序的运行结果是7。

#include

intmain()

{inti,j,x;

i=8;

j=9;

if(++i

x=1;

else

x=0;

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

return0;

}

8.下列程序的运行结果是8。

intmain()

{

inta=3;

intb=3;

if(2==a&&++b){

a=a+1;

}

if(3==a||++b){

a=a+1;

}

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

return0;}

9.已知inta=4,b=20;则(a+3)/3+a%b的值为:

9。

10.如下的流程图说明程序是在完成什么事情10。

 

 

11.输入两个正整数m和n,求其最大公约数和最小公倍数。

请将程序填完整。

intmain()

{intp,r,n,m,temp;

scanf(“%d,%d”,&n,&m);

if(n

11;

12;

13;

}

p=n*m;

while(m!

=0){

r=n%m;

n=m;

m=r;

}

printf(“最大公约数为:

%d\n”,n);

printf(“最小公倍数为:

%d\n”,p/n);

return0;

}

12.下面的程序将大写字母变为小写字母字,请将程序填完整。

#include

intmain()

{

charch='A';

ch=(14)?

(ch+32):

15;

printf("ch=%c\n",ch);

return0;

}

三、程序阅读题(每题3分,共18分)

请将下列各程序的功能或结果写在下表相应位置上,答在其他位置不得分。

1.

2.

3.

4.

5.

6.

1.intmax2(intx,inty){

intz ;

if(x>y)z=x ;

elsez=y ;

returnz ;}

intmax3(intx,inty,intz){

intmax ;

max=max2(x,y) ;

if(max

returnmax;}

intmain()

{intx,y,z,max;

scanf(“%d,%d,%d”,&x,&y,&z);

max=max3(x,y,z) ;

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

return0 ;}

2.#include

intmain()

{

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

intb[3][2],iRow,iCol;

for(iRow=0;iRow<=1;iRow++)

{

for(iCol=0;iCol<=2;iCol++)

{

b[iCol][iRow]=a[iRow][iCol];

}

}

return0;}

3.#include

intmain()

{

inta[10];

inti,j,t;

printf("input10numbers:

\n");

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

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

printf("\n");

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

for(i=0;i<9-j;i++)

{

if(a[i]>a[i+1]){

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

}

printf("thesortednumbers:

\n");

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

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

return0;}

4.#include

#include

intmain(void)

{

FILE*fp;

charch,filename[10];

printf("Pleaseinputthefilenameyouwanttocreat:

");

scanf("%s",filename);

if((fp=fopen(filename,"w"))==NULL)

{

printf("cannotopenfile\n");

exit(0);//终止程序

}

ch=getchar();

//接收输入的第一个字符

ch=getchar();

while(ch!

='#'){

fputc(ch,fp);

ch=getchar();

}

fclose(fp);

return0;}

5.#include

#include

intmain()

{floata,b,c,s,s1;

scanf(“%f%f%f”,&a,&b,&c);

s=(a+b+c)/2;

s1=s*(s-a)*(s-b)*(s-c);

s=sqrt(s1);

printf(“%f\n”,s);

return0;}

6.#include

#include

structperson

{

charname[20];

intcount;

};

structpersonCandidate[2]={{"Li",0},{"Zhang",0}};

intmain()

{

inti,j;

charCandidate_name[20];

printf("Pleaseinputthecandidatename\ntype'exit'stop!

\n");

do

{

scanf("%s",Candidate_name);

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

{

if(0==strcmp(Candidate_name,Candidate[j].name))

Candidate[j].count++;}

}while(0!

=

strcmp(Candidate_name,exit"));

if(Candidate[0].count>

Candidate[1].count)

printf("ThewinnerisLi\n");

else

printf("ThewinnerisZhang");

return0;

}

四、程序改错(每空2分,共6分)

请将正确选项写在下表相应位置上,答在其他位置不得分。

每题有1处错误并修改之。

1

2

3

1.#include

intmain()

{

floata[10]={0.0};

inti;

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

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

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

a[0]=a[0]+a[i];

printf("%f\n",a[0]);

return0;

}

2.#include

intmain()

{intx,y;

printf(“Pleaseinputtownumber:

”);

scanf(“%d,%d”,&x,&y);

if(x=y)

printf(“Youinputthesamenumber”);

else

printf(“Youinputtwodifferentnumber”);

return0;

}

3.//判断输入的10个数是否全是偶数

#include

intmain()

{

inta[10]={0};

inti;

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

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

}

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

if(a[i]%2!

=0)

continue;

if(i<10)

printf(“Youinputhaveoddnumber”);

else

printf(“Youinputhavenooddnumber”);

return0;}

 

五、编程题(共26分)

1.(10分)请用指针方式实现复制一个字符串的功能。

 

2.(16分)编程实现矩阵和的相乘,要求输出结果。

 

  

参考答案:

一、单项选择题(每题1分,共20分)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A

B

D

C

A

A

A

C

D

A

B

B

D

D

C

C

D

A

C

C

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

1.7

2.顺序、选择、循环

3.a=4,b=3

4.15

5.a=4,b=1

6.iToTest=3

7.0

8.a=4,b=3

9.6

10.计算5!

11. temp=n

12.n=m

13.m=temp

14ch>=‘A’&&ch<=‘Z’

15.ch

三、程序阅读题(每题3分,共18分)

1.求三个数的最大数

2.矩阵转置

3.输入10个数,用冒泡法进行排序

4.创建一个文件,向文件中输入字符,直到输入一个“#”为止

5.由键盘输入三个数a,b,c,计算以这三个数为边长的三角形面积

6.统计两位候选人的选票数,输出谁得的选票最多

四、程序改错(每空2分,共6分)

1

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

2

if(x=y)改为if(x==y)

3

continue;改为break;

五、编程题(共26分)

1.(10分)请用指针方式实现复制一个字符串的功能。

#include

intmain()

{

voidcopy_string(char*from,char*to);

charchar_Arrayfrom[]="Iamateacher.";

charchar_Arrayto[]="youareastudent.";

char*pointer_charfrom=char_Arrayfrom;

char*pointer_charto=char_Arrayto;

copy_string(pointer_charfrom,pointer_charto);

printf("\nstringfrom=%s\nstringto=%s\n",pointer_charfrom,pointer_charto);

return0;

}

voidcopy_string(char*from,char*to)

{

for(;*from!

='\0';from++,to++)

{

*to=*from;

}

*to='\0';}

//copy_string函数也可以用如下两种形式实现

voidcopy_string(char*from,char*to)

{

while((*to=*from)!

='\0')

{

to++;

from++;

}

}

voidcopy_string(char*from,char*to)

{

while(*to++=*from++);

}

2.(16分)编程实现矩阵和的相乘,要求输出结果。

#include

/*calculatetheresult*/

voidmatrix_multiply(intresult[3][3],intmatrix1[3][2],intmatrix2[2][3]){

introw,col,element;

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

{

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

{

result[row][col]=0;

for(element=0;element<2;element++)

{

result[row][col]+=

matrix1[row][element]*matrix2[element][col];

}

}

}

}

voidmatrix_print(intmatrix[3][3])

{

introw,col;

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

{

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

{

printf("%d",matrix[row][col]);

}

printf("\n");

}

}

intmain()

{

intmatrix_a[3][2]={

{1,2},

{3,4},

{5,6}

};

intmatrix_b[2][3]={

{7,8,9},

{10,11,12},

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

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2