版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题九单项选择题已知:int*p,a;则语句"p=&a;"中的运算符"&"的含义是()。A)位与运算B)逻辑与运算C)取指针内容D)取变量地址2、已知:inta,x;则对的的赋值语句是()。A)a=(a[1]+a[2])/2B)a*=*a+1;C)a=(x=1,x++,x+2);D)a="goog";3、已知:inta,*p=&a;则下列函数调用中错误的是()。A)scanf("%d",&a);B)scanf("%d",p);C)printf("%d",a);D)printf("%d",p);4、main(argc,argv)中形式参数argv的对的阐明形式应当为()。A)char*argv[]B)charargv[][]C)charargv[]D)char*argv5、阐明语句"int(*p)();"的含义是()。p是一种指向一维数组的指针变量p是一种指针变量,指向一种整型数据p是一种指向函数的指针,该函数的返回值是一种整型以上都不对6、设有阐明int(*ptr)[M];其中的标识符ptr是()。M个指向整型变量的指针指向M个整型变量的函数指针一种指向有M个整型元素的一维数组的指针具有M个指针元素的一维指针数组,每个元素都只能指向整型变量7、已知:double*p[6];它的含义是()。A)p是指向double型变量的指针B)p是double型数组C)p是指针数组D)p是数组指针8、已知函数阐明语句:void*f();则它的含义是()。A)函数f的返回值是一种通用型的指针B)函数f的返回值可以是任意的数据类型C)函数f无返回值D)指针f指向一种函数,该函数无返回值9、已知:chars[10],*p=s,则在下列语句中,错误的语句是()。A)p=s+5;B)s=p+s;C)s[2]=p[4];D)*p=s[0];10、已知:charb[5],*p=b;则对的的赋值语句是()。A)b="abcd"B)*b="abcd"C)p="abcd"D)*p="abcd"11、下列对字符串的定义中错误的是()。A)charstr[7]="FORTRAN"B)charstr[]="FORTRAN"C)char*str="FORTRAN"D)charstr[]={'F','O','R','T','R','A','N','\0'}12、已知:chars[20]="programming",*ps=s;则不能引用字母o的体现式是()。A)ps+2B)s[2]C)ps[2]D)ps+=2,*ps13、已知:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表达数组a中元素的体现式是()。A)*pB)a[10]C)*aD)a[p-a]14、已知:char**s;对的的语句是()。A)s="computer";B)*s="computer";C)**s="computer";D)*s='A’;15、已知:charc[8]="beijing",*s=c;inti;则下面的输出语句中,错误的是()。A)printf(%s\n",s);B)printf("%s\n",*s);C)for(i=0;i<7;i++)D)for(i=0;i<7;i++)printf("%c",c[i]);printf("%c",s[i]);16、已知:inti=0,j=1,*p=&i,*q=&j;错误的语句是()。A)i=*&j;B)p=&*&i;C)j=*p++;D)i=*&q;17、已知:char*p,*q;选择对的的语句()。A)p*=3;B)p/=q;C)p+=3;D)p+=q;18、已知:inta,*p=&a;则为了得到变量a的值,下列错误的体现式为();A)*&pB)*pC)p[0]D)*&a19、C语言主函数main()最多容许有()个参数。A)1B)2C20、已知:inta[4][3]={1,2,3,4,5,6,7,8,9,10};int(*ptr)[3]=a,*p=a[0];则如下可以对的表达数组元素a[1][2]的体现式是()。A)*((ptr+1)[2])B)*(*(p+5))C)(*ptr+1)=2D)*(*(a+1)+2)二、填空题1、下面的函数是求两个整数之和,并通过行参传回成果。intadd(intx,inty,________z)(int*){________=x+y;}(*z)2、下面程序通过指向整型的指针将数组a[3][4]的内容按3行4列的格式输出,请给printf()填入合适的参数,使之通过指针p将数组元素按规定输出。#include"stdio.h"inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},*p=a;main(){inti,j;for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%4d",___________);(*p+i*4+j)}}3、下面程序的功能是:从键盘上输入一行字符;存入一种字符数组中,然后输出该字符串。#include"stdio.h"main(){charstr[81],*sptr;inti;for(i=0;i<80;i++){str[i]=getchar();if(str[i]=='\n')break;}str[i]=___________;('\0')sptr=str;while(*sptr)putchar(*sptr_______);(++)}4、下面的程序实现从10个数中找出最大和最小值。#include"stdio.h"intmax,min;find_max_min(int*p,intn){int*q;max=min=*p;for(q=________;________;q++)(q=pq<p+n)if(________)max=*q;(*q>max)elseif(________)min=*q;(*q<min)}main(){inti,num[10];printf("input10numbers:\n")for(i=0;i<10;i++)scanf("%d",&num[i]);find_max_min(num,10);printf("max=%d;min=%d\n",max,min);}三、编程题1、编写一函数,其功能是互换两个变量x、y的值。编程序实现对数组a[100],b[100]调用此函数,互换a、b中具有相似下标的数组元素的值,且输出互换后的a、b数组。/*p279_1.c*/#include"stdlib.h"voidswap(int*pa,int*pb){intt;t=*pa;*pa=*pb;*pb=t;}main(){inta[100],b[100],i;for(i=0;i<100;i++)/*产生数组a和b*/{a[i]=random(100);b[i]=random(100);}printf("beforeswapA:\n");/*输出互换前数组a*/for(i=0;i<100;i++)printf("%3d",a[i]);printf("\n");printf("beforeswapB:\n");/*输出互换前数组b*/for(i=0;i<100;i++)printf("%3d",b[i]);printf("\n");for(i=0;i<100;i++)/*a、b数组元素互换*/swap(&a[i],&b[i]);printf("afterswapA:\n");/*输出互换后数组a*/for(i=0;i<100;i++)printf("%3d",a[i]);printf("\n");printf("afterswapB:\n");/*输出互换后数组b*/for(i=0;i<100;i++)printf("%3d",b[i]);printf("\n");}_2、用数组方案和指针方案分别编写函数insert(s1,s2,f),其功能是在字符串s1中的指定位置f处插入字符串s2。解1:/*P279_2A.c*/#include"string.h"insert(char*sa,char*sb,intn){charsf[80],*p,*q;inti=0;for(p=sa+n;*p!='\0';p++)sf[i++]=*p;sf[i]='\0';for(p=sa+n;*sb!='\0';p++,sb++)*p=*sb;for(q=sf;*q!='\0';p++,q++)*p=*q;*q='\0';}main(){chars1[80]="dsahfdjkahfke";chars2[40]="sdajkhew";intn;puts(s1);puts(s2);n=strlen(s1);printf("Inputn(0----%d):\n",n);scanf("%d",&n);insert(s1,s2,n);puts(s1);}解2:/*P279_2B.C*/#include"string.h"insert(charsa[],charsb[],intn){charsf[80];inti=0,k=0;while(sa[n+i]!='\0')sf[i]=sa[n+i++];sf[i]='\0';i=0;while(sb[i]!='\0')sa[n+i]=sb[i++];while(sf[k]!='\0')sa[n+i++]=sf[k++];sa[n+i]='\0';}main(){chars1[80]="dsahfdjkahfke";chars2[40]="sdajkhew";intn;puts(s1);puts(s2);n=strlen(s1);printf("Inputn(0----%d):\n",n);scanf("%d",&n);insert(s1,s2,n);puts(s1);}解3#include"string.h"main(){chars1[80],s2[30];intn;gets(s1);gets(s2);printf("Inputn(n<strlen(s1):\n");doscanf("%d",&n);while(n>=strlen(s1));insert(s1,s2,n);puts(s1);}insert(char*p1,char*p2,intk){chartem[80];strcpy(tem,p1+k);/*保留第k个字符开始的字符*/*(p1+k)='\0';/*使第k个字符之前的字符为一种独立字符串*/strcat(p1,p2);/*将p2复制到p1之后*/strcat(p1,tem);/*再将保留再tem中的字符串连接到p1末尾*/}3、用指针编写比较两个字符串s和t的函数strcmp(s,t)。规定s<t时返回-1,s=t时返回0,s>t时,返回1。解1:/*P279_3.C*/intstrcmp(char*s1,char*t1){while(*s1!='\0'&&*t1!='\0'){if(*s1>*t1)return1;if(*s1<*t1)return-1;if(*s1++==*t1++)continue;}if(*s1>*t1)return1;if(*s1==*t1)return0;if(*s1<*t1)return-1;}main(){intk;chars[80]="123456";chart[40]="123456";puts(s);puts(t);k=strcmp(s,t);if(k==1)printf("s>t:%d\n",k);if(k==0)printf("s==t:%d\n",k);if(k==-1)printf("s<t:%d\n",k);解2:/*P279_3b.c*/#include"string.h"intsstrcmp(char*s,char*p){while(*s!='\0'&&*p!='\0'&&*s++==*p++);if(*s>*p)return1;elseif(*s==*p)return0;elsereturn-1;}main(){chara[80],b[80];intk;gets(a);gets(b);k=sstrcmp(a,b);if(k==1)printf("a>b\n");if(k==0)printf("a==b\n");if(k==-1)printf("a<b\n");}4、编写程序,其中包括一种函数,此函数的功能是:对一种长度为N的字符串从第K个字符起,删除M个字符,构成长度为N-M的新字符串(其中N、M<=80,K<=N)。规定输入字符串"Wearepooppoorstudents.",运用此函数进行删除"poor"的处理,并输出处理后的字符串。/*P279_4.C*/#include"stdio.h"main(){inta[10],b[10],*pa,*pb,i;pa=a;pb=b;for(i=0;i<3;i++,pa++,pb++){*pa=i;*pb=2*i;printf("%d\t%d\n",*pa,*pb);}printf("\n");pa=&a[0];pb=&b[0];/*输出00*/for(i=0;i<3;i++)/*12*/{*pa=*pa+i;*pb=*pb+i;/*24*/printf("%d\t%d\n",*pa++,*pb++);/*输出00*/}/*23*/}_/*46*/5、输入一行字符串,将其中的字符从小到大排列后输出。解1:/*p279_5A.c*/#include"string.h"sort(char*s,intn){inti,j;char*p,ch;for(i=0;i<n;i++){p=s+i;for(j=i;j<n;j++)if(*(s+j)<*p)p=s+j;ch=*p;*p=*(s+i);*(s+i)=ch;}}main(){chara[80];intk;printf("Entryastringfora:");gets(a);k=strlen(a);sort(a,k);puts(a);}解2:/*p279_5b.c*/#include"string.h"sort(char*s,intn){inti,j,k;charp,ch;for(i=0;i<n;i++){k=i;for(j=i;j<n;j++)if(s[j]<s[k])k=j;ch=s[i];s[i]=s[k];s[k]=ch;}}main(){chara[80];intk;printf("Entryastringfora:");gets(a);k=strlen(a);sort(a,k);puts(a);}6、输入若干行字符串,求出每行的串长。当串中保含"stop"时,停止输入,并打印出最长的行的内容。解1:/*P279_6A.c*/main(){chars[80],*p,*q,*f,cc;printf("Inputastring:\n");scanf("%s",s);for(p=s;*p!='\0';p++){f=p;for(q=p;*q!='\0';q++)if(*f>*q)f=q;cc=*f;*f=*p;*p=cc;}printf("%s\n",s);}_解2:/*P279_6B.c*/#include"string.h"main(){chars[25][80],*p;inti,k,m=0;for(i=0;i<25;i++){gets(s[i]);if(strcmp(s[i],"stop")==0)break;k=strlen(s[i]);printf("%d:%d\n",i,k);if(k>m){p=s[i];m=k;}}printf("%s",p);}7、将空格分开的字符串称为单词。输入多行字符串,直到输入"stop"单词时才停止。最终输出单词的数量。解1:#include"string.h"main(){chars[200];longn=0;inti,m;gets(s);while(strcmp("stop",s)!=0){m=strlen(s);for(i=0;i<m;i++){if(s[i]!=''&&s[i+1]=='')n++;if(s[i]!=''&&s[i+1]=='\0')n++;if(s[i]==''&&s[i+1]=='')continue;
if(s[i]==''&&s[i+1]!='')continue;}gets(s);}printf("n=%ld\n",n);}解2/*P280_7*/#include"string.h"main(){chars[80],*p=s;intn=0;printf("Inputastring:\n");gets(s);while(strcmp(s,"stop")!=0){p=s;while(*p!='\0'){if(*p==32||*p=='\0')n++;p++;}if(strlen(s)>0)n++;printf("Inputastring:\n");gets(s);}printf("wordsnumber:%d\n",n);}8、将输入的两行字符串连接后,将串中的空格所有移到串首后输出。/*P280_8*/#include"string.h"main(){chars[80],*p=s,s1[80];intn,n1=0;printf("Inputastring:\n");scanf("%s",s);while(strcmp(s,"stop")!=0){n=0;p=s;while(*p!='\0'){n++;p++;}if(n>n1){n1=n;strcpy(s1,s);}printf("Inputastring:\n");scanf("%s",s);}printf("%s:%d\n",s1,n1);}_9、输入字符串,请分别记录字符串中所包括的各个不一样的字符及其各个字符的数量。如:输入字符串:abcedabcdcd则输出:a=2b=2c=3d=3e=1解1:/*P280_9A*/#include"string.h"main(){chars1[80],s2[40],*p1=s1,*p2=s2;printf("Input2string:\n");gets(s1);gets(s2);while(*p1!=0)p1++;while(*p2!='\0')*p1++=*p2++;*p1='\0';while(p1!=s1){if(*p1!=32){p1--;continue;}else{p2=p1;while(p2!=s1){*p2=*(p2-1);p2--;}*p2='';p1--;}}puts(s1);}解2:/*P280_9b*/#include"stdlib.h"#include"string.h"inta[27];main(){inti=0;chars[80],*p=s;printf("Enterstrint:");gets(s);while(*p!='\0'){if(*p>='A'&&*p<='Z')*p=*p+32;if(*p>='a'&&*p<='z')a[*p-'a']++;elsea[26]++;p++;}for(i=0;i<26;i++)pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026财达证券股份有限公司资产管理业务委员会招聘8人笔试题库附参考答案详解【达标题】
- 2026广东肇庆学院教学科研人员招聘考前冲刺试卷附答案详解(预热题)
- 2026江苏连云港初心社会工作服务中心公益性岗位招聘2人考前冲刺试卷及参考答案详解(综合题)
- 2026年临沂平邑县劳务合作总公司公开招聘政府购买教学服务人员(318名)备考题库附参考答案详解【综合卷】
- 2026年7月天津大学建筑工程学院招聘科研助理1人笔试题库含完整答案详解【有一套】
- 2026云南曲靖市马龙区面向区内考调教师33人笔试题库含答案详解【综合题】
- 2026云南临沧市住房和城乡建设局招聘公益性岗位人员1人模拟试卷(典型题)附答案详解
- 2026黑龙江大庆市人民医院招聘手术室工勤人员考前冲刺试卷附参考答案详解【考试直接用】
- 2026自贸区川南临港片区(泸州综合保税区)产业发展服务专员招聘4人模拟试卷及参考答案详解(考试直接用)
- 2026河北廊坊霸州市职成教育总校代课教师招聘模拟试卷附答案详解
- 2025年农信社不良资产处置岗招聘考试题库附答案
- 容县辅警招聘考试题库 (答案+解析)
- 2026年全国高考1卷高考数学真题(教师版)
- 煤矿安全生产标准化管理体系2024版与2026版对比分析报告
- 期末模拟测试卷(试卷)2025-2026学年五年级数学下册人教版(含答案)
- 1.1 动与静 课件(共28张)2026-2027学年沪科版物理八年级全一册
- 2026年五四制小升初数学测试题及答案
- T∕CAPID 005.4-2023 垃圾焚烧发电工程质量监督检查大纲 第4部分:厂用电系统受电前监督检查
- 中国专家共识降胆固醇策略2026
- 县域经皮冠状动脉介入治疗合理用药与综合管理指南课件
- 灾害(地震)外伤现场救护
评论
0/150
提交评论