C語言復(fù)習(xí)習(xí)題及答案_第1頁
C語言復(fù)習(xí)習(xí)題及答案_第2頁
C語言復(fù)習(xí)習(xí)題及答案_第3頁
C語言復(fù)習(xí)習(xí)題及答案_第4頁
C語言復(fù)習(xí)習(xí)題及答案_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語言復(fù)習(xí)習(xí)題及答案數(shù)組習(xí)題數(shù)組習(xí)題●單項(xiàng)選擇題

1.在下列數(shù)組定義、初始化或賦值語句中,正確的是___. A)inta[8];a[8]=100; B)intx[5]={1,2,3,4,5,6}; C)intx[]={1,2,3,4,5,6};D)intn=8;intscore[n];2.若已有定義:inti,a[100];則下列語句中,不正確的是____. A)for(i=0;i<100;i++)a[i]=i; B)for(i=0;i<100;i++)scanf("%d",&a[i]); C)scanf("%d",&a); D)for(i=0;i<100;i++)scanf("%d",a+i);CC

返回目錄數(shù)組習(xí)題●單項(xiàng)選擇題

3.與定義charc[]={"GOOD"};不等價(jià)的是___. A)charc[]={‘G’,’O’,’O’,’D’,’\0’}; B)charc[]="GOOD"; C)charc[4]={"GOOD"}; D)charc[5]={‘G’,’O’,’O’,’D’,’\0’};4.若已有定義:charc[8]={"GOOD"};則下列語句中,不正確的是___. A)puts(c); B)for(i=0;c[i]!=’\0’;i++)printf("%c",c[i]); C)printf("%s",c); D)for(i=0;c[i]!=’\0’;i++)putchar(c);CD數(shù)組習(xí)題●單項(xiàng)選擇題

5.若定義a[][3]={0,1,2,3,4,5,6,7};則a數(shù)組中行的大小是___. A)2 B)3 C)4 D)無確定值6.以下程序的運(yùn)行結(jié)果是___. #include<stdio.h> voidf(intb[]) { inti=0; while(b[i]<=10) {b[i]+=2;i++; } } A)271211139B)171211137 C)171211139D)17129137BBmain(){ inti,a[]={1,5,10,9,13,7}; f(a+1); for(i=0;i<6;i++) printf("%4d",a[i]);}數(shù)組習(xí)題●單項(xiàng)選擇題

7.若執(zhí)行以下程序段,其運(yùn)行結(jié)果是___. charc[]={'a','b','\0','c','\0'}; printf("%s\n",c); A)abc

B)‘a(chǎn)’‘b’

C)abc

D)ab8.?dāng)?shù)組名作為參數(shù)傳遞給函數(shù),作為實(shí)際參數(shù)的數(shù)組名被處理為___. A)該數(shù)組長度 B)該數(shù)組元素個(gè)數(shù) C)該函數(shù)中各元素的值 D)該數(shù)組的首地址11.當(dāng)接受用戶輸入的含空格的字符串時(shí),應(yīng)使用函數(shù)__. A)scanf()B)gets()C)getchar()D)getc()DDB數(shù)組習(xí)題●單項(xiàng)選擇題

9.執(zhí)行下面的程序段后,變量k中的值為___. intk=3,s[2]={1}; s[0]=k; k=s[1]*10; A)不定值 B)33 C)30 D)010.在定義 inta[5][4]; 之后;對(duì)a的引用正確的是___. A)a[2][4] B)a[5][0] C)a[0][0] D)a[0,0]DC數(shù)組習(xí)題●程序填空題

1.以下程序用來檢查二維數(shù)組是否對(duì)稱(即:對(duì)所有i,j都有a[i][j]=a[j][i])。#include<stdio.h>main(){ inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,8,6,7,4}; inti,j,found=0; for(j=0;j<4;j++) { for(i=0;i<4;i++) if(___________________) { found=___________________; break; } if(found)break; } if(found) printf("不對(duì)稱\n"); else printf("對(duì)稱\n");}a[i][j]!=a[j][i]1數(shù)組習(xí)題●程序填空題

