C语言期末考试题1.pdf
《C语言期末考试题1.pdf》由会员分享,可在线阅读,更多相关《C语言期末考试题1.pdf(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 .st a t i c st ru c t i n t a l;f l oa t a 2;c h a r a 3;a 1 0 =l,3.5,*A*;说明数组a是地址常量,它有 1 0个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是()OA、a 1 0 B、a 0 C、a l D、a -l B2.对以下说明语句i n t a 1 0 =6,7,8,9,1 0);的正确理解是()0A、将5 个初值依次赋给a l 至a 5 B、将5 个初值依次赋给a 6 至a 1 0 C、因为数组长度与初值的个数不相同,所以此语句不正确D、将 5 个初值依次赋给a 0 至 a 4 D3.在C语言
2、中,能代表逻辑值“真”的 是()oA、大于0 的 数 B、T ru e C、非0 的数 D、非0 整数C4.以下rea d函数的调用形式中,参数类型正确的是()。A、rea d(i n t f d,i n t c ou n t,c h a r*b u f)B、rea d(i n t c ou n t,c h a r*b u f,i n t f d)C、rea d (i n t *b u f,i n t f d,i n t c ou n t)D、rea d (i n t f d,c h a r*b u f,i n t c ou n t)D6 .以下不符合C语言语法的赋值语句是()oA、a=b=5
3、;B、a=l,b=2 C、+j;D、y=(a=3,6*5);B7 .C语言程序的三种基本结构是顺序结构、选择结构和_ _ _ 结构.A、递归 B、转移 C、嵌套 D、循环D8.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()oA、-1 B、非零的数 C、1 D、0D9 .以下叙述中不正确的是()。A、在C 程序中,赋值运算符的优先级最低B、在C 程序中,j+;是一条赋值语句C、C 程序中的由9 1 1 加和#(1 3 1 4 1 1 2 均不是(语句D、一个好的程序应该有详尽的注释A1 0.若有下列定义,则对a数
4、组元素地址的正确引用是()。i n t a 5 ,*p=a;A、&a B、p+2 C、a+D、&a 5 B1 1 .st a t i c c h a r st r 1 0 =C h i n a;数组元素个数为()。A、5 B、1 0 C、6 D、9B12.以下程序中,c的二进制值是char a=3,b=6,c;c=a A b 2;A、00011100 B、00010100 C、00011000 D、00011011D13.以下程序的输出结果是func(int a,int b)int c;c=a+b;return c;main()int x=6,y=7,z=8,r;r=func(x-,y+,x+
5、y),z-);printf(%dn,r);)A、21 B、11 C、31 D、20A1 4 .以下程序的输出结果是_ _ _ _ _.voi d f u n (i n t a,i n t b,i n t c)a=4 5 6;b=5 6 7;c=6 7 8;ma i n()i n t x=1 0,y=2 0,z=3 0;f u n(x,y,z);p ri n t f (,z%d,%d,z,y,x);A、30,20,10 B、10,20,30 C、678567456 D、456567678A1 5.执行下列程序后,其输出结果是()oma i n()i n t a=9;a+=a-=a+a;p ri
6、n t f (绘d n”,a);A、18 B、-18 C、-9 D、9B16.若从终端输入以下数据,要给变量c赋以283.1 9,则正确的输入语句是A、scanf(%8.4f;&c);B、scanf(%6.2f,&c);C、scanf(%f*c)D scanf(%8fM,&c);D1 7.下列变量定义中合法的是()oA、sh ort _ a=l-.l e-l;B、l on g d o=0 x f d a L;C、d ou b l e b=l+5 e2.5;D、f l oa t 2 _ a n d=l-e-3;A1 8 .以下程序的输出结果是#d ef i n e F M T“d,”ma i n
7、()(i n t b 4 J =l,3,5,7,9,1 1,1 3,1 5,1 7,1 9,2 1,2 3);p ri n t f(FMT,*(*(b+l)+l);p ri n t f FMT,b 2 2 );)A、1,1 1,B、1,1 1 C、1 1,2 1 D、1 1,2 1,D1 9 .若i n t a=3,则执行完表达式a-=a+=a*a后,a的值是A、B2 0.-1 5 B、0 C、-9 D、-3以“ea d函数的调用形式中,参数类型正确的是()oA、B、C D、D2 1.rea d(i n trea d(i n trea d(i n trea d(i n tf d,i n t c
8、 ou n t,c h a r*b u f)c ou n t,c h a r*b u f,i n t f d)*b u f,i n t f d,i n t c ou n t)f d,c h a r*b u f,i n t c ou n t)己知大写字母A的AS C I I码值是6 5,小写字母a的AS C I I码是9 7,则用八 进 制 表 示 的 字 符 常 量 是O oA、字符e B、字符a C、非 法 的 常 量D、字符AD2 2.C语言规定,函数返回值的类型是由()。A、调用该函数时的主调函数类型所决定B、ret u rn语句中的表达式类型所决定C、调用该函数时系统临时决定D、在定义
9、该函数时所指定的函数类型所决定D2 3,结构化程序设计所规定的三种基本控制结构是()oA、树形、网形、环形 B、输入、处理、输出C、主程序、子程序、函数 D、顺序、选择、循环D24.与实际参数为实型数组名相对应的形式参数不可以定义为()oA、f lo a t a;B、f lo a t a ;C、f lo a t (*a)3;D、f lo a t *a;A25.若有定义和语句:i n t a 4 3 =l,2,3,4,5,6,7,8,9,10,11,12,(*p r t )3 =a,*p 4,i;f o r(i =0;i 4;i+)Pli =a i ;则不能够正确表示a数组元素的表达式是A、(*
10、(p+l)l B、a4 3 C、p0 0 D、prt2 2B26.为了避免在嵌套的条件语句if-e lse中产生二义性,C语言规定:else总与()配对A、同一行上的if B、其之后最近的if C、其之前最近的未配对的if D、缩排位置相同的ifC2 7.以下程序的输出结果是 0typedef union long i;int k5;char c;DATE;struct date int cat;DATE cow;double dog;too;DATE max;main()(printf(dn”,sizeof(struct date)+sizeof(max);)A、30 B、25 C、18 D
11、、8A28.下列程序的输出结果为()omainOint m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+l/2;printf(*%fn*,x);)A、28.000000 B、27.500000 C、28.500000 D、27.000000D29.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节)#include main()FILE*fp;int i,a4=1,2,3,4,b;fp=fopen(data.dal,wb”);for(i=0;i 4;
12、i+)fwrite(&ai,sizeof(int),1,fp);fclose(fp);fp=fopen(data.dat”,rb);fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(in。字节的数据至ij变量b中*/fclose(fp);)执行后输出结果是A、3 B、4 C、1 D、2A30.printf函数中用到格式符%5 s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式()oA、右对齐输出该字串,左补空格 B、从左起输出该字符串,右补空格C、按原字符长从左向右全
13、部输出 D、输出错误信息C1.语句int max(int x,int max(int y,int z);是正确的函数声明语句.错2.若有int i=10,j=0;则执行完语句if(j=0)i+;else i-i 的值为 11。错误3.char*p=girl”;的含义是定义字符型指针变量p,p的值是字符串girl。错4.如果想使一个数组中全部元素的值为0,可以写成int a10=0*10;错误5.如果有一个字符串,其中第十个字符为 n,则此字符串的有效字符为9个。错误6.共同体变量所占的内存长度等于最长的成员的长度正确7.函数调用语句:func(reel,rec2+rec3,(rec4,rec5
14、);中,含有的实参个数是5.错误8.ttdefine和p rin tf都不是C语句。正确9.C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。正确10.若有宏定义:#define S(a,b)t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。正确/*-【程序设计】功能:编写函数fun计算下列分段函数的值:x.2+x+6 x0 且xW-3f(x)=x-2-5x+6 0Wx10 且 xK2 及 x*3x 2-x-l 其它-*/#i n c lu d e v o i d b k y();f lo a t f u n(f lo a t x)(/*Beg in*/*En d */
15、m a i n()(f lo a t x,f;p r i n t f(i n p u t x=);s c a n f (%f ,&x);f=f u n(x);p r i n t f (z,x=%f,f (x)=%f n”,x,f);b k y();)v o i d b k y()(FILE*IN,*OU T;i n t n;f lo a t i;f lo a t o;IN=f o p e n(,zi n.d a t ,r );i f(IN=NU LL)p r i n t f(R ea d FI L E E r r o r);0U T=fo pen(o u t.da t,w);if(O U T二
16、 二N U L L)(pr int f(W r it e FI L E E r r o r*);fo r (n=0;n 10;n+)fs ca nf(I N,%f,&i);o=fu n(i);fpr int f(O U T,%f r T,o);fcl o s e(I N);fcl o s e(O U T);【参考代码】fl o a t y;if(x =0&x 10.0&x!=2.0&x!=3.0)y=X*X-5*x+6;el s e y=x*x-x-1;r et u r n y;【程序设计】功能:对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。例 如:原来的字符串为C E
17、A edca,排序后输出为C edcE A a。#incl u de#incl u de#incl u deint fu n(cha r *s,int nu m)(/*B eg in*/*E nd*/m a inO(cha r s 10;pr int f(输入7个字符的字符串:);get s(s);fu n(s,7);pr int f(n%s,s);N O N O();N O N O()int i;cha r a 100;FI L E *r f,何f;r f=fo pen(in.da t,r);w f=fo pen(o u t.da t,w )fo r(i=0;i3;i+)(fs ca nf(
18、r f,“版“,&a);fu n(a,7);fpr int f(w f,%s,a);fpr int f(w f,n);fcl o s e(r f);fcl o s e(w f);【参考代码】int i,j;cha r t;fo r(i=l;i nu m-l;i+)fo r (j=i+l;j nu m-l;j+)if(s i s j)t=s i ;s i=s j ;s j=t;/*-【程序设计】/*一【程序改错】功 能:根 据 整 型 形 参m,计算某一数据项的值。y =1/(100*100)+1/(200*200)+1/(300*300)+.+1/(m*m)例 如:若m =2000,则应输出:
19、0.000160-*/#incl u de#incl u de/*E R R 0R*/fu n(int m )(do u b l e y =0,d;int i ;/*E R R 0R*/fo r(i=100,i =m,i+=100)(d=(do u b l e)i*(do u b l e)i;/*E R R 0R*/y +=1.0 d;)r et u r n(y );)m a in()(int n=2000;cl r s cr();pr int f(nT he r es u l t is%l f n,fu n(n);)【改错1】【学生答案】fun(int m )【参考答案】double fun
20、(int m )【改错2】【学生答案】for(i=100,i=m,i+=100)【参考答案】for(i=100;i=m;i+=100)【改错3】【学生答案】y+=1.0 d;【参考答案】y+=1.0/d;/*-【程序改错】功能:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到P(含p,p小于等于n-1)的数组元素平移到数组的最后。例如:一维数组中的原始内容为:“1,2,3,4,5,6,7,8,9,10”p的值为3。移动后,一维数组中的内容应为“5,6,7,8,9,10,1,2,3,4-*/#incl u de#define N 80v o id fu n(int *w,int p,i
21、nt n)(/*E R R 0R*/int i,k=0;b N ;/*ERROR*/fo r(i=l;i n;i+)b k+=w i;/*E R R 0R*/fo r(i=0;i =p;i+)b k =w i;fo r(i=0;i n;i+)w i=b i;m a in()(int a N =l,2,3,4,5,6,7,8,9,10,11,12,13,14,15;int i,p,n=15;pr int f(T he o r igina l da t a:nz,);pr int f(n nE nt er p:);s ca nf(%d,&p);fu n(a,p,n);pr int f(nT he
22、da t a a ft er m o v ing:n/z);fo r(i=0;i n;i+)pr int f(%d a i);pr int f(n n);)【改错1】【学生答案】int i,k=0;b N ;【参考答案】int i,k=0,b N ;【改错2】【学生答案】fo r(i=l;i n;i+)b k+=w i;【参考答案】fo r (i=p+l;i n;i+)b k+=w i;【改错3】【学生答案】fo r(i=0:i =p;i+)b k =w i;【参考答案】fo r(i=0;i =p;i+)b k+=w i;【程序填空】功能:打印以下图形。m a in()(cha r a 5 9
23、=;int i,j;fo r (i=0;i 5;i+)/*FI L L*/fo r(j=i;_;j+)a i j=/*FI L L*/fo r(_;i 5;i+)(fo r(j=0;j 9;j+)/*FI L L*/pr int f _ );/*FI L L*/)【空1】【学生答案】fo r(j=i;_;j+)【参考答案】jjjj【空2】【学生答案】for(_;i5;i+)【参考答案】i=0【空3】【学生答案】printf(螺c,_ );【参考答案】aij【空4】【学生答案】【参考答案】pr int f(n)/*【程序填空功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出其和。i
24、ncl u de#incl u de m a in()(int i,n,s u m;s u m=0;/*FI L L*/*FI L L*/fo r (i=l;_;i+)/*L L*/if(_)if(i%2=0)(s u nFs u m+i;n+;pr int f(%6d,i);/*FI L L*/if(_)pr int f(n);)pr int f(nt o t a l=%d”,s u m);【空1】【学生答案】【参考答案】n=0【空2】【学生答案】f or(i=l;i+)【参考答案】i=300 i=I 300 i【空3】【学生答案】if()【参考答案】i%7=0|i%17=0!(i%7)I!
25、(i%17)!(i%17)11!(i%7)!(i%7&i机7)i%17=0|i%7=0【空4】【学生答案】if(_)【参考答案】n%5=0!(n%5)n/5*5=n第二套1.设有如下定义:s t r u ct s k int a;f 1 o a t b;)da t a,*p;若要使P指向da t a中的a域,正确的赋值语句是()。A、p=&da t a.a;B、p=(s t r u ct s k*)da t a,a;C、p=(s t r u ct s k*)&da t a.a;D、*p=da t a.a;C2.对于建立函数的目的,正确的说法是A、提高程序的执行效率 B、减少程序的篇幅C、减少程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 考试题
限制150内