C语言程序设计试卷(B卷)资料_第1页
C语言程序设计试卷(B卷)资料_第2页
C语言程序设计试卷(B卷)资料_第3页
C语言程序设计试卷(B卷)资料_第4页
C语言程序设计试卷(B卷)资料_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《C语言程序设计》--------------------------:---号---学-------------------------

期末考试试卷(B卷)课程名称C语言程序设计 课程编号84810005 任课教师题型 单选题 填空题 阅读题 编程题 总分分值 30 26 24 20 100得分线-得分评阅人-:--一、单选题:(共30题,每题1分,共30分)-名---姓---生---学------1、在计算机内一切信息的存取、传输和处理都是以()形式进行的。----A.ASCII码B.二进制C.十进制D.十六进制--封2、下面四个选项中,均是不合法的转义字符的选项是()。--:-A.'\"''\\''\xf'B.'\1011''\''\ab'--级---C.'\011''\f''\}'D.'\abc''\101''xlf'年--------3、下面程序段输出结果是()。-----shortinti=32769;---printf("%d\n",i);-----A.32769B.32767C.-32767D.输出不是确定的数-:密-4、若有说明语句:inta;floatb;,以下输入语句正确的是()。-业---专-A.scanf("%f%f",&a,&b);B.scanf("%f%d",&a,&b);----C.scanf("%d,%f",&a,&b);D.scanf("%6.2f%6.2f",&a,&b);-------------5、设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是()。----A.1B.2C.3D.4-:--)---系--6、以下for循环的执行次数是()。-(---院-for(x=0,y=0;(y=123)&&(x<4);x++);---A.是无限循环B.循环次数不定C.4次D.3次-7、若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( )。A.2 B.3 C.4 D.无确定值8、以下程序的输出结果是( )voidmain(){charst[20]="hello\0\t\\\";printf(%d %d\n",strlen(st),sizeof(st));}A.9 9 B.5 20 C.13 20 D.20 209、以下正确的说法是( )。定义函数时,形参的类型说明可以放在函数体内。return后边的值不能为表达式。如果函数值的类型与返回值类型不一致,以函数值类型为准。如果形参与实参类型不一致,以实参类型为准。10、在C语言中,函数的隐含存储类别是()。A.autoB.staticC.externD.无存储类别11、已有如下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的正确定义方式为()。inta[3][4];f(a);A.f(intarray[][6])B.f(intarray[3][])C.f(intarray[][4])D.f(intarray[2][5])12、下面能正确进行字符串赋值操作的是()。A.chars[5]={"ABCDE"};B.chars[5]={'A','B','C','D','E'};C.char*s;s="ABCDE";D.char*s;scanf("%s",s);13、变量的指针,其含义是指该变量的()。A.值B.地址C.名D.一个标志14、若有定义:inta[8];则以下表达式中不能代表数组元素a[1]的地址的是()。A.&a[0]+1B.&a[1]C.&a[0]++D.a+115、设已有定义:char*st="howareyou";下列程序段中正确的是()。A.chara[11],*p;strcpy(p=a+1,&st[4]);B.chara[11];strcpy(++a,st);C.chara[11];strcpy(a,st);D.chara[],*p;strcpy(p=a[1],st+2);16、若有以下定义和语句,则对s数组元素的正确引用形式是()。ints[4][5],(*ps)[5];ps=s;A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3第 1 页(共 6 页)17、以下程序运行的结果是()。-#defineADD(x)x+x-voidmain()-----{----intm=1,n=2,k=3;-----intsum=ADD(m+n)*k;---printf("sum=%d",sum);----}-----A.sum=9B.sum=10C.sum=12D.sum=18---------18、根据下面的定义,能打印出字母M的语句是()。---structperson----{-----charname[9];-intage;线};-----structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"adam",16};----A.printf("%c\n",class[3].name);B.printf("%c\n",class[3].name[1]);----C.printf("%c\n",class[2].name[1]);D.printf("%c\n",class[2].name[0]);-------19、以下程序的输出是()。----structst{intx;int*y;}*p;-封intdt[4]={10,20,30,40};---structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};----voidmain()--{----p=aa;-----printf("%d\n",++(p->x));---}-----A.10B.11C.51D.60---密20、以下程序的输出是()。-----unionmyun--{-----struct{intx,y,z;}u;-----intk;----}a;----voidmain()----{-----a.u.x=4;a.u.y=5;a.u.z=6;-----a.k=0;----printf(%d\n",a.u.x);-}A.4B.5C.6D.021、已知:chars[6],*ps=s;则正确的赋值语句是 (21) 。s="12345";*s="12345";ps="12345";*ps="12345";22、已知:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*ptr)[3]=a,*p=a[0];则以下能够正确表示数组元素a[1][2]的表达式是(22)。*(*(a+1)+2)*(*(p+5))(*ptr+1)+2*((ptr+1)[2])23、已知:inta[]={1,3,5,7},y*p=a;为使变量y的值为3,下列语句正确的是 (23) 。y=++*p++;y=++(*p++);y=(++*p)++;y=(*++p)++;24、函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是。voidfuna(int*x,int*y){int*p;p=x;*x=*y;*y=*p;}voidfunb(intx,inty){intt;t=x;x=y;y=t;}voidfunc(int*x,int*y){*x=*y;*y=*x;}voidfunc(int*x,int*y){*x=*x+*y;*y=*x-*y;*x=*x-*y;}第 2 页(共 6 页)25、已知:structst{-intn;---structst*next;----};---staticstructsta[3]={1,&a[1],3,&a[2],5,&a[0]},*p;-----如果下述语句的显示是2,则对p的赋值是(25)。----printf("%d",++(p->next->n));----A)p=&a[0];B)p=&a[1];C)p=&a[2];D)p=&a[3];-------26、已知:-----struct{---inti;------charc;----floata;-线}test;-则sizeof(test)的值是(26)。----A)4B)5C)6D)7----------27、函数rewind的作用是()。----A.使位置指针重新返回文件的开头----B.将位置指针指向文件中所要求的特定位置--C.使位置指针指向文件的末尾封D.使位置指针自动移至下一个字符位置---------28、fseek函数的正确调用形式是()。----A.fseek(文件类型指针,起始点,位移量)--B.fseek(fp,位移量,起始点)----C.fseek(位移量,起始点,fp)-----D.fseek(起始点,位移量,文件类型指针)----密29、设有以下结构体类型:-structst{charname[8];intnum;floats[4];}student[50];----并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下不正确的形式---是()。-----A.fwrite(student,sizeof(structst),50,fp);----B.fwrite(student,50*sizeof(structst),1,fp);-----C.fwirte(student,25*sizeof(structst),25,fp);----D.for(i=0;i<50;i++)----fwrite(student+i,sizeof(structst),1,fp);--------30、若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是----()。-A.fopen("A:\user\abc.txt","r")B.fopen("A:\\user\\abc.txt","r+")C.fopen("A:\user\abc.txt","rb")D.fopen("A:\\user\\abc.txt","w")得分 评阅人二、填空题:(共6题,共13空,每空2分)31、下面的程序的功能是求一维数组中的最小元素。findmin(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]<s[*k])(1) ;}main(){inta[10],i,*k=&i;for(i=0;i<10;i++)scanf("%d",&a[i]);findmin(a,10, (2) );printf("%d,%d\n",*k,a[*k]);}32、下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。main(){inti,j;for(i=0;(3);i++){j=i*10+6;if((4))countinue;printf("%d",j);}}第 3 页(共 6 页)--33、下面程序的功能是删除字符串s中的空格。----#include<stdio.h>----main()---{----char*s="Beijingligongdaxue";-----inti,j;----for(i=j=0;s[i]!='\0';i++)----if(s[i]!='')(5);---else(6);----s[j]='\0';-----printf("%s",s);---}---线-34、下面程序的功能是从终端上输入5个人的年龄、性别和姓名,然后输出。----#include"stdio.h"----structman--{----charname[20];-----unsignedage;---charsex[7];-封};---main()---{-----structmanperson[5];----data_in(person,5);----data_out(person,5);---}----data_in(structman*p,intn)---{密structman*q=(7);----for(;p<q;p++)-----{-----printf("age:sex:name");----scanf("%u%s",&p->age,p->sex);---(8);----}----}-----data_out(structman*p,intn)---{----structman*q=(9);--for(;p<q;p++)printf("%s;%u;%s\n",p->name,p->age,p->sex);}35、下面函数的功能是将字符变量的值插入已经按 ASCII码值从小到大排好序的字符串中。voidfun(char*w,charx,int*n){inti,p=0;while(x>w[p]);for(i=*n;i>=p;i--);w[p]=x;++*n;}36、下面程序的功能是把从键盘输入的文件(用@作为文件结束标志)复制到一个名second.txt的新文件中。#include<stdio.h>FILE*fp;main(){charch;if((fp=fopen( (12) ))==NULL)exit(0);while((ch=getchar())!='@')fputc(ch,fp);;}得分 评阅人三、阅读题:(共6题,每题4分)37、下面程序的输出结果是 (1) 。main(){inta=1,b=0;do{switch(a){case1: b=1;break;case2: b=2;break;default: b=0;}b=a+b;}while(!b);printf("a=%d,b=%d",a,b);}第 4 页(共 6 页)38、下面程序的输出结果是 (2) 。main()-{------------------------------------------------}-------

intx,i;for(i=1;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d",x);}线-39、下面程序的输出结果是(3)。----main()---{-----inti,j,k=10;-----for(i=0;i<2;i++)-----{----k++;-封{---intk=0;--for(j=0;j<=3;j++)-----{-----if(j%2)----continue;---k++;-----}---}密k++;---}----printf("k=%d\n",k);-----}-----------------------------------40、下面程序的输出结果是 (4) 。#include<stdio.h>voidfun(int*s){staticintj=0;do{s[j]+=s[j+1];}while(++j<2);}main(){intk,a[10]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}41、下面程序的输出结果是 (5) 。voidive(intx[],intn){int t,*p;p=x+n-1;while(x<p){t=*x;*x++=*p;*p--=t;}}main(){inti,a[]={1,2,3,4,5,6,7,8,9,0};ive(a,10);for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}42、以下程序的输出结果是 (6) 。#include<stdio.h>main(){unionEXAMPLE{struct{int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论