2.以下程序是用來輸入5個(gè)整數(shù),并存放在數(shù)組中,找出最大數(shù)與最小數(shù)所在的下標(biāo)位置,并把兩者對(duì)調(diào),然后輸出調(diào)整后的5個(gè)數(shù)。#include<stdio.h>main(){ inta[5],t,i,maxi,mini; for(i=0;i<5;i++) scanf("%d",&a[i]); mini=maxi=_____【3】________; for(i=1;i<5;i++) { if(_______【4】______)mini=i; if(a[i]>a[maxi])_____【5】________; } printf("最小數(shù)的位置是:%3d\n",mini); printf("最大數(shù)的位置是:%3d\n",maxi); t=a[maxi];______【6】_______; a[mini]=t; printf("調(diào)整后的數(shù)為:"); for(i=0;i<5;i++) printf("%d",a[i]); printf("\n");}0a[mini]>a[i]maxi=ia[maxi]=a[mini]數(shù)組習(xí)題●程序填空題

3.給定一3x4的矩陣,求出其中的最大元素值,及其所在的行列號(hào):main(){ inti,j,row=0,colum=0,max; staticinta[3][4]={{1,2,3,4},{9,8,7,6},{10,-10,-4,4}}; _______【7】______; for(i=0;i<=2;i++) for(j=0;j<=3;j++) { _____【8】________; _____【9】_______; } printf("%d%d",row,colum);}max=a[0][0]if(a[i][j]>max){ max=a[i][j]; row=i; colum=j;}數(shù)組習(xí)題●程序填空題

4.下述函數(shù)用于確定給定字符串的長度,請(qǐng)完成程序。strlen(chars[]){ inti=0; while(______【10】_______)++i; return(______【11】_______);}s[i]!=‘\0’i數(shù)組習(xí)題●程序填空題

5.以下程序的功能是從鍵盤上輸入若干個(gè)字符(以回車鍵作為結(jié)束)組成一個(gè)字符數(shù)組,然后輸出該字符數(shù)組中的字符串,請(qǐng)?zhí)羁眨?include<stdio.h>main(){ charstr[81]; inti; for(i=0;i<80;i++) { str[i]=getchar(); if(str[i]==’\n’)break; } str[i]=’\0’; _____【12】________; while(str[i]!=’\0’)putchar(_____【13】________);}i=0str[i++]數(shù)組習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

1.寫出下列程序的運(yùn)行結(jié)果并分析之:#include<stdio.h>main(){ staticinta[4][5]={{1,2,3,4,0},{2,2,0,0,0},{3,4,5,0,0},{6,0,0,0,0}}; intj,k; for(j=0;j<4;j++) { for(k=0;k<5;k++) { if(a[j][k]==0)break; printf("%d",a[j][k]); } } printf("\n");}數(shù)組習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

2.寫出下列程序的運(yùn)行結(jié)果并分析之:#include<stdio.h>main(){ inta[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++) a[i][j]=i*j; for(i=1;i<6;i++) { for(j=1;j<6;j++) printf("%-4d",a[i][j]); printf("\n"); }}數(shù)組習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

3.寫出下列程序的運(yùn)行結(jié)果并分析之:#include<stdio.h>main(){ inta[]={1,2,3,4},i,j,s=0; j=1; for(i=3;i<=0;i--) { s=s+a[i]*j; j=j*10; } printf("s=%d\n",s);}數(shù)組習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

4.寫出下列程序的運(yùn)行結(jié)果并分析之:#include<stdio.h>main(){ inta[]={0,2,5,8,12,15,23,35,60,65};

intx=15,i,n=10,m; i=n/2+1; m=n/2; while(m!=0) { if(x<a[i]){i=i-m/2-1;m=m/2;} else if(x>a[i]){i=i+m/2+1;m=m/2;} else break; } printf("place=%d",i+1);}數(shù)組習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

5.寫出下列程序的運(yùn)行結(jié)果并分析之:#include<stdio.h>main(){ inta[]={1,2,3,4},i,j,s=0; j=1; for(i=3;i>=0;i--) { s=s+a[i]*j; j=j*10; } printf("s=%d\n",s);}數(shù)組習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

