C语言期末复习练习题Word文档下载推荐.docx
《C语言期末复习练习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言期末复习练习题Word文档下载推荐.docx(18页珍藏版)》请在冰点文库上搜索。
![C语言期末复习练习题Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/d07f7e76-b7c7-496b-a4af-0b50ae545d6b/d07f7e76-b7c7-496b-a4af-0b50ae545d6b1.gif)
A)34HB)54HC)24HD)64H
9)若有以下说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='
a'
d,g;
则数值为4的表达式是:
A)a[g-c]B)a[4]C)a['
d'
-'
c'
]D)a['
-c]
10).给出以下定义:
charx[]="
abcdefg"
;
chary[]={'
'
b'
e'
f'
g'
};
则正确的叙述为:
A)数组X和数组Y等价B)数组x和数组Y的长度相同
C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度
11).C语言中规定,if语句的嵌套结构中,else总是与________配对。
A)与最近的if配套B)与第一个if配套
C)按缩进位置相同的if配套D)与最近的且尚未配对的if配套
12).若用数组名作函数参数,则传递的是:
A)数组的首地址B)数组中第一个元素得值
C)数组中全部元素的值D)数组元素的个数
13).当执行以下程序段时________。
x=-1;
do{x=x*x;
}while(!
x);
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
14).一个源文件中定义的外部变量的作用域:
A)本文件的全部范围。
B)本程序的全部范围。
C)本函数的全部范围。
D)从定义该变量的位置开始至本文件结束。
15).C语言规定,调用一个函数,实参与形参间数据传递方式:
A)地址传递B)值传递C)双向传递D)由用户指定传递方式
16).若有说明:
inti,j=7,*p=&
i;
则与i=j;
等价的语句是:
A)i=*p;
B)*p=*&
j;
C)i=&
D)i=**p;
17).下面程序段的运行结果是_________.
char*s="
abcde"
s+=2;
printf("
%d"
s);
A)cdeB)字符'
C)字符'
的地址D)无确定的输出结果
18).设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确的执行的赋值语句是________.
A)c=*p1+*p2;
B)p2=cC)p1=p2D)c=*p1*(*p2);
19).若有说明语句
chara[]="
Itismine"
char*p="
则以下不正确的叙述是________.
A)a+1表示的是字符t的地址
B)p指向另外的字符串时,字符串的长度不受限制
C)p变量中存放的地址值可以改变
D)a中只能存放10个字符
20).设有如下定义:
structsk
{intn;
floatx;
}data,*p;
若要使p指向data中的n域,正确的赋值语句是_______.
A)p=&
data.n;
B)*p=data.n;
C)p=(structsk*)&
D)p=(structsk*)data.n;
21).以下不是c语言规定保留字的是()。
A)floatB)integerC)signedD)unsigned
22).下述程序执行后的输出结果是( )
#include<
stdio.h>
main()
{
intx='
printf("
%c\n"
+(x-'
+1));
A)gB)hC)iD)j
23).设有程序
#include<
{
inti,j;
for(i=0,j=1;
i<
=j+1;
i+=2,j--)
%d\n"
i);
在运行上述程序时,for语句中循环体的执行次数是()
A)3B)23)1D)0
24)、错误的说明语句是:
______
A)charword[]={‘T’,’u’,’r’,’b’,’o’,’\0’};
B)charword[]={“Turbo\0”};
C)charword[]=“Turbo\0”;
D)charword[]=‘Turbo\0’;
25)已知:
intb[5];
则对b数组元素的正确引用是:
_____
A)b[5]B)b[3.5]C)b(3)D)b[10-10]
26)、在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则定义为:
A)AutoB)staticC)externD)register
27).假定a和b为int型变量,则执行下述语句组后,b的值为()。
a=1;
b=10;
do
b-=a;
a++;
}while(b--<
0);
A)9B)-2C)-1D)8
28).在C语言中,以下描述正确的是:
A)函数的定义可以嵌套,但函数的调用不可以
B)函数的定义不可以嵌套,但函数的调用可以
C)函数的定义和调用都不可以嵌套
D)函数的定义和调用均可嵌套
29).下述程序代码中有语法错误的行是()。
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行
30).若已定义
inta[9],*p=a;
并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是()。
A)p+1B)a+1C)a++D)++p
31).若有定义:
inta[2][3],则对a数组的第i行j列元素地址的正确引用为______.
A)*(a[i]+j)B)(a+i)C)*(a+j)D)a[i]+j
32).执行下述程序后的输出结果是()。
voidmain()
{intf(int);
inta=2,i;
for(i=0;
3;
i++)
f(a));
}
intf(inta)
{autointb=0;
staticc=3;
b=b+1;
c=c+1;
return(a+b+c);
A)7910B)789C)799D)788
33).执行下述程序后的输出结果是()。
已知函数scopy的定义如下
voidscopy(char*s,char*t)
while(*s++=*t++);
则该函数的功能是()。
A)串复制B)求串长度C)串比较D)串反向
34).以下对结构体变量stu1中成员age的非法引用是________.
structstudent
{intage;
intnum;
}stu1,*p;
p=&
stu1;
A)stu1.ageB)student.age
C)p->
ageD)(*p).age
35).以下程序for语句循环体中printf语句执行次数是()。
#include<
#defineN2
#defineMN+1
#defineNUM(M+1)*m/2
inti;
for(i=1;
=NUM;
A)5B)6C)8D)9
36).若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是______.
A)"
ab+"
B)"
wb+"
C)"
rb+"
D)"
ab"
二、填空题
1)下面程序的运行结果是:
____
#include“stdio.h”
{intx=23;
{printf(“%d”,x--);
while(!
}
2)若a=1;
b=2;
则问号表达式a>
b?
a:
(b+1)的值是:
___
3)若定义:
charch;
使指针p指向变量ch的定义语句是:
____
通过指针p给变量ch赋值字符A的语句是:
_____
通过指针p输出变量ch中字符的语句是:
4)循环语句for(x=0,y=0;
(y!
=123)&
&
(x<
4);
x++)执行的循环次数是:
___次。
5)fp=fopen(“file1”,”r”)实现的操作是:
6).若x=2,y=3,则x&
y的结果是______.
7)C语言规定标识符只能有____三种字符组成,且第一个字符必须为__
8)假设m是一个三位数,从右到左用a、b、c表示各位数字,则从左到右各个数字是bac的三位数的表达式是:
3)main()
{printf(“*%f,%4.3f*”,3.14,3.1415);
}输出结果:
_____
5)设有数组定义:
chararray[]="
China"
则数组array所占的空间为:
______个字节
三、程序阅读题
1.以下程序的输出结果是___________。
main()
{inti=010,j=10,k=0x10;
printf(“%d,%d,%d\n”,i,j,k);
2.写出以下程序的功能。
#include<
{inta,b,s;
scanf("
%d%d"
&
a,&
b);
s=a-b;
if(a<
b)s=b-a;
3.以下程序的运行结果是。
voidf(inta[])
{inti=0;
while(a[i]<
=10)
{printf("
%3d"
a[i]);
i++;
{inta[]={12,5,10,9,13,4};
f(a+2);
4.写出以下函数的功能。
intf(char*s)
{char*p=s;
while(*p!
='
\0'
)p++;
return(p-s);
5.下面程序的运行结果是:
#include“stdio.h”
{chara[]=“Program”,*p;
for(p=a;
p<
a+7;
p+=2)
putchar(*p);
6.以下程序的运行结果是________.
structn{
intx;
charc;
};
{structna={10,'
x'
func(a);
%d,%c"
a.x,a.c);
func(structnb)
{b.x=20;
b.c='
y'
7.以下程序输出的结果是________。
{intn;
for(n=1;
n<
=10;
n++)
{if(n%2)continue;
printf("
%d\t"
n);
}
8.阅读以下函数,写出此函数的功能。
floatfun1(floata[],intn)
{inti=1;
floatresult=a[0];
for(;
i<
n;
i++)
if(result>
a[i])result=a[i];
returnresult;
9.以下程序的运行结果是。
inta=8,b=5;
intmax(inta,intb)
{intc;
c=a>
a:
b;
return(c);
{inta=2;
max(a,b));
10.运行以下程序,若输入:
57<
时,写出程序的输出结果。
voidfun(int*p1,int*p2)
{intt;
t=*p1;
*p1=*p2;
*p2=t;
{intx,y;
int*p1,*p2;
%d%d"
p1=&
x;
p2=&
y;
if(x<
y)fun(p1,p2);
x=%d,y=%d"
x,y);
11.写出以下函数的功能。
{inta[5]={1,5,2,4,3},i,j,t;
for(j=1;
j<
=4;
j++)
=4-j;
if(a[i]<
a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
5;
i++)printf("
12.下面程序的运行结果是___________.
{structcmplx{intx;
inty;
}cnum[2]={1,3,2,7};
cnum[0].y/cnum[0].x*cnum[1].x);
四、程序填空
1)以下函数从数组a[n]中查找最大值并把该最大值作为函数的返回值。
findmax(inta[],intn)
{int*p,*s;
for(p=a,s=a;
p-a<
10;
p++)
if()s=p;
return(*s);
2)有以下程序段:
s=1.0;
for(k=1;
k<
=n;
k++)
s=s+1.0/(k*(k+1));
printf(“%f\n”,s);
请填空,使下面程序段的功能完全与之等同。
s=0.0;
;
k=0;
do{s=s+d;
③;
d=1.0/(k*(k+1));
while(④);
3).以下程序用来求数组全部元素的和,请填写缺少的语句。
voidmain()
{inta[]={0,1,2,3,4,5,6,7,8,9};
ints=0,i,*p;
p=;
10;
i++);
sum=%d"
s);
4)以下程序的功能是求出输入整数的个位数、十位数和百位数(1000以下的正整数)。
请填空。
{intx,a,b,c;
do{printf("
输入一个1000以下的正整数:
"
);
;
\n"
}while();
0)x=-x;
a=x/100;
b=(x-a*100)/10;
c=;
%d的个位数是%d,十位数是%d,千位数是%d\n"
x,c,b,a);
5)以下函数的功能是返回b的e次幂。
例如,intPow(2,3)的值为2*2*2。
假定e是非0整数,b是整数。
intintPow(intb,inte)
{intresult,n;
for(n=0;
e;
returnresult;
五、编程题
1.下面的程序是用选择法对数组中10个整数按由小到大排序。
请定义该程序中的sort函数。
{voidsort(intarray[],intn);
inta[10],i;
printf(″enterthearray\n″);
for(i=0;
i<10;
i++=
scanf(″%d″,&a[i]);
sort(a,10);
printf(″thesortedarray∶\n″);
printf(″%d″,a[i]);
printf(″\n″);
}
/*sort函数的定义*/
2.有一个一维数组,内放10个学生成绩,下面的程序是求出并显示数组的平均分、最高分和最低分的。
请定义该程序中的average函数。
floatMax=0,Min=0;
/*全局变量*/
{floataverage(floatarray[],intn);
floatave,score[10];
inti;
for(i=0;
i++)
scanf(″%f″,&score[i]);
ave=average(score,10);
printf(“max=%6.2f\nmin=%6.2f\n
average=%6.2f\n“,Max,Min,ave);
/*average函数的定义*/
3.计算个人所得税,月收入的5000元以上部分征20%,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。
例如,小张月收入为6000元,则她需缴税(6000-5000)×
20%+(5000-800)×
3%=326元。
编程,要求输入个人应发工资,计算并输出个人所得税。
4.编程实现:
13个人围成一圈,从第1个人开始顺序报号1、2、3。
凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。
复习题所涉及的知识点大家一定要好好掌握。
还有平时作业补充的那些编程题。
考试时间:
17周星期五