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

下載本文檔

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

文檔簡(jiǎn)介

C語百基本知識(shí)和基本語句(一)選擇題1.設(shè)a,b和c都是int型變量,且a=3,b=4,c=5則下面的表達(dá)式中,值為零的表達(dá)式是(A)'a'&&'b'B)a<=bC)A)'a'&&'b'B)a<=bC)a||b+c&&b-cD)!((a<b)&&!C||1)char型變量,其值為A字符,且有表達(dá)式:ch=(ch>='A'&&ch<='Z')?(ch+32):ch,則表達(dá)式ch的值是ch=(ch>='A'&&ch<='Z')?(ch+32):ch,則表達(dá)式ch的值是()字符。A)B)C)ZD)型變量,x=100,y=200,且有程序段:printf(“%d”,(x,y));則輸出結(jié)果是(A)200B)100C)100,200A)200B)100C)100,200D)輸出格式不夠,輸出不確定的值C語言中最簡(jiǎn)單的數(shù)據(jù)類型包括(A)整型、實(shí)型、邏輯型B)整型、單精度型、雙精度、字符型C)整型、字符型、邏輯型D)A)整型、實(shí)型、邏輯型B)整型、單精度型、雙精度、字符型C)整型、字符型、邏輯型D)整型、實(shí)型、邏輯型、字符型C語言中,運(yùn)算對(duì)象必須是整型的運(yùn)算符是(A)%B)/A)%B)/C)%D)**數(shù)學(xué)關(guān)系x>y>z,它對(duì)應(yīng)C語言表達(dá)式是(A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)以下說法中正確的是(A)C語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行B)在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義C語言程序總是從main()函數(shù)開始執(zhí)行C語言程序中的main()函數(shù)必須放在程序的開始部分8.設(shè)intx=10,y=3,z;則語句printf("%d\n,z=(x%y,x/y));的輸出結(jié)果是9.A)18.設(shè)intx=10,y=3,z;則語句printf("%d\n,z=(x%y,x/y));的輸出結(jié)果是9.A)1B)0C)D)3C語言表達(dá)式10!=9的值是(A)trueB)非零值C)D).合法的C語言字符常量是(B)“A”C)65D)B)“A”C)65D).若int類型數(shù)據(jù)占兩個(gè)字節(jié),則下列語句的輸出為(intk=-1;printf("%d,%u\n,k,k);printf("%d,%u\n,k,k);B)-1,32767C)-1,32768D)-1,65535.組成C語言程序的是(A)子程序B)過程C)函數(shù)D)主程序和子程序.以下的選項(xiàng)中,正確的賦值語句是(D)y=int(x);A)i++;B)a=1,b=2;C)a=b=5D)y=int(x);.以下不符合C語言語法的語句是()。D)y=float(i)A)i++;B)i=j=5;C)k=2*4,k*4;D)y=float(i).下列程序的輸出結(jié)果是()。main(){inta=9;a+=a-=a+a;printf("%d\n",a);}A)18B)9C)-18D)-9TOC\o"1-5"\h\z.下列語句的輸出結(jié)果是()。printf("%d\n”,(int)(2.5+3.0)/3);D)0A)有語法錯(cuò)誤不能通過編譯B)2C)1D)0.下列程序的輸出是()。main(){inta=7,b=5;printf("%d\n",b=b/a);}D)0A)有語法錯(cuò)誤不能通過編譯B)2C)1D)0.請(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é)果是B)a=10,b=432,c=8765D)a=98,b=765.0,c=4321.0B)a=10,b=432,c=8765D)a=98,b=765.0,c=4321.0C)a=98,b=765.000000,c=4321.000000.以下程序的輸出結(jié)果是()。main(){inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(%d%d%d\n”,k,a,b);}D)004A)104B)103C)00D)004.下列程序的輸出結(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);}A)i=2,j=1,k=3B)i=1,j=1,k=2C)i=4,j=2,k=4D)i=1,j=1,k=3(二)填空題.在C語言中,double類型數(shù)據(jù)占個(gè)字節(jié);char類型數(shù)據(jù)占個(gè)字節(jié)。.設(shè)C語言中,int類型數(shù)據(jù)占2個(gè)個(gè)字節(jié),則long類型數(shù)據(jù)占個(gè)字節(jié);unsignedint類型數(shù)據(jù)占個(gè)字節(jié);short類型數(shù)據(jù)占個(gè)字節(jié);.表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.37))值的數(shù)據(jù)類型為.假設(shè)m是一個(gè)三位數(shù),從左到右用a,b,c表示每一位的數(shù)字,若從左到右數(shù)字是bac的三位數(shù),則在C語言中用m表示bac的表達(dá)式是二、C語言選擇和循環(huán)結(jié)構(gòu).在C語言中,能代表邏輯值“真”的是()。A)trueB)大于0的數(shù)C)非0整數(shù)D)非0的數(shù).若給定條件表達(dá)式(M)?(a++):(a--);則其中表達(dá)式MA)和(M==0)等價(jià)B)和(M==1)等價(jià)C)和(M!=0)等價(jià)D)和(M!=1)等價(jià).在C語言的if語句中,用作判斷的表達(dá)式是()。A)關(guān)系表達(dá)式B)邏輯表達(dá)式C)算術(shù)表達(dá)式D)任意表達(dá)式.若變量已正確定義,則以下程序段的輸出為()。

inta=2;b=3;printf(a>b?****a=%d":"###b=%d",b);A)沒有正確的輸出格式控制A)沒有正確的輸出格式控制C)###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”1,2,0B)2,1,0***a=2D)***a=2####b=3)°,a,b,c);C)1,2,1D)2,1,36.已知intx=10,y=20,z=30;6.已知intx=10,y=20,z=30;以下語句執(zhí)行后x,y,z的值是()。if(x>y)z=x;x=y;y=z;A)x=10,y=20,z=30C)x=20,y=30,z=107.以下程序的運(yùn)行結(jié)果是(main(){intm=5;if(m++>5)printf(elseprintf(B)x=20,y=30,z=30D)x=20,y=30,z=20)°"%d\n",m);%d\n”,m--);}A)4B)5C)6D)7

A)4B)5C)6D)7.以下不正確的語句是(A)if(x>y);if(x=y)&&(x!=0)x+=y;if(x!=y)scanf("%d",&x);elsescanf("%d",&y);if(x<y){x++;y++;}.若w、x、v、z、m均為int型變量,則執(zhí)行下面語句后的m值是()。w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;A)1B)2C)3D)4.下面有關(guān)for循環(huán)的正確描述是()。for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達(dá)式C)在for循環(huán)中,不能用break語句跳出循環(huán)體D)for循環(huán)的循環(huán)體中,可包含多條語句,但必須用花括號(hào)括起來.若i為整數(shù)變量,則以下循環(huán)執(zhí)行的次數(shù)是()。for(i=2;i==0;)printf("%d”,i--);A)無限次0次A)無限次0次1次2次.執(zhí)行語句for(i=1;i++<4;);后變量i的值是(A)3B)4C)5D)不定.以下正確的說法是()。A)continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行B)只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句C)在循環(huán)體內(nèi)使用break語句或continue語句的作用相同D)在多層循環(huán)嵌套中退出時(shí),只能使用goto語句.以下程序的功能是判斷輸入的年份是否是閏年。請(qǐng)?jiān)谔钊胝_內(nèi)容main(){inty,f;scanf(%d",&y);if(y%400==0)f=1;elseif(8)f=1;else②;if(f)printf(%dis”,y);elseprintf(%disnot”,y);printf(aleapyear\n");}.有四個(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(CD){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);}.以下程序的功能是()。從鍵盤輸入若干個(gè)學(xué)生的成績,統(tǒng)計(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í)羁铡ain(){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){js=s+t*i;③;}printf(%d\n”,s);}.若用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);}.下面的程序功能是打印100以內(nèi)個(gè)位數(shù)為6,且能被3整除的所有數(shù)。請(qǐng)?zhí)羁?。main(){inti,j;for(i=0;?;i++){j=i*10+6;if(②)continue;printf(%d",j);}}、C語言數(shù)組練習(xí)(一)選擇題.以下對(duì)C語言字符數(shù)組的描述錯(cuò)誤的是()。A)字符數(shù)組可以存放字符串B)字符數(shù)組中的字符串可以整體輸入、輸出C)可以在賦值語句中通過賦值運(yùn)算符“=”對(duì)字符數(shù)組整體賦值字符串D)不可以用關(guān)系運(yùn)算符對(duì)字符數(shù)組中的字符串進(jìn)行比較.不能把字符串Hell0!賦給數(shù)組b的語句是()。charb[10]={H','e','l','l','o','!'};charb[10];b="Hello!”;charb[10]={H','e','l','l','o','!','\0'};charb[10]=Hello!”;.合法數(shù)組定義是()。A)inta[]="string”;B)inta[5]={0,1,2,3,4,5};C)chara="string”;D)chara[]={0,1,2,3,4,5};.以下能對(duì)二維數(shù)組a進(jìn)行正確初始化的語句是()。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}};.若有說明inta[3][4]={0};則下面正確的敘述是(

A)只有元素a[0][0]可得到初值0B)此說明語句不正確TOC\o"1-5"\h\zC)數(shù)組a中各元素都可得到初值,但其不一定為0D)數(shù)組a中各元素都可得到初值0.在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()。A)整型常量B)整型表達(dá)式C)整型常量和整型表達(dá)式D)任何類型的表達(dá)式.以下對(duì)一維整型數(shù)組a的正確說明是()。A)inta(10);B)intn=10,a[n];C)intn;D)#defineSIZE10scanf(%d",&n);inta[SIZE];inta[n];TOC\o"1-5"\h\z.若有說明inta[10];則對(duì)a數(shù)組元素的正確引用是()。A)a[10]B)a[3.5]C)a(5)D)a[10-10].以下對(duì)二維數(shù)組a的正確說明是()。A)inta[3][];B)floata(3,4);C)doublea[1][4];D)floata⑶(4);.若有說明inta[3][4];則對(duì)a數(shù)組元素的正確引用是()。A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1)

