《C程序设计》样卷2Word文件下载.docx
《《C程序设计》样卷2Word文件下载.docx》由会员分享,可在线阅读,更多相关《《C程序设计》样卷2Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
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的值为()。
a=1;
b=10;
b-=a;
a++;
}while(b--<
0);
(A)9(B)-2(C)-1(D)8
7.设有变量说明语句
inta=1,b=0;
则执行以下程序段的输出结果为()。
switch(a)
case1:
switch(b)
case0:
printf("
**0**"
break;
**1**"
case2:
**2**"
\n"
(A)**0**(B)**0****2**(C)**0****1****2**(D)有语法错误
8.以下合法的数组说明是()。
(A)chara[6]="
string"
(B)inta[5]={0,1,2,3,4,5};
(C)chara="
(D)INTa[]={0,12,3,4,5};
9.下述程序代码中有语法错误的行是()。
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]地址的表达式是()。
(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);
则输出结果是()。
(A)10,10(B)10,20(C)20,10(D)20,20
12.执行下述程序后的输出结果是()。
#include<
func(inta)
intb=0;
staticintc=3;
a=c++,b++;
return(a);
inta=2,i,k;
2;
i++)
k=func(a++);
k);
(A)3(B)0(C)5(D)4
13.执行下述程序的输出结果是()。
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.读下面的程序,正确的输出结果是()。
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.执行下述程序的输出结果是()。
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.执行下述程序的输出是()。
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.执行下述程序的输出结果是()。
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
且程序正常执行完毕。
那么,该程序所实现的功能是()。
(A)将文件xyz.fil的内容复制到文件abc.fil
(B)将文件abc.fil的内容复制到文件夹xyz.fil
(C)读取文件xyz.fil的内容并在屏幕上显示出来
(D)读取文件abc.fil的内容并在屏幕上显示出来
20.以下程序for语句循环体中printf语句执行次数是()。
#defineN2
#defineMN+1
#defineNUM(M+1)*m/2
inti;
for(i=1;
=NUM;
(A)5(B)6(C)8(D)9
解答:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
二、程序阅读题
1.以下程序输出的结果是________。
#include<
voidmain()
{intn;
for(n=1;
n<
=10;
n++)
{if(n%2)continue;
printf("
%d\t"
n);
}
}
2,4,6,8,10
2.阅读以下函数,写出此函数的功能。
floatfun1(floata[],intn)
{inti=1;
floatresult=a[0];
for(;
i<
n;
i++)
if(result>
a[i])result=a[i];
returnresult;
求具有n个元素的float数组中的最小元素值,并返回该值。
3.以下程序的运行结果是。
inta=8,b=5;
intmax(inta,intb)
{intc;
c=a>
b?
a:
return(c);
{inta=2;
max(a,b));
4.运行以下程序,若输入:
57<
回车>
时,写出程序的输出结果。
voidfun(int*p1,int*p2)
{intt;
t=*p1;
*p1=*p2;
*p2=t;
{intx,y;
int*p1,*p2;
scanf("
%d%d"
&
x,&
y);
p1=&
x;
p2=&
y;
if(x<
y)fun(p1,p2);
x=%d,y=%d"
x,y);
x=7,y=5
5.写出以下程序的功能。
{inta[5]={1,5,2,4,3},i,j,t;
for(j=1;
j<
=4;
j++)
for(i=0;
=4-j;
if(a[i]<
a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
5;
i++)printf("
a[i]);
}
对数组元素按从大到小进行排序
三、程序填空题
1.以下函数的功能是返回b的e次幂。
例如,intPow(2,3)的值为2*2*2。
假定e是非0整数,b是整数。
请填空。
intintPow(intb,inte)
{intresult,n;
(1)
for(n=0;
e;
(2);
returnresult;
2.以下程序的功能是求出输入整数的个位数、十位数和百位数(1000以下的正整数)。
{intx,a,b,c;
do{printf("
输入一个1000以下的正整数:
"
(3);
}while((4));
0)x=-x;
a=x/100;
b=(x-a*100)/10;
c=(5);
%d的个位数是%d,十位数是%d,千位数是%d\n"
x,c,b,a);
四、编程题
1.计算个人所得税,月收入的5000元以上部分征20%,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。
例如,小张月收入为6000元,则她需缴税(6000-5000)×
20%+(5000-800)×
3%=326元。
编程,要求输入个人应发工资,计算并输出个人所得税。
解:
2、编写程序,从键盘输入一个字符序列(以字符'
#'
作为结束标志),将其中的英文小写字母全部转换成相应的英文大写字母,逐个字符写入一个名为test.dat的磁盘文本文件以保存。
然后,从该文件中读取所存入的字符序列,将它们输出在显示屏上。
请填空完善程序。
FILE*fp;
charstr[80];
inti=0;
if((fp=fopen("
test.dat"
"
))==NULL)
Can'
topenthisfile!
Enterastring,'
toend:
\n"
gets(str);
while(str[i]!
=______)
fputc((str[i]>
='
&
str[i]<
z'
)?
:
str[i],_________);
____________________;
fclose(fp);
fp=fopen("
text.dat"
___(str,strlen(str)+1,fp);
%s\n"
str);