6.寫出下列程序的運(yùn)行結(jié)果并分析之:#include<stdio.h>main(){ charstr[]={"1a2b3c"}; inti; for(i=0;str[i]!='\0';i++) if(str[i]>='0'&&str[i]<='9') printf("%c",str[i]); printf("\n");}數(shù)組習(xí)題●編程題

1.編一程序用簡(jiǎn)單選擇排序方法對(duì)10個(gè)整數(shù)排序(從大到?。?。排序思路為:首先從n個(gè)整數(shù)中選出值最大的整數(shù),將它交換到第一個(gè)元素位置,再從剩余的n-1個(gè)整數(shù)中選出值次大的整數(shù),將它交換到第二個(gè)元素位置,重復(fù)上述操作n次后,排序結(jié)束。2.編寫一程序,實(shí)現(xiàn)兩個(gè)字符串的連接(不用strcat()函數(shù))。3.編寫一個(gè)把字符串轉(zhuǎn)換成浮點(diǎn)數(shù)的函數(shù)。4.若有說明:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};現(xiàn)要將a的行和列的元素互換后存到另一個(gè)二維數(shù)組b中。試編程。5.n皇后問題:在n*n的方陣棋盤上,試放n個(gè)皇后,每放一個(gè)皇后,必須滿足該皇后與其它皇后互不攻擊(即不在同一行、同一列、同一對(duì)角線上),求出所有可能解。6.背包問題:有一個(gè)背包,能裝入的物品總重量為S,設(shè)有N件物品,其重量分別為W1,W2,……,WN。希望從N件物品中選擇若干件物品,所選物品的重量之和恰能放入該背包,即所選物品的重量之和等于S。試編程求解。數(shù)組習(xí)題●編程題

參考源碼:

函數(shù)習(xí)題函數(shù)習(xí)題●單項(xiàng)選擇題

C語言中函數(shù)形參的缺省存儲(chǔ)類型是____.

A)靜態(tài)(static)

B)自動(dòng)(auto)

C)寄存器(register)D)外部(extern)函數(shù)調(diào)用語句function((exp1,exp2),18)中含有的實(shí)參個(gè)數(shù)為____.

A)0 B)1

C)2 D)3BC

返回目錄函數(shù)習(xí)題●單項(xiàng)選擇題

下面函數(shù)返回值的類型是____.

square(floatx) { returnx*x; }

A)與參數(shù)x的類型相同B)是void型

C)無法確定D)是int型C語言規(guī)定,程序中各函數(shù)之間____.

A)不允許直接遞歸調(diào)用,也不允許間接遞歸調(diào)用

B)允許直接遞歸調(diào)用,但不允許間接遞歸調(diào)用

C)不允許直接遞歸調(diào)用,但允許間接遞歸調(diào)用

D)既允許直接遞歸調(diào)用,也允許間接遞歸調(diào)用DD函數(shù)習(xí)題●單項(xiàng)選擇題

一個(gè)函數(shù)返回值的類型取決于____.A)return語句中表達(dá)式的類型

B)調(diào)用函數(shù)時(shí)臨時(shí)指定

C)定義函數(shù)時(shí)指定或缺省的函數(shù)類型

D)調(diào)用該函數(shù)的主調(diào)函數(shù)的類型下面敘述中,錯(cuò)誤的是____.A)函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B)為了提高可讀性,編寫程序時(shí)應(yīng)該適當(dāng)使用注釋

C)變量定義時(shí)若省去了存儲(chǔ)類型,系統(tǒng)將默認(rèn)其為靜態(tài)變量

D)函數(shù)中定義的局部變量的作用域在函數(shù)內(nèi)部CC函數(shù)習(xí)題●單項(xiàng)選擇題

7)在一個(gè)源程序文件中定義的全局變量的有效范圍為___.A)一個(gè)C程序的所有源程序文件B)該源程序文件的全部范圍C)從定義處開始到該源程序文件結(jié)束 D)函數(shù)內(nèi)全部范圍 某函數(shù)在定義時(shí)未指明函數(shù)返回值類型,且函數(shù)中沒有return語句,現(xiàn)若調(diào)用該函數(shù),則正確的說法是___.A)沒有返回值B)返回一個(gè)用戶所希望的值