A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1).若有說明inta[3][4];則對(duì)a數(shù)組元素的非法引用是()。A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4].對(duì)inta[10]={6,7,8,9,10};說明語句的正確理解是()。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ù)組長度與初值的個(gè)數(shù)不相同,所以此語句不正確;.定義如下變量和數(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]);語句的輸出結(jié)果是()。A)357B)369C)159D)147TOC\o"1-5"\h\z.判斷字符串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))A)if(s1>s2).判斷字符串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)C)if(strcmp(s2,s1)>0)D)if(strcmp(s1,s2)>0)16.下面程序段的功能是將字符串16.下面程序段的功能是將字符串s中所有的字符c刪除。請(qǐng)選擇填空。#include<stdio.h>main(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!=\0';i++)if(s[i]!=C')A)s[j++]=s[i]s[j]=\0';puts(s);}A)s[j++]=s[i]B)s[++j]=s[i]C)s[j]=s[i];j++D)s[j]=s[i]A)gets(a,b);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");C)scanf(%s%s”,&a,&b);D)gets(a"),gets(b");18.對(duì)兩個(gè)數(shù)組a和b18.對(duì)兩個(gè)數(shù)組a和b進(jìn)行如下初始化,chara[]={A','B','C','D','E','F'};charb[]="ABCDEF”;則以下敘述正確的是(a與b數(shù)組完全相同C)a與b中都存放字符串a(chǎn)與b數(shù)組長度相同D)b數(shù)組比a數(shù)組長度長(二)填空題1.下面程序的功能是將字符串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;①)if(②){t=a[i];a[i]=a[j];a[j]=t;j++;}puts(a);printf("\n”);}.下面程序以每行4個(gè)數(shù)據(jù)的形式輸出a數(shù)組,請(qǐng)?zhí)羁铡?defineN20main(){inta[N],i;TOC\o"1-5"\h\zfor(i=0;i<N;i++)scanf("%d",①);for(i=0;i<N;i++){if(②)③printf("%3d”,a[i]);}printf("\n");}.下面程序是分別求出矩陣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);}.下面程序功能是檢查一個(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皿i])!=a[i][j]{②;break;}

