东北大学c语言编程试题及其答案.docx

上传人:b****6 文档编号:8421240 上传时间:2023-01-31 格式:DOCX 页数:26 大小:24.87KB
下载 相关 举报
东北大学c语言编程试题及其答案.docx_第1页
第1页 / 共26页
东北大学c语言编程试题及其答案.docx_第2页
第2页 / 共26页
东北大学c语言编程试题及其答案.docx_第3页
第3页 / 共26页
东北大学c语言编程试题及其答案.docx_第4页
第4页 / 共26页
东北大学c语言编程试题及其答案.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

东北大学c语言编程试题及其答案.docx

《东北大学c语言编程试题及其答案.docx》由会员分享,可在线阅读,更多相关《东北大学c语言编程试题及其答案.docx(26页珍藏版)》请在冰豆网上搜索。

东北大学c语言编程试题及其答案.docx

东北大学c语言编程试题及其答案

东北大学C语言题库

第一部分(选择题)

1、构成C语言的基本单位是________。

你的答案是:

正确答案是:

B

过程

函数

语句

命令

2、设x为整型变量,不能正确表达数学关系:

5

你的答案是:

正确答案是:

A

5<="">

x>5&&x<10

x==6||x==7||x==8||x==9

!

(x<=5)&&(x<10)

3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为_____。

你的答案是:

正确答案是:

D

&&、||、!

||、&&、!

&&、!

、||

!

、&&、||

4、下面语句中,正确的是_____。

你的答案是:

正确答案是:

D

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

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

printf("%s\n",&a);

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

5、对于for(表达式1;;表达式3)可以理解为_____。

你的答案是:

正确答案是:

B

for(表达式1;0;表达式3)

for(表达式1;1;表达式3)

for(表达式1;表达式1;表达式3)

for(表达式1;表达式3;表达式3)

6、执行下面程序段的结果是_____。

main(){intx=1,a=0,b=0;switch(x){case0:

b++;case1:

a++;case2:

a++;b++;}printf("a=%d,b=%d",a,b);}你的答案是:

正确答案是:

B

a=1,b=1

a=2,b=1

a=1,b=0

a=2,b=2

7、执行下面程序段的结果是_____。

intx=0;do{printf(“%2d”,x--);}while(x);你的答案是:

正确答案是:

D

打印出321

打印出23

不打印任何结果

陷入死循环

8、设x=10,y=5;z=15,执行下面一段程序后z的结果是_____。

If(x>y)if(y>z)x=y;elsez=y;你的答案是:

正确答案是:

C

7

6

5

4

9、如果一个函数被说明为static,那么_____。

你的答案是:

正确答案是:

B

该函数只能被main函数调用

该函数能被当前文件的函数调用,但不能被其他文件的函数调用

该函数不能被当前文件的函数调用,可以被其他文件的函数调用

任何文件的函数都可以调用该函数

10、下面关于局部变量的描述中,错误的是_____。

你的答案是:

正确答案是:

D

函数的局部变量的有效范围只能在本函数

函数的形式参数也是局部变量

局部变量的名称不能和函数同名称

不同的函数中不能定义相同名称的局部变量

11、下列初始化字符数组的语句中,错误的是_____。

你的答案是:

正确答案是:

A

charstr[5]="hello";

charstr[]={'h','e','l','l','o','\0'};

charstr[5]={"hi"};

charstr[100]="";

12、引用数组元素时,数组下标可以是_____。

你的答案是:

正确答案是:

D

整型常量

整型变量

整型表达式

以上均可

13、已知:

charstr[10],*p=str;下面的语句中正确的是_____。

你的答案是:

正确答案是:

B

str="ABC";

p="ABC";

*str="ABC";

*p="ABC";

14、下面语句中,错误的是_____。

你的答案是:

正确答案是:

D

inti;int*p;p=&i;

inti,*p;p=&a;

inti,*p=&a;

inti,*p;*p=i;

15、下面对于结构体类型的描述正确的是_____。

你的答案是:

正确答案是:

A

结构体类型的大小为各成员变量所占内存的总和

结构体类型变量与简单数据类型变量的引用规则一致。

