C语言期末考试题.pdf
《C语言期末考试题.pdf》由会员分享,可在线阅读,更多相关《C语言期末考试题.pdf(39页珍藏版)》请在咨信网上搜索。
1、1.static struct int a1;float a2;char a3;a10=1,3.5,A;说明数组 a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是()。A、a10 B、a0 C、a1 D、a-1 B 2.对以下说明语句 int a10=6,7,8,9,10;的正确理解是()。A、将 5个初值依次赋给a1 至 a5 B、将 5个初值依次赋给a6 至 a10 C、因为数组长度与初值的个数不相同,所以此语句不正确D、将 5 个初值依次赋给a0 至 a4 D 3.在C语言中,能代表逻辑值“真”的是()。A、大于 0的数 B、True C、非 0的数
2、 D、非 0整数C 4.以下 read 函数的调用形式中,参数类型正确的是()。A、read(int fd,int count,char*buf)B、read(int count,char*buf,int fd)C、read(int*buf,int fd,int count)D、read(int fd,char*buf,int count)D 6.以下不符合 C语言语法的赋值语句是()。A、a=b=5;B、a=1,b=2 C、+j;D、y=(a=3,6*5);B 7.C 语言程序的三种基本结构是顺序结构、选择结构和_结构.A、递归 B、转移 C、嵌套 D、循环D 8.选择结构中的条件与循环结构
3、中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。A、-1 B、非零的数 C、1 D、0 D 9.以下叙述中不正确的是()。A、在 C程序中,赋值运算符的优先级最低B、在 C程序中,j+;是一条赋值语句C、C程序中的#include和#define 均不是 C语句D、一个好的程序应该有详尽的注释A 10.若有下列定义,则对a数组元素地址的正确引用是()。int a5,*p=a;A、&a B、p+2 C、a+D、&a5 B 11.static char str10=China;数组元素个数为()。A、5 B、10 C、6 D、9 B 12.
4、以下程序中,c的二进制值是char a=3,b=6,c;c=a b 2;A、00011100 B、00010100 C、00011000 D、00011011 D 13.以下程序的输出结果是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+y),z-);printf(“%dn”,r);A、21 B、11 C、31 D、20 A 14.以下程序的输出结果是_.void fun(int a,int b,int c)a=456;b=567;c=678;main()int x=10,y=20,z=3
5、0;fun(x,y,z);printf(%d,%d,%dn,z,y,x);A、30,20,10 B、10,20,30 C、678567456 D、456567678 A 15.执行下列程序后,其输出结果是()。main()int a=9;a+=a-=a+a;printf(%dn,a);A、18 B、-18 C、-9 D、9 B 16.若从终端输入以下数据,要给变量c赋以 283.19,则正确的输入语句是A、scanf(%8.4f”,&c);B、scanf(%6.2f”,&c);C、scanf(%f”,c)D、scanf(%8f”,&c);D 17.下列变量定义中合法的是()。A、short _
6、a=1-.1e-1;B、long do=0 xfdaL;C、double b=1+5e2.5;D、float 2_and=1-e-3;A 18.以下程序的输出结果是#define FMT“%d,”main()int b4=1,3,5,7,9,11,13,15,17,19,21,23;printf(FMT,*(*(b+1)+1);printfFMT,b22);A、1,11,B、1,11 C、11,21 D、11,21,D 19.若int a=3,则执行完表达式 a-=a+=a*a 后,a 的值是A、-15 B、0 C、-9 D、-3 B 20.以下 read 函数的调用形式中,参数类型正确的是(
7、)。A、read(int fd,int count,char*buf)B、read(int count,char*buf,int fd)C、read(int*buf,int fd,int count)D、read(int fd,char*buf,int count)D 21.已知大写字母 A的ASCII 码值是 65,小写字母 a的ASCII码是 97,则用八进制表示的字符常量101是()。A、字符 e B、字符 a C、非法的常量 D、字符 A D 22.C语言规定,函数返回值的类型是由()。A、调用该函数时的主调函数类型所决定B、return语句中的表达式类型所决定C、调用该函数时系统临时
8、决定D、在定义该函数时所指定的函数类型所决定D 23.结构化程序设计所规定的三种基本控制结构是()。A、树形、网形、环形 B、输入、处理、输出C、主程序、子程序、函数 D、顺序、选择、循环D 24.与实际参数为实型数组名相对应的形式参数不可以定义为()。A、float a;B、float a;C、float(*a)3;D、float*a;A 25.若有定义和语句:int a43=1,2,3,4,5,6,7,8,9,10,11,12,(*prt)3=a,*p4,i;for(i=0;i 4;i+)pi=ai;则不能够正确表示a数组元素的表达式是A、(*(p+1)1 B、a43 C、p00 D、pr
9、t22 B 26.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else 总与()配对A、同一行上的 if B、其之后最近的 if C、其之前最近的未配对的if D、缩排位置相同的if C 27.以下程序的输出结果是。typedef 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、8 A 28.下列程序的输出结果为()。m
10、ain()int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(%fn,x);A、28.000000 B、27.500000 C、28.500000 D、27.000000 D 29.有以下程序(提示:程序中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.dat”,“wb”);for(i=0;i 4;i+)fwrite(&ai,siz
11、eof(int),1,fp);fclose(fp);fp=fopen(“data.dat”,“rb”);fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*从文件中读取 sizeof(int)字节的数据到变量b中*/fclose(fp);执行后输出结果是A、3 B、4 C、1 D、2 A 30.printf函数中用到格式符%5s,其中数字 5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式()。A、右对齐输出该字串,左补空格 B、从左起输出该字符串,右补空格C、按原字符长从左向右全部输出 D、输出错误信息C
12、 1.语句 int max(int x,int max(int y,int z);是正确的函数声明语句.错2.若有 int=10,j=0;则执行完语句if(j=0)+;else-;的值为11。错误3.char*p=girl;的含义是定义字符型指针变量p,p 的值是字符串 girl。错4.如果想使一个数组中全部元素的值为0,可以写成int a10=0*10;错误5.如果有一个字符串,其中第十个字符为n,则此字符串的有效字符为9 个。错误6.共同体变量所占的内存长度等于最长的成员的长度正确7.函数调用语句:func(rec1,rec2+rec3,(rec4,rec5);中,含有的实参个数是5.错误
13、8.#define 和 printf 都不是 C 语句。正确9.C 语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。正确10.若有宏定义:#define S(a,b)t=a;a=b;b=t由于变量 t 没定义,所以此宏定义是错误的。正确/*-【程序设计】-功能:编写函数 fun 计算下列分段函数的值:x2+x+6 x0且x-3 f(x)=x2-5x+6 0 x10且x2及x3 x2-x-1 其它-*/#include void bky();float fun(float x)/*Begin*/*End */main()float x,f;printf(input x=);scanf
14、(%f,&x);f=fun(x);printf(x=%f,f(x)=%fn,x,f);bky();void bky()FILE*IN,*OUT;int n;float i;float o;IN=fopen(in.dat,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write FILE Error);for(n=0;n10;n+)fscanf(IN,%f,&i);o=fun(i);fprintf(OUT,%fn,o);fclose(IN);fclose(OUT);【参考代码】float
15、 y;if(x=0&x10.0&x!=2.0&x!=3.0)y=x*x-5*x+6;else y=x*x-x-1;return y;=/*-【程序设计】-功能:对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。例如:原来的字符串为CEAedca,排序后输出为CedcEAa。-*/#include#include#include int fun(char*s,int num)/*Begin*/*End */main()char s10;printf(输入 7个字符的字符串:);gets(s);fun(s,7);printf(n%s,s);NONO();NONO()int i;c
16、har a100;FILE*rf,*wf;rf=fopen(in.dat,r);wf=fopen(out.dat,w);for(i=0;i3;i+)fscanf(rf,%s,&a);fun(a,7);fprintf(wf,%s,a);fprintf(wf,n);fclose(rf);fclose(wf);【参考代码】int i,j;char t;for(i=1;inum-1;i+)for(j=i+1;jnum-1;j+)if(sisj)t=si;si=sj;sj=t;=/*-【程序设计】/*-【程序改错】-功能:根据整型形参 m,计算某一数据项的值。y=1/(100*100)+1/(200*2
17、00)+1/(300*300)+1/(m*m)例如:若 m=2000,则应输出:0.000160。-*/#include#include /*ERROR*/fun(int m)double y=0,d;int i;/*ERROR*/for(i=100,i=m,i+=100)d=(double)i*(double)i;/*ERROR*/y+=1.0 d;return(y);main()int n=2000;clrscr();printf(nThe result is%lfn,fun(n);【改错 1】【学生答案】fun(int m)【参考答案】double fun(int m)=【改错 2】【学
18、生答案】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”-*/#include#define N 80 void fun(int*w,int p,int n)/*ER
19、ROR*/int i,k=0;bN;/*ERROR*/for(i=1;i n;i+)bk+=wi;/*ERROR*/for(i=0;i=p;i+)bk=wi;for(i=0;i n;i+)wi=bi;main()int aN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;int i,p,n=15;printf(The original data:n);printf(nnEnter p:);scanf(%d,&p);fun(a,p,n);printf(nThe data after moving:n);for(i=0;i n;i+)printf(%d,ai);print
20、f(nn);【改错 1】【学生答案】int i,k=0;bN;【参考答案】int i,k=0,bN;=【改错 2】【学生答案】for(i=1;i n;i+)bk+=wi;【参考答案】for(i=p+1;i n;i+)bk+=wi;=【改错 3】【学生答案】for(i=0;i=p;i+)bk=wi;【参考答案】for(i=0;i=p;i+)bk+=wi;/*-【程序填空】-功能:打印以下图形。*-*/main()char a59=;int i,j;for(i=0;i5;i+)/*FILL*/for(j=i;_;j+)aij=*;/*FILL*/for(_;i5;i+)for(j=0;j9;j+)
21、/*FILL*/printf(%c,_);/*FILL*/_;【空 1】【学生答案】for(j=i;_;j+)【参考答案】jj jj=【空 2】【学生答案】for(_;i5;i+)【参考答案】i=0=【空 3】【学生答案】printf(%c,_);【参考答案】aij=【空 4】【学生答案】_;【参考答案】printf(n)=/*-【程序填空-功能:以每行 5个数来输出 300以内能被 7或17整除的偶数,并求出其和。-*/#include#include main()int i,n,sum;sum=0;/*FILL*/_ /*FILL*/for(i=1;_;i+)/*FILL*/if(_)if
22、(i%2=0)sum=sum+i;n+;printf(%6d,i);/*FILL*/if(_)printf(n);printf(ntotal=%d,sum);【空 1】【学生答案】_【参考答案】n=0=【空 2】【学生答案】for(i=1;_;i+)【参考答案】i=300 i=I 300i=【空 3】【学生答案】if(_)【参考答案】i%7=0|i%17=0 !(i%7)|!(i%17)!(i%17)|!(i%7)!(i%7&i%17)i%17=0|i%7=0=【空 4】【学生答案】if(_)【参考答案】n%5=0 !(n%5)n/5*5=n =、第二套1.设有如下定义:struct sk i
23、nt a;float b;data,*p;若要使 p指向 data 中的 a域,正确的赋值语句是()。A、p=&data.a;B、p=(struct sk*)data.a;C、p=(struct sk*)&data.a;D、*p=data.a;C 2.对于建立函数的目的,正确的说法是A、提高程序的执行效率 B、减少程序的篇幅C、减少程序文件所占的内存 D、提高程序的可读性D 3.若有定义:int*p3;,则以下叙述中正确的是()。A、定义了一个名为*p 的整型数组,该数组含有三个int类型元素B、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素C、定义了一个指针数组p
24、,该数组含有三个元素,每个元素都是基类型为int 的指针D、定义了一个基类型为int 的指针变量 p,该变量具有三个指针C 4.下面说法中错误的是A、函数可以返回一个共用体变量B、在任一时刻,共用体变量的各成员只有一个有效C、共用体内的成员可以是结构变量,反之亦然D、共用体变量的地址和它各成员的地址都是同一地址A 5.若要用 fopen 函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是()。A、ab B、wb+C、ab+D、rb+B 6.表达式 18/4*sqrt(4.0)/8值的数据类型为()。A、float B、double C、不确定 D、int B 7.先用语句定
25、义字符型变量c,然后要将字符 a赋给 c,则下列语句中正确的是()。A、c=a;B、C=97 C、c=a;D、c=97;C 8.设以下变量均为int 类型,则值不等于7的表达式是()。A、(y=6,y+1,x=y,x+1)B、(x=6,x+1,y=6,x+y)C、(x=y=6,x+y,y+1)D、(x=y=6,x+y,x+1)B 9.下列程序的输出为()。main()int y=10;while(y-);printf(y=%dn,y);A、while 构成无限循环 B、y=0 C、y=-1 D、y=1 C 10.为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。A、stati
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 考试题
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。