《C语言》期末考试模拟复习题一含答案文档格式.docx
- 文档编号:20629590
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:14
- 大小:20.55KB
《C语言》期末考试模拟复习题一含答案文档格式.docx
《《C语言》期末考试模拟复习题一含答案文档格式.docx》由会员分享,可在线阅读,更多相关《《C语言》期末考试模拟复习题一含答案文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
5.在下述选项时,没有构成死循环的程序是(C)
(A)inti=100
while
(1)
{
i=i%100+1;
if(i>
100)
break;
(B)for(;
);
(C)intk=1000;
do
++k;
}while(k>
=10000);
(D)ints=36;
while(s);
--s;
6.假定a和b为int型变量,则执行下述语句组后,b的值为(D)。
a=1;
b=10;
do
b-=a;
a++;
}while(b--<
0);
(A)9
(B)-2
(C)-1
(D)8
7.设有变量说明语句
int
a=1,b=0;
则执行以下程序段的输出结果为(B)。
switch
(a)
case1:
switch
(b)
case0:
**0**"
break;
**1**"
}
case2:
**2**"
\n"
(A)**0**
(B)**0****2**
(C)**0****1****2**
(D)有语法错误
8.以下合法的数组说明是(D)。
(A)chara[6]="
string"
(B)inta[5]={0,1,2,3,4,5};
(C)chara="
(D)INTa[]={0,12,3,4,5};
9.下述程序代码中有语法错误的行是(D)。
inti,ia[10],ib[10];
/*第一行*/
for(i=0;
=9;
i++)
/*第2行*/
ia[i]=0;
/*第3行*/
ib=ia;
/第4行*/
(A)第1行
(B)第2行
(C)第3行
(D)第4行
10.若已定义
inta[9],*p=a;
并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是(C)。
(A)p+1
(B)a+1
(C)a++
(D)++p
11.若有下述说明和语句
int**pp,*p,a=10,b=20;
pp=&
p;
p=&
a;
b;
%d,%d\n"
*p,**pp);
则输出结果是(D
)。
(A)10,10
(B)10,20
(C)20,10
(D)20,20
12.执行下述程序后的输出结果是(D)。
func(inta)
intb=0;
staticintc=3;
a=c++,b++;
return(a);
main()
inta=2,i,k;
2;
i++)
k=func(a++);
k);
(B)0
(C)5
(D)4
13.执行下述程序的输出结果是(
A)。
intaa[3][3]={{2},{4},{6}};
inti,*p=&
aa[0][0];
if(i==0)
aa[i][i+1]=*p+1;
else
++p;
%d"
*p);
(A)23
(B)26
(C)33
(D)36
14.读下面的程序,正确的输出结果是(
D
#include
<
staticinta=50;
f1(inta)
%d,"
a+=10);
f2(void)
a+=3);
inta=10;
f1(a);
f2();
a);
(A)60,63,60
(B)20,23,23
(C)20,13,10(D)20,53,10
15.执行下述程序的输出结果是(A)。
intpower(intx,inty);
floata=2.6,b=3.4;
intp;
p=power((int)a,(int)b);
p);
intpower(intx,inty)
inti,p=1;
for(i=y;
i>
0;
i--)
p=p*x;
return(p);
(A)8
(B)9
(C)27
(D)81
16.已知函数scopy的定义如下
voidscopy(char*s,char*t)
while(*s++=*t++);
则该函数的功能是(
(A)串复制
(B)求串长度
(C)串比较
(D)串反向
17.执行下述程序的输出是(B
structcomplex
intre;
intim;
};
structcomplexcp[3]={2,5,4,7};
cp[2].re=cp[0].re+cp[1].re;
cp[2].im=im=cp[0].im+cp[1].im;
%d%d\n"
cp[2].re,cp[2].im;
(A)711
(B)612
(C)99
(D)126
18.执行下述程序的输出结果是(A
union
intk;
chari[2];
}
*s,a;
s=&
s->
i[0]=0x39;
i[1]=0x38;
%x\n"
s->
k);
(A)3839
(B)3938
(C)380039
(D)390038
19.有以下程序
/*filename:
file.c*/
stdlib.h>
main(intargc,char*argv[])
FILE*fp1,*fp2;
if(argc<
3)
Usage:
filefilename1filename2\n"
exit(0);
fp1=fopen(argv[1],"
r"
fp2=fopen(argv[2],"
w"
while(!
feof(fp1))
fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
若在DOS提示符下输入如下的命令行
fileabc.filxyz.fil
且程序正常执行完毕。
那么,该程序所实现的功能是(
B
(A)将文件xyz.fil的内容复制到文件abc.fil
(B)将文件abc.fil的内容复制到文件夹xyz.fil
(C)读取文件xyz.fil的内容并在屏幕上显示出来
(D)读取文件abc.fil的内容并在屏幕上显示出来
20.以下程序for语句循环体中printf语句执行次数是(C
#defineN2
#defineMN+1
#defineNUM(M+1)*m/2
inti;
for(i=1;
=NUM;
(A)5
(B)6
(C)8
(D)9
二、填充题(每空2分,共30分)
1.设有变量说明语句
intx=1,y=2;
则执行下述printf语句的输出结果是______1.000000_______。
%f\n"
1.0+x/y);
2.执行下述程序
intx,y;
scanf("
%2d%*2s%1d"
&
s,&
y);
x+y);
若从键盘输入
12345671
则程序的输出结果是____17________。
3.以下程序的功能是:
从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。
请填空。
#include<
floatx,amax,amin;
scanf("
%f"
x);
amax=x;
amin=x;
while(____x>
0.0(或x>
0)________)
if(x>
amax)
elseif(x<
amin)
%f'
\namax=%f\namin=%f\n"
amax,amin);
4.设n是整型变量,且已具有某正整数值。
根据下述数学式求s的值并输出。
可编写如下之程序段实现之。
doubles,d;
s=0.0;
d=1.0;
K=0;
s=s+d;
____k++(或k=k+1或++k等)__________;
d=1.0/(k*(k+1));
}while(k<
=n);
s);
5.执行下述程序的输出结果是_____-3-40443______。
#inclued<
inta[6],i;
6;
a[i]=9*(i-2+4*(i>
3))%5;
%3d"
a[i]);
6.执行下述程序时的输出结果是__________6__________。
inta[]={2,4,6,},*ptr=&
a[0],x=8,y,z;
for(y=0;
y<
3;
y++)
z=(*(ptr+y)<
x)?
*(ptr+y):
x;
z);
7.执行下述程序的输出结果是_____60__________。
inta[][2]={10,20,30,40,50,60},(*p)[2];
p=a;
*(*(p+2)+1));
8.执行以下程序的输出结果是____10_______。
ints,i,sum();
for(i=1;
=10;
s=sum(i);
s=%d\n"
sum(intk)
intx=0;
return(x+=k);
9.下述函数定义用来求出两个整数之各,并通过函数的模拟传地址调用,传回两整数相加之和值,请填空。
voidadd(intx,inty,____int*z___)
*z=x+y;
10.函数func的功能是将整型变量x的值转换成二进制数,并将该二进制数的每一位存入由整型指针b所指向的一维数组a,最低位存放于a[0]中,次低位存放于a[1]中,依此类推。
voidfunc(intx,int*b)
intr;
r=x%2;
_____*b++________=r;
x/=2;
}while(x);
11.以下程序中函数invert实现将数组内所有数组元素的值逆置。
比如,执行本程序将输出
10
9
8
7
6
5
4
3
2
1
inta[10]={1,2,3,4,5,6,7,8,9,10},i,n=10;
invert(a,n-1);
for(i=0;
10;
%3d'
inver(int*s,intnum)
int*t,k;
t=s+num;
while(____s<
t(或s<
=t)________)
k=*s;
*s=*t;
*t=k;
s++;
t--;
12.若有以下定义和说明,则结构体变量w在内存中所占的字节数是______34______。
unionaa
floatx;
floaty;
charc[6];
structst
unionaav;
floatw[5];
doubleave;
}w;
13.执行下述程序的输出结果是______95.0,Li________。
structstr
char*y;
}*m;
structstrgroup[3]={
95.0,"
Li"
82.5,"
Wang"
73.5,"
Sun"
};
m=grogp;
%.lf,%s\n"
m->
x,m->
14.下面的程序用来统计某文件文件中字符的个数。
FILE*fp;
longnum=0;
if((fp=fopen("
fnam.dat"
"
))==NULL)
Can'
topenthisfile!
while(____!
feop(fp)
(或feop(fp)==0)______)
fgetc(fp);
num++;
num=%d\n"
unm);
fclose(fp);
15.执行下述程序后,输出结果为_____29_________。
#defineFUN1(a,b)a+b
#defineFUN2(a,b)a-b
#defineCAL(a,b)a*b+a+3
CAL(FUN(3,5),FUN(4,5)));
三、程序分析题(每题5分,共30分)
1.阅读程序,写出执行该程序的输出结果。
chars[]="
pressakey."
inti;
charch;
(ch=s[i]!
='
\0'
switch(ch)
case'
p'
:
k'
putchar(ch-32);
continue;
'
putchar('
*'
.'
!
default:
putchar(ch);
\n'
答案:
press*
A*
Key!
2.阅读程序,写出执行该程序的输出结果。
#defineN5
inti,j;
inta[N][N];
N;
for(j=0;
j<
j++)
=j)
|
a[i][j]=1;
a[i][j]=a[i][j-1]+1;
for(j=0;
a[i][j]);
12345
11234
11123
11112
11111
3.阅读程序,写出执行该程序的输出结果
intm[5],n[5],*px,*py,ki;
px=m;
py=n;
for
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 语言 期末考试 模拟 复习题 答案