C)返回一個(gè)系統(tǒng)默認(rèn)值D)返回一個(gè)不確定的值CD函數(shù)習(xí)題●單項(xiàng)選擇題

9)函數(shù)swap(intx,inty)可實(shí)現(xiàn)對(duì)x和y值的交換。在執(zhí)行如下定義及調(diào)用語句后,a和b的值分別為___.inta=10,b=20;swap(a,b);A)10和10B)10和20C)20和10 D)20和20下面錯(cuò)誤的敘述是___.A)在某源程序不同函數(shù)中可以使用相同名字的變量

B)函數(shù)中的形式參數(shù)是局部變量

C)在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D)在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效BD函數(shù)習(xí)題●程序填空題

1.求s=1!+2!+3!+…+10!之和。程序如下:#include<stdio.h>longintfactorial(intn){intk=1;longintp=1;for(k=1;k<=n;k++)__________________;returnp;}main(){intn;floatsum=0;

for(n=1;n<=10;n++)

______________________;

printf("%6.3f\n",sum);}p=p*ksum+=factorial(n)或sum=sum+factorial(n)函數(shù)習(xí)題●程序填空題

2.以下函數(shù)用以求x的y次方。doublefun(doublex,inty){inti;doublem=1;for(i=1;i______________;i++) m=_______________;returnm;}<=y或<y+1m*x函數(shù)習(xí)題●程序填空題

3.下面定義了一個(gè)函數(shù)pi,其功能是根據(jù)以下的近似值公式來求π值:#include<stdio.h>#include<math.h>doublepi(longn){doubles=_________________;longk;for(k=1;k<=n;k++)s=s+________________;return(_____________________);}01/(k*k)sqrt(6*s)答案不唯一,因?yàn)槿舫踔挡煌?,則有不同的答案組合。函數(shù)習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

1.下面程序運(yùn)行的結(jié)果是_________________:#include<stdio.h>#defineMAX_COUNT4voidfun();main(){intn;for(n=1;n<=MAX_COUNT;n++)fun();}voidfun(){staticintk;k=k+2;printf("%d,",k);}2,4,6,8,函數(shù)習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

2.下面程序運(yùn)行的結(jié)果是_________________:#include<stdio.h>intfun(intx){ints;if(x==0||x==1)return3;s=x-fun(x-3);returns;}main(){printf("%d\n",fun(3));}0函數(shù)習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

3.下面程序運(yùn)行的結(jié)果是_________________:#include<stdio.h>unsignedintfun(unsignednum){unsignedintk=1;do{k=k*num%10;

num=num/10;

}while(num);

returnk;}main(){

unsignedn=25;

printf(“%u\n”,fun(n));}0函數(shù)習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

4.下面程序運(yùn)行的結(jié)果是_________________:#include<stdio.h>intfun(intx,inty){

staticintm=0,n=2;

n+=m+1;

m=n+x+y;returnm;}main(){intj=4,m=1,k;

k=fun(j,m);

printf("%d,",k);

k=fun(j,m);

printf("%d\n",k);}8,17函數(shù)習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

5.下面程序運(yùn)行的結(jié)果是_________________:#include<stdio.h>voidt(intx,inty,intp,intq){p=x*x+y*y;q=x*x-y*y;}main(){inta=4,b=3,c=5,d=6;

t(a,b,c,d);

printf("%d,%d\n",c,d);}5,6函數(shù)習(xí)題●編程題

1.編程實(shí)現(xiàn)從鍵盤輸入一整數(shù),如果該整數(shù)為素?cái)?shù),則返回1,否則返回0。要求單獨(dú)編寫一個(gè)求素?cái)?shù)的自定義函數(shù)。#include<stdio.h>intfun(intx){intn;for(n=2;n<x;n++)if(x%n==0)return0;return1;}main(){intx;scanf("%d",&x);if(fun(x))

printf(“%disaprimenumber!\n",x);else

printf("%disnotaprimenumber!\n",x);}函數(shù)習(xí)題●編程題