结构体类型的大小为其成员中所占内存空间最大的变量的大小

结构体类型的大小为其最后一个成员中所占内存空间的大小

16、C语言规定:

在一个源程序中,main函数的位置________。

你的答案是:

正确答案是:

C

必须在最开始

必须在系统调用的库函数的后面

可以任意

必须在最后

17、表达式18/4*sqrt(4.0)/8值的数据类型是________。

你的答案是:

正确答案是:

C

int

float

double

不确定

18、在c语言中,char型数据在内存中的存储形式是________。

你的答案是:

正确答案是:

D

补码

反码

原码

ASCII码

19、阅读以下程序,当输入的数据形式为:

25,13,10时,正确的输出结果为______。

main(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z);}你的答案是:

正确答案是:

D

x+y+z=48

x+y+z=35

x+z=35

不能确定

20、有如下程序voidmain(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf(“%f\n”,y);}该程序的输出结果是()。

你的答案是:

正确答案是:

C

0.000000

0.250000

0.500000

1.000000

21、判断char型变量s是否为小写字母的正确表达式是______。

你的答案是:

正确答案是:

C

'a'<=s<='z'

(s>='a')&(s<='z')

(s>='a')&&(s<='z')

('a'<=s)and('z'>=s)

22、执行以下语句后,y的值为______。

intx,y,z;x=y=z=0;++x||++y&&++z;你的答案是:

正确答案是:

A

0

1

2

不确定值

23、有如下程序段:

intnumber=0;while(number++<=3)printf(“%d\n”,number++);则正确的执行结果是______。

你的答案是:

正确答案是:

C

234

012

13

24

