C语言程序设计A形成性考核作业三Word文档格式.docx
《C语言程序设计A形成性考核作业三Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计A形成性考核作业三Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
B.int*p=callo(10;
C.int*p=calloc(10,4);
D.int*p=malloc(10);
11.假定变量m定义为“intm=7;
”,则定义p的正确语句为()。
A.intp=&
m;
B.int*p=&
C.int&
p=*m;
D.int*p=m;
12.假定k是一个double类型的变量,则定义指向k的变量p的正确语句为()。
A.doublep=&
k;
B.double*p=&
C.double&
p=*k;
D.char*p=”Thankyou!
”;
13.假定一条定义语句为“inta[10],x,*pa=a;
”,若要把数组a中下标为3的元素赋值给x,则不正确的语句为()。
A.x=pa[3];
B.x=*(a+3);
C.a=a[3];
D.x=*pa+3;
14.假定有定义“intb[10];
int*pb;
”,则不正确的赋值语句为()。
A.pb=b;
B.pb=&
b[0];
C.pb=b+2;
D.pb=b[5];
15.假定指针变量p定义为“int*p=newint(100);
”,要释放p所指向的动态内存,应使用语句()。
A.delete[p];
B.delete*p;
C.delete&
p;
D.delete[]p;
16.假定指针变量p定义为“int*p=calloc(30,sizeof(int));
B.deldete(p);
C.free[]p;
D.free(p);
二、填空题
1.在C语言中,一个函数由函数头和__________组成。
2.在函数外定义的变量称为全局变量,若没有被初始化则系统隐含对它所赋的初值为_________。
3.如果一个函数只允许同一程序文件中的函数调用,则应在访函数定义前加上的C保留字为为___________。
4.如果一个函数直接或间接地调用自身,这样的调用被称为_________调用。
5.调用系统函数时,要先使用#include命令包含该函数的原型语句所在________文件。
6.函数形参的作用域是该函数的_________。
7.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为_________。
8.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为___________。
9.假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p++);
”语句后,p所指对象的值为__________。
10.假定a是一个指针数组,则a+1所指对象的地址比a地址大________字节。
11.若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为_____________。
12.假定一个数据对象为int*类型,则指向该对象的指针类型为__________。
13.假定p是一个指向整数对象的指针,则用_________表示指针变量p的地址。
14.若p指向x,则________与x的等价的。
15.NULL是一个符号常量,通常作为空指针值,它值为_________。
三、写出下列每个程序运行后的输出结果
1.#include<
stdio.h>
voidSB(charch){
switch(ch){
case'
A'
:
a'
printf("
WW"
);
break;
B'
b'
GG"
C'
c'
PP"
default:
BB"
}
voidmain(){
chara1='
a2='
a3='
f'
;
SB(a1);
SB(a2);
SB(a3);
SB('
\n"
输出结果为:
2.#include<
#include<
stdlib.h>
doubleSD(inta,intb,charop){
doublex;
switch(op){
+'
x=a+b;
-'
x=a-b;
*'
x=a*b;
/'
if(b)x=(double)a/b;
elseexit
(1);
{("
运算符错!
exit
(1);
returnx;
intx=20,y=8;
%3.2lf"
SD(x,y,'
));
}
3.#include<
voidWF(intx,inty){
x=x+y;
y=x+y;
subs:
x,y=%d,%d\n"
x,y);
intx=18,y=23;
main:
WF(x,y);
x=2*x;
4.#include<
string.h>
voidfun(charss[]);
chars[15]="
"
fun(s);
%s\n"
s);
voidfun(charss[]){
inti,n=strlen(ss);
for(i=0;
i<
n/2;
i++){
charc=ss[i];
ss[i]=ss[n-1-i];
ss[n-1-i]=c;
5.#include<
voidInsertSort(inta[],intn)
{
inti,j,x;
for(i=1;
n;
i++){//进行n次循环
x=a[i];
for(j=i-1;
j>
=0;
j--)//为x顺序向前寻找合适的插入位置
if(x>
a[j])a[j+1]=a[j];
elsebreak;
a[j+1]=x;
voidmain()
inti;
inta[6]={20,15,32,47,36,28};
InsertSort(a,6);
6;
i++)printf("
%d"
a[i]);
6.#include<
inta[8]={3,5,7,9,11,13,15,17};
inti,*p=a;
8;
i++){;
%5d"
*p++);
if((i+1)%4==0)printf("
7.#include<
intLA(int*a,intn){
inti,s=0;
i++)
s+=a[i];
returns;
inta[]={5,10,15,20,25,30};
intb=LA(a,4);
intc=LA(a+2,3);
%d%d\n"
b,c);
8.#include<
intLB(int*a,intn){
inti,s=1;
i++)s*=*a++;
inta[]={1,2,3,4,2,4,5,2};
intb=LB(a,4)+LB(&
a[3],4);
b=%d\n"
b);
四、写出下列每个函数的功能
intWB(inta[],intn,intx){
for(inti=0;
if(a[i]==x)return1;
return0;
函数功能为:
intWC(inta[],intn,intk){
intc=0;
if(a[i]>
=k)c++;
returnc;
time.h>
constintN=10;
intff(intx,inty){
intz;
%d+%d="
scanf("
%d"
&
z);
if(x+y==z)return1;
elsereturn0;
inti,a,b,c=0;
srand(time(0));
//初始化随机数系列
N;
a=rand()%20+1;
//rand90函数产生0-32767之间的一个随机数b=rand()%20+1;
c+=ff(a,b);
得分:
%d\n"
c*10);
4.intfun6(intm,intn,intb=2)
if(m<
b&
&
n<
b)returnm*n;
elseif(m%b==0&
n%b==0)returnb*fun6(m/b,n/b,b);
elsereturnfun6(m,n,++b);
voidLI(intn){
int*a=(int*)malloc(n*sizeof(int));
i++)scanf("
a+i);
for(i=n-1;
i>
i--)printf("
*(a+i));
free(a);
intLK(doublea[],intn){
doubles=0;
inti,m=0;
i++)s+=a[i];
s/=n;
i++)if(a[i]>
=s)m++;
returnm;