C语言考题A卷.docx

上传人:b****5 文档编号:7494306 上传时间:2023-05-11 格式:DOCX 页数:14 大小:21.28KB
下载 相关 举报
C语言考题A卷.docx_第1页
第1页 / 共14页
C语言考题A卷.docx_第2页
第2页 / 共14页
C语言考题A卷.docx_第3页
第3页 / 共14页
C语言考题A卷.docx_第4页
第4页 / 共14页
C语言考题A卷.docx_第5页
第5页 / 共14页
C语言考题A卷.docx_第6页
第6页 / 共14页
C语言考题A卷.docx_第7页
第7页 / 共14页
C语言考题A卷.docx_第8页
第8页 / 共14页
C语言考题A卷.docx_第9页
第9页 / 共14页
C语言考题A卷.docx_第10页
第10页 / 共14页
C语言考题A卷.docx_第11页
第11页 / 共14页
C语言考题A卷.docx_第12页
第12页 / 共14页
C语言考题A卷.docx_第13页
第13页 / 共14页
C语言考题A卷.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言考题A卷.docx

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

C语言考题A卷.docx

C语言考题A卷

北京航空航天大学自动化学院试卷(共7页)

2004~2005学年第1学期班级:

学号:

姓名:

.

考试科目:

C语言程序设计(A卷)成绩:

说明:

1、本试卷满分为100分。

2、闭卷考试,试卷不得拆开,不允许自带草稿纸。

3、填空题与选择题答案直接写在试卷上,做在草稿纸上无效。

一.填空题:

(每空1分,共10分)

1、一个C程序是由若干函数构成的,其中必须有一个函数。

2、表达式1+2/3+4%5+(6>7)+(8,9)的值是。

3、执行printf(“%d,%d”,(i=j,++i),(j=5,j++));输出结果为。

4、判断变量c中是数字字符的逻辑表达式是。

5、设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式

的结果类型为。

6、若有说明intx=10,y=20;,请写出printf(“%3x\n”,(x%y,x-y,x+y))语句对应的输出结果是。

7、设intj=10;执行j+=j*j;后j的值是。

8、设float(*pf)(),*qf();

pf与qf的意义分别是和。

9、设宏定义#defineD(x)x/x

则引用D(2+3)后的值是。

二.单项选择题:

(在每小题的四个备选答案中,选出一个正确的答案,

并将其号码填在题干后的括号内。

每小题1分,共10分)

1.以下正确的C语言标识符是:

()

(A)%x(B)a+b(C)a123(D)test!

2.下列运算符中优先级最低的是()

(A)++(B)()(C)→(D)+=

