东北大学c语言编程试题及其答案Word下载.docx
《东北大学c语言编程试题及其答案Word下载.docx》由会员分享,可在线阅读,更多相关《东北大学c语言编程试题及其答案Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
a=%d,b=%d"
a,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);
打印出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,那么_____。
该函数只能被main函数调用
该函数能被当前文件的函数调用,但不能被其他文件的函数调用
该函数不能被当前文件的函数调用,可以被其他文件的函数调用
任何文件的函数都可以调用该函数
10、下面关于局部变量的描述中,错误的是_____。
函数的局部变量的有效范围只能在本函数
函数的形式参数也是局部变量
局部变量的名称不能和函数同名称
不同的函数中不能定义相同名称的局部变量
11、下列初始化字符数组的语句中,错误的是_____。
charstr[5]="
;
charstr[]={'
h'
'
e'
l'
o'
\0'
};
charstr[5]={"
hi"
charstr[100]="
12、引用数组元素时,数组下标可以是_____。
整型常量
整型变量
整型表达式
以上均可
13、已知:
charstr[10],*p=str;
下面的语句中正确的是_____。
str="
ABC"
p="
*str="
*p="
14、下面语句中,错误的是_____。
inti;
int*p;
p=&
i;
inti,*p;
a;
inti,*p=&
*p=i;
15、下面对于结构体类型的描述正确的是_____。
结构体类型的大小为各成员变量所占内存的总和
结构体类型变量与简单数据类型变量的引用规则一致。
结构体类型的大小为其成员中所占内存空间最大的变量的大小
结构体类型的大小为其最后一个成员中所占内存空间的大小
16、C语言规定:
在一个源程序中,main函数的位置________。
必须在最开始
必须在系统调用的库函数的后面
可以任意
必须在最后
17、表达式18/4*sqrt(4.0)/8值的数据类型是________。
int
float
double
不确定
18、在c语言中,char型数据在内存中的存储形式是________。
补码
反码
原码
ASCII码
19、阅读以下程序,当输入的数据形式为:
25,13,10<
CR>
时,正确的输出结果为______。
main(){intx,y,z;
scanf("
%d%d%d"
&
x,&
y,&
z);
printf("
x+y+z=%d\n"
x+y+z);
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);
}该程序的输出结果是()。
0.000000
0.250000
0.500000
1.000000
21、判断char型变量s是否为小写字母的正确表达式是______。
'
a'
<
=s<
='
z'
(s>
)&
(s<
)
('
=s)and('
=s)
22、执行以下语句后,y的值为______。
intx,y,z;
x=y=z=0;
++x||++y&
++z;
1
2
不确定值
23、有如下程序段:
intnumber=0;
while(number++<
=3)printf(“%d\n”,number++);
则正确的执行结果是______。
234
012
13
24
24、有如下程序voidmain(){intn=9;
while(n>
6){n--;
printf(“%d”,n);
}}该程序段的输出结果是______。
987
876
8765
9876
25、要使以下程序段输出10个整数,请在空格中填入一个整数。
for(i=0;
i<
=______;
%d\n"
i+=2));
15
18
20
26、设函数fun的定义形式为:
fun(charch,floatx){…}则以下对函数fun的调用语句中正确的是______。
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;
=n;
i++)____________}请从备选答案中选择一答案,补全程序。
s=s+n;
returns;
s=s+i;
returns+=I;
28、设函数fun的定义形式为intfun(inta[],intn){ints=0,i=0;
n;
i++)s+=a[i];
returns;
}main(){inta[10]={1,2,3,4,5};
sum=%d"
fun(&
a[2],2));
}则程序的运行结果为______。
3
9
29、若有说明:
inta[10];
则对数组元素的正确引用是________。
a[10]
a[3,5]
a(5)
a[10-10]
30、以下不正确的定义语句是________。
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])!
k++){switch(c){case'
I'
:
++k;
break;
c你的答案是:
SWA
SW*
SW*A
SW
32、以下能正确进行字符串赋值操作的是______。
chars[5]={"
12345"
chars[5]={'
‘6’};
char*s;
*s="
char*s="
33、以下程序段的运行结果是______。
Chara[]="
program"
*p;
p=a;
while(*p!
g'
) {printf("
%c"
*p-32);
p++;
PROgram
PROGRAM
PRO
proGRAM
34、若有说明:
char*pc[]={"
aaa"
"
bbb"
ccc"
ddd"
,则以下叙述正确的是______。
*pc[0]代表的是字符串"
的首地址
*pc[0]代表的是字符'
pc[0]代表的是字符串"
pc[0]代表的是字符'
35、下列程序的运行结果是______。
#include<
stdio.h>
#include<
string.h>
voidf(char*s,intn){chara,*q1,*q2;
q1=s;
q2=s+n-1;
while(q1<
q2){a=*q1++;
*q1=*q2--;
*q2=a;
}}main(){charb[]="
ABCDEFG"
f(b,s你的答案是:
GAGGAGA
AGAAGAG
GFEDCBA
AGADAGA
36、定义如下的结构体描述同学信息structStudent{unsignedlongid;
charname[30];
charclass[30];
}s;
假设此同学的序号为1002,姓名为黎明,班级为冶金3班,则描述正确的为_____。
id=1002;
name=黎明;
class=冶金3班;
name=”黎明”;
class=”冶金3班”;
s.id=1002;
s.name=”黎明”;
s.class=”冶金3班”;
s.name=黎明;
s.class=冶金3班;
37、用来描述C程序中注释的是_____。
//
/*
/**/
**
38、下列变量中合法的定义是_____。
short_a=2-1
longif=0xabcL
double1_d=1.5e2
floata=1.5e2.7
39、当c的值不为0时,能够将c的值赋给变量a和b的是_____你的答案是:
c=b=a
(a=c)||(b=c)
(a=c)&
(b=c)
a=c=b
40、设有以下程序段,执行后的输出结果是_____intx=100,y=200;
%d"
,(x,y));
100
200
100,200
编译出错
第二部分(程序设计题)
1编程:
要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和a+b。
#include<
main()
{
inta,b,c;
pleaseinputa="
);
scanf("
a);
pleaseinputb="
b);
if(a*a+b*b>
100)
c=(a*a+b*b)/100;
c);
}
else
a+b);
2编程:
根据以下函数关系:
当x<
=0,y=0;
当0<
=10,y=x;
当10<
=20,y=10;
当x>
20,y=sin(x);
输入一个x值,计算出相应的y值并输出。
(提示:
sin(x)属于math.h)
math.h>
intx;
floaty;
pleaseinputx="
x);
if(x<
=0)
y=0;
elseif((0<
x)&
=10))
y=x;
elseif((10<
=20))
y=10;
y=sin(x);
%f\n"
y);
3编程:
=1,y=x;
当1<
=2,y=sqrt(x);
2,y=sin(x);
sin(x)、sqrt(x)属于math.h)参考2
4编程:
输入三个正整数x,y,z,将这三个数由小到大输出。
inta[3],i,max,j;
pleaseinputthe3numbers:
for(i=0;
3;
i++)
a[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;
theresultis"
%d"
a[i]);
\n"
{
inta,b,c,t;
a,&
b,&
c);
if(a>
b)
{
t=a;
a=b;
b=t;
}
if(a>
c)
{
t=a;
a=c;
c=t;
}
if(b>
{
t=b;
b=c;
}
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。
longx,y;
pleaseinputtelephonenumber"
y=x/1000;
switch(y)
case1:
case3:
case5:
case7:
case9:
x=2*10000+x;
case2:
case4:
case6:
case8:
x=3*10000+x;
theresultis%ld\n"
x);
7编程实现四位电话号码的升位。
原来电话号码为1、2、3、4、5打头的号码前加3,原来电话号码为6、7、8、9打头的加2,例如:
31234。
参考6
8编程:
已知分段函数:
10时,y=2*x+1;
=10时,y=5*(x+1)*(x-2);
=1时,y=1-2*x;
从键盘输入x的值,计算y的值。
参考2
9编程:
输入3个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。
三角形面积公式:
area=sqrt(s(s-a)(s-b)(s-c)),其中s=1/2(a+b+c)。
sqrt(x)属于math.h)
floatx,y,z;
floatarea,s;
pleaseinput:
%f%f%f"
if((x+y<
=z)||(z+y<
=x)||(x+z<
=y))
no\n"
s=(x+y+z)/2;
area=sqrt(s*(s-x)*(s-y)*(s-z));
area);
10编程:
已知分段函数,当x<
=0时,y=3*x;
=10时,y=(x+1)*(x-2);
10时,y=2*x*x;
11编程:
判定用户输入一个不大于999的正整数是否为一个回文数。
回文数是指正读和反读都相同的数。
inta,x,y,z;
pleaseinputanumber"
if(0<
a&
a<
=999)
x=a/100;
y=(a-100*x)/10;
z=a%10;
if(x==0)
if(y==z)
Yes\n"
elseif(x==z)
yes\n"
12编程:
从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。
转换的方式是:
将a中较大的数码作为b的十位,剩余的数码作为b的个位。
例如,当输入a=49,则结果b=94。
inta,b,x,y;
x=a/10;
y=a%10;
if(x>
=y)
b=a;
b=10*y+x;
theresultis%d"
b);
else
awrongnumber"
13编程:
将a中较小的数码作为b的十位,剩余的数码作为b的个位。
例如,当输入a=54,则结果b=45。
参考12
14初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。
inta[10]={2,3,4,1,5,6,7,8,9,10},i,x,j,k;
10;
if(a[i]==x)
for(j=i;
for(k=0;
k<
9;
k++)
%3d"
a[k]);
elseif(i==9)
no"
15初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。
chara[7]={"
howare"
charb[1];
inti,j,k;
pleaseinputthestring:
gets(b);
7;
if(a[i]==b[0])
5;
elseif(a[i]=='
16计算一个4*4矩阵的主对角线的元素之和以及最大元素的值。
要求初始化矩阵,输出计算结果并输出该矩阵。
inta[4][4]={{2,123,1,5},{4,22,56,23},{5,7,89,23},{1,2,3,4}};
inti,sum=0,max,j;
4;
sum=sum+a[i][i];
max=a[0][0];
if(max<
a[i][j])
max=a[i][j];
thesumis%dandthemaxnumberis%d\n"
sum,max);
17计算一个3*3矩阵的所有元素之和以及所有元素中的最大元素的值。
参考16,懒得弄了
18初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。
chara[20]={"
asldfkjasldkf"
puts(a);
for(i=2;
19编程计算一个a[3][4]数组的最小值所在位置,输出该位置以及a[3][4]矩阵。
要求初始化矩阵。
参考16
20初始化一矩阵a[4][4],计算每行的最大元素值,要求输出原始矩阵以及每行的最大元素值。
inta[4][4]={{2