2.編寫一函數(shù)change(x,r),將十進(jìn)制整數(shù)x轉(zhuǎn)換成r(1<r<10)進(jìn)制后輸出。intchange(intx,intr){inttemp,result=0,count=0;do{temp=x%r;printf(“%d\n",temp);/*結(jié)果的逆序輸出*/result=result+temp*pow(10,count++);x=x/r;}while(x);returnresult;}函數(shù)習(xí)題●編程題

3.求1000以內(nèi)的親密數(shù)對(duì)。親密數(shù)對(duì)的定義為:若正整數(shù)a的所有因子(不包括a本身)之和為b,b的所有因子(不包括b本身)之和為a,且a≠b,則稱a與b為親密數(shù)對(duì)。#include<stdio.h>intfun(intx){intn,s=0;for(n=1;n<x;n++)if(x%n==0)s=s+n;returns;}main(){intn,a,b;for(a=1;a<=1000;a++){b=fun(a);if(fun(b)==a&&a!=b)printf("%d,%d\n",a,b);}}函數(shù)習(xí)題●編程題

4.試用遞歸的方法編寫一個(gè)返回長整型的函數(shù),以計(jì)算斐波納契數(shù)列的前20項(xiàng)。該數(shù)列滿足:F(0)=1,F(xiàn)(1)=1,F(xiàn)(n)=F(n-1)+F(n-2)(n>2)。#include<stdio.h>longintFibonacci(intn){longintp;if(n==0||n==1)p=n;elsep=Fibonacci(n-1)+Fibonacci(n-2);returnp;}main(){intn;for(n=1;n<=20;n++){printf("%8ld",Fibonacci(n));if((n+1)%8==0)printf("\n");}}函數(shù)習(xí)題●編程題

5.如果一個(gè)數(shù)等于其所有真因子(不包括其本身)之和,則該數(shù)為完數(shù),例如6的因子有1、2、3,且6=1+2+3,故6為完數(shù),求2~1000中的完數(shù)。

#include<stdio.h>intIsWanshu(intn){intk,s=0;for(k=1;k<n;k++)if(n%k==0)s=s+k;if(s==n)return1;elsereturn0;}main(){inti,j=0;for(i=2;i<=1000;i++){if(IsWanshu(i)){printf("%5d",i);j=j+1;if(j%5==0)printf("\n");}}}指針習(xí)題指針習(xí)題●單項(xiàng)選擇題

1.若已定義inta=8,*p=&a;則下列說法中不正確的是__ A)*p=a=8 B)p=&a

C)*&a=*p

D)*&a=&*a2.若已定義shorta[2]={8,10},*p=&a[0];假設(shè)a[0]的地址為2000,則執(zhí)行p++后,指針p的值為__ A)2000 B)2001

C)2002

D)20033.若已定義inta[8]={0,2,3,4,5,6,7,8};*p=a;則數(shù)組第2個(gè)元素“2”不可表示為__ A)a[1]

B)p[1]

C)*p+1

D)*(p+1)

返回目錄DCC●單項(xiàng)選擇題

4.若已定義inta,*p=&a,**q=&p;則不能表示變量a的是__ A)*&a

B)*p C)*q

D)**q5.設(shè)已定義語句“int*p[10],(*q)[10];",其中的p和q分別是__ ①10個(gè)指向整型變量的指針 ②指向具有10個(gè)整型變量的函數(shù)指針 ③一個(gè)指向具有10個(gè)元素的一維數(shù)組的指針 ④具有10個(gè)指針元素的一維數(shù)組 A)②、① B)①、② C)③、④ D)④、③CD指針習(xí)題●單項(xiàng)選擇題

6.若已定義inta[2][4]={{80,81,82,83},{84,85,86,87}},(*p)[4]=a;則執(zhí)行p++;后,**p代表的元素是____ A)80 B)81 C)84 D)857.執(zhí)行語句“chara[10]={"abcd"};*p=a;后,(p+4)的值是____ A)"abcd" B)'\0' C)'d’ D)不能確定8.設(shè)已定義inta[3][2]={10,20,30,40,50,60};和語句(*p)[2]=a;則*(*(p+2)+1)的值為____ A)60 B)30 C)50 D)不能確定CBA指針習(xí)題●單項(xiàng)選擇題

