历年C语言期末考试试题.pdf
《历年C语言期末考试试题.pdf》由会员分享,可在线阅读,更多相关《历年C语言期末考试试题.pdf(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 历年C 语言期末考试试题2004-12-22 由 vince 整理打印自:长春工业大学三味书屋地址:http:/ 语言试题1一 填 空 题(15分)1.设 x 的值为15,n 的值为2,则表达式x%=(n+=3)运算后,x 的 值 为()。2.设 int a=7,b=9,t;执行完表达式t=(ab)?a:b后,t 的 值 是()。3.下面程序段的输出结果是()。int a=1234;a=a&0377;printf(%d%on,a,a);4.a 数组定义如下,按照内存排列顺序,a 数组中的所有元素是()。chara3;5.设有以下宏定义,则执行赋值语句a=PP*20;(a 为 int型变量)后
2、,a 的 值 是()。#define PR 80#define PP PR+4036.在 C 程序中,可以通过三种运算方式为指针变量赋地址值,它们是:()、()和()。7.在 C 文件中,数据存在的两种代码形式是()和()。8.C 语言中调用()函数打开文件,调 用()函数关闭文件,调 用()函数可实现文件的随机读写。9.若有 inta3=10,12,30;则 a+1 是()的地址,*(a+2)=()二 判断对错(5 分,对的划“4”,错的划“x”)1.在 Turbo C 中,整型数据在内存中占2 个字节。()2.表达式1/4+2.75的值是3。()3.结构体类型只有一种。()4.函数若无返回
3、值,则它一定无形参。()5.C 语言只能处理文本文件和二进制文件。()三 选 择 题(20分)1.设 int a=12;表达式 a+=a-=a*=a 的 值 是()。A 12 B 144 CO D 1322.以下程序的输出结果是()。main()int a=011;printf(dn,+a);A 12 B 11 C 10 D93.以下程序的输出结果是()o#define ADD(x)(x)+(x)main()int a=4,b=6,c=7,d=ADD(a+b)*c;printf(ud=%d,d);Ad=70 B d=140 C d=280 D d=804.下面的选项中正确的赋值语 句 是(ch
4、ara5,*p=a;)()。A p=abcd;B a=abcd;C*p=abcd;D*a=abcd”;5.若 k 为整形,则 while循环执行()次。k=2;while(k=0)printf(d”,k);k-;printf(n”);A 10 B9 CO D 16.数组名作为实参传递给形参时,数组名被处理为()。A 该数组的长度 B 该数组的元素个数C 该数组的首地址 D 该数组中各元素的值7.两个指针变量不可以()。A.相加 B 比较 C 相减 D 指向同一地址8.若有以下程序段,则值为6 的表达式是()。struct st int n;struct st*next;static struc
5、t st a3=5,&a 1 ,7,&a2,9/0,),*p;p=&aO;A p+-n B pn+C(*p).n+D+p-n9.要打开个已存在的非空文件“理e”用于修改,选择正确的语句()oAfp=fopen(,fileH;,rH);B fp=fbpen(nfile,wn);C m=fbpen(“理e”J r+)D fp=fopen(,filen,w4-);四写出下列程序的运行结果。(28分)1.main()int a6=10,6,23,-90,0,3),i;invert(a,0,5);for(i=0;i6;i+)printf(d,”,ai);printf(“n”);invert(int*s,
6、int i,int j)int t;if(ij)invert(s,i+lj-l);t=*(s+i);*(s+i)=*(s+j);*(s+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 sll0=ujava,s210=basic”,s 10;fbr(i=0;i3;i+)printf(M%d n,fl(a);printf(n”);if(strcmp(sl,s2)strcpy(s,sl);puts(s);printfC%d,%sn,strlen(s2),strcat(s2,s 1);3
7、.#define MAX 100main()int fMAX,i,j,k=2,m=5;fbr(i=0;i=m;i+)用=1;fk-l=2;fbr(i=k;i=m;i+)for(j=i-k;j=i-l;j+4-)fi+=fj;printf(n%d%5d%5dn,k,m,fm);五阅读下列程序,在 处填入适当内容,使程序完整。(32分)1.求 100 200间的全部素数。(1)main()int m,k,i,n=0;for(m=l 01;m=200;m+=2)iffn%10=0)printf(n);k=sqrt(m);fbr(i=(2);i=k;i+)if(m%i=0)(3);if(i=(4)pr
8、intf(M%d n,m);n+;2.用选择法对数组中的10个字符按由大到小排序。void sort(1)char a;int n;int i,j,k;c h a r t;f o r (i=0;i n-l;i+4-)(2);f o r(j=i+l;j n;j+)i f(3)k=j;t=a k ;a k =a i ;a i =t;m a i n()c h a r s 1 0 ;i n t i;f o r(i=0;i 1 0;i-H-)s c a n f f%c ,&s i );(4);p r i n t f f t h e s o r t e d a r r a y:nv);f o r(i=0;
9、i 1 0;i-H-)p r i n t f(“c”,(5);pr i n t f(“n”);3 3.输入3 x 4数组,用指针方法实现将每行中的最小数与第0列元素对调。m a i n()i n t a 3 4,i j,*p=a 0;f b r(i=0;i 3;i+)f b r(j=0;j 4;j+)s c a n f C%d”,p+);f o r(p=&a 0 0;p a 0+12;(1)s w a p(p);(2);f b r(i=0;i 3;i+)f o r(j=0;j 4;j+)pr i n t f(“3d”,*p+);pr i n t f C W);s w 叩(i n t (3)i
10、n t m i n,i,*p2=pl,*p3;(4);f b r(i=0;i 4;i-H-)i f(*p2*p3)p3=p2;(5);)m i n=*pl;*pl=*p3;*p3=m i n;2002试题2一 填 空 题(2 0分,每 空1.5分)1.当执行完以下语句后,变量a的 值 为(),b的 值 为(),c的 值 为()。a=6;b=+a;c=-a;2 .已知a=3、b=2,则表达式a*=b+8的 值 是()。3 .下面程序段的输出结果是()。i n t a=125;pr i n t f(t t%d n,a 4);4 .a数组定义如下,a数组中可用最小下标值是(),最大下标值是()。c
11、h a r a 3;5 .设有以下宏定义,则执行赋值语句=人口口(4+6)*7;除 为i n t型变量)后,a的值是()。#d e f i n e ADD(x)(x)+(x)6 .若有以下说明、定义和语句,则对x.b成员的另外两种引用方式是:()和()。s t r u c t s t i n t a;s t r u c t s t b;*p,x;p=&x;7 .在C中,文件指针变量的类型只能是()。8.在C中文件结束标志EO F只可用于()文件。9 .a数组定义如下,若使数组a中存放字符串“f i i e n d”,写出为数组a赋值的语句()。c h a r a 10;二 判断对错(1 0分,
12、每 题1分。对的划“小,错的划“X”)1.在Tu r b o C中,实型数据在内存中占4个字节。()2 .被m a i n函数调用的函数只能是库函数。()3 .对整型变量可进行自加或自减运算,而对常量或表达式不可以。()4 .算术运算符和赋值运算符的结合方向均由左自右。()5 .定义在m a i n函数后的任何函数都需在m a i n中进行函数声明。()6 .一个函数中只允许有一条r e t u r n语句。()7.任何数组在使用时必须先定义。()8.在 int*p;和语句printf(%d”,*p);中的*p 含义相同。()9.在定义枚举时,枚举常量可以是标识符或数字。()10.用 fope
13、n(filel,”W)方式打开的文件可进行修改。()三 选 择 题(20分,每题2 分)1.若有代数式,则错误的C 语言表达式是()。A a*e/c/b B a*e/b/c C a*e/b*c D a/b/c*e2.以下程序的输出结果是()。main()int a=7,b=5;prin氓“dn”,b=b/a);A 不确定值 B5 C 1 DO3.以下程序的输出结果是()。main()int k 1=1 ,k2=2,k3=3,x=15;if(!kl)x-;else ififk2)if(k3)x=4;else x=3;printfCtx=%dn,x);Ax=4Bx=15Cx=14Dx=3 4.以下
14、程序的输出结果是()。main()char sl20=tChina,s220=b B-H-p-a C p-b D*(p+)-b四写出下列程序的运行结果(25分,每题5 分)1.main()int number=0;while(number+=1)printf(,*%d,n,number);printf(H*%dnM,number);2.#define N 7main()int i,j,aNN;f o r(i=l;i N;i+)a i i =l;a i l =l;f b r(i=3;i N;i+)f o r 0=2;j v)c=u;u=v;v=c;a=u;b=v;w h i l e(r=b%a)
15、!=O)b=a;a=r;r e t u m(a);)m a i n()i n t u,v,h,l;u=3 2;v=4 8;h=h c f(u,v);p r i n t f(H.C.F=%d t”,h);4.m a i n()i n t a =l,2,3,4,5,6 ,*p;p=a;*(p+3)+=2;printf(n%d,%dn,*p,*(p+3);)5.main()int y;fac(4,&y);printf(uy=%dn,y);fac(int n,int*t)int s;if(n=l)|(n=0)*t=1;else fac(n-l,&s);t=n*s;)五阅读下列程序,在 处填入适当内容,
16、使程序完整(25分,每个空2 分)1.试求出1000以内的“完全数”。(提示:如果一个数恰好等于它的因子之和(因子包括I,不包括数本身),则称该数为“完全数”。如:6 的因子是1、2、3,而 6=1+2+3,则 6 是个“完全数”。)main()(int i,a,m;for(i=l;i 1000;i+)for(m=0,a=l;a=i/2;a+)if(!(i%a)(1);if()printfC%4d”,i);2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#define N 10char strN;main()int i,flag;for(i=0;i10;i+)scanf(%cn,
17、&stri);sort(_(l)_);for(i=0;iN;i+)printfC%c”,stri);printf(,nn);sort(str)char strN;int i,j;char t;fbr(j=luN;j+)fbr(i=O;i(2)t=stri;(3);(4);)3.3.将一个磁盘文件中的信息复制到另一个磁盘文件中。#include stdio.h”main()(1)*in,*out;char ch,infile 10,outfile 10;printffEnter the infile name:nM);scanf(n%sn,infile);printf(nEnter the ou
18、tfile name:nM);scanf(%s”,ou 饰 le);if(in=fopen(infile,Y,)=NULL)printf(nCannot open input file.nn);exit(O);if(out=fbpen(outfile,wn)=NULL)printffCannot open output file.n);exit(O);)while(!feof(in)fputc(2),out);(3);(4);)4.4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#define N 10main()(void maxmin(int arr,int*ptl,int*
19、pt2,int n);int arrayN=10,7,19,29,4,0,7,35,-16,21,*p 1 ,*p2,a,b;pl=&a;p2=&b;maxmin(array,p l,p2,N);print“max=%d,min=%d”,a,b);void maxmin(int arr,int*ptl,int*pt2,int n)inti;*ptl=*pt2=arr0;fbr(i=1 ;i*ptl)(1);if(arri278的 值 是()。2.当执行完以下语句后,变量a 的 值 为(),d 的 值 为(),e 的 值 为()。a=6;b=+a;c=-a;d=a+;e=a-;3.下面程序段的输
20、出结果是()ochar a=lll;a=aA00;printf(d%on,a,a);4.a 数组定义如下,按照内存排列顺序,a 数组中的所有元素是()。char a3;5.设有以下宏定义,则执行赋值语句a=PP+20;(a 为 int型变量)后,a 的 值 是()。#definc PR 8#define PP PR*406.定义结构体类型忖,应使用关键字(),定义枚举类型时,应使用关键字()。7.C 文件可以分为两种类型,它 们 是()文 件 和()文件。8.若有 chara3=as”;则*a=(),*(a+2)=()二 判断对错(5 分,对的划7”,错的划“X”)1.0()2.表达式1/4+
21、2.75的值是3。()3.结构体类型只有一种。()4.函数若无返回值,则它一定无形参。()5.C 语言只能处理文本文件和二进制文件。()二 判断对错(10分,每 题 1 分。对的划 7”,错的划“x”)1.在 Turbo C 中,实型数据在内存中占4 个字节。()2.被 main函数调用的函数只能是库函数。()3.对整型变量可进行自加或自减运算,而对常量或表达式不可以。()4.算术运算符和赋值运算符的结合方向均由左自右。()5.定义在main函数后的任何函数都需在main中进行函数声明。()6.一个函数中只允许有一条return语句。()7.任何数组在使用时必须先定义。()8.在 int*p;
22、和语句printf(%d”,*p);中的*p 含义相同。()9.在定义枚举时,枚举常量可以是标识符或数字。()10.用 fopen(filelJ什)方式打开的文件可进行修改。()三 选 择 题(20分,每题2 分)1.a,b为整形变量,二者均不为0,以下关系表达式中恒成立的是()。(A)a*b/a*b=1 (B)a/b*b/a=1(C)a/b*b+a%b=a(D)a/b*b=a 2.C 语言源程序的基本单位是()。(A)过程(B)函数(C)子程序(D)标识符3.以下函数调用语句中含有()个实参。func(el,e2),(e3,e4,e5);(A)2(B)3(C)5(D)语法错误4.以下的fo
23、r循 环()。for(x=0,y=0;(y!=123)&(x0)printf(%sn,s 1);else printfC%sn,s2);(A)abc(B)123(C)abcl23(D)123abc1 0.已知职工记录描述如下,设变量w 中的“生日”是“1993年 10月 2 5 日”,下列对“生日”的正确赋值方式是()o struct worker int no;char name20;char sex;struct int day;int month;int year;birth;);struct worker w;(A)day=25;month=l0;year=1993;(B)w.birt
24、h.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;m写出下列程序的运行结果(25分,每题5 分)l.main()int i,j;i=16;j=(i+)+i;printf(n%dnn,j);i=15;printf(M%dt%dn,-H-i,i);2.#include stdio.hmain()int i;fbr(i=l;i+l;i+)if(i4)printf(dn”,i+);break;print
25、f(dn”,i+);)3.#includc stdio.hmain()int ij,a=0,2,8,4,5);printf(nnn);fbr(i=l;i=5;i+)j=5-i;printf(%2d,a|j);)4.#include stdio.hmain()char stringl=*ABCDEFGHIJ,string210;s(stringl,string2,5);printf(,%sn,string2);s(p,q,m)char*p.*q;int m;int n=0;while(nm-l)n+;p+;)while(*p!=、0)*q=*p;P+;q+;*q=0;)5.main()int y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 历年 语言 期末考试 试题
限制150内