3.设inti=0,j=1,k=2,a=3,b=4,c=5;执行表达式(a=i

(A)1,1,5(B)1,0,2

(C)3,4,5(D)1,1,0

4.设inta=1,b;执行下列switch语句后,b获值为2的是()

(A)switch(a)(B)switch(a)

{case1:

b=1;{case1:

b=1;break;

case2:

b=2;case2:

b=2;break;

default:

b=3;default:

b=3;break;

}}

(C)switch(a)(D)switch(a)

{case1:

b=1;{case1:

b=1;break;

case2:

b=2;break;case2:

b=2;

default:

b=3;default:

b=3;

}}

5.下列程序段运行后,输出GOOD的行数是()

inti,j,k;

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

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

for(k=i;k

(A)27(B)3(C)1(D)9

6.二维数组正确的初始化是()

(A)charstr[][3]={“a”,”1”};

(B)charstr[][3]={‘abc’,’4’};

(C)charstr[3][]={“a”,”1”};

(D)charstr[][3]=‘a’,’1’,’t’;

7.以下各判断是否为素数的函数中(是素数返回1,不是素数返回0),正确的是()

(A)(B)

#include#include

prime(intn)prime(intn)

{{

for(inti=2;i<=sqrt(n);i++)for(inti=2;i<=sqrt(n);i++)

if(n%i==0)if(n%i==0)

return0;return1;

elseelse

return1;return0;

}}

(C)(D)

#include#include

prime(intn)prime(intn)

{{

for(inti=2;i<=sqrt(n);i++)for(inti=2;i<=sqrt(n);i++)

if(n%i==0)break;if(n%i==0)

return0;return0

return1;return1;

}}

8、以下程序段()

intx=-1;

do{

x=x*x;

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

}while(!

x);

A.是死循环B.循环执行两次

C.循环执行一次D.有语法错误

9、对于函数,下列叙述中正确的是()

A.在调用某函数前,必须对该函数作原型说明,否则一定出错。

B.调用函数时,实参变量和形参变量参数个数一般要相等,顺序要一致,

类型要相同或相容。

C.调用函数时,形参变量名为inta[],主函数中的数组intscore[10]必须与

形参变量同名。

D.函数必须有返回值,而且只能有一个返回值。

10、下列程序运行结果是()。

#include

#defineM66

voidconvert(intn)

{

if(n/8)

convert(n/8);

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

}

voidmain()

{

convert(M);

printf("\n");

}

A.102B.201

C.0201D.

三.写出程序运行结果:

(每小题5分,共35分)

1.#include

voidmain()

{

inta,b,c;

a=b=c=5;

a=++b+c++;

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

a=b+++++c;

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

a=++b+c--;

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

printf("\n");

}

2.#include

#defineMAINprintf("MAIN:

i=%d,a=%d,b=%d,c=%d\n",i,a,b,c);

#defineOTHERprintf("OTHER:

i=%d,a=%d,b=%d,c=%d\n",i,a,b,c);

inti=10;

voidother()

{

staticinta=2,b;

intc=10;

a+=2;

i+=32;

c+=5;

OTHER

b=a;

}

voidmain()

{

staticinta;

registerintb=-10;

intc=0;

MAIN

c+=8;

other();

MAIN

i+=10;

other();

printf("\n");

}

3.#include

voidtest(int*x,inty)

{

intt;

t=*x;

*x=y;

y=t;

}

voidmain()

{

inta=10,b=20;

voidtest(int*x,inty);

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

test(&a,b);

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

}

4.#include

voidmain()

{

intx=10,a=10,b=20,ok1=5,ok2=0;

if(a

if(b!

=15)

if(!

ok1)

x=1;

elseif(ok2)

x=10;

x=-1;

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

}

 

5.#include

voidmain()

{

inti,j;

for(i=j=2;j<=50;j++)

{

if(i>=10)break;

if(i%2)

{

i+=5;

continue;}

i-=3;

}

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

}

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

#include

voidmain()

{

inti=0,t;

for(;i<9/2;i++)

{

t=a[i];

a[i]=a[8-i];

a[8-i]=t*5;

}

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

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

printf("\n");

}

7.#include

voidmain()

{

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

inti,*p=a[2],(*q)[3]=a;

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

printf("%2d",*p++);

printf("\n");

printf("%2d\n",*(*(q+i-1)+i-2));

}

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

1.由键盘输入两个字符串a和b,并比较它们的大小。

#include

voidmain()

{

chara[40],b[40];

inti,x;

for(i=0;;i++)

x=a[i]-b[i];

if(x>0)

printf("a>b\n");

elseif(x<0)

printf("a

else

printf("a=b\n");

}

 

2.一个班学生的学号和一门课的成绩为外部结构:

structstuinf

{

intstid;/*学号*/

intscore;/*成绩*/

}

下列程序是依成绩由高到低对STNUM(定义为30)个学生排序,而后输出结果。

#include

#defineSTNUM30

structstuinf

{

intstid;

intscore;

}stu[STNUM];

voidmain()

{

structstuinf*p[STNUM],

inti,j,k;

for(i=0;;i++)

{

scanf("%d%d",&stu[i].stid,&stu[i].score);

p[i]=&stu[i];

}

for(i=0;i<=STNUM-2;i++)

{

k=i;

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

if(p[k]->scorescore)

if(k!

=i)

{

ptemp=p[i];

p[i]=p[k];

p[k]=ptemp;

}

}

for(i=0;i<=STNUM-1;i++)

printf("%d%d\n",p[i]->stid,p[i]->score);

printf("\n");

}

五.编程题:

(共25分)

1.设数组a中有10个整型元素,求a中各相邻两个元素之和,将这些和存在数组b中,并由小到大排序。

2.从键盘输入若干人员(不少于5人)的姓名和电话号码(8位),以字符‘#’结束输入,用结构型数组存放这些信息,并将这些信息送到一个磁盘文件“file.txt”中保存。

然后输入姓名,找出该人的电话号码。

 

答案:

一.填空题:

(每空1分,共10分)

1.主函数

2.14

3.6,5

4.c>=0&&c<=9

5.duoble

6.1e

7.110

8.pf为指向函数的指针,

qf为返回值为指针的函数。

9.6

二.选择题:

(每小题1分,共10分)

1.C2.D3.D4.C5.C

6.A7.D8.C9.B10.A

三.写出程序运行结果:

(每小题5分,共35分)

1.11,6,6

13,7,7

15,8,6

2.i=10,a=0,b=-10,c=0

i=42,a=4,b=0,c=15

i=42,a=0,b=-10,c=8

i=84,a=6,b=4,c=15

3.a=10,b=20

a=20,b=20

4.x=-1

5.j=10

6.987652015105

7.600

0

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

1.

scanf(“%s%s”,a,b);

a[i]==b[i]&&a[i]!

=’\0’

2.

*ptemp;STNUM-1k=j

 

五.编程题:

(共25分)

1.

#include

#include

#defineN10

voidmain()

{

inti=0,j;

doublex,temp,y[N];

for(x=0.1;x<=1;x+=0.1)

{

y[i]=2*x+sin(x)-log(x);

printf("%8.2f\n",y[i]);

i++;

}

//由小到大排序。

for(i=0;i

for(j=i;j

{if(y[i]>y[j])

{temp=y[j];

y[j]=y[i];

y[i]=temp;}

}

printf("\n\n");

for(i=0;i

printf("%8.2f\n",y[i]);

printf("y的最大值=%8.2f\n",y[9]);

}

2.

#include

#include

#include

#defineSIZE5

structtelephone

{

charname[8];

chartelno[9];

};

voidmain()

{

FILE*fp;

structtelephones[SIZE],*p;

voidsearch(structtelephoneb[],char*x);

inti=0;

charna[8];

for(p=s;p

{

printf("输入姓名:

\n");

scanf("%s",p->name);

if(strcmp(p->name,"#")==0)

break;

printf("输入电话号码:

\n");

scanf("%s",p->telno);

}

if((fp=fopen("file.txt","w"))==NULL)

{printf("cannotopenfile.txt\n");

exit(0);}

/*写到磁盘文件中去*/

fprintf(fp,"nameteleno\n");

for(i=0;i

fprintf(fp,"%s%s\n",s[i].name,s[i].telno);

fclose(fp);

printf("输入要查找的姓名:

");

scanf("%s",na);

for(p=s;p

{

if(strcmp(p->name,na)==0)

printf("电话号码是:

%s\n",p->telno);

}

}

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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