C語(yǔ)言基礎(chǔ)知識(shí)綜合練習(xí)題_第1頁(yè)
C語(yǔ)言基礎(chǔ)知識(shí)綜合練習(xí)題_第2頁(yè)
C語(yǔ)言基礎(chǔ)知識(shí)綜合練習(xí)題_第3頁(yè)
C語(yǔ)言基礎(chǔ)知識(shí)綜合練習(xí)題_第4頁(yè)
C語(yǔ)言基礎(chǔ)知識(shí)綜合練習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

..C語(yǔ)言基本知識(shí)和基本語(yǔ)句〔一選擇題1.設(shè)a,b和c都是int型變量,且a=3,b=4,c=5則下面的表達(dá)式中,值為零的表達(dá)式是〔。A‘a(chǎn)’&&’b’B>a<=bC>a||b+c&&b-cD>!<<a<b>&&!C||1>2.設(shè)ch是char型變量,其值為A字符,且有表達(dá)式:ch=<ch>=‘A’&&ch<=‘Z’>?<ch+32>:ch,則表達(dá)式ch的值是〔字符。AAB>aC>ZD>z3.若x和y都是int型變量,x=100,y=200,且有程序段:printf<"%d",<x,y>>;則輸出結(jié)果是〔。A200B>100C>100,200D>輸出格式不夠,輸出不確定的值4.C語(yǔ)言中最簡(jiǎn)單的數(shù)據(jù)類型包括〔。A整型、實(shí)型、邏輯型B>整型、單精度型、雙精度、字符型C>整型、字符型、邏輯型D>整型、實(shí)型、邏輯型、字符型5.C語(yǔ)言中,運(yùn)算對(duì)象必須是整型的運(yùn)算符是〔。A%B>/C>%和/D>**6.?dāng)?shù)學(xué)關(guān)系x≥y≥z,它對(duì)應(yīng)C語(yǔ)言表達(dá)式是〔。A〔x>=y&&<y>=z>B><x>=y>AND<y>=z>C><x>=y>=z>D><x>=y>&<y>=z>以下說(shuō)法中正確的是〔。AC語(yǔ)言程序總是從第一個(gè)定義的函數(shù)開(kāi)始執(zhí)行B>在C語(yǔ)言程序中,要調(diào)用的函數(shù)必須在main<>函數(shù)中定義C>C語(yǔ)言程序總是從main<>函數(shù)開(kāi)始執(zhí)行D>C語(yǔ)言程序中的main<>函數(shù)必須放在程序的開(kāi)始部分設(shè)intx=10,y=3,z;則語(yǔ)句printf<"%d\n",z=<x%y,x/y>>;的輸出結(jié)果是〔。A1B>0C>4D>39.C語(yǔ)言表達(dá)式10!=9的值是〔。AtrueB>非零值C>0D>110.合法的C語(yǔ)言字符常量是〔。A’\t’B>"A"C>65D>A11.若int類型數(shù)據(jù)占兩個(gè)字節(jié),則下列語(yǔ)句的輸出為〔。intk=-1;printf<"%d,%u\n",k,k>;A-1,-1B>–1,32767C>–1,32768D>–1,6553512.組成C語(yǔ)言程序的是〔。A子程序B>過(guò)程C>函數(shù)D>主程序和子程序13.以下的選項(xiàng)中,正確的賦值語(yǔ)句是〔。Ai++;B>a=1,b=2;C>a=b=5D>y=int<x>;14.以下不符合C語(yǔ)言語(yǔ)法的語(yǔ)句是〔。Ai++;B>i=j=5;C>k=2*4,k*4;D>y=float<i>15.下列程序的輸出結(jié)果是〔。main<>{inta=9;a+=a-=a+a;printf<"%d\n",a>;}A18B>9C>–18D>–916.下列語(yǔ)句的輸出結(jié)果是〔。printf<"%d\n",<int><2.5+3.0>/3>;A有語(yǔ)法錯(cuò)誤不能通過(guò)編譯B>2C>1D>017.下列程序的輸出是〔。main<>{inta=7,b=5;printf<"%d\n",b=b/a>;}A有語(yǔ)法錯(cuò)誤不能通過(guò)編譯B>2C>1D>018.請(qǐng)閱讀程序〔。main<>{inta;floatb,c;scanf<"%2d%3f%4f",&a,&b,&c>;printf<"\na=%d,b=%f,c=%f\n",a,b,c>;}若運(yùn)行時(shí)從鍵盤上輸入9876543210<CR><CR表示回車>,則上面程序的輸出結(jié)果是〔。Aa=98,b=765,c=4321B>a=10,b=432,c=8765C>a=98,b=765.000000,c=4321.000000D>a=98,b=765.0,c=4321.019.以下程序的輸出結(jié)果是〔。main<>{inta=-1,b=4,k;k=<++a<0>&&!<b--<=0>;printf<"%d%d%d\n",k,a,b>;}A104B>103C>003D>00420.下列程序的輸出結(jié)果是〔。main<>{inti,j,k,a=3,b=2;i=<--a==b++>?--a:++b;j=a++;k=b;printf<"i=%d,j=%d,k=%d\n",i,j,k>;}Ai=2,j=1,k=3B>i=1,j=1,k=2C>i=4,j=2,k=4D>i=1,j=1,k=3〔二填空題1.在C語(yǔ)言中,double類型數(shù)據(jù)占個(gè)字節(jié);char類型數(shù)據(jù)占個(gè)字節(jié)。2.設(shè)C語(yǔ)言中,int類型數(shù)據(jù)占2個(gè)個(gè)字節(jié),則long類型數(shù)據(jù)占個(gè)字節(jié);unsignedint類型數(shù)據(jù)占個(gè)字節(jié);short類型數(shù)據(jù)占個(gè)字節(jié);3.表達(dá)式8/4*<int>2.5/<int><1.25*<3.7+2.37>>值的數(shù)據(jù)類型為4.假設(shè)m是一個(gè)三位數(shù),從左到右用a,b,c表示每一位的數(shù)字,若從左到右數(shù)字是bac的三位數(shù),則在C語(yǔ)言中用m表示bac的表達(dá)式是二、C語(yǔ)言選擇和循環(huán)結(jié)構(gòu)1.在C語(yǔ)言中,能代表邏輯值"真"的是〔。AtrueB>大于0的數(shù)C>非0整數(shù)D>非0的數(shù)2.若給定條件表達(dá)式〔M?〔a++:<a-->;則其中表達(dá)式MA和〔M==0等價(jià)B>和〔M==1等價(jià)C>和〔M!=0等價(jià)D>和〔M!=1等價(jià)3.在C語(yǔ)言的if語(yǔ)句中,用作判斷的表達(dá)式是〔。A關(guān)系表達(dá)式B>邏輯表達(dá)式C>算術(shù)表達(dá)式D>任意表達(dá)式4.若變量已正確定義,則以下程序段的輸出為〔。inta=2;b=3;printf<a>b?"***a=%d":"###b=%d",b>;A沒(méi)有正確的輸出格式控制B>***a=2C>###b=3D>***a=2####b=35.以下程序段的輸出結(jié)果為〔。inta=1;b=2,c=2,t=0;while<a<b>{t=a;a=b;b=t;c++;}printf<"%d,%d,%d",a,b,c>;A1,2,0B>2,1,0C>1,2,1D>2,1,36.已知intx=10,y=20,z=30;以下語(yǔ)句執(zhí)行后x,y,z的值是〔。if<x>y>z=x;x=y;y=z;Ax=10,y=20,z=30B>x=20,y=30,z=30C>x=20,y=30,z=10D>x=20,y=30,z=207.以下程序的運(yùn)行結(jié)果是〔。main<>{intm=5;if<m++>5>printf<"%d\n",m>;elseprintf<"%d\n",m-->;}A4B>5C>6D>78.以下不正確的語(yǔ)句是〔。if<x>y>;B>if<x=y>&&<x!=0>x+=y;C>if<x!=y>scanf<"%d",&x>;elsescanf<"%d",&y>;D>if<x<y>{x++;y++;}9.若w、x、y、z、m均為int型變量,則執(zhí)行下面語(yǔ)句后的m值是〔。w=1;x=2;y=3;z=4;m=<w<x>?w:x;m=<m<y>?m:y;m=<m<z>?m:z;A1B>2C>3D>410.下面有關(guān)for循環(huán)的正確描述是〔。for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況for循環(huán)是先執(zhí)行循環(huán)體語(yǔ)句,后判斷表達(dá)式在for循環(huán)中,不能用break語(yǔ)句跳出循環(huán)體for循環(huán)的循環(huán)體中,可包含多條語(yǔ)句,但必須用花括號(hào)括起來(lái)11.若i為整數(shù)變量,則以下循環(huán)執(zhí)行的次數(shù)是〔。for<i=2;i==0;>printf<"%d",i-->;A無(wú)限次B>0次C>1次D>2次12.執(zhí)行語(yǔ)句for<i=1;i++<4;>;后變量i的值是〔。A3B>4C>5D>13.以下正確的說(shuō)法是〔。continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行B>只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句C>在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同D>在多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句14.以下程序的功能是判斷輸入的年份是否是閏年。請(qǐng)?jiān)谔钊胝_內(nèi)容main<>{inty,f;scanf<"%d",&y>;if<y%400==0>f=1;elseif<①>f=1;else②;if<f>printf<"%dis",y>;elseprintf<"%disnot",y>;printf<"aleapyear\n">;}15.有四個(gè)數(shù)a,b,c,d要求按從大到小的順序輸出請(qǐng)?jiān)趦?nèi)填入正確內(nèi)容main<>{inta,b,c,d,t;scanf<"%d%d%d%d",&a,&b,&c,&d>;if<a<b>{t=a;a=b;b=t;}if<①>{t=a;a=d;d=t;}if<a<c>{t=a;a=c;c=t;}if<②>{t=b;b=c;c=t;}if<b<d>{t=b;b=d;d=t;}if<c<d>{t=c;c=d;d=t;}printf<"%d%d%d%d\n",a,b,c,d>;}16.以下程序的功能是〔。從鍵盤輸入若干個(gè)學(xué)生的成績(jī),統(tǒng)計(jì)并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入。main<>{floatx,amax,amin;scanf<"%f",&x>;amax=x;amin=x;while<①>{if<x>amax>amax=x;if<②>amin=x;scanf<"%f",&x>;}printf<"\namax=%f\namin=%f\n",amax,amin>;}17.以下程序的功能是計(jì)算1-3+5-7+……-99+101的值,請(qǐng)?zhí)羁?。main<>{inti,t=1,s=0;for<i=1;i<=101;i+=2>{①;s=s+t;②;}printf<"%d\n",s>;}或:main<>{inti,t=1,s=0;for<i=1;i<=101;i+=2>{s=s+t*i;③;}printf<"%d\n",s>;}18.若用0至9之間不同的三個(gè)數(shù)構(gòu)成一個(gè)三位數(shù),下面程序統(tǒng)計(jì)出共有多少種方法。請(qǐng)?zhí)羁?。main<>{inti,j,k,count=0;for<i=1;i<=9;i++>for<j=0;j<=9;j++>if<①>continue;elsefor<k=0;k<=9;k++>if<②>count++;printf<"%d",count>;}19.下面的程序功能是打印100以內(nèi)個(gè)位數(shù)為6,且能被3整除的所有數(shù)。請(qǐng)?zhí)羁铡ain<>{inti,j;for<i=0;①;i++>{j=i*10+6;if<②>continue;printf<"%d",j>;}}三、C語(yǔ)言數(shù)組練習(xí)〔一選擇題1.以下對(duì)C語(yǔ)言字符數(shù)組的描述錯(cuò)誤的是〔。A>字符數(shù)組可以存放字符串B>字符數(shù)組中的字符串可以整體輸入、輸出C>可以在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符"="對(duì)字符數(shù)組整體賦值字符串D>不可以用關(guān)系運(yùn)算符對(duì)字符數(shù)組中的字符串進(jìn)行比較2.不能把字符串Hell0!賦給數(shù)組b的語(yǔ)句是〔。A>charb[10]={‘H’,’e’,’l’,’l’,’o’,’!’};Bcharb[10];b="Hello!";C>charb[10]={‘H’,’e’,’l’,’l’,’o’,’!’,’\0’D>charb[10]="Hello!";3.合法數(shù)組定義是〔。A>inta[]="string";B>inta[5]={0,1,2,3,4,5};C>chara="string";D>chara[]={0,1,2,3,4,5};4.以下能對(duì)二維數(shù)組a進(jìn)行正確初始化的語(yǔ)句是〔。A>inta[2][]={{1,0,1},{5,2,3}};B>inta[][3]={{1,2,3},{4,5,6}};C>inta[2][4]={{1,2,3},{4,5},{6}};D>inta[][3]={{1,0,1}{},{1,1}};5.若有說(shuō)明inta[3][4]={0};則下面正確的敘述是〔。A>只有元素a[0][0]可得到初值0B>此說(shuō)明語(yǔ)句不正確C>數(shù)組a中各元素都可得到初值,但其不一定為0D>數(shù)組a中各元素都可得到初值06.在C語(yǔ)言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是〔。A>整型常量B>整型表達(dá)式C>整型常量和整型表達(dá)式D>任何類型的表達(dá)式7.以下對(duì)一維整型數(shù)組a的正確說(shuō)明是〔。A>inta<10>;B>intn=10,a[n];C>intn;D>#defineSIZE10scanf<"%d",&n>;inta[SIZE];inta[n];8.若有說(shuō)明inta[10];則對(duì)a數(shù)組元素的正確引用是〔。A>a[10]B>a[3.5]C>a<5>D>a[10-10]9.以下對(duì)二維數(shù)組a的正確說(shuō)明是〔。A>inta[3][];B>floata<3,4>;C>doublea[1][4];D>floata<3><4>;10.若有說(shuō)明inta[3][4];則對(duì)a數(shù)組元素的正確引用是〔。A>a[2][4]B>a[1,3]C>a[1+1][0]D>a<2><1>11.若有說(shuō)明inta[3][4];則對(duì)a數(shù)組元素的非法引用是〔。A>a[0][2*1]B>a[1][3]C>a[4-2][0]D>a[0][4]12.對(duì)inta[10]={6,7,8,9,10};說(shuō)明語(yǔ)句的正確理解是〔。A>將5個(gè)初值依次賦給a[1]至a[5],其余元素賦0值;B>將5個(gè)初值依次賦給a[0]至a[4],其余元素賦0值;C>將5個(gè)初值依次賦給a[6]至a[10],其余元素賦0值;D>因?yàn)閿?shù)組長(zhǎng)度與初值的個(gè)數(shù)不相同,所以此語(yǔ)句不正確;13.定義如下變量和數(shù)組intk;inta[3][3]={1,2,3,4,5,6,7,8,9};則執(zhí)行for<k=0;k<3;k++>printf<"%d",a[k][2-k]>;語(yǔ)句的輸出結(jié)果是〔。A>357B>369C>159D>14714.判斷字符串a(chǎn)和b是否相等,應(yīng)當(dāng)使用〔。A>if<a==b>B>if<a=b>C>if<strcpy<a,b>>D>if<strcmp<a,b>>15.判斷字符串s1是否大于字符串s2,應(yīng)當(dāng)使用〔。A>if<s1>s2>B>if<strcmp<s1,s2>>C>if<strcmp<s2,s1>>0>D>if<strcmp<s1,s2>>0>16.下面程序段的功能是將字符串s中所有的字符c刪除。請(qǐng)選擇填空。#include<stdio.h>main<>{chars[80];inti,j;gets<s>;for<i=j=0;s[i]!=‘\0’if<s[i]!=‘c’>;s[j]=‘\0’A>s[j++]=s[i]B>s[++j]=s[i]C>s[j]=s[i];j++D>s[j]=s[i]17.有兩個(gè)字符型數(shù)組a,b,則以下正確的輸入格式是〔。A>gets<a,b>;B>scanf<"%s%s",a,b>;C>scanf<"%s%s",&a,&b>;D>gets<"a">,gets<"b">;18.對(duì)兩個(gè)數(shù)組a和b進(jìn)行如下初始化,chara[]={‘A’,’B’,’C’,’D’,’E’,’F’};charb[]="ABCDEF";則以下敘述正確的是〔。A>a與b數(shù)組完全相同B>a與b數(shù)組長(zhǎng)度相同C>a與b中都存放字符串D>b數(shù)組比a數(shù)組長(zhǎng)度長(zhǎng)〔二填空題下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其它元素不變。請(qǐng)?zhí)羁铡?include<stdio.h>main<>{chara[]="labchmfye",t;inti,j;for<i=0;i<7;i+=2>for<j=i+2;j<9;=1\*GB3①>if<=2\*GB3②>{t=a[i];a[i]=a[j];a[j]=t;j++;}puts<a>;printf<"\n">;}2.下面程序以每行4個(gè)數(shù)據(jù)的形式輸出a數(shù)組,請(qǐng)?zhí)羁铡?defineN20main<>{inta[N],i;for<i=0;i<N;i++>scanf<"%d",=1\*GB3①>;for<i=0;i<N;i++>{if<=2\*GB3②>=3\*GB3③printf<"%3d",a[i]>;}printf<"\n">;}3.下面程序是分別求出矩陣a的兩條對(duì)角線上的元素之和。請(qǐng)?zhí)羁?。main<>{inta[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;for<i=0;i<3;i++>for<j=0;j<3;j++>if<i==j>sum1=sum1+a[i][j];for<i=0;i<3;i++>for<①;②;j-->if<<i+j>==2>sum2=sum2+a[i][j];printf<"sum1=%d,sum2=%d\n",sum1,sum2>;}4.下面程序功能是檢查一個(gè)二維數(shù)組是否對(duì)稱〔即對(duì)所有ij都有a[i][j]=a[j][i]。請(qǐng)?zhí)羁?。main<>{inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};inti,j,found=0;for<j=0;j<4;j++>for<①;i<4;i++>if<a[j][i]>!=a[i][j]{②;break;}if<found>printf<"no">;elseprintf<"yes">;}5.下面的程序段將輸出computer,請(qǐng)?zhí)羁?。charc[]="It’sacomputer";for<i=0;①;i++>{②;printf<"%c",c[j]>;}6.下面的程序功能是在三個(gè)字符串中找出最小的。請(qǐng)?zhí)羁铡?include<stdio.h>#include<string.h>main<>{chars[20],str[3][20];inti;for<i=0;i<3;i++>gets<str[i]>;strcpy<s,①>;if<strcmp<str[2],s><0>strcpy<s,str[2]>;printf<"%s\n",②>;}7.若有定義inta[3][4]={{1,2},{0},{4,6,8,10}};則初始化后,a[1][2]得到的初值是①,a[2][1]得到的初值是②。8.設(shè)數(shù)組a中的元素均為正整數(shù),以下程序是求a中偶數(shù)的個(gè)數(shù)和偶數(shù)的平均值。請(qǐng)?zhí)羁铡ain<>{inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave;for<k=s=i=0;i<10;i++>{if<a[i]%2!=0>①;s+=②;k++;}if<k!=0>{ave=<float>s/k;printf<"%d,%f\n",k,ave>;}}下面程序段的運(yùn)行結(jié)果是〔。charx[]="theteacher";i=0;while<x[++i]!=‘\0’if<x[i-1]==‘t’>printf<"%c",x[i]>;10.下面程序段是輸出兩個(gè)字符串中對(duì)應(yīng)字符相等的字符。請(qǐng)?zhí)羁?。charx[]="programming";chary[]="Fortran";inti=0;while<x[i]!=‘\0’&&y[i]!=‘\0{if<x[i]==y[i]>printf<"%c",>;elsei++;}…四、C語(yǔ)言函數(shù)與編譯預(yù)處理練習(xí)<一>選擇題1.有以下函數(shù)調(diào)用語(yǔ)句,其實(shí)參數(shù)的個(gè)數(shù)是〔。fun<a+b,<x,y>,fun<n+k,d,<a,b>>>;A>3B>4C>5D>2.C語(yǔ)言規(guī)定,程序中各函數(shù)之間〔。A>既允許直接遞歸調(diào)用又允許間接遞歸調(diào)用B>不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用C>允許直接遞歸調(diào)用但不允許間接遞歸調(diào)用D>不允許直接遞歸調(diào)用但允許間接遞歸調(diào)用3.C語(yǔ)言中,函數(shù)的隱含存儲(chǔ)類別是〔。A>autoB>staticC>externD>無(wú)存儲(chǔ)類別4.在一個(gè)C源程序文件中,若要定義一個(gè)只允許本源文件中所有函數(shù)使用的全局變量,則該變量需要使用的存儲(chǔ)類別是〔。A>externB>registerC>autoD>static5.C語(yǔ)言規(guī)定,簡(jiǎn)單變量做實(shí)參時(shí),它和對(duì)應(yīng)的形參之間的數(shù)據(jù)傳遞方式是〔。A>地址傳遞B>單向值傳遞C>由實(shí)參傳遞給形參,再由形參傳回給實(shí)參D>由用戶指定傳遞方式6.C語(yǔ)言允許函數(shù)類型缺省定義,此時(shí)該函數(shù)返回值隱含的類型是〔。A>float型B>int型C>long型D>double型7.C語(yǔ)言規(guī)定,函數(shù)返回值的類型是由〔。A>return語(yǔ)句中的表達(dá)式類型所決定B>調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型所決定C>調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定D>在定義該函數(shù)時(shí)所指定的函數(shù)類型所決定8.以下符合C語(yǔ)言規(guī)定的正確描述是〔。A>函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B>函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套C>函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套D>函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套9.如用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是〔。A>數(shù)組的首地址B>數(shù)組第一個(gè)元素的值C>數(shù)組中全部元素的值D>數(shù)組元素的個(gè)數(shù)10.以下不正確的說(shuō)法是〔。A>在不同函數(shù)中可以使用相同名的變量B>形式參數(shù)是局部變量C>在函數(shù)內(nèi)部定義的變量只在本函數(shù)范圍內(nèi)有效D>在函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在本函數(shù)范圍內(nèi)有效11.C語(yǔ)言函數(shù)進(jìn)行值傳遞時(shí)的正確說(shuō)法是〔。A>實(shí)參和與其對(duì)應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元B>實(shí)參和與其對(duì)應(yīng)的形參占用一個(gè)存儲(chǔ)單元C>只有當(dāng)實(shí)參和與其對(duì)應(yīng)的形參同名時(shí)才占用存儲(chǔ)單元D>形參是虛擬的,不占用存儲(chǔ)單元12.以下程序是選出能被3整除且至少有一位是5的兩位數(shù),打印出所有這樣的數(shù)及其個(gè)數(shù)。請(qǐng)選擇填空。sub<intk,intn>{inta1,a2;a2=①;a1=k-②;if<<k%3==0&&a2==5>||<k%3==0&&a1==5>>{printf<"%d,",k>;n++;returnn;}elsereturn-1;}main<>{intn=0,k,m;for<k=10;k<=99;k++>{m=sub<k,n>;if<m!=-1>n=m;}printf<"\nn=%d",n>;}①A>k*10B>k%10C>k/10D>②A>a2*10B>a2C>a2/10D>13.若使用一維數(shù)組名作函數(shù)實(shí)參,則以下正確的說(shuō)法是〔。A>必須在主調(diào)函數(shù)中說(shuō)明實(shí)參數(shù)組的大小B>實(shí)參數(shù)組類型與形參數(shù)組類型可以不匹配C>在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小D>實(shí)參數(shù)組名與形參數(shù)名必須相同14.如果在一個(gè)函數(shù)的復(fù)合語(yǔ)句中定義了一個(gè)變量,則該變量〔。A>只在該復(fù)合語(yǔ)句中有效B>在該函數(shù)中有效C>在本程序范圍內(nèi)有效D>為非法變量15.以下敘述中不正確的是〔。A>預(yù)處理命令行都必須以#號(hào)開(kāi)始B>在程序中凡是以#號(hào)開(kāi)始的語(yǔ)句行都是預(yù)處理命令行C>C程序在執(zhí)行過(guò)程中對(duì)預(yù)處理命令行進(jìn)行處理D>以下是正確的宏定義#defineIBM_PC16.以下敘述中正確的是〔。A>在程序的一行上可以出現(xiàn)多個(gè)有效的預(yù)處理命令行B>使用帶參數(shù)的宏時(shí),參數(shù)的類型應(yīng)與宏定義時(shí)的一致C>宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間D>在以下定義中CR是稱為"宏名"的標(biāo)識(shí)符#defineCR04517.以下有關(guān)宏替換的敘述不正確的是〔。A>宏替換不占用運(yùn)行時(shí)間B>宏名無(wú)類型C>宏替換只是字符替換D>宏名必須用大寫(xiě)字母表示18.C語(yǔ)言編譯系統(tǒng)對(duì)宏命令的處理是〔。A>在程序運(yùn)行時(shí)進(jìn)行的B>在程序連接時(shí)進(jìn)行的C>和C程序中的其它語(yǔ)句同時(shí)進(jìn)行編譯的D>在對(duì)源程序中其它成分正式編譯之前進(jìn)行的19.以下程序的運(yùn)行結(jié)果是〔。#defineADD<x>x+xmain<>{intm=1,n=2,k=3;intsum=ADD<m+n>*k;printf<"sum=%d",sum>;}A>sum=9B>sum=10C>sum=12D>二、填空題以下程序的功能是根據(jù)輸入的"y"<"Y">與"n"<"N">,在屏幕上分別顯示出"ThisisYES."與"ThisisNO."。請(qǐng)?zhí)羁铡?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’:\n">;ch=_________________;printf<"ch:%c",ch>;YesNo<ch>;}五、指針練習(xí)〔一選擇題1.已有定義intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向變量k,下面不能正確執(zhí)行的賦值語(yǔ)句是〔。`A>k=*ptr1+*ptr2;B>ptr2=k;C>ptr1=ptr2D>k=*ptr1*<*ptr2>;2.變量的指針,其含義是指該變量的〔。A>值B>地址C>名D>一個(gè)標(biāo)志3.如有定義inta=5;下面對(duì)①,②兩個(gè)語(yǔ)句的正確解釋是〔。①int*p=&a;②*p=a;A>語(yǔ)句①和②中的含義相同,都表示給指針變量p賦值B>①和②語(yǔ)句的執(zhí)行結(jié)果,都是把變量a的地址值賦給指針變量pC>①在對(duì)p進(jìn)行說(shuō)明的同時(shí)進(jìn)行初始化,使p指向a②將變量a的值賦給指針變量pD>①在對(duì)p進(jìn)行說(shuō)明的同時(shí)進(jìn)行初始化,使p指向a②將變量a的值賦于*p4.若已定義chars[10];則在下面表達(dá)式中不表示s[1]的地址的是〔。A>s+1B>s++C>&s[0]+1D>&s[1]5.若有以下定義,則對(duì)a數(shù)組元素的正確引用是〔。inta[5],*p=a;A>*&a[5]B>a+2C>*<p+5>D>6.若有以下定義,則對(duì)a數(shù)組元素地址的正確引用是〔。inta[5],*p=a;A>p+5B>*a+1C>&a+1D>7.設(shè)有如下函數(shù)定義intf<char*s>{char*p=s;while<*p!=‘\0’return<p-s>;}如果在主程序中用下面的語(yǔ)句調(diào)用上述函數(shù),則輸出結(jié)果為〔。printf<"%d\n",f<"goodbay!">>;A>3B>6C>8D>8.執(zhí)行以下程序后,y的值是〔。main<>{inta[]={2,4,6,8,10};inty=1,x,*p;p=&a[1];for<x=0;x<3;x++>y+=*<p+x>;printf<"%d\n",y>;}A>17B>18C>19D>9.下面各語(yǔ)句行中,能正確進(jìn)行字符串賦值操作的語(yǔ)句是〔。A>charst[4][5]={"ABCDE"};B>chars[5]={‘A’,‘B’,’C’,‘D’,’E’};C>char*s;s="ABCDE";D>char*s;scanf<"%s",s>;10.請(qǐng)讀程序段charstr[]="ABCD",*p=str;printf<"%d\n",*<p+4>>;以上程序段的輸出結(jié)果是〔。A>68B>0C>字符’D’的地址D>11.以下與int*q[5];等價(jià)的定義語(yǔ)句是〔。A>intq[5];B>int*qC>int*<q[5]>;D>int<*q>[5];12.若有以下定義intx[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int<*p>[3]=x;則能夠正確表示數(shù)組元素x[1][2]的表達(dá)式是〔。A>*〔〔*p+1[2]B><*p+1>+2C>*<*<p+5>>D>*<*<p+1>+2>13.以下不正確的敘述是〔。A>C語(yǔ)言允許main函數(shù)帶形參,且形參個(gè)數(shù)和形參名均可由用戶指定B>C語(yǔ)言允許main函數(shù)帶形參,形參名只能是argc和argvC>當(dāng)main函數(shù)帶有形參時(shí),傳給形參的值只能從命令行中得到D>若有說(shuō)明main<intargc,char*argv>,則形參argc的值必須大于114.語(yǔ)句int<*ptr><>;的含義是〔。A>ptr是指向一維數(shù)組的指針變量B>ptr是指向int型數(shù)據(jù)的指針變量C>ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)D>ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針15.若有函數(shù)max<a,b>,并且已使函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時(shí),正確的調(diào)用方法是〔。A>〔*pmax<a,b>;B>*pmax<a,b>;C><*p><a,b>;D>*p<a,b>;16.以下程序的功能是從鍵盤接收一個(gè)字符串,然后按照字符順序從小到大進(jìn)行排序,并刪除重復(fù)的字符。請(qǐng)選擇填空。#include<stdio.h>#include<string.h>main<>{charstring[100],*p,*q,*r,c;gets<string>;for<p=string;*p;p++>{for<q=r=p;*q;q++>if<①>r=q;if<②>{c=*r;*r=*p;*p=c;}}for<p=string;*p;p++>{for<q=③;*p==*q;q++>strcpy<p,q>;}printf<"result;%s\n",string>;}①A>*r>*qB>*r>*pC>r>qD>r>p②A>r==qB>r!=qC>p!=qD>r!=p③A>p++B>pC>p-1D>p+117.下面程序的功能是將字符串s中的內(nèi)容按逆序輸出,但不改變串中的內(nèi)容,請(qǐng)選擇填空。#include<stdio.h>main<>{chars[10]="hello!";inverp<s>;}inverp<char*a>{if<①>return0;inverp<a+1>;printf<"%c",②>;}A>*a!=‘\0’B>*a!=NULLC>!*aD>A>*<a-1>B>*aC>*<a+1>D>*<a-->18.下面程序的運(yùn)行結(jié)果是〔。main<>{intx[5]={2,4,6,8,10},*p,**pp;p=x;pp=&p;printf<"%d",*<p++>>;printf<"%3d\n",**pp>;}A>44B>24C>22D>〔二、填空題1.在C程序中,只能給指針變量賦①值和②值。2.在C程序中,可以通過(guò)三種運(yùn)算來(lái)移動(dòng)指針,它們是①、②、③。六、結(jié)構(gòu)體、共用體及位運(yùn)算〔一選擇題1.當(dāng)說(shuō)明一個(gè)結(jié)構(gòu)體變量時(shí)系統(tǒng)分配給它的內(nèi)存是〔。A>各成員所需內(nèi)存量的總和B>結(jié)構(gòu)中第一個(gè)成員所需的內(nèi)存量C>成員中占內(nèi)存量最大者所需的容量D>結(jié)構(gòu)中最后一個(gè)成員所需內(nèi)存量2.以下結(jié)構(gòu)體類型變量的定義中不正確的是〔。A>#defineSTUDENTstructstudentB>structstudentSTUDENT{intnum;{intnum;floatage;floatage;}std1;}std1;C>structD>struct{intnum;{intnum;floatage;floatage;}std1;}student;structstudentstd1;3.設(shè)有以下說(shuō)明語(yǔ)句,則下面的敘述不正確的是〔。structstu{inta;floatb;}stutype;A>struct是結(jié)構(gòu)體類型的關(guān)鍵字B>structstu是用戶定義的結(jié)構(gòu)體類型C>stutype是用戶定義的結(jié)構(gòu)體類型名D>a和b都是結(jié)構(gòu)體成員名4.C語(yǔ)言結(jié)構(gòu)體類型變量在程序執(zhí)行期間〔。A>所有成員一直駐留在內(nèi)存中B>只有一個(gè)成員駐留在內(nèi)存中C>部分成員駐留在內(nèi)存中D>沒(méi)有成員駐留在內(nèi)存中5.以下對(duì)結(jié)構(gòu)體變量stu1中成員age的非法引用是〔。structstudent{intage;intnum;}stu1,*p;p=&stu1;A>stu1.ageB>student.ageC>p—>ageD><*p>.age6.當(dāng)說(shuō)明一個(gè)共用體變量時(shí)系統(tǒng)分配給它的內(nèi)存是〔。A>各成員所需內(nèi)存量的總和B>結(jié)構(gòu)中第一個(gè)成員所需的內(nèi)存量C>成員中占內(nèi)存量最大者所需的容量D>結(jié)構(gòu)中最后一個(gè)成員所需內(nèi)存量7.以下對(duì)C語(yǔ)言中共用體類型數(shù)據(jù)的敘述正確的是〔。A>可以對(duì)共有體變量名直接賦值B>一個(gè)共用體變量中可以同時(shí)存放其所有成員C>一個(gè)共用體變量中不可以同時(shí)存放其所以成員D>共用體類型定義中不能出現(xiàn)結(jié)構(gòu)體類型的成員8.設(shè)有以下說(shuō)明,則下面的敘

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論