版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目9【思考与练习】一、选择题1.变量的指针,其含义是指该变量的(B)。A值B地址C名D一个标志2.若有语句int*point,a=6;和point=&a;下面均代表地址的一组选项是(D)。Apoint,*&aB&*a,&a,*pointC*&point,*point,&aD&a,&*point,point3.下列不正确的定义是(A)。
Aint*p=&i,i;Bint*p,i;
Cinti,*p=&i;Dinti,*p;4.若有说明;int*p,m=5,n;以下正确的程序段的是(D)。Ap=&n;Bp=&n;scanf("%d",&p);scanf("%d",*p);Cscanf("%d",&n);Dp=&n;*p=n;*p=m;5.以下程序执行后,a的值是(B)。main(){inta,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;printf("%d\n",a);getch();}A4B1C0D运行时出错,无定值二、简答题1.编写一个函数,将一个3*4的二维数组矩阵转置。用指向数组的指针实现。答案:#include<stdio.h>voidfunc(int(*pa)[4],int(*pb)[3],intx,inty){ inti,j; //输出pa指向的二维数组的元素 for(i=0;i<x;i++) { for(j=0;j<y;j++) { printf("%d\t",pa[i][j]); pb[j][i]=pa[i][j];//矩阵转置 } printf("\n"); } printf("\n\n"); for(i=0;i<y;i++) { for(j=0;j<x;j++) { printf("%d\t",pb[i][j]); } printf("\n"); }}intmain(){inti,j; intarr[3][4],brr[4][3]; for(i=0;i<3;i++) { for(j=0;j<4;j++) { scanf("%d",&arr[i][j]); } }return0;}编写一个程序统计候选人得票数。设有4名候选人,以输入候选人人名方式模拟唱票,最后输出每个候选人的得票数。计算得票数的过程用函数实现。答案:#include"string.h"structperson /*定义结构体类型*/{charchName[15]; intiCount;};voidfnCount(structperson*pStr) /*计算每个人的票数*/{inti,j;charchName[15];printf("\nInputname\n");for(i=1;i<=10;i++){scanf("%s",chName);for(j=0;j<4;j++)if(strcmp(chName,(pStr+j)->chName)==0)(pStr+j)->iCount++;}}voidfnData_put(structperson*pStr)/*输出每个候选人及票数*/{intj;printf("\nresult:");for(j=0;j<4;j++,)printf("\n%s=%d",(pStr+j)->chName,(pStr+j)->iCount);}voidmain(){structpersonstLeader[4]={{"Li",0},{"Wang",0},{"Zhang",0},{"Shen",0}};fnCount(stLeader);fnData_put(stLeader);}指针作为函数参数,实现两个数值交换。答案:#include<stdio.h>voidswap(int*a,int*b)//函数参数为指针类型{ inttemp; temp=*a; *a=*b; *b=temp;}voidmain(){ inta=10,b=20; printf("调用函数前变量a和b的值为:%d%d\n",a,b); swap(&a,&b); printf("调用函数后变量a和b的值为:%d%d\n",a,b);}利用指针查找数列中的最大值和最小值在窗体上输入10个整数,自动查找这些数中的最大值和最小值,并显示在窗体上。答案:#include<stdio.h>voidfnMax_min(inta[],intn,int*max,int*min){int*p;*max=*min=*a; /*初始化最大值、最小值*/for(p=a+1;p<a+n;p++) if(*p>*max)*max=*p; /*最大值*/ elseif(*p<*min) *min=*p; /*最小值*/ return;}voidmain(){inti,a[10],max,min; printf("请输入10个整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); /*输入数组元素*/ fnMax_min(a,10,&max,&min); /*返回最大值和最小值*/ printf("最大数是%d\n",max); /*输出最大值*/ printf("最小数是%d\n",min); /*输出最小值*/}用函数指针来实现对函数的调用,返回两个整数中的最大值。答案:intmax(inta,intb);intmain(){intx,y,maxVal;int(*pmax)(int,int)=max;printf("Inputtwonumbers:");scanf("%d%d",&x,&y);maxVal=(*pmax)(x,y);printf("Maxvalue:%d\n",maxVal);getchar();getchar();return0;}intmax(inta,intb){returna>b?a:b;}项目10思考与练习】一、选择题1、当已存在一个abc.txt文件时,执行函数fopen("abc.txt","r+")的功能是D。A.打开abc.txt文件,清除原有的内容B.打开abc.txt文件,只能写入新的内容C.打开abc.txt文件,只能读取原有内容D.打开abc.txt文件,可以读取和写入新的内容2、若用fopen()函数打开一个已存在的文本文件,保留该文件原有内容,且可以读,可以写。则文件打开模式是C。A."ab+" B."w+" C."a+" D."a"3、以下不能将文件指针重新移到文件开头位置的函数是D。A.rewind(fp); B.fseek(fp,0,SEEK_SET);C.fseek(fp,-(long)ftell(fp),SEEK_CUR); D.fseek(fp,0,SEEK_END);4、若用fopen()函数打开一个新二进制文件,该文件可以读也可以写,则文件的打开模式为B。A."ab+" B."wb+" C."rb+" D."a+"5、fread(buffer,64,2,fp)的功能是D。A.从fp所指的文件中读取64并存入buffer中B.从fp所指的文件中读取64和2并存入buffer中C.从fp所指的文件中读取64个字节的数据并存入buffer中D.从fp所指的文件中读取2个64字节的数据并存入buffer中6、以下程序的功能是D。提示:PRN是打印设备。#include<stdio.h>voidmain(){FILE*fp;charchStr[]="HELLO";fp=fopen("PRN","w");fputs(chStr,fp);fclose(fp);}A.在屏幕显示HELLO B.把HELLO存入PRN文件中C.在打印机上打印出HELLO D.以上都不对二、填空题1、使用fopen("abc","r+")打开文件时,若"abc"文件不存在,则返回(NULL)。2、假设数组dArray声明为doubledArray[4]={2.3,45.6,5.7,10.89},则将数值5.7写入文件指针fp所指向的文件的语句是(fwrite(&disarray[2],4,1,fp);)。3、fputs("ShenZhen",fp)的功能是(将字符串”ShenZhen”写入文件指针fp所指向的文件)。其中,fp为一文件指针。4、文件指针fp指向一个打开的文件,则将文件位置指针移离文件开头64个字节处,应使用的函数调用语句是(fseek(fp,64,0)),将文件位置指针移离文件当前位置32个字节处,应使用的函数调用语句是(fseek(fp,32,1)),将文件位置指针移离距末尾文件128个字节处,应使用的函数调用语句是(fseek(fp,128,2))。三、简答题1、从键盘输入一个字符串,然后保存在文件“test.txt”中。答案:#include"stdio.h"voidmain(){FILE*fp;charchInfo[20];inti;fp=open("myInfo.txt","w");if(fp==-1){printf("cannotopenthisfile!\n");exit());}printf("pleaseinputastring:");scanf("%s",chInfo);write(fp,chInfo,10);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据分析项目外包合作协议
- 医疗机构与医学院合作协议书
- 国际贸易2024年产品购销协议
- 林地灌溉合同范例
- 砂石设备采购合同范例
- 悉尼汽车过户合同范例
- 郑州正规新房购房合同模板
- 临时移动厕所租赁合同范例
- 钢筋笼制作劳务合同模板
- 直客旅游合同范例
- 中西医结合脑瘫康复课件
- 维修工程屋面SBS防水投标文件
- 与同学友好相处主题班会课件(共20张PPT)
- 各种常见职业与其相应的职业能力要求
- 仓库叉车操作安全培训
- 冰冻雨雪灾害天气应急救援
- 心理测评量表介绍全解课件
- 天津市区县示范产业园规划设计导则课件
- 山东省政府采购评审专家学习检测题库801-932
- 初中物理-试卷讲评教学设计学情分析教材分析课后反思
- 重庆江北国际机场
评论
0/150
提交评论