上海海事大学c语言试题3.docx
《上海海事大学c语言试题3.docx》由会员分享,可在线阅读,更多相关《上海海事大学c语言试题3.docx(25页珍藏版)》请在冰点文库上搜索。
上海海事大学c语言试题3
试卷编号:
9689
所属语言:
C语言
试卷方案:
期中考试
试卷总分:
100分
共有题型:
5种
一、填空共15题(共计15分)
第1题(分)题号:
92
C语言中的字符变量用保留字【1】来说明.
答案:
=======(答案1)=======
char
第2题(分)题号:
433
已知x=3,y=2,则表达式x*=y+8的值为【1】.
答案:
=======(答案1)=======
30
第3题(分)题号:
388
设x和y均为int型变量,且x=1,y=2,则表达式+x/y的值为【1】.
答案:
=======(答案1)=======
=========或=========
1
第4题(分)题号:
293
getchar()函数只能接收一个【1】.
答案:
=======(答案1)=======
字符
第5题(分)题号:
437
以下程序的输出结果为【1】,
#include""main(){inta=010,j=10;printf("%d,%d\n",++a,j--);}
答案:
=======(答案1)=======
9,10
第6题(分)题号:
498
c语言程序的三种基本结构是:
顺序结构,选择结构,【1】结构.
答案:
=======(答案1)=======
循环
第7题(分)题号:
100
已知a=13,b=6,a||b的十进制数值为【1】.
答案:
=======(答案1)=======
1
第8题(分)题号:
441
设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为【1】.
答案:
=======(答案1)=======
1
第9题(分)题号:
457
设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!
(a+b)+c-1&&b+c/2
后,t的值是【1】.
答案:
=======(答案1)=======
1
第10题(分)题号:
389
设i,j,k均为int型变量,则执行完for循环
for(i=0,j=10;i<=j;i++,j--)k=i+j;
后,k的值为【1】.
答案:
=======(答案1)=======
10
第11题(分)题号:
421
若输入字符串:
abcde<回车>,则以下while循环体将执行【1】次.
While((ch=getchar())=='e')printf("*");
答案:
=======(答案1)=======
0
第12题(分)题号:
533
设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】.
for(x=0,y=0;y!
=123&&x<3;x++)
scanf("%d",&y);
答案:
=======(答案1)=======
3
第13题(分)题号:
328
C语言中,数组元素的下标下限为【1】.
答案:
=======(答案1)=======
0
第14题(分)题号:
346
合并字符串的库函数是【1】,只写函数名即可.
答案:
=======(答案1)=======
strcat
第15题(分)题号:
341
定义inta[2][3];表示数组a中的元素个数是【1】个.
答案:
=======(答案1)=======
6
二、判断共15题(共计15分)
第1题(分)题号:
715
整数-32100可以赋值给int型和longint型变量.
答案:
Y
第2题(分)题号:
929
在C语言中,5种基本数据类型的存储空间长度的排列顺序为:
char答案:
Y
第3题(分)题号:
928
C程序中的关键字必须小写.
答案:
Y
第4题(分)题号:
194
若有定义和语句:
inta;charc;floatf;scanf("%d,%c,%f",&a,&c,&f);
若通过键盘输入:
10,A,,则a=10,c='A',f=.
答案:
Y
第5题(分)题号:
944
C语言中,赋值表达式加上分号就构成了赋值语句.
答案:
Y
第6题(分)题号:
716
若i=3,则printf("%d",-i++);输出的值为-4.
答案:
N
第7题(分)题号:
950
逻辑运算符中的"&&"和"||"低于关系运算符,"!
"高于算术运算符.
答案:
Y
第8题(分)题号:
951
在执行switch语句时,default和各个case的出现次序不影响执行结果.
答案:
Y
第9题(分)题号:
869
若有inti=10,j=0;则执行完语句
if(j=0)i++;elsei--;i的值为11.
答案:
N
第10题(分)题号:
953
C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.
答案:
N
第11题(分)题号:
742
若有说明intc;则while(c=getchar());是正确的C语句.
答案:
Y
第12题(分)题号:
954
continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.
答案:
Y
第13题(分)题号:
736
inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列
的元素赋初值,其余元素值为0.
答案:
Y
第14题(分)题号:
735
如果想使一个数组中全部元素的值为0,可以写成
inta[10]={0*10};
答案:
N
第15题(分)题号:
926
任何数组的下标都是从0开始;
答案:
Y
三、单项选择共20题(共计40分)
第1题(分)题号:
2004
下列字符序列中,不可用作C语言标识符的是().
A:
b70
B:
#ab
C:
symbol
D:
a_1
答案:
B
第2题(分)题号:
2137
下列表达式中,可作为C合法表达式的是().
A:
[3,2,1,0]
B:
(3,2,1,0)
C:
3=2=1=0
D:
3/2/1/0
答案:
B
第3题(分)题号:
2037
若k,g均为int型变量,则下列语句的输出为().
k=017;g=111;printf("%d\t",++k);printf("%x\n",g++);
A:
156f
B:
1670
C:
1571
D:
166f
答案:
D
第4题(分)题号:
2043
已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为().
chara='a';a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A:
b,c
B:
a--运算不合法,故有语法错
C:
98,c
D:
格式描述和输出项不匹配,输出无定值
答案:
C
第5题(分)题号:
2128
下列程序段的输出结果为().
floatx=;
printf("%3d",(int)x);
A:
B:
C:
213
D:
答案:
C
第6题(分)题号:
2222
语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
(说明:
'\b'是退格符)().
A:
a\bre\'hi\'y\\\bou
B:
a\bre\'hi\'y\bou
C:
re'hi'you
D:
abre'hi'y\bou
答案:
C
第7题(分)题号:
2028
假设所有变量均为整型,表达式:
a=2,b=5,a>b?
a++:
b++,a+b的值
是().
A:
7
B:
8
C:
9
D:
2
答案:
B
第8题(分)题号:
2145
inta=3,b=2,c=1;
if(a>b>c)a=b;
elsea=c;
则a的值为().
A:
3
B:
2
C:
1
D:
0
答案:
C
第9题(分)题号:
2062
假定所有变量均已正确定义,下列程序段运行后x的值是().
k1=1;
k2=2;
k3=3;
x=15;
if(!
k1)x--;
elseif(k2)x=4;
elsex=3;
A:
14
B:
4
C:
15
D:
3
答案:
B
第10题(分)题号:
2136
下列程序段的输出结果为().
inta=7,b=9,t;
t=a*=a>b?
a:
b;
printf("%d",t);
A:
7
B:
9
C:
63
D:
49
答案:
C
第11题(分)题号:
2319
在C语言中,要求运算数必须是整型的运算符是().
A:
^
B:
%
C:
!
D:
>
答案:
B
第12题(分)题号:
2251
以下不是无限循环的语句为().
A:
for(y=0,x=1;x>++y;x=i++)i=x;
B:
for(;;x++=i);
C:
while
(1){x++;}
D:
for(i=10;;i--)sum+=i;
答案:
A
第13题(分)题号:
2123
设j和k都是int类型,则for循环语句().
for(j=0,k=0;j<=9&&k!
=876;j++)scanf("%d",&k);
A:
最多执行10次
B:
最多执行9次
C:
是无限循环
D:
循环体一次也不执行
答案:
A
第14题(分)题号:
2141
以下程序段的输出结果为().
for(i=4;i>1;i--)
for(j=1;j
putchar('#');
A:
无
B:
######
C:
#
D:
###
答案:
B
第15题(分)题号:
2059
以下程序的运行结果是().
main()
{intn;
for(n=1;n<=10;n++)
{
if(n%3==0)continue;
printf("%d",n);
}
}
A:
B:
369
C:
12
D:
90
答案:
A
第16题(分)题号:
2147
while(fabs(t)<1e-5)if(!
(s/10))break;循环结束的条件是().
A:
t>=1e-5||t<=-1e-5||s>-10&&s<10
B:
fabs(t)<1e-5&&!
s/10
C:
fabs(t)<1e-5
D:
s/10==0
答案:
A
第17题(分)题号:
2273
设有数组定义:
chararray[]="China";则数组array所占的
空间为().
A:
4个字节
B:
5个字节
C:
6个字节
D:
7个字节
答案:
C
第18题(分)题号:
2280
若有说明inta[3][4];则对a数组元素的正确引用是().
A:
a[2][4]
B:
a[1,3]
C:
a[1+1][0]
D:
a
(2)
(1)
答案:
C
第19题(分)题号:
2269
以下不正确的定义语句是().
A:
doublex[5]={,,,,};
B:
inty[5]={0,1,3,5,7,9};
C:
charc1[]={'1','2','3','4','5'};
D:
charc2[]={'\x10','\xa','\x8'};
答案:
B
第20题(分)题号:
2074
下列语句中,不正确的是().
A:
staticchara[2]={1,2};
B:
staticinta[2]={'1','2'};
C:
staticchara[2]={'1','2','3'};
D:
staticchara[2]={'1'};
答案:
C
四、程序填空共4题(共计24分)
第1题(分)题号:
24
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能是对任一整数N(N≠0),它都可以分解成1
(或-1)和一些质数(素数)因子的形式。
如N=150时,可分
解成1×2×3×5×5;N=-150时,可分解为-1×2×3×5×5。
下边程序能实现这种分解过程。
当N=150,输出以下分解结
果:
N=1*2*3*5*5
-------------------------------------------------------*/
main()
{
intn,i,j,r;
scanf("%d",&n);
if(n==0)
{
printf("dataerror\n");
exit(0);
}
/***********SPACE***********/
elseif(【?
】)
printf("n=1");
else
{
printf("n=-1");
n=-n;
}
/***********SPACE***********/
for(【?
】;i<=n;i++)
{
/***********SPACE***********/
【?
】;
while(r==0)
{
printf("*%d",i);
/***********SPACE***********/
【?
】;
r=n%i;
}
}
printf("\n");
}
答案:
=======(答案1)=======
n>0
=========或=========
0=======(答案2)=======
i=2
=======(答案3)=======
r=n%i
=======(答案4)=======
n=n/i
=========或=========
n/=i
第2题(分)题号:
14
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。
-------------------------------------------------------*/
main()
{
intm,n,k,i=0;
for(m=100;m<=1000;m++)
{
/***********SPACE***********/
【?
】;
n=m;
do
{
/***********SPACE***********/
k=k+【?
】;
n=n/10;
/***********SPACE***********/
}【?
】;
if(k%15==0)
{
printf("%5d",m);i++;
/***********SPACE***********/
if(i%10==0)【?
】;
}
}
}
答案:
=======(答案1)=======
k=0
=======(答案2)=======
n%10
=========或=========
n-n/10*10
=========或=========
n-10*(n/10)
=======(答案3)=======
while(n>0)
=========或=========
while(0=========或=========
while(n!
=0)
=========或=========
while(0!
=n)
=======(答案4)=======
printf("\n")
第3题(分)题号:
21
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能是将一个字符串中的前N个字符复制到
一个字符数组中去,不许使用strcpy函数。
-------------------------------------------------------*/
main()
{
charstr1[80],str2[80];
inti,n;
/***********SPACE***********/
gets(【?
】);
scanf("%d",&n);
/***********SPACE***********/
for(i=0;【?
】;i++)
/***********SPACE***********/
{【?
】;}
/***********SPACE***********/
【?
】;
printf("%s\n",str2);
}
答案:
=======(答案1)=======
str1
=======(答案2)=======
i=========或=========
n>i
=========或=========
i<=n-1
=========或=========
n-1>=i
=======(答案3)=======
str2[i]=str1[i]
=========或=========
*(str2+i)=*(str1+i)
=========或=========
*(str2+i)=str1[i]
=========或=========
str2[i]=*(str1+i)
=======(答案4)=======
str2[n]='\0'
=========或=========
str2[i]='\0'
=========或=========
str2[n]=0
=========或=========
str2[i]=0
=========或=========
*(str2+n)='\0'
=========或=========
*(str2+i)='\0'
=========或=========
*(str+n)=0
=========或=========
*(str2+i)=0
第4题(分)题号:
23
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能是求一个二维数组中每行的最大值和每行
的和。
-------------------------------------------------------*/
#include""
main()
{
inta[5][5],b[5],c[5],i,j,k,s=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=random(40)+20;
for(i=0;i<5;i++)
{
/***********SPACE***********/
k=a[i][0];【?
】;
for(j=0;j<5;j++)
{
/***********SPACE***********/
if(k】;
s=s+a[i][j];
}
b[i]=k;
/***********SPACE***********/
【?
】;
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
/***********SPACE***********/
printf("%5d",【?
】);
printf("%5d%5d",b[i],c[i]);
printf("\n");
}
}
答案:
=======(答案1)=======
s=0
=======(答案2)=======
k=a[i][j]
=======(答案3)=======
c[i]=s
=======(答案4)=======
a[i][j]
五、程序设计共1题(共计6分)
第1题(分)题号:
391
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
编写函数求1~100中奇数的平方和。
结果为166650。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数
main和其它函数中的任何内容,仅在函
数的花括号中填入所编写的若干语句。
------------------------------------------------*/
#include""
floatsum(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
printf("sum=%f\n",sum(100));
yzj();
getch();
}
yzj()
{
FILE*IN,*OUT;
intn;
inti;
floato;
IN=fopen("","r");
if(IN==NULL)
{printf("ReadFileError");
}
OUT=fopen("","w");
if(OUT==NULL)
{printf("WriteFileError");
}
fscanf(IN,"%d",&i);
o=sum(i);
fprintf(OUT,"%f\n",o);
fclose(IN);
fclose(OUT);
}
答案:
----------------------
floats=0;
inti,j;
for(i=1;i<=n;i=i+2)
s=s+i*i;
return(s);
----------------------