![c语言课件 c3学习资料_第1页](http://file4.renrendoc.com/view15/M01/1B/21/wKhkGWemnhOAHcqEAAFal_7I8dc481.jpg)
![c语言课件 c3学习资料_第2页](http://file4.renrendoc.com/view15/M01/1B/21/wKhkGWemnhOAHcqEAAFal_7I8dc4812.jpg)
![c语言课件 c3学习资料_第3页](http://file4.renrendoc.com/view15/M01/1B/21/wKhkGWemnhOAHcqEAAFal_7I8dc4813.jpg)
![c语言课件 c3学习资料_第4页](http://file4.renrendoc.com/view15/M01/1B/21/wKhkGWemnhOAHcqEAAFal_7I8dc4814.jpg)
![c语言课件 c3学习资料_第5页](http://file4.renrendoc.com/view15/M01/1B/21/wKhkGWemnhOAHcqEAAFal_7I8dc4815.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、单项选择题(共20小题;每小题1分,共20分)一、单项选择题(共20小题;每小题1分,共20分)1、下列常量不合法的是()。A.1.5E-2B.‘BASIC’C.0x12D.“\\good”2、下列变量名中不合法的是()。A.iCountB.Stu_NOC.INTD.vc++3、设变量已正确定义并赋值,以下正确的表达式是()。A.b=7++B.x=3,++yC.a=7%3.0D.x=y+1=24、表达式sizeof(double)-sizeof(3.1f)+3/2的值是()。A.4B.5C.5.5D.1.55、下列各语句序列判别变量a、b的大小,若a<b则交换它们的值,其中正确的是()。A.if(a<b){t=a;a=b;b=t;}
B.if(a<b)a=b;b=a;
C.if(a<b){a=b;b=a;}
D.if(a<b)t=a;a=b;b=t;6、已知有程序段:inta=1,*p=&a,**q; q=&p; **q=3; printf("%d\n",a);则该程序段正确执行后输出结果为()。A.1B.3C.该程序段有语法错D.该程序段没有输出结果7、若有说明:int*p,m=3,n;,则以下正确的程序段是()。A.p=&n;scanf("%d",&p);B.p=&&n;scanf("%d",*p);C.scanf("%d",&n);*p=n;D.p=&n;*p=m;8、设有以下说明语句,则下面的叙述中不正确的是()。typedefstructstudent{longStuNO;charStuname[9];charsex;floatcscore;}STU;
A.typedef是给类型起别名
B.STU是结构变量名
C.StuNO是结构体STU的一个成员D.STU是结构类型名9、有定义或声明:int*myf(floatx,longy);,若以下选项中的正确的是()。A.myf是指针数组;B.myf是数组指针;C.myf是指针函数;D.myf是函数指针;10、C语言中函数返回值的类型是由()决定的。A.传递给函数的实参类型B.return语句中的表达式类型C.调用该函数的主调函数类型D.定义函数时所指定的函数返回值类型11、若有宏定义:#defineFUN(x)x%x,则表达式FUN(2+3)的值为()。A.5B.0C.6D.712、设有定义语句:charc1=32,c2=32;则以下表达式中值为0的是()。A.c1^c2
B.c1&c2
C.~c2 D.c1|c213、若有以下定义语句:intm[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是()。A.m[i]B.m[2*2]C.m[m[0]]D.m[m[i]]14、以下对二维数组arr的定义正确的是()。A.intarr[5][]={1,2,3};B.intarr[][1]={{1,2,3},{4,5,6}};C.intarr[3][3]={0};D.intarr[2][3]={1,2,3,4,5,6,7,8};15、若有定义语句:chars[]="hello\0theworld";,则strlen(s)的值是()。A.5B.6C.14D.1516、有定义inti=88,j=99,*p,*q;p=&i;q=&j;p=q;则printf("%d%d",*p,*q)结果是()。A.8888B.8899C.9999D.998817、已知有定义inta[8]={0},*p=a;,则不能表示a[1]元素的值的是()。A.*(p+1)B.*(++a)C.p[1]D.*&a[1]18、有定义如下:structtest{inta;intb[2];}s[3]={{111,1,2},{222,3,4},{333,5,6}};则s[1].b[0]的值是()。A.3B.4C.5D.619、若要以写的方式创建新的文本文件,则在fopen函数中使用的打开方式是()。A."w" B."rb"C."rb+" D."a+b"20、若有定义:inta[5][2]={7,6,5,4,3,2,1},*p=a[1];则*(++p)的值是()。A.2B.3C.4D.5二、阅读程序题,写出下列程序的运行结果。(本题10小题,每小题3分,共30分)1、main(){ FILE*fp;inti,buf[]={8,7,6,5,4,3,2,1}; fp=fopen("mytest.dat","wb+"); fwrite(buf,sizeof(int),8,fp); fseek(fp,sizeof(int)*4,SEEK_SET); fread(buf,sizeof(int),4,fp);fclose(fp); for(i=0;i<8;i++)printf("%d",buf[i]);}输出结果为:______________________________。2、main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}输出结果为:______________________________。3、#include<string.h>main(){charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";strcpy(p+strlen(q),r);strcat(p,q);printf("%d%d\n",sizeof(p),strlen(p));}输出结果为:______________________________。4、以下程序设从键盘输入ABC后按<Enter>键。voidf(){ charch=getchar(); printf("%c",ch);if(ch!='\n') f();printf("%c",ch);}voidmain(){f();}输出结果为:______________________________。5、main(){char*q[4]={"NANJING","BEIJING","HANGZHOU","SHANGHAI"};char**p=q;for(inti=0;i<4;i++,p++)printf("%c",*(*p+3)+1);}输出结果为:______________________________。6、intn;voidf(intn){staticinta=3;n+=2;a++;printf("%d%d",n,a);}main(){f(n);f(n=5);printf("%d",n);}输出结果为:______________________________。7、main(){intx,y,z; x=y=z=0; ++x||++y&&++z; printf("%d%d%d\n",x,y,z);}输出结果为:______________________________。8、voidf(int*q){inti;for(i=0;i<5;i++)--(*q);}main(){inta[5]={6,6,6,6,6},i;f(a+2); for(i=0;i<5;i++)printf("%d",a[i]);} 输出结果为:______________________________。9、main(){charstr[3][7]={"1234","5678"},*myp[2];inti,j,s=0; for(i=0;i<2;i++)myp[i]=str[i]; for(i=0;i<2;i++) for(j=1;myp[i][j]!=’\0’;j+=2) s=10*s+myp[i][j]-'0'; printf("%d\n",s);}输出结果为:______________________________。10、structNODE{intnum;structNODE*next;};main(){structNODEa[3]={{0,a+1},{0,a+2},{0,a}},*p=&a[0],*q=&a[1],*r=&a[2];p->num=77;q->num=88;r->num=99;p->next=q;q->next=r;r->next=NULL;printf("%d\n",p->next->next->num);}输出结果为:______________________________。三、程序填空题(共7小题,每空2分,共20分)1、下面程序的功能是判断short型能表示的最大值。请填空。main(){ shortn=0,m; while(1) { m=n; n++; if(n<0) _______________; } printf("%d\n",m);}2、建立一个链表,将存储在字符数组中的字符依次转储到链表的各个结点中。#include<stdlib.h>typedefstructnode{chardata;structnode*next;}NODE;NODE*CreatList(chars[]){NODE*head,*p,*last=NULL;while(*s!='\0'){p=______________________________;p->data=*s++; p->next=NULL; if(last!=NULL) last->next=p; elsehead=p; last=p;}return_______________;}main(){chars[]="Hello2012!";NODE*head;head=CreatList(s);}3、以下程序的功能是:输入两个整数,求出它们的最大公约数并输出,请填空。intgcd(inta,intb){ intk; k=_______________; while(k!=0) {a=b;b=k;k=a%b; } _______________;}main(){ inta,b; scanf("%d%d",&a,&b); printf("%d",gcd(a,b));}4、将一个字符串中的小写字母变为大写字母,其他字符不变。main(){chars[]="Hello,2012!",*q;q=s;while(*q) {if(*q>='a'&&*q<='z')_______________;q++; }printf("%s\n",s);}5、将有N个元素的数组a中的数据逐个前移,第一个元素移到最后面。如有数组:12345678移动后的结果为:23456781。#defineN8main(){inta[N]={1,2,3,4,5,6,7,8},i,t;t=_______________;for(i=0;i<N-1;i++) _______________; a[N-1]=t;for(i=0;i<N;i++) printf("%d",a[i]);}6.下面程序打出如下图案:****************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<40-i;j++) printf(""); for(j=1;j<=2*i-1;j++)_______________;printf("\n");}} 7.以下程序中函数fun的功能是:统计结构体数组中所有成绩不及格的女同学(sex为’F’)的个数,存入变量n中,并做为函数值返回。#defineN5typedefstructstduent{intno;charnam[9];charsex;floatscore;}STU;intfun(STUs[]){inti,n=0;for(i=0;i<N;i++)if(______________________________)n++;returnn;}main(){STUa[N]={{1,"Kate",'F',88},{2,"Bob",'M',66},{3,"Tom",'M',77},{4,"Betty",'F',51},{5,"Sarah",'F',57}};intn;n=fun(a);printf("n=%d\n",n);}四、编程题(共3小题,每小题10分,共30分)1、统计一个字符串中大写字母、小写字母、数字字符和其他字符的个数。2、从键盘输入10个整数建立一个数组,请将该数组的最大值和位置打印出来,寻找最大值和位置的工作必须在子函数内完成,由主函数调用。3、编程求一个字符串的长度,不得使用string.h中的库函数。函数原型如下,请完成该函数,并写出主函数予以测试。intmystrlen(char*s);/*当s为“Hello”时,长度为5*/15.已知函数abc的定义为:voidabc(){……},则()。A.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回C.执行函数abc后,可以返回任意类型D.执行函数abc后,可以返回整型值16.若要在程序中定义一个计算两个整数相加的函数,则下面定义()是正确的。A.intadd(inta,b){returna+b;}
B.add(inta,intb){returna+b;}C.intadd(inta,intb){returna+b;}D.intadd(inta,intb){returna+b}(34)有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A)a[p-a]B)*(&a[i])C)p[i]D)*(*(a+i))考生答案:正确答案:D(33)以下不正确的定义语句是A)doublex[5]={2.0,4.0,6.0,8.0,10.0};B)inty[5.3]={0,1,3,5,7,9};C)charc1[]={′1′,′2′,′3′,′4′,′5′};D)charc2[]={′\x10′,′\xa′,′\x8′};考生答案:正确答案:B18.下面数组定义中正确的是()。A.inta[2][3]={1,2,3,4,5,6,7};B.intb[][3]={0,1,2,3};C.intcase[10][5]={0};D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};18.以下对二维数组a定义正确的是()。A.inta[3][];B.floata(3,4);C.doublea[1][4];D.floata(3)(4);20.若有定义charb[5],*p=b;,则正确的赋值语句是()。A.b="abcd" B.*b="abcd"C.p="abcd"D.*p="abcd"21.若有定义inta[]={1,4,7,10,13},*p=a;,则下列不表示数组元素a[3]的值的是()。A.*(p+3)B.*&a[3]C.*(a+3)D.*p+321.有语句chars[]="ACEG",*p=s;则printf("%c",*p+3);的输出结果是()。A.CB.DC.ED.G21.已知 inta[]={1,2,3,4,5},b[]={6,7,8,9,10};int*p=a,*q=b+4;则*q-*p的值是()。A.3B.5C.7D.923.有结构定义structstudent{charname[10];longstu_no;floatscore[3];}s1={"Li",830021,89,78,44};则s1.score[0]的值是()。A.78B.44C.89D.8322.有结构定义如下:structstudent{intstu_num;charname[10];charsex;intscore;}*p;则p对成员变量sex的引用正确的是()。A.p->sexB.(*p)->sexC.p.sexD.(&p)->sex23.下列关于链表结点的定义,正确的是()。A.structnode{B.structnode{intdata;floatdata;int*next);};structnode*link;};C.structnode{D.structnode{floatdata;floatdata;structnode*link;}structnodepp;};23.若有结构定义:structdate{intday,month,year;};structstudent{char*name;charsex;structdatebirthday;}myday;则结构变量myday对于成员year的表示方法是()。A.myday.yearB.myday.birthday.yearC.myday.date.yearD.myday.birthday.date.year填空题(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,考生答案:正确答案:C(18)以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,若一维数组中的数据是:2223445666677899101010删除后,数组中的内容应该是:2345678910。请填空。#include<stdio.h>#defineN80intfun(inta[],intn){inti,j=1;for(i=1;i<n;i++)if(a[j-1]【19】a[i])a[j++]=a[i];【20】;}main(){inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;printf("Theoriginaldata:\n");for(i=0;i<n;i++)printf("%3d",a[i]);n=fun(a,n);printf("\nThedataafterdeleted:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");}A考生答案:正确答案:!=B考生答案:正确答案:returnjintb=2;intfunc(int*a){b+=*a;return(b);}main(){inta=2,res=2;res+=func(&a);printf("%d\n",res);}A)4B)6C)8D)10考生答案:正确答案:B填空编程题(20分,每空2分)1.求两点之间的距离1.以下程序的功能是:输入一个整数,输出这个数的绝对值,请填空。main(){intx;scanf("%d",&x);if(x>=0)printf("%d\n",x);elseprintf("%d\n",__________);}1.以下程序的功能是:输入一个整数,判断它的奇偶性,请填空。main(){inti;scanf("%d",&i);if()printf("%d是奇数",i);elseprintf("%d是偶数",i);}2.下面的程序是判断一个数是否为素数的程序。main(){ intx;scanf("%d",&x); for(inti=2;i<x;i++) if(x%i==0) { printf("不是素数"); break; } if(__________) printf("是素数");}2.下面程序用于输出九九乘法表的下三角,即:1×1=12×1=22×2=4……………9×1=49×2=89×3=129×4=16……………9×9=81请完善程序。main(){inti,j;for(i=1;i<=9;i++){for(j=1;_____________;j++)printf("%d×%d=%d",i,j,i*j);printf("\n");}}(25)下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空。#include<stdio.h>main(){inta,b,t;scanf("%d%d",&a,&b);while(_______){if(a>b){t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}}A)!a=bB)a!=bC)a==bD)a=b考生答案:正确答案:B3.下列程序的功能是从键盘输入两个double型数据给变量x和y,然后在main()函数中调用exchange()函数将变量x和y的内容对调。voidexchange(double*x,double*y){doublet; t=*x;*x=*y;*y=t;}main(){doublex,y; scanf("%lf%lf",&x,&y); printf("x=%lfy=%lf\n",x,y); exchange(_____________); printf("x=%lfy=%lf\n",x,y);}3.下列程序的功能是将字符串t复制到字符串s中,并将s显示出来。voidmystrcpy(char*str1,char*str2){inti=0;while(*str2) {*str1=*str2; str1++;str2++; } *str1=____________;}main(){ chars[20],t[20]; printf("Enterastring:"); scanf("%s",t);mystrcpy(s,t); printf("%s\n",s);}main()4.定义一个结构类型,要求输入一个学生的数学和计算机两门课的成绩,然后计算并输出其平均成绩.main(){structstudent{intmath,computer;}stu;printf("pleaseinputscore:");scanf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昆明2025年云南昆明市生态环境局所属事业单位引进高层次人才笔试历年参考题库附带答案详解
- 2025年中国双人翻转座椅骨架市场调查研究报告
- 广西2025年广西合浦儒艮国家级自然保护区管理中心招聘笔试历年参考题库附带答案详解
- 2025至2031年中国铝合金丝编织管行业投资前景及策略咨询研究报告
- 2025至2031年中国精密交流脉冲焊接机行业投资前景及策略咨询研究报告
- 2025至2031年中国玻璃卫浴产品行业投资前景及策略咨询研究报告
- 2025至2031年中国汽车前大灯镜片行业投资前景及策略咨询研究报告
- 惠州2025年广东惠州龙门县市容环境卫生事务中心招聘编外环卫工人14人笔试历年参考题库附带答案详解
- 2025年平移大门驱动系统项目可行性研究报告
- 2025年合金钢衬项目可行性研究报告
- 普惠金融政策与区域差异
- 货车租赁协议样式
- JT-T-1004.1-2015城市轨道交通行车调度员技能和素质要求第1部分:地铁轻轨和单轨
- (高清版)WST 408-2024 定量检验程序分析性能验证指南
- 复工复产安全检查记录(总表)
- 医疗PDCA案例模板
- YB∕T 5363-2016 装饰用焊接不锈钢管
- 江苏省2023年中职职教高考文化统考语文
- 客户投诉处理情况总结范文
- 危险化学品押运员培训
- 干细胞市面推广方案
评论
0/150
提交评论