if(found)printf();noif(found)printf();elseprintf("yes");}.下面的程序段將輸出computer,請(qǐng)?zhí)羁?。charc[]=It'sacomputer";for(i=0;①;i++){②;printf(%c",c[j]);}.下面的程序功能是在三個(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]);TOC\o"1-5"\h\zstrcpy(s,①);if(strcmp(str[2],s)<0)strcpy(s,str[2]);printf("%s\n",②);}.若有定義inta[3][4]={{1,2},{0},{4,6,8,10}};則初始化后,a[1][2]得到的初值是①,a[2][1]得到的初值是②。.設(shè)數(shù)組a中的元素均為正整數(shù),以下程序是求a中偶數(shù)的個(gè)數(shù)和偶數(shù)的平均值。請(qǐng)?zhí)羁铡?/p>

main(){inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave;for(k=s=i=0;i<10;i++)TOC\o"1-5"\h\z{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]);.下面程序段是輸出兩個(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語言函數(shù)與編譯預(yù)處理練習(xí)(一)選擇題TOC\o"1-5"\h\z有以下函數(shù)調(diào)用語句,其實(shí)參數(shù)的個(gè)數(shù)是()。fun(a+b,(x,y),fun(n+k,d,(a,b)));A)3B)4C)5D)6C語言規(guī)定,程序中各函數(shù)之間()。A)既允許直接遞歸調(diào)用又允許間接遞歸調(diào)用B)不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用C)允許直接遞歸調(diào)用但不允許間接遞歸調(diào)用D)不允許直接遞歸調(diào)用但允許間接遞歸調(diào)用TOC\o"1-5"\h\zC語言中,函數(shù)的隱含存儲(chǔ)類別是()。A)autoB)staticC)externD)無存儲(chǔ)類別.在一個(gè)C源程序文件中,若要定義一個(gè)只允許本源文件中所有函數(shù)使用的全局變量,則該變量需要使用的存儲(chǔ)類別是()。A)externB)registerC)autoD)static.C語言規(guī)定,簡(jiǎn)單變量做實(shí)參時(shí),它和對(duì)應(yīng)的形參之間的數(shù)據(jù)傳遞方式是()。A)地址傳遞B)單向值傳遞C)由實(shí)參傳遞給形參,再由形參傳回給實(shí)參C)由實(shí)參傳遞給形參,再由形參傳回給實(shí)參D)由用戶指定傳遞方式.C語言允許函數(shù)類型缺省定義,此時(shí)該函數(shù)返回值隱含的類型是(A)float型B)int型C)long型D)double型.C語言規(guī)定,函數(shù)返回值的類型是由()。A)return語句中的表達(dá)式類型所決定B)調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型所決定C)調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定D)在定義該函數(shù)時(shí)所指定的函數(shù)類型所決定.以下符合C語言規(guī)定的正確描述是()。A)函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B)函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套C)函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套D)函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套.如用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是()。A)數(shù)組的首地址B)數(shù)組第一個(gè)元素的值C)數(shù)組中全部元素的彳tD)數(shù)組元素的個(gè)數(shù).以下不正確的說法是()。A)在不同函數(shù)中可以使用相同名的變量B)形式參數(shù)是局部變量C)在函數(shù)內(nèi)部定義的變量只在本函數(shù)范圍內(nèi)有效D)在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效.C語言函數(shù)進(jìn)行值傳遞時(shí)的正確說法是()。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ǔ)單元.以下程序是選出能被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)k*10%10②A)a2*10B)a2C)a2/10D)a2%10.若使用一維數(shù)組名作函數(shù)實(shí)參,則以下正確的說法是()。A)必須在主調(diào)函數(shù)中說明實(shí)參數(shù)組的大小B)實(shí)參數(shù)組類型與形參數(shù)組類型可以不匹配C)在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小D)實(shí)參數(shù)組名與形參數(shù)名必須相同.如果在一個(gè)函數(shù)的復(fù)合語句中定義了一個(gè)變量,則該變量()。A)只在該復(fù)合語句中有效B)在該函數(shù)中有效A)只在該復(fù)合語句中有效B)在該函數(shù)中有效C)在本程序范圍內(nèi)有效D)為非法變量.以下敘述中不正確的是(A)預(yù)處理命令行都必須以A)預(yù)處理命令行都必須以#號(hào)開始B)在程序中凡是以#號(hào)開始的語句行都是預(yù)處理命令行C)C程序在執(zhí)行過程中對(duì)預(yù)處理命令行進(jìn)行處理D)以下是正確的宏定義#defineIBM_PC.以下敘述中正確的是(

