版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.@:《C語言程序設計》練習題一、單項選擇題單項選擇題要求從給出的四個備選答案中,選出一個最符合題意的答案。本類習題主要檢查對C語言基本概念的掌握情況。在完成習題的過程中,不但要選出正確的答案,而且要清楚不正確的選項錯在何處,以加深對概念的理解。對于掌握不準的問題,應該通過上機實驗來檢驗。1.下列四組字符串中都可以用作C語言程序標識符的一組是__A__。標識符開頭的必須是字母或者下劃線A)printB)i\amC)PxqD)str_l(字符串名稱)_3done_halfMy->bookCppoodbstart$itline#powaBc3paiHis.agewhile2.C語言程序從main()函數(shù)開始執(zhí)行,所以這個函數(shù)要寫在_D___。A)程序文件的開始B)程序文件的最后C)它所調(diào)用的函數(shù)的前面D)程序文件的任何位置3.下列關(guān)于C語言的敘述錯誤的是___A_。A)大寫字母和小寫字母的意義相同B)不同類型的變量可以在一個表達式中C)在賦值表達式中等號(=)左邊的變量和右邊的值可以是不同類型D)同一個運算符號在不同的場合可以有不同的含義4.在C語言中,錯誤的int類型的常數(shù)是___A_。注意范圍A)32768B)0C)0375.已知longi=65539;執(zhí)行語句printf("%d",i);屏幕顯示A____。A)65539B)-3C6.在C語言中,整數(shù)-8在內(nèi)存中的存儲形式是___A_。A)1111111111111000B)1000000000001000C)0000000000001000D)11111111111101117.C語言中字符型(char)數(shù)據(jù)在內(nèi)存中的存儲形式是__D__。A)原碼B)補碼C)反碼D)ASCII碼8.將字符g賦給字符變量c,正確的表達式是__C__。A)c=\147B)c="\147"C)c='\147'D)c='0147'9.已知:chara;intb;floatc;doubled;執(zhí)行語句"c=a+b+c+d;"后,變量c的數(shù)據(jù)類型是_C___。A)intB)charC)floatD)double10.溫度華氏和攝氏的關(guān)系是:C=-(F-32)。已知:floatC,F;由華氏求攝氏的正確的賦值表達式是__B__。A)C=5/9(F-32)B)C=5*(F-32)/9C)C=5/9*(F-32)D)三個表達式都正確11.逗號表達式"(a=3*5,a*4),a+15"的值是_C___。A)15B)60C12.如果inta=1,b=2,c=3,d=4;則條件表達式"a<b?a:c<d?c:d"的值是__A_。書103頁A)1B)2C)313.已知inti=10;表達式"20-0<=i<=9"的值是__B__。A)0B)1C)1914.使用語句scanf("x=%f,y=%f",&x,&y);輸入變量x、y的值(□代表空格),正確的輸入是_C___。(scanf函數(shù)是取地址的,所以一定要加上字母。不是int函數(shù))A)1.25,2.4B)1.25□2.4C)x=1.25,y=2.4D)x=1.2515.已知intx=(1,2,3,4);變量x的值是__D__。(其實,逗號表達式無非是把若干個表達式“串聯(lián)”起來,分解開就是:x=1;x=2;x=3;x=4;最終結(jié)果是x=4)A)1B)2C)316.已知inti=1,j=0;執(zhí)行下面語句后j的值是_D___。while(i)switch(i){case1:i+=1;j++;break;case2:i+=2;j++;break;case3:i+=3;j++;break;default:i--;j++;break;}A)1B)2C)317.求取滿足式12+22+32+……+n2≤1000的n,正確的語句是A____。A)for(i=1,s=0;(s=s+i*i)<=1000;n=i++);B)for(i=1,s=0;(s=s+i*i)<=1000;n=++i);C)for(i=1,s=0;(s=s+i*++i)<=1000;n=i);D)for(i=1,s=0;(s=s+i*i++)<=1000;n=i);18.下面的for語句_C___。for(x=0,y=10;(y>0)&&(x<4);x++,y--);A)是無限循環(huán)B)循環(huán)次數(shù)不定C)循環(huán)執(zhí)行4次D)循環(huán)執(zhí)行3次19.已知chara[][20]={"Beijing","shanghai","tianjin","chongqing"};語句printf("%c",a[30]);的輸出是_C___。A)<空格>B)nC)不定D)數(shù)組定義有誤20.對二維數(shù)組的正確說明是___C_。前面的括號內(nèi)的數(shù)字可以省略,但后面的不可以A)inta[][]={1,2,3,4,5,6};B)inta[2][]={1,2,3,4,5,6};C)inta[][3]={1,2,3,4,5,6};D)inta[2,3]={1,2,3,4,5,6};21.對字符數(shù)組str賦初值,str不能作為字符串使用的一個是_D___。A)charstr[]="shanghai";B)charstr[]={"shanghai"};C)charstr[9]={'s','h','a','n','g','h','a','i'};D)charstr[8]={'s','h','a','n','g','h','a','i'};22.如果一個變量在整個程序運行期間都存在,但是僅在說明它的函數(shù)內(nèi)是可見的,這個變量的存儲類型應該被說明為_A___。A)靜態(tài)變量(全局變量)B)動態(tài)變量(局部變量)C)外部變量D)內(nèi)部變量23.在一個C源程序文件中,若要定義一個只允許在該源文件中所有函數(shù)使用的變量,則該變量需要使用的存儲類別是__D__。A)externB)registerC)auto(自動變量)D)static(靜態(tài)變量)24.定義一個函數(shù)實現(xiàn)交換x和y的值,并將結(jié)果正確返回。能夠?qū)崿F(xiàn)此功能的是_C___。A)swapa(intx,inty)B)swapb(int*x,int*y){inttemp;{inttemp;temp=x;x=y;y=temp;temp=x;x=y;y=temp;}}C)swapc(int*x,int*y)D)swapd(int*x,int*y){inttemp;{int*temp;temp=*x;*x=*y;*y=temp;temp=x;x=y;y=temp;}}25.在下列結(jié)論中,只有一個是錯誤的,它是__C__。A)C語言允許函數(shù)的遞歸調(diào)用B)C語言中的continue語句,可以通過改變程序的結(jié)構(gòu)而省略C)有些遞歸程序是不能用非遞歸算法實現(xiàn)的D)C語言中不允許在函數(shù)中再定義函數(shù)26.說明語句"int(*p)();"的含義是__C__。A)p是一個指向一維數(shù)組的指針變量B)p是指針變量,指向一個整型數(shù)據(jù)C)p是一個指向函數(shù)的指針,該函數(shù)的返回值是一個整型(一個變量的指針即為其地址)D)以上都不對27.設有說明int(*p)[4];其中的標識符p是_C___。A)4個指向整型變量的指針變量B)指向4個整型變量的函數(shù)指針C)一個指向具有4個整型元素的一維數(shù)組的指針D)具有4個指向整型變量的指針元素的一維指針數(shù)組28.已知:chars[10],*p=s,則在下列語句中,錯誤的語句是__B__。S是變量,不能賦予確切的值A(chǔ))p=s+5;B)s=p+s;C)s[2]=p[4];D)*p=s[0];29.已知:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*ptr)[3]=a,*p=a[0];則以下能夠正確表示數(shù)組元素a[1][2]的表達式是_C___。A)*(*(a+1)+2)B)*(*(p+5))C)(*ptr+1)+2D)*((ptr+1)[2])30.已知:inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;則值為3的表達式是AC____。A)p+=2,*(p++)B)p+=2,*++pC)p+=2,*p++D)p+=2,++*p32.函數(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)func(int*x,int*y){*x=*y;*y=*x;{*x=*x+*y;*y=*x-*y;*x=*x-*y;}}33.有定義如下:structsk{inta;floatb;}data,*p;如果p=&data;則對于結(jié)構(gòu)變量data的成員a的正確引用是_B___。A)(*).data.aB)(*p).aC)p->data.aD)p.data.a34.已知:structst{intn;structst*next;};staticstructsta[3]={1,&a[1],3,&a[2],5,&a[0]},*p;如果下述語句的顯示是2,則對p的賦值是__C__。printf("%d",++(p->next->n));A)p=&a[0];B)p=&a[1];C)p=&a[2];D)p=&a[3];35.fscanf函數(shù)的正確調(diào)用形式是____D。A)fscanf(文件指針,格式字符串,輸出列表);B)fscanf(格式字符串,輸出列表,文件指針);C)fscanf(格式字符串,文件指針,輸出列表);D)fscanf(文件指針,格式字符串,輸入列表);36.使用fgetc函數(shù),則打開文件的方式必須是___C_。A)只寫B(tài))追加C)讀或讀/寫D)參考答案B和C都正確37.已知宏定義#defineN3#defineY(n)((N+1)*n)執(zhí)行語句z=2*(N+Y(5+1));后,變量z的值是_B___。A)42B)48C38.已知宏定義#defineSQ(x)x*x,執(zhí)行語句printf("%d",10/SQ(3));后的輸出結(jié)果是C___。A)1B)3C)9二、閱讀程序題閱讀程序?qū)τ诔鯇W者來說很重要,一方面可以鞏固所學的語法知識,另一方面通過閱讀別人寫好的程序來打開自己的思路,就所謂見多識廣。通過閱讀理解程序,從給出的四個備選參考答案中,選擇程序的正確輸出。如果選擇有誤,就要認真分析原因,是概念方面的錯誤還是對程序邏輯理解不對,從而加深對語法規(guī)則的理解,提高程序設計能力。程序設計語言是開發(fā)程序的一個工具,學習語言的目的是為了編寫程序來解決實際問題,所以特別提倡通過實際上機來檢驗備選答案,增強動手能力。1.下面程序的輸出結(jié)果是___B_。#include<stdio.h>main(){intx=10;{intx=20;printf("%d,",x);}printf("%d\n",x);}A)10,20B)20,10C2.以下程序的輸出結(jié)果是___D_。main(){intx=10,y=10;printf("%d%d\n",x――,――y);}A)1010B)99C)9103.下面程序可能的輸出結(jié)果是_AC___。main(){inta,b;scanf("%2d%3d",&a,&b);printf("a=%db=%d\n",a,b);}A)a=12b=34B)a=123b=45C4.以下程序段的輸出結(jié)果是___B_。inta=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);A)a=10b=50c=10B)a=10b=30c=10C)a=50b=30c=10D)a=50b=30c=505.以下程序的輸出結(jié)果是_C__。main(){inta=0,b=1,c=0,d=20;if(a)d=d-10;elseif(!b)if(!c)d=15;elsed=25;printf("d=%d\n",d);}A)d=10B)d=15C)d=206.下面程序的輸出結(jié)果為___B_。main(){inta=1,b=0;switch(a){case1:switch(b){case0:printf("**0**");break;case1:printf("**1**");break;}case2:printf("**2**");break;}}A)**0**B)**0****2**C)**0****1****2**D)有語法錯誤7.以下程序的輸出結(jié)果是__D__。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){case'1':v1++;case'3':v3++;case'2':v2++;default:v4++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}A)v1=4,v2=2,v3=1,v4=1B)v1=4,v2=9,v3=3,v4=1C)v1=5,v2=8,v3=6,v4=1D)v1=4,v2=7,v3=5,v4=88.下面程序的輸出是____B。main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}A)1B)1C)12223349.從鍵盤上輸入"446755"時,下面程序的輸出是C____。#include<stdio.h>main(){intc;while((c=getchar())!='\n')switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}printf("\n");}A)888988B)668966C)8889878710.下面程序的輸出結(jié)果是__A__。main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<-3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}A)x=4B)x=8C)x=611.下面程序的輸出結(jié)果是_C___。#include<stdio.h>main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)n[i][j]=i+j;for(i=0;i<2;i++)for(j=0;j<2;j++)n[i+1][j+1]+=n[i][j];printf("%d\n",n[i][j]);}A)14B)0C12.下面程序的輸出結(jié)果是_B___。#include<stdio.h>main(){inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};inti,j,n;n=9;i=n/5;j=n-i*5-1;printf("a[%d][%d]=%d\n",i,j,a[i][j]);}A)6B)-3C13.下面程序的輸出結(jié)果是__D__。#include<stdio.h>main(){chars1[50]={"somestring*"},s2[]={"test"};printf("%s\n",strcat(s1,s2));}A)somestring*B)testC)somestritestD)somestring*test14.下面程序的輸出結(jié)果是____B。#include<stdio.h>f(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("ABCDEF"));}A)3B)6C)815.下面程序的輸出結(jié)果是____D。#include<stdio.h>#include<string.h>main(){charstr[100]="Howdoyoudo";strcpy(str+strlen(str)/2,"esshe");printf("%s\n",str);}A)HowdoyoudoB)essheC)HowareyouD)Howdoesshe16.下面程序的輸出結(jié)果是___C_。#include<stdio.h>func(inta,intb){intc;c=a+b;return(c);}main(){intx=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf("%d\n",r);}A)11B)20C)2117.下面程序的輸出結(jié)果是_A___。main(){inta[]={1,2,3,4,5,6};int*p;p=a;printf("%d",*p);printf("%d",*(++p));printf("%d",*++p);printf("%d",*(p--));p+=3;printf("%d%d",*p,*(a+3));}A)123354B)123456C)12234518.下面程序的輸出結(jié)果是___A_。#include<stdio.h>main(){inta[]={1,2,3,4,5};intx,y,*p;p=&a[0];x=*(p+2);y=*(p+4);printf("%d,%d,%d\n",*p,x,y);}A)1,3,5B)1,2,3C)1,2,419.下面程序的輸出結(jié)果是__D__。#include"string.h"fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){staticchar*p="1234567";fun(p,strlen(p));printf("%s",p);}A)7654321B)1717171C)717171720.下面程序的輸出結(jié)果是__D__。#include<stdio.h>char*p="abcdefghijklmnopq";main(){inti=0;while(*p++!='e');printf("%c\n",*p);}A)cB)dC)eD)f21.下面程序的輸出結(jié)果是B__C__。#include"stdio.h"structstr1{charc[5];char*s;};main(){structstr1s1[2]={{"ABCD""EFGH"},{"IJK","LMN"}};structstr2{structstr1sr;intd;}s2={"OPQ","RST",32767};structstr1*p[2];p[0]=&s1[0];p[1]=&s1[1];printf("%s",++p[1]->s);/*①*/printf("%c",s2.sr.c[2]);/*②*/}①A)LMNB)MNC)ND)IJK②A)OB)PC)QD)R22.以下程序的輸出結(jié)果是D____。structst{intx,*y;}*p;ints[]={10,20,30,40};structsta[]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]};main(){p=a;printf("%d\n",++(*(++p)->y));}A)10B)11C)20三、程序填空題在程序填空題中,已經(jīng)給出了程序的主干,讀者首先要理解程序的思路,再選擇正確的內(nèi)容填入空白處,使程序完成既定的功能。這類習題的設計就是要引導讀者逐步掌握編程的方法。本節(jié)習題的難度適中,可能有些典型的程序在課堂上已經(jīng)有所接觸,讀者一定要獨立完成它,這樣就可以逐步提高自己的編程能力。1.下面程序的功能是不用第三個變量,實現(xiàn)兩個數(shù)的對調(diào)操作。#include<stdio.h>main(){inta,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);a=①;b=②;a=③;printf("a=%d,b=%d\n",a,b);}2.下面的程序的功能是求一維數(shù)組中的最小元素。findmin(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]<s[*k])①;}main(){inta[10],i,*k=&i;for(i=0;i<10;i++)scanf("%d",&a[i]);findmin(a,10,k);printf("%d,%d\n",*k,a[*k]);}3.下面程序的功能是計算1-3+5-7+……-99+101的值。main(){inti,t=1,s=0;for(i=1;i<=101;i+=2){①;s=s+t;②;}printf("%d\n",s);}4.下面程序的功能是將形參x的值轉(zhuǎn)換為二進制數(shù),所得的二進制數(shù)放在一個一維數(shù)組中返回,二進制數(shù)的最低位放在下標為0的元素中。fun(intx,intb[]){intk=0,r;do{r=x%①;b[k++]=r;x/=②;}while(x);}5.下面程序的功能是輸出1到100之間每位數(shù)的乘積大于每位數(shù)的和的數(shù)。例如數(shù)字26,數(shù)位上數(shù)字的乘積12大于數(shù)字之和8。main(){intn,k=1,s=0,m;for(n=1;n<=100;n++){k=1;s=0;①;while(②){k*=m%10;s+=m%10;③;}if(k>s)printf("%d",n);}}6.下面程序的功能是輸出100以內(nèi)的個位數(shù)為6、且能被3整除的所有數(shù)。main(){inti,j;for(i=0;①;i++){j=i*10+6;if(②)countinue;printf("%d",j);}}7.下面程序的功能是用輾轉(zhuǎn)相除法求兩個正整數(shù)m和n的最大公約數(shù)。hcf(intm,intn){intr;if(m<n){r=m;①;n=r;}r=m%n;while(②){m=n;n=r;r=m%n;}③;}8.下面程序的功能是刪除字符串s中的空格。#include<stdio.h>main(){char*s="Beijingligongdaxue";inti,j;for(i=j=0;s[i]!='\0';i++)if(s[i]!='')①;else②;s[j]='\0';printf("%s",s);}9.下面程序的功能是顯示具有n個元素的數(shù)組s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度職業(yè)培訓機構(gòu)兼職教師勞動合同4篇
- 二零二四年度域名購買、托管、數(shù)據(jù)分析與優(yōu)化委托合同3篇
- 二零二四年梅特勒托利多地磅售后服務合同保障0.1噸級設備穩(wěn)定運行2篇
- 2025年度詞曲制作與體育賽事主題曲創(chuàng)作合同4篇
- 二零二四年度租賃合同:集裝箱租賃協(xié)議
- 復雜環(huán)境下移動機器人路徑規(guī)劃方法研究
- 上汽集團內(nèi)部資本市場配置效率提升研究
- 二零二四年模特時尚秀表演合同協(xié)議3篇
- 二零二五年度畜牧養(yǎng)殖場人才培養(yǎng)與輸出承包合同范本4篇
- 2025年度高科技研發(fā)成果轉(zhuǎn)化合同范本6篇
- 2024年小升初語文入學分班測試卷四(統(tǒng)編版)
- 流行文化對青少年價值觀的影響研究
- 2024年代理記賬工作總結(jié)6篇
- 電氣工程預算實例:清單與計價樣本
- VOC廢氣治理工程中電化學氧化技術(shù)的研究與應用
- 煤礦機電設備培訓課件
- 科技論文圖表等規(guī)范表達
- 高考寫作指導議論文標準語段寫作課件32張
- 2021年普通高等學校招生全國英語統(tǒng)一考試模擬演練八省聯(lián)考解析
- 紅色研學旅行課程的設計與實踐
- 幼兒園保育教育質(zhì)量指南評估指標考核試題及答案
評論
0/150
提交評論