《历年C语言期末考试试题1.pdf》由会员分享,可在线阅读,更多相关《历年C语言期末考试试题1.pdf(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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.将一个磁盘文件中的信息
26、复制到另一个磁盘文件中。#include Mstdio.hmain()(1)*in,*out;char ch,infile 10,outfile 10;printf(Enter the infile name:nn);scanf(%s”,infile);printfCEnter the outfile name:n);scanf(%s,outfile);if(in=fopen(infile,r)=NULL)printf(Cannot open input file.nu);exit(0);)if(out=fopen(outfile,nwH)=NULL)printf(Cannot open ou
27、tput fileAn1);exit(0);)while(!feof(in)fputc(2),out);(3);(4);)4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#define N 10main()(void maxmin(int aiT,int*ptl Jnt*pt2,int n);int arrayN=10,7,19,29,4,0,7,35,-16,21,*pl,*p2,a,b;pl=&a;p2=&b;maxmin(array,p l,p2,N);printf(,max=%d,min=%d,a,b);void maxmin(int arrlJ,int*ptl,int*
28、pt2,int n)i n t i;*p t l=*p t 2=ar r 0 ;f br(i=l;i *p t l)(1)i f(ar r i *p t 2)(2)2 0 0 3 C语言试题1一 选 择 题(7分,每小题0.5分)1.设a为整型变量,初值为1 2,执行完语句a+=a-=a*a后,a的 值 是()。A 5 5 2 B 1 4 4 C 2 6 4 D-2 642.下列标识符中,不能作为合法的C用户定义标识符的是()。A _ b 3 B v)i d C J 2 3 D F3.下列整数值中,不正确的八进制或十六进制数值常量是()oA O xr i B -0 1 7 C-o xl 2 3
29、 D(k f d c4.若给定条件表达式(M)?(a+):(a-),则其中表达式M和()等价。A N t=0 B M=1 C M=1 D M=05.在C语言中,i f语句后的一对圆括号中,用以决定分支流程的表达式为()。A只能是逻辑表达式 B只能是关系表达式C只能是逻辑表达式或关系表达式 D可以是任意表达式6.以下程序的输出结果为()。m a i n()c h a r ci n t i;f o r(i=65;i b B-H-p-a C pb D*(p+)-b14.要打开一个己存在的非空文件“file”用于修改,选择正确的语句()。A fp=fopen(file,r);B f)=fopen(fi
30、le,w);C f)=fopen(file,r+);D f)=fopen(file,w+);二 判断对错,对的划“Y”,错的划“x”(5 分,每小题0.5分)1.在 Turbo C 中,实型数据在内存中占4 个字节。()2.若有形参定义:int a 10;则 a+是合法的表达式。()3.若有宏定义:#definePI3.14i5926,则系统预编译时会报错。()4.函数的递归调用不过是一个函数直接地调用它自身。()5.定义在main函数后的任何函数都需在main中进行函数声明。()6.若有定义:int a;则 scanf(%若,a);可以给变量a ()7.任何数组在使用前必须先定义。()8.在
31、 int*p;和语句printf(%d”,*p);中的*p 含义相同。()9.共用体变量的各个成员所占内存单元的地址相同。()10.在使用缓冲文件系统时,与文件输入和输出相关的数据都先送到缓冲区中。()三 写出下列程序的运行结果(10分,每小题2 分)l.main()charcl=A,c2=u144),c3=Ax44,c=0 xf5,x=13,a;int i=0122,j=0 xa4;printf(uc 1 =%c,c4=%ctc5=%cn,c 1 ,c2,c3);printf(d,%dn”,i,j);i=-34;j=20;printf(u%d,%d,%dn,*,i%j,i&j2,sizeof
32、(j);printf(c=%dn,clx);a=cAx2;printf(4a=%dn,a);)2.main()(int x,y=l,z=10;if(y!=O)x=5;printfC4x=%dfx);x=l;if(z0)x=3;else x=5;printf(x=%dn,x);if(z=y0)x=3;else if(y=O)x=5;else x=7;printfCx=%dt,x);printf(44z=%dn,z);)3.main()char s20=t4I like it.”,t20=Are you?,c20;int i=0;while(s+i!=AO,)ti=si;ti=O;printf(u
33、string s:%sn,s);printf(44string t:%sn,t);)4.int i=5;main()int t=3;int i=10;i+;printf(dn,i);fl();i+=l;printf(4t%dn,i);int fl()i=i+l;retum(i);)5.main()int i=10,a=10,20,30,15,*pl;char*b=,Learning,*p2=&b;pl=&i;printf(“4d”,*pl+20);for(p l=a;p la+4;p 1 +=2)printf(4d”,*pl);printf(n%ct%sn,*(b+4),*p2);四阅读下列程
34、序,在 处填入适当内容,使程序完整(8 分,每个空1 分)1.用冒泡法对任意10个整数排序。main()int all,i,j,t;for(i=l;iaj)M j;(3);(4);)printf(The sorted numbers:n);for(i=l;ill;i+)printf(H%4d,ai);printf(“n”);)2.求100 200间的素数。(5)main()int m,flag;for(m=101;m=200;m+=2)flag=prime(m);if(6)printfC%4d,m);)prime(7)int i,k,flag;k=sqrt(a);for(i=2;ib?a+:b
35、+,a+b)的 值 是()。A 7 B 8 C 9 D 24.设a 为 血 型变量,执行下列赋值语句后,a 的取值分别是()。a=125.534;a=(int)125.521%4;a=52;A 125,3U B 125,1,20 C 125,31,20 D 125.534,2,205.设有如下程序段,下面描述中正确的是()。int k=10;while(k=0)k=k-l;A 循 环 执 行 一 次 B 循环是无限循环C 循环体语句一次也不执行D 循环体语句执行一次6.以下程序的输出结果为()。int i;void prt()f)r(i=5;i8;i+)printf(,%c,V*r);prin
36、tf(MtH);)main()for(i=5;i=8;i+)p rt()A 糅*B*C 仲*D*7.在C 语言程序中,以下说法正确的是(),A 函数的定义可以嵌套,但函数的调用不可以嵌套B 函数的定义不可以嵌套,但函数的调用可以嵌套C 函数的定义和函数的调用都不可以嵌套D 函数的定义和函数的调用都可以嵌套8.以下函数调用语句中含有()个实参。func(e I,e2),(e3,e4,e5);A 2 B 3 C5D 语法错误9.以下程序的输出结果为()o#define ADD(x)x*xmain()int a=4,b=6,c=7,d=ADD(a+b)*c;printf(Hd=%dH,d);)A d
37、=70 B 出80 C dT40 D 也70010.已知职工记录描述如下,在 Turbo C 中,系统为变量w 分 配()字节的空间。struct worker int no;char name 20;char sex;union nt dn B+p-n C p-n+D fp).n+14.C 语言中的文件类型只有()oA 索引文件和文本文件两种 B 文本文件一种C 二进制文件一种 D ASCH码文件和二进制文件两种二 判断对错,对的划“小,错的划“x”(5 分,每小题0.5分)1.在 Turbo C 中,整型数据在内存中占2 个字节。()2.inti=20;switch(i/10)case2:
38、printf(A);case l:printf(B);的输出结果为 A。()3.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环()4.函数的递归调用不过是一个函数直接或间接地调用它自身。()5.函数 strlen(ASDFGn)的值是 7。()6.通过return语句,函数可以带回一个或一个以上的返回值。()7.结构体类型只有一种。()8.char*p=girl;的含义是定义字符型指针变量p,p 的值是字符串“girl。()9.若有定义:char*p(chara10);则 p 是函数名。()10.用 fopen(file,r+);打开的文件“fil
39、e可以进行修改。()三 写出下列程序的运行结果(10分,每小题2 分)1.float average(float array 10)int ifloat aver,sum=array;for(i=l;i10;i+)sum=sum+aiTayi;aver=sum/10;return(aver);)main()float ore 10=89,67.5,78,91,56,82.5,65,70,79,88,aver;int i;aver=average(score);printf(average score is%5.2fn,aver);)2.main()char 45=A B,C D,/E,*p=a
40、,*pa;fbr(p=0;pa+5;p+)printf(44%2c,*p);printf(“n”);printf(u%2cnn,*(pa=&p);3.main()int ab,s=0;for(a=l,b=1 ;a=20)break;if(b%3=l)b+=3;continue;b-=5;)printf(4a=%dtb=%dn,a,b);)4.main()printf(umain():%dn”,fact(5);fact(-5);)fact(int value)int fif(value0)printf(44Arg errornH);retum(-l);)else f(value=1 llvalu
41、e=0)f=l;else f=value*fact(value-1)+1;printfCThis called value=%dn,f);return f;5.main()int a=012,b=0 x 12,k=12;char c=t102,d=tr,;printf(a=%dtb=%dtk=%dn,a,b,k);printf(c=%c,d=%c%on,c,d,a);a=A;c=49;printf(a=%dtc=%cn,a,c);)四阅读下列程序,在 处填入适当内容,使程序完整(8 分,每个空1分)1 有 个 3*4矩阵,求其中的最大元素。max_value(1)int i,j,max;max
42、=arrayOO;for(i=0;i3;i+)for(j=0;jmax)max=arrayij;(2);)main()int 34,ij;for(i=0;i3;i+)for(j=0;j4;j+)(3);printfCmax value is%dn,max_value(a);)2.输入x、y 两个整数,按先大后小的顺序输出x、y。#include stdio.hmain()int x,y*px,*py,(4);scanf(t%d%d,&x,&y);(5);(6);if(xy)p=px;px=py;py=p;printf(x=%d,y=%dn,x,y);printf(uMAX=%d,MIN=%dn
43、n,*px,*py);)3.用选择排序法对任意10个整数按照由小到大排序。main()intprintfCPlease input 10 numbersAn);for(i=l;ill;i+)scanf(M%dn,&ai);printf(nnM);for(i=I;iak)k=j;if(k!=i)t=ak;ak=ai;ai=t;)printf(The sorted numbers:n);for(i=l;ill;i+)printf(%d,ai);答案一 选择题(7 分,每小题0.5分)1.B2.C3.B4.B5.C6.A7.B8.A9.A10.C11.A12.A13.B14.D二 判断对错,对的划y
44、”,错的划“x”(5 分,每小题0.5分)1.x 2.x 4 3.4.4 5 X6.x 7.x N.x 1 0.W三 写出下列程序的运行结果(10分,每小题2 分)1.2.3.4.5.四阅读下列程序,在 处填入适当内容,使程序完整(8 分,每个空1 分)l.(l)int array34(int array4)(2)return(max)(3)scanf(4l%dM,&aij)2.(4)*p(5)px=&x(py=&y)(6)py=&y(px=&x)3.(7)(8)2003C语言试题3一 选 择 题(24分,每小题2 分)1.已知函数fread的调用形式为fread(buffer,size,co
45、unt,f p),其中buffer代表的是()。A 存放读入数据项的存储区 B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针 D-个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()。main()int i=010,j=10;printf(%d,%dn,i+,j-);A U,9 B 9,D C8,10 D 993.设a为i n t 型 变 量,执 行 下 列 赋 值 语 句 后,a的 取 值 分 别 是()。a=125.534;a=20.0/3;a=(int)125.521%4;a=52;A 125,6,31,1 B 125,6,1,20 C 125,6.666
46、666,31,20 D 125.534,6.666666,2,204.设 i 和 k 都是int类型,则 for循环语句()ofor(i=0,k=-1 ;k=l;i+,k+)printf(*n);A 循环结束的条件不合法B 循环体一次也不执行C 循 环 体 只 执 行 一 次 D 是无限循环5.以下程序的输出结果为()。main()char cint i;for(i=65;i0,)sli+=s2|j+;sli=0;printf(u%sn,sl);)A sde B country C sdetry D countryside8.下列说法不正确的是()oA 主函数main中定义的变量在整个文件或程
47、序中有效B 不同函数中,可以使用相同名字的变量C 形式参数是局部变量D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效9.在下列程序段中,枚举 变 量 c l 的 值 是()。enum color red,yellow,blue=4,green,whitec 1;cl=yellow;c I=white;A 1 B 3 C 5 D 610.设有说明int(*ptr)()淇中标识符ptr是()A 是一个指向整形变量的指针 B 是一个指针,它指向一个函数值是int的函数C 是一个函数名 D 定义不合法11.定义由n 个指向整形数据的指针组成的数组p,其正确的方式为()。A n
48、t p;B nt(*p)nj;C ht 包川;D ht(*p)()12.具有相同类型的指针类型变量p 与数组a,不能进行的操作是()。A p=a;B t=a|0;C%&a|0;D m&a;二 判断对错,对的划“Y”,错的划“X”(20分,每小题2 分)1.参加位运算的数据可以是任何类型的数据。()2.若有定义和语句:int a;char c;float f;scanf(%d,%c,%f,&a,&c,&f);若通过键盘输入:10,A,1 2.5,则 a=10,c=A,f=12.5。()3.C 语言把文件看作是一个字符(字节)的序列。()4.若有宏定义:#define S(a,b)t=a;a=b;
49、b=t由于变量t 没定义,所以此宏定义是错误的。()5.在 Turbo C 中,下面的定义和语句是合法的:file*fp;fp=fopen(Ha.txt,(?);()6.若有定义:char s=china;则 Turbo C 系统为数组s 开辟6 个字节的内存单元。()7.若有定义和语句:int a33=3,5,8,9,12,35),i,sum=0;for(i=0;i3;i+)sum+=ai2-i;则 sum=21。()8 .若有定义和语句:struct student int num;char nameI0J;float score;s5=ljlili”,98.5,9,“xiaohua”,6
50、6,*p=s;printf(”%d”,*p+);输出结果是 1。()9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。()10.在 TurboC 中,此定义和语句是合法的:enum aa a=5,b,cbb;bb=(enum a i)5;()三 写出下列程序的运行结果(36分,每小题6 分)1 .main()int i=29,j=6,k=2,s;s=i+i/j%k-9;printf(4s=%dn,s);)2.main()int x=31 ,y=2,s=0;do s-=x*y;x+=2;y-=3;while(x%3=0);printf(4x=%dty=%dts=%dn,x,