A)在程序的一行上可以出現(xiàn)多個(gè)有效的預(yù)處理命令行B)使用帶參數(shù)的宏時(shí),參數(shù)的類型應(yīng)與宏定義時(shí)的一致C)宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間045)°B)宏名無類型D)045)°B)宏名無類型D)宏名必須用大寫字母表示)°B)在程序連接時(shí)進(jìn)行的#defineCR.以下有關(guān)宏替換的敘述不正確的是(A)宏替換不占用運(yùn)行時(shí)間C)宏替換只是字符替換.C語言編譯系統(tǒng)對(duì)宏命令的處理是(A)在程序運(yùn)行時(shí)進(jìn)行的C)和C程序中的其它語句同時(shí)進(jìn)行編譯的D)在對(duì)源程序中其它成分正式編譯之前進(jìn)行的.以下程序的運(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)sum=18二、填空題以下程序的功能是根據(jù)輸入的“y"(Y”)與n”("N”),在屏幕上分別顯示出“ThisisYES.與“ThisisNO.請(qǐng)?zhí)羁铡?include<stdio.h>voidYesNo(charch){switch(ch){casey':caseY':printf(\nThisisYES.\n");;工,casen:caseN':printf(\nThisisNO.\n");;}}main(){charch;printf(\nEnterachary','Y'or'n','N':\n");ch=_printf(ch:%c”,ch);YesNo(ch);}五、指針練習(xí)(一)選擇題.已有定義intk=2;int*ptr1,*ptr2;且ptri和ptr2均已指向變量k,下面不能正確執(zhí)TOC\o"1-5"\h\z行的賦值語句是()。'A)k=*ptr1+*ptr2;B)ptr2=k;C)ptr1=ptr2D)k=*ptr1*(*ptr2);.變量的指針,其含義是指該變量的()。A)值B)地址C)名D)一個(gè)標(biāo)志.如有定義inta=5;下面對(duì)①,②兩個(gè)語句的正確解釋是()。①int*p=&a;②*p=a;A)語句①和②中的含義相同,都表示給指針變量p賦值B)①和②語句的執(zhí)行結(jié)果,都是把變量a的地址值賦給指針變量pC)①在對(duì)p進(jìn)行說明的同時(shí)進(jìn)行初始化,使p指向a②將變量a的值賦給指針變量pD)①在對(duì)p進(jìn)行說明的同時(shí)進(jìn)行初始化,使p指向a②將變量a的值賦于*p.若已定義chars[10];則在下面表達(dá)式中不表示s[1]的地址的是()。A)s+1B)s++C)&s[0]+1D)&s[1].若有以下定義,則對(duì)a數(shù)組元素的正確引用是()。inta[5],*p=a;

