10套大学计算机C语言期末考试复习试题及答案Word格式.docx
《10套大学计算机C语言期末考试复习试题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《10套大学计算机C语言期末考试复习试题及答案Word格式.docx(45页珍藏版)》请在冰豆网上搜索。
第6题下列选项中正确的语句组是(D)。
chars[8];
s={"
Beijing"
};
char*s;
s="
;
第7题若变量a,i已正确定义,且i已正确赋值,合法的语句是(C)
a=int(i);
a==1C:
++i;
a=a++=5;
第8题以下字符中不是转义字符的是(C)。
\a'
\b'
C:
\c'
'
\\'
第9题下列定义不正确的是(C)。
#definePI3.141592
#defineS345
intmax(x,y);
{}
staticcharc;
第10题charh,*s=&
h;
可将字符H通过指针存入变量h中的语句是(B).
*s=H;
*s='
H'
s=H;
s='
第11题(1.0分)题号:
690
设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是()。
10101001B:
10101000
11111101D:
01010101
答案:
D
第12题(1.0分)题号:
2381
设以下变量均为int类型,表达式的值不为7的是()
x=y=6,x+y,x+1B:
x=y=6,x+y,y+1
x=6,x+1,y=6,x+yD:
y=6,y+1,x=y,x+1
C
第13题(1.0分)题号:
3124
若有说明inta[3][4];
则对a数组元素的正确引用是().
a[2][4]B:
a[1,3]
a[1+1][0]D:
a
(2)
(1)
第14题(1.0分)题号:
679
在C语言中,形参的缺省存储类是()。
autoB:
register
staticD:
extern
A
第15题(1.0分)题号:
1343
C语言源程序的基本单位是().
过程B:
函数
子程序D:
标识符
B
第16题(1.0分)题号:
3023
C语言程序中必须有的函数是().
#include"
stdio.h"
main
printfD:
scanf
第17题(1.0分)题号:
3228
有定义:
inta=8,b=5,c;
执行语句c=a/b+0.4;
后,c的值为()
1.4B:
1C:
2.0D:
2
第18题(1.0分)题号:
640
以下对二维数组a的正确说明是()。
inta[3][]B:
floata(3,4)
doublea[1][4]D:
floata(3)(4)
第19题(1.0分)题号:
2884
以下标识符中,不能作为合法的C用户定义标识符的是().
answerB:
to
signedD:
_if
第20题(1.0分)题号:
652
在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
整型常量
整型表达式
整型常量或整型表达式
任何类型的表达式
第21题(1.0分)题号:
381
以下标识符中,不能作为合法的C用户定义标识符的是()。
toC:
第22题(1.0分)题号:
2898
已知year为整型变量,不能使表达式(year%4==0&
&
year%100!
=0)||
year%400==0的值为"
真"
的数据是().
1990B:
1992
1996D:
2000
第23题(1.0分)题号:
177
以下描述中,正确的是()。
预处理是指完成宏替换和文件包含中指定的文件的调用
预处理指令只能位于C源文件的开始
C源程序中凡是行首以#标识的控制行都是预处理指令
预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
第24题(1.0分)题号:
156
执行下列语句后的输出为()。
intj=-1;
if(j<
=1)printf("
****\n"
);
elseprintf("
%%%%\n"
****B:
%%%%
%%%%cD:
有错,执行不正确
第25题(1.0分)题号:
2850
以下函数调用语句中实参的个数是().
exce((v1,v2),(v3,v4,v5),v6);
3B:
4C:
5D:
6
第26题(1.0分)题号:
506
以下程序段的输出结果为()。
for(i=4;
i>
1;
i--)
for(j=1;
j<
i;
j++)
putchar('
#'
无B:
######C:
#D:
###
第27题(1.0分)题号:
2830
下列程序的输出结果是().
{intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
case0:
a++;
break;
b++;
case2:
case3:
a=%d,b=%d\n"
a,b);
a=1,b=0B:
a=2,b=1
a=1,b=1D:
a=2,b=2
第28题(1.0分)题号:
573
C语言中运算对象必须是整型的运算符是()。
%=B:
/C:
=D:
〈=
第29题(1.0分)题号:
647
以下能对二维数组a进行正确初始化的语句是()。
inta[2][]={{1,0,1},{5,2,3}};
inta[][3]={{1,2,3},{4,5,6}};
inta[2][4]={{1,2,3},{4,5},{6}};
inta[][3]={{1,0,1}{},{1,1}};
第30题(1.0分)题号:
3135
以下数组定义中不正确的是().
inta[2][3];
intb[][3]={0,1,2,3};
intc[100][100]={0};
intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
三、程序填空共2题(共计24分)
第1题(12.0分)题号:
417
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
利用全局变量计算长方体的体积及三个面的面积。
-------------------------------------------------------*/
ints1,s2,s3;
intvs(inta,intb,intc)
{intv;
/***********SPACE***********/
v=【?
】;
s1=a*b;
/***********SPACE***********/
s2=【?
s3=a*c;
returnv;
{intv,l,w,h;
clrscr();
\ninputlength,widthandheight:
"
scanf("
%d%d%d"
【?
】,&
w,&
h);
v=%ds1=%ds2=%ds3=%d\n"
v,s1,s2,s3);
getch();
=======(答案1)=======
a*b*c
=========或=========
a*b*c
=======(答案2)=======
b*c
b*c
=======(答案3)=======
l
=======(答案4)=======
vs(l,w,h)
vs(l,w,h)
第2题(12.0分)题号:
441
给定程序中函数fun的功能是:
从低位开始取出长
整型变量s中奇数位上的数,依次构成一个新数放在t中。
#include<
conio.h>
stdio.h>
voidfun(longs,long*t)
{longsl=10;
s/=10;
*t=s【?
】10;
while(s>
0)
{s=【?
*t=s%10*sl【?
sl=sl【?
】10;
{longs,t;
clrscr();
\nPleaseenters:
"
%ld"
&
s);
fun(s,&
t);
Theresultis:
%ld\n"
t);
%
s/100
+*t
*
四、程序改错共2题(共计22分)
第1题(11.0分)题号:
383
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
给定程序的功能是:
读入一行英文文本,
将其中每个单词的最后一个字母改成大写,然后
输出此文本行(这里的“单词”是指由空格隔开的
字符串)。
例如,若输入Iamastudenttotake
theexamination.,则应输出"
IaMAstudenTtO
takEthEexamination."
。
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
conio.h"
ctype.h"
string.h"
up1st(char*p)
{
/**********FOUND**********/
integerk=0;
for(;
*p;
p++)
if(k)
{if(*p='
'
)
{k=0;
*(p-1)=toupper(*(p-1);
elseif(*p!
='
)k=1;
*(p-1)=toupper(*(p-1));
main()
{charchrstr[81];
printf("
\nPleaseenterastring:
);
gets(chrstr);
\n\nBeforechanging:
\n%s"
chrstr);
up1st(chrstr);
\nAfterchanging:
intk=0;
{if(*p=='
*(p-1)=toupper(*(p-1));
第2题(11.0分)题号:
431
编写函数fun求1000以内所有8的倍数之和。
不可以增加或删除程序行,也不可以更改程
序的结构。
#include"
#defineN1000
{intsum;
sum=fun(8);
%d以内所有%d的倍数之和为:
N,8,sum);
intfun(intm)
ints=0;
for(i=1;
N;
i++)
if(i/m==0)
s+=i;
returns;
ints=0,i;
for(i=1;
i<
if(i%m==0)
五、程序设计共1题(共计14分)
第1题(14.0分)题号:
390
/*------------------------------------------------
【程序设计】
--------------------------------------------------
求一批数中最大值和最小值的差。
部分源程序给出如下。
请勿改动主函数
main和其它函数中的任何内容,仅在函
数的花括号中填入所编写的若干语句。
------------------------------------------------*/
intmax_min(inta[],intn)
/**********Program**********/
/**********End**********/
#defineN30
stdlib.h"
inta[N],i,k;
for(i=0;
a[i]=random(51)+10;
{printf("
%5d"
a[i]);
if((i+1)%5==0)printf("
\n"
k=max_min(a,N);
theresultis:
k);
yzj();
yzj()
FILE*IN,*OUT;
intn;
inti[30];
into;
IN=fopen("
in.dat"
"
r"
if(IN==NULL)
{printf("
ReadFileError"
OUT=fopen("
out.dat"
w"
if(OUT==NULL)
WriteFileError"
for(n=0;
n<
5;
n++)
{
fscanf(IN,"
%d"
&
i[n]);
o=max_min(i,5);
fprintf(OUT,"
o);
fclose(IN);
fclose(OUT);
----------------------
inti,max,min;
max=min=a[0];
n;
if(a[i]>
max)max=a[i];
elseif(a[i]<
min)min=a[i];
return(max-min);
第1题(1.0分)题号:
第2题(1.0分)题号:
2789
设C语言中,int类型数据占4个字节,则short类型数据占().
1个字节B:
2个字节
4个字节D:
8个字节
第3题(1.0分)题号:
693
以下各选项企图说明一种新的类型名,其中正确的是()。
typedefv1int;
typedefv2=int;
typedefintv3;
typedefv4:
int;
第4题(1.0分)题号:
104
以下运算符中,优先级最高的运算符是()。
||B:
%C:
!
==
第5题(1.0分)题号:
138
以下程序的输出结果是()。
i=1,j=1,k=2
第6题(1.0分)题号:
2907
以下程序段的执行结果是().
doublex;
x=218.82631;
%-6.2e\n"
x);
输出格式描述符的域宽不够,不能输出
输出为21.38e+01
输出为2.2e+02D:
输出为-2.14e2
第7题(1.0分)题号:
152
以下程序的运行结果是()。
{intn;
for(n=1;
=10;
if(n%3==0)continue;
n);
12457810B:
369
12D:
1234567890
第8题(1.0分)题号:
411
下列程序的输出结果为()。
{intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
%f\n"
27.000000B:
27.500000
28.000000D:
28.500000
第9题(1.0分)题号:
584
设有说明:
charw;
intx;
floaty;
doublez;
则表达式w*x+z-y
值的数据类型为()。
floatB:
charC:
intD:
double
第10题(1.0分)题号:
208
下列各m的值中,能使m%3==2&
m%5==3&
m%7==2为真的是()。
8B:
23C:
17D:
2962
若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是().
intp=&
x;
int*p=x;
int*p=&
*p=*x;
3142
以下正确的说法是:
在C语言中().
实参和与其对应的形参各占用