版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《C語言程序設(shè)計(jì)》習(xí)題李玲張海蓉黃玉蘭孫大洋趙曉京溫泉厲茜吉林大學(xué)通信工程學(xué)院
第6章練習(xí)6-1答案一、選擇題1.已知函數(shù)abc的定義為:voidabc(){……}則函數(shù)定義中void的含義是(A)。A.執(zhí)行函數(shù)abc后,函數(shù)沒有返回值 B.執(zhí)行函數(shù)abc后,函數(shù)不再返回C.執(zhí)行函數(shù)abc后,可以返回任意類型 D.以上三個(gè)答案全是錯(cuò)誤的2.已知:intp();,p是(C)。A.int型變量B.函數(shù)p的調(diào)用C.一個(gè)函數(shù)聲明,該函數(shù)的返回值是int型的值D.強(qiáng)制類型轉(zhuǎn)換表達(dá)式中的變量3.以下對的的函數(shù)形式是(D)。A.doublefun(intx,inty) B.fun(intx,y){z=x+y;returnz;} {intz;returnz;}C.fun(x,y) D.doublefun(intx,inty){intx,y;doublez;z=x+y;returnz;} {doublez;z=x+y;returnz;}4.以下說法對的的是(C)。A.定義函數(shù)時(shí),形參的類型說明可以放在函數(shù)體內(nèi)B.return后邊的值不能為表達(dá)式C.假如函數(shù)值的類型與返回值表達(dá)式的類型不一致,以函數(shù)值類型為準(zhǔn)D.假如形參與實(shí)參的類型不一致,以實(shí)參類型為準(zhǔn)5.C語言允許函數(shù)值類型缺省定義,此時(shí)該函數(shù)值隱含的類型是(B)。A.float型 B.int型 C.long型 D.double型6.下面函數(shù)調(diào)用語句具有實(shí)參的個(gè)數(shù)為(B)。func((exp1,exp2),(exp3,exp4,exp5));A.1 B.2 C.4 D.57.以下程序的功能是計(jì)算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,請選擇填空。#include<stdio.h>#include<math.h>floatf(float,float);main(){floatx,y,z,sum; scanf("%f%f%f",&x,&y,&z); sum=f(①B)+f(②C);(注:或者選擇sum=f(①C)+f(②B)) printf("sum=%f\n",sum);}floatf(floata,floatb){floatvalue; value=a/b; return(value);}①A.x-y,x+y B.x+y,x-y C.z+y,z-y D.z-y,z+y②A.x-y,x+y B.x+y,x-y C.z+y,z-y D.z-y,z+y二、填空題8.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."。請?zhí)羁眨偈?break;)、②是(getchar()或getch()或getche())。#include<stdio.h>voidYesNo(charch){switch(ch) { case'y': case'Y':printf("\nThisisYES.\n");①; case'n': case'N':printf("\nThisisNO.\n"); }}main(){charch; printf("\nEnterachar'y','Y'or'n','N':"); ch=②; printf("ch:%c",ch); YesNo(ch);}9.下面函數(shù)pi的功能是:根據(jù)以下公式,返回滿足精度(0.0005)規(guī)定的的值,請?zhí)羁?,①?t=n=1,s=0)、②是(s*2)。/2=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+(1/3)*(2/5)*(3/7)*(4/9)+….#include<conio.h>#include<math.h>#include<stdio.h>doublepi(doubleeps){doubles,t;intn; for(①;t>eps;n++) { s+=t; t=n*t/(2*n+1); } return(②);}main(){doublex; printf("\nPleaseenteraprecision:"); scanf("%1f",&x); printf("\neps=%1f,=%1f",x,pi(x));}三、讀程序,寫結(jié)果10.下列程序的運(yùn)營結(jié)果是(5)。#include<stdio.h>fun(intp){ inta=10; p=a; ++p;}main(){ inta=5; fun(a); printf("%d\n",a);}11.下列程序的運(yùn)營結(jié)果是(8)。#include<stdio.h>intabc(intu,intv);main(){ inta=24,b=16,c; c=abc(a,b); printf("%d\n",c);}intabc(intu,intv){ intw; while(v) { w=u%v; u=v; v=w; } returnu;}12.下列程序的運(yùn)營結(jié)果是:(beforeswapa=5,b=10inswapx=10,y=5afterswapa=5,b=10)。#include<stdio.h>main(){ inta,b; a=5;b=10; printf("beforeswapa=%d,b=%d\n",a,b); swap(a,b); printf("afterswapa=%d,b=%d\n",a,b);}swap(intx,inty){ inttemp; temp=x;x=y;y=temp; printf("inswapx=%d,y=%d\n",x,y);}13.以下程序的運(yùn)營結(jié)果是:(i=5i=2i=2i=0i=2)。inti=0;main(){ inti=5; reset(i/2); printf("i=%d\n",i); reset(i=i/2); printf("i=%d\n",i); reset(i/2); printf("i=%d\n",i); workover(i); printf("i=%d\n",i);}workover(inti){ i=(i%i)*((i*i)/(2*i)+4); printf("i=%d\n",i); return(i);}reset(inti){ i=i<=2?5:0; return(i);}練習(xí)6-2答案一、選擇題1.將一個(gè)函數(shù)說明為static后,該函數(shù)將(A)。A.既能被同一源文獻(xiàn)中的函數(shù)調(diào)用,也能被其他源文獻(xiàn)中的函數(shù)調(diào)用B.只能被同一源文獻(xiàn)中的函數(shù)調(diào)用,不能被其他源文獻(xiàn)中的函數(shù)調(diào)用C.只能被其他源文獻(xiàn)中的函數(shù)調(diào)用,不能被同一源文獻(xiàn)中的函數(shù)調(diào)用D.既不能被同一源文獻(xiàn)中的函數(shù)調(diào)用,也不能被其他源文獻(xiàn)中的函數(shù)調(diào)用2.假如在一個(gè)函數(shù)中的復(fù)合語句中定義了一個(gè)變量,則該變量(A)。A.只在該復(fù)合語句中有效 B.在該函數(shù)中有效C.在本程序范圍內(nèi)均有效 D.為非法變量3.以下不對的的說法是(D)。A.在不同函數(shù)中可以使用相同名字的變量B.形式參數(shù)是局部變量C.在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D.在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效4.以下程序的對的運(yùn)營結(jié)果是(D)。#defineMAX10inta[MAX],i;main(){printf("\n");sub1();sub3();sub2();sub3();}sub2(){inta[MAX],i,max; max=5; for(i=0;i<max;i++)a[i]=i;}sub1(){for(i=0;i<MAX;i++)a[i]=i+i;}sub3(){inti; for(i=0;i<MAX;i++)printf("%d",a[i]); printf("\n");}A.024681012141618 B.0123401234 024681012141618C.0123456789 D.02468101214161801234 0246810121416185.凡是函數(shù)中未指定存儲類別的局部變量,其隱含的存儲類別為(A)。A.自動(auto) B.靜態(tài)(static) C.外部(extern) D.寄存器(register)6.以下程序的對的運(yùn)營結(jié)果是(D)。main(){inta=2,i; for(i=0;i<3;i++)printf("%4d",f(a));}f(inta){intb=0;staticintc=3; b++;c++; return(a+b+c);}A.777 B.71013 C.7911 D.789二、讀程序,寫結(jié)果7.寫出下面程序的運(yùn)營結(jié)果,①是(8)、②是(17)。#include<stdio.h>main(){intk=4,m=1,p; p=fun(k,m);printf("%d",p); /*①*/ p=fun(k,m);printf("%d",p); /*②*/}fun(inta,intb){staticintm=0,i=2; i+=m+1; m=i+a+b; return(m);}8.下面程序的運(yùn)營結(jié)果是(84)。#include<stdio.h>intd=1;fun(intp){intd=5; d+=p++; printf("%d",d);}main(){inta=3; fun(a); d+=a++; printf("%d",d);}
第7章練習(xí)7-1答案選擇題1.已知:int*p,a;,則語句“p=&a;”中的運(yùn)算符“&”的含義是(D)。A.位與運(yùn)算 B.邏輯與運(yùn)算 C.取指針內(nèi)容 D.取變量地址2.已知:inta,x;,則對的的賦值語句是(C)。A.a(chǎn)=(a[1]+a[2])/2; B.a(chǎn)*=*a+1; C.a(chǎn)=(x=1,x++,x+2); D.a(chǎn)="good";3.已知:inta,*p=&a;,則下列函數(shù)調(diào)用中錯(cuò)誤的是(D)。A.scanf("%d",&a); B.scanf("%d",p); C.printf("%d",a); D.scanf("%d",*p);4.已知:char*p,*q;,選擇對的的語句(C)。A.p*=3; B.p/=q; C.p+=3; D.p+=q;5.已知:intx;,則下面的說明指針變量pb的語句(C)是對的的。A.intpb=&x; B.int*pb=x; C.int*pb=&x; D.*pb=*x;練習(xí)7-2答案一、選擇題1.設(shè)有說明int(*ptr)[M];,其中的標(biāo)記符ptr是(C)。A.M個(gè)指向整型變量的指針B.指向M個(gè)整型變量的函數(shù)指針C.一個(gè)指向具有M列的二維數(shù)組的一行的指針D.具有M個(gè)指針元素的一維數(shù)組的指針2.已知:double*p[6];,它的含義是(C)。A.p是指向double型變量的指針 B.p是double型數(shù)組C.p是指針數(shù)組 D.p是數(shù)組指針3.已知:chars[10],*p=s,則在下列語句中,錯(cuò)誤的語句是(B)。A.p=s+5; B.s=p+s; C.s[2]=p[4]; D.*p=s[0];4.已知:chars[100];inti;,則在下列引用數(shù)組元素的語句中,錯(cuò)誤的表達(dá)形式是(D)。A.s[i+10] B.*(s+i) C.*(i+s) D.*((s++)+i)5.已知:charb[5],*p=b;,則對的的賦值語句是(C)。A.b="abcd"; B.*b="abcd"; C.p="abcd"; D.*p="abcd";6.下列對字符串的定義中,錯(cuò)誤的是(A)。A.charstr[7]="FORTRAN"; B.charstr[]="FORTRAN";C.char*str="FORTRAN"; D.charstr[]={'F','O','R','T','R','A','N',0};7.已知:chars[20]="programming",*ps=s;,則不能引用字母o的表達(dá)式是(A)。A.ps+2 B.s[2] C.ps[2] D.ps+=2,*ps8.已知:char**s;,對的的語句是(B)。A.s="computer"; B.*s="computer"; C.**s="computer"; D.*s='A';9.已知:charc[8]="beijing",*s=c;inti;,則下面的輸出語句中,錯(cuò)誤的是(B)。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]);10.已知:char*aa[2]={"abcd","ABCD"};,則以下說法對的的是(D)。A.a(chǎn)a數(shù)組元素的值分別是"abcd"序列和"ABCD"序列B.a(chǎn)a是指針變量,它指向具有兩個(gè)數(shù)組元素的字符型一維數(shù)組C.a(chǎn)a數(shù)組的兩個(gè)元素分別存放的是具有4個(gè)字符的一維字符數(shù)組的首地址D.a(chǎn)a數(shù)組的兩個(gè)元素中各自存放了字符'a'和'A'的地址11.已知:inta[3][4],*p=&a[0][0];p+=6;,那么*p和(D)的值相同。A.*(a+6) B.*(&a[0]+6) C.*a[1]+2 D.a(chǎn)[1][2]12.已知:inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;,則值為3的表達(dá)式是(A)。A.p+=2,*(p++) B.p+=2,*++p C.p+=3,*p++ D.*(&a[0][0]+6)13.已知:int**p;,則變量p是(B)。A.指向int的指針 B.指向指針的指針C.int型變量 D.以上三種說法均是錯(cuò)誤的14.已知:inta[]={1,2,3,4},y,*p=&a[1];,則執(zhí)行語句y=(*--p)++;之后,變量y的值為(A)。A.1 B.2 C.3 D.415.已知:intb[]={1,2,3,4},y,*p=b;,則執(zhí)行語句y=*p++;之后,變量y的值為(A)。A.1 B.2 C.3 D.416.已知:intx[]={1,3,5,7,9,11},*ptr=x;,則可以對的引用數(shù)組元素的表達(dá)式是(B)。A.x B.*(ptr--) C.x[6] D.*(--ptr)17.已知:intx[]={1,3,5,7,9,11},*ptr=x;,則不可以對的引用數(shù)組元素的表達(dá)式是(B)。A.*(ptr--) B.*(--ptr) C.*(ptr++) D.*(++ptr)18.若有以下語句且0<=k<6,則對的表達(dá)數(shù)組元素地址的表達(dá)式是(C)。staticintx[]={1,3,5,7,9,11},*ptr=x,k;A.x++ B.&ptr C.&ptr[k] D.&(x+1)19.已知:inti,x[3][4];,則不能將x[1][1]的值賦給變量i的語句是(C)。A.i=*(*(x+1)+1); B.i=x[1][1]; C.i=*(*(x+1)); D.i=*(x[1]+1);20.已知:inta[2][3]={2,4,6,8,10,12};,對的表達(dá)數(shù)組元素的地址是(A)。A.*(a+1) B.*(a[1]+2) C.a(chǎn)[1]+3 D.a(chǎn)[0][0]21.已知:int*p;,使用如下語句動態(tài)申請一個(gè)int型的存儲單元,應(yīng)當(dāng)使用(D)。p=()malloc(sizeof(int));A.int B.int* C.(*int) D.(int*)二、填空題22.閱讀程序,下面程序的輸出結(jié)果是(15)。#include<stdio.h>main(){ staticinta[2][3]={{1,2,3},{4,5,6}}; intm,*ptr; ptr=&a[0][0]; m=(*ptr)*(*(ptr+2))*(*(ptr+4)); printf("%d\n",m);}23.下面程序的功能是:從鍵盤上輸入一行字符,存入一個(gè)字符數(shù)組中,然后輸出該字符串.則①是('\0'或0)、②是(++)。main(){ charstr[81],*sptr; inti; for(i=0;i<80;i++) { str[i]=getchar(); if(str[i]=='\n')break; } str[i]=①; sptr=str; while(*sptr)putchar(*sptr②);}24.在下面的程序中若第一個(gè)printf語句的輸出為ffe2,則其余語句的輸出結(jié)果分別為:①是(fff4)、②是(a)、③是(0)、④是(b)。main(){ staticshorta[]={1,2,3,4,5,6,7,8,9,0},*p=a; printf("%x\n",p); /*輸出結(jié)果為ffe2*/ printf("%x\n",p+9); /*輸出①*/ printf("%x\n",*p+9); /*輸出②*/ printf("%x\n",*(p+9)); /*輸出③*/ printf("%x\n",*++p+9); /*輸出④*/}25.下面程序的輸出結(jié)果,①是(m)、②是(a)、③是(w)、④是(z)、⑤是(mnopqr)。#include<stdio.h>char*pp[2][3]={"abc","defgh","ijkl","mnopqr","stuvw","xyz"};main(){ printf("%c\n",***(pp+1)); /*輸出①*/ printf("%c\n",**pp[0]); /*輸出②*/ printf("%c\n",(*(*(pp+1)+1))[4]); /*輸出③*/ printf("%c\n",*(pp[1][2]+2)); /*輸出④*/ printf("%s\n",**(pp+1)); /*輸出⑤*/}三、讀程序,寫結(jié)果26.下面程序的運(yùn)營結(jié)果是:(□□□1□□□3□□□5□□□7□□□9□□11□□13□□15□□17□□19□□21□□23)。(注:□表達(dá)空格。)#include<stdio.h>main(){ inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int*p,i; for(p=a,i=0;p<&a[0][0]+12;p++,i++) { if(i%4==0)printf("\n"); printf("%4d",*p); }}27.下面程序的運(yùn)營結(jié)果是(3,3,3)。#include<stdio.h>main(){ inta=2,*p,**pp; pp=&p;p=&a; a++; printf("%d,%d,%d\n",a,*p,**pp);}練習(xí)7-3答案一、選擇題1.main(argc,argv)中形式參數(shù)argv的對的說明形式應(yīng)當(dāng)為(A).A.char*argv[] B.charargv[][] C.charargv[] D.char*argv2.說明語句int(*p)();的含義是(C)。A.p是一個(gè)指向一維數(shù)組的指針變量B.p是指針變量,指向一個(gè)整型數(shù)據(jù)C.p是一個(gè)指向函數(shù)的指針,該函數(shù)的返回值是一個(gè)整型D.以上都不對3.說明語句int*(*p)();的含義是(D)。A.p是一個(gè)指向int型數(shù)據(jù)的指針B.p是指針變量,它構(gòu)成了指針數(shù)組C.p是一個(gè)指向函數(shù)的指針,該函數(shù)的返回值是一個(gè)整型D.p是一個(gè)指向函數(shù)的指針,該函數(shù)的返回值是一個(gè)指向整型的指針4.已知函數(shù)說明語句void*f();,則它的含義是(A)。A.函數(shù)f的返回值是一個(gè)通用型指針B.函數(shù)f的返回值可以是任意的數(shù)據(jù)類型C.函數(shù)f無返回值D.指針f指向一個(gè)函數(shù),該函數(shù)無返回值5.函數(shù)的功能是互換變量x和y中的值,并且通過對的調(diào)用返回互換的結(jié)果。能對的執(zhí)行此功能的函數(shù)是(D)。A.funa(int*x,int*y) B.funb(intx,inty){ int*p; {intt; *p=x;*x=*y;*y=*p; t=x;x=y;y=t; } }C.func(int*x,int*y) D.fund(int*x,int*y){ *x=*y;*y=*x; {*x=*x+*y;*y=*x-*y;*x=*x-*y;} }6.閱讀程序,下面程序的輸出結(jié)果是(B)。假設(shè)可執(zhí)行文獻(xiàn)的文獻(xiàn)名為:PROG.EXE運(yùn)營時(shí)鍵入的命令行為:PROG-386NET3<回車>#include<stdio.h>main(intargc,char*argv[]){inti; for(i=0;i<argc;i++)printf("%s\n",argv[i]);}A.-386 B.PROG.EXE C.PROG.EXE D.PROGNET3 -386 - -386 NET3 386 NET3 NET37.下面程序的運(yùn)營結(jié)果是(A)。#include<stdio.h>f(intx,inty){return(y-x);}main(){inta=5,b=6,c=2; intf(); int(*g)()=f; c=(*g)(a,b); printf("%d\n",c);}A.1 B.2 C.3 D.前面三個(gè)答案均是錯(cuò)誤的8.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是(A)。A.?dāng)?shù)組的首地址 B.?dāng)?shù)組第一個(gè)元素的值C.?dāng)?shù)組中所有元素的值 D.?dāng)?shù)組元素的個(gè)數(shù)二、填空題9.下面的函數(shù)fun的功能是將形參x的值轉(zhuǎn)換成二進(jìn)制數(shù),所得二進(jìn)制數(shù)的每一位放在一維數(shù)組中返回,二進(jìn)制的最低位放在下標(biāo)為0的元素中,其他依次類推,則①是(2)、②是(2)。fun(intx,intb[]){intk=0,r; do { r=x%①; b[k++]=r; x/=②; }while(x);}10.函數(shù)expand(chars[],chart[])在將字符串s復(fù)制到字符串t時(shí),將其中的換行符和制表符轉(zhuǎn)換為可見的轉(zhuǎn)義字符,即用"\n"表達(dá)換行符,用"\t"表達(dá)制表符。則①是(j++)、②是('\\')、③是(j++)、④是('\\')、⑤是(j++)、⑥是('\0')。expand(chars[],chart[]){ inti,j; for(i=j=0;s[i]!='\0';i++) switch(s[i]) { case'\n':t[①]=②;t[j++]='n';break; case'\t':t[③]=④;t[j++]='t';break; default:t[⑤]=s[i];break; } t[j]=⑥;}三、讀程序,寫結(jié)果11.以下程序的運(yùn)營結(jié)果是(10753-7)。main(){ inta[5]={5,10,-7,3,7},i,j,t; sort(a); for(i=0;i<=4;i++)printf("%d",a[i]);}sort(inta[]){ inti,j,t; for(i=0;i<4;i++) for(j=0;j<4-i;j++) if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}12.以下程序的運(yùn)營結(jié)果是(-13689)。main(){ inta[5]={9,6,8,3,-1},i,j,t,p; sort(a); for(i=0;i<=4;i++)printf("%d",a[i]);}sort(inta[]){ inti,j,t,p; for(j=0;j<4;j++) { p=j; for(i=j;i<=4;i++)if(a[i]<a[p])p=i; t=a[p];a[p]=a[j];a[j]=t; }}13.以下程序的運(yùn)營結(jié)果是(sum=6)。main(){ inta[3][3]={1,3,5,7,9,11,13,15,17};intsum; sum=func(a); printf("\nsum=%d\n",sum);}func(inta[][3]){ inti,j,sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) { a[i][j]=i+j; if(i==j)sum=sum+a[i][j]; } return(sum);}14.下面程序的運(yùn)營結(jié)果是:(beforeswapa=5,b=10inswapx=10,y=5afterswapa=10,b=5)。#include<stdio.h>main(){ inta,b; a=5;b=10; printf("beforeswapa=%d,b=%d\n",a,b); swap(&a,&b); printf("afterswapa=%d,b=%d\n",a,b);}swap(int*px,int*py){ inttemp; temp=*px; *px=*py; *py=temp; printf("inswapx=%d,y=%d\n",*px,*py);}15.下面程序的運(yùn)營結(jié)果是(0123)。#include<stdio.h>func(intb[]){ intj; for(j=0;j<4;j++)b[j]=j;}main(){ inta[4],i; func(a); for(i=0;i<4;i++)printf("%d",a[i]);}16.運(yùn)營下面程序,假如從鍵盤上輸入字符串"qwerty"和字符串"abcd",則程序的運(yùn)營結(jié)果是(10)。#include<stdio.h>strle(chara[],charb[]){ intnum=0,n=0; while(a[num]!='\0')num++; while(b[n]) {a[num]=b[n];num++;n++;} return(num);}main(){ charstr1[81],str2[81]; gets(str1); gets(str2); printf("%d\n",strle(str1,str2));}17.下面程序的運(yùn)營結(jié)果是(AGAAGAG)。#include<stdio.h>#include<string.h>voidfun(char*w,intm){ chars,*p1,*p2; p1=w; p2=w+m-1; while(p1<p2) {s=*p1++;*p1=*p2--;*p2=s;}}main(){ staticchara[]="ABCDEFG"; fun(a,strlen(a)); puts(a);}
第8章練習(xí)8答案選擇題1.在程序中要使用語句:printf("%s\n",STRING);輸出一個(gè)長度為5個(gè)字符的提醒信息"OK!",則應(yīng)使用宏定義語句(D)。A.#defineSTRING"OK!" B.#defineSTRING""OK!""C.#defineSTRING\"OK!\" D.#defineSTRING"\"OK!\""2.以下對的的描述為(C)。A.每個(gè)C語言程序必須在開頭用預(yù)解決命令#include<stdio.h>B.預(yù)解決命令必須位于C源程序的首部C.在C語言中預(yù)解決命令都以"#"開頭D.C語言的預(yù)解決命令只能實(shí)現(xiàn)宏定義和條件編譯的功能3.C語言的編譯系統(tǒng)中宏命令是(D)。A.在程序運(yùn)營時(shí)進(jìn)行代換解決的B.在程序連接時(shí)進(jìn)行解決的C.和源程序中其他C語句同時(shí)進(jìn)行編譯的D.在對源程序中其他成分正式編譯之前進(jìn)行解決的4.從下列選項(xiàng)中選擇不會引起二義性的宏定義是(D)。A.#definePOWER(x)x*x B.#definePOWER(x)(x)*(x)C.#definePOWER(x)(x*x) D.#definePOWER(x)((x)*(x))5.若有宏定義如下:#defineX5#defineYX+1#defineZY*X/2則執(zhí)行以下printf語句后,輸出結(jié)果是(D)。inta;a=Y;printf("%d,",Z);printf("%d\n",--a);A.7,6 B.12,6 C.12,5 D.7,56.若a、b、c、d、t均為int型變量,則執(zhí)行以下程序段后結(jié)果為(C)。#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf("Y=%d\n",Y)……a=1;b=2;c=3;d=4;t=MAX(a+b,c+d);PRINT(t);A.Y=3 B.存在語法錯(cuò)誤 C.Y=7 D.Y=0
第9章練習(xí)9-1答案一、選擇題1.typedefunsignedlongLONG的作用是(D)。A.建立了一種新的數(shù)據(jù)類型 B.定義了一個(gè)整形變量C.定義了一個(gè)長整型變量 D.定義了一個(gè)新的數(shù)據(jù)類型標(biāo)記符2.下面的4個(gè)運(yùn)算符中,優(yōu)先級最低的是(D)。A.() B.. C.-> D.++3.已知:struct{inti; charc; floata;}test;則sizeof(test)的值是(D)。A.4 B.5 C.6 D.74.當(dāng)聲明一個(gè)結(jié)構(gòu)變量時(shí)系統(tǒng)分派給它的內(nèi)存是(A)。A.各成員所需內(nèi)存量的總和 B.結(jié)構(gòu)中第一個(gè)成員所需內(nèi)存量C.成員中占內(nèi)存量最大者所需的容量 D.結(jié)構(gòu)中最后一個(gè)成員所需內(nèi)存量5.以下對結(jié)構(gòu)類型變量的定義中錯(cuò)誤的是(D)。A.typedefstructstudent B.structstudent{ intnum; {intnum; floatage; floatage;}STUDENTstd1; }std1;C.struct D.struct{ intnum; {intnum; floatage; floatage;}std1; }student; structstudentstd1;6.根據(jù)下面的定義,能打印出字母M的語句是(D)。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]);7.以下scanf函數(shù)調(diào)用語句中對結(jié)構(gòu)變量成員的錯(cuò)誤引用是(D)。structpupil{charnam[20]; intage; intsex}pup[5],*p;p=pup;A.scanf("%s",pup[1].name); B.scanf("%d",&pup[0].age);C.scanf("%d",&(p->sex)); D.scanf("%d",p->age);8.若有以下程序段:structdent{intn; int*m;};inta=1,b=2,c=3;structdents[3]={{101,&a},{102,&b},{103,&c}};structdent*p=s;則以下表達(dá)式中值為2的是(D)。A.(p++)->m B.*(p++)->m C.(*p).m D.*(++p)->m二、填空題9.已知:struct{intx,y;}s[2]={{1,2},{3,4}},*p=s;則表達(dá)式++p->x的值(①2),表達(dá)式(++p)->x的值是(②3)。10.下面的程序從終端上輸入n個(gè)人的年齡、性別和姓名,然后輸出。則①是(p+n)、②是(gets(p->name)或scanf("%s",p->name))、③是(p+n)。#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=①; for(;p<q;p++) { printf("age:sex:name"); scanf("%u%s",&p->age,p->sex); ②; }}data_out(structman*p,intn){ structman*q=③; for(;p<q;p++) printf("%s;%u%s\n",p->name,p->age,p->sex);}三、讀程序,寫結(jié)果。11.下面程序的運(yùn)營結(jié)果是(Zhao)。#include<stdio.h>structstu{ intnum; charname[10]; intage;};voidfun(structstu*p){ printf("%s\n",(*p).name);}main(){structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}}; fun(students+2);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理總復(fù)習(xí)專題十電磁感應(yīng)第3講電磁感應(yīng)定律的綜合應(yīng)用練習(xí)含答案
- 勞務(wù)分包合同價(jià)款確定技巧
- 2023年華僑生聯(lián)考英語作文真題
- 廣東省肇慶市高中英語 Unit 4 Astronomy the science of the starsReading教案 新人教版必修3
- 九年級化學(xué)上冊 第1單元 步入化學(xué)殿堂 到實(shí)驗(yàn)室去 化學(xué)實(shí)驗(yàn)基本技能訓(xùn)練(一)教案(2)(新版)魯教版
- 2024年一年級品生下冊《班級小公約》教案 未來版
- 2024年九年級化學(xué)上冊 5.1 質(zhì)量守恒定律教案(pdf)(新版)新人教版
- 2024-2025學(xué)年高中物理 第一章 動量守恒定律 3 動量守恒定律教案 新人教版選擇性必修第一冊
- 2024年四年級英語下冊 Unit 8 What Can You Do Lesson 2教案 陜旅版(三起)
- 山東濟(jì)南槐蔭區(qū)2024-2025學(xué)年七年級數(shù)學(xué)第一學(xué)期期中考試試題(含答案)
- 塵肺病的知識講座
- 2024年度《給教師的一百條建議》讀后感課件
- 拔牙護(hù)理查房
- 發(fā)改委項(xiàng)目可行性研究報(bào)告編寫指南
- 《上海車展報(bào)告》課件
- 數(shù)學(xué)象棋:將數(shù)學(xué)應(yīng)用于象棋策略和思考
- 大學(xué)生生涯規(guī)劃與職業(yè)發(fā)展智慧樹知到期末考試答案2024年
- 消毒供應(yīng)室護(hù)理查房
- 年產(chǎn)十二萬噸天然橙汁食品工廠設(shè)計(jì)樣本
- 消防安全與建筑設(shè)計(jì)的結(jié)合
- 幼兒細(xì)菌科普知識
評論
0/150
提交評論