A)*&a[5]B)a+2C)*(p+5)D)*(a+2)A)*&a[5]B)a+2C)*(p+5)D)*(a+2).若有以下定義,則對(duì)a數(shù)組元素地址的正確引用是()。inta[5],*p=a;A)p+5B)*a+1C)&a+1D)&a[0].設(shè)有如下函數(shù)定義intf(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}TOC\o"1-5"\h\z如果在主程序中用下面的語句調(diào)用上述函數(shù),則輸出結(jié)果為()。printf("%d\n",f("goodbay!"));A)3B)6C)8D)0.執(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)20.下面各語句行中,能正確進(jìn)行字符串賦值操作的語句是()。A)charst[4][5]={"ABCDE"};B)chars[5]={'A','B','C','D','E'};char*s;s="ABCDE”;char*s;scanf("%s",s);.請(qǐng)讀程序段charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));以上程序段的輸出結(jié)果是()。A)68B)0C)字符'D'的地址D)不確定的值.以下與int*q[5];等價(jià)的定義語句是()。A)intq[5];B)int*qC)int*(q[5]);D)int(*q)[5];.若有以下定義intx[4][3]={123,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)+2A)*((*p+1)[2])B)(*p+1)+2C)*(*(p+5))D)*(*(p+1)+2).以下不正確的敘述是()。A)C語言允許main函數(shù)帶形參,且形參個(gè)數(shù)和形參名均可由用戶指定B)C語言允許main函數(shù)帶形參,形參名只能是argc和argvC)當(dāng)main函數(shù)帶有形參時(shí),傳給形參的值只能從命令行中得到D)若有說明main(intargc,char*argv),則形參argc的值必須大于1.語句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ù)的指針.若有函數(shù)max(a,b),并且已使函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時(shí),正確的調(diào)用方法是()。A)(*p)max(a,b);B)*pmax(a,b);C)(*p)(a,b);D)*p(a,b);.以下程序的功能是從鍵盤接收一個(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+1.下面程序的功能是將字符串s中的內(nèi)容按逆序輸出,但不改變串中的內(nèi)容,請(qǐng)選擇填空。#include<stdio.h>main()