9.以下程序的運(yùn)行結(jié)果是____#include<stdio.h>main(){ inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int*p[4],i; for(i=0;i<4;i++) p[i]=a[i]; printf("%2d,%2d,%2d,%2d\n",*p[1],(*p)[1],p[3][2],*(p[3]+1));}A)4,4,9,8B)程序出錯(cuò)C)4,2,12,11D)1,1,7,5C指針習(xí)題●單項(xiàng)選擇題

10.以下各語句或語句組中,正確的操作是____ A)chars[4]="abcde"; B)char*s;gets(s); C)char*s;s="abcde"; D)chars[5];scanf("%s",&s);C指針習(xí)題●單項(xiàng)選擇題

11.以下程序的運(yùn)行結(jié)果是____#include<stdio.h>main(){ char*s="xcbc3abcd"; inta,b,c,d; a=b=c=d=0; for(;*s;s++) switch(*s) { case'c':c++; case'b':b++; default:d++;break; case'a':a++; } printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);}(a='a'的個(gè)數(shù)、b='b','c'的個(gè)數(shù)、c='c'的個(gè)數(shù)、d=非'a'的個(gè)數(shù))A)a=1,b=5,c=3,d=8 B)a=1,b=2,c=3,d=3C)a=9,b=5,c=3,d=8 D)a=0,b=2,c=3,d=3A指針習(xí)題●單項(xiàng)選擇題

12.若有以下程序:#include<stdio.h>main(intargc,char*argv[]){ while(--argc) printf("%s",argv[argc]); printf("\n");}該程序經(jīng)編譯和連接后生成可執(zhí)行文件S.EXE?,F(xiàn)在如果在DOS提示符下鍵入SAABBCC后回車,則輸出結(jié)果是:__A)AABBCC B)AABBCCSC)CCBBAA D)CCBBAASC指針習(xí)題●單項(xiàng)選擇題

13.若有定義char*language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"};則language[2]的值是:__ A)一個(gè)字符 B)一個(gè)地址 C)一個(gè)字符串 D)不定值14.若有以下定義和語句,則對(duì)a數(shù)組元素地址的正確引用是: inta[2][3],(*p)[3]; p=a; A)*(p+2) B)p[2] C)p[1]+1 D)(p+1)+2BC指針習(xí)題●單項(xiàng)選擇題

15.若有intmax(),(*p)();為使函數(shù)指針變量p指向函數(shù)max,正確的賦值語句是:__ A)p=max; B)*p=max; C)p=max(a,b); D)*p=max(a,b);16.若有定義inta[3][5],i,j;(且0≤i<3,0≤j<5),則a[i][j]不正確的地址表示是:__ A)&a[i][j] B)a[i]+j C)*(a+i)+j D)*(*(a+i)+j)AD指針習(xí)題●單項(xiàng)選擇題

17.設(shè)先有定義: chars]10]; char*p=s; 則下面不正確的表達(dá)式是:__ A)p=s+5 B)s=p+s C)s[2]=p[4]D)*p=s[0]18.設(shè)先有定義: char**s; 則下面正確的表達(dá)式是:__ A)s="computer" B)*s="computer" C)**s="computer" D)*s='c'BB指針習(xí)題●程序填空題

1.定義compare(char*s1,char*s2)函數(shù),實(shí)現(xiàn)比較兩個(gè)字符串大小的功能。以下程序運(yùn)行結(jié)果為-32,選擇正確答案填空。#include<stdio.h>main(){ printf("%d\n",compare("abCd","abc");}compare(char*s1,char*s2){ while(*s1&&*s2&&______【1】_______) { s1++; s2++; } return*s1-*s2;}*s1==*s2指針習(xí)題●程序填空題

2.以下程序用來輸出字符串。#include<stdio.h>main(){ char*a[]={"for","switch","if","while"}; char**p; for(p=a;p<a+4;p++) printf("%s\n",______【2】_______);}*p指針習(xí)題●程序填空題

