历年C语言期末考试试题1.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《历年C语言期末考试试题1.pdf》由会员分享,可在线阅读,更多相关《历年C语言期末考试试题1.pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、历年C语言期末考试试题C语言试题1一 填 空 题(1 5分)1 .设x的值为1 5,n的值为2,则表达式x%=(n+=3)运算后,x的 值 为()。2.设i nt a=7,b=9,t;执行完表达式t=(a b)?a:b后,t的 值 是()。3 .下面程序段的输出结果是()。i nt a=1 2 34;a=a&0 37 7;p r i nt f(s%d%o n”,a,a);4 .a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。c h a r a 3;5 .设有以下宏定义,则执行赋值语句a=P P*2 0;(a为i nt型变量)后,a的 值 是()。#d efi ne P R 8 0#
2、d efi ne P P P R+40 36.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:()、()和()。7 .在C文件中,数据存在的两种代码形式是()和()o8 .C语言中调用()函数打开文件,调 用()函数关闭文件,调 用()函数可实现文件的随机读写。9 .若有 i nt a 3=1 0,1 2,30 ;则 a+1 是()的地址,*(a+2)=(9二 判断对错(5分,对的划“小,错的划“X”1 .在T u r b o C中,整型数据在内存中占2个字节。()2 .表达式1/4+2.7 5的值是3。()3 .结构体类型只有一种。()4 .函数若无返回值,则它一定无形参。()5
3、 .C语言只能处理文本文件和二进制文件。()三 选 择 题(20分)1 .设 i nt a=1 2;表达式 a+=a-=a*=a 的 值 是()。A 1 2 B M 4 C 0 D 1 322 .以下程序的输出结果是()。ma i n()i nt a=0 1 1;p r i nt f(t t%d n,+a);)A 1 2 B 1 1 C 1 0 D 93 .以下程序的输出结果是()。#d efi ne A D D(x)(x)+(x)ma i n()i nt a=4,b=6,c=7,d=ADD(a+b)*c;p r i nt fCn B pn+C fp).n+D+Fp-n9.要打开一个已存在的非
4、空文件“file”用于修改,选择正确的语句()oA fp=fopen(,file,;,ru);B=fopen(ufile;uwu);C f)=fopen(ufilen;,r+,);D f)=fopen(nfile,uw+);四写出下列程序的运行结果。(28分)1.main()int 6=10,6,23,-90,0,3,i;invert(a,0,5);for(i=0;i6;i+)printf(u%d/afi);printf(ttnn);)invert(int*s,int i,int j)int tif(ij)invert(s,i+lj-l);t=*(s+i);*(s+i)=*(s+j);*(s+
5、j)=t;)2.fl(int a)int b=0;static int c=3;b+=l;C+;retum(a+b+c);)main()int a=l,i;char sll 0=*java,s2 10J=44basicv,sl 0;for(i=0;i3;i+)printf(n%d;fl(a);printf(n”);if(strcmp(sl,s2)strcpy(s,sl);puts(s);printf(44%d,%sn,strlen(s2),strcat(s2,s 1);)3.#define MAX 100main()int(MAXJ,i,j,k=2,m=5;for(i=0;i=m;i+)fi=
6、1;fk-l=2;for(i=k;i=m;i4-+)for(j=i-k;j=i-l;j+)fi+=fQ;printf(%d%5d%5dn,k,m,fm);五阅读下列程序,在 处填入适当内容,使程序完整。(32分)I.求 100 200间的全部素数。(1)main()int rnk,i,n=0;for(m=101;m=200;m+=2)if(n%10=0)printf(nnn);k=sqrt(m);for(i=(2);i=k;i+)if(m%i=0)(3);if(i=(4)printf(%d;m);n+;)2.用选择法对数组中的10个字符按由大到小排序。void sort(1)char a;in
7、t n;int ij,k;char t;for(i=0;in-l;i+)(2);for(j=i+l;jvn;j+)if(3)k=j;t=ak;ak=ai;ai=t;)main()char 10;int i;for(i=0;i 10;i+)scanf(4%cv,&si);(4)printf(44the sorted array:n);for(i=0;i10;i+)printf(c”,(5);printf(n”);)3 3.输入3x4数组,用指针方法实现将每行中的最小数与第0 列元素对调。main()int 34,i,j,*p=a0;for(i=0;i3;i+)for(j=0;j4;j+)scan
8、f(“d”,p+);for(p=&a00;pa0+12;(1)swap(p);(2);for(i=0;i3;i+)for(j=0;j4;j+)printf(%3d”,*p+);printf(n);)swap(int(3)int nin,i,*p2=pl,*p3;(4);for(i=0;i4;i+)f(*p24);4.a 数组定义如下,a 数组中可用最小下标 值 是(),最大下标值是()。char a3;5.蟠 以 下 宏 定 义,则执行赋值语句 2=人 口 口(4+6)*7;3 为 int型变量)后,a 的值是()。#define ADD(x)(x)+(x)6.若有以下说明、定义和语句,则对x
9、.b成员的另外两种引用方式是:()和()。struct st int astruct st b;*p,x;p=&x;7.在 C 中,文件指针变量的类型只能是()。8.在 C 中文件结束标志EOF只可用于()文件。9.a 数组定义如下,若使数组a 中存放字符串“friend”,写出为数组a 赋值的语句()。char a10;二 判断对错(10分,每 题 1 分。对的划“小,错的划“X”)I.在 Turbo C 中,实型数据在内存中占4 个字节。()2.被 main函数调用的函数只能是库函数。()3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。()4.算术运算符和赋值运算符的结合方向均
10、由左自右。()5.定义在main函数后的任何函数都需在main中进行函数声明。()6.一 个 函数中只允许有一条return语 句()7.任何数组在使用时必须先定义。()8.在 int*p;和语句printf(%d,*p);中的*p 含义相同。()9.在定义枚举时,枚举常量可以是标识符或数字。()10.用 fopen(f i l el 方式打开的文件可进行修改。()三 选 择 题(20分,每题2 分)1.若有代数式,则错误的C 语言表达式是()。A a*e/c/b B ae/b/c C a*e/b*c D a/b/c*e2.以下程序的输出结果是()。main()int a=7,b=5;prin
11、tf(%dn,b=b/a);)A 不确定值 B 5 C 1 D 03.以下程序的输出结果是()omain()int W=l,k2=2,k3=3,x=15;if(!kl)x-;else if(k2)if(k3)x=4;else x=3;printfC4x=%dn,x);)Ax=4 B 得 15 C 得 14 D x=34.以下程序的输出结果是()。main()char si20=4tChina,s220=ttfof,sl0;if(strcmp(s l,s2)printf(%sn,strcat(s2,s 1);else printf(b B+p-a C pb D Xp+)-b四 写 出 下列程序的
12、运行 结 果(25分,每题5 分)1.main()int mmber=0;while(number+=1)printf(n*%d/number);printf(*%dnM,number);)2.#define N 7main()int jj,aNN;for(i=l;iN;i+)aii=l;aill=l;for(i=3;iN;i+)for(j=2;j=i-l;j+)aiU=aMU-lHai-lfj;for(j=l;jv)c=u;u=v;v=c;a=u;b=v;while(r=b%a)!=0)b=a;a=r;return(a);)main()int u,yh,l;u=32;v=48;h=hcf(u
13、,v);printf(H.C.F=%dtn,h);)4.main()int 组=123,4,5,6,*p;p=a;*(p+3)+=2;printf(”d,%dn,*p,*(p+3);5.main()int y;fac(4,&y);printf(y=%dn”,y);)fac(int n,int*t)int sif(n=l)ll(n=O)*t=l;else fac(n-l,&s);t=n*s;)五阅读下列程序,在 处填入适当内容,使程序完整(25分,每个空2 分)1.试求出1000以内的“完全数”。(提示:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6 的
14、因子是1、2、3,而 6T+2+3,则 6 是个“完全数main()int i,a,m;for(i=l;il 000;i+)(for(m=0,a=l;a=i/2;a+)if(!(i%a)(1);if(Q)printf(n%4d,i);)2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#define N 10char strNJ;main()(int i,flag;fdr(i=0;i10;i+)scanf(n%c&stri);sort(_(l)_);for(i=0;iN;i+)printf(n%cn,strlij);printf(nH);)sort(str)char strNJ;i
15、nt ij;char t;for(j=l;jN;j+)for(i=0;i(2)t=stri;(3);(4);)3.3.将一个磁盘文件中的信息复制到另一个磁盘文件中。#include stdio.hmain()(1)*in,*out;char ch,infile 10,outfile 10;printf(Enter the infile name:nn);scanf(*%sn,infile);printf(Enter the outfile name:nn);scanf(H%sM,outfile);if(in=fopen(infile;rK)=NULL)printf(Cannot open in
16、put file.nn);exit(0);)if(out=fopen(outfile;w)=NULL)printf(Cannot open output file.nu);exit(0);)while(!feof(in)fputc(2),out);(3);(4);)4.4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#define N 10main()(void maxmin(int arr,int*ptl,int*pt2,int n);int arrayLN=10,7,19,29,4,0,7,35,-16,21产 pl,*p2,a,b;pl=&a;p2=&b;maxmin(ar
17、ray,p 1 ,p2,N);printf(max=%d,min=%dn,a,b);)void maxmin(int arr,int*ptl,int*pt2,int n)(inti;*ptl=*pt2=arr ;fbr(i=l;i*ptl)(1);if(arri278的 值 是()。2.当执行完以下语句后,变量a 的 值 为(),d 的 值 为(),e 的 值 为()。a=6;b=+a;c=-a;d=a+;e=a;3.下面程序段的输出结果是()。char a=ll 1;a=aA00;printfC4%d%on”,a,a);4.a 数组定义如下,按照内存排列顺序,a 数组中的所有元素是()och
18、ar a3;5.设有以下宏定义,则执行赋值语句a=PP+20;(a 为 int型变量)后,a 的 值 是()。#define PR 8#define PP PR*406.定义结构体类型时,应使用关键字(),定义枚举类型时,应使用关键字()。7.C 文件可以分为两种类型,它 们 是()文 件 和()文件。8.若有2 2 四3=%;则*2=(),*(a+2)=()。二 判断对错(5 分,对的划“小,错的划“X”)1.0()2.表达式1/4+2.75的值是3。()3.结构体类型只有一种。()4.函数若无返回值,则它一定无形参。()5.C 语言只能处理文本文件和二进制文件。()二 判断对错(10分,每
19、 题 1 分。对的划“小,错的划“x”)1.在 Turbo C 中,实型数据在内存中占4 个字节。()2.被 main函数调用的函数只能是库函数。()3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。()4.算术运算符和赋值运算符的结合方向均由左自右。()5.定义在main函数后的任何函数都需在main中进行函数声明。()6.一个函数中只允许有一条return语 句()7.任何数组在使用时必须先定义。()8.在 int*p;和语句printf(d”,*p);中的*p 含义相同。()9.在定义枚举时,枚举常量可以是标识符或数字。()10.用 fopen(filel,“r+”)方式打开的
20、文件可进行修改。()三 选 择 题(20分,每题2 分)1.a,b为整形变量,二者均不为0,以下关系表达式中恒成立的是()。(A)a*b/a*b=1 (B)a/b*b/a=1(C)Hb*b+a%b=a(D)afb*b=a2.C 语言源程序的基本单位是()。(A)过程(B)函数(C)子程序(D)标识符3.以下函数调用语句中含有()个实参。func(e 1 ,e2),(e3,e4,e5);(A)2(B)3(C)5(D)语法错误4.以下的fo r循 环()。for(x=0,y=0;(y!=l 23)&(x=fopen(,file;w);(C)f)=fopen(nfilen,r+u);(D)f)=fo
21、pen(,filen,uw+,);9.以下程序的输出结果是()omain()char d 20=uabc,s220=t0)printf(%sn,s 1);else printf(44%sn,s2);)(A)d)c(B)123(C)由 cl23(D)13abc1 0.已知职工记录描述如下,设变量w 中的“生日”是“1993年 10月 2 5 日”,下列对“生日”的正确赋值方式是()。struct worker int no;char name20;char sex;struct int day;int month;int year;birth;);struct worker w;(A)day=2
22、5;month=10;year=1993;(B)w.birth.day=25;w.birth.month=10;w.birth.year=1993;(C)w.day=25;w.month=10;w.year=1993;(D)birth.day=25;birth.month=10;birth.year=1993;四写出下列程序的运行结果(25分,每题5 分)l.main()int ij;i=16;j=(i+)+i;printf(H%dn,j);i=15;printf(H%dt%dnn,+i,i);)2.#include stdio.h,main()int i;for(i=l;i+l;i+)if(
23、i4)printf(,%dn,i+);break;)printf(n%dnn,i4-+);)3.#include stdio.hmain()int i,j,a=0,2,8,4,5);printf(nnn);for(i=l;i=5;i+)j=5-i;printf(%2d,aj);)4.#include stdio.h*main()char iringl=ABCDEFGHIJ,string210J;s(string 1,string2,5);printf(,%sn,string2);)s(p,q,m)char*p.*q;int m;int n=0;while(nm-1)n+;P+;while(*p
24、!=W)*q=*p;P+;q+;)*q=0;)5.main()int y;fac(5,&y);printf(4ty=%dn,y);)fac(int n,int*t)int sif(n=I)ll(n=O)*t=2;else fac(n-l,&s);t=n*s;)五阅读下列程序,在 处填入适当内容,使程序完整(25分,每个空2 分)I.试求出1000以内的“完全数”。(提示:如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。如:6 的因子是1、2、3,而 6=1+2+3,则 6 是个“完全数”。)main()(int i,a,m;for(i=l;i1000;i+)(
25、for(m=0,a=l;a=i/2;a+)if(!(i%a)(1);if(Q)printf(u%4d,i);)2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#define N 10char strN;main()(int i,flag;for(i=0;i10;i+)scanf(M%cH,&stri);sort(_(l)_);for(i=0;iN;i+)printf(c”,stri);printf(MnM);sort(str)char strN;int ij;char t;for(j=l;jN;j+)for(i=0;i(2)t=stri;(3);(4);3.将一个磁盘文件中的信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 历年 语言 期末考试 试题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内