77范文网 - 专业文章范例文档资料分享平台

对口升学 职高 二年级C语言期末试卷

来源:网络收集 时间:2020-06-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

对口升学二年级2014年6月

C语言期末 试题(总分130分)

班级:__________ 姓名:__________

一、单选题(每小题3分,共45分)

1. C语言中函数返回值的类型是由( )决定。

A)return 语句的表达式类型 B)调用函数的主调函数类型 C)调用函数时临时 D) 定义函数时所指定的函数类型 2. 变量的指针,其含义是指该变量的( ) 。

A)值 B)地址 C)名 D)一个标志 3. 以下程序运行后的输出结果为( )。 int *f(int *x, int *y)

{ if(*x<*y) return x; else return y; } main()

{ int a=7,b=8,*p,*q,*r; p=&a, q=&b; r=f(p,q); printf(\

A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8 4. 以下函数定义正确的是: ( ) 。

A) double fun(int x, int y) B) double fun(int x; int y) C) double fun(int x, int y) ; D) double fun(int x , y)

5. C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是:( ) 。

A)地址传递; B)单向值传递; C)双向值传递; D)由用户指定传递方式 6. 以下正确的函数形式是: ( ) 。

A)double fun(int x,int y) B) fun (int x,y) {z=x+y;return z;} {int z;return z;}

C) fun(x,y) D) double fun(int x,int y)

第1页——共8页 {int x,y; double z; {double z; z=x+y; return z;} z=x+y; return z;}

7. 设已有定义: int a[10]={15,12,7,31,47,20,16,28,13,19},*p; 下列语句中正确的是( ) A) for(p=a;a<(p+10);a++); B) for(p=a;p<(a+10);p++); C) for(p=a,a=a+10;p

8.若有 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; 则b中的值是( ) A)5 B)6 C)8 D)9 9. 有如下程序

int func(int a,int b) { return(a+b);} main( )

{ int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%d\\n”,r); }

该程序的输出的结果是 ( ) 。

A) 12 B) 13 C) 14 D) 15 10. 若有说明:int *p,m=5,n;以下正确的程序段是( ) 。

A)p=&n; scanf(“%d”,&p); B) p=&n; scanf(“%d”,*p);

C) scanf(“%d”,&n); *p=n; D) p=&n; *p=m;

11. 在16位编译系统下(int型2个字节),若有定义:int a[10],*p=a+5;且a数组中首元素的地址值为0xff20,则元p[-3]的地址值和元素p[3]地址值分别是 ( ) 。

A)0xff1a 和 0xff26 B)0xff24 和0xff2a C)0xff24 和 0xff30 D)0xff22 和0xff30

12. 在16位编译系统上,若有定义int a[]={10,20,30}, *p=&a; 当执行p++;后,下列说法错误的是( )

A)p向高地址移了一个字节

第2页——共8页

B)p向高地址移了一个存储单元 C)p向高地址移了两个字节 D)p与a+1等价

13. 已有定义int k=2, *ptr1,*ptr2; 且ptr1和ptr2均已指向同一个变量k,下面不正确执行的

二、程序填空题(每空5分,共25分)

1. 下面的程序用来将一个十进制正整数转化成八进制数,例如输入一个正整数25,则输出31,请将程序补充完整。

赋值语句是: ( ) 。

A) k=*ptr1+*ptr2 ; B) ptr2=k; C) ptr1=ptr2; D)k=*ptr1*(*ptr2); 14. 有以下程序

main()

{ int x[8]={8,7,6,5,0,0},*s; s=x+3;

printf(\}

执行后输出结果是 ( ) 。

A) 随机值 B) 0 C) 5 D) 6 15.下面程序的正确运行结果是: ( ) 。 main( ) { int a=2, i;

for(i=0;i<3;i++) printf(“M”,f(a) ); } int f( int a)

{ int b=0; static int c=3; b++; c++; return (a+b+c);}