3.以下程序的功能是從鍵盤上輸入若干個(gè)字符(以回車鍵作為結(jié)束)組成一個(gè)字符數(shù)組,然后輸出該字符數(shù)組中的字符串,請(qǐng)?zhí)羁眨?include<stdio.h>main(){ charstr[81],*p; inti; for(i=0;i<80;i++) { str[i]=getchar(); if(str[i]=='\n’)break; } str[i]=’\0’; ______【3】_______; while(*p)putchar(*p______【4】_______);}p=str++指針習(xí)題●程序填空題

4.下面是一個(gè)實(shí)現(xiàn)把t指向的字符串復(fù)制到s的函數(shù),請(qǐng)完成之。strcpy(char*s,char*t){ while((______【5】_______)!=’\0’);}*s++=*t++指針習(xí)題●程序填空題

5.下面count函數(shù)的功能是統(tǒng)計(jì)子串substr在母串str中出現(xiàn)的次數(shù)。count(char*str,char*substr){ inti,j,k,num=0; for(i=0;_____【6】______;i++) for(____【7】_____,k=0;substr[k]==str[j];k++,j++) if(substr[______【8】_______]=='\0') { num++; break; } return(num);}str[i]!=‘\0’j=ik+1指針習(xí)題●程序填空題

6.下面connect函數(shù)的功能是將兩個(gè)字符串s和t連接起來。connect(char*s,char*t){ char*p=s; while(*s)______【9】_______; while(*t) { *s=______【10】_______; s++; t++; } *s='\0'; ______【11】_______}s++*treturn(p);指針習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

1.運(yùn)行如下程序并分析其結(jié)果:#include<stdio.h>main(){ voidfun(char*s); staticcharstr[]="123"; fun(str);}voidfun(char*s){ if(*s) { fun(++s); printf("%s\n",--s); }}指針習(xí)題●閱讀程序并寫出運(yùn)行結(jié)果

2.運(yùn)行如下程序并分析其結(jié)果:#include<stdio.h>voidsub(int*x,inty,intz){ *x=y-z;}main(){ inta,b,c; sub(&a,10,5); sub(&b,a,7); sub(&c,a,b); printf("%d,%d,%d\n",a,b,c);}●閱讀程序并寫出運(yùn)行結(jié)果

3.下列程序的功能是保留給定字符串中小于字母'n'的字母。請(qǐng)寫出其結(jié)果并分析:#include<stdio.h>voidabc(char*p){ inti,j; for(i=j=0;*(p+i)!='\0';i++) if(*(p+i)<'n') { *(p+j)=*(p+i); j++; } *(p+j)='\0';}main (){ charstr[]="morning"; abc(str); puts(str);}4.運(yùn)行如下程序并分析其結(jié)果:#include<stdio.h>main() { char*a[4]={"Tokyo","Osaka","Sapporo","Nagoya"}; char*pt; pt=a; printf("%s",*(a+2));}●閱讀程序并寫出運(yùn)行結(jié)果

5.設(shè)如下程序的文件名為myprogram.c,編譯并連接后在DOS提示下鍵入命令:myprogramonetwothree,則執(zhí)行結(jié)果是:#include<stdio.h>main(intargc,char*argv[]){ inti; for(i=1;i<argc;i++) printf("%s%c",argv[i],(i<argc-1)?'':'\n');}●編程題

編一程序,求出從鍵盤輸入的字符串的長度。編一程序,將字符串中的第m個(gè)字符開始的全部字符復(fù)制到另一個(gè)字符串。要求在主函數(shù)中輸入字符串及m的值并輸出復(fù)制結(jié)果,在被調(diào)用函數(shù)中完成復(fù)制。輸入一個(gè)字符串,按相反次序輸出其中的所有字符.輸入2個(gè)字符串,將其連接后輸出.編寫一個(gè)密碼檢測(cè)程序,程序執(zhí)行時(shí),要求用戶輸入密碼(標(biāo)準(zhǔn)密碼預(yù)先設(shè)定),然后通過字符串比較函數(shù)比較輸入密碼和標(biāo)準(zhǔn)密碼是否相等.若相等,則顯示“口令正確”并轉(zhuǎn)去執(zhí)行后繼程序;若不相等,重新輸入,三次都不相等則終止程序的執(zhí)行。編寫一程序,求出某個(gè)二維數(shù)組中各行的最大值,并指明其位置。編寫一程序,求某個(gè)字符串的子串?!窬幊填}

參考解答:

結(jié)構(gòu)體習(xí)題結(jié)構(gòu)體習(xí)題●單項(xiàng)選擇題

1.下面正確的敘述的是()。A)結(jié)構(gòu)一經(jīng)定義,系統(tǒng)就給它分配了所需的內(nèi)存單元B)結(jié)構(gòu)體變量和共用體變量所占內(nèi)存長度是各成員所占內(nèi)存長度之和C)可以對(duì)結(jié)構(gòu)類型和結(jié)構(gòu)類型變量賦值、存取和運(yùn)算D)定義共用體變量后,不能引用共用體變量,只能引用共用體變量中的成員2.結(jié)構(gòu)體類型變量在程序執(zhí)行期間()。A)所有成員駐留在內(nèi)存中B)只有一個(gè)成員駐留在內(nèi)存中C)部分成員駐留在內(nèi)存中D)沒有成員駐留在內(nèi)存中