24、有如下程序voidmain(){intn=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是______。

你的答案是:

正确答案是:

B

987

876

8765

9876

25、要使以下程序段输出10个整数,请在空格中填入一个整数。

for(i=0;i<=______;printf("%d\n",i+=2));你的答案是:

正确答案是:

B

15

18

20

10

26、设函数fun的定义形式为:

fun(charch,floatx){…}则以下对函数fun的调用语句中正确的是______。

你的答案是:

正确答案是:

B

fun(“abc”,3)

t=fun(‘D’,5)

fun(‘ab’,3)

fun(‘78’,1)

27、函数求sum(intn)的功能是计算自然数1到n的和,即1+2+…+n。

Main(){printf("Thesum=%d\n",sum(10));}intsum(intn){ints=0,i;for(i=0;i<=n;i++)____________}请从备选答案中选择一答案,补全程序。

你的答案是:

正确答案是:

B

s=s+n;returns;

s=s+i;returns;

returns;

returns+=I;

28、设函数fun的定义形式为intfun(inta[],intn){ints=0,i=0;for(i=0;i

你的答案是:

正确答案是:

C

3

5

7

9

29、若有说明:

inta[10];则对数组元素的正确引用是________。

你的答案是:

正确答案是:

D

a[10]

a[3,5]

a(5)

a[10-10]

30、以下不正确的定义语句是________。

你的答案是:

正确答案是:

B

doublex[5]={2.0,4,0,6,0,8,0,10.0};

inty[5]={0,1,3,5,7,9};

charc1[]={'1','2','3','4','5'};

charc2[]={'\x10','\xa','\x8'};

31、下面程序的运行结果是________。

#include"stdio.h"main(){charstr[]="SWLIA",c;intk;for(k=0;(c=str[k])!

='\0';k++){switch(c){case'I':

++k;break;c你的答案是:

正确答案是:

B

SWA

SW*

SW*A

SW

32、以下能正确进行字符串赋值操作的是______。

你的答案是:

正确答案是:

D

chars[5]={"12345"};

chars[5]={'1','2','3','4','5',‘6’};

char*s;*s="12345";

char*s="12345";

33、以下程序段的运行结果是______。

Chara[]="program",*p;p=a;while(*p!

='g')  {printf("%c",*p-32);p++;}你的答案是:

正确答案是:

C

PROgram

PROGRAM

PRO

proGRAM

34、若有说明:

char*pc[]={"aaa","bbb","ccc","ddd"};,则以下叙述正确的是______。

你的答案是:

正确答案是:

C

*pc[0]代表的是字符串"aaa"的首地址

*pc[0]代表的是字符'a'的首地址

pc[0]代表的是字符串"aaa"的首地址

pc[0]代表的是字符'a'的首地址

35、下列程序的运行结果是______。

#include#includevoidf(char*s,intn){chara,*q1,*q2;q1=s;q2=s+n-1;while(q1

正确答案是:

B

GAGGAGA

AGAAGAG

GFEDCBA

AGADAGA

36、定义如下的结构体描述同学信息structStudent{unsignedlongid;charname[30];charclass[30];}s;假设此同学的序号为1002,姓名为黎明,班级为冶金3班,则描述正确的为_____。

你的答案是:

正确答案是:

C

id=1002;name=黎明;class=冶金3班;

id=1002;name=”黎明”;class=”冶金3班”;

s.id=1002;s.name=”黎明”;s.class=”冶金3班”;

s.id=1002;s.name=黎明;s.class=冶金3班;

37、用来描述C程序中注释的是_____。

你的答案是:

正确答案是:

C

//

/*

/**/

**

38、下列变量中合法的定义是_____。

你的答案是:

正确答案是:

A

short_a=2-1

longif=0xabcL

double1_d=1.5e2

floata=1.5e2.7

39、当c的值不为0时,能够将c的值赋给变量a和b的是_____你的答案是:

正确答案是:

C

c=b=a

(a=c)||(b=c)

(a=c)&&(b=c)

a=c=b

40、设有以下程序段,执行后的输出结果是_____intx=100,y=200;printf("%d",(x,y));你的答案是:

正确答案是:

B

100

200

100,200

编译出错

 

第二部分(程序设计题)

1编程:

要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和a+b。

#include

main()

{

inta,b,c;

printf("pleaseinputa=");

scanf("%d",&a);

printf("pleaseinputb=");

scanf("%d",&b);

if(a*a+b*b>100)

{

c=(a*a+b*b)/100;

printf("%d",c);

}

else

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

}

2编程:

根据以下函数关系:

当x<=0,y=0;当020,y=sin(x);输入一个x值,计算出相应的y值并输出。

(提示:

sin(x)属于math.h)

#include

#include

main()

{

intx;

floaty;

printf("pleaseinputx=");

scanf("%d",&x);

if(x<=0)

{

y=0;

}

elseif((0

{

y=x;

}

elseif((10

{

y=10;

}

else

y=sin(x);

printf("%f\n",y);

}

3编程:

根据以下函数关系:

当x2,y=sin(x);输入一个x值,计算出相应的y值并输出。

(提示:

sin(x)、sqrt(x)属于math.h)参考2

4编程:

输入三个正整数x,y,z,将这三个数由小到大输出。

#include

#include

main()

{

inta[3],i,max,j;

printf("pleaseinputthe3numbers:

");

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

{

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

}

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

{

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

if(a[j]>a[j+1])

{

max=a[j];

a[j]=a[j+1];

a[j+1]=max;

}

}

printf("theresultis");

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

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

printf("\n");

}

 

#include

main()

{

inta,b,c,t;

scanf("%d%d%d",&a,&b,&c);

if(a>b)

{

t=a;a=b;b=t;

}

if(a>c)

{

t=a;a=c;c=t;

}

if(b>c)

{

t=b;b=c;c=t;

}

printf("Theansweris:

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

 

}

5编程:

从键盘输入一个年号,判断该年号是否为闰年,并输出结果。

闰年是能被4整除但不能被100整除;或能被100整除且能被400整除的年号。

练习书上有,第一页

6编程实现四位电话号码的升位。

原来电话号码为1、3、5、7、9打头的号码前加2,原来电话号码为2、4、6、8打头的加3,例如:

输入1234,则输出:

21234。

#include

main()

{

longx,y;

printf("pleaseinputtelephonenumber");

scanf("%d",&x);

y=x/1000;

switch(y)

{

case1:

case3:

case5:

case7:

case9:

x=2*10000+x;break;

case2:

case4:

case6:

case8:

x=3*10000+x;break;

}

printf("theresultis%ld\n",x);

}

7编程实现四位电话号码的升位。

原来电话号码为1、2、3、4、5打头的号码前加3,原来电话号码为6、7、8、9打头的加2,例如:

输入1234,则输出:

31234。

参考6

8编程:

已知分段函数:

当x>10时,y=2*x+1;当1

参考2

9编程:

输入3个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。

三角形面积公式:

area=sqrt(s(s-a)(s-b)(s-c)),其中s=1/2(a+b+c)。

(提示:

sqrt(x)属于math.h)

#include

#include

main()

{

floatx,y,z;

floatarea,s;

printf("pleaseinput:

");

scanf("%f%f%f",&x,&y,&z);

if((x+y<=z)||(z+y<=x)||(x+z<=y))

printf("no\n");

else

{

s=(x+y+z)/2;

area=sqrt(s*(s-x)*(s-y)*(s-z));

printf("%f\n",area);

}

}

10编程:

已知分段函数,当x<=0时,y=3*x;当010时,y=2*x*x;从键盘输入x的值,计算y的值。

参考2

11编程:

判定用户输入一个不大于999的正整数是否为一个回文数。

回文数是指正读和反读都相同的数。

#include

main()

{

inta,x,y,z;

printf("pleaseinputanumber");

scanf("%d",&a);

if(0

{

x=a/100;

y=(a-100*x)/10;

z=a%10;

if(x==0)

{

if(y==z)

printf("Yes\n");

else

printf("no\n");

}

elseif(x==z)

printf("yes\n");

else

printf("no\n");

}

}

12编程:

从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。

转换的方式是:

将a中较大的数码作为b的十位,剩余的数码作为b的个位。

例如,当输入a=49,则结果b=94。

#include

main()

{

inta,b,x,y;

printf("pleaseinputanumber");

scanf("%d",&a);

if(0

{

x=a/10;

y=a%10;

if(x>=y)

{

b=a;

}

else

{

b=10*y+x;

}

printf("theresultis%d",b);

}

else

printf("awrongnumber");

}

13编程:

从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。

转换的方式是:

将a中较小的数码作为b的十位,剩余的数码作为b的个位。

例如,当输入a=54,则结果b=45。

参考12

14初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。

#include

main()

{

inta[10]={2,3,4,1,5,6,7,8,9,10},i,x,j,k;

printf("pleaseinputanumber");

scanf("%d",&x);

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

{

if(a[i]==x)

{

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

a[j]=a[j+1];

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

printf("%3d",a[k]);

break;

}

elseif(i==9)

printf("no");

}

}

15初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。

#include

main()

{

chara[7]={"howare"};

charb[1];

inti,j,k;

printf("pleaseinputthestring:

");

gets(b);

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

{

if(a[i]==b[0])

{

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

{

a[j]=a[j+1];

}

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

printf("%c",a[k]);

printf("\n");

break;

}

elseif(a[i]=='\0')

{

printf("no\n");

break;

}

}

}

16计算一个4*4矩阵的主对角线的元素之和以及最大元素的值。

要求初始化矩阵,输出计算结果并输出该矩阵。

#include

main()

{

inta[4][4]={{2,123,1,5},{4,22,56,23},{5,7,89,23},{1,2,3,4}};

inti,sum=0,max,j;

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

sum=sum+a[i][i];

max=a[0][0];

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

{

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

if(max

max=a[i][j];

}

printf("thesumis%dandthemaxnumberis%d\n",sum,max);

}

17计算一个3*3矩阵的所有元素之和以及所有元素中的最大元素的值。

要求初始化矩阵,输出计算结果并输出该矩阵。

参考16,懒得弄了

18初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。

#include

main()

{

chara[20]={"asldfkjasldkf"};

inti;

puts(a);

for(i=2;i<7;i++)

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

printf("\n");

}

19编程计算一个a[3][4]数组的最小值所在位置,输出该位置以及a[3][4]矩阵。

要求初始化矩阵。

参考16

20初始化一矩阵a[4][4],计算每行的最大元素值,要求输出原始矩阵以及每行的最大元素值。

#include

main()

{

inta[4][4]={{2

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

当前位置:首页 > 表格模板 > 合同协议

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

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