A) 7 7 7 B) 7 10 13 C) 7 9 11 D) 7 8 9

第3页——共8页 #include main()

void sub(int c, int d[])

int i=0,j=0,a,b[10]={0};

printf(\ scanf(\ sub(a,b); for(;i<10;i++)

{ if( (1) ) j++; if(j!=0) printf(\ } }

void sub(int c, int d[]) { int e, i=9;

while(c!=0)

{ e=c%8; d[i]=e;

(2) ; i--; } return; }

2. 用指针方法编写一个程序,输入3个整数,将它们按由小到大的顺序输出 #include

void swap ( (1) , int *pb) { int temp;

temp = *pa; *pa = *pb; (2) ;

第4页——共8页

{

} void main() { int a,b,c,temp;

scanf(\ if(a>b) swap( (3) ,&b); if(b>c) swap(&b,&c); if(a>c) swap(&a,&c); printf(\

}

三、程序分析题,写出下列程序的运行结果(每小题5分,共20分)

1. #include void fun(int *s, int m, int n) { int t; while(m

{t=s[m]; s[m]=s[n]; s[n]=t; m++; n--;} } main()

{ int a[5]={1,2,3,4,5},k ; fun(a,0,4);

for(k=0;k<5;k++) printf(\ \}

2. main( )

{ char str[ ]={“a1b2c3d4e5”},i,s=0; for(i=0;str[i]!=?\\0?;i++) if(str[i]>=?a?&&str[i]<=?z?) printf(“%c\\n”,str[i]); printf(“\\n”);

第5页——共8页 }

3. void fun (int i ,int j)

{ int x=7;

printf(“i=%d; j=%d; x=%d\\n”, i, j, x) ;} main( )

{ int i=2, x=5, j=7; fun (j,6);

printf(“i=%d; j=%d; x=%d\\n”, i, j, x ) ; }

4. #include

int fun(int x) { int y;

if(x==0||x==1) return(3); y=x*x-fun(x-2) ; return y; } main() { int x,y;

x=fun(3); y=fun(4); printf(\ }

5. main ( ) { int i, j; int *p,*q; i=2; j=10; p=&i; q=&j; *p=10; *q=2;

printf(\ }

第6页——共8页

四、程序改错题(现有4处错误,请在写出错误语句,并写出完整的正确语句。 每处错误5分,错误之处已标记,请改正,共20分)

求方程ax2+bx+c=0的根,用三个函数分别求b2-4ac大于零、等于零和小于零时的{ X1=(-b+sqrt(Disc))/(2*a); X2=(-b-sqrt(Disc))/(2*a); }

根。

#include #include float X1,X2,Disc,Re,Im; void main() { int f1(float,float); void f2(float,float); void f3(float,float); float a,b,c;

printf(\ scanf(\ Disc=b*b-4*a*c; if(Disc= =0) { f1(a,b);

printf(\ }

else if(fabs(Disc)<1e-6) { f3(a,b);

printf(\

else { f2(a,b);

printf(\

}

/* b2-4ac大于零函数f1*/ void f1(float a,float b)

第7页——共8页 /* b2-4ac等于零函数f2*/ void f2(float a,float b) { X1=(-b)/(2a); }

/*b2-4ac小于零函数f3*/ void f3( a, b) { Re=(-b)/(2*a); Im=sqrt(-Disc)/(2*a); }

五、程序设计题(15分)

下面findmax函数将计算数组中的最大元素及其下标值和地址值,请编写*findmax()函数。

#include

int *findmax (int *s ,int t , int *k ) {

} int main()

{ int a[10]={12,23,34,45,56,67,78,89,11,22}; int k, *add; add=findmax(a,10,&k);

printf(“%d,%d,%o\\n”,a[k],k,add);}

第8页——共8页

}

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库对口升学 职高 二年级C语言期末试卷在线全文阅读。

对口升学 职高 二年级C语言期末试卷.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1088401.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: