华嵌课件语言指针练习题_第1页
华嵌课件语言指针练习题_第2页
华嵌课件语言指针练习题_第3页
华嵌课件语言指针练习题_第4页
华嵌课件语言指针练习题_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

一、选择

指针1、有如下语句inta=10,b=20,*p1,*p2;p1=&a;p2=&b;如图1所示,若要实现图2所示的 3、若有说明:int*p,m=5,n;以下正确的程序段是 {int*p,i;char*q,ch; }pqp=qq没有指向具体的单元,所以*q没有实际意q虽然指向了具体的单元,但该单元中没有确定的值,所以不能执行*p=*q;5inta=25;print_value(&a); voidprint_value(int{} char*a=””;等价于 *a;*a=” str[10]={“”};等价于 str[10];str[]={“char*s=””;等价于char s=”charc[4]=”abc”,d[4]=”abc”;等价于charc[4]=d[4]=”abc”;7、下面程序段中,for循环的执行次数是C ;*s!=’\0’;s++) *s;scanf(“%s”,s); chara[]=”Itis char*p=”Itis a+1ta10 printf(“\”%s\”\n”,s); #include<stdio.h>{staticchara[]=”Language”,b[]=”programe”;char*p1,*p2; intk; } #include<stdio.h>#include<string.h>{char*p1,*p2,str[50]=”abc”; } 14、若有定义:inta[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确为 15、若有以下定义和语句,则对a数组元素地址的正确 inta[2][3],(*p)[3]; 16、若有定义:int(*p)[4];则标识符p 17、若有以下定义和赋值语句,则对b数组的第i行第j列(假设i,j已正确说明并赋值) intb[2][3]={0}, 18、若有定义:int*p[4];则标识符p 19、以下正确的定义语句和赋值语句是 intfloatdoubleintb[10],*q;char int 21、若有定义:inta[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k; {short} intint则能够正确表示数组元素x[1][2]的表达式是 {intx[5]={2,4,6,8,10},*p,**pp;}A)4 D)4 #include“stdllib.h”fun(int**a,int{}{intx[2][3]={2,4,6,8,10,12},p=(int*)malloc(sizeof(int));} Cmain函数带形参,形参名只能是argc若有说明:main(intargc,char*argv),则形参argc的值必须大于127、main函数的正确说明形式是 main(intargc,char B)main(int C)main(int D)main(intc,char28x中的最大值和该值所在的元素下标,数组元素值从键盘输入。{intx[10],*p1,*p2,k; }1、 C)p2- A)字符F和字符 B)字符串BASIC和字符串C)字符B和字符 则language[2]的值是 31、语句int(*prt)();的含义是 prtint32、已有函数max(a,b),并且已使函数指针变量p指向函数max,当调用函数时,正确的调 C)p=max(a,b) D)*p=max(a,b)33、已有定义int(*p)();指针p可以 char*language□={char**q;q=language则语句printf("%0\n",*q)_C A)输出的是language[2]元素的地址B)输出的是字符串PASCAL35、若要对a进行++运算,则a应具有下面说 A)int B)char*a[char D)int二、填空 voidfindmax(int*a,intn,intI,int{if(i<{if(a[i] fingdmax( }} pl,int {intp=*p1;pl=*p2;}{inta=5,b=7,*ptrl,*ptr2;swap(ptrl,ptr2):ptrntf("a=%d,b=%d\n",a,b);} #include<stdio.h>{*...}#include"stdlib.h"main{int*a,*b,*c,num,x,y,z;printf(3个整数:")scanf"%d%d%d",a,b,c,);printf("%d,%d,%d\n",*a,*b,*c);if } main(){inti,k;{﹜﹜void﹛staticintt=0;﹜ main(﹛inta=1,b=2,c=3;printf(“(1)﹪d﹪d﹪d\n”,a,b,﹜pp(int{int﹜inti;chars[80],﹡p;for(i=0;i<79;i++)﹛s[i]=getchar(if(s[i]==’\n’﹜ printf(“﹪d\n”,t); chara[]=”12345”,﹡p;ints=0;for(p=a;﹡p!=’\0’;p++) inti,d;{if(d!=0)} chira[]=” inti=0;{if(i﹪2= }四个……。请填空。 {intfor{{ b--} returu}void {chara[11]; printf(“\nEnten10char:”);printf(“\nTheis10char:”);printf(“﹪s”,a);}voiddelnum(char﹡s){inti,j; {}}{

printf(“\ninputastring:”); }0。请填空。f(chars[],chart[{ }{ inti;printf(“﹪d”,i);}main(){staticchar﹡p,a[]={“Iamhappy.”};intmax=0,i=0;{ i=0;}}main(){chars1[80],s2[80];}{ } }s中左括号’(‘的个数与右括号’)’ s的首字符起顺序查找右括号’)’的个数在任何时候均不超过所遇到的左main(){charc[80];intd;printf(“d=﹪d”}{int{if(﹡s==’(‘)elseif(﹡s==’)’{ }2} }level。请填空。main(){chars[81],﹡p1,﹡p2;intn; {{ }}}

55、当运行以下程序时,从键盘输入thisisatext.<CR>(<CR>表示回车),则下面程序的 #define #define change(char*c,intstatus){intflag=TURE;charch;{}while(ch!=’.’);}intchange(char*c,int{returnTURE;{ }}56、当运行以下程序时,从键盘输入 #include<stdio.h>{char*s,c[80];{{}}} #defineSIZE12{chars[SIZE];inti;for(i=0;i<SIZE;i++)for(i=0;i<SIZE;i++)printf(“%c”,s[i]);}sub(char*a,intt1,int{charch;{t2--}} #include<stdio.h>#include<string.h>{chars[]=”97531”,c;}fun(char*a,char }59、当运行以下程序时,从键盘输入 #include<stdio.h> char }fun(char*s1,char{intj; char*s=s1;for(;*s2!=’\0’;s2++){for(j=0,s1=s;*s1!=’\0’; }} intx;}fib(intn,int intf1,f2; {fib(n-1,&f1);}}61、若有定义:inta[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值 62、若有定义:inta[]={2,4,6,8,10,12},*p=a;则*(p+1)的值 inta[4]={0,1,2,3},*p;则*--p的值 inta[4]={0,1,2,3},(*p)[3];则p+1表示数 65、若有定义:inta[2][3]={2,4,6,8,10,12};则a[1][0]的值是 int*p[3],a[6],i;for(i=0;i<3; 则*p[0]的a数组元 ;*(p[1]+1)的是a数组元素 },], 表示69m数组的元素和它们的值如下所示: 的值 inta[3][4],(*q)[4]; 71、若有定义:intm[10][6];在程序中数组元素m[i][j]的四种形式是 72、若有以下定义和语句,在程序中可通过指针数组p,用*(p[i]+j)等四种形式数组元素s[i][j];另三种形式分别是: intx[10][6], 73、若有以下定义和语句,在程序中可通过指针数组pt,用*(pt[i]+j)等四种形式数组元素x[i][j];另三种形式分别是: intx[10][6],(*pt)[6];pt=x;{inta[2][3]={1,2,3,4,5,6},int(*p)[3],(*q)[2],i,j;p=a;q=b; {for(j=0;j<3;j++) }}213892{intints, }76、以下程序将数组a#defineM8{inta[M],i,j,t;for(i=0;i<M;i++) ;*( }for(i=0;i<M; }77、以下程序在ax{intprintf(“enter10integers:\n”); printf(“enterx:”); printf(“%5d’spositionis:%4d\n”,x,i); printf(“%dnotbeenfound!\n”,x);}78xak intprintf(“entern(n<50):”); } }4个数据的格式输出a数组。请填空。#defineM10 inta[M],i,j,n; }{ }}80、以下程序可分别求出方阵a中两个对角线上元和。请填空#defineN6 inta[N][N],i,j,k,pr1,pr2; {pr1= }printf(“pr1=%4d}#defineM6 inta[M][M],s[M],i,j,k; }{printf(“row=%2d } char intk;{ }}{intint(*p)[4],j,k,flag;for( printf(“no,%disfail,scoreare:\n”,j); } 84、若想输出b数组的十个元素,下面存在错误的程序行是 {intb[10]={1,3,5,7,9,2,4,6,8,10}, 85、有以下main函数,经过编译、连接后得到的可执行文件名为file1.exe。且已知在系统令状态下输入命令行file1beijingshanghai后得到的输出是beijing 请填空main(intargc,char --}}86、设main函数的说明为:main(intargc,char*argv[]),且有命令行为:FILE1123,则argc的值是 {char *str[]={“Pascal”,”Clanguage”,”Dbase”,”Cobol”}; intk;for(k=0;k<4;k++)} #include<stdio.h>{int*p[5];int*ptr,i;{p[0]=ptr;} inta[NUM],*p[M],i,j,index,n;{index=i*(i+1)/2; }{{p[i][j]= }}printf(“theoutput:\n”);{for(j=0; }}90、已有一维数组a,n函数voidprocess(float*p,intn,float(*fun)())为一个可完成下面各种计算的通用函数。 floatarr_add(floatarrintn)floatodd_add(float*p,intn)计算下标

温馨提示

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

评论

0/150

提交评论