返回目錄DA結(jié)構(gòu)體習(xí)題●單項(xiàng)選擇題

3.設(shè)有以下定義structdate{ intcat; charc; inta[4]; longm;}mydate;則在TurboC中執(zhí)行語句: printf("%d",sizeof(structdate));的結(jié)果是()。A)25 B)15 C)18 D)8B結(jié)構(gòu)體習(xí)題●單項(xiàng)選擇題

4.在說明一個(gè)共用體變量時(shí)系統(tǒng)分配給它的存儲(chǔ)空間是()A)該共用體中第一個(gè)成員所需存儲(chǔ)空間B)該共用體中最后一個(gè)成員所需存儲(chǔ)空間C)該共用體中占用最大存儲(chǔ)空間的成員所需存儲(chǔ)空間D)該共用體中所有成員所需存儲(chǔ)空間的總和5.共用體類型變量在程序執(zhí)行期間的某一時(shí)刻()。A)所有成員駐留在內(nèi)存中B)只有一個(gè)成員駐留在內(nèi)存中C)部分成員駐留在內(nèi)存中D)沒有成員駐留在內(nèi)存中CB結(jié)構(gòu)體習(xí)題●單項(xiàng)選擇題

6.對(duì)于下面有關(guān)結(jié)構(gòu)體的定義或引用,正確的是()。structstudent{ intno; intscore;}student1;A)student.score=99; B)studentLiMing;LiMing.score=99;C)stuctLiMing;LiMing.score=99; D)stuctstudentLiMing;LiMing.score=99;D結(jié)構(gòu)體習(xí)題●單項(xiàng)選擇題

7.以下說法錯(cuò)誤的是()。A)結(jié)構(gòu)體變量的名稱為該結(jié)構(gòu)體變量的存儲(chǔ)首地址B)TurboC中,結(jié)構(gòu)體變量占用空間的大小為各成員項(xiàng)占用空間大小之和,而共用體占用空間大小為其成員項(xiàng)中占用空間最大的成員項(xiàng)所需存儲(chǔ)空間大小C)結(jié)構(gòu)體定義時(shí)不分配存儲(chǔ)空間,只有在結(jié)構(gòu)體變量說明時(shí),系統(tǒng)才分配存儲(chǔ)空間D)結(jié)構(gòu)體數(shù)組中不同元素的同名成員項(xiàng)具有相同的數(shù)據(jù)類型A結(jié)構(gòu)體習(xí)題●單項(xiàng)選擇題

8.若有以下說明和語句:structteacher{ intno; char*name;}xiang,*p=&xiang;則以下引用方式不正確的是()。A)xiang.no B)(*p).no C)p->no D)xiang->noD結(jié)構(gòu)體習(xí)題●程序填空題

1.以下程序段的作用是統(tǒng)計(jì)鏈表中結(jié)點(diǎn)的個(gè)數(shù),其中first為指向第1個(gè)結(jié)點(diǎn)的指針。structnode{ chardata; structnode*next;}*p,*first;...intc=0;p=first;while(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論