{chars[10]=hello!{chars[10]=hello!inverp(s);}inverp(char*a){if(①)return0;inverp(a+1);printf(“%c”,②);}A)*a!='\0'B)*a!=NULLC)!*aD)!a*==0A)*(a-1)B)*aC)*(a+1)D)*(a--).下面程序的運(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)46(二)、填空題.在C程序中,只能給指針變量賦①值和②值。.在C程序中,可以通過三種運(yùn)算來移動(dòng)指針,它們是①、②

六、結(jié)構(gòu)體、共用體及位運(yùn)算(一)選擇題.當(dāng)說明一個(gè)結(jié)構(gòu)體變量時(shí)系統(tǒng)分配給它的內(nèi)存是()。A)各成員所需內(nèi)存量的總和C)成員中占內(nèi)存量最大者所需的容量.以下結(jié)構(gòu)體類型變量的定義中不正確的是(A)#defineSTUDENTstructstudentSTUDENT{intnum;floatage;}std1;C)struct{intnum;floatage;B)結(jié)構(gòu)中第一個(gè)成員所需的內(nèi)存量D)B)結(jié)構(gòu)中第一個(gè)成員所需的內(nèi)存量D)結(jié)構(gòu)中最后一個(gè)成員所需內(nèi)存量)°B)structstudent{intnum;floatage;}std1;D)struct{intnum;floatage;}student;structstudentstd1;.設(shè)有以下說明語句,則下面的敘述不正確的是structstu{inta;floatb;}stutype;struct是結(jié)構(gòu)體類型的關(guān)鍵字structstu是用戶定義的結(jié)構(gòu)體類struct是結(jié)構(gòu)體類型的關(guān)鍵字structstu是用戶定義的結(jié)構(gòu)體類stutype是用戶定義的結(jié)構(gòu)體類型名D)a和b都是結(jié)構(gòu)體成員名.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間(A)所有成員一直駐留在內(nèi)存中B)只有一個(gè)成員駐留在內(nèi)存中C)部分成員駐留在內(nèi)存中D)沒有成員駐留在內(nèi)存中.以下對(duì)結(jié)構(gòu)體變量stu1中成員age的非法引用是structstudent{intage;intnum;}stu1,*p;C)p—C)p—>ageD)(*p).ageA)stu1.ageB)student.age.當(dāng)說明一個(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)存量.以下對(duì)C語言中共用體類型數(shù)據(jù)的敘述正確的是()。A)可以對(duì)共有體變量名直接賦值一個(gè)共用

溫馨提示

  • 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)論